手册页部分 5: 标准、环境和宏

退出打印视图

更新时间: 2014 年 7 月
 
 

pkcs11_kms(5)

名称

pkcs11_kms - Oracle Key Manager 的 RSA PKCS#11 提供器

用法概要

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

描述

pkcs11_kms.so 对象使用 Oracle Key Manager (OKM) KMS 代理协议来实现 RSA Security Inc. PKCS#11 Cryptographic Token Interface (Cryptoki), v2.20, 规范,从而与 Oracle Key Manager 设备 (Key Manager appliance, KMA) 对话。此提供器实现 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(1M) 实用程序完成的。要初始化本地提供器配置文件以供进一步使用,kmscfg 要求用户至少输入配置文件的名称、OKM 代理 ID、用于保护配置文件的初始口令以及 KMA 的 IP 地址。有关详细信息,请参见 kmscfg(1M) 手册页。

运行完 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(5)

属性类型
属性值
可用性
/system/library/security/crypto/pkcs11_kms
接口稳定性
Committed(已确定)
MT 级别
MT-Safe with Exceptions(多线程安全,但存在异常)。请参见下文。
标准
PKCS#11 v2.20

多线程安全属性的异常记录在 RSA PKCS#11 v2.20 的第 6.6.2 节中。

另请参见

decrypt(1)encrypt(1)pktool(1)cryptoadm(1M)kmscfg(1M)libpkcs11(3LIB)attributes(5)

KMS 2.2:管理指南

Oracle Key Manager (OKM) Administration Guide

附注

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

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