要約

  • Opt-Out 付き NSEC3 区間は、実在する未保護委任を覆いながら、その存在も不存在も主張しない。したがって、署名ノードの一覧は親ゾーンの完全な委任一覧ではない。
  • 運用者は、プロビジョニング台帳、署名世代、全権威サーバーの NS/DS 応答、検証器の判断を別々に保管する。区間を「空」と読む処理は署名の権限を越える。

監査システムが NSEC3 鎖を一周し、ある子名に対応するノードを見つけられなかったとする。すべての RRSIG は正しい。システムは委任を削除済みと報告する。しかし親へ直接問い合わせると、DS を伴わない NS referral が返る。子は未保護のまま委任されている。

この例で壊れたのは暗号ではない。完全性を約束していない資料を、完全台帳として読んだ判断である。

RFC 5155 では、未保護委任の owner name hash を NSEC3 鎖から省略できる。該当ハッシュを覆う record に Opt-Out flag があれば、その区間は委任が存在するとも存在しないとも述べない。隣接ノードを再生成せずに適格な委任を追加・削除できるのは、この非主張があるためだ。

元帳を投影物から復元しない

親の元帳には、子名、NS、必要な glue、DS、変更時刻、承認経路がある。署名器はそれを入力に、hash algorithm、flags、iterations、salt、next hash、type bitmap を持つ NSEC3 を生成する。

一致するノードは元の名前にある RR type を示し、覆うノードは限定された否定証明に参加する。ハッシュ順の鎖は、元の名前をすべて取り戻せる転送形式ではない。

NS があり DS がない子だけが未保護委任である。NS と DS がある安全な委任や、親側の権威データを便宜的に Opt-Out へ隠すことはできない。省略ごとに、元名、NS/DS 状態、計算ハッシュ、覆う区間、flag、署名世代、各権威応答を結び付ける必要がある。

この対応表がなければ、正当な省略、署名器の欠落、セカンダリの世代遅れが同じ「ノードなし」に見えてしまう。

不明を不存在へ変換しない

Opt-Out 区間に対する正しい台帳判定は「存在しない」ではなく「この鎖からは決められない」である。完全性が必要なら、許可されたゾーン転送、登録データ、または親への NS と DS の直接照会を使う。

RFC 8198 の aggressive negative caching にも同じ制約がある。検証済み NSEC/NSEC3 の範囲から新しい否定応答を合成できる場合があるが、覆う NSEC3 に Opt-Out があれば名称の不存在を証明していないため、その合成はできない。

flag を捨てて「DNSSEC 成功」だけを保存すると、禁止条件が消える。監査装置も resolver と同じく、署名されていない否定を作ってはならない。

実在する最近接祖先と証明できる祖先

wildcard 処理は、問い合わせ名の最長の既存祖先である closest encloser を使う。Opt-Out により委任や、それだけから生じる empty non-terminal が鎖に現れない場合、証明は closest provable encloser までしか到達できない。

応答保全では、問い合わせ、NSEC3、RRSIG、next-closer、matching/covering 関係、hash 空間の折り返し、bitmap、検証時刻を残す。緑色の結果だけでは、どの祖先が証明され、どこから先が非主張だったか分からない。

現行指針は計算量を増やさない

RFC 9276 は、NSEC3 の機能が不要なら NSEC を優先する。NSEC3 を使う場合は algorithm 1、追加 iterations 0、empty salt が推奨値である。

反復回数を増やすと権威側と検証側の負荷が増え、相互運用性も悪化する。salt は推測可能な名前を秘密にしない。検証器は対応上限を超える iterations を insecure 扱いまたは SERVFAIL とし、対象 record を検証した後なら EDE 27 を返せる。それは資源ポリシーの結果であり、委任不存在の証拠ではない。

小規模ゾーンで Opt-Out は推奨されない。非常に大きく、委任中心で、大半が未保護というゾーンに限り効果を説明しやすい。規模、DS 比率、変更頻度、署名コスト、照合能力を定期的に見直す。

パラメータ変更は鎖全体の交代

salt や iterations の変更には新しい完全な NSEC3 鎖と再署名が必要である。検証器が確認するのは NSEC3 自体のパラメータであり、NSEC3PARAM 単独では否定証明にならない。

展開前に、元帳、旧新世代、serial、RRSIG 有効期間、全セカンダリの転送状態を比較する。既知の不存在名、Opt-Out された未保護委任、安全な委任、wildcard 境界を全権威アドレスへ照会する。

予定外に二世代が残れば、到達可能性を成功条件にしない。キャッシュ内の旧証明と TTL も含め、最後の整合世代へ戻るか展開を完了するかを決める。

情報源