自黑,如何竊取賬號(hào)密碼?
時(shí)間:2022-04-09 17:42:02 | 來(lái)源:行業(yè)動(dòng)態(tài)
時(shí)間:2022-04-09 17:42:02 來(lái)源:行業(yè)動(dòng)態(tài)
首先,我們先來(lái)個(gè)比較簡(jiǎn)單比較低級(jí)的方式。使用的工具是Wireshark,這是一個(gè)網(wǎng)絡(luò)封包分析軟件,用于擷取網(wǎng)絡(luò)封包,并盡可能顯示出最為詳細(xì)的網(wǎng)絡(luò)封包資料,類似于電工手中的萬(wàn)用表。這個(gè)軟件一般只能監(jiān)測(cè)本機(jī)的流量數(shù)據(jù),因此通常被用作自檢,但是如果配合ARP欺騙技術(shù),就能夠監(jiān)控整個(gè)局域網(wǎng)的流量!
我們這次測(cè)試的是在本機(jī)。首先,你需要知道本機(jī)的IP以及即將訪問網(wǎng)站的IP。以IT門戶數(shù)字尾巴為例,通過Ping地址,我們得到數(shù)字尾巴的IP為203.195.146.235,而本機(jī)的IP為10.72.12.143。接下來(lái)就是打開Wireshark,然后開啟監(jiān)聽。
這時(shí)候我們開始在數(shù)字尾巴的登陸界面輸入賬號(hào)密碼,登陸后,關(guān)閉監(jiān)聽。我們來(lái)看看監(jiān)聽到了什么?
使用簡(jiǎn)單的工具就能夠獲得用戶賬號(hào)密碼
細(xì)心的讀者或許已經(jīng)看到,在監(jiān)聽的數(shù)據(jù)中明確寫著如下幾行代碼:
username=17686******(這是筆者手機(jī),做模糊處理哈)
password=Sj******(登錄密碼)
也就是說,數(shù)字尾巴的登陸沒有做加密處理,只要能夠你登錄,你的賬號(hào)密碼就會(huì)以明文的形式在網(wǎng)絡(luò)傳播!如果你的其它賬號(hào)使用了同樣的賬號(hào)密碼(事實(shí)上,筆者的確如此。。),一旦被竊取,其他網(wǎng)站的賬戶也就容易被攻破。
然后又測(cè)試了幾個(gè)網(wǎng)站,發(fā)現(xiàn)可以直接獲取明文賬號(hào)密碼的網(wǎng)站已經(jīng)不是太多了。即使同樣的Http登陸,也做了一些加密處理,比如通過session計(jì)算出一個(gè)常數(shù),儲(chǔ)存在服務(wù)器。在提交password的時(shí)候,在前端通過js將這個(gè)常數(shù)與用戶輸入的密碼進(jìn)行md5運(yùn)算,運(yùn)算結(jié)果POST給服務(wù)器。這樣黑客們不需要知道你的明文密碼,監(jiān)聽到你所謂的密文,然后用腳本發(fā)起一個(gè)Http請(qǐng)求就可以登錄上去了。并且,既然服務(wù)器端需要驗(yàn)證,也就需要還原原始密碼,既然有方法,這對(duì)于黑客來(lái)說就完全可以破解了。
或許,你又會(huì)說,那就設(shè)置更復(fù)雜的加密傳輸,比如非對(duì)稱加密。但是,這不是Https提供的功能么?而且Https提供的安全保障還可以應(yīng)對(duì)其他的攻擊。所以,目前來(lái)看Https是解決賬號(hào)安全的靠譜方案。
Https真能解決問題?
先說結(jié)論:真能!這就要先說說Https的核心--非對(duì)稱加密。Https在HTTP下加入SSL層(安全套接層)/TLS(TLS是SSL的升級(jí)協(xié)議),HTTPS在傳輸數(shù)據(jù)之前需要客戶端(瀏覽器)與服務(wù)端(網(wǎng)站)之間進(jìn)行數(shù)次握手,在握手過程中將確立雙方加密傳輸數(shù)據(jù)的密碼信息,這樣,Https就能保障數(shù)據(jù)在傳輸過程中不被非法篡改和利用。而Https握手加密使用的是非對(duì)稱加密。
對(duì)稱加密算法是指加密和解密時(shí)使用的是同一個(gè)秘鑰;而非對(duì)稱加密算法需要兩個(gè)密鑰來(lái)進(jìn)行加密和解密,這兩個(gè)秘鑰是公開密鑰(public key)和私有密鑰(private key)。以最常用的RSA為例,它的原理是:
1. 隨意選擇兩個(gè)大的質(zhì)數(shù)p和q,p不等于q,計(jì)算N=pq。
2. 根據(jù)歐拉函數(shù),求得r = (p-1)(q-1)
3. 選擇一個(gè)小于 r 的整數(shù) e,求得 e 關(guān)于模 r 的模反元素,命名為d。(模反元素存在,當(dāng)且僅當(dāng)e與r互質(zhì))
4. 將 p 和 q 的記錄銷毀。
這其中(N,e)就是公鑰,(N,d)是私鑰。傳輸過程中,只發(fā)送公鑰(N,e),私鑰(N,d)則不在傳輸中體現(xiàn)。
這種加密其實(shí)就是利用了一個(gè)數(shù)學(xué)難題:當(dāng)p和q是一個(gè)大素?cái)?shù)的時(shí)候,從它們的積pq去分解因子p和q是很難的
舉個(gè)例子: 3233可以進(jìn)行因數(shù)分解為6153,但是你可以試試如下數(shù)字的因數(shù)分解: 1230186684530117755130494958384962720772853569595334792197322452151726400507263657518745202199786469389956474942774063845925192557326303453731548268507917026122142913461670429214311602221240479274737794080665351419597459856902143413
而這只是一個(gè)232個(gè)十進(jìn)制位(768個(gè)二進(jìn)制位)的數(shù)字哦,目前主流的加密會(huì)使用1024位甚至更高。事實(shí)上這是目前人類能分解的最大整數(shù),1024位的破解尚未被報(bào)道(但估計(jì)也用不太久的時(shí)間,所以還是推薦使用更高位的加密)。
因此,目前采用RSA1024或者更高加密方法的Https是安全的,暫時(shí)還不用擔(dān)心會(huì)被破解。但是越來(lái)越高的質(zhì)數(shù)分解,導(dǎo)致服務(wù)器端的加密和解密計(jì)算量大增,這也導(dǎo)致用戶在訪問Https網(wǎng)站時(shí)候可能導(dǎo)致一定的延遲。
SSL造成的延遲到底有多少?
下面我們來(lái)實(shí)際測(cè)試下SSL將會(huì)造成大少的延遲。命令行工具curl有一個(gè)w參數(shù),可以用來(lái)測(cè)量TCP握手和SSL握手的具體耗時(shí)。
curl -w "TCP handshake: %{time_connect}, SSL handshake: %{time_appconnect}/n" -so /dev/null Https://www.zhihu.com
在Macos下可以在命令行下直接輸入(以知乎為例),得到的結(jié)果如下:
SSL握手將會(huì)造成較大的網(wǎng)絡(luò)延遲
TCP handshake耗時(shí)在23-54ms,而SSL handshake在88-145ms之前。延遲跟網(wǎng)絡(luò)有關(guān)系(內(nèi)網(wǎng)環(huán)境下,網(wǎng)絡(luò)延遲較高),但一般SSL造成的延遲是TCP握手的3-4倍。
這部分延遲除了網(wǎng)絡(luò)問題,最重要的還有加密和解密所造成的延遲,因?yàn)楹笈_(tái)服務(wù)器在驗(yàn)證大數(shù)字密鑰時(shí)候需要耗費(fèi)大量的計(jì)算資源。有數(shù)據(jù)顯示,在同等硬件條件下,2048bit Https比Http并發(fā)性能要弱5-10倍,甚至更多。而據(jù)小米公司實(shí)測(cè),正常情況下,一個(gè)16核的CPU能夠達(dá)到300OPS(每秒3000次RSA操作)就算不錯(cuò)的成績(jī)了。但是,每個(gè)網(wǎng)站不僅包括一個(gè)頁(yè)面,比如主頁(yè)面、登錄頁(yè)面、子頁(yè)面等等,這些都需要通過SSL進(jìn)行加密傳輸數(shù)據(jù),因此通用x86服務(wù)器做SSL加解密會(huì)造成較高的延時(shí),并且在高并發(fā)訪問時(shí)容易造成服務(wù)器宕機(jī)。
有方法!浪潮SSL加解密解決方案
那么,面對(duì)如此嚴(yán)峻的網(wǎng)絡(luò)安全環(huán)境和不斷提升的加解密計(jì)算性能消耗,如何更高效的進(jìn)行SSL加解密?答案是采用更有的計(jì)算解決方案,比如浪潮SSL加解密解決方案。
既然依靠CPU的通用計(jì)算不能很好地進(jìn)行SSL加解密的高速運(yùn)算,那么是不是能夠通過專用的加速卡來(lái)實(shí)現(xiàn)?就像用GPU來(lái)實(shí)現(xiàn)圖像運(yùn)算那樣,答案是肯定的。SSL專用加速卡,相比x86架構(gòu)的CPU,雖然不能勝任通用計(jì)算應(yīng)用需求,但是經(jīng)過專門的算法和架構(gòu)優(yōu)化,在進(jìn)行RSA加密計(jì)算時(shí)的性能大大優(yōu)于傳統(tǒng)架構(gòu)。
浪潮基于SA5212M4的、專門面向SSL加解密加速的軟硬一體化解決方案,支持2塊SSL加速卡,支持IPsec、SSL 加速和壓縮功能,可提供高達(dá) 50 Gbps 的加密速度和高達(dá) 24 Gbps 的壓縮性能。在單卡情況下即可實(shí)現(xiàn)在RSA1024操作中190K OPS(每秒運(yùn)算次數(shù)),而在RSA2048時(shí)也能達(dá)到35K的速度,與通用服務(wù)器相比能夠有10倍以上的性能提升。
在網(wǎng)絡(luò)安全問題頻發(fā)的今天,為了自身網(wǎng)站的正常運(yùn)轉(zhuǎn)以及用戶的隱私安全,越來(lái)越多的網(wǎng)站啟用Https。浪潮SSL加解密解決方案則通過高效的計(jì)算加速技術(shù),讓Https的延遲更低,用戶體驗(yàn)更優(yōu)。