系统管理指南:IP 服务

第 22 章 Internet 密钥交换(概述)

Internet 密钥交换 (Internet Key Exchange, IKE) 自动进行 IPsec(Internet 协议安全)的密钥管理。本章包含有关 IKE 的以下信息:

有关实现 IKE 的说明,请参见第 23 章。有关参考信息,请参见第 24 章。有关 IPsec 的概述信息,请参见第 19 章

IKE 中的新增功能

Solaris 10 4/09:从此发行版开始,服务管理工具 (Service Management Facility, SMF) 将 IKE 做为一种服务来管理。缺省情况下,会禁用 svc:/network/ipsec/ike:default 服务。而且,在此发行版中,还提供了网络 IPsec 管理权限配置文件以用于管理 IPsec 和 IKE。

Solaris 10 7/07:从此发行版开始,IKE 可使用 AES 算法,并可在全局区域中进行配置以便在非全局区域中使用。

使用 IKE 进行密钥管理

对 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 密钥协商

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 

一种涉及密钥生成和密钥验证的密钥交换协议。通常称为经过验证的密钥交换

RSA protocol(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 在阶段 1 交换中协商加密材料的方式是可配置的。IKE 从 /etc/inet/ike/config 文件读取配置信息。配置信息包括:

两种验证方法是预先共享的密钥和公钥证书。公钥证书可以自签名。或者,证书可以由来自公钥基础结构 (public key infrastructure, PKI) 组织的 certificate authority, CA(证书颁发机构)颁发。这样的组织包括 beTrusted、Entrust、GeoTrust、RSA Security 和 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,使用公钥证书

使用公钥证书,通信系统就无需在带外共享秘密的加密材料。公钥使用 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 和硬件加速

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) 手册页。

IKE 和硬件存储

公钥证书、私钥和公钥可以存储在 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 密钥的存储位置以及实现 IKE 的各种命令和服务。有关服务的更多信息,请参见《系统管理指南:基本管理》中的第 18  章 “管理服务(概述)”

表 22–2 IKE 配置文件、密钥存储位置、命令和服务

文件、位置、命令或服务 

说明 

更多信息 

svc:/network/ipsec/ike

在当前发行版中,为管理 IKE 的 SMF 服务。

smf(5)

/usr/lib/inet/in.iked 守护进程

Internet 密钥交换 (Internet Key Exchange, IKE) 守护进程。激活自动密钥管理。在当前发行版中,ike 服务会启用此守护进程。在早期发行版中,会使用 in.iked 命令。

in.iked(1M)

/usr/sbin/ikeadm 命令

用于查看和修改 IKE 策略的 IKE 管理命令。

ikeadm(1M)

/usr/sbin/ikecert 命令

用于处理包含公钥证书的本地数据库的证书数据库管理命 令。这些数据库也可以存储在连接的 Sun Crypto Accelerator 4000 板上。

ikecert(1M)

/etc/inet/ike/config 文件

/etc/inet 目录中 IKE 策略的缺省配置文件。包含用于匹配传入 IKE 请求和准备外发 IKE 请求的站点规则。

在当前发行版中,如果此文件存在,在启用 ike 服务时,in.iked 守护进程会启动。可以使用 svccfg 命令更改此文件的位置。

ike.config(4)

ike.preshared 文件

/etc/inet/secret 目录中的预先共享密钥文件。包含用于阶段 1 交换中验证的秘密加密材料。在用预先共享的密钥配置 IKE 时使用。

ike.preshared(4)

ike.privatekeys 目录

/etc/inet/secret 目录中的私钥目录。包含公钥/私钥对的私钥部分。

ikecert(1M)

publickeys 目录

/etc/inet/ike 目录中包含公钥和证书文件的目录。包含公钥/私钥对的公钥部分。

ikecert(1M)

crls 目录

/etc/inet/ike 目录中包含公钥和证书文件的撤销列表的目录。

ikecert(1M)

Sun Crypto Accelerator 1000 板 

通过从操作系统转移操作来加速公钥操作的硬件。 

ikecert(1M)

Sun Crypto Accelerator 4000 板 

通过从操作系统转移操作来加速公钥操作的硬件。该板还存储公钥、私钥和公钥证书。 

ikecert(1M)

Solaris 10 发行版对 IKE 的更改

从 Solaris 9 发行版开始,IKE 包括以下功能: