ネットワーク・通信セキュリティ 重要度:★★★出題: AM2・PM1
DNSSEC と DNSキャッシュポイズニング対策
でぃーえぬえすせっく / きゃっしゅぽいずにんぐ / DNS Security Extensions / DNS Cache Poisoning
DNS応答レコードにデジタル署名(RRSIG)を付与して応答の真正性と完全性を検証し、偽のIPアドレスを教え込むキャッシュポイズニングを防ぐ規格。
3行速習ポイント
- 権威DNSサーバがゾーン情報に秘密鍵で署名(RRSIG)し、フルサービスリゾルバ(キャッシュDNS)が公開鍵(DNSKEY)で検証
- 親ゾーンが子ゾーンのDNSKEYのハッシュ値(DSレコード)に署名することで、ルートゾーンからの信頼の連鎖(Chain of Trust)を確立
- DNSは通信内容の暗号化ではなく「応答の改ざん検知・送信元認証」を行う規格であり、クエリ秘匿にはDoH(DNS over HTTPS)やDoTを用いる
図解
図DNSSEC の信頼の連鎖と DNS キャッシュポイズニング防御設計
サーバ分離・設定
権威DNSとキャッシュDNSの分離・オープンリゾルバ解消
外部からの再帰的問合せ(Recursive Query)の厳格拒否
キャッシュDNS(フルサービスリゾルバ)は社内や契約者からのみ再帰問合せを許可し、DRDoS攻撃の踏み台化と外部からのキャッシュ汚染を防止
↕
偽造応答の抑止
ソースポート&TXIDのランダム化
送信元UDPポート番号とトランザクションIDの推測阻止
権威DNSへ問い合わせる際のUDPポート番号を固定せずランダム化し、偽応答パケットが当たりにくくなるよう組み合わせ総数を拡大
↕
暗号学的真正性検証
DNSSEC(デジタル署名による信頼の連鎖)
DSレコード(親ゾーン)➔ DNSKEY(公開鍵)➔ RRSIG(署名)検証
ルートゾーンから親ゾーンのDSレコードを介して子ゾーンの公開鍵(DNSKEY)の正当性を確認し、応答レコードの署名(RRSIG)を検証して偽IP混入を根絶
💡 DNSSECは「応答の真正性・完全性(改ざん検知)」を保証するものであり、通信内容の暗号化ではない(暗号化はDoH / DoT)
概要と本質
DNSはUDPを用いるため送信元IP偽装が容易であり、キャッシュDNSサーバに偽の名前解決結果を記憶させる「DNSキャッシュポイズニング(カミンスキー攻撃等)」や、公開キャッシュDNSを踏み台にした「DNSリフレクション(DRDoS)攻撃」が深刻な脅威となります。
重要ポイント・コア概念
- オープンリゾルバの解消:外部からの再帰的な問合せ(Recursive Query)を拒否し、権威DNSとキャッシュDNSを分離構成する
- ソースポートランダマイゼーション:キャッシュDNSが権威DNSへ問い合わせる際の送信元UDPポート番号とトランザクションIDをランダム化
- DNSSECレコード:DNSKEY(公開鍵)、RRSIG(デジタル署名)、DS(親ゾーンに登録する委任署名者レコード)、NSEC/NSEC3(不在証明)
午後記述・情報セキュリティ対策での攻略ポイント
午前II・午後ともに超頻出。「DNSSECは通信を暗号化するものではない(改ざん検知と真正性確認)」「権威DNSとキャッシュDNSの分離」「オープンリゾルバ対策(allow-recursion設定)」は必須知識です。
午後記述で使える加点キーワード(クリックでコピー)
関連する重要用語
この用語が出題された過去問を解く(1分演習)
即時アウトプットで定着情報処理安全確保支援士 過去問演習で実践力を鍛える