JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris 11.1 の管理: セキュリティーサービス     Oracle Solaris 11.1 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

パート I セキュリティーの概要

1.  セキュリティーサービス (概要)

パート II システム、ファイル、およびデバイスのセキュリティー

2.  マシンセキュリティーの管理 (概要)

3.  システムアクセスの制御 (タスク)

4.  ウイルススキャンサービス (タスク)

5.  デバイスアクセスの制御 (タスク)

6.  BART を使用したファイル整合性の検証 (タスク)

7.  ファイルアクセスの制御 (タスク)

パート III 役割、権利プロファイル、特権

8.  役割と特権の使用 (概要)

9.  役割に基づくアクセス制御の使用 (タスク)

10.  Oracle Solaris のセキュリティー属性 (参照)

パート IV 暗号化サービス

11.  暗号化フレームワーク (概要)

12.  暗号化フレームワーク (タスク)

暗号化フレームワークによるファイルの保護 (タスク)

暗号化フレームワークによるファイルの保護 (タスクマップ)

pktool コマンドを使用して対称鍵を生成する方法

ファイルのダイジェストを計算する方法

ファイルの MAC を計算する方法

ファイルを暗号化および復号化する方法

暗号化フレームワークの管理 (タスク)

暗号化フレームワークの管理 (タスクマップ)

使用可能なプロバイダを一覧表示する方法

ソフトウェアプロバイダを追加する方法

FIPS-140 モードで暗号化フレームワークを使用する方法

ユーザーレベルのメカニズムが使用されないようにする方法

カーネルソフトウェアプロバイダが使用されないようにする方法

ハードウェアプロバイダを一覧表示する方法

ハードウェアプロバイダのメカニズムと機能を無効にする方法

すべての暗号化サービスをリフレッシュまたは再起動する方法

13.  鍵管理フレームワーク

パート V 認証サービスと安全な通信

14.  プラグイン可能認証モジュールの使用

15.  Secure Shell の使用

16.  Secure Shell (参照)

17.  簡易認証セキュリティー層の使用

18.  ネットワークサービスの認証 (タスク)

パート VI Kerberos サービス

19.  Kerberos サービスについて

20.  Kerberos サービスの計画

21.  Kerberos サービスの構成 (タスク)

22.  Kerberos エラーメッセージとトラブルシューティング

23.  Kerberos 主体とポリシーの管理 (タスク)

24.  Kerberos アプリケーションの使用 (タスク)

25.  Kerberos サービス (参照)

パート VII Oracle Solaris での監査

26.  監査 (概要)

27.  監査の計画

28.  監査の管理 (タスク)

29.  監査 (参照)

用語集

索引

暗号化フレームワークの管理 (タスク)

このセクションでは、暗号化フレームワークでソフトウェアプロバイダとハードウェアプロバイダを管理する方法について説明します。必要に応じて、ソフトウェアプロバイダおよびハードウェアプロバイダの使用を解除することができます。たとえば、ソフトウェアプロバイダのアルゴリズムの実装を無効にすることができます。その後、別のソフトウェアプロバイダのアルゴリズムがシステムで使用されるようにすることができます。

暗号化フレームワークの管理 (タスクマップ)

次のタスクマップは、暗号化フレームワークでのソフトウェアプロバイダとハードウェアプロバイダの管理の手順を示しています。

