簡單瞭解IPSEC VPN

IPSEC

VPN(虛擬專用網)我們最常提到的就是GRE隧道技術,除了實現隧道功能以外,還要實現數據安全,而在數據安全方面,其實就是要讓數據加密傳輸,至於如何對數據進行加密傳輸,這就是 IPsec(IP Security),IPsec 最突出,也是最主要的功能就是保證 VPN 數據的安全傳輸。

IPsec 能夠起到的功能有:

  • 數據源認證(保證數據是從真正的發送者發來的,而不是來自於第三方攻擊者)
  • 保護數據完整性(保證數據不會被攻擊者改動)
  • 數據私密性(保證數據不會被攻擊者讀取)
  • 防攻擊(防止數據被中間人截獲)
  • 防重放(可以認為是防止數據被讀取和改動)

IPsec 定義了使用什麼樣的方法來管理相互之間的認證,以及使用什麼樣的方法來保護數據,IPsec 只是定義了一些方法,而 IPsec 本身並不是一個協議。

IPsec 服務的三個協議

IKE(Internet Key Exchange)

ESP(Encapsulating Security Protocol)

AH(Authentication Header)

IKE是個混合協議,其中包含部分Oakley協議以及內置在ISAKMP協議中的部分 SKEME 協議,它是針對密鑰安全的,是用來保證密鑰的安全傳輸、交換以及存儲,主要是對密鑰進行操作,並不對用戶的實際數據進行操作。

ESP(Encapsulating Security Protocol)和 AH(Authentication Header)主要工作是如何保護數據安全,也就是如何加密數據,是直接對用戶數據進行操作的。

在實施 VPN 時,除了實現隧道功能以外,還要實現數據安全,兩者缺一不可;傳統的隧道技術,只能實現隧道而不能實現安全,而 IPSec 則可以為隧道提供數據保護功能,從而構建一個完整的 VPN 體系。IPsec 除了能夠為隧道提供數據保護來實現 VPN 之外,IPsec 還可以自己單獨作為隧道協議來提供隧道的建立。

IKE

由於公鑰加密算法的速度明顯慢於私鑰加密算法,IPsec 在保護數據時選擇了使用私鑰加密算法,保證密鑰的安全傳遞與交換。在密鑰的交換過程中,必須在雙方有認證機制,以防止被冒充。

認證

IKE 會在 VPN 對等體之間採用認證機制(Authentication),IKE 的認證方式有三種:

  • Pre-Shared Keys (PSK) 預共享密密鑰
  • X.509數字證書(第三方證書認證,即CA認證)
  • RSA(不經常用)

密鑰算法

在密鑰方面,IKE 使用了稱為 Diffie-Hellman(簡稱DH算法) 的算法在 VPN 對等體之間建立安全的密鑰用來加密數據,Diffie-Hellman 使用了極為複雜的數學算法,最後將在 VPN 對等體之間計算出只有它們自己才知道的密鑰。

Diffie-Hellman 算法目前有 3 種密鑰長度可選:

  • Groups 1 密鑰長度768bit,默認的密鑰長度
  • Groups 2 密鑰長度1024bit
  • Groups 5 密鑰長度 1536bit

用於數據加密的密鑰的值是靠算法計算出來的,是不能由管理員定義和修改的

SA(Security Association)

IPsec 的所有會話都是在通道中傳輸的,包括協商密鑰,傳遞用戶數據;這樣的通道稱為 SA,SA 並不是隧道,而是一組規則。SA 中的規則能夠保證所有數據的安全傳遞,因此 SA 中包含了之前提到的保證數據和密鑰安全時必不可少的認證、加密等安全策略,這些都要在 SA 中定義。

SA 並不是只有一個,由於密鑰安全和數據安全我們是分開對待的,所以 SA 有兩個,分別定義瞭如何保護密鑰和如何保護數據。

  • ISAKMP Security Association(IKE SA)
  • IPsec Security Association(IPsec SA)

每個SA都有lifetime,過期後SA便無效,IKE SA 要保護的對象是與密鑰有關的,IKE 並不直接關心用戶數據,並且 IKE SA是為安全協商 IPsec SA 服務的。 lifetime 默認為 86400秒,即一天。

IPsec SA 直接為用戶數據流服務,IPsec SA 中的所有安全策略都是為了用戶數據流的安全。IPsec SA 的 lifetime 默認為 3600 seconds,即 1 小時。

所以呢,我們也可以將 IKE 的整個運行過程分成兩個 Phase(階段),即 :

  • IKE Phase One
  • IKE Phase Two

IKE Phase One 的主要工作就是建立 IKE SA(ISAKMP SA),IKE SA 的協商階段被稱為 main

mode(主模式)。IKE SA 之間需要協商的套安全策略包括:

  • 認證方式:PSK、PKI、RSA
  • 加密算法:DES,3DES,AES 128,AES 192,AES 256,默認為 DES
  • HASH算法:SHA-1,MD5,默認為 SHA-1
  • 密鑰算法:Groups 1,Group 2,Group 5,默認為 Groups 1

IKE Phase Two 的目的是要建立 IPsec SA,IPsec SA 是基於 IKE SA 來建立的,建立 IPsec SA 的過

程稱為 快速模式(quick mode)。IPsec SA 同樣也需要協商出一整套安全策略,其中包括:

  • 加密算法:DES,3DES,AES 128,AES 192,AES 256,默認為 DES
  • HASH算法:SHA-1,MD5,默認為 SHA-1

IPSEC模式

IPsec Mode 分兩種:

  • Tunnel mode
  • Transport mode

隧道模式:

IPsec 中的 Tunnel mode 就擁有著與 GRE 相同的隧道功能,那就是將數據包原來的私有 IP 地址先隱藏起來,在外部封裝上公網 IP,等數據包通過公網 IP 被路由到該 IP 的路由器後,再由該路由器剝除數據包外層的公網 IP,從而發現數據包的私有IP 後,再通過私有 IP 將數據包發到真正的目的地。

當 IPsec 工作在 Tunnel mode 時,數據包的封裝過程如下:


簡單瞭解IPSEC VPN

Tunnel模式

傳輸模式:

IPsec 除了為隧道提供數據保護之外,也可以提供隧道的建立,如果 IPsec 自己單獨作為隧道協議來使用,那麼 IPsec 就不需要藉助任何其它隧道協議就能獨立實現 VPN 功能;這些都是由 IPsec Mode 來控制的。如果 IPsec 要自己獨立實現隧道來完成 VPN 功能,就需要工作在 Tunnel mode。

Tunnel模式的 IPsec 不僅實現了隧道功能,也保留了數據安全,實現了完整的 VPN功能。如果 IPsec 不需要實現隧道功能,而只需要實現保護數據的安全功能,就只要工作在 Transport mode 即可,因為 Transport 模式的 IPsec 只有安全功能而沒有隧道功能,所以還要再配合其它隧道協議,最終實現完整的 VPN 功能。

當 IPsec 工作在 Transport mode 時,數據包的封裝過程如下:


簡單瞭解IPSEC VPN

傳輸模式

從圖中可以看出,當 IPsec 工作在 Transport mode 時,IPsec 包頭是添加在原始 IP包頭與上層協議(如傳輸層)之間的,所以當通過 Internet 連接的遠程網絡之間需要直接使用對方私有 IP 地址來互訪時,此封裝不可行,因為 Transport mode 沒有實現隧道功能,所以如果要實現 VPN 功能,Transport 模式的 IPsec 就應該配合 GRE over IPsec 來使用。


分享到:


相關文章: