Go to main content

マニュアルページ セクション 7: 標準、環境、マクロ、文字セット、その他

印刷ビューの終了

更新: 2018年8月8日
 
 

pkcs11_kmip (7)

名前

pkcs11_kmip - KMIP サーバーの RSA PKCS#11 プロバイダ

形式

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

説明

pkcs11_kmip.so オブジェクトは、Key Management Interoperability Protocol (KMIP) を使用して KMIP サーバーと通信することで、RSA Security Inc. の PKCS#11 暗号化トークンインタフェース (Cryptoki) v2.20 仕様を実装します。次の 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_kmip に固有の部分と libkmip に固有の部分、の 2 つの部分から成ります。構成のストレージは、ファイルベース (ユーザープライベート構成用)、smf ベース (システム全体で共有されるデフォルト)、のいずれかになります。詳細は、smf(7) のマニュアルページを参照してください。

pkcs11_kmip プロバイダを初期化する前に、まず kmipcfg コマンドを使って KMIP サーバーグループを構成する必要があります。詳細は、kmipcfg(8) のマニュアルページを参照してください。

プライベート KMIP クライアント構成

kmipcfg は、対応する KMIP トークンディレクトリ内に構成ファイルを作成します。このステップにより、KMIP サーバーへの接続を確立するための構成データ (TLS 資格を含む) が用意されます。1 つ以上のサーバーグループを PKCS#11 クライアントに対して構成できます。詳細は、kmipcfg(8) のマニュアルページを参照してください。

KMIP トークンディレクトリのデフォルトの場所は /var/user/$USERNAME/kmip です。環境変数 $KMIPTOKEN_DIR を設定すると、デフォルトの場所がオーバーライドされます。この KMIP トークンディレクトリの下の各サブディレクトリは 1 つのサーバーグループを表しており、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  |
       +----------------------------------------------------+-------------+

構成

ユーザーのプライベート KMIP トークンは kmipcfg コマンドを使用して初期化します。たとえば、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 トークンでは、対応するサーバーグループの PKCS#12 バンドルに関連付けられたパスフレーズを、pktool setpin コマンドを使って変更できます。

# pktool setpin keystore=pkcs11 token=KMIP_server

pktool setpin 演算を使用するか、C_Login() および C_SetPIN() 関数を呼び出すことによって提供される PIN には、長さが 1 - 256 で NULL が埋め込まれていない任意の文字列を指定できます。

共有 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) を参照してください。

属性タイプ
属性値
インタフェースの安定性
確実
MT レベル
例外付きで MT-安全。詳しくは、RSA PKCS#11 v2.20 のセクション 6.6.2 を参照してください
標準
PKCS#11 v2.20

関連項目

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