Go to main content

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

退出打印视图

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

pkcs11_softtoken (7)

名称

pkcs11_softtoken - 软件 OASIS PKCS#11 的软令牌

用法概要

/usr/lib/security/pkcs11_softtoken.so
/usr/lib/security/64/pkcs11_softtoken.so

描述

pkcs11_softtoken.so 对象在软件中实现 OASIS PKCS#11 加密令牌接口 (Cryptographic Token Interface, Cryptoki) v2.40 规范。令牌对象的持久性存储由此 PKCS#11 实现提供。

pkcs11_softtoken 提供者是 Oracle Solaris 的必需部分,不得使用 cryptoadm(8) 禁用。

某些加密算法可能采用硬件加速。管理员可以运行以下命令来确定适用于其系统的此列表,并在输出中查看 HW 列:

# cryptoadm list -vm provider='/usr/lib/security/$ISA/pkcs11_softtoken.so'

对于开发者,在 CK_MECHANISM_INFO 结构中针对这些采用硬件加速的 PKCS#11 机制设置 CKF_HW 标志。

应用程序开发者应链接到 libpkcs11.so 而不是直接链接到 pkcs11_softtoken.so。请参见 libpkcs11(3LIB)

实现了以下加密算法:DES、3DES、AES、Blowfish、RC4、MD5、SHA1、SHA224、SHA256、SHA384、SHA512、RSA、DSA、DH、ECC 和 Camellia。请注意,RC4 只能用于解密。

除以下函数之外,实现了 libpkcs11(3LIB) 中列出的所有标准 PKCS#11 函数:

C_GetObjectSize
C_InitPIN
C_WaitForSlotEvent

对这些函数的调用将返回 CKR_FUNCTION_NOT_SUPPORTED

支持以下 OASIS PKCS#11 v2.40 机制:

CKM_RSA_PKCS_KEY_PAIR_GEN
CKM_RSA_PKCS
CKM_RSA_X_509

CKM_DSA_KEY_PAIR_GEN
CKM_DSA
CKM_DSA_SHA1

CKM_DH_PKCS_KEY_PAIR_GEN
CKM_DH_PKCS_DERIVE

CKM_EC_KEY_PAIR_GEN
CKM_ECDSA
CKM_ECDSA_SHA1
CKM_ECDH1_DERIVE

CKM_DES_KEY_GEN
CKM_DES_ECB
CKM_DES_CBC
CKM_DES_CBC_PAD

CKM_DES3_KEY_GEN
CKM_DES3_ECB
CKM_DES3_CBC
CKM_DES3_CBC_PAD

CKM_AES_KEY_GEN
CKM_AES_ECB
CKM_AES_CBC
CKM_AES_CBC_PAD
CKM_AES_CTR
CKM_AES_XCBC_MAC
CKM_AES_XCBC_MAC_96
CKM_AES_GMAC
CKM_AES_GCM
CKM_AES_CCM
CKM_AES_CFB128

CKM_BLOWFISH_KEY_GEN
CKM_BLOWFISH_CBC

CKM_CAMELLIA_KEY_GEN
CKM_CAMELLIA_ECB
CKM_CAMELLIA_CBC


CKM_RC4_KEY_GEN
CKM_RC4 (usable for decryption only)

CKM_MD5_RSA_PKCS
CKM_SHA1_RSA_PKCS
CKM_SHA224_RSA_PKCS
CKM_SHA256_RSA_PKCS
CKM_SHA384_RSA_PKCS
CKM_SHA512_RSA_PKCS

CKM_MD5
CKM_SHA_1
CKM_SHA224
CKM_SHA256
CKM_SHA384
CKM_SHA512

CKM_SHA512_224
CKM_SHA512_256
CKM_SHA512_T

CKM_MD5_HMAC
CKM_MD5_HMAC_GENERAL
CKM_SHA_1_HMAC
CKM_SHA_1_HMAC_GENERAL
CKM_SHA224_HMAC
CKM_SHA256_HMAC
CKM_SHA224_HMAC_GENERAL
CKM_SHA512_224_HMAC_GENERAL
CKM_SHA512_256_HMAC_GENERAL
CKM_SHA512_T_HMAC_GENERAL
CKM_SHA512_224_HMAC
CKM_SHA512_256_HMAC
CKM_SHA512_T_HMAC
CKM_SHA256_HMAC_GENERAL
CKM_SHA384_HMAC
CKM_SHA384_HMAC_GENERAL

