網(wǎng)絡(luò)安全漫談及實戰(zhàn)摘要
前言
在最近一周內(nèi),我收到了安全圈子里面小伙伴的私信,說他們非常喜歡信息安全,但是看了我之前發(fā)布文章,覺得有點難度,還涉及到C#編程,不好理解,希望我能給些基礎(chǔ)方面的文章,所以有了這篇技術(shù)稿。
以下是我整理了2天,總結(jié)出來的一些算是經(jīng)驗之談,希望能幫到大家。
一、網(wǎng)絡(luò)安全漫談
1. 數(shù)據(jù)發(fā)送之前面臨的威脅<惡意程序>
- 計算機(jī)病毒:具有“傳染性”。
 - 計算機(jī)蠕蟲:計算機(jī)蠕蟲不需要附在別的程序內(nèi),可能不用使用者介入操作也能自我復(fù)制或執(zhí)行。
 - 特洛伊木馬:沒有復(fù)制能力,它的特點是偽裝成一個實用工具、一個可愛的游戲、圖片、軟件,誘使用戶將其安裝在PC端或者服務(wù)器上,從而秘密獲取信息。
 - 邏輯炸彈:是一種程序,平時處于“休眠”狀態(tài),直到具體的程序邏輯被激發(fā)。
 
2. 計算機(jī)網(wǎng)絡(luò)通信面臨4種威脅<數(shù)據(jù)傳輸中>
- 截獲——從網(wǎng)絡(luò)上竊聽他人的通信內(nèi)容
 - 中斷——有意中斷網(wǎng)絡(luò)通信 
。  - 篡改——故意篡改網(wǎng)絡(luò)上傳送的報文 
。  - 偽造——偽造信息在網(wǎng)絡(luò)上的傳送
 
3. 威脅分類
- 被動攻擊—截獲。
 - 主動攻擊—中斷、篡改、偽造。
 
被動攻擊與主動攻擊的區(qū)別:
- 主動攻擊:對通信方式和通信數(shù)據(jù)產(chǎn)生影響的攻擊為主動攻擊,指攻擊者對某個連接中通過的PDU進(jìn)行各種處理:1>更改報文流;2>拒絕報文服務(wù);3>偽造連接初始化。
 - 被動攻擊:攻擊者只是觀察和分析某一個協(xié)議數(shù)據(jù)單元PDU而不干擾信息流。
 
4. 計算機(jī)網(wǎng)絡(luò)通信安全的目標(biāo)
- 防止析出報文內(nèi)容
 - 防止通信量分析
 - 檢測更改報文流
 - 檢測拒絕報文服務(wù)
 - 檢測偽造初始化連接
 
5. 防范措施
(1) 使用加密機(jī)制防止析出報文內(nèi)容。
- Y=Ek(X) // X:明文 Y:密文 k:加密密鑰
 
(2) 保密性:密碼編碼學(xué)+密碼分析學(xué)=密碼學(xué)。
(3) 安全協(xié)議的設(shè)計。
(4) 接入控制:針對主動攻擊的偽造。
- 無條件安全:無法由密文還原為明文;
 - 計算安全:密碼在有效的時間內(nèi)無法計算出來。
 
6. 兩位類密碼體制<針對被動攻擊中的截獲>
(1) 對稱密鑰密碼體制
加密密鑰與解密密鑰是相同的密碼體制(類似加密的開鎖鑰匙與解密的開鎖鑰匙是同一把鑰匙)。
1)DES (Data Encryption Standard)
解密的過程是上述加密的逆過程(同一密鑰)。
過程詳解:
- 在加密前,先對整個明文進(jìn)行分組,每一個組長為64bit;
 - 然后,對每一個64bit二進(jìn)制數(shù)據(jù)進(jìn)行加密處理,產(chǎn)生一組64bit密文數(shù)據(jù);
 - 最后,將各組密文串接起來,即得出整個報文。
 
