Go to main content
マニュアルページ セクション 5: 標準、環境、マクロ

印刷ビューの終了

更新: 2016年12月6日
 
 

pkcs11_softtoken (5)

名前

pkcs11_softtoken - ソフトウェアの RSA PKCS#11 ソフトトークン

形式

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

説明

pkcs11_softtoken.so オブジェクトは、RSA Security Inc. の PKCS#11 暗号化トークンインタフェース (Cryptoki) v2.20 仕様をソフトウェアに実装します。この PKCS#11 の実装により、トークンオブジェクトの永続的ストレージが提供されます。

pkcs11_softtoken プロバイダは Oracle Solaris の必要な部分であるため、cryptoadm(1M) を使用して無効にしてはいけません。

暗号化アルゴリズムの中には、ハードウェアで高速化されるものがあります。管理者は、次のコマンドを実行してシステムのこのリストを特定し、その出力内の HW 列を調べることができます。

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

開発者に対しては、ハードウェアで高速化される PKCS#11 メカニズムの CK_MECHANISM_INFO 構造体の CKF_HW フラグが設定されます。

アプリケーション開発者は、pkcs11_softtoken.so に直接リンクするのではなく、libpkcs11.so にリンクするようにしてください。libpkcs11(3LIB) を参照してください。

実装されている暗号化アルゴリズムは、DES、3DES、AES、Blowfish、RC4、MD5、SHA1、SHA224、SHA256、SHA384、SHA512、RSA、DSA、DH、ECC、および Camellia です。

libpkcs11(3LIB) のリストに示されている標準の PKCS#11 関数は、次のものを除きすべて実装されています。

C_GetObjectSize
C_InitPIN
C_WaitForSlotEvent

これらの関数を呼び出すと、CKR_FUNCTION_NOT_SUPPORTED が返されます。

サポートされている RSA PKCS#11 v2.20 メカニズムは次のとおりです。

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_BLOWFISH_KEY_GEN
CKM_BLOWFISH_CBC

CKM_CAMELLIA_KEY_GEN
CKM_CAMELLIA_ECB
CKM_CAMELLIA_CBC
CKM_CAMELLIA_CBC_PAD

CKM_RC4_KEY_GEN
CKM_RC4

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_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_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_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

次に示す各タイプの鍵オブジェクトには、トークン固有の属性がいくつかあります。これらは、オブジェクトの作成、鍵/鍵ペアの生成、および鍵の派生の結果として、デフォルトで 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_NUMBER、および CKA_CERTIFICATE_TYPE です。

CKC_X_509_ATTR_CERT

CKC_X_509_ATTR_CERT 証明書オブジェクトでサポートされている属性は、CKA_OWNERCKA_VALUE、CKA_LABELCKA_SERIAL_NUMBERCKA_AC_ISSUERCKA_ATTR_TYPES、および CKA_CERTIFICATE_TYPE です。

テンプレートに一致するオブジェクトの検索操作は C_FindObjectsInit で実行されます。一致したオブジェクトは、以降の C_FindObjects 操作のためにキャッシュされます。

pkcs11_softtoken.so オブジェクトにより、トークンオブジェクトを保存するためのファイルシステムベースの永続的なトークンオブジェクトストアが提供されます。トークンオブジェクトストアのデフォルトの場所は /var/user/$USERNAME/pkcs11_softtoken です。ユーザーは ${SOFTTOKEN_DIR} 環境変数を使用すると、デフォルトの場所をオーバーライドできます。

トークンオブジェクトストアが一度も初期化されていない場合、C_Login() 関数は CKR_OK を返すことがありますが、ユーザーは非公開のトークンオブジェクトの作成、生成、派生、または検索を行うことはできず、CKR_PIN_EXPIRED が返されます。

ユーザーは pktool(1) setpin コマンドを使用し、古いパスフレーズとしてデフォルトのパスフレーズ「changeme」を設定して、オブジェクトストアのパスフレーズを変更する必要があります。このアクションは、パスフレーズを初期化して、新しく作成したトークンオブジェクトストアに設定するために必要です。

ユーザーは pktool setpin コマンドで設定した新しいパスフレーズを使用してオブジェクトストアにログインしたあと、この新しく作成されたオブジェクトストアに非公開のトークンオブジェクトを作成して保存できます。setpin でトークンオブジェクトストアを初期化するまでは、C_Login() 関数を使用することはできますが、ユーザーが非公開のトークンオブジェクトの作成、生成、派生、または検索を試みるとすべて失敗し、CKR_PIN_EXPIRED エラーが返されます。

C_Login() 関数と C_SetPIN() 関数に指定する PIN には、長さが 1 から 256 までで、空文字を含まない、任意の文字列を使用できます。

戻り値

実装されている各関数の戻り値は、RSA PKCS#11 v2.20 仕様で定義されています。

ファイル

/var/user/$USERNAME/pkcs11_softtoken

ユーザーのデフォルトのトークンオブジェクトストア

${SOFTTOKEN_DIR}/pkcs11_softtoken

トークンオブジェクトストアの代替の場所

属性

次の属性については、attributes(5) を参照してください。

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

関連項目

pktool(1), cryptoadm(1M), libpkcs11(3LIB), attributes(5), pkcs11_kernel(5)