DNSSEC解説:DNSに署名する
素のDNSには認証がありません。リゾルバは、本物の応答と攻撃者が注入した偽の応答(キャッシュポイズニング)を区別できません。DNSSECはDNSレコードに署名し、完全性と出所を検証できるようにしてこれを解決します。
関係するレコード
| レコード | 役割 |
|---|---|
| DNSKEY | ゾーンの公開鍵(KSKとZSK) |
| RRSIG | レコード集合に対する署名(鍵で作成) |
| DS | ゾーンKSKのハッシュ。親ゾーンに公開 |
| NSEC/NSEC3 | 名前が存在しないことの認証済み証明 |
信頼の連鎖
ルートゾーンは、検証リゾルバが内蔵するトラストアンカーです。ルートがTLDのDSに署名し、TLDがあなたのドメインのDSに署名し、あなたのDNSKEYがレコードに署名します。検証リゾルバはこの連鎖をたどり、すべて整合すればAD(Authenticated Data)フラグを立てます。署名の欠落・期限切れ・DS不一致があれば、偽の応答ではなくSERVFAILを返します。
有効化の手順
- DNSホストで署名を有効化(DNSKEY/RRSIGが自動生成される)。
- 生成されたDSレコードをレジストラに登録する — ここを忘れがちで、無いと連鎖が切れます。
- 当サイトの DNSSECチェッカー で確認する。
メモ: DNSSECは真正性を提供しますが秘匿性は提供せず、クエリを暗号化しません。機密性にはDNS-over-HTTPS/TLSを使います。DNSレコードの種類 も参照。