DNSSEC – ZSKの更新/事前公開法

このサイトのeastforest.jpドメインにDNSSECを導入して1ヵ月。
ZSK(Zone Signing Key)の署名に使える有効期限が来たので、新しいZSKのキーロールオーバーを実施しました。
ちなみに現時点でレジストラがDNSSECに対応していないため、上位ゾーンにDSレコードは登録し出来ておりません。そのためキャッシュDNSサーバのトラストアンカーにeastforest.jpドメインを登録し、内部的に検証できる環境にしてあります。
更新方法は事前公開法で実施。手探り状態で試しているので参考までに。細かいところは割愛しています。もし何かのヒントになれば幸いです。

【ZSK事前公開法の流れ】

1.新ZSK作成
2.新ZSKを事前に公開
3.新ZSKによる署名の開始
4.旧ZSKの削除

【手順】

1.新ZSK作成

# dnssec-keygen -K <鍵の作成先指定> -a RSASHA256 -b 1024 -r /dev/urandom -P <鍵を公開する日時> -A <署名開始日時> -I <署名終了日時> ゾーン名

2.新ZSKを事前に公開

2-1.再署名(署名のタイミングでゾーンに反映される)

# dnssec-signzone -a -S -x -K <鍵の保存場所> -d <DSレコードファイル生成先指定> -3 <NSEC3のsalt> -s <署名開始日時> -e <署名終了日時> -r /dev/urandom -N unixtime -f <署名付きゾーンファイル名指定> -o <ゾーン名(origin)> <ゾーンファイル>

2-2.更新された署名付きゾーンファイルを見て、新ZSKが反映されていることを確認

# less eastforest.jp.signed

・DNSKEYのうちKSKが1個、ZSKが2個であることを確認
・ZSKは「256」、KSKは「257」
・新ZSK鍵タグと同じKey idがあることを確認
・各レコードの署名は現在使用しているZSKのkey idであることを確認

2-3.署名付きゾーンファイルの所有者、パーミッションを適切な設定に変更

# chown root:named eastforest.jp.signed
# chmod 640 eastforest.jp.signed

2-4.BIND再起動またはrndcコマンドで設定を再読み込み

# rndc reconfig

2-5.DNSKEYのTTL経過後、新旧ZSK公開鍵がキャッシュサーバから見えることを確認

# dig eastforest.jp dnskey +dnssec

3.新ZSKによる署名の開始

・旧ZSKの署名有効期限経過、RRSIGのTTL以内に新ZSKによる再署名を行うことで新旧ZSKの切り替えを行う
・旧ZSKはゾーンに残っているが、署名は行われていない状態

4.旧ZSKの削除

・RRSIGのTTL経過後、旧ZSKによる署名がキャッシュから無くなったら、旧ZSKを削除または退避する
・次回再署名のタイミングで旧ZSKはゾーンからも削除される

今回は理解不足で実際のところは新旧ZSK切り替えと旧ZSKの削除を同時にやってしまいました。手順をまとめているときに気が付きましたが、NGの運用ですね。
また次回実施の時に検証を重ねたいと思います。

参考
http://www.atmarkit.co.jp/ait/articles/1203/29/news122_4.html
https://www.nic.ad.jp/ja/materials/iw/2012/proceedings/t9/t9-Yamaguchi.pdf

 

スポンサードリンク