前言

在之前的章节中,我们介绍了IPv6孤岛之间通过IPv4网络进行信息交流的方法之一——隧道技术,在这一章将更详细的说明如何建立安全的隧道和虚拟专用网络。


安全隧道的建立

隧道(Tunneling)技术是一种在两个网络节点之间建立逻辑连接,传输数据的方法。

发送端的出口路由器上,原始数据包会被封装在一个新的外包头(Outer Header)内,然后根据外包头中的信息将隧道数据包路由到目的地,最后在接收端路由器处解封装外包头。我们把原始数据包(Original Packet)的包头称为内包头(Inner Header),添加了外包头后的整个数据包称为隧道数据包(Tunneled Packet)。

根据前面的描述,我们可以知道发送端的终端设备只有原始数据包,而不存在外包头,故也不知道其使用了隧道技术,只有路由器知道使用了隧道通讯。

隧道技术可以通过各种协议来实现,例如不安全的点对点隧道协议(如GRE、L2TP)和安全隧道协议(如IPsec)。在这一章中,主要介绍安全隧道协议IPsec。

IPsec(Internet Protocol Security)是一组用于保护IP通信的协议套件。它提供了对数据进行加密、身份验证和完整性验证的功能,以确保在IP网络上传输的数据的安全性。以下是IPsec协议的主要特点和功能:

  • 保密性(Confidentiality): IPsec可以对传输的数据进行加密,以防止未经授权的访问者查看数据。
  • 完整性(Integrity): IPsec使用哈希函数对数据进行验证,以确保数据的完整性,防止数据在传输过程中被篡改。
  • 身份验证(Authentication): IPsec提供了对通信双方进行身份验证的机制,以确保通信的对等方是合法的。
  • 防重放(Anti-replay): IPsec可以防止攻击者在通信中拦截和重放之前捕获的有效数据包,从而导致对网络通信的干扰或欺骗。

IPsec有两个主要的子协议:AH(Authentication Header,身份验证头)和ESP(Encapsulating Security Payload,封装安全载荷)。

AH通过使用哈希函数验证数据包的完整性来保护IP数据包免受干扰,它可以有效防止数据被修改

而ESP通过使用对称加密算法加密整个数据包来保护数据的机密性,它可以有效防止数据被读

IPsec支持两种主要的操作模式:传输模式(Transport Mode)和隧道模式(Tunnel Mode)。传输模式适用于两个端系统之间的安全通信,而隧道模式通常用于网关到网关之间或者主机到网关之间的安全通信,在这一章中只会涉及到其隧道模式的内容。

当使用AH协议时,通常会使用MD5(Message Digest Algorithm 5)或SHA(Secure Hash Algorithm)这样的哈希函数来实现消息认证码(MAC)功能。

  • MD5:MD5是一种广泛使用的哈希函数,用于生成128位(16字节)的哈希值。在AH协议中,MD5被用于计算数据包的MAC,用于验证数据的完整性。发送方会使用数据包的有效负载以及其他相关信息作为输入,经过MD5算法处理后生成的哈希值作为MAC附加在数据包中。接收方在接收数据包后,会使用相同的算法和相同的输入数据来计算MAC,然后将其与接收到的MAC进行比较,以验证数据的完整性。
  • SHA:SHA是一组密码哈希函数族,包括SHA-1、SHA-256、SHA-384等不同长度的哈希值。在AH协议中,通常会使用SHA-1或者更强大的SHA-256来生成MAC。它们的工作原理类似于MD5,但由于MD5存在一些安全性漏洞,SHA-1和SHA-256等更安全的算法更常用于安全应用中。

在传输模式下,AH报头添加在IP报头之后。在隧道模式中,AH报头添加在外包头和内包头之间。

当使用ESP协议时,通常会使用加密算法来对数据进行加密,以保护数据的机密性。下面是常见的加密算法:

  • DES(Data Encryption Standard):DES是一种对称加密算法,使用56位密钥对数据进行加密和解密。虽然DES在过去被广泛使用,但由于其密钥长度较短,现在已经不再被认为是安全的加密算法,因为它容易受到暴力破解攻击。
  • 3DES(Triple Data Encryption Standard):3DES是DES的改进版本,使用三个56位密钥对数据进行三次加密。尽管3DES比DES更安全,但由于其运算速度较慢,已经逐渐被更先进的加密算法所取代。
  • AES(Advanced Encryption Standard):AES是一种对称加密算法,设计用于替代DES和3DES。它支持多种密钥长度,包括128位、192位和256位,提供了更高的安全性和更快的运算速度,因此在当前的安全应用中被广泛采用。

ESP的报头包含有几个部分,和AH类似的,在传输模式下,AH报头添加在IP报头之后,而尾部和验证添加在最后。在隧道模式中,AH报头添加在外包头和内包头之间,尾部和验证添加在最后。

在实际情况中,可能还有AH和ESP混用的情况,一般来说,AH报头会在ESP前面。


虚拟专用网络

私有网络(Private Network)是指一种基于计算机和通信设备的局域网(LAN)或广域网(WAN),其访问权限受到限制,通常仅允许特定用户或组织内部的设备进行通信和数据交换。

我们在之前的学习中知道,建立这样的网络连接需要物理/虚拟的链路。铺设物理链路的成本非常的高,更多情况下我们会选择运营商已经有的链路建立虚拟链路连接。我们将使用公共网络建立虚拟链路而形成的网络技术称为虚拟专用网络(Virtual private network, VPN)

