openssl dhparam -check が確認すること、見落とすこと
パラメータ検査の通過はセキュリティレビューではありません。DH ファイルについて何を証明するのか、グループのサイズをどう読み、再生成をどう避けるかを解説します。
dhparam -check を通過すると、VPN の Diffie-Hellman 設定に対する判定のように感じられます。そうではありません。このコマンドはひとつのパラメータファイルを、それが満たすと称する算術と比較するだけで、グループのサイズが方針に合っているか、トンネルがそのファイルを読み込むかについては何も語りません。これをセキュリティレビューとして読むことが、まず正すべき前提です。
パラメータファイルには素数と生成元が入っています。妥当性はそれらの数の性質であり、強度は脅威モデルと相手側についての判断であり、両者は置き換えられません。
妥当性検査が実際に確認すること
手元のファイルに対して検査を実行し、応答を読みます。openssl dhparam -in dh.pem -check -noout はパラメータ検査を行い、符号化された出力を抑止します。パラメータは問題ないように見えるというメッセージは、値が構造的に整合しているという意味であり、短いグループが環境で許容されるという意味ではありません。
-dsaparam なしの生成は安全素数を生み、(p-1)/2 も素数になるため、あれほど時間がかかります。DSA 形式の経路はパラメータを速く構築して DH 形式に変換し、OpenSSL のマニュアルはその利用に新しい鍵の追加要件を結び付けています。どちらの構築もセッションの秘密ではなく、ファイルは公開の設定素材であり、証明書の秘密鍵でも制御チャネルの共有秘密でもありません。
判断する前にサイズと生成元を読む
妥当性の結果は、何が検証されたかを知って初めて意味を持ちます。openssl dhparam -in dh.pem -text -noout でパラメータを出力し、素数の長さと生成元の値を記録します。
その長さは習慣ではなく文書化された方針と比較します。要件が現代的な TLS スタックの承認済み名前付きグループであれば、手作業で生成したファイルはまったく不適切な成果物かもしれません。変更記録に両方の数値を残し、次のレビュー担当が導出し直さずに済むようにします。
検査を再生成に変えない
ここでの失敗の形は、検査に見えて生成器として振る舞うコマンドです。ビット長を加えると、openssl dhparam -check 2048 のように新しいパラメータを要求し、入力ファイルは無視されます。生成元のオプションも同じことをします。検査だけが目的なら、-in と -check を渡し、サイズを表すものは何も付けません。
出力を元のパスに上書きするのも同じ疑いを向けるべきで、マニュアルはファイル出力が原子的でないと警告しています。書き込み中の異常終了は切り詰められたパラメータファイルと起動しないサービスを残します。
グループは流行ではなくプロトコルに合わせる
サイズの方針はツールが代わりに読めない決定です。2048 ビットの有限体グループは一般的な下限で、より大きなグループはハンドシェイクの時間を要するため、自分の基準が示す数値を選び書き留めてください。広く使われるグループは公開されているから弱いのではなく、隠すことには何の利点もありません。
スタックが承認済みの名前付きグループをサポートするなら、独自に見せるための変わったパラメータを生成するのではなく、その文書化された取り決めに従います。名前付きグループは相手が認識でき、レビュー担当が調べられるもので、誰も分類できない特注ファイルより価値があります。
VPN がそのファイルを読み込むかを確認する
どのプロセスも読まない正しいパラメータファイルは何も変えません。OpenVPN ではサーバー側の指定はパス付きの dh で、ECDH や TLS 1.3 の鍵交換に頼る配備では代わりに dh none を設定できます。テンプレートではなく稼働中の設定を確認し、クライアントと相手側が同じ構築を交渉していることを確かめます。
本当に必要な証拠、つまりトンネルが交渉したグループ、ファイル内のパラメータ長、その長さが満たす方針の一行でループを閉じます。通過した検査はその一覧の一項目にすぎません。それを答えのすべてとみなすことが、短いグループが本来捕まえるべき監査を生き延びる理由です。