第21 章• IP安全体系结构(参考) 485
您的名称系统受到威胁。
安全漏洞通常是由工具使用不当造成的,而并非由工具本身引起。应慎用ipsecconf 命令。
请使用控制台或其他硬连接的TTY,它们可以提供最安全的操作模式。
ipsecalgs 命令
Solaris 加密框架为IPsec 提供验证算法和加密算法。可以使用ipsecalgs 命令查询和修改
IPsec 支持的协议列表和算法列表。ipsecalgs 命令以表格格式将此信息存储在IPsec 协议和
算法文件/etc/inet/ipsecalgs 中。此文件决不能手动编辑。
有效的IPsec 协议和算法由RFC 2407 中介绍的ISAKMP domain of interpretation, DOI(解释
域) 进行说明。通常,DOI(解释域)定义数据格式、网络通信交换类型,以及命名安全
相关信息的约定。安全策略、加密算法和加密模式都属于安全相关信息。
具体而言,ISAKMP DOI 为有效的IPsec 算法及其协议(PROTO_IPSEC_AH 和
PROTO_IPSEC_ESP)定义命名约定和编号约定。每个算法都仅与一项协议相关联。这些
ISAKMP DOI 定义位于/etc/inet/ipsecalgs 文件中。算法和协议编号由Internet 编号分配
机构(Internet Assigned Numbers Authority, IANA) 定义。使用ipsecalgs 命令,可以针对
IPsec 扩展算法列表。
有关算法的更多信息,请参阅ipsecalgs(1M) 手册页。有关Solaris 加密框架的更多信息,
请参见《System Administration Guide: Security Services》中的第13 章,“Solaris Cryptographic
Framework (Overview)”。
IPsec 的安全关联数据库
有关IPsec 安全服务加密材料的信息保留在安全关联数据库(SADB) 中。安全关联(security
association, SA) 保护传入包和外发包。SADB 可能由某个用户进程维护,也可能由多个协作
进程(以特定类的套接字发送消息)维护。这种维护SADB 的方法类似于route(7P) 手册页
中介绍的方法。只有超级用户或承担等效角色的用户才能访问此数据库。
in.iked 守护进程和ipseckey 命令使用pf_key 套接字接口维护SADB。有关SADB 如何处理
请求和消息的更多信息,请参见pf_key(7P) 手册页。
用于在IPsec 中生成密钥的实用程序
IKE(Internet 密钥交换)协议提供自动执行的IPv4 和IPv6 地址密钥管理。有关如何设置
IKE 的说明,请参见第23 章。手动加密实用程序是ipseckey 命令,将在ipseckey(1M) 手册
页中介绍。
不使用自动密钥管理时,可以使用ipseckey 命令手动填充安全关联数据库(security
associations database, SADB)。调用不带任何参数的ipseckey 命令时,此命令将进入交互模
式并提示您输入项。有些命令明确要求使用特定的安全关联(security association, SA) 类型,
而有些命令则允许指定SA类型并可对所有SA类型执行操作。
ipsecalgs 命令
486 系统管理指南:IP 服务• 2006 年8 月
虽然ipseckey 命令只有有限的常规选项,但是此命令支持丰富的命令语言。您可以指定使
用专用于手动加密的程序接口发送请求。有关其他信息,请参见pf_key(7P) 手册页。
ipseckey 的安全注意事项
超级用户或拥有网络安全配置文件的角色可以使用ipseckey 命令输入敏感的密钥加密信
息。如果入侵者获得对此文件的访问权,便会威胁IPsec 通信的安全。当处理加密材料和使
用ipseckey 命令时,您应该考虑以下问题:
是否已更新加密材料?定期更新密钥是一项基本的安全措施。密钥更新可以防止遭到潜
在的算法和密钥漏洞攻击,并且限制对已公开的密钥的破坏。
TTY 是否联网?ipseckey 命令是否处于交互模式?
在交互模式下,加密材料的安全即为此TTY 通信的网络路径的安全。应该避免在明
文telnet 或rlogin 会话中使用ipseckey 命令。
甚至本地窗口也可能受到读取窗口事件的隐藏程序的攻击。
是否已使用-f 选项?是否通过网络访问文件?此文件是否完全公开?
入侵者可能会在系统读取网络挂载的文件时也读取此文件。您应该避免使用包含加
密材料的完全公开文件。
保护您的名称系统。如果发生以下两种情况,则您的主机名不再值得信任:
您的源地址是可以在网络中查找到的主机。
您的名称系统受到威胁。
安全漏洞通常是由工具使用不当造成的,而并非由工具本身引起。应慎用ipseckey 命令。
请将控制台或其他硬连接的TTY 用作最安全的操作模式。
其他实用程序的IPsec 扩展
ifconfig 命令具有在通道接口上管理IPsec 策略的选项。snoop 命令可以解析AH头和ESP
头。
ifconfig 命令和IPsec
为了支持IPsec, ifconfig 命令提供以下安全选项:
auth_algs
encr_auth_algs
encr_algs
您必须在一次调用中为通道指定所有IPsec 安全选项。例如,如果只使用ESP 保护通信,则
一次使用两个安全选项配置通道ip.tun0,如下所示:
# ifconfig ip.tun0 ... encr_algs 3des encr_auth_algs md5
其他实用程序的IPsec 扩展
第21 章• IP安全体系结构(参考) 487
同样,ipsecinit.conf 项一次使用两个选项配置通道,如下所示:
# WAN traffic uses ESP with 3DES and MD5.
{} ipsec {encr_algs 3des encr_auth_algs md5}
auth_algs 安全选项
此选项使用指定的验证算法为通道启用IPsecAH。auth_algs 选项的格式如下所示:
auth_algs authentication-algorithm
对于算法,您可以通过指定一个数字或一个算法名称(包括参数any)来表示没有特定的算
法首选项。要禁用通道安全性,请指定以下选项:
auth_algs none
要想获得一个可用验证算法的列表,请运行ipsecalgs 命令。
注– auth_algs 选项不能用于NAT-Traversal。有关更多信息,请参见第450 页中的“IPsec 和
NAT 遍历”。
encr_auth_algs 安全选项
此选项使用指定的验证算法为通道启用IPsec ESP。encr_auth_algs 选项的格式如下所示:
encr_auth_algs authentication-algorithm
对于算法,您可以通过指定一个数字或一个算法名称(包括参数any)来表示没有特定的算
法首选项。如果指定一个ESP 加密算法,但是未指定验证算法,则ESP 验证算法的缺省值
为参数any。
要想获得一个可用验证算法的列表,请运行ipsecalgs 命令。
encr_algs 安全选项
此选项使用指定的加密算法为通道启用IPsec ESP。encr_algs 选项的格式如下所示:
encr_algs encryption-algorithm
对于算法,您可以指定一个数字或一个算法名称。要禁用通道安全性,请指定以下选项:
encr_algs none
如果指定一个ESP 验证算法,但是未指定加密算法,则ESP 加密算法的缺省值为参数null。
要想获得一个可用加密算法的列表,请运行ipsecalgs 命令。
其他实用程序的IPsec 扩展
488 系统管理指南:IP 服务• 2006 年8 月
snoop 命令和IPsec
snoop 命令可以解析AH头和ESP 头。由于ESP 对自己的数据进行加密,因此,snoop 命令
不能查看受ESP 保护的加密头。AH不会对数据进行加密。因此,可以使用snoop 命令来检
查受AH保护的通信。此命令的-V 选项显示何时对包使用AH。有关更多详细信息,请参见
snoop(1M) 手册页。
有关受保护包中的详细snoop 输出样例,请参见第479 页中的“如何检验包是否受IPsec 保
护”。
其他实用程序的IPsec 扩展
第21 章• IP安全体系结构(参考) 489
490
Internet 密钥交换(概述)
Internet 密钥交换(Internet Key Exchange, IKE) 自动进行IPsec(Internet 协议安全)的密钥管
理。本章包含有关IKE 的以下信息:
第491 页中的“使用IKE 进行密钥管理”
第492 页中的“IKE 密钥协商”
第493 页中的“IKE 配置选择”
第494 页中的“IKE 和硬件加速”
第494 页中的“IKE 和硬件存储”
第495 页中的“IKE 实用程序和文件”
第495 页中的“Solaris 10 发行版对IKE 的更改”
有关实现IKE 的说明,请参见第23 章。有关参考信息,请参见第24 章。有关IPsec 的信
息,请参见第19 章。
使用IKE 进行密钥管理
对IPsec 安全关联(security association, SA) 的加密材料进行的管理称为密钥管理。自动密钥
管理需要用于创建、验证和交换密钥的安全通信通道。Solaris 操作系统使用Internet 密钥交
换(Internet Key Exchange, IKE) 自动进行密钥管理。IKE 可轻松扩展以便为大量通信提供安
全通道。IPv4 和IPv6 包中的IPsec SA可以利用IKE。
在装有SunTM Crypto Accelerator 1000 板或Sun Crypto 加速器4000 板的系统上使用IKE 时,可
以将公钥操作转移到加速器上。操作系统资源不用于公钥操作。在装有Sun Crypto 加速器
4000 板的系统上使用IKE 时,可以将证书、公钥和私钥存储在该板上。脱离系统的密钥存
储提供了进一步的保护。
22 第2 2 章
491
IKE 密钥协商
IKE 守护进程in.iked 以受保护方式协商和验证SA的加密材料。该守护进程使用来自
Solaris 操作系统提供的内部函数的随机密钥种子。IKE 提供完全转发保密(perfect forward
secrecy, PFS)。在PFS 中,不能使用保护数据传输的密钥派生其他密钥。此外,不重新使用
用于创建数据传输密钥的种子。请参见in.iked(1M) 手册页。
当IKE 守护进程搜索到远程系统的公共加密密钥时,本地系统就可以使用该密钥。该系统
使用远程系统的公钥对消息进行加密。消息只能由该远程系统读取。IKE 守护进程分两个阶
段执行作业。这两个阶段称为交换。
IKE 密钥术语
下表列出在密钥协商中使用的术语,提供其常用的首字母缩略词,并给出每个术语的定义
和用法。
表22–1密钥协商术语及其首字母缩略词和用法
密钥协商术语
首字母缩略
词定义和用法
Key exchange(密钥
交换)
生成非对称加密算法的密钥的过程。两种主要方法是RSA协议和
Diffie-Hellman 协议。
Diffie-Hellman
protocol
(Diffie-Hellman 协
议)
DH 一种涉及密钥生成和密钥验证的密钥交换协议。通常称为经过验证
的密钥交换。
RSAprotocol(RSA
协议)
RSA 一种涉及密钥生成和密钥传输的密钥交换协议。此协议以其三个创
建者Rivest、Shamir 和Adleman 命名。
Perfect forward
secrecy(完全转发
保密)
PFS 仅适用于经过验证的密钥交换。PFS 确保密钥的长期保密材料不会
影响来自以前通信的已交换密钥的保密性。
在PFS 中,不能使用保护数据传输的密钥派生其他密钥。此外,也
不能使用保护数据传输的密钥的源派生其他密钥。
Oakley method
(Oakley 方法)
一种以安全方式为阶段2 建立密钥的方法。此协议类似于密钥交换
的Diffie-Hellman 方法。与Diffie-Hellman 类似,Oakley 组密钥交换
涉及密钥生成和密钥验证。Oakley 方法用于协商PFS。
IKE 阶段1 交换
阶段1 交换称为主模式。在阶段1 交换中,IKE 使用公钥加密方法向对等IKE 实体进行自我
验证。结果是Internet 安全关联和密钥管理协议(Internet Security Association and Key
Management Protocol, ISAKMP) 安全关联(security association, SA)。ISAKMP SA是IKE 用于协
商IP 数据报的加密材料的安全通道。与IPsec SA不同,ISAKMP SA是双向的,因此只需要
一个安全关联。
IKE 密钥协商
492 系统管理指南:IP 服务• 2006 年8 月
IKE 在阶段1 交换中协商加密材料的方式是可配置的。IKE 从/etc/inet/ike/config 文件读
取配置信息。配置信息包括:
全局参数,如公钥证书的名称
是否使用完全转发保密(perfect forward secrecy, PFS)
受影响的接口
安全协议及其算法
验证方法
两种验证方法是预先共享的密钥和公钥证书。公钥证书可以自签名。或者,证书可以由来
自公钥基础结构(public key infrastructure, PKI) 组织的certificate authority, CA(证书颁发机
构)颁发。这样的组织包括beTrusted、Entrust、GeoTrust、RSASecurity 和Verisign。
IKE 阶段2 交换
阶段2 交换称为快速模式。在阶段2 交换中,IKE 在运行IKE 守护进程的系统之间创建和管
理IPsec SA。IKE 使用在阶段1 交换中创建的安全通道保护加密材料的传输。IKE 守护进程
使用/dev/random 设备从随机数生成器创建密钥。该守护进程按可配置的速率刷新密钥。加
密材料可供在IPsec 策略的配置文件ipsecinit.conf 中指定的算法使用。
IKE 配置选择
/etc/inet/ike/config 配置文件包含IKE 策略项。为了使两个IKE 守护进程相互验证,这些
项必须是有效的。此外,加密材料必须可用。配置文件中的项确定使用加密材料验证阶段1
交换的方法。可以选择预先共享的密钥或公钥证书。
项auth_method preshared 指示使用预先共享的密钥。除preshared 之外的auth_method 值指
示要使用公钥证书。公钥证书可以自签名,也可以从PKI 组织安装。有关更多信息,请参
见ike.config(4) 手册页。
IKE,使用预先共享的密钥
预先共享的密钥由一个系统上的管理员创建。然后与远程系统的管理员在带外共享这些密
钥。创建较大的随机密钥和保护文件及带外传输时应谨慎。这些密钥放置在每个系统上的
/etc/inet/secret/ike.preshared 文件中。ike.preshared 文件用于IKE,而ipseckeys 文件
用于IPsec。ike.preshared 文件中密钥的任何泄露都将泄露从该文件中的密钥派生的所有密
钥。
一个系统的预先共享的密钥必须与其远程系统的密钥完全相同。这些密钥与特定的IP 地址
相关联。由一个管理员控制通信系统时,密钥是最安全的。有关更多信息,请参见
ike.preshared(4) 手册页。
IKE 配置选择