PKCS #11 密码令牌接口标准 (Cryptoki)
标准编号:PKCS #11 系列 (当前版本 v3.0, 2020年; 主流 v2.4/v2.5)
发布组织:OASIS (原 RSA Laboratories) | 标准技术委员会
摘要:PKCS #11 是公钥密码标准中最广泛使用的令牌接口标准,它为硬件安全模块 (HSM)、智能卡、USB Key 等加密令牌提供了统一的 C 语言 API。通过该 API,应用程序可以独立于具体硬件执行密钥生成、加解密、签名验签、密钥导入导出、随机数生成等操作。它是企业级加密应用、证书颁发机构、SSL/TLS 加速、代码签名等场景中安全硬件调用的实际标准。
核心概念:
- 槽 (Slot):令牌插入的位置;一个令牌对应一个槽。
- 令牌 (Token):加密设备(如智能卡、USB Key),具有存储密钥和证书的能力。
- 会话 (Session):应用程序与令牌之间的逻辑连接状态。
- 对象 (Object):令牌上存储的数据,包括密钥、证书、数据对象等。
- 机制 (Mechanism):由令牌支持的加密算法和操作,如 RSA_PKCS, AES_CBC, ECDSA, SHA256 等。
- 用户类型:安全官员 (SO) 和普通用户 (User),不同权限执行不同操作。
主要函数类别:
- 全局初始化与槽/令牌信息获取 (C_Initialize, C_GetSlotList, C_GetTokenInfo)
- 会话管理 (C_OpenSession, C_CloseSession)
- 对象管理 (C_CreateObject, C_DestroyObject, C_FindObjects)
- 加密/解密 (C_Encrypt, C_Decrypt)
- 签名/验签 (C_Sign, C_Verify)
- 密钥生成 (C_GenerateKey, C_GenerateKeyPair)
- 随机数生成 (C_GenerateRandom)
安全认证等级:PKCS #11 定义了 Level 1 (仅函数接口) 和 Level 2 (多用户安全认证) 以及 Level 3 (多用户且受保护的路径)。
官方资源: OASIS PKCS #11 技术委员会网站 | PKCS #11 参考文档
关联工具: 非对称加密工具 (RSA/ECC) | 对称加密工具 | 哈希摘要工具