KSK/ZSKとは
「KSK (key-signing key)」および「ZSK (zone-signing key)」は、 DNSSEC (Domain Name System Security Extensions)において、 各ゾーンの署名に用いられる署名鍵の通称です。 署名対象が公開鍵(DNSKEYレコード)の鍵はKSK、 署名対象がゾーンに含まれる残りのレコードとなる鍵はZSKと呼ばれています。 このように2種類の署名鍵が存在するのは、DNSSECの構造上、 複数の鍵を使い分けた方が運用しやすいという、次のような理由からです。
DNSSECでは、署名鍵をいくつ作成するかや、 どの署名鍵をどのレコードに対する署名に用いるかは、自由に決めることができます。 また、DNSSECでは信頼の連鎖を構築するために、 少なくとも一つは署名鍵に関する情報(DSレコード)を親ゾーンに登録する必要があります。 親ゾーンに登録する署名鍵はいくつでも問題ありませんが、 署名鍵を更新する場合には同時に親ゾーンへのDSレコードの登録が必要です。 しかし、DNSSECは公開鍵暗号方式を利用しており、適切な頻度で鍵を更新する必要があるため、 登録している署名鍵の数や更新回数が多くなると、更新作業のコスト上昇を招きます。 そのため、作業コストを抑えるために、署名鍵を二つの役割に分けて利用する手法が考え出されました。
その手法では、署名鍵を複数用意し、公開鍵を署名する鍵とその他のレコードを署名する鍵の、 二つの署名対象ごとに鍵を分けます。そして、親ゾーンには前者の署名鍵のDSレコードを登録します。 このとき、鍵の暗号強度を高めておけば鍵を更新する頻度を低くすることができるため、 親ゾーンへの登録回数も少なくすることが可能となります。
この手法における前者の鍵は、鍵を署名するための鍵ということから「key-signing key」、 後者の鍵は署名鍵以外のレコード、 すなわちゾーンのデータを署名する鍵ということから「zone-signing key」と呼ぶようになりました。
■参考
RFC 3757
- Domain Name System KEY (DNSKEY) Resource Record (RR) Secure Entry Point (SEP) Flag
http://tools.ietf.org/html/rfc3757
RFC 4034
- Resource Records for the DNS Security Extensions
http://tools.ietf.org/html/rfc4034
RFC 6840
- Clarifications and Implementation Notes for DNS Security (DNSSEC)
http://tools.ietf.org/html/rfc6840