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.  監査 (参照)

用語集

索引

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

このセクションでは、対称鍵を生成する方法、ファイルの整合性のためにチェックサムを作成する方法、およびファイルが傍受されるのを防ぐ方法について説明します。このセクションのコマンドは、通常のユーザーが実行することができます。開発者は、これらのコマンドを使用するスクリプトを作成することができます。

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

暗号化フレームワークは、ファイルの保護に役立ちます。次のタスクマップでは、使用可能なアルゴリズムを一覧表示する手順、および暗号化によってファイルを保護する手順を示します。

タスク
説明
参照先
対称鍵を生成する。
ユーザーが指定した長さの鍵を生成します。任意で、ファイル、PKCS #11 キーストア、または NSS キーストアに鍵を格納します。
ファイルの整合性を保証するチェックサムを提供します。
受信者のファイルのコピーが送信されたファイルと同一のものであることを検証します。
メッセージ認証コード (MAC) でファイルを保護します。
自分がメッセージの送信者であることを受信者に証明します。
ファイルを暗号化したあと、暗号化されたファイルを復号化します。
ファイルを暗号化することによりファイルの内容を保護します。ファイルを復号化するための暗号化パラメータを指定します。

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

アプリケーションによっては、通信の暗号化および復号化に対称鍵が必要です。この手順では、対称鍵を作成して格納します。

乱数発生関数がある場合、この関数を使用して鍵の乱数を作成できます。この手順は乱数発生関数を使用しません。

  1. (省略可能) キーストアを使用する場合は、作成します。
  2. 対称鍵として使用する乱数を生成します。

    次のいずれかを実行します。

    • 鍵を生成してファイルに格納します。

      鍵をファイルに格納する利点は、このファイルから鍵を抽出して、/etc/inet/secret/ipseckeys ファイルや IPsec など、アプリケーションの鍵ファイルで使用できることです。使用法の文は引数を示しています。

      % pktool genkey keystore=file
      ...genkey keystore=file
                outkey=key-fn
                [ keytype=aes|arcfour|des|3des|generic ]
                [ keylen=key-size (AES, ARCFOUR or GENERIC only)]
                [ print=y|n ]
      outkey=key-fn

      鍵が格納されているファイル名です。

      keytype=specific-symmetric-algorithm

      任意の長さの対称鍵の場合、値は generic になります。特定のアルゴリズムとして、aesarcfourdes、または 3des を指定します。

      keylen=size-in-bits

      鍵のビット長です。8 で割り切れる数にする必要があります。des または 3des には指定しないでください。

      print=n

      鍵を端末ウィンドウに印刷します。デフォルトでは、print の値は n です。

    • 鍵を生成して PKCS #11 キーストアに格納します。

      PKCS #11 キーストアの利点は、ラベルに基づいて鍵を取得できることです。この方法は、ファイルを暗号化および復号化する鍵の場合に便利です。この方法を使用するには、手順 1 を完了する必要があります。使用法の文は引数を示しています。キーストア引数の前後の角括弧は、キーストア引数が指定されていないときは鍵が PKCS #11 キーストア内に格納されることを示しています。

      $ pktool genkey
      ...genkey [ keystore=pkcs11 ]
                label=key-label
                [ keytype=aes|arcfour|des|3des|generic ]
                [ keylen=key-size (AES, ARCFOUR or GENERIC only)]
                [ token=token[:manuf[:serial]]]
                [ sensitive=y|n ]
                [ extractable=y|n ]
                [ print=y|n ]
      label=key-label

      鍵についてユーザーが指定したラベルです。ラベルに基づいてキーストアから鍵を取得できます。

      keytype=specific-symmetric-algorithm

      任意の長さの対称鍵の場合、値は generic になります。特定のアルゴリズムとして、aesarcfourdes、または 3des を指定します。

      keylen=size-in-bits

      鍵のビット長です。8 で割り切れる数にする必要があります。des または 3des には指定しないでください。

      token=token

      トークン名です。デフォルトでは、トークンは Sun Software PKCS#11 softtoken です。

      sensitive=n

      鍵の重要度を指定します。値が y の場合、鍵は print=y 引数を使用して印刷することはできません。デフォルトでは、sensitive の値は n です。

      extractable=y

      鍵がキーストアから抽出できることを指定します。鍵が抽出されないようにするには、n を指定します。

      print=n

      鍵を端末ウィンドウに印刷します。デフォルトでは、print の値は n です。

    • 鍵を生成して NSS キーストアに格納します。

      この方法を使用するには、手順 1 を完了する必要があります。使用法の文は引数を示しています。

      $ pktool genkey keystore=nss
      ...genkey keystore=nss
                      label=key-label
                      [ keytype=aes|arcfour|des|3des|generic ]
                      [ keylen=key-size (AES, ARCFOUR or GENERIC only)]
                      [ token=token[:manuf[:serial]]]
                      [ dir=directory-path ]
                      [ prefix=DBprefix ]
      label=key-label

      鍵についてユーザーが指定したラベルです。ラベルに基づいてキーストアから鍵を取得できます。

      keytype=specific-symmetric-algorithm

      任意の長さの対称鍵の場合、値は generic になります。特定のアルゴリズムとして、aesarcfourdes、または 3des を指定します。

      keylen=size-in-bits

      鍵のビット長です。8 で割り切れる数にする必要があります。des または 3des には指定しないでください。

      token=token

      トークン名です。デフォルトでは、トークンは NSS 内部トークンです。

      dir=directory

      NSS データベースへのディレクトリパスです。デフォルトでは、directory は現在のディレクトリです。

      prefix=directory

      NSS データベースの接頭辞です。デフォルトは接頭辞なしです。

  3. (省略可能) 鍵が存在することを確認します。

    鍵を格納した場所に応じて、次のコマンドのいずれかを使用します。

    • key-fn ファイル内の鍵を確認します。
      % pktool list keystore=file objtype=key [infile=key-fn]
      Found n keys.
      Key #1 - keytype:location (keylen)
    • PKCS #11 または NSS キーストア内の鍵を確認します。
      $ pktool list objtype=key
      Enter PIN for keystore:
      Found n keys.
      Key #1 - keytype:location (keylen)

