AD DSにおいて、名前解決やフォレストのツリー構造を決定する「ドメインネームシステム(DNS)」サービスにも、セキュリティ強化の波が訪れた。従来のDNSには、ゾーンやレコード情報の信憑性を検査する仕組みがなかったため、意図的に偽レコード情報を流して、本物とは異なるWebサイトなどに誘導する攻撃手法が編み出された。これに対抗するために、Windows Server 2012のDNSサーバーには「DNSSEC(DNS Security Extensions)」が搭載された。
Windows Server 2012におけるDNSサーバーの新機能と強化点は表4のとおり。
DNSSEC 対応
Windows Server 2012のDNSサーバーは、公開鍵暗号方式とデジタル署名を利用してレコードの正当性を検証可能にした「DNSSEC」に対応している(画面7)。DNSSECでは、次の4種類のリソースレコードを追加で使用する(画面8、表5)。
DNSSECに対応したDNSサーバー間では、次の手順で応答の信憑性とデータの完全性を検証する。
1.DNS1では、ゾーン1に対して秘密鍵を使って暗号化を行い、DNSKEYレコードで対応する公開鍵を提供している。また、リソースレコードについてもハッシュ値を秘密鍵で暗号化して、RRSIGレコードでデジタル署名として公開している。
2.DNS2からDNS1に問い合わせを行い、ゾーンの公開鍵、リソースレコードのデータ、レコードに対応するデジタル署名を得る。
3.ゾーンの公開鍵でデジタル署名を復号化してハッシュ値1を得る。また、リソースレコードのデータを同じ計算式を通してハッシュ値2を得て、ハッシュ値1と比較する。
4.ハッシュ値1とハッシュ値2が等しければ、ゾーンやレコード情報は間違いなくDNS1から得られたもので、改ざんが行われていないことが証明できる。
しかし、NSECレコードを使うと次々と実在するゾーン名を取り出す「ゾーン列挙(Zone enumeration)」が可能になり、新たな攻撃の足がかりに利用されてしまうことが判明した。そこで、ゾーン名の代わりにゾーンのハッシュ値を返すことで、ドメイン名が流出しないように改良を加えたのが「NSEC3」レコードになる。Windows Server 2012のDNSサーバーは、このNSEC3に対応している。
なお、DNSSECで使用する秘密鍵と公開鍵の生成、保管、期限切れ、交換については、AD DSと「自動ロールオーバー」機能によって簡略化されている。