5.6. 用于存储证书系统子系统密钥和证书的令牌
令牌是 执行加密功能的硬件或软件设备,并存储公钥证书、加密密钥和其他数据。证书系统定义了两种类型的令牌,即 internal 和 external,用于存储属于证书系统子系统的密钥对和证书。
内部(软件)令牌是一对文件,通常称为 证书数据库 (cert9.db
)和 密钥数据库 (key4.db
),供证书系统用于生成和存储其密钥对和证书。首次使用内部令牌时,证书系统会在主机机器的文件系统中自动生成这些文件。如果为密钥对生成选择了内部令牌,则这些文件是在证书系统子系统配置期间创建的。
这些安全数据库位于 /var/lib/pki/ instance_name/alias
目录中。
外部令牌引用外部硬件设备,如智能卡或硬件安全模块(HSM),证书系统用来生成和存储其密钥对和证书。证书系统支持任何与 PKCSENCODED 兼容的硬件令牌。
PKCSBACKEND 是一组标准的 API 和共享库,可将应用程序与加密设备的详情隔离开来。这可让应用程序为 PKCSENCODED 兼容加密设备提供统一接口。
证书系统中实施的 PKCSBACKEND 模块支持由许多不同制造商提供的加密设备。此模块允许证书系统插入由外部加密设备提供的共享库,并使用它们为证书系统管理器生成和存储密钥和证书。
考虑使用外部令牌生成和存储证书系统使用的密钥对和证书。这些设备是保护私钥的另一个安全措施,因为硬件令牌有时被视为比软件令牌更安全。
在使用外部令牌前,请规划如何将外部令牌用于子系统:
- 子系统的所有系统密钥都必须在同一令牌上生成。
- 该子系统必须安装在空的 HSM 插槽中。如果 HSM 插槽之前已用于存储其他密钥,则使用 HSM 供应商的工具来删除插槽的内容。证书系统必须能够在带有默认 nickname 的插槽上创建证书和密钥。如果没有正确清理,这些对象的名称可能会与之前的实例冲突。
证书系统还可以将 硬件加密加速器 与外部令牌一起使用。许多加速器提供以下安全功能:
- 快速 SSL/TLS 连接。速度对于同时注册或服务请求的数量非常重要。
- 私钥的硬件保护。这些设备的行为与智能卡不同,不允许从硬件令牌中复制或移除私钥。这一点非常重要,这是对在线证书管理器主动攻击的关键问题。
默认情况下,证书系统支持 nCipher nShield hardware security 模块(HSM)。如果在安装预配置阶段使用 modutil,则证书系统支持的 HSM 会自动添加到带有 modutil
的 pkcs11.txt
数据库中,如果 PKCS modprobe 库模块位于默认安装路径中。
在配置过程中,Security Modules 面板显示支持的模块,以及 NSS 内部软件 PKCSGRESS 模块。检测到的所有支持的模块都显示 Found 状态,并单独标记为 Logged in 或 Not logged。如果发现令牌但未登录,则可以使用 Operations 下的 。如果管理员可以成功登录令牌,密码将存储在配置文件中。在下一次启动或重启证书系统实例时,密码存储中的密码用于尝试每个对应令牌的登录。
管理员可以选择任何作为默认令牌登录的令牌,该令牌用于生成系统密钥。