質問
DNSSECはなぜDNSキャッシュポイズニング対策になるのですか。 わかりやすく解説してください? |
解答
いい質問ですね!🙌 「DNSSEC がなぜキャッシュポイズニング対策になるか」を、できるだけシンプルに解説します。 まず前提:キャッシュポイズニングとは? 通常の DNS は 問い合わせたドメインに対して、返ってきた応答をそのまま信用してキャッシュします。 攻撃者が「偽の応答」を送り込むことに成功すると、DNSサーバやクライアントが 偽物のIPアドレスを正しいものだとキャッシュしてしまう → ユーザーが偽サイトに誘導される、というのがキャッシュポイズニングです。 🔑 問題点は、普通のDNSには応答の正当性を検証する仕組みがないこと。 DNSSECがやっていること DNSSEC (DNS Security Extensions) は、 DNSの応答に「デジタル署名」を付ける仕組みです。 1. ゾーンの管理者は、DNSレコードに対して秘密鍵で署名を行う 2. 応答には「レコード」+「署名(RRSIGレコード)」がセットで返る 3. 検証側(リゾルバやキャッシュDNSサーバ)は、公開鍵(DNSKEYレコード)を使って署名を検証する 4. 信頼できるルートサーバから公開鍵のチェーンが辿れるので、改ざんがあれば「署名が一致しない」として拒否 なぜキャッシュポイズニング対策になるのか 攻撃者が偽の応答を送りつけても、 * 正しい秘密鍵で署名されていなければ署名検証に失敗する * 署名が検証できないレコードはキャッシュされない つまり「ただ偽のIPアドレスを送るだけ」では効かなくなるのです。 👉 これにより 正当な権威DNSサーバが発行した応答かどうか を確認できるようになる。 わかりやすいたとえ * 普通のDNS = 「誰が書いたかわからないメモをそのまま信用して受け取る」 * DNSSECあり = 「署名入りの公文書しか受け付けない。名が偽物なら無視する」 だから、途中で偽のメモ(偽応答)を差し込まれても引っかからなくなるわけです。 まとめ * DNSキャッシュポイズニングの原因 → 応答の正当性が確認できない * DNSSECの仕組み → デジタル署名で「本物の応答」かを検証できる * 結果 → 攻撃者の偽応答をキャッシュしない 💡 補足すると、DNSSECは「偽応答を防ぐ」仕組みであり、DoS攻撃や権威サーバの乗っ取りそのものは防げないという点も重要です。 |
|
|
この記事へのコメント