タスク
説明
参照先
暗号化フレームワークのプロバイダを一覧表示します。
暗号化フレームワークで使用可能なアルゴリズム、ライブラリ、およびハードウェアデバイスを一覧表示します。
FIPS-140 モードを有効にします。
暗号化モジュールのための米国政府の標準に従って暗号化フレームワークを実行します。
ソフトウェアプロバイダを追加します。
PKCS #11 ライブラリまたはカーネルモジュールを暗号化フレームワークに追加します。プロバイダは署名されている必要があります。
ユーザーレベルのメカニズムが使用されないようにします.
ソフトウェアメカニズムの使用を解除します。ソフトウェアメカニズムは、再度有効にすることができます。
カーネルモジュールのメカニズムを一時的に無効にします。
一時的にメカニズムの使用を解除します。通常はテストのために使用します。
ライブラリをアンインストールします。
ユーザーレベルソフトウェアプロバイダの使用を解除します。
カーネルプロバイダをアンインストールします。
カーネルソフトウェアプロバイダの使用を解除します。
使用可能なハードウェアプロバイダを一覧表示します。
接続されているハードウェア、そのハードウェアに提供されているメカニズム、および使用可能になっているメカニズムを表示します。
ハードウェアプロバイダのメカニズムを無効にします。
ハードウェアアクセラレータ上の選択したメカニズムが使用されないようにします。
暗号化サービスを再起動またはリフレッシュします。
暗号化サービスを使用できるようにします。

使用可能なプロバイダを一覧表示する方法

暗号化フレームワークは、数種類のコンシューマ用のアルゴリズムを提供します。

  1. 簡潔な形式でプロバイダを一覧表示します。

    注 - プロバイダリストの内容と書式は、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
        n2rng/0
        ncp/0
        n2cp/0
  2. 暗号化フレームワークのプロバイダとそのメカニズムを一覧表示します。

    すべてのメカニズムが次の出力のように一覧表示されます。ただし、一覧表示されたメカニズムのいくつかは使用できない場合があります。管理者によって使用が許可されているメカニズムのみを一覧表示する場合は、例 12-16 を参照してください。

    この出力は、表示用に切り詰められています。

    % cryptoadm list -m
    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

例 12-15 既存の暗号化メカニズムを検索する

次の例では、ユーザーレベルライブラリ 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-16 使用可能な暗号化メカニズムを検索する

ポリシーによって、どのメカニズムが使用可能かが判断されます。ポリシーは、管理者によって設定されます。管理者は、特定のプロバイダのメカニズムを無効にすることができます。-p オプションを指定すると、管理者が設定したポリシーによって許可されているメカニズムのリストが表示されます。

% cryptoadm list -p
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.

例 12-17 暗号化メカニズムで実行される機能を確認する

メカニズムでは、署名や鍵の生成など、特定の暗号化機能を実行します。-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
...

このリストは、これらのメカニズムが次のユーザーレベルプロバイダから使用可能であることを示しています。

エントリの各項目は、メカニズムに関する情報を表しています。これらの ECC メカニズムについて、一覧は次を示しています。

ソフトウェアプロバイダを追加する方法

始める前に

Crypto Management 権利プロファイルが割り当てられている管理者になる必要があります。詳細は、「割り当てられている管理権限を使用する方法」を参照してください。

  1. システムで使用可能なソフトウェアプロバイダを一覧表示します。
    % 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
        n2rng/0
        ncp/0
        n2cp/0
  2. リポジトリからプロバイダを追加します。

    既存のプロバイダソフトウェアには Oracle によって証明書が発行されています。

  3. プロバイダをリフレッシュします。

    ソフトウェアプロバイダを追加した場合や、ハードウェアおよびそのハードウェアに指定されているポリシーを追加した場合は、プロバイダをリフレッシュする必要があります。

    # svcadm refresh svc:/system/cryptosvc
  4. 新しいプロバイダをリストに追加します。

    この場合、新しいカーネルソフトウェアプロバイダがインストールされています。

    # cryptoadm list 
    …
    Kernel software providers:
        des
        aes
        arcfour
        blowfish
        ecc 
        sha1
        sha2
        md4
        md5
        rsa
        swrand
        sha3 <-- added provider
    …

例 12-18 ユーザーレベルソフトウェアプロバイダを追加する

次の例では、署名された 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

FIPS-140 モードで暗号化フレームワークを使用する方法

