前面對基于TCP/IP協定的計算機網絡的五層逐一進行了整理總結。 不得不說效果是很顯著的,很多以前不懂得知識可以通過該書進行自解釋。 嘗到了甜頭,幹勁自然很足。 是以今天繼續将網絡安全的知識進行梳理。 這在課堂上是沒有上過的,因為大學課程限制不可能講這麼多。 但是越到後面越會發現,自學與學習的差別定界實在是很模糊。 如果不是自發的學習,被動學習後可能任然要進行自我的學習。 這大概就是自我疊代吧!
網絡安全的内容:
1.計算機網絡面臨的安全性威脅和計算機網絡安全的主要内容
2.對稱密鑰密碼體制 和公鑰密碼體制的特點。
3.數字簽名與鑒别的概念。
4.網絡層安全協定IPsec協定 和 運輸層安全協定SSL/TLS的要點
5.系統安全的内容: 防火牆 與 入侵檢測。
計算機網絡面臨的安全性威脅:
計算機網絡上的通信通常面臨兩種類型的威脅,即被動攻擊和主動攻擊。
被動攻擊:
指攻擊者從網絡上竊聽他人的通信内容。 通常稱之為截獲,或流量分析。 攻擊者知識觀察和分析某一個協定資料單元PDU而不幹擾資訊流。
主動攻擊:
篡改:也稱為更改封包流。
惡意程式: 包括:
計算機病毒,通過修改其它程式将自身或自身變種複制進去,以達到摧毀正常檔案的目的。
計算機蠕蟲,将自身從一個節點發送到另一個節點并自動啟動運作的程式。
特洛伊木馬, 執行的功能并非它所聲稱的功能,而是某種惡意的功能。
邏輯炸彈, 一種當運作環境滿足特定條件執行特殊功能的程式。
拒絕服務:
指攻擊者向網際網路上的某個伺服器不停地發送大量分組,使得網際網路或伺服器無法提供正常服務。 稱之為拒絕服務Dos(Denial of Service),若攻擊者來自于成千上萬的網際網路其它主機,稱之為DDos(Distributed Denial of Service). 也稱為網絡帶寬攻擊,或連通性攻擊。
對付被動攻擊,通信安全的目标:
防止析出封包内容和流量分析,通常采用各種資料加密技術。
對付主動攻擊,通信安全的目标:
防止惡意程式,通常通過防火牆和入侵檢測。
檢測更改封包流和拒絕服務, 通常通過加密技術和适當的鑒别技術相結合。
計算機網絡安全的内容:
1.保密性。通常采用密碼機制,如通路控制中登陸密碼的設定,安全通信協定的設計,數字簽名的設計都離不開密碼機制。
2.安全協定設計,人們一直希望能設計出一種安全的計算機網絡,但不幸的是網絡的安全性是不可判定的。
3.通路控制,也叫做存取控制和接入控制。 必須對接入網絡的權限加以控制,并規定每個使用者的接入權限。
資料加密模型:
一般的資料加密模型:加密密鑰,加密算法,解密密鑰,解密算法。密鑰通常是通過密鑰中心提供,密鑰的傳送一定要通過一個安全信道。不能與資料傳輸在同一個信道。 解密算法是加密算法的逆運算。 加密密鑰與解密密鑰必然具有某種相關性。 各自由密碼學的編碼密碼學,以及密碼學中的密碼分析學做出理論支撐與指導。
20世紀70年代後期,美國的 資料加密标準DES(Data Encryption Standard) 和 公鑰密碼體制(public key crypto-system)成為近代密碼學發展史上的兩個重要裡程碑。
兩類密碼體制:
對稱密鑰密碼體制:
所謂對稱,是指 加密密鑰與解密密鑰是相同的密鑰。要做到這一點,一種是事先約定,另一種是通過信使來傳送密鑰。
資料加密标準DES屬于對稱密鑰密碼體制,它的保密性僅取決于對密鑰的保密,而算法的是公開的。它的密鑰長度為為64位,有8位用作奇偶校驗,是以實際的密碼長度是56位。 是以在可允許的時間範圍内具有暴力破解的可能性,如1999年,即可在高性能計算機上平均21分鐘破解一個56位長的DES密鑰。
之後出現的 國際資料加密算法IDEA(International Data Encryption Algorithm),使用了128位密鑰,已經在容許的時間内是比較安全的了。
公鑰密碼體制:
由斯坦福大學于1976年提出。 它使用了不同的加密密鑰與解密密鑰。 它的出現主要是因為兩個方面的原因,一是由于對對稱密鑰密碼體制的密鑰配置設定問題; 二 是 由于對數字簽名的需求。
在公鑰密碼體制中,加密密鑰PK(public key,即公鑰)是向公衆公開的,而解密密鑰SK(secret key,即私鑰或密鑰)則是需要保密的。加密算法E (encrypt) 和 解密算法 D(deencrypt)也是公開的。
公鑰密碼體制提出不久,人們就找到了三種公鑰密碼體制。 目前最著名的時由美國三位科學家 Rivest, Shamier 和 Adleman于1976年提出并在1978年正式發表的RSA體制。 它是一種基于數論中的大數分解問題的機制。
密鑰的産生器産生出接收者B 的一對密鑰: 加密密鑰PKb 和 解密密鑰SKb。 雖然在計算機上可以容易地産生成對的PKb 和SKb 。 但是從已知的PKb 實際上不可能推導出SKb, 即從公鑰推算出私鑰是:“計算上不可能的”。 公鑰隻可以用來加密,不能用來解密。
數字簽名:
數字簽名的要求:
1.接收者必須能夠核實發送者對封包的簽名。 稱為封包鑒别。
2. 接受者确信所收到的資料和發送者發送的完全一樣而沒有被篡改過。 即封包的完整性。
3. 發送者事後不能抵賴對封包的簽名,稱為不可否認。
數字簽名的過程:
發送方用其自身的私鑰對封包進行D運算,得到了某種不可讀的密文。(這個過程并不是進行解密)。 發送方将經過D運算的不可讀密文發送給接收方。 接收方問了核實簽名,可用發送方的公鑰進行E運算即可還原出明問。 注意,任何人用發送方的公鑰即可獲得發送方的明文。
為了處理保密的問題,通常可以采用同時實作秘密通信和數字簽名,模型如下圖:
鑒别:
鑒别是要驗證通信的雙方的确是自己所要通信的對象,而不是其它的冒充者。 注意,它與授權是不同的,授權涉及到的問題是: 所進行的過程是否被允許。
封包鑒别:
需多封包并不需要加密但是需要數字簽名,以便讓封包的接收者能夠鑒别封包的真僞。 當我們傳送不需要加密的封包時,應當使接收者能夠用很簡單的方法鑒别封包的真僞。
封包摘要MD(Message Digest)時進行封包鑒别的簡單方法。 它的優點是,僅對短得多的定長封包摘要進行數字簽名要比整個長封包進行簽名簡單得多,所耗費的計算資源也要小很多。 但對鑒别封包來說,效果是一樣的。 都是不可僞造,可檢驗和不可否認的。
封包摘要算法時精心選擇的一種單向函數。 也就是說,一個很長的封包我們可以輕易的計算出它的檢驗和,檢驗和的長度固定,并且很短。 但是我們不可能進行逆運算,由檢驗和把原始的封包計算出來。RFC 1321 提出的封包摘要算法MD5 已獲得廣範應用。 可任意長的封包進行運算,然後得出 128位的MD5封包摘要代碼。
MD5算法的大緻過程:
1,把任意長的封包按模 2^64計算餘數,追加在封包後面。
2. 在封包和餘數間填充1-512位,使得填充後的總長度是512的整數倍。 填充首位是1,其餘都是0.
3.将填充後的封包分未若幹個512位資料塊,對每個資料塊分層4個128位資料塊一次送到不同的散列函數進行4輪計算,每一輪都該32位資料塊進行複雜的運算。 這樣MD5封包摘要就與代碼中原來每一位都有關。
另一種标準稱為: 安全雜湊演算法SHA(Secure hash Algorithm). 與MD5類似,但是碼長160位,更安全但是計算也要慢些。
實體鑒别:
實體鑒别是在系統接入的全部持續時間内對和自己通信的對方實體隻需驗證一次。
在這個途中,容易出現重播攻擊,以及中間人攻擊。 公鑰體制是一個比較理想的方式,但是也會由于密鑰配置設定的問題而産生中間人攻擊的漏洞。 詳情見書。網絡安全章節。
密鑰配置設定:
密鑰配置設定(或密鑰分發)是密鑰管理中的最大問題。 包括對稱密鑰的配置設定,以及公鑰的配置設定。
對稱密鑰的配置設定:
目前常用的密鑰配置設定方式是設立密鑰配置設定中心KDC(Key Distribution Center)。 KDC 是大家都信任的機構,它的任務就是給需進行秘密通信的使用者臨時配置設定一個會話密鑰。(僅使用一次)。
目前最出名的密鑰配置設定協定是: Kerberos V5。 Kerberos 使用比DES更加安全的 先進的加密标準AES(Advanced Encryption Standard)進行加密。 Kerberos使用了兩個伺服器: 鑒别伺服器AS(Authentication Server), 票據授予伺服器TGS(Ticket-Granting Server)。
公鑰的配置設定:
在公鑰密碼體制中,公鑰也不能随意公布。 需要有一個值得信賴的機構來将公鑰與其對應的實體(人或者機器)進行綁定。 這樣的機構叫做認證中心CA(certification Authority)。 每個實體都有CA發來的證書(certificate), 裡面有公鑰以及擁有者的辨別資訊(人名或IP位址)。 此證書被CA進行了數字簽名。
為了使CA具有統一的格式,ITU-T制定了X.509協定标準,用來描述證書的結構。
網絡層的安全協定:
IPsec協定:
是IP security 協定的縮寫。 詳情翻閱計算機網絡網絡安全章節。。。
運輸層的安全協定:
比較出名的有:
安全套接字層SSL(Secure Socket Layer)。
運輸層安全TLS(transport layer security)。
SSL 協定:
是網景公司1994年開發的安全協定。 SSL作用在端系統應用層的HTTP和運輸層之間,在TCP之上建立起一個安全通道,為通過TCP傳輸的應用層資料提供安全保障。
1995年,網景公司把SSL交給IETF希望能夠将SSL标準化。 于是IETF在SSL 3.0的基礎上設計了TLS協定,為所有基于TCP的網絡應用提供安全資料傳輸服務。
當用普通不加密的浏覽器檢視網頁時,HTTP就直接使用TCP連接配接,這是SSL/TLS不起作用。 當使用信用卡進行網上支付而鍵入信用卡密碼時, 就需要使用安全的浏覽器。 這時, HTTP 就調用SSL/TLS對整個網頁進行加密。 這是網頁上會提示使用者,在網址欄原來現實HTTP 的地方就會變成https。
SSL提供的安全服務:
1.SSL伺服器鑒别。 允許使用者證明伺服器的身份。 支援SSL的用戶端通過驗證來自伺服器的證書,來鑒别伺服器的真實身份并獲得伺服器的公鑰。
2. SSL用戶端鑒别,SSL 的可選安全服務,允許伺服器證明客戶的身份。
3. 加密的SSL對話,對客戶和伺服器間發送的所有封包進行加密,并檢測封包是否被篡改。
SSL的工作過程:
使用SSL為客戶提供服務的網際網路伺服器使用SSL 的預設端口443來取代普通網際網路服務的80端口。。 并且該安全網頁URL中的協定辨別用https代替http。 當顧客點選該網站連結建立起TCP連接配接後,先進行浏覽器和伺服器之間的握手協定,完成加密算法的協商和會話密鑰的傳遞,然後進行安全資料傳輸。
其簡要過程:
1.協商加密算法。 浏覽器向伺服器發送浏覽器的SSL版本号和一些可選的加密算法,伺服器從中選取自己所支援的算法,并告知A。
2. 伺服器鑒别。 伺服器向浏覽器發送一個包含其 RSA公鑰的數字證書。 浏覽器使用該證書的認證機構CA的公開釋出的RSA公鑰對該證書進行驗證。
3. 會話密鑰計算。 由浏覽器随機生成一個秘密數,用伺服器B 的RSA公鑰進行加密後發送給浏覽器。 雙方根據協商的算法産生一個共享的對稱會話密鑰。
4. 安全資料傳輸。 雙方用繪畫密鑰加密和解密傳送的資料并驗證完整性。
系統安全:防火牆與入侵檢測
惡意使用者或者軟體通過網絡對計算機系統的入侵或攻擊已成為當今計算機安全最嚴重的威脅之一。 加密技術并不能阻止植入了“特洛伊木馬”的計算機系統通過網絡向攻擊者洩露秘密資訊。
防火牆:
防火牆是一種通路控制技術。 它通過嚴格控制進出網絡邊界的分組,禁止任何不必要的通信,進而減少潛在入侵的發生,盡可能降低這類安全威脅所帶來的安全風險。
防火牆位于網際網路和内部網絡之間。 網際網路的這邊時防火牆的外部,内部網絡這邊時防火牆的裡面。 一般把防火牆的裡面的網絡稱為 “可信網絡“,防火牆的外面稱為”不可信網絡“。
防火牆技術分類:
1. 分組過濾路由器。 它根據過濾規則對進出内部網絡的分組執行轉發或者丢棄。 注意該分組是雙向的,即可以限制入站規則,也可以限制出戰規則。
2. 應用網關,也稱為代理伺服器。 他在應用層通信中扮演種封包中繼的角色。 所有進出網絡的應用程式封包必須通過應用網關。 應用網關根據相應規則檢視是否合法,若合法則轉發,若不合法則丢棄。 它的缺點是,每個應用都需要一個應用網關(可以運作在同一台主機上)。 其次,在應用層轉發和處理封包,處理負擔較重。