IP安全协议(IPsec)为网络层提供了安全性。IPsec保护两个网络层实体间的IP数据报,包含主机和路由器。许多机构(公司、政府部门、非盈利性组织等)都使用IPsec来创建运行在公共因特网之上的虚拟专用网(virtual private network,VPN)。
在了解IPsec细节前,我们需要知道为网络层提供安全性的意义。在网络层实体间(例如,两台路由器间)如果具有机密性,那么发送实体加密它发送给接收实体的所有数据报的载荷。这种载荷可以是一个TCP报文段、一个UDP报文段、一个ICMP报文段等等。如果这样的网络层服务适当的话,从一个实体向其他实体发送的所有数据报都将隐形于任何可能嗅探该网络的第三方,发送的数据报包括电子邮件、Web网页、TCP握手报文和管理报文(例如ICMP和SNMP)。正因为如此,网络层安全性被认为提供了”地毯覆盖“。
除了机密性,网络层安全协议潜在地能够提供其他安全性服务。例如,它能够提供源鉴别,使得接受实体能够验证安全数据报的源。网络层安全协议能够提供数据完整性,使得接受实体能够核对在数据报传输过程中可能出现的任何篡改。网络层安全服务也能提供防止重放攻击功能,这意味着Bob能够检测任何攻击者可能插入的任何冗余数据报。IPsec提供了机密性、源鉴别、数据完整性和重放攻击防护。
一、IPsec和VPN
跨越在多个地理区域上的某机构常常希望有自己的IP网络,使它的主机和服务器能够以一种安全和机密的方式彼此发送数据。为了达到这个目标,该机构能够实际部署一个单独的物理网络,该网络包括路由器、链路和DNS基础设施且与公共因特网完全分离。这样一种为特定的机构专用的分立网络被称为专用网络(private network)。专用网络可能耗资巨大,因为该机构需要购买、安装和维护它自己的物理网络基础设施。
不同于部署和维护一个专用网络,如今许多机构在现有的公共因特网上创建VPN。使用VPN,机构办公室之间的流量经公共因特网而不是物理上独立的网络发送。而为了提供机密性,办公室之间的流量在进入公共因特网之前进行加密。图8.27显示了VPN的一个简单例子:
在这例子中,机构由一个总部、一个分支机构和旅行中的销售员组成,销售员通常从他们的旅馆房间接入因特网。(在该图中仅显示了一名销售员。)在这个VPN中,无论何时,位于总部的两台主机相互发送IP数据报或位于分支机构的两台主机要通信,它们都使用经典的IPv4(既无IPsec服务)。然而,当两台机构的主机经过跨越公共因特网的路径时,这些流量在进入因特网之前进行加密。
为了理解VPN的工作过程,浏览图4.27中的一个例子。当总部中的一台主机向某旅馆中的某销售员发送一个IP数据报时,总部中的网关路由器将经典的IPv4转换成为IPsec数据报,然后将该IPsec数据报转发进因特网。该IPsec数据报实际上具有传统的IPv4首部,因此在公共因特网中的路由器处理该数据报,仿佛它对路由器而言是一个传统的IPv4数据报。但是如图8.27所示,IPsec数据报的载荷包括了一个IPsec首部,该首部被用于IPsec处理;此外,IPsec数据报的载荷是被加密的。当该IPsec数据报到达销售员的便携机时,便携机的操作系统解密载荷(并提供其他安全服务,如验证数据完整性),并将解密的载荷传递给上层协议(例如,给TCP或UDP)。
接下来关注下应用IPsec生成VPN的细节。
二、AH协议和ESP协议
IPsec是一个相当复杂的整体,即它被定义为10多个RFC文档。两个重要的文档是RFC 4301和RFC 6071