Internet 密钥交换 (Internet Key Exchange, IKE) 自动进行 IPsec(Internet 协议安全)的密钥管理。本章包含有关 IKE 的以下信息:
有关实现 IKE 的说明,请参见第 23 章。有关参考信息,请参见第 24 章。有关 IPsec 的概述信息,请参见第 19 章。
Solaris 10 4/09:从此发行版开始,服务管理工具 (Service Management Facility, SMF) 将 IKE 做为一种服务来管理。缺省情况下,会禁用 svc:/network/ipsec/ike:default 服务。而且,在此发行版中,还提供了网络 IPsec 管理权限配置文件以用于管理 IPsec 和 IKE。
Solaris 10 7/07:从此发行版开始,IKE 可使用 AES 算法,并可在全局区域中进行配置以便在非全局区域中使用。
通过使用 SO_ALLZONES 套接字选项,IKE 可以处理非全局区域中的通信流量。
有关 Solaris 新增功能的完整列表和 Solaris 发行版的说明,请参见《Oracle Solaris 10 9/10 新增功能》。
对 IPsec 安全关联 (security association, SA) 的加密材料进行的管理称为密钥管理。自动密钥管理需要用于创建、验证和交换密钥的安全通信通道。Solaris 操作系统使用 Internet 密钥交换 (Internet Key Exchange, IKE) 自动进行密钥管理。IKE 可轻松扩展以便为大量通信提供安全通道。IPv4 和 IPv6 包中的 IPsec SA 可以利用 IKE。
在装有 Sun Crypto Accelerator 1000 板或 Sun Crypto Accelerator 4000 或 Sun Crypto Accelerator 6000 板的系统上使用 IKE 时,可以将公钥操作转移到加速器上。操作系统资源不用于公钥操作。在装有 Sun Crypto Accelerator 4000 或 Sun Crypto Accelerator 6000 板的系统上使用 IKE 时,可以将证书、公钥和私钥存储在该板上。脱离系统的密钥存储提供了进一步的保护。
IKE 守护进程 in.iked 以受保护方式协商和验证 SA 的加密材料。该守护进程使用来自 Solaris 操作系统提供的内部函数的随机密钥种子。IKE 提供完全正向保密 (perfect forward secrecy, PFS)。在 PFS 中,不能使用保护数据传输的密钥派生其他密钥。此外,不重新使用用于创建数据传输密钥的种子。请参见 in.iked(1M) 手册页。
当 IKE 守护进程搜索到远程系统的公共加密密钥时,本地系统就可以使用该密钥。该系统使用远程系统的公钥对消息进行加密。消息只能由该远程系统读取。IKE 守护进程分两个阶段执行作业。这两个阶段称为交换。
下表列出在密钥协商中使用的术语,提供其常用的首字母缩略词,并给出每个术语的定义和用法。
表 22–1 密钥协商术语及其首字母缩略词和用法
密钥协商术语 |
首字母缩略词 |
定义和用法 |
---|---|---|
Key exchange(密钥交换) |
|
生成非对称加密算法的密钥的过程。两种主要方法是 RSA 协议和 Diffie-Hellman 协议。 |
Diffie-Hellman protocol(Diffie-Hellman 协议) |
DH |
一种涉及密钥生成和密钥验证的密钥交换协议。通常称为经过验证的密钥交换。 |
RSA protocol(RSA 协议) |
RSA |
一种涉及密钥生成和密钥传输的密钥交换协议。此协议以其三个创建者 Rivest、Shamir 和 Adleman 命名。 |
PFS |
仅适用于经过验证的密钥交换。PFS 确保密钥的长期保密材料不会影响来自以前通信的已交换密钥的保密性。 在 PFS 中,不能使用保护数据传输的密钥派生其他密钥。此外,也不能使用保护数据传输的密钥的源派生其他密钥。 |
|
Oakley method(Oakley 方法) |
|
一种以安全方式为阶段 2 建立密钥的方法。此协议类似于密钥交换的 Diffie-Hellman 方法。与 Diffie-Hellman 类似,Oakley 组密钥交换涉及密钥生成和密钥验证。Oakley 方法用于协商 PFS。 |
阶段 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 在阶段 1 交换中协商加密材料的方式是可配置的。IKE 从 /etc/inet/ike/config 文件读取配置信息。配置信息包括:
全局参数,如公钥证书的名称
是否使用完全正向保密 (perfect forward secrecy, PFS)
受影响的接口
安全协议及其算法
验证方法
两种验证方法是预先共享的密钥和公钥证书。公钥证书可以自签名。或者,证书可以由来自公钥基础结构 (public key infrastructure, PKI) 组织的 certificate authority, CA(证书颁发机构)颁发。这样的组织包括 beTrusted、Entrust、GeoTrust、RSA Security 和 Verisign。
阶段 2 交换称为快速模式。在阶段 2 交换中,IKE 在运行 IKE 守护进程的系统之间创建和管理 IPsec SA。IKE 使用在阶段 1 交换中创建的安全通道保护加密材料的传输。IKE 守护进程使用 /dev/random 设备从随机数生成器创建密钥。该守护进程按可配置的速率刷新密钥。加密材料可供在 IPsec 策略的配置文件 ipsecinit.conf 中指定的算法使用。
/etc/inet/ike/config 配置文件包含 IKE 策略项。为了使两个 IKE 守护进程相互验证,这些项必须是有效的。此外,加密材料必须可用。配置文件中的项确定使用加密材料验证阶段 1 交换的方法。可以选择预先共享的密钥或公钥证书。
项 auth_method preshared 指示使用预先共享的密钥。除 preshared 之外的 auth_method 值指示要使用公钥证书。公钥证书可以自签名,也可以从 PKI 组织安装。有关更多信息,请参见 ike.config(4) 手册页。
预先共享的密钥由一个系统上的管理员创建。然后与远程系统的管理员在带外共享这些密钥。创建较大的随机密钥和保护文件及带外传输时应谨慎。这些密钥放置在每个系统上的 /etc/inet/secret/ike.preshared 文件中。ike.preshared 文件用于 IKE,而 ipseckeys 文件用于 IPsec。ike.preshared 文件中密钥的任何泄露都将泄露从该文件中的密钥派生的所有密钥。
系统的预先共享的密钥必须与其远端系统的密钥相同。这些密钥与特定的 IP 地址相关联。由一个管理员控制通信系统时,密钥是最安全的。有关更多信息,请参见 ike.preshared(4) 手册页。
使用公钥证书,通信系统就无需在带外共享秘密的加密材料。公钥使用 Diffie-Hellman protocol(Diffie-Hellman 协议)(DH) 来验证和协商密钥。公钥证书有两种类型。这些证书可以自签名,也可以由 certificate authority, CA(证书颁发机构)认证。
自签名的公钥证书由管理员创建。ikecert certlocal -ks 命令为系统创建公钥/私钥对的私钥部分。然后,从远程系统获取 X.509 格式的自签名证书输出。远程系统的证书是用于创建密钥对的公钥部分的 ikecert certdb 命令的输入。在通信系统上,自签名的证书驻留在 /etc/inet/ike/publickeys 目录中。使用 -T 选项时,证书驻留在连接的硬件上。
自签名的证书介于预先共享的密钥和 CA 中间。与预先共享的密钥不同,自签名的证书可以在移动机器或可能重新编号的系统上使用。要为没有固定编号的系统对证书自行签名,请使用 DNS (www.example.org) 或 email (root@domain.org) 替换名称。
公钥可以由 PKI 或 CA 组织提供。在 /etc/inet/ike/publickeys 目录中安装公钥及其相应的 CA。使用 -T 选项时,证书驻留在连接的硬件上。供应商还发布证书撤销列表 (certificate revocation list, CRL)。除安装密钥和 CA 以外,您还负责在 /etc/inet/ike/crls 目录中安装 CRL。
CA 的优势在于由外部组织而不是由站点管理员认证。在某种意义上,CA 是经过确认的证书。与自签名的证书一样,CA 可以在移动机器或可能重新编号的系统上使用。与自签名的证书不同的是,CA 可以非常容易地扩展以保护大量的通信系统。
IKE 算法的计算开销很大,尤其是在阶段 1 交换中。处理大量交换的系统可以使用 Sun Crypto Accelerator 1000 板处理公钥操作。Sun Crypto Accelerator 6000 和 Sun Crypto Accelerator 4000 板也可用来处理开销很大的阶段 1 计算。
有关如何配置 IKE 以将其计算转移到加速器板的信息,请参见如何将 IKE 配置为查找 Sun Crypto Accelerator 1000 板。有关如何存储密钥的信息,请参见如何将 IKE 配置为查找 Sun Crypto Accelerator 4000 板和 cryptoadm(1M) 手册页。
公钥证书、私钥和公钥可以存储在 Sun Crypto Accelerator 6000 或 Sun Crypto Accelerator 4000 板上。对于 RSA 加密,Sun Crypto Accelerator 4000 板最多支持 2048 位的密钥。对于 DSA 加密,该板最多支持 1024 位的密钥。Sun Crypto Accelerator 6000 板支持 SHA-512 和 ECC 算法。
有关如何配置 IKE 以访问该板的信息,请参见如何将 IKE 配置为查找 Sun Crypto Accelerator 1000 板。有关如何向该板添加证书和公钥的信息,请参见如何在硬件上生成和存储公钥证书。
下表概述了 IKE 策略的配置文件、IKE 密钥的存储位置以及实现 IKE 的各种命令和服务。有关服务的更多信息,请参见《系统管理指南:基本管理》中的第 18 章 “管理服务(概述)”。
表 22–2 IKE 配置文件、密钥存储位置、命令和服务
从 Solaris 9 发行版开始,IKE 包括以下功能:
可以使用 IKE 在 IPv6 网络中自动进行 IPsec 的密钥交换。有关更多信息,请参见使用 IKE 进行密钥管理。
不能使用 IKE 在非全局区域中管理 IPsec 的密钥。
IKE 中的公钥操作可以由 Sun Crypto Accelerator 1000 板或 Sun Crypto Accelerator 4000 板加速。有关操作都被转移到该板中。这样将加快加密过程,从而降低对操作系统资源的需求。有关更多信息,请参见IKE 和硬件加速。有关过程,请参见将 IKE 配置为查找连接的硬件(任务列表)。
公钥证书、私钥和公钥可以存储在 Sun Crypto Accelerator 4000 板上。有关密钥存储的更多信息,请参见IKE 和硬件存储。
可以使用 IKE 从 NAT 盒 (NAT box) 之后自动进行 IPsec 的密钥交换。通信流量必须使用 IPv4 网络。此外,遍历 NAT 的 IPsec ESP 密钥不能由硬件加速。有关更多信息,请参见IPsec 和 NAT 遍历。有关过程,请参见为移动系统配置 IKE(任务列表)。
重新传输参数和包超时参数已添加到 /etc/inet/ike/config 文件中。这些参数调整 IKE 阶段 1(主模式)协商,以处理网络干扰、网络通信流量过大以及与具有 IKE 协议的不同实现的平台的交互操作。有关这些参数的详细信息,请参见 ike.config(4) 手册页。有关过程,请参见更改 IKE 传输参数(任务列表)。