虚拟专用网络(Virtual Private Network,VPN)是一种通过公共网络(通常是互联网)建立私密、安全连接的技术。它通过加密和隧道协议等技术手段,为用户在公共网络上创建一条加密通道,使得用户能够安全地访问私人网络资源,就像身处于私人网络内部一样。

虚拟专用网络的特点包括:

  1. 加密通信: VPN通过加密技术对通信数据进行加密处理,确保数据在传输过程中不被窃听或篡改,从而保障用户通信的安全性和隐私性。常见的加密算法有:DES, 3DES, AES等。
  2. 隧道技术: VPN利用隧道协议在公共网络上建立专用通道,将用户的数据包封装起来,安全地传输到目的地,同时防止数据在传输途中被截获或篡改。常使用散列算法,如MD5或SHA
  3. 身份验证: VPN通常需要用户进行身份验证,以确保只有授权用户能够访问私人网络资源,提高网络访问的安全性。例如使用PSK或RSA

虚拟专用网络主要有两种类型:站点对站点(Site-to-Site)VPN和远程访问(Remote-Access)VPN.

  • 站点对站点(Site-to-Site)VPN站点对站点VPN建立在两个或多个网络之间,允许这些网络之间的通信,通常是两个地理位置之间的网络。用于连接不同地点的企业网络,例如,连接公司总部和分支机构的网络,或者连接不同数据中心之间的网络。
  • 远程访问(Remote-Access)VPN远程访问VPN允许个人用户或远程办公者通过互联网安全地连接到私有网络,以便访问内部资源。常用于提供远程员工或移动用户安全地访问公司网络资源,例如文件、应用程序或内部网站等。

在Site-to-Site VPN中,网络中的主机不知道使用了VPN技术,因为它是建立在两个组织网络的路由器上的。而在Remote-Access VPN中,主机知道自己使用了VPN连接到私有网络中

因此,Site-to-Site VPN中主机只存在inner header,outer header是在出口路由器上添加的。而Remote-Access VPN是在主机上连接VPN技术,在建立隧道连接时只存在outer header (主机的公网地址 -> 组织路由器地址),当隧道建立后,组织路由器会分配一个内部地址给主机,此时才存在inner header。相当于将该主机接到组织内部之中,并给其分配了一个内网地址后才能传输数据。

既然用到了隧道技术,我们主要学习使用了IPsec保护的VPN。IPsec VPN是一种利用IPsec协议来实现安全的虚拟私有网络连接的技术。它提供了对IP数据包进行加密、身份验证和数据完整性验证的能力,用于保护网络通信的安全性。

在隧道建立时,双方将建立一个安全关联(Security Associations,SA),用于描述两个通信节点之间的安全参数,包括加密算法、认证算法、密钥等。

IPsec VPN操作大致可以分成5个部分:

  1. 分流流量:当有需要通过IPsec进行安全传输的数据流量产生时,IPsec过程才被启动。
  2. 生成IKE SA:在第一阶段,对等方之间协商建立IKE SA,用于安全地交换后续阶段所需的密钥和参数的安全通道。IKE(Internet Key Exchange)是用于在IPsec对端之间协商密钥的协议。(第一层加密)
  3. 生成IPsec SA进行数据传输:在IKE第二阶段,通过IKE SA,通信节点协商IPsec策略,确定IPsec安全关联(IPsec SA)所需的安全参数,如加密算法、认证算法和密钥等。建立IPsec SA后,即可用于实际数据传输。(第二层加密)
  4. 数据传输:在建立了IPsec安全关联之后,数据传输过程开始。数据在IPsec通道上进行加密传输,并在传输过程中经过认证和完整性保护,以确保数据的安全性和完整性。
  5. 隧道终止:当数据传输结束或需要终止IPsec连接时,IPsec隧道被终止。在这一阶段,安全关联(SA)被关闭,IPsec通道被释放,以结束安全连接,停止数据传输。

为了防止攻击者的攻击,在上面的过程中使用了两层加密。IKE Phase 1用于加密Phase 2的隧道信息

在第一阶段中,常使用之前提过的加密算法(DES、3DES或AES),并使用哈希函数(MD5或SHA)用于保证数据完整性。在秘钥交换中,常使用Diffie Hellman组用于保证秘钥的安全。

Diffie-Hellman密钥交换是一种公开密钥密码学中的协议,用于安全地在两个通信方之间交换密钥,而不需要事先共享密钥。Diffie-Hellman交换的核心思想是使通信方能够协商共享的密钥,而不将密钥直接传输。它基于一个数学问题:离散对数问题。

下面是Diffie-Hellman密钥交换的基本步骤:

  1. 参数选择:两个通信方共同选择两个素数
  2. 公开参数:通信方将选定的的值公开传输给对方。
  3. 私密参数生成:每个通信方设置一个私钥x1x2。这些私密参数只有通信方自己知道,并且不会被传输到对方。
  4. 本地计算公钥:每个通信方使用自己的私钥和公开参数计算出一个本地的公钥y1y2
  5. 交换公钥:通信双方将本地计算得到的公钥发送给对方。
  6. 计算共享密钥:每个通信方使用收到的对方的公钥和自己的私密参数计算出共享的密钥。

如图展示这个过程中的计算:

但这个加密方式可以通过中间人攻击(Man-in-the-middle attack)破解,故需要二阶段的加密。二阶段的加密比这个外层加密复杂得多。它可能使用基于TCP的连接,同时加入AH或ESP报头,并使用加密、完整性验证等方法提高数据的安全性。

这里的一切都有始有终,却能容纳所有的不期而遇和久别重逢。
最后更新于 2024-04-05