例 12-1 pktool コマンドを使用して対称鍵を作成する

次の例では、ユーザーは最初に PKCS #11 キーストアを作成し、次にアプリケーション用の大きな対称鍵を生成します。最後に、ユーザーはその鍵がキーストアに格納されていることを確認します。

# pktool setpin
Create new passphrase:Type easily-remembered-hard-to-detect-password
Re-enter new passphrase:Retype password
Passphrase changed.
% pktool genkey label=specialappkey keytype=generic keylen=1024
Enter PIN for Sun Software PKCS#11 softtoken  :Type password

% pktool list objtype=key
Enter PIN for Sun Software PKCS#11 softtoken  :Type password

Found 1 keys.
Key #1 - symmetric:  specialappkey (1024 bits)

例 12-2 pktool コマンドを使用して DES 鍵を作成する

次の例では、DES アルゴリズムの秘密鍵を作成します。鍵は、あとで復号化するためにローカルファイルに格納されます。コマンドは、400 のアクセス権でファイルを保護します。鍵が作成されると、print=y オプションにより、生成された鍵が端末ウィンドウに表示されます。

DES メカニズムでは、 64 ビット鍵を使用します。鍵ファイルを所有するユーザーは、od コマンドを使用して鍵を取得します。

% pktool genkey keystore=file outkey=64bit.file1 keytype=des print=y
        Key Value ="a3237b2c0a8ff9b3"
% od -x 64bit.file1
0000000 a323 7b2c 0a8f f9b3

例 12-3 IPsec セキュリティーアソシエーション用の対称鍵を作成する

次の例では、管理者は IPsec SA 用の鍵データを手動で作成し、それらをファイルに格納します。次に、管理者はそれらの鍵を /etc/inet/secret/ipseckeys ファイルにコピーし、元のファイルを破棄します。

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

ファイルのダイジェストを作成すると、ダイジェストの出力を比較することによって、ファイルが改ざんされていないことを確認することができます。ダイジェストによって元のファイルが変更されることはありません。

  1. 使用可能なダイジェストアルゴリズムを列挙します。
    % digest -l
    md5
    sha1
    sha224
    sha256
    sha384
    sha512
  2. ファイルのダイジェストを計算し、ダイジェストの一覧を保存します。

    digest コマンドでアルゴリズムを指定します。

    % digest -v -a algorithm input-file > digest-listing
    -v

    次の形式で出力を表示します。

    algorithm (input-file) = digest
    -a algorithm

    ファイルのダイジェストの計算に使用するアルゴリズムです。手順 1 の出力のようにアルゴリズムを入力します。

    input-file

    digest コマンドの入力ファイルです。

    digest-listing

    digest コマンドの出力ファイルです。

