DNSSEC

読み:でぃーえぬえすせっく / 英語表記:DNS Security Extensions

DNSの応答にデジタル署名を付け、受け取った側がそれを検証することで、応答が正しい送信元からのもので、改ざんされていないことを確かめられるようにする仕組み。

イマシルちゃんの解説

DNSの返事が、もし途中で偽物にすり替えられたら……?
本物そっくりの偽サイトに案内されちゃうかもしれないよね。

DNSSECは、DNSの返事に「本物です」っていうデジタル署名を付ける仕組みなんだ。
受け取った側は署名を確かめて、偽物ならちゃんと気づけるんだよ!

より深い解説

定義

DNSSEC(DNS Security Extensions)は、RFC 4033〜4035などで定められた、DNSの拡張である。権威DNSサーバが自分のゾーンのリソースレコードにデジタル署名を付け、フルサービスリゾルバがそれを公開鍵で検証する。これにより、次の2つを確かめられる。

確かめられること意味
送信者の正当性(出自の認証)応答が、そのゾーンの正しい管理者のデータであること
データの完全性応答の内容が途中で改ざんされていないこと

DNSSECは、問合せや応答の内容を暗号化するものではない。通信の盗聴を防ぎたいときは、DNS over TLSやDNS over HTTPSを使う。

追加されるリソースレコード

レコード内容
RRSIGリソースレコードの集まりに付けたデジタル署名
DNSKEY署名の検証に使う公開鍵
DS子のゾーンの鍵のハッシュ値。親のゾーンに登録する
NSEC / NSEC3「その名前は存在しない」ことを、署名付きで証明する

信頼の連鎖

子のゾーンの公開鍵(DNSKEY)が正しいことは、親のゾーンに登録された、署名付きのDSレコードで確かめる。親の公開鍵はさらにその親で確かめる、とたどり、最後はルートゾーンの公開鍵にたどり着く。検証するフルサービスリゾルバは、ルートゾーンの公開鍵を信頼の起点(トラストアンカー)としてあらかじめ持っている。

鍵には、ゾーンのデータに署名する鍵(ZSK)と、その鍵に署名する鍵(KSK)の2種類を使い分けることが多い。

防げる攻撃

フルサービスリゾルバに偽の応答を覚えさせるキャッシュポイズニングを防げる。偽の応答には正しい署名を付けられないため、検証で見破られる。

DNSに関係するほかの仕組みとの違い

仕組み目的
DNSSEC応答の正当性と完全性の検証(デジタル署名)
TSIG共通鍵とハッシュ関数で、ゾーン転送や動的更新の要求の送り手を認証する
セカンダリDNSサーバ権威DNSサーバを冗長化して、名前解決の可用性を高める
再帰的問合せの範囲の制限オープンリゾルバにしないための設定

実際の試験ではここに出る!

この用語が出てくる記事

↑