dnssec-keygen コマンド

目的

ドメイン・ネーム・システム・セキュリティー拡張 (DNSSEC) キー生成ツール。

構文

dnssec-keygen [-a algorithm] [-b keysize] [-n nametype] [-c class] [-e] [-f flag] [-g generator] [-h] [-k] [-p protocol] [-r randomdev] [-s strength] [-t type] [-v level] [name]

説明

dnssec-keygen コマンドは、DNSSEC (セキュア DNS) のキーを生成します。このコマンドは、TSIG (Transaction Signature: トランザクション署名) で使用するためのキーを生成することもできます。

フラグ

項目 説明
-a algorithm 暗号アルゴリズムを選択します。アルゴリズムは、次のいずれかの値になります。
  • RSAMD5
  • DSA
  • DH (Diffie-Hellman)
  • HMAC-MD5
これらの値の大/小文字は区別されます。
注:
  1. DNSSEC については、RSASHA1 がアルゴリズムのインプリメントに必須であり、DSA が推奨されます。TSIG については HMAC-MD5 が必須です。
  2. HMAC-MD5DH-k フラグを自動的に設定します。
-b keysize キー内のビット数を指定します。キー・サイズの選択は、 使用されるアルゴリズムによります。RSAMD5 キーと RSASHA1 キーは、512 ビットから 4096 ビットの範囲内にある必要があります。DH キーは、 128 から 4096 ビットの範囲内にある必要があります。DSA キーは、 512 から 1024 ビットの範囲内にあり、64 の正確な倍数である必要があります。HMAC-MD5 キーは、1 から 512 ビットの範囲内にある必要があります。
-n nametype キーのオーナー・タイプを指定します。nametype の値は、ZONE (DNSSEC ゾーン・キーの場合)、HOST または ENTITY (ホストに関連付けられたキーの場合)、USER (ユーザーに関連付けられたキーの場合)、または OTHER (DNSKEY) のいずれかである必要があります。これらの値の大/小文字は区別されません。
-c class キーを含んでいるドメイン・ネーム・サーバー (DNS) レコードが、指定されたクラスを備えている必要があることを示します。これが指定されない場合、クラス IN が使用されます。
-e RSAMD5 キーまたは RSASHA1 キーを生成する場合は、大きい指数を使用します。
-f flag KEY または DNSKEY レコードの flag フィールドに指定のフラグを設定します。認識されるフラグは、KSK (鍵署名の鍵) DNSKEY のみです。
-g generator DH キーを生成する場合は、この生成プログラムを使用します。許容値は 2 および 5 です。生成プログラムの指定がない場合は、可能であれば RFC 2539 からの既知のプライム記号が使用され、それ以外の場合はデフォルトは 2 となります。
-h dnssec-keygen コマンドに対するオプションおよび引数の簡略な要約を印刷します。
-k KEY レコードを生成します (DNSKEY レコードではありません)。
-p protocol 生成されるキーのプロトコル値を設定します。protocol は、 0 から 255 の範囲内の数です。デフォルトは 3 (DNSSEC) です。
-r randomdev ランダムのソースを指定します。オペレーティング・システムが /dev/random ファイルまたはそれと同等のデバイスを提供しない場合、デフォルトのランダムのソースはキーボード入力になります。randomdev 引数は、デフォルトの代わりに使用されるランダム・データを含むキャラクター・デバイスまたはファイルの名前を指定します。特殊値 keyboard は、キーボード入力を使用する必要があることを示します。
-s strength キーのストレングスの値を指定します。strength 引数は、0 から 15 の範囲内の数値で、現在のところ DNSSEC で定義された目的はありません。
-t type キーの使用を示します。typeは、AUTHCONFNOAUTHCONFNOAUTH、または NOCONF のいずれかでなければなりません。デフォルトは AUTHCONF です。AUTH はデータを認証する能力を示し、CONF はデータを暗号化する能力を示します。キー・タイプが NOAUTHCONF であるアルゴリズム (DH、HMAC-MD5、HMAC-SHA1、HMAC-SHA224、HMAC-SHA256、HMAC-SHA384、HMAC-SHA512) の場合、キーは生成されません。
-v level デバッグのレベルを設定します。

パラメーター

項目 説明
name コマンド・ラインで指定されたキーの名前。DNSSEC キーの場合、この名前はキーが生成されようとしているゾーンの名前に一致する必要があります。

生成されたキー

dnssec-keygen コマンドは、正常に完了すると、標準出力に Knnnn.+aaa+iiiii のフォームの文字列を印刷します。これは、生成されたキーの ID ストリングです。
  • nnnn はキー名です。
  • aaa は アルゴリズムの数値表現です。
  • iiiii はキー ID (つまりフットプリント) です。
dnssec-keygen コマンドは、印刷される文字列に基づいた名前を使用して 2 つのファイルを作成します。Knnnn.+aaa+iiiii.key は公開鍵を含み、Knnnn.+aaa+iiiii.private は秘密鍵を含みます。

.key ファイルは、(直接、または $INCLUDE ステートメントで) ゾーン・ファイルに挿入できる DNSKEY レコードを含みます。.private ファイルは、 アルゴリズム固有のフィールドを含みます。セキュリティー上の理由により、 このファイルには一般の読み取り許可はありません。公開鍵と秘密鍵が同等のものであっても、.key.private の両方のファイルが、HMAC-MD5 などの対称暗号化アルゴリズムに対して生成されます。

ドメイン example.com の 768 ビット DSA キーを生成するには、次のコマンドを入力します。
dnssec-keygen -a DSA -b 768 -n ZONE example.com
このコマンドにより、次のフォームの文字列が印刷されます。
Kexample.com.+003+26160
この例では、dnssec-keygen はファイル Kexample.com.+003+26160.key および Kexample.com.+003+26160.private を作成します。