例 12-4 MD5 メカニズムでダイジェストを計算する

次の例では、digest コマンドにより、 MD5 メカニズムを使用して電子メールの添付ファイルのダイジェストを計算します。

% digest -v -a md5 email.attach >>  $HOME/digest.emails.05.07
% cat  ~/digest.emails.05.07
md5 (email.attach) = 85c0a53d1a5cc71ea34d9ee7b1b28b01

-v オプションを使用しないと、ダイジェストは関連情報なしで保存されます。

% digest -a md5 email.attach >>  $HOME/digest.emails.05.07
% cat  ~/digest.emails.05.07
85c0a53d1a5cc71ea34d9ee7b1b28b01

例 12-5 SHA1 メカニズムでダイジェストを計算する

次の例では、digest コマンドが SHA1 メカニズムを使用してディレクトリ一覧を提供します。結果はファイルに格納されます。

% digest -v -a sha1 docs/* > $HOME/digest.docs.legal.05.07
% more ~/digest.docs.legal.05.07
sha1 (docs/legal1) = 1df50e8ad219e34f0b911e097b7b588e31f9b435
sha1 (docs/legal2) = 68efa5a636291bde8f33e046eb33508c94842c38
sha1 (docs/legal3) = 085d991238d61bd0cfa2946c183be8e32cccf6c9
sha1 (docs/legal4) = f3085eae7e2c8d008816564fdf28027d10e1d983

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

メッセージ認証コード (MAC) は、ファイルのダイジェストを計算し、秘密鍵を使用してさらにダイジェストを保護します。MAC によって元のファイルが変更されることはありません。

  1. 使用可能なメカニズムを一覧表示します。
    % mac -l
    Algorithm       Keysize:  Min   Max
    -----------------------------------
    des_mac                    64    64
    sha1_hmac                   8   512
    md5_hmac                    8   512
    sha224_hmac                 8   512
    sha256_hmac                 8   512
    sha384_hmac                 8  1024
    sha512_hmac                 8  1024
  2. 該当する長さの対称鍵を生成します。

    2 つの選択肢があります。鍵が生成されるパスフレーズを指定することができます。または鍵を指定することができます。

    • パスフレーズを指定する場合、指定したパスフレーズを格納するか覚えておく必要があります。パスフレーズをオンラインで格納する場合、そのパスフレーズファイルは自分だけが読み取ることができるようにします。

    • 鍵を指定する場合、それはメカニズムの現在のサイズである必要があります。pktool コマンドを使用できます。手順およびいくつかの例については、pktool コマンドを使用して対称鍵を生成する方法」を参照してください。

  3. ファイルの MAC を作成します。

    mac コマンドで、鍵を指定して対称鍵アルゴリズムを使用します。

    % mac [-v] -a algorithm [-k keyfile | -K key-label [-T token]] input-file
    -v

    次の形式で出力を表示します。

    algorithm (input-file) = mac
    -a algorithm

    MAC を計算するために使用するアルゴリズムです。mac -l コマンドの出力のようにアルゴリズムを入力します。

    -k keyfile

    アルゴリズムで指定された長さの鍵を含むファイルです。

    -K key-label

    PKCS #11 キーストア内の鍵のラベルです。

    -T token

    トークン名です。デフォルトでは、トークンは Sun Software PKCS#11 softtoken です。-K key-label オプションが使用された場合にのみ使用されます。

    input-file

    MAC の入力ファイルです。

例 12-6 DES_MAC およびパスフレーズで MAC を計算する

次の例では、電子メールの添付ファイルを、DES_MAC メカニズムとパスフレーズから生成される鍵で認証します。MAC の一覧はファイルに保存されます。パスフレーズをファイルに格納する場合、そのファイルはユーザー以外は読み取ることができないようにします。

% mac -v -a des_mac email.attach
Enter passphrase: <Type passphrase>
des_mac (email.attach) = dd27870a
% echo "des_mac (email.attach) = dd27870a" >> ~/desmac.daily.05.07

例 12-7 MD5_HMAC および鍵ファイルで MAC を計算する

次の例では、電子メールの添付ファイルを、MD5_HMAC メカニズムと秘密鍵で認証します。MAC の一覧はファイルに保存されます。

% mac -v -a md5_hmac -k $HOME/keyf/05.07.mack64 email.attach
md5_hmac (email.attach) = 02df6eb6c123ff25d78877eb1d55710c
% echo "md5_hmac (email.attach) = 02df6eb6c123ff25d78877eb1d55710c" \
>> ~/mac.daily.05.07

例 12-8 SHA1_HMAC および鍵ファイルで MAC を計算する

次の例では、ディレクトリの一覧を、SHA1_HMAC メカニズムと秘密鍵で認証します。結果はファイルに格納されます。

% mac -v -a sha1_hmac \
-k $HOME/keyf/05.07.mack64 docs/* > $HOME/mac.docs.legal.05.07
% more ~/mac.docs.legal.05.07
sha1_hmac (docs/legal1) = 9b31536d3b3c0c6b25d653418db8e765e17fe07a
sha1_hmac (docs/legal2) = 865af61a3002f8a457462a428cdb1a88c1b51ff5
sha1_hmac (docs/legal3) = 076c944cb2528536c9aebd3b9fbe367e07b61dc7
sha1_hmac (docs/legal4) = 7aede27602ef6e4454748cbd3821e0152e45beb4

例 12-9 SHA1_HMAC および鍵ラベルで MAC を計算する

次の例では、ディレクトリの一覧を、SHA1_HMAC メカニズムと秘密鍵で認証します。結果は、ユーザーの PKCS #11 キーストアに格納されます。ユーザーは、最初に pktool setpin コマンドを使用してキーストアとそのキーストアのパスワードを作成しました。

% mac -a sha1_hmac -K legaldocs0507 docs/*
Enter pin for Sun Software PKCS#11 softtoken:Type password

キーストアから MAC を取り出すために、ユーザーは冗長オプションを使用し、鍵ラベルと認証されたディレクトリの名前を指定します。

% mac -v -a sha1_hmac -K legaldocs0507  docs/*
Enter pin for Sun Software PKCS#11 softtoken:Type password
sha1_hmac (docs/legal1) = 9b31536d3b3c0c6b25d653418db8e765e17fe07a
sha1_hmac (docs/legal2) = 865af61a3002f8a457462a428cdb1a88c1b51ff5
sha1_hmac (docs/legal3) = 076c944cb2528536c9aebd3b9fbe367e07b61dc7
sha1_hmac (docs/legal4) = 7aede27602ef6e4454748cbd3821e0152e45beb4

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

ファイルを暗号化しても、元のファイルが削除されたり変更されたりすることはありません。出力ファイルが暗号化されます。

encrypt コマンドの一般的なエラーを解決するには、例のあとのセクションを参照してください。

  1. 該当する長さの対称鍵を作成します。

    2 つの選択肢があります。鍵が生成されるパスフレーズを指定することができます。または鍵を指定することができます。

    • パスフレーズを指定する場合、指定したパスフレーズを格納するか覚えておく必要があります。パスフレーズをオンラインで格納する場合、そのパスフレーズファイルは自分だけが読み取ることができるようにします。

    • 鍵を指定する場合、それはメカニズムの現在のサイズである必要があります。pktool コマンドを使用できます。手順およびいくつかの例については、pktool コマンドを使用して対称鍵を生成する方法」を参照してください。

  2. ファイルを暗号化します。

    encrypt コマンドで、鍵を指定して対称鍵アルゴリズムを使用します。

    % encrypt -a algorithm [-v] \
    [-k keyfile | -K key-label [-T token]] [-i input-file] [-o output-file]
    -a algorithm

    ファイルを暗号化するために使用するアルゴリズムです。encrypt -l コマンドの出力のようにアルゴリズムを入力します。

    -k keyfile

    アルゴリズムで指定された長さの鍵を含むファイルです。アルゴリズムごとの鍵の長さが、ビット単位で encrypt -l コマンドの出力に一覧表示されます。

    -K key-label

    PKCS #11 キーストア内の鍵のラベルです。

    -T token

    トークン名です。デフォルトでは、トークンは Sun Software PKCS#11 softtoken です。-K key-label オプションが使用された場合にのみ使用されます。

    -i input-file

    暗号化する入力ファイルです。このファイルは、コマンドによって変更されることはありません。

    -o output-file

    入力ファイルと同じ暗号化形式の出力ファイルです。

例 12-10 ファイルを暗号化するための AES 鍵を作成する

次の例では、ユーザーは暗号化と復号化用に AES 鍵を作成して、既存の PKCS #11 キーストアに格納します。ユーザーは、その鍵が存在し、使用できることを確認することはできますが、その鍵自体を表示することはできません。

% pktool genkey label=MyAESkeynumber1 keytype=aes keylen=256
Enter PIN for Sun Software PKCS#11 softtoken  :Type password

% pktool list objtype=key
Enter PIN for Sun Software PKCS#11 softtoken  :<Type password>
Found 1 key
Key #1 - Sun Software PKCS#11 softtoken: MyAESkeynumber1 (256)

その鍵を使用してファイルを暗号化するには、ユーザーはそのラベルで鍵を取り出します。

% encrypt -a aes -K MyAESkeynumber1 -i encryptthisfile -o encryptedthisfile

encryptedthisfile ファイルを復号化するには、ユーザーはその鍵をラベルで取り出します。

% decrypt -a aes -K MyAESkeynumber1 -i encryptedthisfile -o sameasencryptthisfile

例 12-11 AES およびパスフレーズで暗号化および復号化する

次の例では、ファイルを AES アルゴリズムで暗号化します。鍵はパスフレーズから生成されます。パスフレーズをファイルに格納する場合、そのファイルはユーザー以外は読み取ることができないようにします。

% encrypt -a aes -i ticket.to.ride -o ~/enc/e.ticket.to.ride
Enter passphrase: <Type passphrase>
Re-enter passphrase: Type passphrase again

入力ファイル ticket.to.ride は、元の形式で存在します。

出力ファイルを復号化する場合、ユーザーはファイルを暗号化したときと同じパスフレーズと暗号化メカニズムを使用します。

% decrypt -a aes -i ~/enc/e.ticket.to.ride -o ~/d.ticket.to.ride
Enter passphrase: <Type passphrase>

例 12-12 AES および鍵ファイルで暗号化および復号化する

次の例では、ファイルを AES アルゴリズムで暗号化します。AES メカニズムでは、128 ビット(16 バイト) の鍵が使用されます。

% encrypt -a aes -k ~/keyf/05.07.aes16 \
-i ticket.to.ride -o ~/enc/e.ticket.to.ride 

入力ファイル ticket.to.ride は、元の形式で存在します。

出力ファイルを復号化するとき、ユーザーはファイルを暗号化したときと同じ鍵と暗号化メカニズムを使用します。

% decrypt -a aes -k ~/keyf/05.07.aes16  \
-i ~/enc/e.ticket.to.ride -o ~/d.ticket.to.ride

例 12-13 ARCFOUR および鍵ファイルで暗号化および復号化する

次の例では、ファイルを ARCFOUR アルゴリズムで暗号化します。ARCFOUR アルゴリズムでは、8 ビット (1 バイト)、64 ビット (8 バイト)、または 128 ビット (16 バイト) の鍵が使用されます。

% encrypt -a arcfour -i personal.txt \
-k ~/keyf/05.07.rc4.8 -o ~/enc/e.personal.txt

出力ファイルを復号化するとき、ユーザーはファイルを暗号化したときと同じ鍵と暗号化メカニズムを使用します。

% decrypt -a arcfour -i ~/enc/e.personal.txt \
-k ~/keyf/05.07.rc4.8 -o ~/personal.txt

例 12-14 3DES および鍵ファイルで暗号化および復号化する

次の例では、ファイルを 3DES アルゴリズムで暗号化します。3DES アルゴリズムでは、192 ビット(24 バイト) の鍵が必要です。

% encrypt -a 3des -k ~/keyf/05.07.des24 \
-i ~/personal2.txt -o ~/enc/e.personal2.txt

出力ファイルを復号化するとき、ユーザーはファイルを暗号化したときと同じ鍵と暗号化メカニズムを使用します。

% decrypt -a 3des -k ~/keyf/05.07.des24 \
-i ~/enc/e.personal2.txt -o ~/personal2.txt

注意事項

次のメッセージは、encrypt コマンドに指定した鍵が、使用しているアルゴリズムで許可されないことを示しています。

アルゴリズムの条件を満たしていない鍵を渡した場合は、条件を満たす鍵を指定する必要があります。