次の方法で共有


DNSSEC とは

DNSSEC (Domain Name System Security Extensions) は、ドメイン ネーム システム (DNS) の応答を検証可能にすることで、DNS プロトコルのセキュリティを向上させるための一連の拡張機能です。 DNSSEC は、発信元の認証、データ整合性、および不在認証の機能を備えています。 DNSSEC を使用すると、DNS プロトコルが特定の種類の攻撃 (特に DNS スプーフィング攻撃) を受ける可能性が大幅に減少します。

DNSSEC の動作のしくみ

DNSSEC をサポートする権威 DNS サーバーで使用する場合、DNS ゾーンは、ゾーン署名と呼ばれる処理を利用して、DNSSEC によって保護することができます。 DNSSEC を使用してゾーンに署名すると、DNS クエリと応答の基本的なメカニズムを変更することなく、ゾーンに検証のサポートが追加されます。

DNS 応答の検証は、DNS の応答に含まれているデジタル署名を使用して行われます。 これらのデジタル署名は、DNSSEC 関連のリソース レコードに格納されます。このレコードは、ゾーンの署名時に生成され、ゾーンに追加されます。

コア DNSSEC 拡張機能は、次の RFC (Request for Comments) で規定されています。

  • RFC 4033: 「DNS セキュリティの概要と要件」
  • RFC 4034: 「DNS セキュリティ拡張機能のリソース レコード」
  • RFC 4035: 「DNS セキュリティ拡張機能のプロトコルの変更」

次の図では、ゾーン contoso.com についての、ゾーン署名前とゾーン署名後の DNS リソース レコードの例を示します。

Diagram showing example DNS resource records in the zone contoso.com before and after zone DNSSEC signing.

これらのリソース レコードのそれぞれの詳細については、「DNSSEC リソース レコード」を参照してください。

DNSSEC リソース レコード

次の表は、DNSSEC で使用されるリソース レコードの種類を示します。

リソース レコードの種類 説明
リソース レコードの署名 (RRSIG) DNSSEC を使用して生成された署名は、RRSIG レコードに格納されます。 各 RRSIG レコードは、デジタル署名の対象となるゾーン内の別のレコードと照合されます。 リゾルバーが 1 つの名前に対してクエリを実行すると、応答では 1 つ以上の RRSIG レコードが返されます。
Next Secure (NSEC) NSEC レコードを使用すると、DNS 名が存在しないことを証明できます。 NSEC レコードは、DNS クライアントを騙して DNS 名が存在しないと認識させることを目的としたスプーフィング攻撃を防止します。
Next Secure 3 (NSEC3) NSEC3 は、"ゾーン ウォーキング" を回避する NSEC に代わるものです。 ゾーン ウォーキングは、ゾーン内のすべての名前を取得するために NSEC クエリを繰り返すプロセスです。 Windows Server 2012 以降のオペレーティング システムを実行している DNS サーバーは、NSEC と NSEC3 の両方をサポートしています。 ゾーンへの署名には、NSEC または NSEC3 を使用できますが、両方を使用することはできません。
Next Secure 3 Parameter (NSEC3PARAM) NSEC3PARAM レコードは、存在しない DNS 名の応答に含める NSEC3 レコードを決定するために使用されます。
DNS Key (DNSKEY) DNSKEY リソース レコードは、署名の検証に使用される公開暗号化キーを格納します。 DNSKEY レコードは、検証プロセス中に DNS サーバーによって使用されます。 DNSKEY レコードには、ゾーンに署名するキー (ZSK) またはキーに署名するキー (KSK) の公開キーを格納できます。
Delegation Signer (DS) DS レコードは、委任の保護に使用する DNSSEC レコードの種類です。 DS レコードを使用すると、子ゾーンへの認証チェーンを構築できます。

DS レコードを除き、ゾーンが DNSSEC で署名されている場合は、これらのレコードはすべて自動的にゾーンに追加されます。 DS レコードは特殊なレコードであり、親ゾーンに手動で追加して、子ゾーンに対するセキュリティで保護された委任を作成できます。 たとえば、contoso.com ゾーンには secure.contoso.com の DS レコードを含めることができます。 ただし、このレコードは親ゾーンに作成するか、または子ゾーンに作成してから親ゾーンに反映する必要があります。 ゾーンに署名するとき、DS レコードは自動では作成されません。

NSEC レコードまたは NSEC3 レコードは、ゾーンの署名中に、自動的にゾーンに追加されます。 ただし、署名済みゾーンには、NSEC レコードと NSEC3 レコードを両方とも含めることはできません。 ゾーンに追加するレコードの種類 (NSEC または NSEC3) は、ゾーンの署名を構成する方法によって異なります。 前の例では、NSEC3 を使用してゾーンが署名されています。

トラスト アンカー

DNSKEY および DS リソース レコードは、トラスト アンカーまたはトラスト ポイントとも呼ばれます。 トラスト アンカーは、署名済みゾーンの DNS 応答の DNSSEC 検証を実行するすべての非権威 DNS サーバーに配信する必要があります。 DNS サーバーがドメイン コントローラー上で実行されている場合、トラスト アンカーは Active Directory ドメイン サービス (AD DS) のフォレスト ディレクトリ パーティションに格納され、フォレスト内のすべてのドメイン コントローラーにレプリケートできます。 スタンドアロン DNS サーバーでは、トラスト アンカーが TrustAnchors.dns というファイルに保存されます。

Windows PowerShell を使用して、Get-DnsServerTrustAnchor コマンドでゾーンのトラスト アンカーを表示します。 サーバー上にある現在のすべてのトラスト ポイントを表示するには、Get-DnsServerTrustPoint PowerShell コマンドを使用します。 また、Windows Server 2012 以降のオペレーティング システムを実行している DNS サーバーでは、構成済みのトラスト アンカーが DNS マネージャー コンソール ツリー内の [トラスト ポイント] コンテナーにも表示されます。

次のステップ

DNSSEC がリソース レコードを使用して DNS 応答を検証、保護する方法の詳細については、DNS 応答の検証に関する記事を参照してください。