Go to main content

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

退出打印视图

更新时间: 2022年7月27日 星期三
 
 

pkcs11_kmip(7)

名称

pkcs11_kmip - KMIP 服务器的 RSA PKCS#11 提供者

用法概要

/usr/lib/security/pkcs11_kmip.so
/usr/lib/security/64/pkcs11_kmip.so

描述

The pkcs11_kmip.so object implements the RSA Security Inc. PKCS#11 Cryptographic Token Interface (Cryptoki), v2.20 specification by using the Key Management Interoperability Protocol (KMIP) to communicate to a KMIP server.此提供者支持以下 PKCS#11 机制:

  • CKM_AES_KEY_GEN
  • CKM_AES_CBC
  • CKM_AES_CBC_PAD

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

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

pkcs11_kmip 提供者支持多个插槽。每个插槽容纳一个 KMIP 服务器组。也就是说,一组 KMIP 服务器代表插入 PKCS#11 插槽的一个令牌。

KMIP PKCS#11 令牌配置包括两个部分:pkcs11_kmiplibkmip 特定部分。配置存储基于文件(对于用户专用配置)和基于 smf(共享系统范围的缺省值)。有关更多信息,请参见 smf(7) 手册页。

在初始化 pkcs11_kmip 提供者之前,用户需要先使用 kmipcfg 命令配置 KMIP 服务器组。有关更多信息,请参见 kmipcfg(8) 手册页。

专用 KMIP 客户机配置

kmipcfg 在各自的 KMIP 令牌目录中创建配置文件。此步骤提供用来与 KMIP 服务器建立连接的配置材料(包括 TLS 凭证)。可以为 PKCS#11 客户机配置一个或多个服务器组。有关更多信息,请参见 kmipcfg(8) 手册页。

KMIP 令牌目录的缺省位置为 /var/user/$USERNAME/kmip。如果设置,则环境变量 $KMIPTOKEN_DIR 会覆盖缺省位置。此 KMIP 令牌目录下的每个子目录表示一个服务器组,用于保存 KMIP 客户机与 KMIP 服务器连接时所需的配置材料。

共享 KMIP 客户机配置

KMIP 客户机组件的共享配置存储在服务管理框架中。有关更多信息,请参见 smf(7) 手册页。配置及其修改的访问规则由 SMF 的安全框架确定。有关更多信息,请参见 smf_security(7) 手册页。KMIP 客户机组件特定的授权和配置文件在 RBAC 框架中预配置,并用于各自的服务实例清单中以控制允许的操作。

共享 KMIP 客户机配置由“缺省 KMIP 令牌”服务组和标记表示。kmipcfg 用于更新配置参数。

服务实例和授权配置文件:为最顶层的 KMIP 客户机服务实例 svc:/system/pkcs11:kmip 定义了以下 rbac 配置文件。

PROFILE NAME
ACCESS TYPE
PKCS11 Default KMIP Token User
read-only
PKCS11 Default KMIP Token Administrator
read-write
PKCS11 Default KMIP Token Service Instance Control
read-write + instance management

CONFIGURATION

使用 kmipcfg 命令初始化用户的专用 KMIP 令牌。例如,要创建名为 KMIP_server 的服务器组,请键入以下命令:

# kmipcfg create -o server_list=kmip-server.example.com:5696 \
     -o client_p12=kmip-server.p12 KMIP_server

使用 kmipcfg create 命令初始化并配置专用 KMIP 令牌后,可以使用 pktool inittoken 命令更改服务器组的名称:

# pktool inittoken slotid=3 currlabel=KMIP_server \
     newlabel=KMIP_newserver

对于初始化的专用 KMIP 令牌,可以使用 pktool setpin 命令更改与各服务器组的 PKCS#12 包关联的口令短语。

# pktool setpin keystore=pkcs11 token=KMIP_server

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

共享 KMIP 令牌从来都不是使用 kmipcfg create 命令创建的。安装 pkcs11_kmip 软件包期间会自动预配置该令牌,且仅由用户与“缺省 KMIP 令牌”特定的 rbac 授权之间是否存在关联来确定用户是否可以使用该令牌。

要设置“缺省 KMIP 令牌”参数,请使用 kmipcfg set 命令。

# kmipcfg set -o server_list="kmip-server.example.com:5696" \
         -o cred_source_type=raw -o cert=/tmp/cert.pem \
         -o private_key=/tmp/key.pem -o ca_cert=/tmp/ca_cert.pem \
         "Default KMIP token"

如果至少成功设置了 certprivate_key 参数或 p12_bundle,则各个令牌会标记上“受保护的授权路径”标志,并允许进行无 PIN 的访问。仍需要 C_Login() 函数调用,但 pPin 参数设置为 NULL_PTR。设置这些参数也会初始化“缺省 KMIP 令牌”,因此不需要进一步进行令牌初始化操作。

返回值

每个已实现函数的返回值都在 RSA PKCS#11 v2.20 规范中定义和列出。

在调用时,所有未实现的函数均返回 CKR_FUNCTION_NOT_SUPPORTED

文件

/var/user/$USERNAME/kmip

用户的缺省 KMIP 令牌目录

$KMIPTOKEN_DIR

KMIP 令牌目录的备用位置

属性

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

属性类型
属性值
接口稳定性
Committed(已确定)
MT 级别
MT-Safe with exceptions.有关更多信息,请参见 RSA PKCS#11 v2.20 的第 6.6.2 节
标准
PKCS#11 v2.20

另请参见

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

OASIS PKCS#11 specification

https://www.oasis-open.org/committees/pkcs11/

History

The pkcs11_kmip provider was added to Oracle Solaris in Solaris 11.3.17.