Go to main content

手册页第 7 部分:标准、环境、宏、字符集和杂项

退出打印视图

更新时间: 2018年8月8日 星期三
 
 

pkcs11_kms(7)

名称

pkcs11_kms - Oracle Key Manager 的 OASIS PKCS#11 提供者

用法概要

/usr/lib/security/pkcs11_kms.so
/usr/lib/security/64/pkcs11_kms.so

描述

pkcs11_kms.so 对象使用 Oracle Key Manager (OKM) KMS 代理协议与 Oracle Key Manager 设备 (Key Manager appliance, KMA) 通信,从而实现 OASIS PKCS#11 加密令牌接口 (Cryptographic Token Interface, Cryptoki) v2.40 规范。此提供器实现 PKCS#11 规范并使用(专用)KMS 客户机协议与远程 OKM 进行通信。

此提供器支持以下 PKCS#11 机制:CKM_AES_KEY_GENCKM_AES_CBC_PADCKM_AES_CBC

此提供者支持以下 PKCS#11 接口:


C_Initialize
C_Finalize
C_GetInfo
C_GetAttributeValue
C_SetAttributeValue
C_GetFunctionList
C_GetSlotList
C_GetSlotInfo
C_GetTokenInfo
C_GetMechanismList
C_GetMechanismInfo
C_InitToken
C_SetPIN
C_Login
C_Logout
C_FindObjectsInit/C_FindObjects/C_FindObjectsFinal
C_GenerateKey
C_EncryptInit/C_Encrypt/C_EncryptFinal
C_DecryptInit/C_Decrypt/C_DecryptFinal
C_DestroyObject
C_OpenSession
C_CloseSession
C_CloseAllSessions
C_GetSessionInfo
C_CreateObject
C_CopyObject
C_GetObjectSize
C_EncryptUpdate
C_DecryptUpdate

在调用时,所有其他函数均返回 CKR_FUNCTION_NOT_SUPPORTED

先决条件

pkcs11_kms 提供器只能用于有权访问 OKM 的系统。OKM 管理员必须为每个访问 OKM 的用户(或应用程序)配置一个代理 ID。此操作通过 OKM 实用程序完成,这些实用程序属于 OKM 管理工具,并不是 Oracle Solaris 随附的。

在 OKM 管理员配置了要使用的 KMA 并将参数传递给了客户机(即 Oracle Solaris 用户或应用程序)后,即可初始化 Oracle Solaris PKCS#11 KMS 提供器以供使用。

KMS 提供器的初始化是通过 kmscfg(8) 实用程序完成的。要初始化本地提供器配置文件以供进一步使用,kmscfg 要求用户至少输入配置文件的名称、OKM 代理 ID、用于保护配置文件的初始口令以及 KMA 的 IP 地址。有关详细信息,请参见 kmscfg(8) 手册页。

运行完 kmscfg 并配置了本地令牌名称空间后,用户即可初始化令牌以供使用。令牌初始化是使用 pktool(1) 命令执行的,如下所示:

$ pktool inittoken currlabel=KMS

用户必须提供缺省的 SO(security officer,安全官)PIN(Personal Identification Number,个人识别码)才能初始化 KMS 提供器以供使用。缺省 SO PIN 就是 OKM 管理员在最初设置 OKM 代理时所使用的 PIN。初始化令牌的用户必须知道此口令短语才能初始化提供器。

在初始化提供器后,可以更改用户 PIN 的缺省值。可再次使用 pktool(1) 更改该 PIN 值。

使用以下命令可更改本地 PIN:

$ pktool setpin token=KMS

pktool setpin 操作提供的 PIN 或通过调用 C_Login()C_SetPIN() 函数提供的 PIN 可以是长度介于 1 到 256 之间且不带嵌入空字符的任何字符串。

访问令牌

在用户初始化令牌后,即可通过 pktool(1)decrypt(1)encrypt(1) 或通过编写 PKCS11 应用程序并指定 KMS 令牌来开始使用他们的令牌。

示例

示例 1 在 Oracle Key Manager 上创建密钥

以下命令在 Oracle Key Manager 上创建密钥:

$ pktool genkey token=KMS label=mykey1 keytype=aes keylen=256
示例 2 使用来自 Oracle Key Manager 的密钥对文件进行加密

以下命令使用来自 Oracle Key Manager 的密钥对文件进行加密:

$ encrypt -a aes -K mykey1 -T KMS -i input.txt -o output.enc
示例 3 使用来自 Oracle Key Manager 的密钥对文件进行解密

以下命令使用来自 Oracle Key Manager 的密钥对文件进行解密:

$ decrypt -a aes -K mykey1 -T KMS -i output.enc -o output.txt

属性

有关以下属性的说明,请参见 attributes(7)

属性类型
属性值
可用性
system/library/security/pkcs11_kms
接口稳定性
Committed(已确定)
MT 级别
MT-Safe with exceptions(多线程安全,但存在异常)。请参见《OASIS PKCS#11 v2.40 使用指南》第 1.9.3 节
标准
PKCS#11 v2.40

另请参见

decrypt(1)encrypt(1)pktool(1)libpkcs11(3LIB)attributes(7)cryptoadm(8)kmscfg(8)

《KMS 2.2:管理指南》

Oracle Key Manager (OKM) Administration Guide

附注

pkcs11_kms.so 使用一个专用目录存放初始化与 KMA 的连接所需的配置文件及其他数据。对于首次创建此专用目录的主机来说,此目录是本地目录。缺省情况下,KMS 令牌目录空间位于 /var/user/$USERNAME/kms 中。可以覆盖缺省 KMS 目录,方法是:先设置 KMSTOKEN_DIR 环境变量,然后再使用 kmscfg(8)decrypt(1)encrypt(1)pktool(1) 命令。

PKCS#11 客户机需要安装 Oracle Key Manager 软件版本 2.4。

如果 PKCS#11 客户机使用来自多个系统的相同代理 ID,则创建该代理时不应设置 One Time Passphrase 标志。在其中一些成员运行低于 OKM 2.4 的软件版本的 OKM 群集中,此选项不可用。有关创建代理的帮助信息,请参见《Oracle Key Manager (OKM) Administration Guide》。

OKM 代理在用于在 PKCS#11 客户机中创建密钥之前,必须分配有缺省密钥组。如果未向代理分配 Default Key Group,操作将失败,并显示 CKR_PIN_INCORRECT 错误。有关向代理分配密钥组的帮助,请参见《Oracle Key Manager (OKM) Administration Guide》。