VPN技術(P670-684)
1、IPSec
IPSec 協議不是一個單獨的協議,它給出了應用于IP層上網絡數據安全的一整套體系結構,包括網絡認證協議 Authentication Header(AH)、封裝安全載荷協議Encapsulating Security Payload(ESP)、密鑰管理協議Internet Key Exchange (IKE)和用于網絡認證及加密的一些算法等。IPSec 規定了如何在對等層之間選擇安全協議、確定安全算法和密鑰交換,向上提供了訪問控制、數據源認證、數據加密等網絡安全服務。
(1)IPSec的安全特性主要有:
A、不可否認性
“不可否認性”可以證實消息發送方是唯一可能的發送者,發送者不能否認發送過消息。“不可否認性”是采用公鑰技術的一個特征,當使用公鑰技術時,發送方用私鑰產生一個數字簽名隨消息一起發送,接收方用發送者的公鑰來驗證數字簽名。由于在理論上只有發送者才唯一擁有私鑰,也只有發送者才可能產生該數字簽名,所以只要數字簽名通過驗證,發送者就不能否認曾發送過該消息。但“不可否認性”不是基于認證的共享密鑰技術的特征,因為在基于認證的共享密鑰技術中,發送方和接收方掌握相同的密鑰。
B、反重播性
“反重播”確保每個IP包的唯一性,保證信息萬一被截取復制后,不能再被重新利用、重新傳輸回目的地址。該特性可以防止攻擊者截取破譯信息后,再用相同的信息包冒取非法訪問權(即使這種冒取行為發生在數月之后)。
C、數據完整性
防止傳輸過程中數據被篡改,確保發出數據和接收數據的一致性。IPSec利用Hash函數為每個數據包產生一個加密檢查和,接收方在打開包前先計算檢查和,若包遭篡改導致檢查和不相符,數據包即被丟棄。
D、數據可靠性(加密)
在傳輸前,對數據進行加密,可以保證在傳輸過程中,即使數據包遭截取,信息也無法被讀。該特性在IPSec中為可選項,與IPSec策略的具體設置相關。
E、認證
數據源發送信任狀,由接收方驗證信任狀的合法性,只有通過認證的系統才可以建立通信連接。
(2)基于電子證書的公鑰認證
一個架構良好的公鑰體系,在信任狀的傳遞中不造成任何信息外泄,能解決很多安全問題。IPSec與特定的公鑰體系相結合,可以提供基于電子證書的認證。公鑰證書認證在Windows 2000中,適用于對非Windows 2000主機、獨立主機,非信任域成員的客戶機、或者不運行Kerberos v5認證協議的主機進行身份認證。
(3)預置共享密鑰認證
IPSec也可以使用預置共享密鑰進行認證。預共享意味著通信雙方必須在IPSec策略設置中就共享的密鑰達成一致。之后在安全協商過程中,信息在傳輸前使用共享密鑰加密,接收端使用同樣的密鑰解密,如果接收方能夠解密,即被認為可以通過認證。但在Windows 2000 IPSec策略中,這種認證方式被認為不夠安全而一般不推薦使用。
(4)公鑰加密
IPSec的公鑰加密用于身份認證和密鑰交換。公鑰加密,也被稱為“不對稱加密法”,即加解密過程需要兩把不同的密鑰,一把用來產生數字簽名和加密數據,另一把用來驗證數字簽名和對數據進行解密。
使用公鑰加密法,每個用戶擁有一個密鑰對,其中私鑰僅為其個人所知,公鑰則可分發給任意需要與之進行加密通信的人。例如:A想要發送加密信息給B,則A需要用B的公鑰加密信息,之后只有B才能用他的私鑰對該加密信息進行解密。雖然密鑰對中兩把鑰匙彼此相關,但要想從其中一把來推導出另一把,以目前計算機的運算能力來看,這種做法幾乎完全不現實。因此,在這種加密法中,公鑰可以廣為分發,而私鑰則需要仔細地妥善保管。
(5)Hash函數和數據完整性
Hash信息驗證碼HMAC(Hash message authentication codes)驗證接收消息和發送消息的完全一致性(完整性)。這在數據交換中非常關鍵,尤其當傳輸媒介如公共網絡中不提供安全保證時更顯其重要性。
HMAC結合hash算法和共享密鑰提供完整性。Hash散列通常也被當成是數字簽名,但這種說法不夠準確,兩者的區別在于:Hash散列使用共享密鑰,而數字簽名基于公鑰技術。hash算法也稱為消息摘要或單向轉換。稱它為單向轉換是因為:
1)雙方必須在通信的兩個端頭處各自執行Hash函數計算;
2)使用Hash函數很容易從消息計算出消息摘要,但其逆向反演過程以目前計算機的運算能力幾乎不可實現。
Hash散列本身就是所謂加密檢查和或消息完整性編碼MIC(Message Integrity Code),通信雙方必須各自執行函數計算來驗證消息。舉例來說,發送方首先使用HMAC算法和共享密鑰計算消息檢查和,然后將計算結果A封裝進數據包中一起發送;接收方再對所接收的消息執行HMAC計算得出結果B,并將B與A進行比較。如果消息在傳輸中遭篡改致使B與A不一致,接收方丟棄該數據包。有兩種最常用的hash函數:
·HMAC-MD5 MD5(消息摘要5)基于RFC1321。MD5對MD4做了改進,計算速度比MD4稍慢,但安全性能得到了進一步改善。MD5在計算中使用了64個32位常數,最終生成一個128位的完整性檢查和。
·HMAC-SHA 安全Hash算法定義在NIST FIPS 180-1,其算法以MD5為原型。 SHA在計算中使用了79個32位常數,最終產生一個160位完整性檢查和。SHA檢查和長度比MD5更長,因此安全性也更高。
(6)加密和數據可靠性
IPSec使用的數據加密算法是DES--Data Encryption Standard(數據加密標準)。DES密鑰長度為56位,在形式上是一個64位數。DES以64位(8字節)為分組對數據加密,每64位明文,經過16輪置換生成64位密文,其中每字節有1位用于奇偶校驗,所以實際有效密鑰長度是56位。 IPSec還支持3DES算法,3DES可提供更高的安全性,但相應地,計算速度更慢。
(7)密鑰管理
·動態密鑰更新
IPSec策略使用“動態密鑰更新”法來決定在一次通信中,新密鑰產生的頻率。動態密鑰指在通信過程中,數據流被劃分成一個個“數據塊”,每一個“數據塊”都使用不同的密鑰加密,這可以保證萬一攻擊者中途截取了部分通信數據流和相應的密鑰后,也不會危及到所有其余的通信信息的安全。動態密鑰更新服務由Internet密鑰交換IKE(Internet Key Exchange)提供,詳見IKE介紹部分。
IPSec策略允許專家級用戶自定義密鑰生命周期。如果該值沒有設置,則按缺省時間間隔自動生成新密鑰。
·密鑰長度
密鑰長度每增加一位,可能的密鑰數就會增加一倍,相應地,破解密鑰的難度也會隨之成指數級加大。IPSec策略提供多種加密算法,可生成多種長度不等的密鑰,用戶可根據不同的安全需求加以選擇。
·Diffie-Hellman算法
要啟動安全通訊,通信兩端必須首先得到相同的共享密鑰(主密鑰),但共享密鑰不能通過網絡相互發送,因為這種做法極易泄密。
Diffie-Hellman算法是用于密鑰交換的最早最安全的算法之一。DH算法的基本工作原理是:通信雙方公開或半公開交換一些準備用來生成密鑰的“材料數據”,在彼此交換過密鑰生成“材料”后,兩端可以各自生成出完全一樣的共享密鑰。在任何時候,雙方都絕不交換真正的密鑰。
通信雙方交換的密鑰生成“材料”,長度不等,“材料”長度越長,所生成的密鑰強度也就越高,密鑰破譯就越困難。
除進行密鑰交換外,IPSec還使用DH算法生成所有其他加密密鑰。
AH報頭字段包括:
·Next Header(下一個報頭):
識別下一個使用IP協議號的報頭,例如,Next Header值等于“6”,表示緊接其后的是TCP報頭。
·Length(長度): AH報頭長度。
·Security Parameters Index (SPI,安全參數索引):
這是一個為數據報識別安全關聯的 32 位偽隨機值。SPI 值 0 被保留來表明“沒有安全關聯存在”。
·Sequence Number(序列號):從1開始的32位單增序列號,不允許重復,唯一地標識了每一個發送數據包,為安全關聯提供反重播保護。接收端校驗序列號為該字段值的數據包是否已經被接收過,若是,則拒收該數據包。
·Authentication Data(AD,認證數據):
包含完整性檢查和。接收端接收數據包后,首先執行hash計算,再與發送端所計算的該字段值比較,若兩者相等,表示數據完整,若在傳輸過程中數據遭修改,兩個計算結果不一致,則丟棄該數據包。
數據包結構:
如圖二所示,AH報頭插在IP報頭之后,TCP,UDP,或者ICMP等上層協議報頭之前。一般AH為整個數據包提供完整性檢查,但如果IP報頭中包含“生存期(Time To Live)”或“服務類型(Type of Service)”等值可變字段,則在進行完整性檢查時應將這些值可變字段去除。
相關推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |