メインコンテンツまでスキップ

5. Authorization (認証)

ゾーン転送は, ゾーンの構造と内容に関する機密情報を公開する可能性があり, 攻撃者の偵察活動を支援する可能性があります。このため, AXFRサーバーは通常, ゾーン転送を信頼できるクライアントのみに制限する認証メカニズムを採用しています。

このセクションでは, AXFR実装で使用される一般的な認証技術について説明します。このドキュメントは特定の認証方法を義務付けていないことに注意してください。実装者とオペレーターは, セキュリティ要件に最適なアプローチを自由に選択できます。

一般的な認証技術

  1. Access Control Lists (アクセス制御リスト, ACL): AXFRサーバーは, IPアドレスベースのACLを使用して, ゾーン転送を要求することが許可されているクライアントを制限することができます。サーバーは, 着信TCP接続の送信元IPアドレスを, 許可されたアドレスまたはネットワークの構成済みリストと照合してチェックします。

    • 利点: 実装と構成が簡単です。
    • 制限: IPアドレススプーフィング攻撃に対して脆弱です (ただし, TCPの三方向ハンドシェイクがある程度の保護を提供します)。動的IPアドレスを持つクライアントには適していません。
  2. TSIG (Transaction Signature, トランザクション署名): TSIG [RFC2845] は, 共有秘密鍵を使用してDNSメッセージの暗号化認証を提供します。AXFRサーバーは, ゾーン転送要求にTSIG認証を要求することができます。

    • 利点: 強力な認証とメッセージの整合性を提供します。IPアドレスに依存しません。
    • 制限: 事前共有鍵をクライアントとサーバーの両方で構成する必要があります。大規模な展開では, 鍵管理が困難になる可能性があります。
  3. SIG(0) (Signature, 署名): SIG(0) [RFC2931] は, DNSメッセージの公開鍵ベースの認証を提供します。AXFRサーバーは, AXFRクエリを認証するためにSIG(0) を使用することができます。

    • 利点: 公開鍵暗号を使用し, 事前共有秘密の必要性を回避します。TSIG鍵管理が実用的でないシナリオに適しています。
    • 制限: TSIGよりも実装と構成が複雑です。公開鍵基盤が必要です。
  4. TLS/SSL: このドキュメントでは指定されていませんが, AXFRサーバーは, ゾーン転送に使用されるTCP接続を暗号化および認証するためにTLSまたはSSLを使用することができます。このアプローチはDNSゾーン転送用に標準化されていませんが, プライベートまたは制御された環境で使用される場合があります。

  5. VPNまたはプライベートネットワーク: 一部の展開では, ゾーン転送は公共インターネットにアクセスできないプライベートネットワーク (たとえば, VPN [RFC2764]) を介して実施されます。このアプローチは, アプリケーションレベルの認証ではなく, ネットワークレベルのセキュリティに依存します。

認証ポリシー

AXFRサーバーは, どのクライアントがゾーン転送を要求することが許可されているかを決定する構成可能な認証ポリシーを実装すべきです。ポリシーは, 上記の認証技術の少なくとも1つをサポートすべきです。

AXFRサーバーは, 承認されていないAXFRクエリに対して, RCODE REFUSED (5) を含むDNS応答メッセージで応答しなければなりません。これにより, ポリシー制限によりゾーン転送が拒否されたことがクライアントに通知されます。

デフォルトの動作

このドキュメントは, 認証に関するAXFRサーバーのデフォルトの動作を指定していません。実装者は, 次のような安全なデフォルトの動作を選択すべきです:

  • デフォルトですべてのゾーン転送要求を拒否し, 特定のクライアントを許可するために明示的な構成を要求する, または
  • セカンダリサーバーとして構成された特定のIPアドレスからのゾーン転送のみを許可する。

AXFRサーバーは, デフォルトで任意のクライアントへの無制限のゾーン転送を許可してはなりません。これは重大なセキュリティリスクをもたらすためです。

複数の認証方法

AXFRサーバーは, 複数の認証方法を同時にサポートすることができます。たとえば, サーバーは, ゾーン転送を許可するためにIPアドレスベースのACLマッチングとTSIG認証の両方を要求する場合があります。複数の認証方法を組み合わせる詳細は, 実装に依存します。

認証失敗

AXFRクエリが認証チェックに失敗した場合, AXFRサーバーはRCODE REFUSEDで応答すべきです。サーバーは, 監査目的で失敗した認証試行を記録することができます。

AXFRサーバーは, 認証が失敗した理由の詳細を明らかにしてはなりません (たとえば, 異なる失敗理由に対して異なるエラーコードを返すなど)。これは潜在的な攻撃者に有用な情報を提供する可能性があるためです。