CKM_MD5_KEY_DERIVATION
CKM_SHA1_KEY_DERIVATION
CKM_SHA224_KEY_DERIVATION
CKM_SHA256_KEY_DERIVATION
CKM_SHA384_KEY_DERIVATION
CKM_SHA512_KEY_DERIVATION
CKM_SHA512_224_KEY_DERIVATION
CKM_SHA512_256_KEY_DERIVATION
CKM_SHA512_T_KEY_DERIVATION

CKM_SSL3_PRE_MASTER_KEY_GEN 
CKM_SSL3_MASTER_KEY_DERIVE
CKM_SSL3_KEY_AND_MAC_DERIVE
CKM_SSL3_MASTER_KEY_DERIVE_DH
CKM_TLS_PRE_MASTER_KEY_GEN 
CKM_TLS_MASTER_KEY_DERIVE 
CKM_TLS_KEY_AND_MAC_DERIVE 
CKM_TLS_MASTER_KEY_DERIVE_DH
CKM_TLS12_MASTER_KEY_DERIVE
CKM_TLS12_MASTER_KEY_DERIVE_DH
CKM_TLS12_KEY_AND_MAC_DERIVE
CKM_TLS12_KEY_SAFE_DERIVE
CKM_TLS_KDF
CKM_TLS_MAC

以下每种类型的密钥对象都具有令牌特定的某些属性,缺省情况下,这些属性将因创建对象、生成密钥/密钥对以及派生密钥而设置为 true。

公钥对象

CKA_ENCRYPTCKA_VERIFYCKA_VERIFY_RECOVER

私钥对象

CKA_DECRYPTCKA_SIGNCKA_SIGN_RECOVERCKA_EXTRACTABLE

密钥对象

CKA_ENCRYPTCKA_DECRYPTCKA_SIGNCKA_VERIFYCKA_EXTRACTABLE

支持以下证书对象:

CKC_X_509

对于 CKC_X_509 证书对象,支持以下属性:CKA_SUBJECTCKA_VALUECKA_LABELCKA_IDCKA_ISSUERCKA_SERIAL_NUMBERCKA_CERTIFICATE_TYPE

CKC_X_509_ATTR_CERT

对于 CKC_X_509_ATTR_CERT 证书对象,支持以下属性:CKA_OWNERCKA_VALUE、CKA_LABELCKA_SERIAL_NUMBERCKA_AC_ISSUERCKA_ATTR_TYPESCKA_CERTIFICATE_TYPE

C_FindObjectsInit 中执行匹配模板的对象搜索操作。匹配的对象将进行缓存以供后续 C_FindObjects 操作使用。

pkcs11_softtoken.so 对象提供了一个基于文件系统的持久性令牌对象存储,用来存储令牌对象。令牌对象存储的缺省位置是 /var/user/$USERNAME/pkcs11_softtoken。用户可以使用 ${SOFTTOKEN_DIR} 环境变量覆盖该缺省位置。

如果令牌对象存储从未经过初始化,C_Login() 函数可能会返回 CKR_OK,但用户无法创建、生成、派生或查找任何专用令牌对象并会收到 CKR_PIN_EXPIRED

用户应该通过新口令短语或现有口令短语使用 pktool inittoken 命令,分别初始化或重新初始化令牌对象存储。可以设置或更改用户定义的 softtoken 令牌标签。更重要的是,令牌对象存储内部的所有对象将被销毁。然后,用户仅需使用 pktool setpin 命令即可更改令牌对象存储的口令短语。

在使用 pktool setpin 命令所设置的新口令短语登录到对象存储后,用户即可在此新创建的对象存储中创建和存储专用令牌对象。在 setpin 初始化令牌对象存储之前,允许使用 C_Login() 函数,但用户创建、生成、派生或查找任何专用令牌对象的所有尝试都会失败并会显示 CKR_PIN_EXPIRED 错误。

C_Login()C_SetPIN() 函数提供的 PIN 可以是长度介于 1 到 256 之间且不带嵌入空字符的任何字符串。

返回值

在 OASIS PKCS#11 v2.40 规范中定义并列出了其中每个已实现函数的返回值。请参见 http://www.oasis-open.org

文件

/var/user/$USERNAME/pkcs11_softtoken

用户的缺省令牌对象存储

${SOFTTOKEN_DIR}/pkcs11_softtoken

令牌对象存储的备用位置

属性

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

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

另请参见

pktool(1)cryptoadm(8)libpkcs11(3LIB)attributes(7)

OASIS PKCS#11 v2.40 http://www.oasis-open.org