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

4. Usage Profiles (使用プロファイル)

このプロトコルは、いくつかの異なるユースケースに対応する柔軟性を提供します。本文書は、2つの使用プロファイルを定義します: (1) 日和見的プライバシーと (2) 帯域外キー固定認証。これらは、クライアントがTLSをサポートするDNSサーバーと信頼関係を持っている場合に、より強力なプライバシー保証を得るために使用できます。追加の認証方法は、今後の文書 [TLS-DTLS-PROFILES] で定義される予定です。

4.1 Opportunistic Privacy Profile (日和見的プライバシープロファイル)

日和見的プライバシーは、SMTPの日和見的セキュリティ [RFC7435] に類似しており、プライバシーを必要としませんが、可能な場合にプライバシーを望みます。

日和見的プライバシーでは、クライアントは信頼できないソースからTLS対応の再帰DNSリゾルバを知ることがあります。考えられる1つのフローの例は、クライアントがDHCP DNSサーバーオプション [RFC3646] を使用してTLS対応の再帰のIPアドレスを発見し、その後ポート853でDNS over TLSを試行する場合です。このように発見されたDNSサーバーでは、クライアントはリゾルバを検証する場合もしない場合もあります。これらの選択は、可用性とパフォーマンスを最大化しますが、プライバシーを除去する経路上の攻撃に対してクライアントを脆弱にします。

日和見的プライバシーは、現在のどのクライアントでも使用できますが、経路上にアクティブな攻撃者がいない場合にのみプライバシーを提供します。

4.2 Out-of-Band Key-Pinned Privacy Profile (帯域外キー固定プライバシープロファイル)

帯域外キー固定プライバシープロファイルは、DNSクライアントとサーバー間に既に確立された信頼関係が存在する環境 (例えば、企業ネットワークにおけるスタブから再帰へ、積極的に維持される契約上のサービス関係、または特定のDNSサーバーを使用するように設定されたモバイルアプリケーション) で使用できます。このプロファイルの目的において、「帯域外 (out-of-band)」という用語は、本文書の範囲外の設定メカニズムを意味します。

このプライバシープロファイルは、プライバシーを以下のいずれかに制約します:

  1. クライアントは、そのサーバー用に帯域外で設定されたSubject Public Key Info (SPKI) ピンセットにサーバーのアイデンティティがマッチすることを要求します。

  2. クライアントは、そのサーバーの信頼アンカーとして帯域外で設定された認証局を使用して、サーバーのアイデンティティが認証されることを要求します。

帯域外キー固定プライバシープロファイルを使用するDNSクライアントは、セクション3に示された手順に従ってTLS接続を確立しますが、帯域外で設定された固定キーまたは信頼アンカーを使用してサーバーも認証しなければなりません (MUST)。帯域外キー固定プライバシークライアントは、単一のキー識別子で設定されるべきです (SHOULD)。SPKIピンセットの場合、実装は [RFC7250] による生の公開鍵認証をサポートしなければなりません (MUST)。

認証試行が失敗した場合、帯域外キー固定プライバシークライアントは、そのTLS接続を介してDNSクエリを送信することを拒否しなければなりません (MUST)。平文接続を介した通信にフォールバックしてはなりません (MUST NOT)。クライアントが帯域外キー固定プライバシーサーバーと同時に、他のサーバー (おそらく平文DNSを介した) も設定している場合、クライアントはそれらの他のサーバーにフォールバックしてもよい (MAY) です。

帯域外SPKIピンセットのみを使用して認証する場合、クライアントは [RFC7469] に記述されているように公開鍵ピン留めを使用しなければなりません (MUST)。そのような場合、TLSサーバーの証明書または公開鍵は、1つ以上の「既知の良好な (known-good)」SPKIフィンガープリントと照合されます。固定されたSPKIフィンガープリントのみを使用してサーバーのアイデンティティを制約する場合、クライアントの信頼アンカーはSPKIフィンガープリント自体です。サーバー自体は、その証明書チェーンに信頼アンカーを送信しません。

クライアントは、ハンドシェイクを介して固定されたサーバーキーの秘密鍵の所有証明を実行できます。SPKIピンセットプライバシープロファイルのセキュリティは、認証に使用される事前設定されたSPKI値の秘密性と完全性に基づいています。付録Aは、SPKIフィンガープリントをどのように生成できるかの例を提供しています。

本文書が公開される時点で、クライアントとサーバーが帯域外キー固定プライバシープロファイルを設定する実際の方法に関する作業が進行中です。帯域外キー固定プライバシーの一般的な使用例では、クライアント (例えば、スタブリゾルバ) はサービスプロバイダーからの起動時に初期設定を受け取ることが期待されます。この起動設定を獲得するまで、クライアントは発見された任意のDNSサーバーを使用する一般的な日和見的プライバシー設定で実行され、ユーザーに可能な限りDNSがプライベートでないことを警告しなければなりません (MUST)。認証の意図で、指定されたDNSプロバイダーへの移行後に。

TLS接続とハンドシェイクに成功すると、クライアントは、検証されたサーバーの証明書チェーン (またはサーバーがそれを提供する場合は生の公開鍵) で見つかった公開鍵のSPKIフィンガープリントを計算します。計算されたフィンガープリントが設定されたピンの1つと完全に一致する場合、クライアントは通常どおり接続を続行します。そうでない場合、クライアントはSPKI検証失敗を回復不可能なエラーとして扱わなければなりません (MUST)。付録Aは、この認証が実際にどのように実行できるかの詳細な例を提供しています。

このプライバシープロファイルの実装は、X.509証明書のSPKIのDERエンコードされたASN.1表現のSHA-256 [RFC6234] ハッシュとしてのフィンガープリントの計算をサポートしなければなりません (MUST)。

実装は、base64エンコードされた文字列 [RFC4648] としてのSHA-256フィンガープリントの表現をサポートしなければなりません (MUST)。追加のフィンガープリントタイプもサポートされてもよい (MAY) です。