ハードウェアプロバイダは、自動的に配置されロードされます。詳細は、driver.conf(4) のマニュアルページを参照してください。
暗号化フレームワークへの接続が想定されているハードウェアがある場合、そのハードウェアはカーネルの SPI に登録されます。暗号化フレームワークでは、ハードウェアドライバが署名されていることが確認されます。特に、ドライバのオブジェクトファイルが Oracle が発行する証明書付きで署名されていることが確認されます。
たとえば、Sun Crypto Accelerator 6000 ボード (mca)、UltraSPARC T1 および T2 プロセッサの暗号化アクセラレータ用 ncp ドライバ (ncp)、UltraSPARC T2 プロセッサ用 n2cp ドライバ (n2cp)、T シリーズシステム用の /dev/crypto ドライバは、ハードウェアのメカニズムをフレームワークに接続します。
プロバイダの署名については、暗号化フレームワークのユーザーレベルコマンドの elfsign に関する情報を参照してください。
使用可能なプロバイダを一覧表示するには、取得する情報に応じて、cryptoadm list コマンドにさまざまなオプションを付けて使用します。
システムのすべてのプロバイダを一覧表示する。
プロバイダリストの内容と書式は、Oracle Solaris のリリースやプラットフォームによって異なります。使用しているシステムでサポートされるプロバイダを表示するには、システムで cryptoadm list コマンドを実行します。通常のユーザーは、ユーザーレベルのメカニズムのみを直接使用できます。
% cryptoadm list User-level providers: /* for applications */ Provider: /usr/lib/security/$ISA/pkcs11_kernel.so Provider: /usr/lib/security/$ISA/pkcs11_softtoken.so Provider: /usr/lib/security/$ISA/pkcs11_tpm.so Kernel software providers: /* for IPsec, kssl, Kerberos */ des aes arcfour blowfish camellia ecc sha1 sha2 md4 md5 rsa swrand n2rng/0 /* for hardware */ ncp/0 n2cp/0
暗号化フレームワークのプロバイダとそのメカニズムを一覧表示する。
利用可能なメカニズムの強度やモード (ECB、CBC など) を表示できます。ただし、一覧表示されたメカニズムのいくつかは使用できない場合があります。使用可能なメカニズムを一覧表示する方法については、次の項目の手順を参照してください。
次の出力は、表示用に切り詰められています。
% cryptoadm list -m [provider=provider] User-level providers: ===================== Provider: /usr/lib/security/$ISA/pkcs11_kernel.so Mechanisms: CKM_DSA CKM_RSA_X_509 CKM_RSA_PKCS ... CKM_SHA256_HMAC_GENERAL CKM_SSL3_MD5_MAC Provider: /usr/lib/security/$ISA/pkcs11_softtoken.so Mechanisms: CKM_DES_CBC CKM_DES_CBC_PAD CKM_DES_ECB CKM_DES_KEY_GEN CKM_DES_MAC_GENERAL ... CKM_ECDSA_SHA1 CKM_ECDH1_DERIVE Provider: /usr/lib/security/$ISA/pkcs11_tpm.so /usr/lib/security/$ISA/pkcs11_tpm.so: no slots presented. Kernel providers: ========================== des: CKM_DES_ECB,CKM_DES_CBC,CKM_DES3_ECB,CKM_DES3_CBC aes: CKM_AES_ECB,CKM_AES_CBC,CKM_AES_CTR,CKM_AES_CCM, \ CKM_AES_GCM,CKM_AES_GMAC, CKM_AES_CFB128,CKM_AES_XTS,CKM_AES_XCBC_MAC arcfour: CKM_RC4 blowfish: CKM_BLOWFISH_ECB,CKM_BLOWFISH_CBC ecc: CKM_EC_KEY_PAIR_GEN,CKM_ECDH1_DERIVE,CKM_ECDSA, \ CKM_ECDSA_SHA1 sha1: CKM_SHA_1,CKM_SHA_1_HMAC,CKM_SHA_1_HMAC_GENERAL sha2: CKM_SHA224,CKM_SHA224_HMAC,...CKM_SHA512_256_HMAC_GENERAL md4: CKM_MD4 md5: CKM_MD5,CKM_MD5_HMAC,CKM_MD5_HMAC_GENERAL rsa: CKM_RSA_PKCS,CKM_RSA_X_509,CKM_MD5_RSA_PKCS, \ CKM_SHA1_RSA_PKCS,CKM_SHA224_RSA_PKCS, CKM_SHA256_RSA_PKCS,CKM_SHA384_RSA_PKCS,CKM_SHA512_RSA_PKCS swrand: No mechanisms presented. n2rng/0: No mechanisms presented. ncp/0: CKM_DSA,CKM_RSA_X_509,CKM_RSA_PKCS,CKM_RSA_PKCS_KEY_PAIR_GEN, CKM_DH_PKCS_KEY_PAIR_GEN,CKM_DH_PKCS_DERIVE,CKM_EC_KEY_PAIR_GEN, CKM_ECDH1_DERIVE,CKM_ECDSA n2cp/0: CKM_DES_CBC,CKM_DES_CBC_PAD,CKM_DES_ECB,CKM_DES3_CBC, \ ...CKM_SSL3_SHA1_MAC
使用可能な暗号化メカニズムを一覧表示する。
使用可能なメカニズムをポリシーで決定します。ポリシーは、管理者によって設定されます。管理者は、特定のプロバイダのメカニズムを無効にすることができます。–p オプションを指定すると、管理者が設定したポリシーによって許可されているメカニズムのリストが表示されます。
% cryptoadm list -p [provider=provider] User-level providers: ===================== /usr/lib/security/$ISA/pkcs11_kernel.so: \ all mechanisms are enabled.random is enabled. /usr/lib/security/$ISA/pkcs11_softtoken.so: \ all mechanisms are enabled, random is enabled. /usr/lib/security/$ISA/pkcs11_tpm.so: all mechanisms are enabled.
Kernel providers: ========================== des: all mechanisms are enabled. aes: all mechanisms are enabled. arcfour: all mechanisms are enabled. blowfish: all mechanisms are enabled. ecc: all mechanisms are enabled. sha1: all mechanisms are enabled. sha2: all mechanisms are enabled. md4: all mechanisms are enabled. md5: all mechanisms are enabled. rsa: all mechanisms are enabled. swrand: random is enabled. n2rng/0: all mechanisms are enabled. random is enabled. ncp/0: all mechanisms are enabled. n2cp/0: all mechanisms are enabled.
次の例は、cryptoadm list コマンドの追加の使用を示しています。
使用例 3-11 特定のプロバイダの暗号化情報の一覧表示cryptoadm options コマンドでプロバイダを指定すると、プロバイダに適用可能な情報のみに出力が制限されます。
# cryptoadm enable provider=dca/0 random # cryptoadm list -p provider=dca/0 dca/0: all mechanisms are enabled, except CKM_MD5, CKM_MD5_HMAC,... random is enabled.
次の出力は、メカニズムのみが有効であることを示しています。乱数発生関数は無効にしておきます。
# cryptoadm list -p provider=dca/0 dca/0: all mechanisms are enabled, except CKM_MD5,CKM_MD5_HMAC,.... # cryptoadm enable provider=dca/0 mechanism=all # cryptoadm list -p provider=dca/0 dca/0: all mechanisms are enabled. random is disabled.
次の出力は、ボードのすべての機能とメカニズムが有効であることを示しています。
# cryptoadm list -p provider=dca/0 dca/0: all mechanisms ar enabled, except CKM_DES_ECB,CKM_DES3_ECB. random is disabled. # cryptoadm enable provider=dca/0 all # cryptoadm list -p provider=dca/0 dca/0: all mechanisms are enabled. random is enabled.使用例 3-12 ユーザーレベルの暗号化メカニズムのみを検索する
次の例では、ユーザーレベルライブラリ pkcs11_softtoken が提供するすべてのメカニズムを一覧表示します。
% cryptoadm list -m provider=/usr/lib/security/\ $ISA/pkcs11_softtoken.so Mechanisms: CKM_DES_CBC CKM_DES_CBC_PAD CKM_DES_ECB CKM_DES_KEY_GEN CKM_DES_MAC_GENERAL CKM_DES_MAC … CKM_ECDSA CKM_ECDSA_SHA1 CKM_ECDH1_DERIVE使用例 3-13 暗号化メカニズムで実行される機能を確認する
メカニズムでは、署名や鍵の生成など、特定の暗号化機能を実行します。–v –m オプションによって、すべてのメカニズムとその機能が表示されます。
この場合、管理者はどの機能に対して CKM_ECDSA* メカニズムが使用できるかを確認します。
% cryptoadm list -vm User-level providers: ===================== Provider: /usr/lib/security/$ISA/pkcs11_kernel.so Number of slots: 3 Slot #2 Description: ncp/0 Crypto Accel Asym 1.0 ... CKM_ECDSA 163 571 X . . . X . X . . . . . . . ... Provider: /usr/lib/security/$ISA/pkcs11_softtoken.so ... CKM_ECDSA 112 571 . . . . X . X . . . . . . . . CKM_ECDSA_SHA1 112 571 . . . . X . X . . . . . . . . ... Kernel providers: ================= ... ecc: CKM_EC_KEY_PAIR_GEN,CKM_ECDH1_DERIVE,CKM_ECDSA,CKM_ECDSA_SHA1 ...
このリストは、これらのメカニズムが次のユーザーレベルプロバイダから使用可能であることを示しています。
CKM_ECDSA および CKM_ECDSA_SHA1 – /usr/lib/security/$ISA/pkcs11_softtoken.so ライブラリ内のソフトウェア実装として
CKM_ECDSA – /usr/lib/security/$ISA/pkcs11_kernel.so ライブラリ内の ncp/0 Crypto Accel Asym 1.0 による高速化
エントリの各項目は、メカニズムに関する情報を表しています。これらの ECC メカニズムについて、一覧は次を示しています。
最小の長さ – 112 バイト
最大の長さ – 571 バイト
ハードウェア – ハードウェア上で使用できるかどうか。
暗号化 – データの暗号化に使用されません。
復号化 – データの復号化に使用されません。
ダイジェスト – メッセージダイジェストの作成に使用されません。
署名 – データの署名に使用されます。
署名 + 回復 – データの署名に使用されません。そのデータはシグニチャーから回復できます。
検証 – 署名付きデータの検証に使用されます。
検証 + 回復 – シグニチャーから回復できるデータの検証に使用されません。
鍵の生成 – 非公開鍵の生成に使用されません。
ペアの生成 – 鍵ペアの生成に使用されません。
ラップ - ラップに使用されません。 既存の鍵の暗号化。
ラップ解除 – ラップされた鍵のラップ解除に使用されません。
派生 – ベース鍵からの新しい鍵の派生に使用されません。
EC 機能 – 前の項目には含まれていない存在しない EC 機能