DNSSEC 【DNS Security Extensions】
概要
DNSSEC(DNS Security Extensions)とは、インターネット上のドメイン名とIPアドレスの変換などを行なうDNS(Domain Name System)において、DNSサーバからの応答が正当なものであることをデジタル署名により確認する方式を定めた規格。DNSクライアントやDNSキャッシュサーバが権威DNSサーバへ問い合わせを行なう際に、サーバからの応答が悪意の第三者によって差し替えや改竄が行われていないことを検証する手順を定めている。利用するにはサーバとクライアントの双方がDNSSECに対応している必要がある。
公開鍵暗号とデジタル署名を応用し、サーバ側が送信するメッセージに管理者の持つ秘密鍵で生成した署名を付す。応答を受信したクライアントはサーバ側で公開されている公開鍵を用いてこれを検証することで、正規の管理者からの情報が改竄されずに伝送されたことを確認できる。
攻撃者がサーバを乗っ取るなどして署名ごと偽造することを防ぐため、管理者はあらかじめ公開鍵を自身の親ゾーン(上位ドメイン)の管理者に送信し、親ゾーンのDNSサーバで署名を付けて公開する。攻撃者が偽の署名でメッセージを送信しても、親ゾーンで公開されている鍵情報と一致しないため、偽物であることが分かる。
親ゾーンも自身の公開鍵をさらに上位の親ゾーンに渡すようになっているため、攻撃者がルートサーバが管理する最上位ドメイン(ルートゾーン)以下、そのドメインまでのすべてのゾーンを乗っ取らない限り、偽の署名を有効にすることはできない。
DNSSECで用いる情報の定義はゾーン情報に専用のリソースレコードを用いて記述する。公開鍵を記述するDNSKEYレコードや、署名情報を記述するRRSIGレコード、親ゾーンに登録した鍵情報を記述するDSレコード、あるゾーンの不存在を通知するNSECレコードなどが用いられる。
(2024.1.16更新)