IPSec协议是一个协议套件,为IP数据包中封装的所有上层数据提供透明的安全保护,无需修改上层协议。IPSec的目的是在因特网协议栈中的IP层提供安全业务。它使系统能按需选择安全协议,决定服务所使用的算法及放置需求服务所需密钥到相应位置。网络通信易于受到各种攻击, IPSec旨在为端系统提供相互身份验证的方法,保护一条或多条主机与主机间、安全网关与安全网关间、安全网关与主机间的路径以及传输中的数据不被窃取和攻击。
IPSec依靠密码技术保护各种环境中的通信,包括在专用网中计算机之间的通信链路,公司站点之间的链路,以及拨号用户和公司LAN之间的链路。IPSec也用于贸易伙伴之间(外联网连接)和电子商务应用。
IPSec是一个为IPv4和IPv6设计的“隧道协议”。隧道是在一对主机、一对安全网关(通常是防火墙),或一个安全网关和一个主机之间的“路径”。可以建立一个隧道,运载所有的通信量,或在相同端点之间建立多个隧道,支持不同的TCP业务。
IPSec的一个重要特征是它能提供跨越IP网络的端到端安全。低层安全协议只能提供单一链路的保护。但是应该把IPSec和上层会话协议,例如SSL(安全套接层),区分开。SSL已经成为Web服务器和客户机之间安全通信的支柱。SSL仍然是小量用户交易(例如从Amazon.com买一本书)的首选方法。但是SSL仅确保了会话安全,而非像IPSec那样保护主机之间的IP连接。
IPSec有多种模式和业务,如下所述:
数据来源验证 分组的头部已经签了名(通过一个散列算法来进行),因此接收者可以相信分组是可信的。
无连接完整性 签名过程可以向接收者确保数据分组在传输过程中没有被更改。
机密性 全部或部分分组可以用加密来隐藏他们的内容。加密隐藏了传输过程中原始分组的IP头,因此外部分组需要有一个可以被中间转发系统读取的头部。
重放保护 通过保护/隐藏重要分组信息,IPSec防止某人获取分组,并在以后重放它们, 从而进入系统。
密钥管理 IPSec使用IKE (因特网密钥交换)管理各方面之间安全密钥的交换。IKE是一个混合协议,它实际上使用到了ISAKMP协议(Internet 安全关联和密钥管理协议)、Oakley协议(密钥确定协议)和描述支持匿名和快速密钥刷新的密钥交换的SKEME协议。IKE除了实现通信双方的密钥材料交换,还使用ISAKMP实现IPSec的安全关联。
这些目标是通过使用两大传输安全协议,头部认证(AH) 和封装安全负载 (ESP),以及密钥管理程序和协议的使用来完成的。所需的 IPsec 协议集内容及其使用的方式是由用户、应用程序、和/或站点、组织对安全和系统的需求来决定。AH和ESP安全报头都可以单独使用,但是为了确保安全性,它们通常一起使用。当把加密和验证结合起来,就可以在主机之间传输具有验证和机密性的IP包。一般通过捆绑传输和隧道传输来实现两者的结合。
IPSec出现得较晚。部分原因是它最初是为IPV6设计的,而IPv6的发布日期被改动了许多次。供应商产品之间的互用性也有问题。加密是处理器密集型的,在某些环境下可能不被支持。但是像Intel这样的供应商已经开发了安全适配器,通过卸载加密加速IPSec的处理。