要約
- RFC 3526は、既存の1536ビット群5を文書化し、2048~8192ビットの群14~18を定義した。AES強度との単純対応を示さず、秘密指数がシステムの弱点にならないことを別途求めている。
- 必要な証拠は、公開パラメータの識別だけではない。ローカル方針、指数のエントロピーと新規生成、相手公開値の検証、認証、完全なsuite、鍵の更新・破棄、実際の保護通信を結ぶ必要がある。
標準群のよさは、多くの参加者が同じ公開対象を参照できることにある。素数も生成元も番号も共有され、実装間の意味を合わせられる。
秘密指数のよさは、公開できない。生成の瞬間だけに存在する品質であり、値そのものは守られ、最後には消えるべきである。
この非対称性を無視すると、見える群番号が見えない処理の代理人になる。2003年5月のStandards Track文書で、現在Proposed Standardとして記録されるRFC 3526は、そこまでの権限を番号に与えていない。
群番号が固定するのは公共材料である
RFCは長く実装で使われた1536ビット群5を標準化し、群14、15、16、17、18に2048、3072、4096、6144、8192ビットを割り当てた。いずれも生成元2と公開された素数を使う。
二つの実装が同じ番号を同じ数学的対象として扱える。その調整は重要で、毎回未知のmodulusを持ち込む必要を減らす。
しかし番号には乱数源、秘密指数、受信値の検査、許可方針、相手の名前、PRF、暗号化方式、配送結果が含まれない。
従って群のreceiptは「この公開パラメータを選んだ」とだけ言える。session全体を評価するには、実行時にしか得られないreceiptを後ろへ連結する。
AESとの換算を決めなかった理由を残す
RFC 3526の導入部は、有限体群と128、192、256ビット対称鍵の強度を比較する複数の推定を示す。特に大きな強度では推定差が著しい。
文書は一つを正解として販売しない。複数の群を定義しながら、どの群を各AES鍵長と組み合わせるべきかは指定しない。当時のハードウェアでは8192ビットを超える群も実用上遅すぎるとした。
したがって群18を「256ビット安全」と自動表示するのは、RFCが避けた断定を後から追加することになる。modulus長と対称鍵長は同じ物差しではない。
攻撃能力、秘密保持期間、解析の進歩、装置負荷、他のprimitiveを含む方針判断が必要であり、その判断には版と所有者が要る。
秘密指数はfield幅では測れない
RFCは指数が他の構成要素に釣り合い、最弱点にならないよう求める。目標強度の2倍を超えるrandomnessを持たせ、128ビット強度なら256ビットを超える乱数を使う例を示す。
512ビットの格納域を確保しても512ビットのエントロピーは証明されない。偏ったseed、反復出力、起動直後の故障を長い表現にしても予測不能性は増えない。
監査のために指数を保存するのも誤りである。secretを公開する証拠は制御を破壊する。保存すべきなのは承認済みgeneratorと版、health test、要求entropy、長さ方針、新規生成の事実、保護されたevent bindingである。
公開群の規模と秘密処理の品質は、別々のauthorityから別々に証明される。
相手の公開値には受信側の仕事が残る
RFC 6989はIKEv2のKE payloadを受け取る側の検査を記述する。RFC 3526群を含むSophie Germain primeのMODP群では、公開値rが厳密に1 < r < p-1の範囲にあることを検証する。
群番号は検査方法を選ぶが、検査済みという事実は運ばない。群14と書かれたpayloadでも、値によっては拒否されなければならない。
small subgroupを持つ別群や秘密値のreuseには、さらに異なる条件がある。fresh生成とreuseは同じ証拠ではなく、適用するtestも同じとは限らない。
受信値のhash、validation profile、実装版、判定branchと結果を残す。「DH OK」だけでは認識、数学的妥当性、方針許可が区別できない。
MUST implementはローカル許可ではない
RFC 7296は、IKEv2実装に受理可能suiteを指定するmanagement facilityを求める。受信Transform IDsをローカル設定と比較し、許可されないproposalを拒否する。実装必須でも設定必須ではない。
この境界により、標準registryは名前を調整しても、各現場のsecurity policyにはならない。
RFC 8247公開時には群14がMUSTへ上がり、群5はSHOULD NOTへ下がった。同時に、非常に大きな群はVPN gatewayや制約機器へ大きな負荷を与えると述べる。
提案順序、選択、方針版、許可理由、拒否候補を保存する。support、enable、select、succeedは四つの異なる状態である。
共有値は相手の身元ではない
認証なしDiffie-Hellmanは、実際に参加した相手と値を共有する。意図した相手であることは別の仕組みが示す。IKEのauthenticationがその役割を担い、RFC 3526は群を提供するだけである。
大きなbit数はcertificate chain、PSK identity、EAP判断、受理名と権限対象の一致を検証しない。
画面上の強い群と成功表示から人や組織の信頼を導けば、authentication receiptのauthorityを群番号へ移してしまう。
method、credential path、validation policy、claimed identity、accepted identity、channel bindingを独立して保持し、同じexchangeへ関連付ける。
suiteの他の要素は消えない
RFC 8247は、algorithmとkeyの強さに加え、非暗号的な迂回を防ぐprotocol engineeringが必要だとする。大きな群は弱いPRF、誤った認証、露出した保存域、保護経路外の通信を修復しない。
計算負荷も現実である。大きなmodular exponentiationを未認証相手に無制限で行えば、resource exhaustion面を広げる可能性がある。必要なのは弱い群への退却ではなく、順序と制限を含むreceiptである。
suiteはdependency graphとして評価する。約束の上限は関連する弱点とcompositionで決まり、最大のbit数では決まらない。
TLS向けRFC 7919は別のFFDHE群と交渉を採用した後続比較であり、RFC 3526を遡及変更せず、IKE実装も証明しない。
IANAの行はruntime telemetryではない
IKEv2 registryには群5と14~18が残り、定義にRFC 3526、recipient testsにRFC 6989が示される。番号の意味と参照先を決める正当なcoordinationである。
その行は、装置がfreshな値を生成したか、範囲を検査したか、方針を守ったか、相手を認証したか、古いsecretを消したか、trafficを届けたかを観測しない。
RFC 9395はIKEv1をdeprecatedとしregistryを閉じた。同文書で追加deprecatedとしたalgorithm一覧にはDH群がなかった。この事実は全群の同等な推奨でも、legacy運用の保証でもない。
registry、文書status、implementation requirement、deployment decisionを一つにすると、記録層がrunning codeのauthorityを奪う。
秘密を残さず実行を残す
protocol version、RFC、Transform ID、primeとgeneratorのhashから始める。ordered proposal、選択suite、downgrade context、policy IDと判定を結ぶ。
秘密生成は値を残さず、generator、health、policy、freshnessを残す。peer valueはdigest、test profile、branchを残す。authenticationはmethod、trust path、accepted principalを残す。
derivationでは安全に保持できるnonce、PRF、algorithm、SA生成を記録し、lifecycleではrekey、reuseの有無、erasureを記録する。
最後にprotected packets、integrity failure、traffic selector、期待したpeer、application transactionを観測する。handshakeはその前提になれても、結果の代筆者にはなれない。
証拠の境界
本Articleは特定の実装、vendor、operator、VPN、gateway、peer、user、deployment、flow、incident、attack、compromiseを示さない。採用率、entropy、validation、reuse、性能、安全性、事業結果も測定しない。
RFC 3526は2003年5月のStandards Track文書で、現在Proposed Standardとして記録される。RFC 6989、RFC 7296、RFC 8247、RFC 9395は各自の時点と範囲を保ち、特定runtimeの遵守証明ではない。
Heng Luのauthorityとrunning-codeに関するnoteは明示した編集上の視点であり、公共調整と局所実行を分ける。IETFの意図や暗号学的事実のsourceではない。
狭い結論で十分である。大きな群は一つの数学要素を強めるが、exchange全体の証明は他のreceiptが完成させる。
出典
- https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2409.xml
- https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2412.xml
- https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2785.xml
- https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3526.xml
- https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4109.xml
- https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4306.xml
- https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5114.xml
- https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5996.xml
- https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6989.xml
- https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7296.xml
- https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7919.xml
- https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8247.xml
- https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9370.xml
- https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9395.xml
- https://datatracker.ietf.org/api/v1/doc/document/rfc3526/?format=json
- https://datatracker.ietf.org/doc/rfc3526/
- https://datatracker.ietf.org/doc/rfc3526/history/
- https://www.iana.org/assignments/ikev2-parameters/ikev2-parameters.xhtml
- https://www.iana.org/assignments/ipsec-registry/ipsec-registry.xhtml
- https://www.rfc-editor.org/errata_search.php?rfc=3526
- https://www.rfc-editor.org/info/rfc3526
- https://www.rfc-editor.org/rfc/rfc3526.html
- https://www.rfc-editor.org/rfc/rfc3526.txt
- https://heng.lu/on-authority-belief-and-the-internets-addressing-system/
- https://heng.lu/running-code-primary-the-patch-needed-to-preserve-the-internet-original-design/
会員向け解説
プロフィールの詳細
適切な会員レベルでログインすると、解説全文と出典メモをご覧いただけます。
Strategic Circle 限定
Strategic Circle
すべての読者に公開されています。参加してログインすると プロフィール解説 を閲覧できます。
Strategic Circle に参加Leadership Alliance 会員限定
Leadership Alliance
対象となる IP 資産の所有者・管理者向けです。ログインすると Leadership Alliance の解説を閲覧できます。
Leadership Alliance に参加
