ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris の管理: セキュリティーサービス Oracle Solaris 11 Information Library (日本語) |
パート II システム、ファイル、およびデバイスのセキュリティー
10. Oracle Solaris のセキュリティー属性 (参照)
22. Kerberos エラーメッセージとトラブルシューティング
このセクションでは、暗号化フレームワークでのソフトウェアプロバイダとハードウェアプロバイダの管理方法について説明します。必要に応じて、ソフトウェアプロバイダおよびハードウェアプロバイダの使用を解除することができます。たとえば、ソフトウェアプロバイダのアルゴリズムの実装を無効にすることができます。その後、別のソフトウェアプロバイダのアルゴリズムがシステムで使用されるようにすることができます。
次のタスクマップは、暗号化フレームワークでのソフトウェアプロバイダとハードウェアプロバイダの管理の手順を示しています。
|
暗号化フレームワークは、数種類のコンシューマ用のアルゴリズムを提供します。
ユーザーレベルプロバイダは、 libpkcs11 ライブラリにリンクされているアプリケーションに PKCS #11 暗号化インタフェースを提供します
カーネルソフトウェアプロバイダは、IPsec、Kerberos、およびその他の Oracle Solaris カーネルコンポーネント用のアルゴリズムを提供します
カーネルハードウェアプロバイダは、pkcs11_kernel ライブラリによって、カーネルコンシューマおよびアプリケーションが使用可能なアルゴリズムを提供します
注 - プロバイダリストの内容と書式は、Oracle Solaris のリリースによって異なります。使用しているシステムでサポートされるプロバイダを表示するには、システムで cryptoadm list コマンドを実行します。
通常のユーザーは、ユーザーレベルのメカニズムのみを使用できます。
% cryptoadm list User-level providers: 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: des aes arcfour blowfish ecc sha1 sha2 md4 md5 rsa swrand Kernel hardware providers: ncp/0
すべてのメカニズムが次の出力のように一覧表示されます。ただし、一覧表示されたメカニズムのいくつかは使用できない場合があります。管理者によって使用が許可されているメカニズムのみを一覧表示する場合は、例 12-20 を参照してください。
この出力は、表示用に切り詰められています。
% cryptoadm list -m User-level providers: ===================== Provider: /usr/lib/security/$ISA/pkcs11_kernel.so /usr/lib/security/$ISA/pkcs11_kernel.so: no slots presented. 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 software 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 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_SHA256,CKM_SHA256_HMAC,CKM_SHA256_HMAC_GENERAL,CKM_SHA384,CKM_SHA384_HMAC, CKM_SHA384_HMAC_GENERAL,CKM_SHA512,CKM_SHA512_HMAC,CKM_SHA512_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_SHA256_RSA_PKCS,CKM_SHA384_RSA_PKCS,CKM_SHA512_RSA_PKCS swrand: No mechanisms presented. Kernel hardware providers: ========================== 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
例 12-19 既存の暗号化メカニズムを検索する
次の例では、ユーザーレベルライブラリ 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
例 12-20 使用可能な暗号化メカニズムを検索する
ポリシーによって、どのメカニズムが使用可能かが判断されます。ポリシーは、管理者によって設定されます。管理者は、特定のプロバイダのメカニズムを無効にすることができます。-p オプションを指定すると、管理者が設定したポリシーによって許可されているメカニズムのリストが表示されます。
% cryptoadm list -p User-level providers: ===================== /usr/lib/security/$ISA/pkcs11_kernel.so: all mechanisms are enabled. /usr/lib/security/$ISA/pkcs11_softtoken.so: all mechanisms are enabled, except CKM_MD5. random is enabled. /usr/lib/security/$ISA/pkcs11_tpm.so: all mechanisms are enabled. Kernel software 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. Kernel hardware providers: ========================== ncp/0: all mechanisms are enabled. random is enabled.
例 12-21 暗号化メカニズムで実行される機能を確認する
メカニズムでは、署名や鍵の生成など、特定の暗号化機能を実行します。-v -m オプションによって、すべてのメカニズムとその機能が表示されます。
この場合、管理者はどの機能に対して CKM_ECDSA* メカニズムが使用できるかを確認します。
% cryptoadm list -vm User-level providers: ===================== Provider: /usr/lib/security/$ISA/pkcs11_kernel.so /usr/lib/security/$ISA/pkcs11_kernel.so: no slots presented. Provider: /usr/lib/security/$ISA/pkcs11_softtoken.so ... CKM_ECDSA 112 571 . . . . X . X . . . . . . CKM_ECDSA_SHA1 112 571 . . . . X . X . . . . . . ...
この一覧は、これらのユーザーレベルのメカニズムを /usr/lib/security/$ISA/pkcs11_softtoken.so ライブラリから入手できることを示しています。
エントリの各項目は、メカニズムに関する情報を表しています。これらの ECC メカニズムについて、一覧は次を示しています。
最小の長さ – 112 バイト
最大の長さ – 571 バイト
ハードウェア – ハードウェア上で使用できません。
暗号化 – データの暗号化に使用されません。
復号化 – データの復号化に使用されません。
ダイジェスト – メッセージダイジェストの作成に使用されません。
署名 – データの署名に使用されます。
署名 + 回復 – データの署名に使用されません。そのデータはシグニチャーから回復できます。
検証 – 署名付きデータの検証に使用されます。
検証 + 回復 – シグニチャーから回復できるデータの検証に使用されません。
鍵の生成 – 非公開鍵の生成に使用されません。
ペアの生成 – 鍵ペアの生成に使用されません。
ラップ - ラップに使用されません。 既存の鍵の暗号化。
ラップ解除 – ラップされた鍵のラップ解除に使用されません。
派生 – ベース鍵からの新しい鍵の派生に使用されません。
始める前に
Crypto Management 権利プロファイルが割り当てられている必要があります。
詳細は、「管理権限を取得する方法」を参照してください。
% cryptoadm list User-level providers: Provider: /usr/lib/security/$ISA/pkcs11_kernel.so Provider: /usr/lib/security/$ISA/pkcs11_softtoken.so /usr/lib/security/$ISA/pkcs11_tpm.so: all mechanisms are enabled. Kernel software providers: des aes arcfour blowfish sha1 sha2 md4 md5 rsa swrand Kernel hardware providers: ncp/0
既存のプロバイダソフトウェアには Oracle によって証明書が発行されています。
ソフトウェアプロバイダを追加した場合や、ハードウェアおよびそのハードウェアに指定されているポリシーを追加した場合は、プロバイダを更新する必要があります。
# svcadm refresh svc:/system/cryptosvc
この場合、新しいカーネルソフトウェアプロバイダがインストールされています。
# cryptoadm list … Kernel software providers: des aes arcfour blowfish ecc sha1 sha2 md4 md5 rsa swrand sha3 <-- added provider …
例 12-22 ユーザーレベルソフトウェアプロバイダを追加する
次の例では、署名された PKCS #11 ライブラリをインストールします。
# pkgadd -d /cdrom/cdrom0/SolarisNew Answer the prompts # svcadm refresh system/cryptosvc # cryptoadm list user-level providers: ========================== /usr/lib/security/$ISA/pkcs11_kernel.so /usr/lib/security/$ISA/pkcs11_softtoken.so /usr/lib/security/$ISA/pkcs11_tpm.so /opt/lib/$ISA/libpkcs11.so.1 <-- added provider
暗号化フレームワークによってライブラリをテストする開発者は、ライブラリを手動でインストールできます。
# cryptoadm install provider=/opt/lib/\$ISA/libpkcs11.so.1
ライブラリプロバイダの暗号化メカニズムに使用すべきでないものが存在する場合、選択したメカニズムを削除することができます。この手順では、一例として、pkcs11_softtoken ライブラリの DES メカニズムを使用します。
始める前に
Crypto Management 権利プロファイルが割り当てられている必要があります。
詳細は、「管理権限を取得する方法」を参照してください。
% cryptoadm list -m provider=/usr/lib/security/\$ISA/pkcs11_softtoken.so /usr/lib/security/$ISA/pkcs11_softtoken.so: CKM_DES_CBC,CKM_DES_CBC_PAD,CKM_DES_ECB,CKM_DES_KEY_GEN, CKM_DES3_CBC,CKM_DES3_CBC_PAD,CKM_DES3_ECB,CKM_DES3_KEY_GEN, CKM_AES_CBC,CKM_AES_CBC_PAD,CKM_AES_ECB,CKM_AES_KEY_GEN, …
$ cryptoadm list -p user-level providers: ===================== … /usr/lib/security/$ISA/pkcs11_softtoken.so: all mechanisms are enabled. random is enabled. …
$ cryptoadm disable provider=/usr/lib/security/\$ISA/pkcs11_softtoken.so \ > mechanism=CKM_DES_CBC,CKM_DES_CBC_PAD,CKM_DES_ECB
$ cryptoadm list -p provider=/usr/lib/security/\$ISA/pkcs11_softtoken.so /usr/lib/security/$ISA/pkcs11_softtoken.so: all mechanisms are enabled, except CKM_DES_ECB,CKM_DES_CBC_PAD,CKM_DES_CBC. random is enabled.
例 12-23 ユーザーレベルソフトウェアプロバイダのメカニズムを有効にする
次の例では、無効になっている DES メカニズムを再び使用可能にします。
$ cryptoadm list -m provider=/usr/lib/security/\$ISA/pkcs11_softtoken.so /usr/lib/security/$ISA/pkcs11_softtoken.so: CKM_DES_CBC,CKM_DES_CBC_PAD,CKM_DES_ECB,CKM_DES_KEY_GEN, CKM_DES3_CBC,CKM_DES3_CBC_PAD,CKM_DES3_ECB,CKM_DES3_KEY_GEN, … $ cryptoadm list -p provider=/usr/lib/security/\$ISA/pkcs11_softtoken.so /usr/lib/security/$ISA/pkcs11_softtoken.so: all mechanisms are enabled, except CKM_DES_ECB,CKM_DES_CBC_PAD,CKM_DES_CBC. random is enabled. $ cryptoadm enable provider=/usr/lib/security/\$ISA/pkcs11_softtoken.so \ > mechanism=CKM_DES_ECB $ cryptoadm list -p provider=/usr/lib/security/\$ISA/pkcs11_softtoken.so /usr/lib/security/$ISA/pkcs11_softtoken.so: all mechanisms are enabled, except CKM_DES_CBC_PAD,CKM_DES_CBC. random is enabled.
例 12-24 ユーザーレベルソフトウェアプロバイダのメカニズムをすべて有効にする
次の例では、ユーザーレベルライブラリのメカニズムをすべて有効にします。
$ cryptoadm enable provider=/usr/lib/security/\$ISA/pkcs11_softtoken.so all $ cryptoadm list -p provider=/usr/lib/security/\$ISA/pkcs11_softtoken.so /usr/lib/security/$ISA/pkcs11_softtoken.so: all mechanisms are enabled. random is enabled.
例 12-25 ユーザーレベルソフトウェアプロバイダの使用を永続的に削除する
次の例では、libpkcs11.so.1 ライブラリを削除します。
$ cryptoadm uninstall provider=/opt/lib/\$ISA/libpkcs11.so.1 $ cryptoadm list user-level providers: /usr/lib/security/$ISA/pkcs11_kernel.so /usr/lib/security/$ISA/pkcs11_softtoken.so /usr/lib/security/$ISA/pkcs11_tpm.so kernel software providers: …
暗号化フレームワークが AES などのプロバイダの複数のモードを提供する場合、遅いメカニズムの使用を解除したり、破壊されたメカニズムを削除したりする場合があります。この手順では、一例として、AES アルゴリズムを使用します。
始める前に
Crypto Management 権利プロファイルが割り当てられている必要があります。
詳細は、「管理権限を取得する方法」を参照してください。
$ cryptoadm list -m provider=aes aes: CKM_AES_ECB,CKM_AES_CBC,CKM_AES_CTR,CKM_AES_CCM,CKM_AES_GCM,CKM_AES_GMAC
$ cryptoadm list -p provider=aes aes: all mechanisms are enabled.
$ cryptoadm disable provider=aes mechanism=CKM_AES_ECB
$ cryptoadm list -p provider=aes aes: all mechanisms are enabled, except CKM_AES_ECB.
例 12-26 カーネルソフトウェアプロバイダのメカニズムを有効にする
次の例では、無効になっている AES メカニズムを再び使用可能にします。
cryptoadm list -m provider=aes aes: CKM_AES_ECB,CKM_AES_CBC,CKM_AES_CTR,CKM_AES_CCM,CKM_AES_GCM,CKM_AES_GMAC $ cryptoadm list -p provider=aes aes: all mechanisms are enabled, except CKM_AES_ECB. $ cryptoadm enable provider=aes mechanism=CKM_AES_ECB $ cryptoadm list -p provider=aes aes: all mechanisms are enabled.
例 12-27 カーネルソフトウェアプロバイダの使用を一時的に削除する
次の例では、AES プロバイダの使用を一時的に削除します。unload サブコマンドは、プロバイダのアンインストール中にプロバイダが自動的に読み込まれないようにするために使用します。たとえば、unload サブコマンドは、プロバイダに影響を与えるパッチをインストールするときに使用します。
$ cryptoadm unload provider=aes
$ cryptoadm list … Kernel software providers: des aes (inactive) arcfour blowfish ecc sha1 sha2 md4 md5 rsa swrand
AES プロバイダは、暗号化フレームワークが更新されるまでは使用できません。
$ svcadm refresh system/cryptosvc
$ cryptoadm list … Kernel software providers: des aes arcfour blowfish ecc sha1 sha2 md4 md5 rsa swrand
カーネルコンシューマがカーネルソフトウェアプロバイダを使用している場合は、ソフトウェアは読み込み解除されません。エラーメッセージが表示され、プロバイダを使用し続けることができます。
例 12-28 ソフトウェアプロバイダの使用を永続的に解除する
次の例では、AES プロバイダの使用を解除します。いったん削除すると、AES プロバイダはカーネルソフトウェアプロバイダのポリシー一覧に表示されません。
$ cryptoadm uninstall provider=aes
$ cryptoadm list … Kernel software providers: des arcfour blowfish ecc sha1 sha2 md4 md5 rsa swrand
カーネルコンシューマがカーネルソフトウェアプロバイダを使用している場合は、エラーメッセージが表示され、プロバイダを使用し続けることができます。
例 12-29 削除されたカーネルソフトウェアプロバイダを再インストールする
次の例では、AES カーネルソフトウェアプロバイダを再インストールします。
$ cryptoadm install provider=aes \ mechanism=CKM_AES_ECB,CKM_AES_CBC,CKM_AES_CTR,CKM_AES_CCM,CKM_AES_GCM,CKM_AES_GMAC
$ cryptoadm list … Kernel software providers: des aes arcfour blowfish ecc sha1 sha2 md4 md5 rsa swrand
ハードウェアプロバイダは、自動的に配置され読み込まれます。詳細は、driver.conf(4) のマニュアルページを参照してください。
始める前に
暗号化フレームワーク内での使用が想定されているハードウェアがある場合、そのハードウェアはカーネルの SPI に登録されます。暗号化フレームワークでは、ハードウェアドライバが署名されていることが確認されます。特に、ドライバのオブジェクトファイルが Sun が発行する証明書付きで署名されていることが確認されます。
たとえば、Sun Crypto Accelerator 6000 ボード (mca)、UltraSPARC T1 および T2 プロセッサの暗号化アクセラレータ用 ncp ドライバ (ncp)、UltraSPARC T2 プロセッサ用 n2cp ドライバ (n2cp) は、ハードウェアのメカニズムをフレームワークに接続します。
プロバイダの署名については、「サードパーティーのソフトウェアのためのバイナリ署名」を参照してください。
% cryptoadm list … kernel hardware providers: ncp/0
% cryptoadm list -m provider=ncp/0 ncp/0: CKM_DSA CKM_RSA_X_509 ... CKM_ECDH1_DERIVE CKM_ECDSA
% cryptoadm list -p provider=ncp/0 ncp/0: all mechanisms are enabled.
ハードウェアプロバイダのメカニズムや乱数機能を選択して無効にすることができます。それらを再び有効にする場合は、例 12-30 を参照してください。この例のハードウェア Sun Crypto Accelerator 1000 ボードは、乱数発生関数を提供します。
始める前に
Crypto Management 権利プロファイルが割り当てられている必要があります。
詳細は、「管理権限を取得する方法」を参照してください。
ハードウェアプロバイダを一覧表示します。
# cryptoadm list ... Kernel hardware providers: dca/0
# cryptoadm list -m provider=dca/0 dca/0: CKM_RSA_PKCS, CKM_RSA_X_509, CKM_DSA, CKM_DES_CBC, CKM_DES3_CBC random is enabled. # cryptoadm disable provider=dca/0 mechanism=CKM_DES_CBC,CKM_DES3_CBC # cryptoadm list -p provider=dca/0 dca/0: all mechanisms are enabled except CKM_DES_CBC,CKM_DES3_CBC. random is enabled.
# cryptoadm list -p provider=dca/0 dca/0: all mechanisms are enabled. random is enabled. # cryptoadm disable provider=dca/0 random # 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 are enabled. random is enabled. # cryptoadm disable provider=dca/0 mechanism=all # cryptoadm list -p provider=dca/0 dca/0: all mechanisms are disabled. random is enabled.
# cryptoadm list -p provider=dca/0 dca/0: all mechanisms are enabled. random is enabled. # cryptoadm disable provider=dca/0 all # cryptoadm list -p provider=dca/0 dca/0: all mechanisms are disabled. random is disabled.
例 12-30 ハードウェアプロバイダのメカニズムと機能を有効にする
次の例では、一部のハードウェアの無効になっているメカニズムを選択して有効にします。
# cryptoadm list -p provider=dca/0 dca/0: all mechanisms are enabled except CKM_DES_ECB,CKM_DES3_ECB
. random is enabled. # cryptoadm enable provider=dca/0 mechanism=CKM_DES3_ECB # cryptoadm list -p provider=dca/0 dca/0: all mechanisms are enabled except CKM_DES_ECB. random is enabled.
次の例では、乱数発生関数のみを有効にします。
# cryptoadm list -p provider=dca/0 dca/0: all mechanisms are enabled, except CKM_MD5,CKM_MD5_HMAC,…. random is disabled. # 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,…. random is disabled. # 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 are 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.
デフォルトでは、暗号化フレームワークは有効になっています。なんらかの理由で kcfd デーモンが失敗した場合は、サービス管理機能 (SMF) を使用すると暗号化サービスを再起動できます。詳細は、smf(5) および svcadm(1M) のマニュアルページを参照してください。暗号化サービスの再起動がゾーンに与える影響については、「暗号化サービスとゾーン」を参照してください。
始める前に
Crypto Management 権利プロファイルが割り当てられている必要があります。
詳細は、「管理権限を取得する方法」を参照してください。
% svcs cryptosvc STATE STIME FMRI offline Dec_09 svc:/system/cryptosvc:default
# svcadm enable svc:/system/cryptosvc
例 12-31 暗号化サービスを更新する
次の例では、暗号化サービスを大域ゾーンで更新します。その結果、すべての非大域ゾーンのカーネルレベルの暗号化ポリシーも更新されます。
# svcadm refresh system/cryptosvc