Solaris のシステム管理 (セキュリティサービス)

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

ファイルを暗号化し、ファイルの MAC を生成するには、鍵が必要です。鍵は、数のランダムプールから生成します。

乱数発生関数がすでにある場合は、それを使用してください。この関数がない場合は、Solaris の /dev/urandom デバイスを入力として dd コマンドを使用します。詳細は、dd(1M) のマニュアルページを参照してください。

  1. アルゴリズムが必要とする鍵の長さを決定します。

    1. 使用可能なアルゴリズムを一覧表示します。


      % encrypt -l
      Algorithm       Keysize:  Min   Max (bits)
      ------------------------------------------
      aes                       128   128
      arcfour                     8   128
      des                        64    64
      3des                      192   192
      
      % mac -l
      Algorithm       Keysize:  Min   Max (bits)
      ------------------------------------------
      des_mac                    64    64
      sha1_hmac                   8   512
      md5_hmac                    8   512
      sha256_hmac                 8   512
      sha384_hmac                 8  1024
      sha512_hmac                 8  1024
    2. dd コマンドに渡す鍵の長さをバイト単位で定義します。

      最小鍵サイズと最大鍵サイズを 8 で割ります。最小鍵サイズと最大鍵サイズが異なるときは、中間の鍵サイズを使用することができます。たとえば、sha1_hmac 関数および md5_hmac 関数の場合、値 8、16、または 64 を dd コマンドに渡すことができます。

  2. 対称鍵を生成します。


    % dd if=/dev/urandom of=keyfile bs=n count=n
    
    if=file

    入力ファイルです。ランダム鍵に対しては、/dev/urandom ファイルを使用します。

    of=keyfile

    生成された鍵を保持する出力ファイルです。

    bs=n

    バイト単位の鍵サイズです。バイト単位の鍵サイズに対しては、ビット単位の鍵の長さを 8 で割ります。

    count=n

    入力ブロックの数です。n の数は 1 とします。

  3. 鍵を保護されたディレクトリに格納します。

    そのユーザー以外は鍵のファイルを読み取ることができないように変更します。


    % chmod 400 keyfile
    

例 14–1 AES アルゴリズムの鍵を作成する

次の例では、AES アルゴリズムの秘密鍵を作成します。この鍵は、あとで復号化するために格納も行います。AES メカニズムでは、 128 ビット鍵を使用します。この鍵は、dd コマンドでは 16 バイトです。


% ls -al ~/keyf
drwx------   2 jdoe  staff        512 May 3 11:32 ./
% dd if=/dev/urandom of=$HOME/keyf/05.07.aes16 bs=16  count=1
% chmod 400 ~/keyf/05.07.aes16


例 14–2 DES アルゴリズムの鍵を作成する

次の例では、DES アルゴリズムの秘密鍵を作成します。この鍵は、あとで復号化するために格納も行います。DES メカニズムでは、 64 ビット鍵を使用します。この鍵は、dd コマンドでは 8 バイトです。


% dd if=/dev/urandom of=$HOME/keyf/05.07.des8 bs=8  count=1
% chmod 400 ~/keyf/05.07.des8


例 14–3 3DES アルゴリズムの鍵を作成する

次の例では、3DES アルゴリズムの秘密鍵を作成します。この鍵は、あとで復号化するために格納も行います。3DES メカニズムでは、 192 ビット鍵を使用します。この鍵は、dd コマンドでは 24 バイトです。


% dd if=/dev/urandom of=$HOME/keyf/05.07.3des.24 bs=24 count=1
% chmod 400 ~/keyf/05.07.3des.24


例 14–4 MD5 アルゴリズムの鍵を作成する

次の例では、MD5 アルゴリズムの秘密鍵を作成します。この鍵は、あとで復号化するために格納も行います。この鍵は、dd コマンドでは 64 バイトです。


% dd if=/dev/urandom of=$HOME/keyf/05.07.mack64 bs=64 count=1
% chmod 400 ~/keyf/05.07.mack64