IPsec 通过验证包、加密包或同时执行这两种操作来保护 IP 包。IPsec 在 IP 模块内部执行,刚好在应用层之下。因此,Internet 应用程序可以直接利用 IPsec,而不必配置自身以使用 IPsec。若使用得当,IPsec 是保证网络通信安全的有效工具。
安全协议-IP 数据报保护机制。authentication header(验证头) (AH) 对 IP 包进行签名并确保完整性。数据报的内容没有加密,但是可以向接收者保证包的内容尚未更改,还可以向接收者保证包已由发送者发送。encapsulating security payload, ESP(封装安全有效负荷)对 IP 数据进行加密,因此在包传输过程中会遮蔽内容。ESP 还可以通过验证算法选项来确保数据的完整性。
安全关联数据库 (Security associations database, SADB)-将安全协议与 IP 目标地址和索引号进行关联的数据库。索引号称为 security parameter index, SPI(安全参数索引)。这三个元素(安全协议、目标地址和 SPI)会唯一标识合法的 IPsec 包。此数据库确保到达包目的地的受保护包可由接收者识别。接收者还可使用数据库中的信息解密通信、检验包未曾受到更改、重新组装包并将包发送到其最终目的地。
密钥管理-针对加密算法和 SPI 生成和分发密钥。
安全策略数据库 (Security policy database, SPD)-用于指定要应用到包的保护级别的数据库。SPD 过滤 IP 通信来确定应该如何处理包。包可能被废弃,可以毫无阻碍地进行传送,或者也可以受到 IPsec 的保护。对于外发包,SPD 和 SADB 确定要应用的保护级别。对于传入包,SPD 帮助确定包的保护级别是否可接受。如果包受 IPsec 保护,将在对包进行解密和验证之后参考 SPD。
IPsec 将安全机制应用于发往 IP 目标地址的 IP 数据报。接收者使用其 SADB 中的信息来检验到达的包是否合法并对其进行解密。应用程序也可以调用 IPsec,以便在每个套接字级别将安全机制应用于 IP 数据报。
请注意,套接字的行为不同于端口:
每个套接字的 SA 覆盖其在 SPD 中的相应端口项。
另外,如果端口上的套接字为连接状态,且随后对此端口应用 IPsec 策略,则使用此套接字的通信不受 IPsec 保护。
当然,将 IPsec 策略应用于端口之后,在此端口上打开的套接字将受 IPsec 策略保护。
Internet 工程任务组 (Internet Engineering Task Force, IETF) 已经发布了许多介绍 IP 层安全体系结构的互联网信息文档和标准 (Requests for Comment, RFC)。所有 RFC 均受 Internet 协会版权保护。有关指向 RFC 的链接,请参见 http://www.ietf.org/。以下 RFC 列表包含更为常见的 IP 安全参考:
RFC 2411,"IP Security Document Roadmap",1998 年 11 月
RFC 2401,"Security Architecture for the Internet Protocol",1998 年 11 月
RFC 2402,"IP Authentication Header",1998 年 11 月
RFC 2406,"IP Encapsulating Security Payload (ESP)",1998 年 11 月
RFC 2408,"Internet Security Association and Key Management Protocol (ISAKMP)",1998 年 11 月
RFC 2407,"The Internet IP Security Domain of Interpretation for ISAKMP",1998 年 11 月
RFC 2409,"The Internet Key Exchange (IKE)",1998 年 11 月
RFC 3554,"On the Use of Stream Control Transmission Protocol (SCTP) with IPsec",2003 年 7 月 [未在 Solaris 10 发行版中实现]
IPsec RFC 定义许多用于识别何时在系统上实现 IPsec 的术语。下表列出了 IPsec 术语,提供了常用的首字母缩写词并定义了每个术语。有关在密钥协商中使用的术语的列表,请参见表 22–1。
表 19–1 IPsec 术语、首字母缩写词和用法
IPsec 术语 |
首字母缩略词 |
定义 |
---|---|---|
Security association(安全关联) |
SA |
网络中两个节点之间的唯一连接。此连接由三个元素定义: 安全协议、安全参数索引和 IP 目标。IP 目标可以是 IP 地址或套接字。 |
Security associations database(安全关联数据库) |
SADB |
包含所有活动的安全关联的数据库。 |
Security parameter index(安全参数索引) |
SPI |
安全关联的索引值。SPI 是可以将具有相同 IP 目标和安全协议的 SA 区分开来的 32 位的值。 |
SPD |
确定外发包和传入包是否具有指定的保护级别的数据库。 |
|
Key exchange(密钥交换) |
|
生成非对称加密算法的密钥的过程。两种主要方法是 RSA 协议和 Diffie-Hellman 协议。 |
Diffie-Hellman protocol(Diffie-Hellman 协议) |
DH |
一种涉及密钥生成和密钥验证的密钥交换协议。通常称为经过验证的密钥交换。 |
RSA protocol(RSA 协议) |
RSA |
一种涉及密钥生成和密钥分发的密钥交换协议。此协议以其三个创建者 Rivest、Shamir 和 Adleman 命名。 |
Internet Security Association and Key Management Protocol(Internet 安全关联和密钥管理协议) |
ISAKMP |
用于建立 SA 属性格式以及协商、修改和删除 SA 的通用框架。ISAKMP 是处理 IPsec SA 的 IETF 标准。 |