DNSSEC を実装する

完了

組織の DNS クエリの応答をインターセプトして改ざんすることは、一般的な攻撃方法です。 悪意のあるハッカーが Contoso の DNS サーバーからの応答を変更したり、偽装された応答を送信してクライアント コンピューターに自分のサーバーを参照させたりできると、Contoso の機密情報にアクセスできるようになります。 最初の接続を DNS に依存するサービス (eコマース Web サーバーやメール サーバーなど) は、すべて脆弱です。

DNSSEC とは

DNSSEC により、DNS クエリを行うクライアントは、偽の DNS 応答を受け入れないように保護されます。 デジタル署名されたゾーンをホストしている DNS サーバーは、クエリを受け取ると、要求されたレコードと共にデジタル署名を返します。 リゾルバーまたは別のサーバーは、トラスト アンカーから公開キーと秘密キーのペアの公開キーを取得し、応答が本物で改ざんされていないことを検証できます。 これを行うには、署名済みゾーンまたは署名済みゾーンの親のトラスト アンカーを使用して、リゾルバーまたはサーバーを構成する必要があります。

DNSSEC の展開手順の概要は次のとおりです。

  1. DNS ゾーンに署名します。
  2. トラスト アンカーの配布を構成します。
  3. クライアント コンピューターで名前解決ポリシー テーブル (NRPT) を構成します。

リソース レコード

DNS 応答の検証を行うには、(管理者によって生成された) 秘密キーと公開キーのペアを DNS ゾーンに関連付け、キーの署名と発行を行うための追加の DNS リソース レコードを定義します。

リソース レコードにより公開キーは配布されますが、秘密キーはサーバーに残ります。 クライアントによって検証が要求されると、クライアントで応答を認証できるデータが、DNSSEC により応答に追加されます。

次の表では、DNSSEC で使用される追加のリソース レコードについて説明します。

リソース レコード 目的
RRSIG DNS レコードのセットのための署名を保持します。 DNS クライアントは、それを使用して、応答の権限を確認できます。 リソース レコードが解決されると、検証のためにリソース レコード署名 (RRSIG) レコードが送信されます。
DNSKEY ゾーンの公開キーを発行します。 これにより、DNS サーバーで保持されている秘密キーによって作成された署名を、クライアントで検証できます。
NSEC DNS 応答にクライアントに提供するデータがない場合、ホストが存在しないことが Next Secure (NSEC) レコードによって認証されます。
NSEC3 NSEC レコードのハッシュされたバージョンであり、ゾーンを列挙することによる攻撃を防ぎます。
DS 子ゾーンの公開キーのハッシュが含まれる委任レコードです。 このレコードは、親ゾーンの秘密キーによって署名されています。 署名済みの親の子ゾーンも署名されている場合は、子の委任署名者 (DS) レコードを親に手動で追加して、"信頼チェーン" を作成する必要があります。

DNS ゾーンに署名する

A screenshot of the DNS Manager console. The administrator has selected the Contoso.com zone, and is launching the DNSSEC Zone Signing Wizard.

Windows Server の DNS マネージャーには、構成と署名プロセスを簡略化し、オンライン署名を有効にするための ゾーン署名ウィザードが含まれています。 このウィザードを使用して、ゾーン署名パラメーターを選択できます。 既存のゾーンのパラメーターを使用するか、既定値を使用するのではなく、ゾーン署名の設定を構成する場合は、このウィザードを使用して次のような設定を構成できます。

  • キーを署名するキーのオプション。
  • ゾーンを署名するキーのオプション。
  • トラスト アンカーの配布のオプション。
  • 署名とポーリングのパラメーター。

A screenshot of the Key Signing Key (KSK) page in the Zone Signing Wizard.

トラスト アンカーの配布

"トラスト アンカー" は、公開キーによって表される権限のあるエンティティです。 TrustAnchors ゾーンには、特定のゾーンに関連付けられている事前構成済みの公開キーが格納されます。 DNS でのトラスト アンカーは、DNSKEY または DS リソース レコードです。 クライアント コンピューターでは、これらのレコードを使用して信頼チェーンを構築します。 すべてのドメイン DNS サーバーのゾーンからトラスト アンカーを構成して、その署名済みゾーンからの応答を検証する必要があります。 ゾーンをホストするすべての DNS サーバーで、RRSIG レコードの検証に必要な情報を提供するため、同じ DNSKEY キー レコードを保持する必要があります。

名前解決ポリシー テーブル

NRPT には、DNS クエリを送信し、それらのクエリからの応答を処理するための DNS クライアントの動作を制御する規則が含まれています。 たとえば、DNSSEC 規則により、クライアント コンピューターに、特定の DNS ドメイン サフィックスに関する応答の検証のチェックが要求されます。 ベスト プラクティスとして推奨される NRPT の構成方法は、グループ ポリシーです。 NRPT が存在しない場合、クライアント コンピューターは検証を行わずに応答を受け入れます。

設定を確認または変更する

ゾーンの署名が完了したら、次の手順に従って、設定を確認または変更できます。

  1. DNS マネージャーで、ゾーンを右クリックするか、そのコンテキスト メニューをアクティブ化し、[DNSSEC] を選択して、[プロパティ] を選択します。
  2. [<ゾーン名> ゾーンの DNSSEC プロパティ] ダイアログ ボックスを使用して、設定を確認し、編集します。
  3. 完了したら、 [OK] を選択します。

A screenshot of the DNSSEC properties for Contoso.com zone dialog box. The administrator has selected the Key Master tab.

デモンストレーション

次のビデオでは、DNS コンソールを使用して Windows Server DNS で DNSSEC を構成する方法を説明します。 このプロセスの主な手順は以下のとおりです。

  1. [サーバー マネージャー] を開き、[DNS マネージャー] を開きます。
  2. 適切な前方参照ゾーンを見つけ、ゾーンを右クリックするか、そのコンテキスト メニューをアクティブにして、[DNSSEC] を選択し、[ゾーンへの署名] を選択します。
  3. ゾーン署名ウィザードを使用して、処理を完了します。
  4. DNS マネージャーで、[トラスト ポイント] を展開します。 DNSKEY リソース レコードが存在し、その状態が有効であることを確認します。
  5. [グループ ポリシー管理] を開きます。
  6. 適切な GPO を編集用に開きます。
  7. グループ ポリシー管理エディターの [コンピューターの構成] で、[ポリシー]>[Windows の設定]>[名前解決ポリシー] に移動します。
  8. [規則の作成] セクションの [サフィックス] テキスト ボックスに、適切なドメイン サフィックスを入力します。
  9. [この規則で DNSSEC を有効にする] をオンにし、[DNS クライアントに、DNS サーバーで名前とアドレス データが検証されたことを確認するよう要求する] をオンにして、[作成] を選択します。


クイック レビュー

1.

Contoso.com に対する DNSSEC が確立された後、DNSKEY の信頼レコードは DNS 階層内のどこに存在していますか?