1. 程式人生 > >什麼是IPSec認證與加密?

什麼是IPSec認證與加密?

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位元。