系统管理指南:IP 服务

IPsec 保护机制

IPsec 提供了两种用于保护数据的安全协议:

AH 使用验证算法来保护数据。ESP 使用加密算法来保护数据。ESP 还可以使用验证算法来保护数据。算法的每种实现方式称为机制

验证头

authentication header(验证头)为数据报提供了数据验证、高完整性以及重放保护。AH 保护 IP 数据报的更为重要的部分。如下图所示,AH 插在 IP 数据包头和传输头之间。

图显示了 IP 数据包头和 TCP 数据包头之间的 AH 头。

传输头可以是 TCP、UDP、SCTP 或 ICMP。如果使用的是 tunnel(隧道),则传输头可以是另一个 IP 数据包头。

封装安全有效负荷

encapsulating security payload, ESP(封装安全有效负荷)模块为 ESP 所封装的内容提供了保密性。ESP 也提供 AH 提供的服务。但是,ESP 仅为 ESP 所封装的数据报部分提供保护。ESP 提供可选的验证服务以确保受保护的包的完整性。因为 ESP 使用启用了加密的技术,因此提供 ESP 的系统可能会受进出口控制法制约。

由于 ESP 封装其数据,因此 ESP 仅保护数据报中跟在其后的数据,如下图所示。

图显示了 IP 数据包头和 TCP 数据包头之间的 ESP 头。TCP 数据包头由 ESP 头进行加密。

在 TCP 包中,ESP 仅封装 TCP 数据包头及其数据。如果包是 IP-in-IP 数据报,则 ESP 会保护内部的 IP 数据报。由于每个套接字的策略允许自封装,因此,ESP 可以在需要时封装 IP 选项。

如果设置了自封装,会生成 IP 数据包头的副本来构建 IP-in-IP 数据报。例如,如果未在 TCP 套接字上设置自封装,会以下列格式发送数据报:


[ IP(a -> b) options + TCP + data ]

如果在 TCP 套接字上设置了自封装,则会以下列格式发送数据报:


[ IP(a -> b) + ESP [ IP(a -> b) options + TCP + data ] ]

有关进一步介绍,请参见IPsec 中的传输模式和隧道模式

使用 AH 和 ESP 时的安全注意事项

下表比较了由 AH 和 ESP 提供的保护。

表 19–2 由 IPsec 中的 AH 和 ESP 提供的保护

协议 

包范围 

保护 

防止的攻击 

AH 

保护包中从 IP 数据包头到传输层头的内容 

提供高完整性、数据验证: 

  • 确保接收者接收到的正是发送者发送的内容

  • 在 AH 没有启用重放保护时容易受到重放攻击影响

重放、剪贴 

ESP 

保护数据报中紧跟在 ESP 之后的包。 

使用加密选项时,对 IP 数据报进行加密。保证保密性 

窃听 

使用验证选项时,提供与 AH 相同的保护 

重放、剪贴 

同时使用两个选项时,提供高完整性、数据验证和保密性 

重放、剪贴、窃听 

IPsec 中的验证算法和加密算法

IPsec 安全协议使用两种类型的算法,即验证和加密。AH 模块使用验证算法。ESP 模块可以使用加密算法以及验证算法。您可以使用 ipsecalgs 命令获取系统上的算法及其属性的列表。有关更多信息,请参见 ipsecalgs(1M) 手册页。您也可以使用 getipsecalgbyname(3NSL) 手册页中介绍的功能来检索算法属性。

Solaris 系统上的 IPsec 利用 Solaris 加密框架来使用算法。此框架提供了一个主要的算法仓库,同时还提供了其他服务。使用此框架,IPsec 可以利用高性能的加密硬件加速器。此框架还提供了资源控制功能。例如,您可以使用此框架来限制在内核的加密操作中花费的 CPU 时间。

详细信息,请参见以下内容:

IPsec 中的验证算法

验证算法将生成完整性校验和值或基于数据和密钥的摘要。AH 模块使用验证算法。ESP 模块也可以使用验证算法。

IPsec 中的加密算法

加密算法使用密钥来加密数据。IPsec 中的 ESP 模块使用加密算法。算法以块大小为单位对数据进行操作。

不同的 Solaris 10 OS 发行版提供不同的缺省加密算法。


注意 – 注意 –

从 Solaris 10 7/07 发行版开始,将不会在您的系统中添加 Solaris 加密工具包。该工具包降低了您系统上加密的修补程序级别。此工具包与系统上的加密不兼容。