一、IPSec認證
IPSec認證包頭(AH)是一個用于提供IP數據報完整性和認證的機制。其完整性是保證數據報不被無意的或惡意的方式改變,而認證則驗證數據的來源(識別主機、用戶、網絡等)。AH本身其實并不支持任何形式的加密,它不能保證通過Internet發送的數據的可信程度。AH只是在加密的出口、進口或使用受到當地政府限制的情況下可以提高全球Intenret的安全性。當全部功能實現后,它將通過認證IP包并且減少基于IP欺騙的攻擊機率來提供更好的安全服務。AH使用的包頭放在標準的IPv4和IPv6包頭和下一個高層協議幀(如TCP、UDP、ICMP等)之間。
AH協議通過在整個IP數據報中實施一個消息文摘計算來提供完整性和認證服務。一個消息文摘就是一個特定的單向數據函數,它能夠創建數據報的唯一的數字指紋。消息文摘算法的輸出結果放到AH包頭的認證數據(Authentication_Data)區。消息文摘5算法(MD5)是一個單向數學函數。當應用到分組數據中時,它將整個數據分割成若干個128比特的信息分組。每個128比特為一組的信息是大分組數據的壓縮或摘要的表示。當以這種方式使用時,MD5只提供數字的完整性服務。一個消息文摘在被發送之前和數據被接收到以后都可以根據一組數據計算出來。如果兩次計算出來的文摘值是一樣的,那么分組數據在傳輸過程中就沒有被改變。這樣就防止了無意或惡意的竄改。在使用HMAC-MD5認證過的數據交換中,發送者使用以前交換過的密鑰來首次計算數據報的64比特分組的MD5文摘。從一系列的16比特中計算出來的文摘值被累加成一個值,然后放到AH包頭的認證數據區,隨后數據報被發送給接收者。接收者也必須知道密鑰值,以便計算出正確的消息文摘并且將其與接收到的認證消息文摘進行適配。如果計算出的和接收到的文摘值相等,那么數據報在發送過程中就沒有被改變,而且可以相信是由只知道秘密密鑰的另一方發送的。
二、IPSec加密
封包安全協議(ESP)包頭提供IP數據報的完整性和可信性服務ESP協議是設計以兩種模式工作的:隧道(Tunneling)模式和傳輸(Transport)模式。兩者的區別在于IP數據報的ESP負載部分的內容不同。在隧道模式中,整個IP數據報都在ESP負載中進行封裝和加密。當這完成以后,真正的IP源地址和目的地址都可以被隱藏為Internet發送的普通數據。這種模式的一種典型用法就是在防火墻-防火墻之間通過虛擬專用網的連接時進行的主機或拓撲隱藏。在傳輸模式中,只有更高層協議幀(TCP、UDP、ICMP等)被放到加密后的IP數據報的ESP負載部分。在這種模式中,源和目的IP地址以及所有的IP包頭域都是不加密發送的。
IPSec要求在所有的ESP實現中使用一個通用的缺省算法即DES-CBC算法。美國數據加密標準(DES)是一個現在使用得非常普遍的加密算法。它最早是在由美國政府公布的,最初是用于商業應用。到現在所有DES專利的保護期都已經到期了,因此全球都有它的免費實現。IPSec ESP標準要求所有的ESP實現支持密碼分組鏈方式(CBC)的DES作為缺省的算法。DES-CBC通過對組成一個完整的IP數據包(隧道模式)或下一個更高的層協議幀(傳輸模式)的8比特數據分組中加入一個數據函數來工作。DES-CBC用8比特一組的加密數據(密文)來代替8比特一組的未加密數據(明文)。一個隨機的、8比特的初始化向量(IV)被用來加密第一個明文分組,以保證即使在明文信息開頭相同時也能保證加密信息的隨機性。DES-CBC主要是使用一個由通信各方共享的相同的密鑰。正因為如此,它被認為是一個對稱的密碼算法。接收方只有使用由發送者用來加密數據的密鑰才能對加密數據進行解密。因此,DES-CBC算法的有效性依賴于秘密密鑰的安全,ESP使用的DES-CBC的密鑰長度是56比特。