Oracle Solaris では、デフォルトでは FIPS-140 モードが無効になっています。この手順では、FIPS-140 モードのための新しいブート環境 (BE) を作成したあと FIPS-140 を有効にして、新しい BE にブートします。この方法を使用すると、FIPS-140 準拠テストによって発生する可能性のあるシステムパニックから回復できます。詳細は、cryptoadm(1M) のマニュアルページおよび 「暗号化フレームワークおよび FIPS-140」を参照してください。

始める前に

root 役割になる必要があります。詳細は、「割り当てられている管理権限を使用する方法」を参照してください。

  1. システムが FIPS-140 モードにあるかどうかを判定します。
    % cryptoadm list fips-140
    User-level providers:
    =====================
    /usr/lib/security/$ISA/pkcs11_softtoken: FIPS-140 mode is disabled.
    
    Kernel software providers:
    ==========================
    des: FIPS-140 mode is disabled.
    aes: FIPS-140 mode is disabled.
    ecc: FIPS-140 mode is disabled.
    sha1: FIPS-140 mode is disabled.
    sha2: FIPS-140 mode is disabled.
    rsa: FIPS-140 mode is disabled.
    swrand: FIPS-140 mode is disabled.
    
    Kernel hardware providers:
    =========================:
  2. FIPS-140 バージョンの暗号化フレームワークのための新しい BE を作成します。

    FIPS-140 モードを有効にする前に、まず beadm コマンドを使用して新しい BE を作成し、アクティブにしてから、ブートする必要があります。FIPS-140 が有効になったシステムでは、失敗した場合はパニックを引き起こす可能性のある準拠テストを実行します。そのため、FIPS-140 の境界に関する問題をデバッグしている間、ブートしてシステムを稼働状態にすることのできる使用可能な BE を確保しておくことが重要です。

    1. 現在の BE に基づいて BE を作成します。

      この例では、S11.1-FIPS という名前の BE を作成します。

      # beadm create S11.1-FIPS-140
    2. その BE をアクティブにします。
      # beadm activate S11.1-FIPS-140
    3. システムをリブートします。
    4. 新しい BE で FIPS-140 モードを有効にします。
      # cryptoadm enable fips-140

      注 - このサブコマンドによって、ユーザーレベルの pkcs11_softtoken ライブラリおよびカーネルソフトウェアプロバイダの FIPS-140 未承認アルゴリズムは無効になりません。このフレームワークのコンシューマは、FIPS-140 承認アルゴリズムのみを使用することに責任を負っています。

      FIPS-140 モードの影響の詳細は、cryptoadm(1M) のマニュアルページを参照してください。


  3. FIPS-140 を有効にしないで実行する場合は、FIPS-140 モードを無効にします。

    元の BE にリブートするか、または現在の BE で FIPS-140 を無効にすることができます。

    • 元の BE にブートします。
      # beadm list
      BE               Active Mountpoint Space   Policy Created
      --               ------ ---------- -----   ------ -------
      S11.1            -      -          48.22G   static 2012-10-10 10:10
      S11.1-FIPS-140   NR     /          287.01M  static 2012-11-18 18:18
      # beadm activate S11.1
      # beadm list
      BE               Active Mountpoint Space   Policy Created
      --               ------ ---------- -----   ------ -------
      S11.1            R      -          48.22G   static 2012-10-10 10:10
      S11.1-FIPS-140   N      /          287.01M  static 2012-11-18 18:18
      # reboot
    • 現在の BE で FIPS-140 モードを無効にして、リブートします。
      # cryptoadm disable fips-140

      FIPS-140 モードは、システムがリブートされるまで動作を継続します。

      # reboot

ユーザーレベルのメカニズムが使用されないようにする方法

ライブラリプロバイダの暗号化メカニズムに使用すべきでないものが存在する場合、選択したメカニズムを削除することができます。この手順では、一例として、pkcs11_softtoken ライブラリの DES メカニズムを使用します。

始める前に