備注:使用的密鑰為64bit(實際密鑰長度為56bit,有8bit用于奇偶校驗)。
2)IDEA (International Data Encryption Algorithm)
IDEA使用128位密鑰,目前基本不可能通過暴力破解攻破。
(2) 公鑰密碼體制(非對稱密碼體制)
1) 產(chǎn)生原因:
- 對稱加密體制中加密和解密在信息交互時需要協(xié)商同一把相同的密鑰,這一個過程是非常復(fù)雜的!而非對稱加密體制是不需要這一過程的,簡化對稱體制的分配過程。
 - 對稱密鑰密碼體制無法數(shù)字簽名,而非對稱可以數(shù)字簽名(數(shù)字簽名:就是只有信息的發(fā)送者才能產(chǎn)生的別人無法偽造的一段數(shù)字串,這段數(shù)字串同時也是對信息的發(fā)送者發(fā)送信息真實性的一個有效證明),增強(qiáng)了信息的安全傳輸!
 
公鑰密碼體制是一種”由已知加密密鑰推導(dǎo)出解密密鑰在計算上是不可行的”密碼體制:
- 發(fā)送方和接受方要持有一對密鑰<公鑰PK+私鑰SK;
 - 加密算法和解密算法沒有順序區(qū)別,可以先加密后解密/先解密后加密。
 
2)公鑰加密算法
1> 算法概述
- 加密算法:Dsk(Epk(X))=X。“pk”是接受方的公鑰;加密和解密的運算可以對調(diào)。
 - 解密算法:Epk(Dsk(X))=X。用私鑰加密的數(shù)據(jù)可以用公鑰解密。
 
2> 加密密鑰是公開的,但不能用來解密。原因是公鑰是公開的,那這個加密數(shù)據(jù)是沒有任何意義的,所以公鑰一般是用來加密的!),即:DPK(EPK(X))=X。
3> 在計算機(jī)上可容易地產(chǎn)生成對的PK和SK(不需要雙方進(jìn)行協(xié)商)。
4>從已知的PK實際上不可能推導(dǎo)出SK,即:PK到SK是”計算上不可能的”從概念可得此結(jié)論。
5> 加密和解密算法都是公開的。
(3) 加密過程
這一傳送過程,發(fā)送方和接受方維持了3個密鑰:
- 發(fā)送方A:備注:自己維護(hù)的pkA和skA,同時還要記得對方的pkB;
 - 接收方B:自己維護(hù)的pkB和skB,同時如果需要與發(fā)送者A通信就需要對方的pkA。
 
(4) 數(shù)字簽名
數(shù)字簽名必須保證以下三點以防止偽裝攻擊(重放攻擊):
- 接受者能夠核實發(fā)送者對報文的簽名;
 - 發(fā)送者事后不能抵賴對報文的簽名;
 - 接受者不能偽造對報文的簽名。
 
(5) 數(shù)字簽名的實現(xiàn)
發(fā)送者A使用自己的私鑰進(jìn)行加密,接受者B使用發(fā)送者A的公鑰進(jìn)行解密(這個數(shù)字簽名數(shù)據(jù)沒有任何保密意義的,因為上文提到過任何使用私鑰sk加密的數(shù)據(jù),任何知道公鑰pk的人都可以解密這條數(shù)據(jù))。數(shù)字簽名的偽造將會在下文講到。這一過程僅僅是實現(xiàn)數(shù)字簽名,并且也滿足數(shù)字簽名的3個特征,這個我就不多說,自己可以驗證一下。
(6) 具有保密性的數(shù)字簽名
存在意義:存在數(shù)字簽名的偽造,用pk解密的簽名在網(wǎng)上廣播出去,容易被截獲,獲取其他信息。
使用了2重非對稱加密算法:一次簽名+一次加密。
(7) 報文鑒別(針對主動攻擊中的篡改和偽造)
存在意義:檢測篡改攻擊,如果篡改,丟棄。
- 報文摘要:給要傳輸?shù)臄?shù)據(jù)生成一個簡單的指紋(身份ID),用來唯一的標(biāo)識這段數(shù)據(jù)
 - 報文摘要的優(yōu)點:僅對短得多的定長報文摘要H(m)進(jìn)行加密比對整個長報文m進(jìn)行加密要簡單的多
 
