
IPSec為整個網絡安全通信的基礎,支持TCP/IP協議的主機通信時都需要顺利获得IP層的處理,IP層的安全性由IPSec给予,它的工作過程如下圖所示:

第一时间在IKE處得到密鑰和SA的兩台主機,從IPSec驅動程序庫中找出相配的出站SA,處理在該SA的安全策略中要發送的IP數據包,並在IPSec報頭插入SA中的SPI,對數據包進行簽名和完整性檢查;另外對數據包加密,將其隨同SPI發送至IP層,再轉發至目的主機,實現保護機密的要求。
假設在一個Intranet中,主機都有處於激活狀態的IPSec策略,它們進行通信的過程如下:
(1)主機A給主機B發送一則消息。
(2)主機A上的IPSec驅動程序檢查IP篩選器,檢查數據包是否接受保護以及需要何種保護。
(3)驅動程序通知IKE開始安全協商。
(4)主機B上的IKE收到請求安全協商的通知。
(5)兩台主機建立第一階段SA,生成共享主密鑰。需要注意的是,若在此前通信中兩台主機已經建立起來,則可直接第二階段SA協商。
(6)協商建立第二階段入站SA和出站SA,SA包括密鑰和安全參數索引(SPI)。SPI是一個分配給每個SA的字符串,用於區分多個存在於接收端計算機上的安全關聯。
(7)主機A上的IPSec驅動程序使用出站SA數據包的檢查完整性簽名與/或加密。
(8)驅動程序將數據包傳輸到IP層,再由該層轉發至主機B。
(9)主機B網絡適配器驅動程序收到數據包並提交給IPSec驅動程序。
(10)主機B上的IPSec驅動程序使用入站SA檢查完整性簽名與/或對數據包進行解密。
(11)解密後的數據包被驅動程序提交上層TCP/IP驅動程序,再由該驅動程序提交主機B的接收應用程式。
以上IPSec工作流程中的所有操作,對用戶來說雖然很困難,但是完全透明的。
