要約
- RFC 9644はSSHアルゴリズムの能力と優先順位付き方針をYANGで表現するが、個々のセッションの交渉結果までは記録しない。
- 説明責任を果たすには、レジストリとモジュールの版、実装能力、承認済み設定、双方の
SSH_MSG_KEXINIT、方向別の選択、ホスト鍵検証、NEWKEYS、認証、アプリケーション結果を関連付ける必要がある。 - ここで示す記録は運用設計でありRFCの規定ではない。観測できない区間があれば、結論の範囲を狭めなければならない。
承認票が止まる地点
変更担当者は、設定が受理されたことを証明できる。資産管理担当者は、新しいアルゴリズムを装置がサポートしていると示せる。セキュリティ担当者は、許可リストの承認履歴を出せる。しかし、これらを並べても、相手側の提示内容やセッションの選択結果は現れない。
RFC 9644が定義するietf-ssh-common、ietf-ssh-client、ietf-ssh-serverは、SSHクライアントとサーバーの一般的な設定を再利用可能なgroupingとして表現する。また、IANAのSSHレジストリから四つのアルゴリズム列挙モジュールを生成する仕組みを示す。目的は実装間の共通表現であり、セッション監査ログの標準化ではない。
証拠を混同しないためには、登録、能力、許可、選択を分ける必要がある。登録は名前が公共の名前空間にあること、能力は実装が使用可能だと表明すること、許可は組織が順序付きで認めたこと、選択は二者の交換で生じた出来事である。さらに選択だけでは、相手の身元や利用者認証、業務処理の成功は証明されない。
IANAの登録と組織の判断
生成モジュールは元のIANAレジストリの変更を反映し、新しいrevisionを加える。未割当てや予約済みの値は列挙に含めず、状態を機械可読な形に投影する。管理システムと装置が同じ名前を解釈するうえで、この対応関係は重要である。
ただし、登録は推奨ではない。レジストリには歴史や状態の異なる識別子が共存する。RFC 9142が示すように、鍵交換方式の要求水準も時間とともに更新される。したがって、監査記録には、参照したレジストリと生成モジュールのrevisionに加え、その時点で組織が何を許可・禁止したかを別々に残す必要がある。
ここでrevisionやハッシュを省くと、後日の監査が現在の語彙を過去へ投影してしまう。featureやdeviationが公開スキーマを変える場合、それらも同じ証拠単位に含めるべきだ。
「対応」は「使用」ではない
任意のalgorithm-discovery featureが有効なら、supported-algorithmsはconfig falseの運用データとして実装能力を示す。移行計画では、どの装置が候補方式を扱えるかを把握できるため有用である。
しかし、対応している方式が方針で許可されているとは限らない。許可されていても相手が提示しないことがあり、双方が提示しても優先順位によって選ばれないことがある。能力のスナップショットにはソフトウェア版と観測時刻が必要だ。更新やビルド条件で内容が変わるからである。
設定リストが存在しない、または要素がない場合も注意が要る。RFC 9644では許容集合が実装依存となる。空欄を製品横断の安全な既定値として表示してはならない。有効な挙動を確認できなければ、結論は「不明」である。
二つの提示と、方向別の結果
transport-params-groupingには、鍵交換、ホスト鍵、暗号、MACの順序付きリストがある。順序は優先度そのものであり、監査用に並べ替えてはいけない。設定revision、承認者、受理した装置とともに、完全な順序を残す必要がある。
RFC 4253では、両者がSSH_MSG_KEXINITで名前リストを提示する。鍵交換方式とホスト鍵方式は、サーバーも提示し必要条件を満たす候補のうち、クライアントの優先順位に基づいて決まる。暗号とMACは、クライアントからサーバー、サーバーからクライアントの各方向で独立に選ばれる。
従って、「承認済み暗号」という一項目では情報が足りない。双方の提示と方向別の選択を保存しなければならない。共通候補がなければ接続は切断される。設定が正常に反映されたという記録は、相手との互換性を保証しない。
ホスト鍵方式とホストの身元
選択されたホスト鍵アルゴリズムは暗号手順を表す。実際に提示された鍵や、その鍵をクライアントが信頼した根拠とは別である。RFC 8332では、同じRSA公開鍵形式がrsa-sha2-256とrsa-sha2-512の異なる署名手順に使われ得る。鍵形式だけからセッションのアルゴリズムを断定できない。
RFC 9644も、クライアント識別情報とサーバー認証パラメータを分離し、keystoreやtruststoreへの参照を扱う。この構造に沿えば、交渉された方式、提示鍵の指紋、検証規則と結果、クライアント認証、アプリケーション権限を別々に記録できる。
観測点の限界も残す必要がある。ネットワーク上の記録から交渉を確認できても、クライアント内部の信頼判断が見えない場合がある。そのとき証明できるのは方式の選択までであり、ホスト身元の承認ではない。
NEWKEYSは中間地点
SSH_MSG_NEWKEYSは、新しく計算された鍵とアルゴリズムが有効になる境界である。互換なKEXINITが存在しても、そこへ到達した証拠にはならない。一方、NEWKEYSに到達しても、RFC 4252の利用者認証やアプリケーション処理の成功はまだ先にある。
そこで、運用上の最小記録を次の連鎖として設計できる。
- IANAレジストリのスナップショットと生成YANGモジュールのrevisionまたはハッシュ
- 実装、ソフトウェア版、feature、deviation
- 時刻付きの対応アルゴリズム観測
- 承認済みの正確な順序付きリスト、設定revision、承認者
- 双方のKEXINITの保護された取得記録またはハッシュ
- 鍵交換、ホスト鍵、暗号、MACの方向別選択
- 提示されたホスト鍵の指紋、検証根拠、結果
NEWKEYS完了の証拠- 秘密情報を含まない利用者認証方式と結果
- アプリケーション操作、受入れ条件、結果
- 観測不能区間と、最終表現を承認した責任者
これはRFC 9644が定める統一形式ではない。設定、プロトコル、サービスの境界に残る説明責任を接続するための運用案である。
証明できる文だけを書く
Heng Luのminimum initial specificationを適用すると、最初に決めるべきなのは大規模な監視基盤ではなく、最低限証明したい文である。「SSHは安全だ」では広すぎる。対象操作と時間帯を特定し、承認済み方針、観測された選択、検証済みの相手、期待した結果を関連付けられる、という範囲なら検証可能になる。
running-code primacyは、不一致時の優先順位を与える。レジストリとモデルは記号の秩序をつくるが、実際の交換が出来事を決める。差異があれば、セッションについての記述は観測に従い、差異自体を調査対象とする。
設定しかなければ「方針が受理された」とだけ言える。交渉とNEWKEYSがあっても信頼判断がなければ、方式の有効化までは言えても相手の身元は言えない。身元まで確認してもアプリケーション結果がなければ、サービス提供の完了は未証明である。
出典
- Minimum initial specification
- Reality layers and symbolic power
- Running-code primacy
- RFC 9644 Datatracker
- RFC 9644情報ページ
- RFC 9644 HTML版
- RFC 9644テキスト版
- RFC 9644 XML版
- RFC 9644インライン正誤表
- IANA SSHプロトコルパラメータ
- IANA YANGパラメータ
- RFC 4250:SSH割当て番号
- RFC 4252:SSH認証プロトコル
- RFC 4253:SSHトランスポート層
- RFC 6187:SSHでのX.509v3証明書
- RFC 8332:RSA鍵とSHA-2署名
- RFC 9142:SSH鍵交換方式の更新
- RFC 7950:YANG 1.1
- RFC 8341:ネットワーク設定アクセス制御
- RFC 8342:管理データストア構成
会員向け解説
プロフィールの詳細
適切な会員レベルでログインすると、解説全文と出典メモをご覧いただけます。
Strategic Circle 限定
Strategic Circle
すべての読者に公開されています。参加してログインすると プロフィール解説 を閲覧できます。
Strategic Circle に参加Leadership Alliance 会員限定
Leadership Alliance
対象となる IP 資産の所有者・管理者向けです。ログインすると Leadership Alliance の解説を閲覧できます。
Leadership Alliance に参加