此處我想多說點,這種策略還不是最安全,比如游戲防止盜取裝備也是采取類似這種對裝備關(guān)鍵信息的加密(二進(jìn)制加密),不可能對整個裝備從頭到腳進(jìn)行加密,如果這樣數(shù)據(jù)包會非常大,造成網(wǎng)絡(luò)堵塞。我覺得最好的防范措施是:不能只用一種加密算法去加密,要把所有的加密算法要平衡運用到所有的裝備身上,必要要在你網(wǎng)絡(luò)傳輸流暢度和數(shù)據(jù)加密找到一個平衡點!
(8) 實體鑒別
是對每一個收到的報文都要鑒別報文的發(fā)送者,而實體鑒別是在系統(tǒng)接入的全部持續(xù)時間內(nèi)對和自己通信的對方實體只需驗證一次。
存在的威脅:
1)重放攻擊問題
未被攻擊,上面流程默認(rèn)進(jìn)行了KAB會話的協(xié)商操作,以后就A->B進(jìn)行通信。
攻擊時,攻擊者C偽裝A(截獲A給B的數(shù)據(jù)包)然后用自己的sk或者pk加密后與B進(jìn)行會話協(xié)商成功以后C和B進(jìn)行會話通信,如下圖所示:
產(chǎn)生重放攻擊的原因:KAB 會話密鑰是由A B 隨機(jī)產(chǎn)生的,不隨外人的干涉,那任何人跟B會話,都可以形成KAB會話密鑰。
2)中間人攻擊
分析:中間人C截獲A的信息,重發(fā)”我是A”給B,B返回給A RB被C截獲,C再給A發(fā)了一份RB;然后A用自己的私鑰SKA對RB進(jìn)行加密本來要返回給B,在中間又被C截獲并丟掉,然后C用自己的私鑰SKc對RB進(jìn)行加密,發(fā)送給B,B把公鑰請求返回給C,再重發(fā)一份給A,A本返回給B公鑰PKa,C截獲并丟掉,C將自己的PKc偽裝成PKa發(fā)給B,B成功解密出來被SKc加密的RB,返回給C,C用自己的SKC解密出來DATA,再用剛才截獲來的PKa對DATA進(jìn)行加密返回給A。
產(chǎn)生重放攻擊和中間人攻擊的原因:密鑰的管理不當(dāng)引起
7. 密鑰分配<對稱密鑰分配>
密鑰管理包括:密鑰的產(chǎn)生、分配、注入、驗證和使用,比加密算法更為復(fù)雜!本技術(shù)稿只討論密鑰的分配。
為了防止以上攻擊上演,引入一個可信第三方,由它對密鑰進(jìn)行管理和維護(hù)。
(1) 對稱密鑰分配
如果A要與B進(jìn)行通信 必須去線下的密鑰分配中心KDC注冊,然后分配中心分別給A和B分配密鑰KA kB生成注冊表。類似去銀行開銀行卡,系統(tǒng)會記錄你設(shè)置的賬號和密碼,同時生成一對映射表;KAB是通信雙方共享會話的KAB。Kerberos 既是鑒別協(xié)議,同時也是KDC。
優(yōu)點:對密鑰分配制度進(jìn)行了一個擴(kuò)充,將到場注冊的線下改為線上。
(2) 公鑰的分配<非對稱密鑰分配>
公鑰需要有一個值得信賴的機(jī)構(gòu)來將公鑰與其對應(yīng)的實體(人或機(jī)器)進(jìn)行綁定(binding)<防止中間人的攻擊手法>這樣的機(jī)構(gòu)就叫做認(rèn)證中心( CA fCertification Authority)
8. 英特網(wǎng)使用的安全協(xié)議<網(wǎng)絡(luò)層+運輸層+應(yīng)用層>
(1) 網(wǎng)絡(luò)層的安全協(xié)議
1)IPsec協(xié)議:網(wǎng)絡(luò)層保密是指所有在IP數(shù)據(jù)報中的數(shù)據(jù)都是加密的。此外,網(wǎng)絡(luò)層還應(yīng)提供源站鑒別,即當(dāng)目的站收到IP數(shù)據(jù)包時,能確信這是從該數(shù)據(jù)包的源IP地址的主機(jī)發(fā)來的。
總結(jié):
- 完成了一個實體鑒別;
 - 對IP數(shù)據(jù)包進(jìn)行了加密。
 
