JavaScript is required to for searching.
跳过导航链接
退出打印视图
系统管理指南:IP 服务     Oracle Solaris 10 8/11 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

第 1 部分系统管理介绍:IP 服务

1.  Oracle Solaris TCP/IP 协议套件(概述)

第 2 部分TCP/IP 管理

2.  规划 TCP/IP 网络(任务)

3.  IPv6 介绍(概述)

4.  规划 IPv6 网络(任务)

5.  配置 TCP/IP 网络服务和 IPv4 寻址(任务)

6.  管理网络接口(任务)

7.  配置 IPv6 网络(任务)

8.  管理 TCP/IP 网络(任务)

9.  对网络问题进行故障排除(任务)

10.  TCP/IP 和 IPv4 详解(参考)

11.  IPv6 详解(参考)

第 3 部分DHCP

12.  关于 DHCP(概述)

13.  规划 DHCP 服务(任务)

14.  配置 DHCP 服务(任务)

15.  管理 DHCP(任务)

16.  配置和管理 DHCP 客户机

17.  对 DHCP 问题进行故障排除(参考)

18.  DHCP 命令和文件(参考)

第 4 部分IP 安全性

19.  IP 安全体系结构(概述)

20.  配置 IPsec(任务)

21.  IP 安全体系结构(参考)

22.  Internet 密钥交换(概述)

23.  配置 IKE(任务)

配置 IKE(任务列表)

使用预先共享的密钥配置 IKE(任务列表)

使用预先共享的密钥配置 IKE

如何使用预先共享的密钥配置 IKE

如何刷新 IKE 预先共享密钥

如何查看 IKE 预先共享密钥

如何为 ipsecinit.conf 中的新策略项添加 IKE 预先共享密钥

如何检验 IKE 预先共享密钥是否完全相同

使用公钥证书配置 IKE(任务列表)

使用公钥证书配置 IKE

如何使用自签名的公钥证书配置 IKE

如何使用 CA 签名的证书配置 IKE

如何在硬件上生成和存储公钥证书

如何处理证书撤销列表

为移动系统配置 IKE(任务列表)

为移动系统配置 IKE

如何为站点外系统配置 IKE

将 IKE 配置为查找连接的硬件(任务列表)

将 IKE 配置为查找连接的硬件

如何将 IKE 配置为查找 Sun Crypto Accelerator 1000 板

如何将 IKE 配置为查找 Sun Crypto Accelerator 4000 板

更改 IKE 传输参数(任务列表)

更改 IKE 传输参数

如何更改阶段 1 IKE 密钥协商的持续时间

24.  Internet 密钥交换(参考资料)

25.  Oracle Solaris 中的 IP 过滤器(概述)

26.  IP 过滤器(任务)

第 5 部分移动 IP

27.  移动 IP(概述)

28.  管理移动 IP(任务)

29.  移动 IP 文件和命令(参考)

第 6 部分IPMP

30.  IPMP 介绍(概述)

31.  管理 IPMP(任务)

第 7 部分IP 服务质量 (IP Quality of Service, IPQoS)

32.  IPQoS 介绍(概述)

33.  规划启用了 IPQoS 的网络(任务)

34.  创建 IPQoS 配置文件(任务)

35.  启动和维护 IPQoS(任务)

36.  使用流记帐和统计信息收集功能(任务)

37.  IPQoS 的详细介绍(参考)

词汇表

索引

使用公钥证书配置 IKE

使用公钥证书,通信系统就无需在带外共享秘密的加密材料。与预先共享的密钥不同,公钥证书可以在移动计算机或可能重新编号的系统上使用。

公钥证书也可以存储在连接的硬件上。有关过程,请参见将 IKE 配置为查找连接的硬件(任务列表)

如何使用自签名的公钥证书配置 IKE

