あなたのIPv4アドレス:
オペレーティングシステム:
プロバイダー:

DNSSECとは?仕組みをわかりやすく解説

DNSSECは、DNSデータにデジタル署名を付ける仕組みです。検証を行うリゾルバーは、偽造された応答や壊れた信頼の連鎖を検出できます。レコードの出どころと完全性は守られますが、DNSクエリが暗号化されるわけではなく、Webサイトが自動的に信頼できるものになるわけでもありません。

信頼の連鎖の仕組み

ゾーンの運用者は秘密鍵でレコードに署名し、DNSKEYレコードとRRSIGレコードを公開します。親ゾーンには、子ゾーンの鍵とのつながりを示すDSレコードが置かれます。検証を行うリゾルバーは、信頼できるルートから回答まで連鎖をたどります。正しく署名されたデータは受け入れ、連鎖が壊れていればエラーを返すことができます。DNSSECの目的と限界はRFC 4033で説明されています。

レコードが存在しないことの証明も認証できるため、攻撃者が否定応答を単純に差し替えることを防げます。ほとんどの訪問者が署名を直接目にすることはなく、結果は利用しているリゾルバーが検証を行うかどうかで決まります。管理画面でDNSSECのスイッチをオンにしただけでは、親ゾーンのDS、公開されている鍵、署名がすべての権威DNSサーバーで一致していることの証明にはなりません。

DNSSECが守るもの、守らないもの

検証が行われていれば、DNSの回答を気づかれずに改ざんすることは難しくなります。ただし、問い合わせた名前をリゾルバーから隠したり、リゾルバーへの通信を暗号化したりはしません。通信経路のプライバシーという別の課題に取り組むのがDoHとDoTです。また、DNSSECは、TLS証明書、誠実なWebサイトのコンテンツ、レジストラのアカウント保護、適切なゾーン管理の代わりにもなりません。

ドメイン所有者が誤ったアドレスを公開すれば、DNSSECはその誤ったアドレスを忠実に認証してしまいます。署名の有無にかかわらず、A、AAAA、MXなどのレコードは正しく保ちましょう。トラブルシューティングの際は、DNSルックアップを使って、通常のリゾルバーと検証を行うリゾルバーの応答を比べてみてください。壊れたドメインひとつを表示させるためだけに、全員の検証を無効にするのは避けましょう。ゾーンのレコードは2IPのドメイン設定チェックでも確認できます。

署名済みドメインが名前解決できなくなる原因

よくある原因は、DNSプロバイダーや鍵を変更したあとに、親ゾーンに古いDSレコードが残っていることです。署名の期限切れ、権威DNSサーバー間の不整合、鍵のロールオーバーの失敗でも検証が失敗します。委任、現在のDNSKEYとDSの値、RRSIGの有効期間、各権威DNSサーバーの回答を確認しましょう。設定を変える前に、正確なエラーとテストした時刻を記録しておいてください。

署名済みゾーンを移行する前に、新しい運用者とDSの更新タイミングを調整し、鍵を確認しておきます。修正したあとは、キャッシュされた肯定応答と否定応答が期限切れになるまで待つ必要があります。メールやAPIで使っているドメインであれば、作業時間帯と切り戻し手順を用意しておきましょう。ダッシュボードで「有効」と表示されているのを確認しないまま放置するより、信頼できる署名の自動化と監視のほうがはるかに重要です。