2)主要包括2個部分:
- 鑒別首部AH(Authentication Header):AH提供提供源站鑒別和數(shù)據(jù)完整性,但不能保密;
 - 封裝安全有效載荷 ESP (Encapsulation Sucurity Payload): EPS比AH復(fù)雜的多,它提供源站鑒別、數(shù)據(jù)完整性和保密;
 - 安全關(guān)聯(lián)SA:在使用AH 或ESP 之前,先要從源主機(jī)到目的主機(jī)建立一條網(wǎng)絡(luò)層的邏輯連接。此邏輯連接叫做安全關(guān)聯(lián)SA;Psec 就將傳統(tǒng)的因特網(wǎng)無連接的網(wǎng)絡(luò)層轉(zhuǎn)換為具有邏輯連接的層。
 
安全關(guān)聯(lián)是一個單向連接。它由1個三元組唯一地確定,包括:
- 安全協(xié)議(使用AH/ESP)的標(biāo)識符;
 - 此單向連接的源IP地址;
 - 一個32bit的連接標(biāo)識符,稱為安全參數(shù)索引SPI(Security Parameter Index)對于一個給定的安全關(guān)聯(lián)SA,每一個數(shù)據(jù)報都有一個存放SPI的字段。通過此所有數(shù)據(jù)報都使用同樣的SPI。
 
3)IPsec數(shù)據(jù)報格式
4)IPsec數(shù)據(jù)報的工作方式
- 第一種工作方式是運輸方式(Transport mode)。運輸方式是整個運輸層報文段的后面和前面分別添加一些控制字段 ,構(gòu)成IPsec數(shù)據(jù)報。
 - 第二種工作方式是隧道方式(tunnel mode) 隧道方式是在一個IP數(shù)據(jù)包的后面和前面分別添加一些控制字段,構(gòu)成IPsec數(shù)據(jù)包。
 
5)IPsec 數(shù)據(jù)包封裝過程
- 在運輸層報文段(或IP數(shù)據(jù)報)后面添加ESP尾部;
 - 按照安全關(guān)聯(lián)SA指明的加密算法和密鑰,對“運輸層報文段(或IP數(shù)據(jù)報)+ESP尾部”一起進(jìn)行加密;
 - 在已加密的這部分的前面,添加ESP首部;
 - 按照SA指明的算法和密鑰,對“ESP首部+運輸層報文段(或IP數(shù)據(jù)包)+ESP尾部”生成報文鑒別碼MAC;
 - 把MAC 添加在ESP尾部的后面;
 - 生成新的IP首部(通常就是20字節(jié)長,其協(xié)議字段的值50)。
 
(2) 運輸層安全協(xié)議
SSL:安全套接層(Secure Socket Layer):可對萬維網(wǎng)客戶端與服務(wù)器之間傳送的數(shù)據(jù)進(jìn)行加密和鑒別(在用第三方網(wǎng)上交易時用到的協(xié)議,比如支付寶)。
功能:
- SSL服務(wù)器鑒別;
 - 加密的SSL會話;
 - SSL客戶鑒別。
 
類似在淘寶購買東西的過程:
(3) 應(yīng)用層安全協(xié)議
PGP是一個完整的數(shù)字郵件安全軟件包,包括加密、鑒別、電子簽名和壓縮等技術(shù)。
它只是將現(xiàn)有的一些加密算法如MD5、RSA、以及IDEA等綜合在一起而已,類似我上文說的游戲防外掛的策略。
下圖為一個典型的郵件加密過程:
9. 系統(tǒng)安全:防火墻與入侵檢測<針對物理層+數(shù)據(jù)鏈路層>
(1) 防火墻
由軟件、硬件、構(gòu)成的系統(tǒng),用來在2個網(wǎng)絡(luò)之間實施接入控制策略。
(2) 功能
- 驗證與阻止/過濾;
 - 認(rèn)為合法的連接進(jìn)行訪問;
 - 主要功能是阻止。
 
