NTP_GENKEYS(8)

名称
ntp-genkeys - 公開鍵、秘密鍵を生成する

書式
ntp-genkeys [-dfhlnt] [-c conffile] [-g target] [-k keyfile]

解説
このプログラムは NTPv3/NTPv4 の対称鍵暗号化認証スキーム、または NTPv4 の公開鍵 (Autokey) 暗号化認証スキームで用いられるランダム鍵を 生成します。

以下のオプションが利用可能です。

-c conffile
    ntp.conf(8) ファイルの位置を指定します。

-d  デバッグメッセージ出力を有効にします (複数回指定可能です)。

-f  生成した鍵を強制的にインストールします。

-g -target
    文字列 target の文字で指定されたファイルを生成します。

    d   D-H パラメータファイルを生成します。

    m   MD5 鍵ファイルを生成します。

    r   RSA 鍵を生成します。

-h  鍵をその場所 (現在のディレクトリ) に作成します。 これは、オプション -l を暗黙的に含みます。

-k keyfile
    鍵ファイルの場所を指定します。

-l  シンボリックリンクを作りません。

-n  実際には何もしません。 何をしようとするかだけを出力します。

-t  シンボリックリンクの先の (古い) ファイルを抹消します。

デフォルトでは、このプログラムは、16 個のランダム対称鍵を含むファイル ntp.keys(5) を生成します。 加えて、ソフトウエアビルドの際に rsaref20 パッケージが組み込まれている 場合、このプログラムは、Autokey スキームで使用する暗号値を生成します。 これらの値は次の 3 個のファイルになります。 ntpkey は、RSA 秘密鍵を含みます。 ntpkey_host は、RSA 公開鍵を含みます。 ここで host は、鍵を生成したマシンの DNS 名です。 ntpkey_dh は、Diffie-Hellman 鍵交換アルゴリズムで用いるパラメータを含みます。 すべてのファイルは印字可能な ASCII 形式です。 NTP 秒で示した タイムスタンプがそれぞれのファイルに追加されます。 このアルゴリズムはシステムクロックを乱数の種としますので、 このプログラムは、実行するごとに異なるファイルとファイル名を 生成します。

ファイル ntp.keys(5) は 16 個の MD5 鍵を含みます。 それぞれの鍵は、ASCII の印字可能部分集合 95 文字からランダムに選んだ 16 文字からなります。 デーモンは、 設定ファイルコマンド keys によって指定された位置からこのファイルを読み込みます。 また、このファイルは root だけが見ることができるようにします。 プログラム ntpq(8) や ntpdc(8) とともに使用するためには、簡単に思い出せるパスワードからなる 鍵を手で追加しなければなりません。 このファイルは同じセキュリティ区画を共有するサーバとクライアントに配布する 際には、安全な手段で配布しなければなりません。 一方、MD5 鍵と DES 鍵に 対する鍵の識別子は、1-65534 の (両端を含む) 範囲に含まれる必要が ありますが、プログラム ntp-genkeys は、1 から 16 の識別子のみを使用します。 各アソシエーションに対する 鍵の識別子は、設定ファイルコマンド server または peer の鍵引数として指定されます。

ファイル ntpkey は RSA 秘密鍵を含みます。 デーモンは、設定ファイルコマンド crypto の引数 privatekey で指定される位置からこのファイルを読み込みます。 このファイルは、 root のみが見ることができるようにします。 このファイルは、これを生成したマシンに対してだけ有効であり、 他のデーモンやアプリケーションプログラムと共有されることは 決してありません。

ファイル ntpkey_host は RSA 公開鍵を含みます。 ここで、 host は、このファイルを生成したホストの DNS 名です。 デーモンは、 設定ファイルコマンド server または、 peer の引数 publickey で指定した位置からこのファイルを読み込みます。 このファイルに含まれるデータは公開値であるため、このファイルは 安全な手段によらずとも配布、格納することができます。

ファイル ntp_dh は、2 個の Diffie-Hellman パラメータ、 原始根 (generator) と素数係数 (prime modulus) を含みます。 デーモンは、設定ファイルコマンド crypto の引数 dhparams により指定された位置からこのファイルを読み込みます。 このファイルは、同じ鍵交換区画を共有する他のサーバ、クライアントに対し 安全な手段によらずとも配布することができます。

ファイル形式の最初の部分は 2 行からなります。 最初の行は、 ファイルを生成したシステムの DNS 名を含み、2 行目は日付スタンプを 含みます。 ‘#’ から始まる行はコメントとみなされ、デーモンはこの行を無視します。 ファイル ntp.keys(5) の中で、次の 16 行は MD5 鍵を順序通り含みます。 必要があれば、通常のテキストエディタを用いてこのファイルをさらに 変更することができます。 次のセクションでこの形式を説明します。 ファイル ntpkey と、 ntpkey_host では、 次の行は係数 (modulus) の長さ (ビット単位) と、鍵を PEM でコード化した文字列を含みます。 ファイル ntpkey_dh では、次の行は素数 (prime) の長さ (バイト単位) と、素数を PEM で コード化した文字列を含みます。 その次、すなわち最後行は、原始根 (generator) の長さ (バイト単位) と、原始根を PEM でコード化した文字列を含みます。

注意: 必要があれば、戻り値の説明は、rsaref20 パッケージのファイル ./source/rsaref.h を参照して下さい。

関連項目
ntp.keys(5), ntpdc(8), ntpq(8)

バグ
RSA 公開鍵/秘密鍵の組と Diffie-Hellman パラメータを生成する際に かなり時間がかかることがあります。 最新のワークステーションで数秒、 古いマシンなら数分の範囲です。