DNSSEC

提供: ArchWiki
移動先: 案内検索

関連記事

Wikipedia:ja:DNS Security Extensions より:

DNS Security Extensions (略称 DNSSEC) は、インターネットプロトコル (IP) で使用される Domain Name System (DNS) における応答の正当性を保証するための Internet Engineering Task Force (IETF) による拡張仕様である。サーバーとクライアントの双方がこの拡張に対応し、かつ拡張機能を使った形式で該当ドメイン情報が登録されていれば、DNS 応答の偽造や改竄を検出することができる。

基本的な DNSSEC 検証

ノート: DNS ルックアップで DNSSEC をデフォルトで使用するには設定が必要です。#DNSSEC 対応の検証キャッシュサーバーのインストール#特定のソフトウェアで DNSSEC を有効化を見てください。

インストール

drill ツールを使って基本的な DNSSEC 検証が行なえます。drill を使うには ldns パッケージをインストールしてください。

DNSSEC 検証の問い合わせ

DNSSEC 検証の問い合わせを行うには、-D フラグを使います:

$ drill -D example.com

テスト

以下のドメインを使うことでテストが可能です。ルートサーバーから解決されるドメインまでトレースする -T フラグを追加してください:

$ drill -DT sigfail.verteiltesysteme.net

以下のような結果が表示され、DNSSEC 署名が偽物と分かります:

[B] sigfail.verteiltesysteme.net.       60      IN      A       134.91.78.139
;; Error: Bogus DNSSEC signature
;;[S] self sig OK; [B] bogus; [T] trusted

信頼できる署名のテストをするには:

$ drill -DT sigok.verteiltesysteme.net

以下のような結果が表示され、DNSSEC 署名が信頼できると分かります:

[T] sigok.verteiltesysteme.net. 60      IN      A       134.91.78.139
;;[S] self sig OK; [B] bogus; [T] trusted

DNSSEC 対応の検証キャッシュサーバーのインストール

システム全体で DNSSEC を使用したい場合、DNSSEC に対応している検証リカーシブリゾルバを使うことで全ての DNS ルックアップをリゾルバで経由させることができます。使用できるサーバーとして BINDunbound が存在します。DNSSEC 検証機能を有効にするにはそれぞれ特定のオプションを有効にする必要があります。

偽の (偽装された) IP アドレスを使ってサイトにアクセスしようとすると、検証リゾルバ (BIND または unbound) は不正な DNS データの受信を拒否するため、ブラウザ (や他のアプリケーション) にはそのようなホストは存在しないと表示されます。全ての DNS 取り合わせが検証サーバーを経由するため、DNSSEC のサポートが組み込まれたソフトウェアをインストールする必要がありません。

特定のソフトウェアで DNSSEC を有効化

#DNSSEC 対応の検証キャッシュサーバーのインストールをしたくない場合、DNSSEC のサポートが組み込まれているソフトウェアを使う必要があります。大抵の場合、手動でソフトウェアにパッチを適用する必要があります。パッチが存在するアプリケーションのリストが こちら にあります。さらに、一部のウェブブラウザにはプログラムにパッチを適用しなくても DNSSEC を使うことができる拡張やアドオンが存在しています。

DNSSEC ハードウェア

dnssec-tester (Python と GTK+ ベースのアプリ) を使うことでルーターやモデム、アクセスポイントが DNSSEC に対応しているかどうか確認できます。収集したデータをサーバーにアップロードして、他のユーザーやメーカーにデバイスの互換性情報を提供してファームウェアの修正に役立てることも可能です (dnssec-tester を実行する前に /etc/resolv.conf に他のネームサーバーが記載されていないか確認してください)。dnssec-tester のウェブサイトからテストの結果を確認できます。

参照