Red Hat Training

A Red Hat training course is available for RHEL 8

第 7 章 通过 PKCS#11 将应用程序配置为使用加密硬件

在专用加密设备(如用于最终用户身份验证的智能卡和加密令牌以及用于服务器应用程序的硬件安全模块(HSM))上分离部分机密信息,可以提供额外的安全层。在 RHEL 中,通过 PKCS #11 API 对加密硬件的支持在不同的应用程序之间是一致的,并且加密硬件上的机密隔离不是一项复杂的任务。

7.1. 通过 PKCS #11 的加密硬件支持

PKCS #11(公钥加密标准)定义了一个应用程序编程接口(API)来保存加密信息并执行加密功能的加密设备。这些设备被称为令牌,它们可以以硬件或软件形式来实现。

PKCS #11 令牌可以存储各种对象类型,包括证书、数据对象以及公有、私有或机密密钥。这些对象可通过 PKCS #11 URI 方案来唯一识别。

PKCS #11 URI 是一种标准方法,其根据对象属性来识别 PKCS #11 模块中的特定对象。这可让您以 URI 格式,使用同样的配置字符串来配置所有的库和应用程序。

RHEL 默认为智能卡提供 OpenSC PKCS #11 驱动程序。但是,硬件令牌和 HSM 可以有自己的 PKCS #11 模块,这些模块在系统中没有对应项。您可以使用 p11-kit 工具注册这些 PKCS #11 模块,该工具充当系统中注册的智能卡驱动程序的包装器

要使您自己的 PKCS #11 模块在系统上正常工作,请在 /etc/pkcs11/modules/ 目录中添加一个新的文本文件

您可以通过在 /etc/pkcs11/modules/ 目录中创建一个新的文本文件,来将自己的 PKCS #11 模块添加到系统。例如,p11-kit 中的 OpenSC 配置文件如下所示:

$ cat /usr/share/p11-kit/modules/opensc.module
module: opensc-pkcs11.so