ゲスト[ログイン]

おおいしゆうのASミュージックスコア登録CGI

おおいしゆうが日々のフォルテール演奏の記録を書き続けるCGI(日記じゃないです。blogでもないです)

工画堂スタジオ 『スマイル☆シューター ~ふぁーすと☆ちけっと~』OHP

パルフェ10周年ポータル パルフェ10周年寄せ書き企画

Aozora Melodyのパーフェクト動画公開中!

日 (今日 最終日)
日 ~ 日 (全部)
フォルテール総合情報サイト
ASミュージック
ポータル

同曲演奏状況
CSV登録
工画堂スタジオ&ヤマサ 『スマイル☆シューター ~ふぁーすと☆ちけっと~』応援中!
工画堂スタジオ 『ソルフェージュ~La finale~』OHP
ルートDNSサーバ対応記念に自宅DNSサーバをDNSSEC対応にしてみました。まだ上流に登録出来ない(将来出来るようになるのかは謎ですが)のであまり意味はないですが、というかasmusic.jpがDNSSEC対応になっても何一つ良いことはないですが。

まずbindにDNSSEC対応にしたときに限り影響するセキュリティホールがあるとかでさくっと最新版の9.7.1-P2にアップグレード。./configureに--with-openssl=/usr (FreeBSD標準のOpenSSLを使う場合)を付けておくとDNSSEC対応になります。あとdigを作るときにCFLAGSに-DDIG_SIGCHASEを付け加えておくと署名の検証を追跡する+sigchaseオプションが使えるようになって良いかも。
named.confのoptions、もしくはviewにdnssec-enable yes;を書いておくと有効に。


ドメインをDNSSEC対応にするにはZSK,KSKという2種類の鍵を作っておく必要があるようです. ZSKは短く頻繁に更新, KSKは長くある程度そのままでもいいようにして, ゾーンファイルの各レコードをZSKで署名、ZSKをKSKで署名してKSKの公開鍵のハッシュを上流サーバにDSレコードとして登録しておくそうです。
上流サーバにDSレコードが登録されていればDNSSEC対応とみなされ、上流サーバのDSレコードでKSKの公開鍵を検証し、KSKでZSKを検証し、ZSKで実際の各レコードを検証するという仕組みになります。上流サーバのDSレコードは更に上流で認証され、最上位の公開鍵はあらかじめレゾルバやキャッシュDNSに信頼できる情報として登録しておくとのこと。

・鍵を作る
各キーはゾーンファイルと同じ所に置いておくと楽。

ZSK(鍵長1024bit, NSEC3用RSA/SHA-1)
/usr/local/bind/sbin/dnssec-keygen -r /dev/random -a NSEC3RSASHA1 -b 1024 -e -n ZONE asmusic.jp.

KSK(鍵長2048bit, NSEC3用RSA/SHA-1)
/usr/local/bind/sbin/dnssec-keygen -r /dev/random -f KSK -a NSEC3RSASHA1 -b 2048 -n ZONE asmusic.jp.

それぞれKasmusic.jp.+007+?????.key、.privateというファイルが出来ます。?????はランダムな5桁の数字で、.keyが公開鍵、.privateが秘密鍵。どっちがZSKでどっちがKSKか分からなくなったら中を見て256と書いてある方がZSKで257のほうがKSK。

・ゾーンファイルを署名する
まず対象のゾーンファイルに上記のZSK、KSKの公開鍵を両方コピーしておく。そのまま使える形式になっているので中身をコピー&ペーストするとか$INCLUDE Kasmusic.jp.+007+?????.key とかしておく。あとゾーンファイルのシリアル番号を上げておく。
/usr/local/bind/sbin/dnssec-signzone -a -e 20110719 -H 10 -3 aaaa -k KSK -o asmusic.jp. asmusic.jp.zone ZSK
-a:ベリファイする -e 有効期限(デフォルトは30日。多分ここで指定した1年は長すぎる) -H NSEC3を使う(数字は謎だがデフォルトが10) -3 NSEC3用のソルト(ランダム16進数4桁) -o 対象ドメイン。asmusic.jp.zoneは署名するゾーンファイル、KSKとZSKはKasmusic.jp.+007+?????の形で指定。拡張子は必要に応じて.keyや.privateが付いているものを読み込んでくれる模様。成功するとasmusic.jp.zone.signedというファイルができるので、named.confのasmusic.jp.zoneをasmusic.jp.zone.signedに変更する。
書き換えるときはもう一度署名し直せばよい。元ファイル取って置いてそっちを書き換えて署名しても良いし、署名済みのものを書き換えると書き換えた部分と期限切れになりそうなところだけ再署名してくれるっぽいのでそれでもいい。


・上流サーバへの登録依頼
/usr/local/bind/sbin/dnssec-dsfromkey Kasmusic.jp.+007+?????.key
でKSK公開鍵を指定すると
asmusic.jp. IN DS ????? 7 1 .........................................
asmusic.jp. IN DS ????? 7 2 .........................................................
みたいなのが生成されるので、これを上流サーバのゾーンファイルにそのまま書いて貰う。2つあるのは多分短い方がSHA-1、長い方がSHA-256?


・ZSKの更新方法
セキュリティを気にするなら1ヶ月に1度くらい更新した方が良い?
期限切れ前に新しいZSKを作って、新しいZSKと古いZSKを両方ゾーンファイルに取り込んで、両方のZSKで署名(dnssec-signzoneでZSKを2つ並べて書く)。期限切れから十分時間が経ったら古いZSKを削除して新しいZSKのみの状態にして新しいZSKで署名。

・KSKの更新方法
1年に1回くらい?
期限前に新しいKSKを作って、新しいKSKと古いKSKが共にゾーンファイルに書いてある状態で両方のKSKを使って署名(-K KSKを2つ書く)。新しいKSKのDSを上流DNSサーバに登録して貰う。十分時間が経ったら古い方を削除して新しいものだけにする。


・キャッシュDNSサーバでDNSSECの検証を有効にする方法
結局ルートDNSの公開鍵の登録法がよく分からないのですが、どうもmanaged-keysという仕組みで自動的に取り込むようになっているみたい。この際やたらと長いファイル名のファイルを自動的に書き出すので、optionsかviewでmanaged-keys-directory "path"で書き出すパスを指定しておくといいかも。
dig +noall +answer DNSKEY . >root.key とかやってルートの公開鍵を取得.dnssec-dsfromkey -f root.key . でハッシュ値を計算し、https://data.iana.org/root-anchors/root-anchors.xmlと比較して正しいか確認。正しかったらnamed.confに
managed-keys {"." initial-key 257 3 8 "root.keyの内容の257 3 8 の後の部分";};
を書いておく。
あとはoptionsかviewにdnssec-validation yes; dnssec-lookaside auto; を書いておくと検証が有効になる。
dig +dnssec www.isc.org a
などとしてstatus:NOERRORでadフラグが立っていればOK。
名前: ひとこと:
この記事へのトラックバックURL: https://www.asmusic.jp/ASHARD/score/tb.cgi/yu-oishi/20100718_1手動トラックバック