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

4. TLSにおけるTLSAレコードの使用 (Use of TLSA Records in TLS)

本文書のセクション2.1は、TLSA証明書関連付けからのデータとTLSサーバーから受信した証明書の必須マッチングルールを定義しています。

設定されるTLSセッションは、TLSAクエリで指定された特定のポート番号とトランスポート名でなければなりません。

HTTPの[RFC2818]など、TLS上で実行されるアプリケーションの一部の仕様では、サーバーの証明書にクライアントが期待するホスト名と一致するドメイン名があることが要求されます。[RFC6125]などの一部の仕様では、PKIX証明書で指定されたIDをユーザーが期待するIDと照合する方法を詳しく説明しています。

TLSAレコードに証明書用途2がある場合、対応するTLSサーバーは、現在中間証明書を送信するのと同じように、参照される証明書を送信する必要があります(SHOULD)。

4.1. 使用可能な証明書関連付け (Usable Certificate Associations)

このプロトコルの実装は、TLSAレコードのDNSクエリを作成し、DNSSECを使用してこれらのレコードを検証し、結果のTLSAレコードと検証ステータスを使用してTLSサーバーへの応答を変更します。

TLSA RRSetを使用できるかどうかの判断は、DNSSEC検証状態([RFC4033]で定義)に基づいている必要があります。

  • DNSSEC検証状態が安全なTLSA RRSetは、ローカルポリシーが安全なTLSA RRSet内の特定の証明書関連付けの使用を禁止しない限り、TLSの証明書関連付けとして使用する必要があります。

  • TLSA RRSetのリクエストに対する応答のDNSSEC検証状態が偽造である場合、これはTLSを開始しないか、TLSネゴシエーションがすでに進行中の場合は接続を中止する必要があります。

  • DNSSEC検証状態が不確定または安全でないTLSA RRSetは、TLSに使用できず、使用不可と見なされる必要があります。

DNSSEC署名自体を検証するクライアントは、標準のDNSSEC検証手順を使用する必要があります。別のエンティティにDNSSEC署名検証を実行させるクライアントは、自身と検証者の間に安全なメカニズムを使用する必要があります。他のホストへの安全なトランスポートの例には、TSIG [RFC2845]、SIG(0) [RFC2931]、およびIPsec [RFC6071]が含まれます。DNSSEC署名検証を行わないDNSリゾルバへの安全なトランスポートを使用するだけでは不十分であることに注意してください。外部検証者に関連するその他のセキュリティ考慮事項については、セクション8.3を参照してください。

証明書関連付けにTLSクライアントが理解していない証明書用途、セレクタ、またはマッチングタイプが含まれている場合、その証明書関連付けは使用不可と見なされる必要があります。証明書の比較データが不正な形式である場合、証明書関連付けは使用不可と見なされる必要があります。

証明書関連付けに、TLSクライアントのポリシーに対して弱すぎると見なされる暗号化アルゴリズムを使用するマッチングタイプまたは証明書関連付けデータが含まれている場合、証明書関連付けは使用不可と見なされる必要があります。

アプリケーションがDNSリクエストまたはそのキャッシュから使用可能な証明書関連付けをゼロ受信した場合、TLSAレコードからの入力なしで通常の方法でTLSを処理します。アプリケーションが1つ以上の使用可能な証明書関連付けを受信した場合、成功する一致が見つかるまで、各証明書関連付けをTLSサーバーのエンドエンティティ証明書と照合しようとします。TLSハンドシェイク中に、証明書関連付けのいずれもTLSサーバーから提供された証明書と一致しない場合、TLSクライアントはハンドシェイクを中止する必要があります。

ユーザーを自分の制御下にあるサーバーに転送できる攻撃者は、ユーザーからのDNSリクエストまたはユーザーに送信されるDNS応答もブロックできる可能性があります。したがって、証明書用途0または1からセキュリティ上の利点を得るには、TLSAレコードのリクエストを送信するアプリケーションは、TLSAレコードを含む有効な署名付き応答、またはドメインが安全でないか不確定であることの検証を取得する必要があります。TLSAレコードのリクエストがこれら2つの基準のいずれかを満たさないにもかかわらず、アプリケーションがとにかくTLSハンドシェイクを続行する場合、アプリケーションはTLSAから何の利益も得ておらず、TLSAが適用されたという内部または外部の表示を行うべきではありません(SHOULD NOT)。アプリケーションにTLSA使用をオンにした構成設定がある場合、またはTLSAが使用されているという表示がある場合(これが構成可能かどうかに関係なく)、そのアプリケーションは、上記の2つの基準の両方が満たされていない場合、TLS接続を開始してはならないか、TLSハンドシェイクを中止する必要があります。

アプリケーションは、TLSハンドシェイクを開始する前にTLSAルックアップを実行することも、TLSハンドシェイク中に実行することもできます。選択はクライアント次第です。