第1回はDNSの仕組みとDNSSECについて解説しました。
また、第2回は電子署名の仕組みとZSK(ゾーン署名鍵)の役割について解説しました。
第3回となる本稿では、ZSKでは十分でない信頼性を補完するKSK(鍵署名鍵)について説明します。
上位ゾーンとの信頼の架け橋となるKSK
ZSKだけでもDNSの応答データが改ざんされていないことは可能です。
しかし応答したDNSサーバが不正なサーバで、DNS応答データ(リソースレコード)も元から不正なデータであれば意味がありません。
KSKはこの問題を解消します。
KSKは上位のゾーンとの信頼関係を結ぶ役割を持ちます。
上位ゾーンに登録されたKSK公開鍵と対になるKSK秘密鍵を利用してZSK公開鍵を署名することにより、ZSK公開鍵もまた、上位ゾーンに信頼されたものとして扱うことができます。
KSKの役割
KSKの役割は大きく分けて2つあります。
● KSK秘密鍵でZSK公開鍵を署名する
ZSK公開鍵は自ゾーンのDNS応答データの検証を行うために利用します。
不正に作成されたゾーンのDNS応答データに対する検証が成功する場合、そのゾーンを署名したZSK秘密鍵/公開鍵もまた不正であるということです。
そこで自ゾーンに対してもう1種類の鍵、KSK秘密鍵/公開鍵を生成します。
KSKの秘密鍵を利用してZSK公開鍵を署名します。
そして自ゾーンにKSK公開鍵、ZSK公開鍵(KSKによる署名あり)を登録します。
しかしこのKSKが不正なものであれば意味がありません。
そのため後述する上位ゾーンへの登録により、自ゾーンのKSK公開鍵が信頼できるものであることを確認できるようにします。
● KSK公開鍵を上位ゾーンへ登録し、信頼の連鎖を構築する
KSK公開鍵が信頼できるものであれば、そのKSK公開鍵で署名の検証が成功するZSK公開鍵もまた信頼できるものとなります。このKSK公開鍵の信頼性は上位のゾーンによって担保されます。
DNSSECを利用する場合はKSK公開鍵のハッシュ値を含む情報「DS(Delegation Signer)」を上位ゾーンに登録します。これは上位ゾーンにKSK公開鍵を登録することとほぼ同義になります。
自ゾーンのKSK公開鍵と上位ゾーンのKSK公開鍵が一致した場合、自ゾーンのKSK公開鍵は信頼できるものと考えられます。上位のゾーンにDSとしてKSK公開鍵を登録できるのは、そのゾーンに対するドメイン管理者でなければできないからです。
信頼できるKSKによって検証が成功したZSKは信頼できる
前述に通り、上位ゾーンのDSにより自ゾーンのKSK公開鍵が信頼できるものとなります。
ZSK公開鍵はKSK秘密鍵で署名されているので、KSK公開鍵で検証します。
信頼されたKSK公開鍵で検証に成功した場合、そのZSK公開鍵もまた信頼できるものと考えられます。
なぜなら信頼されたKSK公開鍵の対となるKSK秘密鍵は正規のゾーンを管理する者でなければ利用できないためです。
たとえば不正に作成された同名ゾーンに信頼されたKSK公開鍵を登録するとします。
攻撃者はこのKSK公開鍵の対となるKSK秘密鍵で不正なZSKを署名する必要がありますが、KSK秘密鍵は公開されていないため手に入れることができません。そこで不正なKSK秘密鍵を自身で生成し、不正なZSK公開鍵を署名することもできますが、不正なKSK秘密鍵と信頼されたKSK公開鍵は対となっていないためZSK公開鍵の検証に失敗します。
ZSK公開鍵の検証に失敗した場合はDNSSECの検証失敗、つまり名前解決が失敗となります。
信頼の連鎖
KSKにより上位ゾーンとの信頼関係が構築されます。
しかし上位ゾーンもまた信頼できるものでなければ意味がありません。
(クリックで拡大)
DNSSECでは上位ゾーンもZSKによる署名がされます。
そして上位ゾーンのZSKもまた上位ゾーンのKSKにより署名されます。
上位ゾーンのKSKの信頼性を担保するのは、そのさらに上のゾーンです。
(クリックで拡大)
DNSSECはこの信頼の連鎖により下位のゾーンが信頼される仕組みです。
では最上位のルートゾーンはどうなるのでしょうか。
ルートゾーンのKSK公開鍵の信頼性を担保する上位ゾーンはありません。
ルートゾーンのKSK公開鍵は無条件で信頼される鍵となり、多くのキャッシュDNSサーバ(厳密にはDNSSECのバリデーター)に同等の情報が登録されています。
つまりルートゾーンKSK公開鍵から信頼の連鎖が始まります。
このルートゾーンKSK公開鍵は「トラストアンカー(信頼の基点)」と呼ばれます。
KSKロールオーバーはトラストアンカーの変更
第1回で触れた「ルートゾーンKSKロールオーバー」と呼ばれる作業はルートゾーンのKSK秘密鍵/公開鍵を更新(変更)する作業です。
前述の通り、多くのキャッシュDNSサーバではルートゾーンKSK公開鍵がトラストアンカーとなっています。
そのため、DNSSECを利用するキャッシュDNSサーバの管理者はトラストアンカーを新しいルートゾーンKSK公開鍵に変更する必要があります。
既存のルートゾーンKSK公開鍵はいずれ失効します。
もし既存のルートゾーンKSK公開鍵をトラストアンカーに設定したままにすると、そのDNSキャッシュサーバを利用したDNSSECの検証は失敗し、名前解決ができなくなります。
第3回目の本稿ではKSKの役割とKSKロールオーバーについて説明しました。
次回はKSKロールオーバーに対する確認事項について説明します。
=====================================
>>CDNetworksのサービス全般についてはこちら
>> お問い合わせ、ご相談はこちら
株式会社シーディーネットワークス・ジャパン
TEL:03-5909-3373(営業部)