Crypto Management 権利プロファイルが割り当てられている管理者になる必要があります。詳細は、「割り当てられている管理権限を使用する方法」を参照してください。

  1. 特定のユーザーレベルソフトウェアプロバイダによって提供されるメカニズムを一覧表示します。
    % 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,
    …
  2. 使用可能なメカニズムを一覧表示します。
    $ cryptoadm list -p
    user-level providers:
    =====================
    …
    /usr/lib/security/$ISA/pkcs11_softtoken.so: all mechanisms are enabled.
    random is enabled.
    …
  3. 使用すべきでないメカニズムを無効にします。
    $ cryptoadm disable provider=/usr/lib/security/\$ISA/pkcs11_softtoken.so \
    > mechanism=CKM_DES_CBC,CKM_DES_CBC_PAD,CKM_DES_ECB
  4. 使用可能なメカニズムを一覧表示します。
    $ 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-19 ユーザーレベルソフトウェアプロバイダのメカニズムを有効にする

次の例では、無効になっている 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-20 ユーザーレベルソフトウェアプロバイダのメカニズムをすべて有効にする

次の例では、ユーザーレベルライブラリのメカニズムをすべて有効にします。

$ 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-21 ユーザーレベルソフトウェアプロバイダの使用を永続的に削除する

次の例では、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 providers:
…

カーネルソフトウェアプロバイダが使用されないようにする方法

暗号化フレームワークが AES などのプロバイダの複数のモードを提供する場合、遅いメカニズムの使用を解除したり、破壊されたメカニズムを削除したりする場合があります。この手順では、一例として、AES アルゴリズムを使用します。

始める前に

Crypto Management 権利プロファイルが割り当てられている管理者になる必要があります。詳細は、「割り当てられている管理権限を使用する方法」を参照してください。

  1. 特定のカーネルソフトウェアプロバイダによって提供されるメカニズムを一覧表示します。
    $ cryptoadm list -m provider=aes
    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
  2. 使用可能なメカニズムを一覧表示します。
    $ cryptoadm list -p provider=aes
    aes: all mechanisms are enabled.
  3. 使用すべきでないメカニズムを無効にします。
    $ cryptoadm disable provider=aes mechanism=CKM_AES_ECB
  4. 使用可能なメカニズムを一覧表示します。
    $ cryptoadm list -p provider=aes
    aes: all mechanisms are enabled, except CKM_AES_ECB.

例 12-22 カーネルソフトウェアプロバイダのメカニズムを有効にする

次の例では、無効になっている 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,CKM_AES_CFB128,CKM_AES_XTS,CKM_AES_XCBC_MAC
$ 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-23 カーネルソフトウェアプロバイダの使用を一時的に削除する

次の例では、AES プロバイダの使用を一時的に削除します。unload サブコマンドは、プロバイダのアンインストール中にプロバイダが自動的に読み込まれないようにするために使用します。たとえば、unload サブコマンドは、プロバイダに影響を与えるパッチをインストールするときに使用します。

$ cryptoadm unload provider=aes
$ cryptoadm list 
…
Kernel software providers:
    des
    aes (inactive)
    arcfour
    blowfish
    ecc
    sha1
    sha2
    md4
    md5
    rsa
    swrand
    n2rng/0
    ncp/0
    n2cp/0

AES プロバイダは、暗号化フレームワークがリフレッシュされるまでは使用できません。

$ svcadm refresh system/cryptosvc
$ cryptoadm list 
…
Kernel software providers:
    des
    aes
    arcfour
    blowfish
    ecc
    sha1
    sha2
    md4
    md5
    rsa
    swrand
    n2rng/0
    ncp/0
    n2cp/0

カーネルコンシューマがカーネルソフトウェアプロバイダを使用している場合は、ソフトウェアは読み込み解除されません。エラーメッセージが表示され、プロバイダを使用し続けることができます。

例 12-24 ソフトウェアプロバイダの使用を永続的に解除する

