要約
- RFC 9103は、平文のゾーン転送を受動監視して内容を一括取得する経路をTLSで閉じる。一方、通信相手の関係、暗号化トラフィックの大きさや時刻、DNSSEC列挙、通常の権威応答までは隠さない。
- 信頼できるXoTの記録には、primaryの認証、ゾーン単位の要求認可、全メッセージのTLS利用、複製の受理、transfer group全体の一貫性、受信側の保管方針が別々に必要である。
攻撃者はAXFRを要求する必要すらなかった
primaryがIP ACLで接続元を限定し、TSIGを要求していれば、無関係なクライアントは転送を受けられない。しかし、許可されたsecondaryへの応答が平文TCPを通るなら、経路上の観測者はACLを突破する必要がない。TSIGの共有鍵も要らない。正規の受信者に届くレコードを横から読むだけでよい。
RFC 9103はこの収集経路を対象にする。2021年8月にIETF Standards Trackとして発行され、完全転送のAXFRと増分転送のIXFRをTLS上で運ぶXFR over TLS(XoT)を定めた。転送ストリームは、個別照会よりも密度の高い名前、アドレス、サービス関係を一度に含み得る。そこから平文の観測者を外す意味は大きい。
ただし、脅威モデルは範囲を明示している。保護対象は転送中の現在のゾーン内容と大きさであり、ゾーンの存在、転送という行為、関係するネームサーバーの識別子を秘匿するものではない。暗号化後も通信量とタイミングから活動を推測できる場合がある。
したがって、「この転送のペイロードは受動監視から守られた」は検証可能な主張である。「ゾーンは非公開になった」は別の主張だ。
鍵は同じ安全性を開けない
TSIGは共有秘密でDNSメッセージの出所と完全性を検証する。RFC 5936は転送クライアントの認可にもTSIGを用いる。だがRFC 8945のメッセージ認証は暗号化ではない。TSIGが正しくても、平文のレコードは経路上から読める。
TLSはチャネルを扱う。RFC 9103では、secondaryがStrict Privacy profileでprimaryを認証し、primaryはmTLS、またはIP ACLと有効なTSIG/SIG(0)の組合せでクライアントを認可する。Strict TLSはサーバー認証とチャネル機密性を、mTLSはさらにクライアント認証を、TSIGはデータ出所認証を与える。それぞれ異なる証拠である。
TLS接続が成立しても、すべてのゾーンを取得する権限にはならない。複数ゾーンの要求が同じ接続を再利用できるため、一般的な実装ではXFR要求を受けてから要求単位でACLを評価する。ポートが応答したこと、TLSが成立したこと、特定ゾーンの転送が許可されたことを一つの状態にまとめてはならない。
日常経路より例外経路が主張を壊す
RFC 9103は、対象ゾーンの転送に関わるすべてのprimariesとsecondariesをtransfer groupと呼ぶ。全体の機密性を主張するには、グループ内のAXFRとIXFRのすべてがXoTだけを使う必要がある。一つの旧式secondaryや移行用の平文経路が残れば、そこが弱点になる。
よくある落とし穴はfallbackである。IXFRが提供できず、同じ認証済みTLS接続上でAXFRに切り替わるなら、量は増えてもチャネルの性質は保てる。ところがTLSが使えないと平文へ戻る設計なら、機密性の主張自体が消える。TLS proxyで暗号化が終わり、backendへ平文で送る場合も同じだ。
Opportunistic TLSは認証に失敗しても接続を続けたり、TLSが利用できなければ平文へ戻ったりできる。RFC 9103がXoTの保護にこれを不十分とする理由はここにある。
検証できる項目には差がある。TSIGなし、未許可アドレス、平文で転送を要求し、拒否を確認するのは比較的容易だ。全secondaryが未署名データを拒否するか、Strict TLSを使うか、第三者secondaryが先の複製にも同じ方針を適用するかは外部から見えにくい。RFCはその調整・強制を対象外とする。
受信成功は保管責任の開始点
primaryの認証、secondaryの認可、TLS 1.3、IXFRの完了、新serialの受理がすべて成功したとする。経路上の受動観測者は内容を失った。しかしゾーンの複製は、今度は別の管理領域に入った。
複製はゾーンファイル、journal、データベース、snapshot、backup、debug logに残り得る。運用者やsupport systemがアクセスし、別のsecondaryへ再転送することもある。権威サーバーは公開すべきレコードに通常照会で答える。これらはTLSの失敗ではなく、正しく複製された後の保管と公開の問題である。
そこで受信側の証明には、保存場所、アクセス主体、backupとlogの保持、再転送先、新しいpeerを加える手続、関係終了時の処理が必要になる。証明書やTSIG鍵を無効にすれば次の転送は止められるが、すでに渡ったファイルやbackupは回収できない。
ZONEMDも役割が違う。RFC 8976のdigestは独立したゾーンオブジェクトの検証に使える。RFC 9103がいう通りXoTとは補完的かつ直交的である。digestは転送を隠さず、TLSはゾーン内容の正確さ、最新性、人間の承認を保証しない。
公開DNSは公開のまま動く
転送盗聴とゾーン列挙は別の経路である。NSECを使う署名ゾーンは歩査できる場合がある。NSEC3はowner nameをhash化して列挙を難しくするが、XoTの機能ではない。通常の権威照会も、公開用レコードを返し続ける。
だからこそ結論は二方向に正確でなければならない。公開DNSだから転送を平文にしてよいわけではない。同時に、転送を暗号化したから公開レコードまで秘密になったわけでもない。閉じたのは、高密度の複製ストリームをそのまま読む一つの経路である。
八つの欄で作る転送機密性の受領票
範囲にはゾーン、policy version、transfer group、責任者を記す。primary identityには認証名またはSPKI pin、certificate、TLS version、実際のendpointを置く。secondary admissionにはmTLS、またはIP ACLとTSIG/SIG(0)、ゾーン単位の判断、拒否試験を置く。
transportにはAXoT/IXoT、平文禁止、fallback、proxy境界を記す。completionには要求serial、IXFRからAXFRへの変更、受理serial、errorを記す。replica custodyにはstorage、access、backup、log、onward peerを記す。
residual exposureには通常照会、NSEC/NSEC3、endpoint関係、size・timing signalを記す。revalidationにはcertificate、key、ACL、proxy、secondary、topology、signing policy、operatorの変更を置く。
TLS handshakeが証明するのはチャネルである。TSIGが証明するのはメッセージである。完了した転送が証明するのは配達である。どれも単独では、すべての複製の機密性を証明しない。
出典
- RFC EditorのRFC 9103記録
- RFC 9103 — DNS Zone Transfer over TLS
- RFC 1995 — Incremental Zone Transfer in DNS
- RFC 5936 — DNS Zone Transfer Protocol
- RFC 8310 — Usage Profiles for DNS over TLS and DNS over DTLS
- RFC 8945 — Secret Key Transaction Authentication for DNS
- RFC 5155 — DNSSEC Hashed Authenticated Denial of Existence
- RFC 8976 — Message Digest for DNS Zones
- Lu Heng — Running-Code Primacy
- Lu Heng — Minimum Initial Specification, Localized Future Decision, and Voluntary Adoption
会員向け解説
トレンドの深掘り
適切な会員レベルでログインすると、解説全文と出典メモをご覧いただけます。
ストラテジックサークル
あなたの言語で毎日届く、私たちが確認した変化に基づくブリーフィング。
USD 20/月で参加いつでも解約できます。
公開記事は無料のままです。会員向けリサーチ、毎日のブリーフィング、フォーラムには会員資格が必要です。






