1.IPSec的目標
爲IPv4和IPv6提供具有較強的互操作能力,IPv4下IPSec爲可選,而IPv6下爲必選
高質量和基於密碼的安全
在IP層實現多種安全服務,包括:
訪問控制、無連接完整性、數據源驗證、抗重播、保密性和有限的業務流機密性
2.網絡層安全性
優點:
密鑰協商的開銷被大大的消減了
需要改動的應用程序很少,對用戶透明
很容易構建VPN
缺點:
很難解決“抗抵賴”之類的問題,即無法認證到每個個人
3.IPSec安全體系結構圖
4.IPSec安全體系的內容
IPSec並不是一個單一的協議,而是能夠在IP層提供互聯網通信安全的協議族。並沒有限定用戶必須使用何種特定的加密和鑑別算法。實際上IPSec是一個框架,它允許通信雙方選擇合適的算法和參數(如密鑰長度)。IPSec就是“IP安全(security)”的縮寫。
IPSec協議族中的協議可劃分爲三個部分:
(1)IP安全數據報格式的兩個協議:
AH:Authentication Header 驗證頭部
ESP:Encapsulation Security Payload 封裝安全載荷
其中,驗證頭部AH:
提供源點鑑別和數據完整性,但不能保密
驗證算法由SA指定
認證範圍:整個包
其中,封裝安全載荷ESP:
提供源點鑑別、數據完整性、加密及抗重播等安全服務
加密算法和身份驗證方法均由SA指定
IPSec支持IPv4和IPv6。在IPv6中,AH和ESP都是擴展首部的一部分。AH協議的功能都已包含在ESP協議中,因此使用ESP協議就可以不使用AH協議。使用AH或ESP協議的IP數據報稱爲IP安全數據報(或IPSec數據報)。
AH和ESP均用於兩種模式:傳輸模式和隧道模式。
傳輸模式:在整個傳輸層報文段的前後分別添加若干控制信息,再加上IP首部,構成IP安全數據報。
隧道模式:在原始IP數據報的前後分別添加若干控制信息,再加上新的IP首部,構成IP安全數據報。
兩種方式,IP安全數據報的IP首部都是不加密的,這樣數據報才能在各個路由器之間進行轉發,從源點安全地轉發到終點。所謂的“安全數據報”是指數據報的數據部分是經過加密的,並能夠被鑑別的。
(2)有關加密算法的三個協議(在此不討論)
(3)互聯網密鑰交換IKE(Internet Key Exchange)協議
密鑰管理(Key Management):
SA(Security Association)安全聯盟
ISAKMP定義了密鑰管理框架
IKE是目前正式確定用於IPSec的密鑰交換協議
5.IPSec的模式
隧道模式下,“原始IP首部”中,用兩臺通信的主機IP地址分別作爲源地址和目的地址,而在IP安全數據報的“新的IP首部”中,若兩臺路由器進行通信,則使用兩臺路由器的地址作爲源地址和目的地址;若一臺路由器和主機之間進行通信,則使用路由器和主機的IP地址分別作爲源地址和目的地址。
6.AH相關
1)AH頭格式
SPI:標識此包用什麼樣的算法和什麼樣的密鑰進行加密處理
2)AH的傳輸模式
3)AH的隧道模式
4)AH的處理過程
過程1
對於發出去的包的處理構造AH:
創建一個外出SA(手工或通過IKE)
產生序列號
填充AH頭的各字段
計算ICV(Integrity Check Value完整性檢驗值),內容包括IP頭中部分域、AH自身、上層協議數據
AH頭中的“下一頭部”置爲原IP報頭中的“協議”字段的值,原IP報頭的“協議”字段置爲51(代表AH)
過程2
對於接收到的包的處理:
分片裝配
查找SA 依據:目標IP地址、AH協議、SPI
檢查序列號
ICV檢查
7.ESP相關
1)ESP頭
2)ESP的傳輸模式
3)ESP的隧道模式
4)ESP的處理過程
過程1
對於發出去的包的處理:
查找SA
加密
封裝必要的數據,放到payload data域中,不同的模式封裝數據的範圍不同
增加必要的padding數據
加密操作
驗證
計算ICV,注意,針對加密後的數據進行計算
過程2
對於接收到的包(Inbound Packet)的處理:
分片裝配
查找SA 依據:目標IP地址、ESP協議、SPI
檢查序列號(可選,針對重放攻擊),使用一個滑動窗口來檢查序列號的重放
ICV檢查
解密 根據SA中指定的算法和密鑰、參數,對於被加密部分的數據進行解密 去掉padding 重構原始的IP包
8.安全聯盟SA
在發送IP安全數據報之前,在源實體和目的實體之間創建一條網絡層的邏輯連接,即安全關聯CA。這樣,傳統的互聯網中無連接的網絡層就變成了具有邏輯連接的一個層。安全關聯是從源點到終點的單向連接,它能夠提供安全服務。若要進行雙向安全通信,則兩個方向都需要建立安全關聯。
SA可以是兩部路由器、路由器與主機之間進行建立。建立安全關聯的路由器或主機,必須維護這條SA的狀態信息。
每個SA通過三個參數來標誌<spi,dst(src),protocol>
—安全參數索引SPI(Security Parameters Index)
—對方IP地址
—安全協議標識:AH or ESP
當路由器要通過SA發送安全數據報時,就必須讀取SA的這些狀態信息,以便知道如何把IP數據報進行加密和鑑別。
SA與IPSec系統中實現的兩個數據庫有關
—安全策略數據庫(SPD):指明什麼樣的數據報需要進行IPSec處理
—安全關聯數據庫(SAD):指明若需要使用IP安全數據報,應怎樣做(使用哪一個SA)
9.IPSec密鑰管理
包括密鑰的確定和分配
兩種方式:
—手工的
—自動的:Internet密鑰交換IKE(非IPSec專用)
作用:在IPSec通信雙方之間,建立起共享安全參數及驗證過的密鑰(建立“安全關聯”),IKE代表IPSec對SA進行協商,並對SADB數據庫進行填充
10.Internet密鑰交換協議—IKE
IKE協議:
負責在通信兩端安全地交換密鑰
RFC2409,是Oakley和SKEME協議的一種混合
基於ISAKMP框架
沿用了Oakley和SKEME的共享和密鑰更新技術
ISAKMP:
Internet Security Association and Key Management Protocol
RFC 2408
定義如何建立安全聯盟 並初始化密鑰
11.兩階段交換
第一階段:建立起ISAKMP SA——IKE SA
雙方(例如ISAKMP Servers)商定如何保護以後的通訊
,通信雙方建立一個已通過身份鑑別和安全保護的通道
此SA將用於保護後面的protocol SA的協商過程
第二階段:建立起針對其他安全協議的SA——IPSec SA
這個階段可以建立多個SA
此SA將被相應的安全協議用於保護數據或者消息的交換
12.IPSec—vpn要求
數據私密性
數據完整性
數據來源鑑別
防重放
13.IPSec—vpn協議和算法
IP安全協議:AH,ESP
數據加密標準:DES,3DES
公共密鑰密碼協議:Diffie—Hellman(D-H)
散列算法:MD5,SHA-1
公鑰加密算法:RSA
Internet密鑰交換:IKE
證書授權中心:CA
14.實驗
兩臺Windows2003服務器實現傳輸模式的VPN
兩臺Windows2003服務器實現隧道模式的VPN
設計:
通信一方必須告訴另一方自己的策略
通信雙方必須保持策略一致,用ping測試IPSec配置是否成功
隧道模式:IPSec必須成對出現,既有隧道進方向,又有隧道出方向
windows上實現IPSec和路由器上實現完全不同:Windows利用圖形界面,路由器利用一條一條的命令
若通信一方配置IPSec,另一方未配置,則ping不通,如下:
雙方都配置好IPSec,且參數一致,則結果有個協商過程,如下:
注意:
通信兩端的源地址和目的地址,可以爲一個特定IP地址,也可以爲一個特定的IP子網等,如下列表中的選項: