Go to main content

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

印刷ビューの終了

更新: 2022年7月27日
 
 

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 暗号化トークンインタフェース (Cryptoki) v2.40 仕様をソフトウェアに実装します。この PKCS#11 の実装により、トークンオブジェクトの永続的ストレージが提供されます。

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

暗号化アルゴリズムの中には、ハードウェアで高速化されるものがあります。管理者は、次のコマンドを実行してシステムのこのリストを特定し、その出力内の 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 です。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_VERIFY CKA_VERIFY_RECOVER

非公開鍵オブジェクト

CKA_DECRYPTCKA_SIGN CKA_SIGN_RECOVERCKA_EXTRACTABLE

秘密鍵オブジェクト

CKA_ENCRYPTCKA_DECRYPT CKA_SIGNCKA_VERIFYCKA_EXTRACTABLE

サポートされている証明書オブジェクトは次のとおりです。

CKC_X_509

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

CKC_X_509_ATTR_CERT

CKC_X_509_ATTR_CERT 証明書オブジェクトでサポートされている属性は、CKA_OWNERCKA_VALUE、CKA_LABELCKA_SERIAL_NUMBERCKA_AC_ISSUER CKA_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 inittoken コマンドを使用することで、トークンオブジェクトストアの初期化または再初期化をそれぞれ行うようにしてください。softtoken 用のユーザー定義のトークンラベルを設定または変更できます。さらに重要なことには、トークンオブジェクトストア内のオブジェクトはすべて破棄されます。そのあと、ユーザーは pktool setpin コマンドを使用して、トークンオブジェクトストアのパスフレーズを変更できます。

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

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

戻り値

実装されている各関数の戻り値は、OASIS PKCS#11 v2.40 仕様で定義および一覧表示されています。See https://www.oasis-open.org/committees/pkcs11/

ファイル

/var/user/$USERNAME/pkcs11_softtoken

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

${SOFTTOKEN_DIR}/pkcs11_softtoken

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

属性

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

属性タイプ
属性値
使用条件
system/library/security/pkcs11_softtoken
インタフェースの安定性
確実
MT レベル
例外付きで MT-安全。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 specification

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