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