(3) 防火墻技術(shù)
- 網(wǎng)絡(luò)機(jī)防火墻;
 - 應(yīng)用級防火墻。
 
(4) 入侵檢測系統(tǒng)(IDS)
分類:基于特征的入侵檢測(缺點:未知的特征無法檢測)+基于異常的入侵檢測(DDOS攻擊)。
二、彩蛋(滲透測試)
下面就以一個最基本的ARP斷網(wǎng)/欺騙攻擊來做個簡單的關(guān)于網(wǎng)絡(luò)攻擊的實驗吧,理論+實踐。
至于ARP協(xié)議以及ARP斷網(wǎng)/欺騙攻擊的原理眾所周知,我就不廢話了,開始滲透測試:
1. ARP斷網(wǎng)攻擊
(1) 環(huán)境搭建
- 物理機(jī):Win7<被攻擊者>
 - 虛擬機(jī):KALI<攻擊者>
 
(2) 過程
1)用nmap對存在于WLAN中的主機(jī)進(jìn)行IP地址的嗅探:
攻擊目標(biāo)的IP為192.168.0.104(有時嗅探不完全,多嗅探幾次,才可以將WLAN中的所有主機(jī)嗅探到)。
2)測試被攻擊者的網(wǎng)絡(luò)是否正常:
被攻擊者網(wǎng)絡(luò)顯示正常。
3)ARP斷網(wǎng)
- 假如想攻擊電腦的話,格式是:目標(biāo)IP+網(wǎng)關(guān);
 - 假如想攻擊手機(jī)的話,格式是:網(wǎng)關(guān)+目標(biāo)IP。
 
4)再次測試被攻擊者的網(wǎng)絡(luò)是否正常:
瞬間斷網(wǎng)!
(3) ARP欺騙攻擊
由于LAN通信是根據(jù)MAC地址進(jìn)行傳輸,假如MAC地址被偽造成攻擊者的MAC地址,就形成的所謂的ARP欺騙。
示意圖:目標(biāo)IP—>我的網(wǎng)卡—>查看自己網(wǎng)卡上的圖片信息—>網(wǎng)關(guān)
1)用nmap對存在在WLAN中的主機(jī)進(jìn)行IP地址的嗅探:
和斷網(wǎng)攻擊同一個姿勢,被攻擊者的IP地址為192.168.0.104。
2)對被攻擊者進(jìn)行ARP流量轉(zhuǎn)發(fā),使其流量轉(zhuǎn)發(fā)到攻擊端:
此指令是沒有回顯的。
3)進(jìn)行ARP欺騙
假如被攻擊者在瀏覽周董的照片:
4)使用driftnet進(jìn)行抓取圖片:
以上就是攻擊者的電腦呈現(xiàn)效果!
5)如何防御?
- 靜態(tài)綁定(IP和MAC靜態(tài)綁定)—PC端;
 - 路由器實現(xiàn)IP地址與對應(yīng)MAC地址的綁定—路由端。
 
方法都是根據(jù)攻擊原理進(jìn)行相應(yīng)防御!
或使用電腦管家防御等:
手機(jī)版的360管家似乎沒有防御ARP攻擊的工具!
記得TK教主曾在微博上說過:ICMP重定向基本可以理解為能在互聯(lián)網(wǎng)范圍內(nèi)發(fā)起ARP欺騙。有點可怕!希望更多的人能夠像TK一樣將電腦技術(shù)運用在造福社會上!
三、總結(jié)
萬變不離其宗,再高明的攻擊手段,都是基于以上內(nèi)容,希望一些新手朋友或者剛?cè)腴T的朋友仔細(xì)閱讀,推敲,基礎(chǔ)是最重要的,也不枉費我熬夜總結(jié)的資料。












































 
 
 







 
 
 
 