DNS・ドメイン

DNSSEC でぃーえぬえすせっく

DNSSECDNS署名キャッシュポイズニング対策ゾーン署名DS レコード信頼チェーン
DNSSECについて教えて

簡単に言うとこんな感じ!

DNSSECは「DNSの回答に電子署名をつけて改ざんを防ぐ仕組み」だよ。普通のDNSは回答が本物かどうか確認しないから、偽の回答を注入される危険がある。DNSSECがあれば「この回答は確かに本物のDNSサーバーが返したものです」と証明できるんだ!


DNSSECとは

DNSSEC(DNS Security Extensions)は、DNSの応答にデジタル署名(RSAまたはECDSA)を付加することで、応答の正真性(改ざんされていないこと)と出所を検証できるようにする拡張仕様です。

DNSは本来、応答が正しい権威サーバーから来たものかどうかを確認する仕組みを持っていません。この弱点を突いたキャッシュポイズニング攻撃(偽のDNS応答をキャッシュDNSに記憶させる攻撃)に対する根本的な防御策がDNSSECです。

DNSSECは「信頼チェーン(Chain of Trust)」と呼ばれる階層的な信頼構造を構成します。ルートゾーンの署名から始まり、TLD(.com/.jpなど)→各ドメインへと信頼が連鎖していきます。


DNSSECのレコード構成

レコードタイプ役割
DNSKEYゾーン署名に使う公開鍵
RRSIG各リソースレコードへのデジタル署名
DS(Delegation Signer)子ゾーンのDNSKEYのハッシュ(親が保持)
NSEC / NSEC3存在しないレコードへの「不在証明」

歴史と背景

  • 1997年:DNSSECの最初の標準化(RFC 2065)
  • 2005年:改定仕様(RFC 4033-4035)が現在の標準に
  • 2008年:カミンスキー攻撃によるキャッシュポイズニングが実証。DNSSEC普及が加速
  • 2010年:ルートゾーンへのDNSSEC署名が完了
  • 2011年:.jpドメインへのDNSSEC対応開始
  • 現在:主要TLDはほぼ対応済みだが、個別ドメインの設定率はまだ低い

DNSSECの信頼チェーン

ルートゾーン TLDゾーン (.com/.jpなど) ドメインゾーン (example.com) DSレコードで 子ゾーンを検証 DSレコードで 子ゾーンを検証

関連する規格・RFC

規格内容
RFC 4033DNSSEC 導入と要件
RFC 4034DNSSEC レコードタイプ仕様
RFC 4035DNSSEC プロトコル仕様

関連用語