自签名证书比 CA 颁发的公共证书所需的开销少,但不太易于扩展。

  1. 在系统控制台上,承担主管理员角色或成为超级用户。

    主管理员角色拥有主管理员配置文件。要创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2  章 "使用 Solaris Management Console(任务)"


    注 - 远程登录会使安全关键型通信易于遭到窃听。即使以某种方式保护远程登录,系统的安全性也会降至远程登录会话的安全性。请使用 ssh 命令进行安全的远程登录。


  2. 将自签名证书添加到 ike.privatekeys 数据库。
    # ikecert certlocal -ks|-kc -m keysize -t keytype \
    -D dname -A altname \
    [-S validity-start-time] [-F validity-end-time] [-T token-ID]
    -ks

    创建自签名证书。

    -kc

    创建证书请求。有关过程,请参见如何使用 CA 签名的证书配置 IKE

    -m keysize

    是密钥的大小。keysize 可以是 512、1024、2048、3072 或 4096。

    -t keytype

    指定要使用的算法类型。keytype 可以是 rsa-sha1rsa-md5dsa-sha1

    -D dname

    是证书主题的 X.509 标识名。dname 通常具有以下格式: C=country, O=organization, OU=organizational unit, CN=common name。有效标记是 C、O、OU 和 CN。

    -A altname

    是证书的替代名称。altname 的形式为 tag=value。有效标记是 IPDNSemailDN

    -S validity-start-time

    为证书提供绝对或相对有效开始时间。

    -F validity-end-time

    为证书提供绝对或相对有效结束时间。

    -T token-ID

    启用 PKCS #11 硬件标记来生成密钥。然后证书将被存储在硬件中。

    1. 例如,partym 系统上命令的显示与以下信息类似:
      # ikecert certlocal -ks -m 1024 -t rsa-md5 \
      -D "C=US, O=PartyCompany, OU=US-Partym, CN=Partym" \
      -A IP=192.168.13.213
      Creating software private keys.
        Writing private key to file /etc/inet/secret/ike.privatekeys/0.
      Enabling external key providers - done.
      Acquiring private keys for signing - done.
      Certificate: 
       Proceeding with the signing operation.
       Certificate generated successfully (…/publickeys/0)
      Finished successfully.
      Certificate added to database.
      -----BEGIN X509 CERTIFICATE-----
      MIICLTCCAZagAwIBAgIBATANBgkqhkiG9w0BAQQFADBNMQswCQYDVQQGEwJVUzEX
      …
      6sKTxpg4GP3GkQGcd0r1rhW/3yaWBkDwOdFCqEUyffzU
      -----END X509 CERTIFICATE-----
    2. enigma 系统上命令的显示与以下信息类似:
      # ikecert certlocal -ks -m 1024 -t rsa-md5 \
      -D "C=JA, O=EnigmaCo, OU=JA-Enigmax, CN=Enigmax" \
      -A IP=192.168.116.16
      Creating software private keys.
        …
      Certificate added to database.
      -----BEGIN X509 CERTIFICATE-----
      MIICKDCCAZGgAwIBAgIBATANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzEV
      …
      jpxfLM98xyFVyLCbkr3dZ3Tvxvi732BXePKF2A==
      -----END X509 CERTIFICATE-----
  3. 保存证书并将它发送到远程系统。

    可以将证书粘贴到电子邮件中。

    1. 例如,将以下 partym 证书发送给 enigma 管理员:
      To: admin@ja.enigmaexample.com
      From: admin@us.partyexample.com
      Message: -----BEGIN X509 CERTIFICATE-----
      MIICLTCCAZagAwIBAgIBATANBgkqhkiG9w0BAQQFADBNMQswCQYDVQQGEwJVUzEX
      …
      6sKTxpg4GP3GkQGcd0r1rhW/3yaWBkDwOdFCqEUyffzU
      -----END X509 CERTIFICATE-----
    2. enigma 管理员将向您发送以下 enigma 证书:
      To: admin@us.partyexample.com
      From: admin@ja.enigmaexample.com
      Message: -----BEGIN X509 CERTIFICATE-----
      MIICKDCCAZGgAwIBAgIBATANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzEV
      …
      jpxfLM98xyFVyLCbkr3dZ3Tvxvi732BXePKF2A==
      -----END X509 CERTIFICATE-----
  4. 在每个系统上,添加收到的证书。
    1. 从管理员的电子邮件中复制公钥。
    2. 键入 ikecert certdb -a 命令,然后按回车键。

      按回车键时,不显示任何提示。

      # ikecert certdb -a Press the Return key
    3. 粘贴公钥。然后按回车键。要结束输入,请按 Ctrl-D 组合键。
      -----BEGIN X509 CERTIFICATE----- MIIC… … ----END X509 CERTIFICATE----- Press the Return key
      <Control>-D
  5. 向其他管理员核实证书是否来自该管理员。

    例如,可以给其他管理员打电话,以比较公钥散列的值。在这两个系统上,共享证书的公钥散列必须是相同的。

    1. 列出在系统上存储的证书。

      例如,在 partym 系统上,公共证书位于插槽 1 中,而专用证书位于插槽 0 中。

      partym # ikecert certdb -l
      Certificate Slot Name: 0   Type: rsa-md5 Private Key
          Subject Name: <C=US, O=PartyCompany, OU=US-Partym, CN=Partym>
          Key Size: 1024
          Public key hash: B2BD13FCE95FD27ECE6D2DCD0DE760E2
      
      Certificate Slot Name: 1   Type: rsa-md5 Public Certificate
          (Private key in certlocal slot 0) Points to certificate's private key
          Subject Name: <C=JA, O=EnigmaCo, OU=JA-Enigmax, CN=Enigmax>
          Key Size: 1024
          Public key hash: 2239A6A127F88EE0CB40F7C24A65B818
    2. 将此值与 enigma 系统上的公钥散列进行比较。

      您可通过电话读取公钥散列。

      enigma # ikecert certdb -l
      Certificate Slot Name: 4   Type: rsa-md5 Private Key
          Subject Name: <C=JA, O=EnigmaCo, OU=JA-Enigmax, CN=Enigmax>
          Key Size: 1024
          Public key hash: DF3F108F6AC669C88C6BD026B0FCE3A0
      
      Certificate Slot Name: 5   Type: rsa-md5 Public Certificate
          (Private key in certlocal slot 4)
          Subject Name: <C=US, O=PartyCompany, OU=US-Partym, CN=Partym>
          Key Size: 1024
          Public key hash: 2239A6A127F88EE0CB40F7C24A65B818
  6. 在每个系统上,信任这两个证书。

    编辑 /etc/inet/ike/config 文件以识别证书。

    远程系统的管理员提供 cert_trustremote_addrremote_id 参数的值。

    1. 例如,在 partym 系统上,ike/config 文件的显示与以下信息类似:
      # Explicitly trust the following self-signed certs
      # Use the Subject Alternate Name to identify the cert
      
      # Verified remote address and remote ID
      # Verified public key hash per telephone call from administrator
      cert_trust "192.168.13.213" Local system's certificate Subject Alt Name
      cert_trust "192.168.116.16" Remote system's certificate Subject Alt Name
      
      ## Parameters that may also show up in rules.
      
      p1_xform 
        { auth_method preshared oakley_group 5 auth_alg sha encr_alg des }
      p2_pfs 5
      
      {
       label "US-partym to JA-enigmax"
       local_id_type dn
       local_id "C=US, O=PartyCompany, OU=US-Partym, CN=Partym"
       remote_id "C=JA, O=EnigmaCo, OU=JA-Enigmax, CN=Enigmax"
      
       local_addr  192.168.13.213
       remote_addr 192.168.116.16
      
       p1_xform
        {auth_method rsa_sig oakley_group 2 auth_alg sha1 encr_alg aes}
      }
    2. enigma 系统上,在 ike/config 文件中添加本地参数的 enigma 值。

      对于远程参数,请使用 partym 值。确保 label 关键字的值是唯一的。此值必须与远程系统的 label 值不同。

      …
      {
       label "JA-enigmax to US-partym"
       local_id_type dn
       local_id "C=JA, O=EnigmaCo, OU=JA-Enigmax, CN=Enigmax"
       remote_id "C=US, O=PartyCompany, OU=US-Partym, CN=Partym"
      
       local_addr  192.168.116.16
       remote_addr 192.168.13.213
      …

示例 23-4 检验来自其他管理员的证书是否有效

在此示例中,管理员使用主题名称来验证这些证书是否相同。

第一个管理员将生成和列出证书的输出保存到一个文件中。由于 ikecert 命令的输出列显到标准错误,因此管理员会将标准错误重定向到该文件。

sys1# cd /
sys1# ikecert certlocal -ks -m1024 -t rsa-md5 \
-D"C=US, O=TestCo, CN=Co2Sys" 2>/tmp/for_co2sys
Certificate added to database.
sys1# ikecert certdb -l "C=US, O=TestCo, CN=Co2Sys" 2>>/tmp/for_co2sys

管理员验证该文件的内容。

sys1# cat /tmp/for_co2sys
Creating private key.
-----BEGIN X509 CERTIFICATE-----
MIIB7TCCAVagAwIBAgIEZkHfOTANBgkqhkiG9w0BAQQFADAxMQwwCgYDVQQGEwNV
U0ExEDAOBgNVBAoMB3Rlc3RfY28xDzANBgNVBAMTBkVuaWdtYTAeFw0wODAxMTUx
OTI1MjBaFw0xMjAxMTUxOTI1MjBaMDExDDAKBgNVBAYTA1VTQTEQMA4GA1UECgwH
dGVzdF9jbzEPMA0GA1UEAxMGRW5pZ21hMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB
iQKBgQCPxGv0rUzHMnFtkx9uwYuPiWbftmWfa9iDt6ELOEuw3zlboy2qtuRUZohz
FIbCxAJevdCY6a+pktvYy3/2nJL0WATObO5T0FKn3F0bphajinLYbyCrYhEzD9E2
gkiT2D9/ttbSiMvi9usphprEDcLAFaWgCJiHnKPBEkjC0vhA3wIDAQABoxIwEDAO
BgNVHQ8BAf8EBAMCBaAwDQYJKoZIhvcNAQEEBQADgYEAL/q6xgweylGQylqLCwzN
5PIpjfzsNPf3saTyh3VplwEOW6WTHwRQT17IO/1Oc6Jnz9Mr0ZrbHWDXq+1sx180
F8+DMW1Qv1UR/lGMq3ufDG3qedmSN6txDF8qLlPCUML0YL8m4oGdewqGb+78aPyE
Y/cJRsK1hWbYyseqcIkjj5k=
-----END X509 CERTIFICATE-----
Certificate Slot Name: 2   Key Type: rsa
        (Private key in certlocal slot 2)
        Subject Name: <C=US, O=TestCo, CN=Co2Sys>
        Key Size: 1024
        Public key hash: C46DE77EF09084CE2B7D9C70479D77FF

然后,管理员通过电子邮件将该文件发送给第二个管理员。

第二个管理员将该文件放在安全目录中,并从该文件导入证书。

sys2# cd /
sys2# ikecert certdb -a < /sec/co2sys

ikecert 命令只导入 -----BEGIN-----END 行之间的文字。管理员验证本地证书的公钥散列是否与 co2sys 文件中的公钥散列相同。

sys2# ikecert certdb -l
Certificate Slot Name: 1   Key Type: rsa
        (Private key in certlocal slot 1)
        Subject Name: <C=US, O=TestCo, CN=Co2Sys>
        Key Size: 1024
        Public key hash: C46DE77EF09084CE2B7D9C70479D77FF

为确保第一个管理员发送了此电子邮件,第二个管理员会给第一个管理员打电话,以验证证书的主题名称。

示例 23-5 指定证书的开始时间和结束时间

在此示例中,由 partym 系统上的管理员建立证书有效日期。该证书可回溯 2 1/2 天,自创建之日起 4 年零 6 个月内有效。

# ikecert certlocal -ks -m 1024 -t rsa-md5 \
-D "C=US, O=PartyCompany, OU=US-Partym, CN=Partym" \
-A IP=192.168.13.213 \
-S -2d12h -F +4y6m

enigma 系统上的管理员建立证书有效日期。该证书可回溯 2 天,在 2010 年 12 月 31 号子夜前有效。

# ikecert certlocal -ks -m 1024 -t rsa-md5 \
-D "C=JA, O=EnigmaCo, OU=JA-Enigmax, CN=Enigmax" \
-A IP=192.168.116.16 \
-S -2d -F "12/31/2010 12:00 AM"

如何使用 CA 签名的证书配置 IKE

证书颁发机构 (CA) 颁发的公共证书需要与外部组织进行协商。证书很容易扩展为保护大量通信系统。

  1. 在系统控制台上,承担主管理员角色或成为超级用户。

    主管理员角色拥有主管理员配置文件。要创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2  章 "使用 Solaris Management Console(任务)"


    注 - 远程登录会使安全关键型通信易于遭到窃听。即使以某种方式保护远程登录,系统的安全性也会降至远程登录会话的安全性。请使用 ssh 命令进行安全的远程登录。


  2. 使用 ikecert certlocal -kc 命令创建证书请求。

    有关该命令的参数的说明,请参见如何使用自签名的公钥证书配置 IKE中的步骤 2

    # ikecert certlocal -kc -m keysize -t keytype \
    -D dname -A altname
    1. 例如,以下命令在 partym 系统上创建证书请求:
      # ikecert certlocal -kc -m 1024 -t rsa-md5 \
      > -D "C=US, O=PartyCompany\, Inc., OU=US-Partym, CN=Partym" \
      > -A "DN=C=US, O=PartyCompany\, Inc., OU=US-Partym"
      Creating software private keys.
        Writing private key to file /etc/inet/secret/ike.privatekeys/2.
      Enabling external key providers - done.
      Certificate Request: 
        Proceeding with the signing operation.
        Certificate request generated successfully (…/publickeys/0)
      Finished successfully.
      -----BEGIN CERTIFICATE REQUEST-----
      MIIByjCCATMCAQAwUzELMAkGA1UEBhMCVVMxHTAbBgNVBAoTFEV4YW1wbGVDb21w
      …
      lcM+tw0ThRrfuJX9t/Qa1R/KxRlMA3zckO80mO9X
      -----END CERTIFICATE REQUEST-----
    2. 以下命令在 enigma 系统上创建证书请求:
      # ikecert certlocal -kc -m 1024 -t rsa-md5 \
      > -D "C=JA, O=EnigmaCo\, Inc., OU=JA-Enigmax, CN=Enigmax" \
      > -A "DN=C=JA, O=EnigmaCo\, Inc., OU=JA-Enigmax"
      Creating software private keys.
      …
      Finished successfully.
      -----BEGIN CERTIFICATE REQUEST-----
      MIIBuDCCASECAQAwSTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDFBhcnR5Q29tcGFu
      …
      8qlqdjaStLGfhDOO
      -----END CERTIFICATE REQUEST-----
  3. 将证书请求提交到 PKI 组织。

    PKI 组织可以告诉您如何提交证书请求。大多数组织具有包含提交表单的 Web 站点。该表单要求证明提交是合法的。通常,将证书请求粘贴到表单中。组织在检查您的请求后,将向您发出以下两个证书对象和已撤销证书的列表:

    • 公钥证书-此证书基于您提交给组织的请求。所提交的请求是此公钥证书的一部分。证书可对您进行唯一标识。

    • 证书颁发机构-组织的签名。CA 检验公钥证书是否合法。

    • 证书撤销列表 (Certificate Revocation List, CRL)-组织已撤销的证书的最新列表。如果在公钥证书中嵌入对 CRL 的访问,则不会将 CRL 作为证书对象单独发送。

      在公钥证书中嵌入 CRL 的 URI 时,IKE 可以自动检索 CRL。同样,在公钥证书中嵌入 DN(LDAP 服务器上的目录名称)项时,IKE 可以从指定的 LDAP 服务器检索并高速缓存 CRL。

      有关公钥证书中的嵌入式 URI 和嵌入式 DN 项的示例,请参见如何处理证书撤销列表

  4. 将每个证书添加到系统。

    ikecert certdb -a-a 选项将已粘贴的对象添加到系统上的适当证书数据库。有关更多信息,请参见IKE,使用公钥证书

    1. 在系统控制台上,承担主管理员角色或成为超级用户。
    2. 添加从 PKI 组织收到的公钥证书。
      # ikecert certdb -a
      Press the Return key
      Paste the certificate:
      -----BEGIN X509 CERTIFICATE----- … -----END X509 CERTIFICATE----
      Press the Return key
      <Control>-D
    3. 添加来自 PKI 组织的 CA。
      # ikecert certdb -a
      Press the Return key
      Paste the CA:
      -----BEGIN X509 CERTIFICATE----- … -----END X509 CERTIFICATE----
      Press the Return key
      <Control>-D
    4. 如果 PKI 组织已发送撤销证书列表,则将 CRL 添加到 certrldb 数据库:
      # ikecert certrldb -a
      Press the Return key
      Paste the CRL:
      -----BEGIN CRL----- … -----END CRL----
      Press the Return key
      <Control>-D
  5. /etc/inet/ike/config 文件中使用 cert_root 关键字标识 PKI 组织。

    使用 PKI 组织提供的名称。

    1. 例如,partym 系统上 ike/config 文件的显示可能与以下信息类似:
      # Trusted root cert
      # This certificate is from Example PKI
      # This is the X.509 distinguished name for the CA that it issues.
      
      cert_root "C=US, O=ExamplePKI\, Inc., OU=PKI-Example, CN=Example PKI"
      
      ## Parameters that may also show up in rules.
      
      p1_xform 
       { auth_method rsa_sig oakley_group 1 auth_alg sha1 encr_alg des }
      p2_pfs 2
      
      {
       label "US-partym to JA-enigmax - Example PKI"
       local_id_type dn
       local_id  "C=US, O=PartyCompany, OU=US-Partym, CN=Partym"
       remote_id "C=JA, O=EnigmaCo, OU=JA-Enigmax, CN=Enigmax"
      
       local_addr  192.168.13.213
       remote_addr 192.168.116.16
      
       p1_xform
        {auth_method rsa_sig oakley_group 2 auth_alg sha1 encr_alg aes}
      }

      注 - auth_method 参数的所有变量都必须在同一行上。


    2. enigma 系统上,创建一个类似的文件。

      具体而言,enigmaike/config 文件应该满足以下要求:

      • 包括相同的 cert_root 值。

      • 对于本地参数,使用 enigma 值。

      • 对于远程参数,使用 partym 值。

      • label 关键字创建唯一值。此值必须与远程系统的 label 值不同。

      …
      cert_root "C=US, O=ExamplePKI\, Inc., OU=PKI-Example, CN=Example PKI"
      …
      {
       label "JA-enigmax to US-partym - Example PKI"
       local_id_type dn
       local_id   "C=JA, O=EnigmaCo, OU=JA-Enigmax, CN=Enigmax"
       remote_id  "C=US, O=PartyCompany, OU=US-Partym, CN=Partym"
       
       local_addr  192.168.116.16
       remote_addr 192.168.13.213
      …
  6. 通知 IKE 如何处理 CRL。

    选择适当的选项:

    • 未提供 CRL

      如果 PKI 组织未提供 CRL,则将关键字 ignore_crls 添加到 ike/config 文件。

      # Trusted root cert
      …
      cert_root "C=US, O=ExamplePKI\, Inc., OU=PKI-Example,…
      ignore_crls

      ignore_crls 关键字指示 IKE 不搜索 CRL。

    • 提供了 CRL

      如果 PKI 组织提供了 CRL 的中心分发点,则可以修改 ike/config 文件以指向该位置。

      有关示例,请参见如何处理证书撤销列表

示例 23-6 配置 IKE 时使用 rsa_encrypt

ike/config 文件中使用 auth_method rsa_encrypt 时,必须将对等方的证书添加到 publickeys 数据库。

  1. 将证书发送给远程系统的管理员。

    可以将证书粘贴到电子邮件中。

    例如,partym 管理员将发送以下电子邮件:

    To: admin@ja.enigmaexample.com
    From: admin@us.partyexample.com
    Message: -----BEGIN X509 CERTIFICATE-----
    MII…
    ----END X509 CERTIFICATE-----

    enigma 管理员将发送以下电子邮件:

    To: admin@us.partyexample.com
    From: admin@ja.enigmaexample.com
    Message: -----BEGIN X509 CERTIFICATE-----
    MII
    …
    -----END X509 CERTIFICATE-----
  2. 在每个系统上,将通过电子邮件发送的证书添加到本地 publickeys 数据库。

    # ikecert certdb -a
    Press the Return key
    -----BEGIN X509 CERTIFICATE----- MII… -----END X509 CERTIFICATE-----
    Press the Return key
    <Control>-D

RSA 加密的验证方法可防止窃听者知道 IKE 中的标识。由于 rsa_encrypt 方法隐藏对等方的标识,IKE 无法检索对等方的证书。因此,rsa_encrypt 方法要求 IKE 对等方知道彼此的公钥。

所以,在 /etc/inet/ike/config 文件中使用 rsa_encryptauth_method 时,必须将对等方的证书添加到 publickeys 数据库。添加证书后,publickeys 数据库包含每对通信系统的三个证书:

故障排除-IKE 有效负荷(它包括这三个证书)可能变得过大而无法由 rsa_encrypt 加密。诸如 "authorization failed"(授权失败)和 "malformed payload"(有效负荷格式错误)之类的错误,可以指明 rsa_encrypt 方法无法对总有效负荷进行加密。使用仅需要两个证书的方法(如 rsa_sig)来减小有效负荷的大小。

如何在硬件上生成和存储公钥证书

在硬件上生成和存储公钥证书,与在系统上生成和存储公钥证书类似。在硬件上,ikecert certlocalikecert certdb 命令必须标识硬件。带有标记 ID 的 -T 选项向命令标识硬件。

开始之前

  1. 在系统控制台上,承担主管理员角色或成为超级用户。

    主管理员角色拥有主管理员配置文件。要创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2  章 "使用 Solaris Management Console(任务)"


    注 - 远程登录会使安全关键型通信易于遭到窃听。即使以某种方式保护远程登录,系统的安全性也会降至远程登录会话的安全性。请使用 ssh 命令进行安全的远程登录。


  2. 生成自签名证书或证书请求,并指定标记 ID。

    选择以下选项之一:


    注 - 对于 RSA,Sun Crypto Accelerator 4000 板最多支持 2048 位的密钥。对于 DSA,此板最多支持 1024 位的密钥。


    • 对于自签名证书,请使用此语法。
      # ikecert certlocal -ks -m 1024 -t rsa-md5 \
      > -D "C=US, O=PartyCompany, OU=US-Partym, CN=Partym" \
      > -a -T dca0-accel-stor IP=192.168.116.16
      Creating hardware private keys.
      Enter PIN for PKCS#11 token: Type user:password

      -T 选项的参数是来自已连接 Sun Crypto Accelerator 4000 板的标记 ID。

    • 对于证书请求,请使用此语法。
      # ikecert certlocal -kc -m 1024 -t rsa-md5 \
      > -D "C=US, O=PartyCompany, OU=US-Partym, CN=Partym" \
      > -a -T dca0-accel-stor IP=192.168.116.16
      Creating hardware private keys.
      Enter PIN for PKCS#11 token: Type user:password

    有关 ikecert 命令的参数的说明,请参见 ikecert(1M) 手册页。

  3. 在系统提示输入 PIN 时,键入 Sun Crypto Accelerator 4000 用户、冒号和该用户的口令。

    如果 Sun Crypto Accelerator 4000 板具有口令为 rgm4tigt 的用户 ikemgr,应键入以下内容:

    Enter PIN for PKCS#11 token: ikemgr:rgm4tigt

    注 - PIN 响应以明文形式存储在磁盘上。


    键入口令后,将输出证书内容:

    Enter PIN for PKCS#11 token: ikemgr:rgm4tigt
    -----BEGIN X509 CERTIFICATE-----
    MIIBuDCCASECAQAwSTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDFBhcnR5Q29tcGFu
    …
    oKUDBbZ9O/pLWYGr
    -----END X509 CERTIFICATE-----
  4. 发送您的证书以供对方使用。

    选择以下选项之一:

    • 将自签名证书发送到远程系统。

      可以将证书粘贴到电子邮件中。

    • 将证书请求发送到处理 PKI 的组织。

      按照 PKI 组织的说明提交证书请求。有关更详细的论述,请参见如何使用 CA 签名的证书配置 IKE中的步骤 3

  5. 在系统上,编辑 /etc/inet/ike/config 文件以识别这些证书。

    选择以下选项之一。

    • 自签名证书

      使用远程系统管理员为 cert_trustremote_idremote_addr 参数提供的值。例如,在 enigma 系统上,ike/config 文件的显示与以下信息类似:

      # Explicitly trust the following self-signed certs
      # Use the Subject Alternate Name to identify the cert
      
      cert_trust "192.168.116.16"  Local system's certificate Subject Alt Name
      cert_trust "192.168.13.213"  Remote system's certificate Subject Alt name
      
      
      # Solaris 10 1/06 release: default path does not have to be typed in #pkcs11_path
      "/usr/lib/libpkcs11.so" Hardware connection
      
      # Solaris 10 release: use this path
      #pkcs11_path "/opt/SUNWconn/cryptov2/lib/libvpkcs11.so"
      …
      {
       label "JA-enigmax to US-partym"
       local_id_type dn
       local_id "C=JA, O=EnigmaCo, OU=JA-Enigmax, CN=Enigmax"
       remote_id "C=US, O=PartyCompany, OU=US-Partym, CN=Partym"
      
       local_addr  192.168.116.16
       remote_addr 192.168.13.213
      
       p1_xform
        {auth_method rsa_sig oakley_group 2 auth_alg sha1 encr_alg aes}
      }
    • 证书请求

      将 PKI 组织提供的名称作为 cert_root 关键字的值键入。例如,enigma 系统上 ike/config 文件的显示可能与以下信息类似:

      # Trusted root cert
      # This certificate is from Example PKI
      # This is the X.509 distinguished name for the CA that it issues.
      
      cert_root "C=US, O=ExamplePKI\, Inc., OU=PKI-Example, CN=Example PKI"
      
      # Solaris 10 1/06 release: default path does not have to be typed in #pkcs11_path
      "/usr/lib/libpkcs11.so" Hardware connection
      
      # Solaris 10 release: use this path
      #pkcs11_path "/opt/SUNWconn/cryptov2/lib/libvpkcs11.so"
      …
      {
       label "JA-enigmax to US-partym - Example PKI"
       local_id_type dn
       local_id "C=JA, O=EnigmaCo, OU=JA-Enigmax, CN=Enigmax"
       remote_id  "C=US, O=PartyCompany, OU=US-Partym, CN=Partym"
      
       local_addr  192.168.116.16
       remote_addr 192.168.13.213
      
       p1_xform
        {auth_method rsa_sig oakley_group 2 auth_alg sha1 encr_alg aes}
      }
  6. 在硬件中存放来自对方的证书。

    按照在步骤 3 中作出的响应,响应 PIN 请求。


    注 - 必须将公钥证书添加到生成私钥的那个连接硬件上。


    • 自签名证书。

      添加远程系统的自签名证书。在此示例中,证书存储在 DCA.ACCEL.STOR.CERT 文件中。

      # ikecert certdb -a -T dca0-accel-stor < DCA.ACCEL.STOR.CERT
      Enter PIN for PKCS#11 token: Type user:password

      如果自签名证书将 rsa_encrypt 用作 auth_method 参数的值,则将对等方的证书添加到硬件存储。

    • 来自 PKI 组织的证书。

      添加组织从证书请求生成的证书,然后添加证书颁发机构 (certificate authority, CA)。

      # ikecert certdb -a -T dca0-accel-stor < DCA.ACCEL.STOR.CERT
      Enter PIN for PKCS#11 token: Type user:password
      # ikecert certdb -a -T dca0-accel-stor < DCA.ACCEL.STOR.CA.CERT
      Enter PIN for PKCS#11 token: Type user:password

      要添加来自 PKI 组织的证书撤销列表 (certificate revocation list, CRL),请参见如何处理证书撤销列表

如何处理证书撤销列表

证书撤销列表 (certificate revocation list, CRL) 包含来自证书颁发机构的过时证书或已损坏证书。CRL 的处理方式有四种。

以下过程介绍如何指示 IKE 从中心分发点使用 CRL。

  1. 显示从 CA 收到的证书。
    # ikecert certdb -lv certspec
    -l

    列出 IKE 证书数据库中的证书。

    -v

    以详细模式列出证书。应谨慎使用此选项。

    certspec

    是一种与 IKE 证书数据库中的证书匹配的模式。

    例如,以下证书是由 Sun Microsystems 颁发的。详细信息已更改。

    # ikecert certdb -lv example-protect.sun.com
    Certificate Slot Name: 0   Type: dsa-sha1
       (Private key in certlocal slot 0)
     Subject Name: <O=Sun Microsystems Inc, CN=example-protect.sun.com>
     Issuer Name: <CN=Sun Microsystems Inc CA (Cl B), O=Sun Microsystems Inc>
     SerialNumber: 14000D93
       Validity:
          Not Valid Before: 2002 Jul 19th, 21:11:11 GMT
          Not Valid After:  2005 Jul 18th, 21:11:11 GMT
       Public Key Info:
          Public Modulus  (n) (2048 bits): C575A…A5
          Public Exponent (e) (  24 bits): 010001
       Extensions:
          Subject Alternative Names:
                  DNS = example-protect.sun.com
          Key Usage: DigitalSignature KeyEncipherment
          [CRITICAL]
       CRL Distribution Points:
          Full Name:
             URI = #Ihttp://www.sun.com/pki/pkismica.crl#i
             DN = <CN=Sun Microsystems Inc CA (Cl B), O=Sun Microsystems Inc>
          CRL Issuer: 
          Authority Key ID:
          Key ID:              4F … 6B
          SubjectKeyID:        A5 … FD
          Certificate Policies
          Authority Information Access

    请注意 CRL Distribution Points 项。URI 项指示此组织的 CRL 在 Web 上是可用的。DN 项指示 CRL 在 LDAP 服务器上是可用的。在 IKE 访问 CRL 后,将高速缓存该 CRL 以供将来使用。

    要访问 CRL,您需要到达分发点。

  2. 选择以下方法之一从中心分发点访问 CRL。
    • 使用 URI。

      将关键字 use_http 添加到主机的 /etc/inet/ike/config 文件。例如,ike/config 文件的显示与以下信息类似:

      # Use CRL from organization's URI
      use_http
    • 使用 Web 代理。

      将关键字 proxy 添加到 ike/config 文件。proxy 关键字将 URL 用作参数,如下所示:

      # Use own web proxy
      proxy "http://proxy1:8080"
    • 使用 LDAP 服务器。

      在主机的 /etc/inet/ike/config 文件中,将 LDAP 服务器指定为 ldap-list 关键字的参数。您的组织提供 LDAP 服务器的名称。ike/config 文件中项的显示与以下信息类似:

      # Use CRL from organization's LDAP
      ldap-list "ldap1.sun.com:389,ldap2.sun.com"
      …

    在证书到期之前,IKE 检索并高速缓存 CRL。

示例 23-7 将 CRL 粘贴到本地 certrldb 数据库中

如果无法从中心分发点获取 PKI 组织的 CRL,则可以将该 CRL 手动添加到本地 certrldb 数据库。按照 PKI 组织的说明将 CRL 提取到文件中,然后使用 ikecert certrldb -a 命令将此 CRL 添加到数据库。

# ikecert certrldb -a < Sun.Cert.CRL