DNSSEC
DNSSEC を有効にし、DS レコードを取得してレジストラに追加する手順と、鍵の更新や安全な無効化の方法を説明します。
DNSSEC は DNS 応答にデジタル署名を追加します。DNSSEC を検証する再帰リゾルバは、その応答がドメインの権威サーバーから送信され、改ざんされていないことを確認できます。これにより、キャッシュポイズニングなどの攻撃を防ぎます。
Yeap Cloud DNS では、DNSSEC を有効にすると、ネームサーバーが応答時に動的に署名するため、署名を自分で管理する必要はありません。DNSSEC を実際に機能させるには、プラットフォームの DS レコードをドメインレジストラに登録する必要もあります。これにより、親ゾーン(.com など)からの信頼の連鎖が構築されます。
プランページでは、DNSSEC は Basic 以上のプランに含まれています。各プランの機能は、コンソールのプランページで確認してください。
始める前に
- ゾーンが有効な状態で、ドメインのネームサーバーがプラットフォームから割り当てられたネームサーバーをすでに参照している必要があります(ゾーンとレコードを参照してください)。
- レジストラで、ドメインにアルゴリズム 13(ECDSA P-256 / SHA-256)、**ダイジェストタイプ 2(SHA-256)**の DS レコードを追加できることを確認してください。主要なレジストラと一般的な TLD は、どちらにも対応しています。
- 以前の DNS プロバイダーでこのドメインの DNSSEC を有効にしていた場合は、まずレジストラで古い DS レコードを削除してください。キャッシュの有効期限が切れてからネームサーバーを切り替えてください。そうしないと、切り替え後にドメインの名前解決ができなくなることがあります。
ステップ 1: ゾーンの DNSSEC を有効にする
- DNS → ゾーン管理に移動し、ゾーンの行にある DNSSEC 設定アイコンをクリックします。または、ゾーンのレコードページで その他の操作 → DNSSEC 設定をクリックします。
- DNSSEC 設定ウィンドウで DNSSEC を有効化をクリックし、確認します。
- システムが署名鍵(KSK と ZSK)を生成します。ウィンドウの DNSSEC 状態が 有効に変わります。署名アルゴリズムの
ECDSAP256SHA256と Key Tag も表示されます。
以降、ネームサーバーはゾーンの DNSKEY レコードを公開します。DNSSEC を要求するクエリには署名付きの応答(RRSIG レコード)を返し、存在しない名前には署名付きの否定応答を返します。
ステップ 2: DS レコードを取得する
DNSSEC を有効にすると、DNSSEC 設定ウィンドウに DS レコードの各フィールドが表示されます。各フィールドにはそれぞれコピーボタンがあります。
| フィールド | 説明 |
|---|---|
| Key Tag | 0 から 65535 までの整数で表されるキータグ |
| アルゴリズム | 13(ECDSAP256SHA256) |
| ダイジェストの種類 | 2(SHA-256) |
| ダイジェスト | 16 進数の文字列 |
その下の 完全な DS レコードの形式には、次のようにレコード全体が表示されます。
example.com. 3600 IN DS 12345 13 2 3F8A...(digest)レジストラによって、Key Tag、アルゴリズム、ダイジェストタイプ、ダイジェストを個別のフィールドに入力する場合と、DS レコードの行全体を入力する場合があります。レジストラが指定する形式を使用してください。
ステップ 3: レジストラで DS レコードを追加する
ドメインを他のレジストラで管理している場合: レジストラにサインインし、ドメインの DNSSEC または DS レコードの設定を開いて、上の表の値を入力し、保存します。
ドメインを Yeap Cloud で登録している場合: ドメイン → マイドメインを開き、ドメインの詳細を表示して DNSSEC タブに移動します。
- DNS サービスの DNSSEC 状態には、Yeap Cloud DNS におけるドメインの DNSSEC 状態が表示されます。
- DNSSEC の同期で レジストラに同期をクリックすると、DS レコードがレジストリに送信されます。
- または、DS レコードを手動で追加のフィールドに入力し、DS レコードを送信をクリックします。
- レジストラの DNSSEC 状態が 設定済みになれば、送信は成功です。
この操作が利用できるかどうかは、その TLD のレジストラ連携が DNSSEC に対応しているかによって異なります。対応していない場合は、その旨のメッセージが表示されます。
DS レコードを送信してから世界中で有効になるまで、通常は数時間、長い場合は 24–48 時間かかります。所要時間は、レジストリの公開頻度とキャッシュの有効期間によって異なります。
ステップ 4: 検証する
DS レコードが公開されたら、信頼の連鎖が完成していることを確認します。
# Check that the parent zone publishes the DS record
dig +short DS example.com
# Look at the zone's DNSKEY and signatures (use a nameserver assigned to the zone)
dig +dnssec DNSKEY example.com @<assigned-nameserver>
# Query a validating public resolver; the "ad" flag means validation passed
dig +dnssec www.example.com @1.1.1.1DNSViz などのオンラインツールでも、信頼の連鎖全体を図で確認できます。
鍵の再生成
DNSSEC 設定ウィンドウの 鍵を再生成は、KSK と ZSK を同時に置き換え、新しい DS レコードを生成します。新しい鍵はすぐに有効になります。プラットフォームでは、新旧の鍵を並行して公開する段階的なロールオーバーは行いません。そのため、レジストラの古い DS レコードは新しい鍵と一致しなくなり、新しい DS レコードが公開され、古い DS レコードのキャッシュが失効するまで、検証を行うリゾルバではドメインを名前解決できません。
鍵の漏えいが疑われる場合など、必要な場合を除き、鍵を再生成しないでください。鍵を変更する必要がある場合は、レジストラで DS レコードを削除し、古い DS レコードのキャッシュが失効するまで少なくとも 24–48 時間待ち、コンソールで 鍵を再生成 をクリックしてから、新しい DS レコードをレジストラに登録するのが安全な手順です。
DNSSEC を安全に無効にする
レジストラに DS レコードが残ったままコンソールで DNSSEC を無効にすると、検証を行うリゾルバは応答が改ざんされたと判断し、ドメインの名前解決ができなくなります。次の順序で操作してください。
- レジストラでドメインの DS レコードを削除します。Yeap Cloud で登録したドメインは、ドメイン詳細の DNSSEC タブから削除できます。
- DS レコードのキャッシュが失効するまで待ちます。少なくとも 24–48 時間待つことを推奨します。
dig +short DS example.comを実行し、親ゾーンが DS レコードを返さなくなったことを確認します。 - DNSSEC 設定ウィンドウに戻り、DNSSEC を無効化をクリックして確認します。
ドメインをプラットフォームから移行する場合も同じ順序で操作してください。DS レコードを削除し、キャッシュの失効を待ってから、ネームサーバーを変更するかゾーンを削除します。
移行先の DNS プロバイダーも DNSSEC に対応している場合は、まず移行を完了し、新しいプロバイダーが正しく応答していることを確認してください。その後、新しいプロバイダーから提供された DS レコードを使用して DNSSEC を再び有効にします。