DNSSECは、デジタル署名を使い、DNSデータの出所と改ざんの有無を検証する仕組みです。DNSの情報を暗号化して隠す機能とは区別します。署名されたデータを、信頼できる鍵からたどって検証する点が重要です。
署名はDNSデータに付く
署名の対象はDNSレコードの集合(RRset)です。キャッシュなどを経由しても、検証する側が署名と鍵の信頼関係を確認できます。応答を送ってきた相手の通信経路だけを信用する仕組みではありません。
| 要素 | 基本的な役割 |
|---|---|
| RRSIG | レコード集合に対する署名 |
| DNSKEY | 検証に用いる公開鍵 |
| DS | 親ゾーン側から子の鍵を確認するための情報 |
| トラストアンカー | 検証の出発点として信頼する鍵などの情報 |
DSには子のDNSKEYのダイジェストなどが含まれます。検証するリゾルバは、信頼の出発点から鍵と署名のつながりを確認します。単にDSと応答の値を比較するだけではありません。
守れることと守らないこと
| 目的 | DNSSECとの関係 |
|---|---|
| 署名されたDNSデータの出所・完全性を検証 | 対象 |
| 名前やレコードが存在しない応答の検証 | 認証された不在証明を用いる |
| 問い合わせ内容を秘密にする | DNSSECだけでは行わない |
| Webページの安全性を保証する | 行わない |
| DoS攻撃を防ぐ | DNSSECだけでは保証しない |
署名検証が正常でも、そのドメインのWebページが無害だという意味ではありません。DNSデータの真正性と、サイトの運営内容の安全性は別の判断です。
署名と検証の両方が必要
ゾーンに署名を付ける側だけでなく、受け取ったデータを検証する側と信頼のつながりも必要です。検証できる署名付きデータへの偽装を見抜く助けになりますが、未署名のデータまで一律に保護されるわけではありません。
検証失敗と、そもそも信頼の連鎖がない未署名データは区別します。署名期限切れや鍵の更新、親子の設定の不整合などでも検証に失敗することがあるため、署名を設定して終わりではなく運用が必要です。
DoH・DoTとは役割が違う
DoHやDoTはDNS通信にHTTPSやTLSを使う仕組みです。DNSSECはデータの署名検証です。暗号化された通信経路を使うことだけで、DNSデータの署名が検証されたことにはなりません。
確認問題
DNSSECで検証が成功すれば、問い合わせ内容は暗号化されて隠れますか?
解答・解説を見る
いいえ。DNSSECはDNSデータの出所・完全性を検証する仕組みで、問い合わせの機密性を提供するものではありません。
DNSの流れとDNSSECをnoteで復習する
無料noteには名前解決、キャッシュ、DNSレコードに加え、キャッシュポイズニングとDNSSECの基本もあります。どこで応答を受け取り、何を検証するのかをDNS全体の流れと結び付けて確認できます。
資格・目的別のnote教材ナビから、関連教材も選べます。

コメント