次の例では、AES プロバイダの使用を解除します。いったん削除すると、AES プロバイダはカーネルソフトウェアプロバイダのポリシー一覧に表示されません。

$ cryptoadm uninstall provider=aes
$ cryptoadm list 
…
Kernel software providers:
    des
    arcfour
    blowfish
    ecc
    sha1
    sha2
    md4
    md5
    rsa
    swrand
    n2rng/0
    ncp/0
    n2cp/0

カーネルコンシューマがカーネルソフトウェアプロバイダを使用している場合は、エラーメッセージが表示され、プロバイダを使用し続けることができます。

例 12-25 削除されたカーネルソフトウェアプロバイダを再インストールする

次の例では、AES カーネルソフトウェアプロバイダを再インストールします。

$ cryptoadm install provider=aes \
mechanism=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
$ cryptoadm list 
…
Kernel software providers:
    des
    aes
    arcfour
    blowfish
    ecc
    sha1
    sha2
    md4
    md5
    rsa
    swrand
    n2rng/0
    ncp/0
    n2cp/0

ハードウェアプロバイダを一覧表示する方法

ハードウェアプロバイダは、自動的に配置され読み込まれます。詳細は、driver.conf(4) のマニュアルページを参照してください。

始める前に

暗号化フレームワーク内での使用が想定されているハードウェアがある場合、そのハードウェアはカーネルの SPI に登録されます。暗号化フレームワークでは、ハードウェアドライバが署名されていることが確認されます。特に、ドライバのオブジェクトファイルが Sun が発行する証明書付きで署名されていることが確認されます。

たとえば、Sun Crypto Accelerator 6000 ボード (mca)、UltraSPARC T1 および T2 プロセッサの暗号化アクセラレータ用 ncp ドライバ (ncp)、UltraSPARC T2 プロセッサ用 n2cp ドライバ (n2cp) は、ハードウェアのメカニズムをフレームワークに接続します。

プロバイダの署名については、「サードパーティーのソフトウェアのためのバイナリ署名」を参照してください。

  1. システムで使用可能なハードウェアプロバイダを一覧表示します。
    % cryptoadm list
    … 
    kernel hardware providers:
       ncp/0
  2. チップまたはボードで提供されるメカニズムを一覧表示します。
    % cryptoadm list -m provider=ncp/0
    ncp/0:
    CKM_DSA
    CKM_RSA_X_509
    ...
    CKM_ECDH1_DERIVE
    CKM_ECDSA
  3. チップまたはボードで使用可能なメカニズムを一覧表示します。
    % cryptoadm list -p provider=ncp/0
    ncp/0: all mechanisms are enabled.

ハードウェアプロバイダのメカニズムと機能を無効にする方法

ハードウェアプロバイダのメカニズムや乱数機能を選択して無効にすることができます。それらを再び有効にする場合は、例 12-26 を参照してください。この例のハードウェア Sun Crypto Accelerator 1000 ボードは、乱数発生関数を提供します。

始める前に

Crypto Management 権利プロファイルが割り当てられている管理者になる必要があります。詳細は、「割り当てられている管理権限を使用する方法」を参照してください。

例 12-26 ハードウェアプロバイダのメカニズムと機能を有効にする

次の例では、一部のハードウェアの無効になっているメカニズムを選択して有効にします。

# 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 権利プロファイルが割り当てられている管理者になる必要があります。詳細は、「割り当てられている管理権限を使用する方法」を参照してください。

  1. 暗号化サービスのステータスを確認します。
    % svcs cryptosvc
     STATE          STIME    FMRI
    offline         Dec_09   svc:/system/cryptosvc:default
  2. 暗号化サービスを有効にします。
    # svcadm enable svc:/system/cryptosvc

例 12-27 暗号化サービスをリフレッシュする

次の例では、暗号化サービスを大域ゾーンでリフレッシュします。その結果、すべての非大域ゾーンのカーネルレベルの暗号化ポリシーもリフレッシュされます。

# svcadm refresh system/cryptosvc