DNSSECの導入手順とメリット|BINDで安全なDNSを構築する方法

DNSSECの導入手順とメリット

DNSSECの導入手順とメリット

DNSSECはDNS応答へ電子署名を付与し、DNS情報の正当性を検証するためのセキュリティ技術です。

DNSキャッシュポイズニングや偽DNS応答によるフィッシング被害を防ぐため、多くの企業や組織で導入が進んでいます。

しかし、DNSSECは通常のDNS運用と比べて設定項目が多く、導入手順が複雑なため敬遠されることもあります。

本記事ではBINDを例にDNSSECの導入手順と運用メリットについて解説します。

DNSSEC導入の目的

DNSSECの最大の目的はDNS応答の改ざん防止です。

利用者はDNSサーバから返された情報が本物であることを確認できます。


DNS問い合わせ
↓
署名付き応答
↓
署名検証
↓
正当性確認

これにより偽DNS応答を検知できます。

DNSSEC導入前の構成


利用者
↓
キャッシュDNS
↓
権威DNS

応答の正当性確認は行われません。

DNSSEC導入後の構成


利用者
↓
キャッシュDNS
↓
署名検証
↓
権威DNS

DNS応答が検証されます。

DNSSEC導入に必要な要素

  • DNSKEY
  • RRSIG
  • DSレコード
  • KSK
  • ZSK

これらを理解することが重要です。

KSKとは

KSK(Key Signing Key)はDNSKEYを署名する鍵です。


KSK
↓
DNSKEY署名

DNSSECの最上位鍵となります。

ZSKとは

ZSK(Zone Signing Key)はゾーン情報へ署名する鍵です。


ZSK
↓
ゾーン署名

日常運用で利用されます。

DNSSEC導入の流れ


鍵生成
↓
ゾーン署名
↓
named設定
↓
DNSKEY公開
↓
DS登録
↓
運用開始

この流れで進めます。

鍵生成

BINDではdnssec-keygenコマンドを利用します。

# dnssec-keygen -a RSASHA256 -b 2048 -f KSK example.com

KSKを生成します。

ZSK生成

# dnssec-keygen -a RSASHA256 -b 1024 example.com

ZSKを生成します。

生成されるファイル

Kexample.com.+008+12345.key
Kexample.com.+008+12345.private

秘密鍵は厳重に管理します。

ゾーン署名

生成した鍵でゾーンファイルへ署名します。

dnssec-signzone -o example.com db.example.com# 

署名済みゾーンが生成されます。

署名済みゾーンの利用

named.confで署名済みゾーンを指定します。

zone "example.com" {
    type master;
    file "db.example.com.signed";
};

署名済みファイルを利用します。

BIND再起動

# systemctl restart named

設定を反映します。

DNSKEY確認

公開鍵が配布されているか確認します。

# dig example.com DNSKEY

DNSKEYレコードが表示されます。

RRSIG確認

# dig +dnssec example.com

RRSIGレコードが表示されます。

DSレコード取得

親ゾーン登録用のDS情報を取得します。

# dnssec-dsfromkey Kexample.com.+008+12345.key

DSレコードが出力されます。

DSレコード登録

ドメイン管理事業者へ登録します。


example.com
↓
レジストラ
↓
DS登録

これが信頼の連鎖を完成させます。

信頼の連鎖完成


Root
↓
.com
↓
example.com

DNSSEC検証が可能になります。

DNSSEC導入のメリット① 改ざん検知

最大のメリットです。

偽DNS応答を検知できます。

メリット② キャッシュポイズニング対策

DNSキャッシュポイズニングへの有効な防御となります。

攻撃者の偽応答は署名検証に失敗します。

メリット③ フィッシング対策

偽サイトへの誘導を防止できます。

企業ブランド保護にもつながります。

メリット④ 信頼性向上

利用者へ安全なDNSサービスを提供できます。

企業サイトの信頼性向上にも貢献します。

メリット⑤ セキュリティ要件への対応

官公庁や大企業ではDNSSEC対応が求められることがあります。

セキュリティ監査でも評価対象になります。

導入時の注意点

  • 鍵管理が必要
  • 設定が複雑
  • DS登録が必要
  • 鍵更新が必要
  • 運用負荷が増える

事前検証が重要です。

鍵ローテーション

長期間同じ鍵を利用し続けるべきではありません。


旧鍵
↓
新鍵
↓
再署名

定期的に更新します。

トラブル事例

DNSSEC障害で最も多いのはDSレコード不一致です。


DNSKEY変更
↓
DS未更新
↓
名前解決失敗

注意が必要です。

実務で確認するコマンド

$ dig +dnssec example.com

$ dig example.com DNSKEY

$ dig example.com DS

DNSSEC状態確認の基本コマンドです。

実務で覚えておきたいポイント

  • DNSSECはDNS応答の正当性を保証する
  • KSKとZSKを利用する
  • DSレコード登録が必須である
  • キャッシュポイズニング対策になる
  • 鍵管理が重要である
  • 定期的な鍵更新が必要である

まとめ

DNSSECはDNS応答の正当性を保証するための重要なセキュリティ技術です。

導入には鍵管理やDSレコード登録などの作業が必要になりますが、DNSキャッシュポイズニングやフィッシング対策として大きな効果があります。

BINDでは標準機能として利用できるため、公開DNSを運用する場合は導入を検討する価値があります。

安全なDNS基盤を構築するためにも、DNSSECの導入手順と運用方法を理解しておくことが重要です。