Internet Week 2010 S10 DNSSECチュートリアル ~ 実 践 編 ~ 民 田 雅 人 <minmin@jprs.co.jp> 株 式 会 社 日 本 レジストリサービス 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 1
目 次 DNSキャッシュへの 毒 入 れ DNSSECのしくみ DNSSEC 導 入 に 向 けて DNSSECの 鍵 と 信 頼 の 連 鎖 DNSSECのリソースレコー ド(RR) 鍵 更 新 と 再 署 名 BINDキャッシュサーバでの DNSSECの 設 定 鍵 生 成 と 署 名 作 業 BIND 権 威 サーバでの DNSSECの 設 定 スマート 署 名 (Smart signing) 全 自 動 ゾーン 署 名 DNSSEC 化 による DNSデータの 変 化 DNSSECのリスク まとめ 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 2
DNSキャッシュへの 毒 入 れ 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 3
DNSプロトコル DNSの 通 信 は 問 合 せと 応 答 の 単 純 な 往 復 この 名 前 のIPアドレスは? IPアドレスはXXXXだよ トランスポートは 主 にUDP 問 合 せパケット クエリ 名 + ID + etc... 応 答 パケット クエリ 名 + ID + 応 答 + etc... ID: 識 別 のための16bitの 値 キャッシュDNSサーバは 応 答 パケットを ソースアドレスとポート クエリ 情 報 ID で 識 別 条 件 が 一 致 すれば 応 答 パケットを 正 しいと 判 断 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 4
偽 装 応 答 型 による 毒 入 れ なんらかの 手 段 を 使 い 本 来 の 応 答 より 先 に 偽 装 応 答 をキャッシュサーバに 送 り 込 み 偽 情 報 を キャッシュさせる 手 法 通 常 時 DNSはUDPで 通 信 するため 偽 装 応 答 が 容 易 攻 撃 手 法 キャッシュサーバのDNS 検 索 を 盗 聴 し 偽 装 応 答 を 返 す キャッシュサーバに 問 い 合 わせを 送 り IDを 変 化 させた 複 数 の 偽 装 応 答 を 返 す(オープンリゾルバは 非 常 に 危 険 ) TTLの 短 いレコードを 狙 って キャッシュサーバに 偽 装 応 答 を 送 り 続 ける etc... 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 5
偽 装 応 答 型 の 攻 撃 ユーザ 1www.jprs.co.jpのAは? 2nsにwwwのAをID 123で 問 い 合 わせ 権 威 サーバ ns.jprs.co.jp 4 応 答 キャッシュサーバ 5 偽 装 DNS 応 答 ソースアドレスをnsに 偽 造 し ID 123で wwwの192.0.2.10( 嘘 の 値 )を 送 り 込 む 3 nsからid 123でwwwの 202.11.16.167を 返 す 攻 撃 者 3より 先 に5の 偽 DNS 応 答 が 送 り 込 まれると キャッシュサーバは 嘘 情 報 をキャッシュする 4で 嘘 情 報 をクライアントに 送 り クライアントは 偽 のサイトへ 誘 導 される 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 6
偽 装 応 答 型 の 攻 撃 が 成 功 する 確 率 問 い 合 わせと 応 答 のIDが 一 致 すれば 攻 撃 が 成 功 攻 撃 1 回 あたりの 成 功 確 率 P S N R W Port ID R: 攻 撃 対 象 1 台 あたりに 送 るパケット 量 (pps) W: 攻 撃 可 能 な 時 間 (Query AnswerのRTT) N: 攻 撃 対 象 レコードを 保 持 する 権 威 サーバの 数 Port: キャッシュサーバのQuery portの 数 ID: DNSのID (16bit = 65536) (R 20000pps, W 10ms, N 2, Port 1で 0.00152) 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 7
毒 入 れ 攻 撃 まとめ 偽 装 応 答 型 の 攻 撃 成 功 確 率 は 決 して 低 くない 現 実 的 には 攻 撃 に 失 敗 するとキャッシュDNSサーバは 正 規 のレコードをキャッシュするため 連 続 攻 撃 は 不 可 能 画 期 的 攻 撃 手 法 であるKaminsky 型 の 攻 撃 手 法 は 連 続 攻 撃 が 可 能 ほぼ 確 実 に 攻 撃 が 成 功 する 毒 入 れは DNSプロトコルそのものが 持 つぜい 弱 性 UDPを 使 う IDが16bitしかない etc 毒 入 れからDNSキャッシュを 守 るための セキュリティ 面 でのプロトコル 拡 張 がDNSSEC 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 8
DNSSECのしくみ 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 9
DNSSECとは DNSセキュリティ 拡 張 (DNS SECurity Extensions) 公 開 鍵 暗 号 の 技 術 を 使 い 検 索 側 が 受 け 取 ったDNSレ コードの 出 自 完 全 性 ( 改 ざんのないこと)を 検 証 できる 仕 組 み 従 来 のDNSとの 互 換 性 を 維 持 した 拡 張 Kaminsky 型 攻 撃 手 法 の 発 覚 を1つの 契 機 に 多 くのTLD が 導 入 開 始 あるいは 導 入 予 定 キャッシュへの 毒 入 れを 防 ぐことができる 現 実 解 他 の 技 術 も 存 在 するが 標 準 化 が 成 されていない 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 10
従 来 のDNS vs DNSSEC DNSサーバが 応 答 に 電 子 署 名 を 付 加 し 出 自 を 保 証 問 合 せ 側 でDNS 応 答 の 改 ざんの 有 無 を 検 出 できる DNS 応 答 の 検 証 不 能 DNS 応 答 従 来 のDNS DNSデータのみを 応 答 DNS 応 答 DNSデータのみを 格 納 DNSデータ DNSデータ DNSサーバ DNSデータ DNS 応 答 と 署 名 を 検 証 正 しい DNS 応 答 DNSSEC 電 子 署 名 を 付 加 して 応 答 DNS 応 答 署 名 署 名 済 み DNSデータを 格 納 DNSデータ DNSデータ DNSデータ 署 名 署 名 署 名 DNSSEC 対 応 DNSサーバ 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 11
DNSSECのスコープ 対 象 としているもの DNS 問 合 せの 応 答 が ドメイン 名 の 正 当 な 管 理 者 からのものであることの 確 認 出 自 の 保 証 DNS 問 合 せの 応 答 における DNSレコードの 改 変 の 検 出 完 全 性 の 保 証 対 象 としていないもの 通 信 路 におけるDNS 問 合 せと 応 答 の 暗 号 化 DNSレコードは 公 開 情 報 という 考 え 方 から 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 12
DNSSEC 導 入 に 向 けて 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 13
DNS 関 係 者 と 各 情 報 の 流 れ ホスティング Webサーバ ユーザー ルートDNS ドメイン 名 登 録 者 DNSプロバイダ 権 威 DNS ISP キャッシュDNS ドメイン 名 レジストラ TLD DNS TLDレジストリ 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 14
DNSSEC 対 応 が 必 要 な 関 係 者 DNSSEC 対 応 ホスティング Webサーバ ユーザー ルートDNS ドメイン 名 登 録 者 DNSプロバイダ 権 威 DNS ISP キャッシュDNS ドメイン 名 レジストラ TLD DNS TLDレジストリ 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 15
DNSEC 対 応 作 業 の 概 要 ドメイン 名 登 録 者 DNSSEC 導 入 の 決 定 ドメイン 名 レジストラ 鍵 情 報 の 上 位 レジストリ への 取 次 ぎ TLD DNS ルートDNS 権 威 DNSサーバの DNSSEC 対 応 化 ゾーンへの 署 名 DNSプロバイダ 権 威 DNSサーバの DNSSEC 対 応 化 秘 密 鍵 公 開 鍵 を 作 成 し ゾーンに 署 名 ISP キャッシュDNSサーバ のDNSSEC 対 応 化 (キャッシュDNSサーバ での) 署 名 の 検 証 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 16
世 界 のDNSSEC 導 入 の 概 況 (2010 年 11 月 8 日 現 在 ) rootゾーン 2010 年 7 月 15 日 よりDNSSECの 正 式 運 用 開 始 DNSSEC 導 入 済 TLD rootゾーンにある 全 294のTLDのうち 62のTLDが 署 名 済 み 46のTLDがrootゾーンにDSを 登 録 済 み (2009 年 末 は10のTLDが 署 名 済 みだったのみ) 今 後 の 状 況 jpは2010 年 10 月 17 日 に 署 名 開 始 2011 年 1 月 16 日 より 登 録 受 付 サービス 開 始 com は2011 年 前 半 / netは2010 年 末 に 導 入 予 定 導 入 予 定 のTLDは 多 数 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 17
DNSSEC 普 及 に 関 連 した 動 き KIDNS (Keys In DNS) DNSで 証 明 書 を 公 開 するアイデア CERT RR (RFC 4398 2006 年 Obsoletes RFC 2538) DNSSECの 実 用 化 にともない 現 在 実 用 化 の 検 討 が 始 まっている DNSSECによってDNSレコードが 信 用 できる DNSにある 証 明 書 も 信 用 できる 従 来 の 自 己 証 明 書 では 本 当 にそのサイトのものかどう か 確 認 が 困 難 だが DNSはそのサイトのもの ドメイン 名 の 一 致 を 重 要 な 目 的 とする 証 明 書 では DNS で 自 己 署 名 証 明 書 を 配 布 するほうがリーズナブル? 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 18
DNSSECの 鍵 と 信 頼 の 連 鎖 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 19
DNSSECの 信 頼 の 連 鎖 の 概 念 図 あらかじめroot 公 開 鍵 を 登 録 キャッシュサーバ root 公 開 鍵 rootゾーン TLD 公 開 鍵 TLDゾーン root 秘 密 鍵 TLD 秘 密 鍵 DNS 問 合 せ DNS 応 答 組 織 公 開 鍵 組 織 ゾーン 組 織 秘 密 鍵 署 名 秘 密 鍵 で 自 ゾーンと 下 位 ゾーンの 公 開 鍵 に 署 名 root 公 開 鍵 をキャッシュサーバに 登 録 することで rootから 組 織 ゾーンまでの 信 頼 の 連 鎖 を 確 立 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 20
用 語 :バリデータ(Validator) DNSSECにおいて バリデータは 署 名 の 検 証 を 行 うもの(プログラム ライブラリ)を 指 す バリデータの 所 在 キャッシュサーバが 署 名 検 証 を 行 う 場 合 キャッ シュサーバがバリデータそのもの 現 状 もっとも 一 般 的 なDNSSECのモデル WEBブラウザ 等 のDNS 検 索 を 行 うアプリケーショ ンが 直 接 署 名 検 証 を 行 うモデルも 考 えられる 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 21
DNSSEC 化 による 名 前 解 決 モデルの 変 化 従 来 のDNSでの 名 前 解 決 モデル 1 クライアント 2 キャッシュサーバ 3 権 威 サーバ DNSSECでの 名 前 解 決 モデル 1 クライアント バリデータ 2 キャッシュサーバ 3 権 威 サーバ 多 くの 場 合 バリデータは2に 実 装 バリデータが1に 実 装 されていても 問 題 ない 署 名 付 きの 応 答 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 22
DNSSEC 利 用 する2 種 類 の 鍵 とDS 2 種 類 の 鍵 ZSK (Zone Signing Key) ゾーンに 署 名 するための 鍵 KSK (Key Signing Key) ゾーン 内 の 公 開 鍵 情 報 に 署 名 するための 鍵 DS (Delegation Signer) 上 位 ゾーンに 登 録 するKSKと 等 価 な 情 報 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 23
ZSK 比 較 的 暗 号 強 度 の 低 い 鍵 例 えばRSAで1024bit 等 の 鍵 を 使 う 暗 号 強 度 が 低 い 署 名 コストが 低 いため 大 規 模 ゾーンの 署 名 にも 適 応 できる 安 全 確 保 のため ある 程 度 頻 繁 に 鍵 を 更 新 する 必 要 がある 鍵 更 新 は 親 ゾーンとは 関 係 なく 独 立 で 行 える 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 24
KSK 比 較 的 暗 号 強 度 の 高 い 鍵 例 えばRSAで2048bitの 鍵 を 使 う 暗 号 強 度 が 高 い 利 用 期 間 を 長 くできるため 鍵 更 新 の 頻 度 を 低 く できる 署 名 コストは 高 いが 少 数 の 鍵 情 報 のみを 署 名 対 象 とするため 問 題 にはならない KSK 公 開 鍵 と 暗 号 論 的 に 等 価 な 情 報 (DS)を 作 成 し 親 ゾーンに 登 録 する KSKを 変 更 する 場 合 同 時 にDSも 更 新 する 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 25
DS KSK 公 開 鍵 を SHA-1/SHA-256 等 のハッ シュ 関 数 で 変 換 したDNSレコード KSK 公 開 鍵 と 等 価 の 情 報 親 ゾーンの 委 任 ポイントに NSと 共 に 子 ゾーンのDS 情 報 を 登 録 親 ゾーンの 鍵 でDSに 署 名 してもらうことで 信 頼 の 連 鎖 を 形 成 する 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 26
DNSSECの 信 頼 の 連 鎖 親 ゾーン のKSK 子 ゾーン のKSK 署 名 署 名 署 名 署 名 親 ゾーン のZSK 署 名 子 ゾーンのDS 子 ゾーン のZSK 署 名 署 名 親 ゾーン NS 子 ゾーン 公 開 鍵 暗 号 による 信 頼 の 連 鎖 を 形 成 キャッシュサーバが KSKの 公 開 鍵 を 使 っ て 署 名 を 検 証 トラストアンカー キャッシュサーバ にはrootゾーンの KSK 公 開 鍵 を 登 録 する 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 27
DSとNSの 本 質 的 な 違 い NS : 委 任 先 DNSゾーンデータが 存 在 する( 可 能 性 のある)サーバを 指 し 示 す DS: 委 任 先 DNSゾーンデータを 直 接 指 し 示 す DSは 子 ゾーンのKSKと 等 価 な 情 報 NSの 指 し 示 すドメイン 名 がDNSSEC 非 対 応 であっ てもDNSSECの 検 証 は 問 題 無 い jpゾーンでの 例 example.jp. IN NS ns0.example.ad.jp. example.jp. IN DS 2260 8 2 CC83B074566... example.ad.jpドメイン 名 はDNSSEC 対 応 していなくても example.jpドメイン 名 はDNSSEC 検 証 可 能 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 28
DNSSECの リソースレコード(RR) 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 29
DNSSEC 関 係 のRR 一 覧 DNSKEY RRSIG DS NSEC KSK ZSK 公 開 鍵 の 情 報 各 RRsetへの 署 名 KSK 公 開 鍵 のハッシュ 値 を 含 む 情 報 ( 親 ゾーンに 登 録 ) 次 のRRへのポインタと 存 在 するレコード 型 の 情 報 NSEC3 NSECを 改 良 したもの( 後 述 ) NSEC3PARAM NSEC3に 必 要 な 情 報 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 30
DNSKEY RR KSKとZSKの 公 開 鍵 を 示 すRR オーナー 名 はゾーン 頂 点 (=ゾーン 名 ) KSKとZSKを 必 要 に 応 じて 複 数 ( 後 述 ) 設 定 example.jp. IN DNSKEY 256 3 5 AwEAAeNO41ymz+Iw( 行 末 まで 省 略 ) 1 2 3 4 1 フラグ(256:ZSK 257:KSK) 2 プロトコル 番 号 (3のみ) 3 DNSSECアルゴリズム 番 号 4 公 開 鍵 (Base64で 符 号 化 ) 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 31
DNSSECアルゴリズム 番 号 ( 抜 粋 ) 番 号 略 称 参 照 5 RSASHA1 [RFC3755] [RFC3110] 7 NSEC3RSASHA1 [RFC5155] 8 RSASHA256 [RFC5702] 10 RSASHA512 [RFC5702] 注 ) 5と7に 差 は 無 く NSECとNSEC3 ( 後 述 ) で 使 い 分 ける DNSSECのDNSSECアルゴリズム 番 号 一 覧 http://www.iana.org/assignments/dns-sec-alg-numbers 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 32
DS RR DS - Delegation Signer 子 ゾーンのKSKの 正 当 性 を 親 ゾーンで 承 認 親 ゾーンにのみ 記 述 する 唯 一 のRR example.jp. IN DS 63604 5 1 DF (16 進 数 40 文 字 ) example.jp. IN DS 63604 5 2 E8 (16 進 数 64 文 字 ) 1 2 3 4 1 鍵 のID 2 DNSSECアルゴリズム 番 号 3ハッシュのアルゴリズム(1:SHA-1, 2:SHA-256) 4ハッシュ 化 したKSK 公 開 鍵 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 33
RRSIG RR 各 RRへの 署 名 で RRset 毎 に 存 在 する ns.example.jp. IN RRSIG A 5 3 86400 1 2 3 4 20091208144031 20091108144031 40002 example.jp. 5 6 7 8 NiVihYAIZBEwfUUAbPazDRIbvhNH8S( 以 下 省 略 ) 9 1 署 名 対 象 のRRの 種 類 ここではns.example.jpのA RR 2 DNSSECアルゴリズム 番 号 3ラベルの 数 ns.example.jp だと3 *.example.jp だと2 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 34
RRSIG RR( 続 き) 4 署 名 対 象 RRのTTL 5 署 名 の 有 効 期 限 6 署 名 の 開 始 時 刻 7 鍵 のID 8ドメイン 名 9 署 名 署 名 は 元 のRRの 全 て(TTL クラス 等 を 含 む)と RRSIGの 署 名 そのものを 除 いた 残 り を 含 めて 計 算 する 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 35
DNSSECにおける 不 在 証 明 DNSSECではドメイン 名 が 存 在 しない 場 合 存 在 しないことを 証 明 する 必 要 がある 万 が 一 存 在 しないドメイン 名 を 偽 装 されたときの ために 存 在 するのかどうかを 検 証 できる 仕 組 み が 必 須 存 在 するRRは 署 名 (RRSIG RR)を 付 加 して 検 証 することで 存 在 を 証 明 できる 存 在 しないRRは 署 名 不 能 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 36
ハンバーガーのパティの 有 無 パティ( 肉 )が 有 る パティの 存 在 を 判 断 できる パティが 無 く バンズ(パン)も 無 い パティが 無 いかどうか 判 断 不 能 単 純 に 配 膳 が 遅 れているだけ? クラウン(バンズ 上 部 )とヒール(バンズ 下 部 )が あるのにパティが 無 い クラウンとヒールの 存 在 が 判 断 できる パティが 存 在 しないことを 確 実 に 判 断 できる 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 37
NSEC RR NSECは 存 在 しないものを 証 明 ( 署 名 検 証 )す るためのRR 存 在 するレコードすべてを 整 列 し 次 のレコード へのリストを 生 成 することで 存 在 しないものを 証 明 する NSEC RRにRRSIGを 付 加 し 署 名 検 証 を 行 う 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 38
NSEC RRの 例 sec2.example.jpを 問 合 せた 場 合 の 応 答 sec1.example.jp. IN NSEC sec3.example.jp. NS DS RRSIG NSEC ( 権 威 セクションで 応 答 ) sec1.example.jp の 次 (アルファベット 順 )のドメイ ン 名 は sec3.example.jp sec2.example.jp は 存 在 しないことを 示 す sec1.example.jp には NS, DS, RRSIG, NSEC のRRが 存 在 する NSECはRR TYPEの 不 存 在 も 証 明 する 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 39
NSEC3 RR NSECを 使 った 不 在 証 明 では NSEC RRを 辿 れば 完 全 なゾーンデータを 入 手 できる NSEC 方 式 はゾーンデータの 公 開 と 等 価 Walker(DNSSEC Walker)というツールで NSEC 方 式 のDNSSEC 化 ゾーンのデータを 入 手 可 能 NSEC3 (RFC 5155) ドメイン 名 を 一 方 向 性 ハッシュ 関 数 でハッシュ 化 し たものを 整 列 する 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 40
NSEC3 RRの 例 4HTJTU7UP56274L1C00Q9MLPHG2A2H85.example.jp. IN NSEC3 1 0 3 123ABC NSEC3の 関 連 パラメータ B0B790UE4SAE4QB4RTB3PJSIH6JAOB7R NS DS RRSIG NSEC RRと 比 べると ラベルがハッシュ 化 されBase32でエンコード 元 のドメイン 名 は 推 測 不 能 NSEC3の 関 連 パラメータを 付 加 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 41
NSEC3の 関 連 パラメータ 前 スライドのRR 例 1 0 3 123ABC 1 2 3 4 1ハッシュアルゴリズム(1:SHA-1 RFC5155) 2 NSEC3 オプトアウトフラグ (1ならオプトアウト 0はオプトアウトしていない) 3 繰 り 返 し 4ソルト(16 進 数 で 表 記 例 は3バイト 分 のソルト) 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 42
NSEC3のハッシュ 値 計 算 方 法 ハッシュの 計 算 アルゴリズム 1 値 にソルトを 結 合 2 次 にハッシュアルゴリズムでハッシュ 値 を 計 算 3 1 2を 繰 り 返 しで 指 定 された 回 数 適 用 する 計 算 の 元 になる 値 は 小 文 字 で 正 規 化 した ドメイン 名 (のワイヤーフォーマット) nsec3hash (BIND 9.7 系 以 降 に 付 属 )で 計 算 可 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 43
NSEC3でのオプトアウト 一 部 の 委 任 先 がDNSSEC 化 している 場 合 主 に.JP.COM 等 のTLDで 該 当 ゾーン 内 のレコード 全 てにNSEC3 RRを 用 意 すると それに 付 随 するRRSIGを 含 めた 計 算 コストが 膨 大 となる DNSSEC 化 していない 委 任 情 報 に 署 名 を 付 加 する 必 要 性 は 薄 い 必 要 のある 委 任 先 にのみNSEC3 RRを 用 意 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 44
NSEC3PARAM RR example.jp. IN NSEC3PARAM 1 0 3 123ABC ゾーン 提 供 ( 権 威 サーバ) 側 が NSEC3の 計 算 を 行 うために 必 要 なレコード NSEC3のパラメータを 抜 き 出 したもの オーナー 名 はゾーン 頂 点 (ゾーン 名 ) 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 45
NSEC3での 権 威 サーバの 応 答 存 在 しない 名 前 の 検 索 を 受 けた 権 威 サーバ クエリ 名 のハッシュ 値 を 計 算 あらかじめ 整 列 してあるNSEC3 RRの 中 から 前 後 に 該 当 するものを 署 名 と 共 に 権 威 セクション で 応 答 実 際 は 複 数 のNSEC3を 応 答 ( 説 明 省 略 RFC5155 Section 7.2 参 照 ) NSEC3のオーナー 名 の 問 合 せ ドメイン 名 としては 存 在 しないもの 名 前 エラー(Name Error)を 応 答 する 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 46
NSECとNSEC3 比 較 NSEC NSEC3 ゾーンデータの 秘 匿 性 無 有 ハッシュ 値 を 求 めるための 計 算 コストの 増 加 無 有 NSEC3はNSECに 比 較 しドメイン 名 の 秘 匿 性 は 高 まるが ハッシュ 計 算 のためのコストが 増 加 する NSEC3とNSECは 用 途 に 応 じて 使 い 分 ける ゾーンデータを 秘 匿 する 必 要 が 無 い 場 合 NSECのほう が 各 DNSサーバの 負 荷 の 増 加 を 抑 えられる 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 47
www.example.jpのaの 署 名 検 証 (1) 1 上 位 からNSとDSを 受 け 取 る JPの 権 威 サーバからexample.jpのDS (DSの 署 名 検 証 の 解 説 は 省 略 )とNSの 情 報 を 受 け 取 る 2 当 該 ゾーンのDNSKEYを 受 け 取 る example.jpの 権 威 サーバから example.jpの DNSKEY( 複 数 )とRRSIG( 複 数 )を 受 け 取 る 3 DNSKEYからKSKを 識 別 する DNSKEYは 複 数 (2 個 以 上 ) 存 在 するので フラグが257 のDNSKEY(1 個 以 上 )を 識 別 する 4 KSKを 特 定 する KSKとDSの 鍵 ID DNSSECアルゴリズム 番 号 を 比 べ KSKを 特 定 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 48
www.example.jpのaの 署 名 検 証 (2) 5 KSKを 認 証 する DSのハッシュアルゴリズムに 従 ってKSKのハッシュ 値 を 計 算 し DSにあるハッシュ 値 と 比 較 してKSKを 確 認 する 6 DNSKEYを 認 証 する 3で 受 け 取 ったDNSKEYに 付 随 したRRSIG( 複 数 )の 鍵 IDからKSKの 鍵 IDと 一 致 するものを 識 別 し 署 名 検 証 を 行 いDNSKEYを 認 証 する 7 DNSKEYからZSKを 識 別 する DNSKEYのフラグが256のものを 識 別 する ここでZSKは 複 数 存 在 する 可 能 性 がある 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 49
www.example.jpのaの 署 名 検 証 (3) 8 www.example.jpのaを 受 け 取 る example.jpの 権 威 サーバから AとRRSIG(1 個 以 上 )を 受 け 取 る 9 www.example.jpのaを 認 証 する RRSIGの 鍵 IDと 一 致 するZSKで 署 名 を 検 証 する 必 ずしも 処 理 はこの 順 番 ではなく 実 装 に 依 存 する 署 名 検 証 の 際 署 名 の 有 効 期 間 ドメイン 名 など 他 の RRSIGのパラメータもチェックされる DSやDNSKEY RRSIG 等 は 署 名 検 証 後 もTTLの 有 効 時 間 キャッシュする 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 50
鍵 更 新 と 再 署 名 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 51
鍵 更 新 鍵 更 新 : Key rollover 同 じ 鍵 を 長 期 間 使 い 続 けると 様 々なリスクが 生 じる 不 注 意 偶 発 的 事 故 鍵 の 盗 難 暗 号 解 読 等 リスクを 最 小 に 抑 えるため DNSSEC 対 応 ゾーンの 運 用 では 定 期 的 な 鍵 更 新 ( 鍵 の 交 換 )を 行 う 例 えばSE(スウェーデン)の 場 合 年 に1 回 新 しい KSKを 生 成 し 2 年 間 利 用 する 運 用 を 行 っている 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 52
鍵 更 新 時 に 留 意 すべきこと 鍵 更 新 は DNSSECの 信 頼 の 連 鎖 が 途 切 れ ないよう 注 意 深 く 作 業 する 必 要 がある 鍵 情 報 (DSやDNSKEY)と 署 名 (RRSIG)はDNS のレコードである キャッシュサーバはこれらをキャッシュする キャッシュしている 情 報 と あらたにキャッシュ サーバが 受 け 取 る 情 報 の 整 合 性 を 確 保 する 2 種 類 の 鍵 更 新 手 法 事 前 公 開 法 (Pre-Publish Key Rollover) 二 重 署 名 法 (Double Signature Key Rollover) 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 53
ZSKの 更 新 事 前 公 開 法 (1/2) 1 DNSKEYに 新 旧 のZSKを 登 録 する 新 ZSKを 作 成 し 旧 ZSKと 共 にDNSKEYに 登 録 し(この 状 態 でKSKを 含 めてDNSKEYは 最 低 3 個 ) 旧 ZSKで ゾーンを 署 名 DNSKEYのTTL 時 間 (+セカンダリの 転 送 時 間 ) 待 つ 全 てのキャッシュサーバが 新 旧 のZSKを 含 んだ DNSKEYをキャッシュするようになり 旧 RRSIGでも 新 RRSIGでも 署 名 を 検 証 できるようになる 2 ゾーンの 署 名 鍵 を 新 ZSKに 切 り 替 える ゾーン 内 の 最 長 のTTL 時 間 (+セカンダリの 転 送 時 間 ) 待 つ 全 てのキャッシュサーバから 旧 ZSKで 署 名 したRRSIGが 無 くなる 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 54
ZSKの 更 新 事 前 公 開 法 (2/2) 3 旧 ZSKをDNSKEYから 削 除 する DNSKEYは 新 ZSKとKSKの 状 態 になる 初 期 状 態 1 2 3 DNSKEY KSK 旧 ZSK KSK 旧 ZSK 新 ZSK KSK 旧 ZSK 新 ZSK KSK 新 ZSK RRSIG 旧 ZSKでの 署 名 旧 ZSKでの 署 名 新 ZSKでの 署 名 新 ZSKでの 署 名 時 間 の 流 れ 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 55
ZSKの 更 新 二 重 署 名 法 1 新 ZSKを 作 成 し 新 旧 両 方 のZSKでゾーンを 署 名 ゾーン 内 の 最 大 TTL 時 間 (+セカンダリの 転 送 時 間 ) 待 つ 2 DNSKEYのZSKの 新 旧 を 入 れ 替 え 新 ZSKで ゾーンを 署 名 DNSKEY 初 期 状 態 1 2 KSK 旧 ZSK KSK 旧 ZSK KSK 新 ZSK RRSIG 旧 ZSKでの 署 名 旧 ZSKでの 署 名 新 ZSKでの 署 名 新 ZSKでの 署 名 時 間 の 流 れ 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 56
ZSKの 更 新 メリット デメリット 事 前 公 開 法 ゾーンへの 署 名 を2 回 行 う 必 要 が 無 い ZSKの 公 開 時 間 が 長 くなるため 暗 号 解 読 攻 撃 のリスク が 高 まる(ZSKは 鍵 長 が 短 い) 初 期 状 態 から 数 えて4ステップ 必 要 次 のZSKを 常 時 公 開 することで 手 順 を 簡 略 化 可 能 二 重 署 名 法 初 期 状 態 から 数 えて3ステップで 終 了 する ゾーンへの 署 名 を2 回 行 う 必 要 がある 鍵 更 新 期 間 中 (1の 状 態 )はDNSデータが 大 きくなる 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 57
KSKの 更 新 二 重 署 名 法 (1/2) 1 新 KSKを 作 成 し DNSKEYに 登 録 して DNSKEYを 新 KSKと 旧 KSKで 署 名 する 2 親 ゾーンのDS 登 録 を 旧 から 新 に 切 り 替 える 親 側 のDSの 切 り 替 え 作 業 を 待 ち その 後 親 側 の 旧 DSのTTL 時 間 分 待 つ 3 旧 KSKを 削 除 する 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 58
KSKの 更 新 二 重 署 名 法 (2/2) 初 期 状 態 1 2 3 親 ゾーンのDS 旧 DS 旧 DS 新 DS 新 DS 子 ゾーン DNSKEY 旧 KSK ZSK 旧 KSK 新 KSK ZSK 旧 KSK 新 KSK ZSK 新 KSK ZSK 子 ゾーン DNSKEYの RRSIG 旧 KSKでの 署 名 ZSKでの 署 名 旧 KSKでの 署 名 新 KSKでの 署 名 ZSKでの 署 名 時 間 の 流 れ 旧 KSKでの 署 名 新 KSKでの 署 名 ZSKでの 署 名 新 KSKでの 署 名 ZSKでの 署 名 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 59
KSKの 更 新 事 前 公 開 法 1 新 KSK(と 新 DS)を 作 成 し 親 ゾーンに 新 旧 2 つのDSを 登 録 する 親 ゾーンのDS 登 録 を 待 つ さらに 旧 DSのTTL 時 間 待 つ 2 旧 KSKを 破 棄 し 新 KSKでDNSKEYに 署 名 する 3 親 ゾーンのDS 登 録 を 新 DSのみにする 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 60
KSKの 更 新 事 前 公 開 法 初 期 状 態 1 2 3 親 ゾーンのDS 旧 DS 旧 DS 新 DS 旧 DS 新 DS 新 DS 子 ゾーン DNSKEY 旧 KSK ZSK 旧 KSK ZSK 新 KSK ZSK 新 KSK ZSK 子 ゾーン DNSKEYの RRSIG 旧 KSKでの 署 名 ZSKでの 署 名 旧 KSKでの 署 名 ZSKでの 署 名 新 KSKでの 署 名 ZSKでの 署 名 新 KSKでの 署 名 ZSKでの 署 名 時 間 の 流 れ 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 61
KSKの 更 新 メリット デメリット 二 重 署 名 法 親 ゾーンとのDSのやり 取 りが1 回 で 済 む ZSKと 違 い 署 名 がDNSKEYにのみ 作 用 するの で ゾーンデータの 肥 大 化 は 問 題 にならない 事 前 公 開 法 親 ゾーンとDSのやり 取 りが2 回 必 要 となる 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 62
ゾーンの 再 署 名 署 名 の 有 効 期 限 が 長 すぎるのは 望 ましくない 万 が 一 の 事 態 ( 鍵 の 盗 難 等 )において 速 やかに 対 応 するためには 署 名 期 間 は 短 いほうがよい 有 効 期 限 が 数 分 の 署 名 も 技 術 的 には 可 能 休 日 等 の 対 応 を 考 慮 すると 現 実 性 に 欠 ける 署 名 の 有 効 期 限 に 達 する 前 に 署 名 の 有 効 期 限 を 更 新 するために ゾーン 全 体 の 再 署 名 が 必 要 となる DNSSECでは 再 署 名 を 行 ってゾーン 情 報 を 定 期 的 に 更 新 する 必 要 がある 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 63
NSEC3 固 有 の 問 題 NSEC3では 同 じハッシュ 値 を 使 い 続 けると 辞 書 攻 撃 により 秘 匿 している 情 報 が 解 析 され るリスクがある ゾーンの 再 署 名 時 にソルトを 変 更 し ハッシュ 値 を 変 えるのが 望 ましい 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 64
鍵 の 更 新 間 隔 運 用 面 での 鍵 の 更 新 間 隔 の 実 用 的 な 値 KSK 13ヵ 月 12ヶ 月 で 鍵 更 新 ZSK ~3ヵ 月 KSKの 更 新 はDSの 登 録 変 更 作 業 を 伴 うため ドメイン 名 登 録 の 更 新 にあわせるのが 現 実 的 ZSKはKSKのような 制 約 は 無 く ゾーン 内 で 処 理 が 完 結 するため 運 用 面 での 負 荷 を 考 慮 しながら 期 間 を 短 めに 設 定 する 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 65
TTLと 署 名 の 期 間 RRのTTLが 署 名 期 間 より 長 かったら キャッシュしたRRの 署 名 が 無 効 になる 事 態 が 発 生 する 署 名 の 有 効 期 間 はTTLより 長 い 必 要 がある SOAのExpireが 署 名 期 間 より 長 かったら セカンダリサーバでゾーンが 有 効 にも 関 わらず 署 名 が 無 効 になる 事 態 が 発 生 する 可 能 性 がある SOAのExpireは 署 名 期 間 より 短 い 必 要 がある 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 66
鍵 管 理 KSK 秘 密 鍵 が 漏 洩 すると 問 題 KSKの 更 新 は DSの 登 録 変 更 作 業 が 必 要 なた め 対 処 に 時 間 がかかる ZSKはKSKに 比 べリスクは 小 さい 万 が 一 漏 洩 した 場 合 でも KSKに 比 べ 短 時 間 で 更 新 できる いずれにしても 鍵 管 理 は 十 分 厳 重 に 行 う 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 67
BINDキャッシュサーバでの DNSSECの 設 定 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 68
古 くて 新 しいDNSSEC RFC 発 行 年 概 要 対 応 BIND 2065 1997 年 DNSSEC 最 初 のRFC 2535 1999 年 RFC 2065の 改 良 版 9.2 系 まで 3658 2003 年 DS RRの 登 場 9.3 系 から 4033 4034 4035 2005 年 現 行 のDNSSEC 方 式 の 基 本 (NSEC 方 式 ) 9.3 系 から 5011 2007 年 トラストアンカーの 自 動 更 新 9.7 系 から 5155 2008 年 NSEC3 方 式 (NSEC 方 式 の 改 良 ) 9.6 系 から 5702 2009 年 DNSKEY,RRSIGのSHA-2 対 応 9.7 系 から 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 69
BINDキャッシュサーバでの DNSSECの 設 定 バージョンは9.7.2-P3 以 降 を 使 う JPやrootゾーンではアルゴリズムに RSASHA256を 採 用 している 通 常 のキャッシュサーバの 設 定 に 署 名 の 検 証 を 行 う 設 定 を 追 加 する named.conf の options 部 分 以 下 を 追 加 する dnssec-enable yes; dnssec-validation yes; 署 名 の 検 証 に 必 要 な 情 報 を 登 録 する トラストアンカーの 登 録 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 70
署 名 の 検 証 を 行 うオプション dnssec-enable DNSSEC 対 応 にするかどうかのオプション BIND 9.4 以 降 のデフォルト yes dnssec-validation DNSSECの 署 名 検 証 を 行 うかどうかのオプション BIND 9.4のデフォルト no BIND 9.5 以 降 のデフォルト yes options { };... dnssec-enable yes; // BIND 9.7 であれば dnssec-validatioin yes; // 設 定 しなくてもよい... 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 71
rootゾーンの 公 開 鍵 rootゾーンの 公 開 鍵 関 連 情 報 の 入 手 先 https://data.iana.org/root-anchors/ rootゾーンの 公 開 鍵 https://data.iana.org/root-anchors/root-anchors.xml ただしDS 情 報 のみ BINDで 設 定 するトラストアンカーはKSK 公 開 鍵 KSK 公 開 鍵 を 入 手 する 必 要 がある( 後 述 ) DNSSEC Trust Anchor Publication for the Root Zone https://data.iana.org/root-anchors/draft-icann-dnssectrust-anchor.html 他 に PGPの 公 開 鍵 署 名 等 がある 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 72
root-anchors.xmlの 内 容 <?xml version="1.0" encoding="utf-8"?> <TrustAnchor id="ad42165f-3b1a-4778-8f42-d34a1d41fd93 source="http://data.iana.org/root-anchors/root-anchors.xml"> <Zone>.</Zone> <KeyDigest id="kjqmt7v validfrom="2010-07-15t00:00:00+00:00"> <KeyTag>19036</KeyTag> <Algorithm>8</Algorithm> <DigestType>2</DigestType> <Digest> 49AAC11D7B6F6446702E54A1607371607A1A41855200FD2CE1CDDE32F24E8FB5 </Digest> </KeyDigest> </TrustAnchor> 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 73
rootのksk 公 開 鍵 の 入 手 rootゾーンのksk 公 開 鍵 を 入 手 $ dig. dnskey grep -w 257 > root-ksk.key 257は 現 在 有 効 なKSK (ZSKは256) KSK 公 開 鍵 からDSを 生 成 $ dnssec-dsfromkey -2 -f root-ksk.key.. IN DS 19036 8 2 49AAC11D< 中 略 >F24E8FB5 結 果 をroot-anchors.xmlと 比 較 し 差 異 の 無 いことを 確 認 する 注 意 : httpsを 信 頼 の 基 点 として 作 業 PGP 鍵 で 検 証 するのが 望 ましい 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 74
BINDへトラストアンカーの 登 録 named.conf にトラストアンカーを 登 録 root-ksk.keyから <TTL> IN DNSKEY を 除 いて trusted-keysに 設 定 trusted-keysの 書 式 ドメイン 名 数 字 数 字 数 字 公 開 鍵 公 開 鍵 は で 囲 み 空 白 TAB 改 行 等 があってもよい 複 数 ドメイン 名 の 設 定 が 可 能 trusted-keys {. 257 3 8 AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQ bsew0o8gccjffvqutf6v58fljwbd0yi0ezracqqbgczh < 中 略 > LmqrAmRLKBP1dfwhYB4N7knNnulqQxA+Uk1ihz0== ; }; 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 75
キャッシュサーバの 動 作 確 認 named.conf の 変 更 が 終 わったら キャッシュ サーバ 用 のnamedを 再 起 動 する digコマンドでdnssec 対 応 ゾーンの 確 認. の SOAが 確 実 代 表 的 なDNSSEC 対 応 のドメイン 名 www.pir.org, www.isc.org, www.iana.org www.iis.se 等 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 76
キャッシュサーバへのdigの 結 果 $ dig @127.0.0.1 +dnssec www.isc.org a ; <<>> DiG 9.7.1-P2 <<>> @127.0.0.1 +dnssec www.isc.org a ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7369 ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 5, ADDITIONAL: 13 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags: do; udp: 4096 ;; QUESTION SECTION: ;www.isc.org. IN A ;; ANSWER SECTION: www.isc.org. 455 IN A 149.20.64.42 www.isc.org. 455 IN RRSIG A 5 3 600 20101021233649 20100921233649 31518 isc.org. gh5y8vwkqwdvgpkk< 略 > ;; AUTHORITY SECTION: isc.org. 43054 IN NS ns.isc.afilias-nst.info. isc.org. 43054 IN NS sfba.sns-pb.isc.org. isc.org. 43054 IN NS ord.sns-pb.isc.org. isc.org. 43054 IN NS ams.sns-pb.isc.org. isc.org. 43054 IN RRSIG NS 5 2 43200 20101021233649 20100921233649 31518 isc.org. G+qmwMI9fPrMV < 略 > < 以 下 略 > 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 77
digの 結 果 のflagsフィールド flags: qr rd ra ad; DNSにおけるさまざまな 状 態 を 表 すフラグ DNSSECに 関 係 するflag ad: Authentic Data 署 名 が 検 証 できた 正 しいデータであることを 示 す cd: Checking Disabled 署 名 のチェックを 行 っていない 状 態 を 示 す 署 名 の 検 証 を 行 わない 場 合 は+cdを 指 定 $ dig @127.0.0.1 +cd www.isc.org a flags: qr rd ra cd; BINDはtrusted-keysを 設 定 すると 内 部 では 必 ず 署 名 の 検 証 を 行 う 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 78
DNSSEC 検 証 の 失 敗 トラストアンカーの 設 定 を 誤 った 場 合 $ dig +dnssec. soa status: SERVFAIL 答 えが 得 られない 署 名 検 証 に 失 敗 した 場 合 名 前 解 決 不 能 DNSSEC 最 大 のリスク 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 79
トラストアンカーの 自 動 更 新 rootのkskが 更 新 された 場 合 BIND 等 で 設 定 しているトラストアンカーの 更 新 が 必 要 定 期 的 な 更 新 作 業 を 要 求 される トラストアンカーの 自 動 更 新 機 能 RFC 5011 対 応 -BIND 9.7の 新 機 能 の 一 つ rootのksk 管 理 は RFC 5011に 準 拠 RFC 5011 対 応 の 設 定 を 行 えば トラストアン カーの 更 新 作 業 を 自 動 化 できる 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 80
RFC 5011 対 応 の 設 定 (1/2) managed-keysにトラストアンカーを 設 定 trusted-keysの 替 わりにmanaged-keysを 使 う 別 ドメイン 名 であれば 併 用 も 可 能 managed-keysの 書 式 ドメイン 名 initial-key 数 字 数 字 数 字 公 開 鍵 initial-key を 追 加 しあとはtrusted-keysと 同 じ 複 数 ドメイン 名 の 設 定 が 可 能 managed-keys {. initial-key 257 3 8 AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQ bsew0o8gccjffvqutf6v58fljwbd0yi0ezracqqbgczh < 中 略 > LmqrAmRLKBP1dfwhYB4N7knNnulqQxA+Uk1ihz0== ; }; 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 81
RFC 5011 対 応 の 設 定 (2/2) managed-keysでは 2つのファイルがワーキング ディレクトリに 作 成 される managed-keys.bind KSKの 履 歴 managed-keys.bind.jnl 上 記 のジャーナルファイル ディレクトリはmanaged-keys-directoryで 変 更 可 ディレクトリのパーミッションを namedの 実 行 権 限 で 読 み 書 きできるように 設 定 する $ ps auxc fgrep named bind 932 0.0 0.8 48576 31844?? Ss 29Jul10 2:14.61 named $ ls -ld /var/run/named drwxr-xr-x 2 bind wheel 512 Jul 30 12:24 /var/run/named 運 用 事 例 が 少 ないため RFC 5011の 過 信 は 禁 物 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 82
鍵 生 成 と 署 名 作 業 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 83
DNSSEC 鍵 の 作 成 : dnssec-keygen -a 鍵 生 成 アルゴリズムの 指 定 RSASHA1 NSEC3RSASHA1 RSASHA256 RSASHA512などを 指 定 する -b ビット 長 ZSK: 上 記 アルゴリズムの 場 合 1024ビット 以 上 KSK: 上 記 アルゴリズムの 場 合 2048ビット 以 上 -f ksk KSKを 作 成 する 場 合 に 指 定 最 後 に 名 前 (ゾーン 名 )を 指 定 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 84
KSKとZSKの 生 成 ZSKの 生 成 # dnssec-keygen -a RSASHA256 -b 1024 example.jp > zsk-example.jp 鍵 のファイル 名 を 表 示 するので その 結 果 を 保 存 する Kexample.jp.+008+52863 3 桁 の 数 字 はアルゴリズム 5 桁 は 識 別 子 (ID) 1 組 の 鍵 ファイルができる Kexample.jp.+008+52863.key Kexample.jp.+008+52863.private KSKの 生 成 # dnssec-keygen -a RSASHA256 -b 2048 f ksk example.jp > ksk-example.jp 公 開 鍵 秘 密 鍵 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 85
鍵 ファイルの 中 身 の 例 ( 秘 密 鍵 ) Private-key-format: v1.3 Algorithm: 8 (RSASHA256) Modulus: yrdbkqrgezuj6gab2rd4sznfchb9sqmu9rq/bhhts7fhxt90ey7cg2rlrh28l4ay4tfwgskbn4bpqhvwxvt69zqu4jbuy7gg7j2rs +Eb+WYGUAyUWQMQ9MvPGOTD0tImE4m5kjUTnoziS/GFDSMj8GXs4rHm1rUWyClf9lv2Ru0= PublicExponent: AQAB PrivateExponent: rhnf6bini7rsgla45fzxx0wynb2s1pxalvrncsvwtoz3jhd5p6d33pw/agmnx9f/tidnciq6l4yx+ttyssiyfemvg4trzcx91ry5j VVxBL91kHPqTiNwdrdM5mcKE3835SFK/XEInPYHErAGi2Gz3bQGlk2dPGjQG6ai5ua1x9E= Prime1: 9Gy+ms2q0EYpHVb4drHR25l4HzC2xpdgH77/0pwtftZSg7NZixb2YI9ULRy38y+57YtZ2AZ4s51QzgGHPt2xUw== Prime2: 0pZZH5hPkkjNFVTBKQc0nve3Pd/FnS7GmlOhq2NhXQEYexRkYt0R2VYfV+GYgszuooOXqjRWi0eI1G/uMfPevw== Exponent1: lxlbojz8ne0xnn3r5rmzzbkgz2hxod+r9y07u7yyxjilwcdlci/ikpimy7g7dmel/2nbj0egtqvifpxw1qf55w== Exponent2: CxRN7BOfXBrob07eOsJeSl7ODTtQskxbtpLf1pyL6tC78P3JqknnPoABdiYwV/FgPLyfphzK0NkaodKhvY8PEQ== Coefficient: 8q2G3F5fagdIvejnm6Jt7kXD5EYI3LXOVGwDYgZOLH6vPF/Eh5952Q9ivSr7qNqyjWzqMEP1fpET4uhRLizy5Q== Created: 20101124065848 Publish: 20101124065848 Activate: 20101124065848 BIND 9.7 系 のdnssec-keygenで 作 成 9.6 系 まではformatがv1.2で v1.2はbind 9.7 系 のツー ルでも 扱 えるが v1.3は9.7 系 ( 以 降 )のツールのみ 対 応 RSASHA256やRSASHA512はBIND 9.6.2 以 降 で 対 応 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 86
鍵 ファイルの 中 身 の 例 ( 公 開 鍵 ) ; This is a zone-signing key, keyid 52863, for example.jp. ; Created: 20101124065848 (Wed Nov 24 15:58:48 2010) ; Publish: 20101124065848 (Wed Nov 24 15:58:48 2010) ; Activate: 20101124065848 (Wed Nov 24 15:58:48 2010) example.jp. IN DNSKEY 256 3 8 AwEAAckQwSqkRhGVI+oAAdq3eEszX3B2/bEDFPa6vwR4U7OxR8bfdHsu 3Btqy64dvJeAGOLRVhkigTeGz0IVVl70+vc6ruIwbsuxoO49kbPhG/lm BlAMlFkDEPTLzxjkw9LSJhOJuZI1E56M4kvxhQ0jI/Bl7OKx5ta1Fsgp X/Zb9kbt BIND 9.7 系 のdnssec-keygenで 作 成 ; のコメント 部 については 後 述 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 87
dnssec-keygenの 注 意 点 KSKとZSKの 区 別 に 注 意 する 2 組 の 鍵 ファイル( 計 4 個 )ができ 見 た 目 での 識 別 は 困 難 実 行 時 に 鍵 ファイル 名 を 保 存 すると 良 い # dnssec-keygen f ksk.. > ksk-... # dnssec-keygen... > zsk-... 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 88
ゾーンへの 署 名 : dnssec-signzone 署 名 対 象 ゾーンファイル ZSK KSKを 準 備 同 じディレクトリに 用 意 し ゾーンファイルは ゾーン 名 とファイル 名 を 一 致 させると 便 利 example.jp Kexample.jp.+008+56449.key Kexample.jp.+008+56449.private Kexample.jp.+008+52863.key Kexample.jp.+008+52863.private KSK 公 開 鍵 KSK 秘 密 鍵 ZSK 公 開 鍵 ZSK 秘 密 鍵 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 89
ゾーンへの 署 名 ( 続 き) ゾーンファイルにKSK ZSKの 公 開 鍵 を 登 録 公 開 鍵 をまとめたファイルを 用 意 し $INCLUDE 文 を 利 用 してゾーンファイルから 参 照 する # cat `cat ksk-example.jp`.key `cat zsk-example.jp`.key > example.jp.keys ;ゾーンファイル 中 でkeyファイルを 参 照 $INCLUDE example.jp.keys SOAシリアル 値 の 管 理 は dnssec-signzone の -N オプションにまかせるのがベター 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 90
署 名 前 のゾーンファイル example.jp $TTL 1D $INCLUDE example.jp.keys @ IN SOA ns root ( 1 ; Serial 10800 ; Refresh 3600 ; Retry 3600000 ; Expire 1800 ) ; Minimum TTL NS ns MX 10 mail ; ns A 192.0.2.17 www A 192.0.2.18 mail A 192.0.2.19 sub1 NS ns.sub1 ns.sub1 A 192.0.2.49 sec3 NS ns.sec3 ns.sec3 A 192.0.2.65 $INCLUDE../sec3.example.jp/dsset-sec3.example.jp. sub3 NS ns.sub3 ns.sub3 A 192.0.2.81 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 91
署 名 の 実 行 dnssec-signzone -H < 繰 り 返 し 回 数 > -3 <salt> -N <SOAのシリアル 値 > -k <KSK> <ゾーンファイル> <ZSK> # dnssec-signzone H 3-3 123ABC N unixtime k `cat ksk-example.jp` example.jp `cat zsk-example.jp` -3はNSEC3 方 式 を 選 びソルトを 指 定 するオプション 秘 密 鍵 を 明 示 的 に 指 定 する 必 要 は 無 い 出 力 ファイル example.jp.signed 署 名 済 みのゾーン dsset-example.jp. ゾーンへのDS RR 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 92
署 名 済 みのゾーンファイル( 抜 粋 ) ; File written on Wed Nov 24 16:07:14 2010 ; dnssec_signzone version 9.7.2-P2 example.jp. 86400 IN SOA ns.example.jp. root.example.jp. ( 1290582434 ; serial < 中 略 > ) 86400 RRSIG SOA 8 2 86400 20101224060714 ( 20101124060714 52863 example.jp. WcEe7OoXanQAPuS8pTwYJ1wLRFkC75/2kwii < 中 略 > 8NmbrA3wlhoCqwEBAeQX+ZhKZtQ= ) 86400 NS ns.example.jp. 86400 RRSIG NS 8 2 86400 20101224060714 ( 20101124060714 52863 example.jp. blctvbbvftz6nbtszvj8yn0g0pymbtyfzevd < 中 略 > Q2kGOoVtpxJoG69hOod036w+Yj8= ) 86400 MX 10 mail.example.jp. 86400 RRSIG MX 8 2 86400 20101224060714 ( 20101124060714 52863 example.jp. OiKiNz7CGAnBXdgfaUm23+/VOGaLfgMk6RYB < 中 略 > 0D3RCXYCUoGtKdCswIM77w0U2GE= ) 86400 DNSKEY 256 3 8 ( AwEAAckQwSqkRhGVI+oAAdq3eEszX3B2/bED < 中 略 > 4kvxhQ0jI/Bl7OKx5ta1FsgpX/Zb9kbt ) ; key id = 52863 86400 DNSKEY 257 3 8 ( AwEAAauHCuMQzCBUaaQLNf/FPRGqcPupOdYU < 中 略 > WnegM3YXJyvpSS0gZ9ykoo1Reqa/94XL9HCl vizuhkdczjyo/0ekdgbt5iu= ) ; key id = 56449 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 93
DSの 登 録 dsset-example.jpの 内 容 を 親 ドメインに 登 録 子 ゾーンの 署 名 時 に 生 成 されたもの 内 容 の 例 example.jp. IN DS 56449 8 1 6EFE< 中 略 >4BE example.jp. IN DS 56449 8 2 7D29< 中 略 >F32852 DE98ED8C DSレコードはKSKの 公 開 鍵 からも 生 成 可 能 dnssec-dsfromkeyコマンドを 使 用 する 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 94
BIND 権 威 サーバでの DNSSECの 設 定 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 95
BINDの 設 定 : 権 威 サーバ(1/2) DNSSECを 有 効 にする named.conf の options 部 分 に dnssec-enable yes; を 追 加 options { < 省 略 > dnssec-enable yes; // BIND 9.4 以 降 は // デフォルトが yes; < 省 略 > }; 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 96
BINDの 設 定 : 権 威 サーバ(2/2) ゾーンファイルを 署 名 済 みのものに 変 更 zone "example.jp" { } ; type master ; // file "example.jp.zone" ; file "example.jp.signed" ; namedを 再 起 動 rndc reload 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 97
権 威 サーバの 動 作 確 認 digコマンドでdnssec 対 応 ゾーンの 確 認 # dig +dnssec +norec @127.0.0.1 www.example.jp a +dnssec DNSSECを 有 効 にする 問 合 せ このオプションなしでは 通 常 の(DNSSECでない) ものと 同 じ 結 果 が 返 る +norec 非 再 帰 問 合 せ キャッシュサーバから 権 威 サーバへの 問 合 せと 同 じ 形 式 の 問 合 せ 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 98
権 威 サーバへのdigの 結 果 (1/2) $ dig @127.0.0.1 +norec www.example.jp a ; <<>> DiG 9.7.2-P2 <<>> @127.0.0.1 +norec www.example.jp ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59143 ;; flags: qr aa ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION SECTION: ;www.example.jp. IN A ;; ANSWER SECTION: www.example.jp. 86400 IN A 192.0.2.18 ;; AUTHORITY SECTION: example.jp. 86400 IN NS ns.example.jp. ;; ADDITIONAL SECTION: ns.example.jp. 86400 IN A 192.0.2.17 ;; Query time: 0 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Wed Nov 24 16:23:02 2010 ;; MSG SIZE rcvd: 81 +dnssec 無 しの digの 応 答 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 99
権 威 サーバへのdigの 結 果 (2/2) $ dig @127.0.0.1 +dnssec +norec www.example.jp ; <<>> DiG 9.7.2-P2 <<>> @127.0.0.1 +dnssec +norec www.example.jp ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21018 ;; flags: qr aa ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 3 +dnssecありでは RRSIG RR を 加 えたものが 返 る ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags: do; udp: 4096 ;; QUESTION SECTION: ;www.example.jp. IN A ;; ANSWER SECTION: www.example.jp. 86400 IN A 192.0.2.18 www.example.jp. 86400 IN RRSIG A 8 3 86400 20101224060714 20101124060714 52863 example.jp. r8ci/2zmc5fctlie6pjzoai0oo0mybwzir3ykfpdpkmgwxaf1phccczk ogzxfdvw1pmkp3hc+tshzthw+fucy1encspzl5n1rvl39tsp83zhfgz6 PKH7FsxGZUFtwa0cyILkcKRF7BPvrITCk+y0oWivzDr1LHGR+5F6hx1p 4ac= ;; AUTHORITY SECTION: example.jp. 86400 IN NS ns.example.jp. example.jp. 86400 IN RRSIG NS 8 2 86400 20101224060714 20101124060714 52863 example.jp. blctvbbvftz6nbtszvj8yn0g0pymbtyfzevdwpl0wymd6zbdix3zgxsv EymEaWi8CDzmnbQqZ5VM5dCAe5IaddZqHgAdeJJ2MRZCu2OxDdCjwEne pnnfnu0txcvyp6dipq61mcc+2lzhlakzq2kgoovtpxjog69hood036w+ Yj8= ;; ADDITIONAL SECTION: ns.example.jp. 86400 IN A 192.0.2.17 ns.example.jp. 86400 IN RRSIG A 8 3 86400 20101224060714 20101124060714 52863 example.jp. vgod3t5bklnteozwdexjkczaexfblb+qfmzzz3p7+jufa7/1njqgvwwo dqtglbznfutl+7lediojnf9zdajjji7dobv10nb3wy/1qmzhw3hambcm 64DgbN/004j1HUORp30UgB59/Esb8HFARQQcskRAxa7iq1gdTm5dH5oa PB0= ;; Query time: 0 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Wed Nov 24 16:28:36 2010 ;; MSG SIZE rcvd: 602 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 100
DO(DNSSEC OK)ビット dig の +dnssec オプション 問 合 せでEDNS0を 使 い DOビットをONにすると 共 に512バイトを 超 えるサイズのDNSパケットを 受 けられることを 宣 言 する DNSSECではEDNS0のサポートは 必 須 DOビット DNSSEC OK DNSSECの 応 答 を 受 ける DNSSECを 要 求 する 権 威 サーバは 問 合 せのDOビットがONであれ ば DNSSECの 情 報 を 含 んだ 応 答 を 返 す 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 101
スマート 署 名 (Smart signing) BIND 9.7での 新 機 能 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 102
DNSSEC for Humans BIND 9.7から 導 入 された DNSSECの 設 定 をより 簡 単 に 行 う 一 連 の 機 能 スマート 署 名 (Smart signing) 全 自 動 ゾーン 署 名 ( 後 述 ) RFC 5011への 対 応 Dynamic Update 設 定 の 簡 素 化 DLVの 自 動 設 定 スマート 署 名 KSKやZSKの 鍵 管 理 の 自 動 化 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 103
スマート 署 名 example.jpをnsec3 方 式 で 署 名 # ls example.jp # dnssec-keygen -3 example.jp Generating key pair...++++++...++++++ Kexample.jp.+007+31760 # dnssec-keygen -3 -f ksk example.jp Generating key pair...+++...+++ Kexample.jp.+007+22740 # dnssec-signzone -3 aabbcc -S example.jp Fetching ZSK 31760/NSEC3RSASHA1 from key repository. Fetching KSK 22740/NSEC3RSASHA1 from key repository. Verifying the zone using the following algorithms: NSEC3RSASHA1. Zone signing complete: Algorithm: NSEC3RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked ZSKs: 1 active, 0 stand-by, 0 revoked example.jp.signed # ls Kexample.jp.+007+22740.key dsset-example.jp. Kexample.jp.+007+22740.private example.jp Kexample.jp.+007+31760.key example.jp.signed Kexample.jp.+007+31760.private 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 104
スマート 署 名 dnssec-signzoneの-sオプション 鍵 情 報 を 自 動 的 に 取 り 込 むため ゾーンファイルは 通 常 のゾーンファイル( 非 DNSSEC)のままでよい dnssec-keygenの 便 利 なデフォルト 値 アルゴリズム RSASHA1-3 を 指 定 した 場 合 NSEC3RSASHA1 ZSKのbit 長 1024 bit KSKのbit 長 2048 bit -K 鍵 を 保 存 するディレクトリ(Key repository)を 指 定 するオプション 他 の 鍵 関 連 コマンドでも 指 定 できる 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 105
日 付 情 報 を 指 定 するオプション dnssec-keygenで 鍵 生 成 時 に 指 定 -P ゾーンへの 出 力 時 刻 (Publicatijon date) -R 鍵 の 破 棄 時 刻 (Revocation date) -A 署 名 鍵 としての 使 用 開 始 時 刻 (Activation date) -I 署 名 鍵 使 用 終 了 時 刻 (Inactivation date) -D ゾーンからの 削 除 時 刻 (Deletion date) -Pと-Aのデフォルトは now ( 現 在 時 刻 ) 絶 対 時 刻 : YYYYMMDD 又 は YYYYMMDDHHMMSS 相 対 時 刻 : + 数 字 又 は - 数 字 y, mo, w, d, h, or mi ( 年 月 週 日 時 間 分 )を 指 定 可 能 dnssec-settime - 日 付 情 報 を 変 更 するコマンド 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 106
日 付 を 指 定 して 鍵 を 作 成 (1/2) # mkdir keys 1 # dnssec-keygen -K keys -f ksk example.jp 2 Kexample.jp.+005+45154 # dnssec-keygen -K keys -P now -A now -D +31d example.jp 3 Kexample.jp.+005+20076 # dnssec-keygen -K keys -P now -A +30d -D +61d example.jp 4 Kexample.jp.+005+45870 # dnssec-signzone -K keys N unixtime -S example.jp 5 Fetching KSK 45154/RSASHA1 from key repository. Fetching ZSK 20076/RSASHA1 from key repository. Fetching ZSK 45870/RSASHA1 from key repository. Verifying the zone using the following algorithms: RSASHA1. Zone signing complete: Algorithm: RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked ZSKs: 1 active, 1 stand-by, 0 revoked example.jp.signed # ls -F 6 dsset-example.jp. example.jp.signed example.jp keys/ 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 107
日 付 を 指 定 して 鍵 を 作 成 (2/2) 1 鍵 用 のディレクトリ(keys)を 作 成 2 KSKを 作 成 3 最 初 に 使 うZSKを 作 成 すぐに 署 名 に 使 用 し 31 日 後 にゾーンから 削 除 4 2 番 目 に 使 うZSKを 作 成 すぐにゾーンに 出 力 30 日 後 に 署 名 に 使 用 5 ゾーンへの 署 名 KSKは1 個 ZSKは1 個 が 署 名 用 1 個 が 事 前 公 開 用 この 例 ではNSEC 方 式 を 採 用 し SOAのシリアルは unixtimeを 使 っている 6 鍵 はkeysディレクトリ 内 にある 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 108
署 名 と 鍵 更 新 の 自 動 化 cron 等 を 利 用 する 定 期 的 に dnssec-keygen で -P, -A, -I, -D を 適 正 に 設 定 したZSKを 作 成 定 期 的 に dnssec-signzone -S で 再 署 名 鍵 更 新 再 署 名 の 自 動 化 が 可 能 になる KSKについても 同 様 の 処 理 が 可 能 但 しDSの 更 新 には 親 ゾーンとのやり 取 りが 必 要 なため 完 全 な 自 動 化 は 難 しい 注 意 : dnssec-keygenで-aを 指 定 する 場 合 必 ず-Pも 指 定 する BIND 9.7.2-P3 時 点 での 不 具 合 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 109
全 自 動 ゾーン 署 名 BIND 9.7での 新 機 能 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 110
全 自 動 ゾーン 署 名 namedがゾーンへの 署 名 鍵 更 新 を 行 う dnssec-signzoneは 利 用 しない 鍵 にはスマート 署 名 の 場 合 と 同 様 日 付 情 報 を 設 定 する ゾーン 毎 に 次 のいずれかを 設 定 する auto-dnssec allow; 署 名 等 はrndcコマンド 使 って で 別 途 制 御 する( 定 期 的 な 再 署 名 は 行 われる) auto-dnssec maintain; 鍵 ファイルに 記 録 されて いる 日 付 情 報 に 基 づいて 完 全 に 自 動 化 する 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 111
全 自 動 ゾーン 署 名 設 定 の 例 options {... directory "/var/named"; session-keyfile "/var/named/session.key";... }; zone { type master; file "master/example.jp"; key-directory "master/keys"; update-policy local; auto-dnssec maintain; }; 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 112
全 自 動 ゾーン 署 名 設 定 (1/2) session-keyfile ダイナミックアップデートのための 鍵 ファイルの 指 定 指 定 しない 場 合 コンパイル 時 のデフォルトが 適 用 される key-directory スマート 署 名 の-Kで 指 定 するディレクトリと 同 じもの update-policy ダイナミックアップデートのポリシーの 設 定 で ここでは 単 純 な local を 設 定 必 要 に 応 じて 他 のポリシーも 設 定 できる 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 113
全 自 動 ゾーン 署 名 設 定 (2/2) ゾーンファイルは 非 DNSSECのものでよい rndcコマンドが 正 しく 動 作 するよう 設 定 する ゾーンファイル ゾーンファイルのあるディレク トリなどは namedプロセスの 権 限 で 書 き 換 え 可 能 なパーミッションに 設 定 必 要 に 応 じてnamedがファイルを 作 成 したり 書 き 換 えたりするため 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 114
auto-dnssec maintain; named 起 動 後 鍵 ディレクトリ 内 の 鍵 ファイルの 日 付 に 応 じてゾーンに 署 名 を 行 う dnssec-signzone -Sと 同 様 の 動 作 となる KSKとZSKをNSEC3 用 に 設 定 しても デフォルトは NSECとなる(DNSSECとしては 問 題 無 い) NSEC3で 運 用 するための 二 つの 方 法 ダイナミックアップデート(nsupdateコマンド)を 使 い NSEC3PARAMレコードを 追 加 する 追 加 直 後 にNSEC3 方 式 に 切 り 替 わる 予 めゾーンファイルにNSEC3PARAMレコードを 登 録 起 動 直 後 の 最 初 の 署 名 でNSEC3 方 式 になる 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 115
nsupdateコマンド 稼 働 中 のゾーンデータに 動 的 にRRの 追 加 削 除 (ダ イナミックアップデート)を 行 うコマンド NSEC3PARAM RRを 追 加 する 例 # nsupdate -k /var/named/session.key -l > update add example.jp 0 nsec3param 1 0 5 AABBCCDD > send > quit # -l (エル)でローカルのnamedを 指 定 更 新 情 報 はジャーナルファイルに 記 録 される この 例 では /var/named/master/example.jp.jnl になる 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 116
全 自 動 ゾーン 署 名 時 の ゾーン 情 報 の 変 更 ゾーンファイルはnamedが 直 接 管 理 するため 単 純 には 編 集 できない 解 1: ダイナミックアップデートを 利 用 する nsupdateコマンドを 利 用 して RRの 追 加 削 除 変 更 を 行 う 解 2: 一 時 的 にnamedがゾーンファイルを 更 新 するのを 停 止 させ 通 常 通 り 編 集 し named のゾーンファイルの 更 新 を 再 開 する 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 117
全 自 動 ゾーン 署 名 の ゾーンファイルの 編 集 一 時 的 にゾーンファイルの 更 新 を 停 止 する # rndc freeze example.jp この 時 点 でnamedが 保 持 しているゾーン 情 報 がすべて example.jpのゾーンファイルに 反 映 される 編 集 する # vi example.jp RRSIGなどが 追 加 されているが 気 にしなくて 良 い ゾーンファイルの 更 新 を 再 開 する # rndc thaw example.jp 再 開 した 時 点 でnamedがゾーンデータを 読 み 込 み 再 署 名 が 行 われる 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 118
鍵 の 追 加 と 署 名 ZSKの 追 加 (KSKも 同 様 ) dnssec-keygenで 日 付 情 報 を 適 正 に 指 定 したZSKを 生 成 し 鍵 のディレクトリに 用 意 する 鍵 ファイルの 追 加 後 rndcコマンドで 鍵 情 報 の 変 更 を namedに 通 知 # rndc loadkeys example.jp dnssec-settimeで 鍵 の 日 付 情 報 を 変 更 した 場 合 も 同 様 の 処 理 が 必 要 DNSSEC 運 用 に 必 須 の 定 期 的 な 再 署 名 は 自 動 的 に 行 われる なんらかの 理 由 により 署 名 を 行 いたい 場 合 # rndc sign example.jp 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 119
全 自 動 ゾーン 署 名 の 注 意 点 DS RRの 作 成 dnssec-signzoneを 利 用 しないため DS RRは KSKの 鍵 ファイルから 作 成 する 必 要 がある # dnssec-dsfromkey Kexample.jp.+005+35251.key > dsset-example.jp. 長 期 間 運 用 を 続 けると 鍵 ファイルが 増 える 使 い 終 わった 鍵 ファイルを 削 除 する 仕 組 みを 別 途 用 意 する 必 要 がある スマート 署 名 の 場 合 も 同 じ 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 120
運 用 面 から 見 た 全 自 動 ゾーン 署 名 比 較 的 運 用 が 単 純 化 できる ダイナミックアップデートを 使 う 場 合 は 差 分 情 報 のみ 署 名 されるため ゾーン 情 報 変 更 時 の 負 荷 が 軽 い ゾーンファイル 内 にRRSIGやNSEC 等 が 自 動 的 に 追 加 されるため ゾーンファイルの 更 新 履 歴 を 記 録 しにくい 運 用 実 績 があまり 無 いためトラブルシュート に 対 する 不 安 が 残 る 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 121
運 用 面 から 見 たスマート 署 名 ゾーンファイルの 変 更 履 歴 はとりやすい 署 名 完 了 後 のゾーンファイルをnamedに 読 み 込 ませるため ある 程 度 確 実 な 運 用 ができる dnssec-signzoneには 差 分 署 名 の 機 能 が 無 いため 大 きなゾーンファイルに 対 しては ゾーン 変 更 時 の 署 名 の 負 荷 が 大 きい 但 しDNSSECの 運 用 では 定 期 的 な 再 署 名 が 必 要 であり 再 署 名 時 は 全 署 名 となるため スマー ト 署 名 だから 問 題 になるものではない 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 122
DNSSEC 化 による DNSデータの 変 化 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 123
DNSSEC 有 無 による www.nic.seの 検 索 DNSSEC 無 し $ dig +norec @a.ns.se www.nic.se a grep SIZE ;; MSG SIZE rcvd: 157 ( 親 のNSに 問 合 せ) $ dig +norec @ns.nic.se www.nic.se a grep SIZE ;; MSG SIZE rcvd: 173 ( 自 分 自 身 のNSに 問 合 せ) DNSSEC 有 り $ dig +norec +dnssec @a.ns.se www.nic.se a grep SIZE ;; MSG SIZE rcvd: 414 ( 親 のNSに 問 合 せ) $ dig +norec +dnssec @ns.nic.se www.nic.se a grep SIZE ;; MSG SIZE rcvd: 1180 ( 自 分 自 身 のNSに 問 合 せ) 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 124
権 威 サーバへのdigの 結 果 (1/2) +dnssec 無 しのdigの 応 答 ; <<>> DiG 9.6.1 <<>> +norec @ns.nic.se www.nic.se a ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14346 ;; flags: qr aa; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 4 ;; QUESTION SECTION: ;www.nic.se. IN A ;; ANSWER SECTION: www.nic.se. 60 IN A 212.247.7.218 ;; AUTHORITY SECTION: nic.se. 3600 IN NS ns3.nic.se. nic.se. 3600 IN NS ns2.nic.se. nic.se. 3600 IN NS ns.nic.se. ;; ADDITIONAL SECTION: ns.nic.se. 3600 IN A 212.247.7.228 ns.nic.se. 3600 IN AAAA 2a00:801:f0:53::53 ns2.nic.se. 3600 IN A 194.17.45.54 ns3.nic.se. 60 IN A 212.247.3.83 ;; Query time: 328 msec ;; SERVER: 212.247.7.228#53(212.247.7.228) ;; WHEN: Tue Jul 7 23:39:18 2009 ;; MSG SIZE rcvd: 173 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 125
権 威 サーバへのdigの 結 果 (2/2) +dnssec 有 り 各 RRにRRSIG RRを 加 えたものが 返 る ; <<>> DiG 9.6.1 <<>> +norec +dnssec @ns.nic.se www.nic.se a ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5979 ;; flags: qr aa; QUERY: 1, ANSWER: 2, AUTHORITY: 4, ADDITIONAL: 9 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags: do; udp: 4096 ;; QUESTION SECTION: ;www.nic.se. IN A ;; ANSWER SECTION: www.nic.se. 60 IN A 212.247.7.218 www.nic.se. 60 IN RRSIG A 5 3 60 20090714132001 20090704132001 58670 nic.se. izdsohtb1xthccw2wv4tzjl ;; AUTHORITY SECTION: nic.se. 3600 IN NS ns2.nic.se. nic.se. 3600 IN NS ns.nic.se. nic.se. 3600 IN NS ns3.nic.se. nic.se. 3600 IN RRSIG NS 5 2 3600 20090714132001 20090704132001 58670 nic.se. pkdbuyxlqppnhlu9nazh ;; ADDITIONAL SECTION: ns.nic.se. 3600 IN A 212.247.7.228 ns.nic.se. 3600 IN AAAA 2a00:801:f0:53::53 ns2.nic.se. 3600 IN A 194.17.45.54 ns3.nic.se. 60 IN A 212.247.3.83 ns.nic.se. 3600 IN RRSIG A 5 3 3600 20090714132001 20090704132001 58670 nic.se. GzLodvUOd0oB4qfhhbp8H ns.nic.se. 3600 IN RRSIG AAAA 5 3 3600 20090714132001 20090704132001 58670 nic.se. 0tvno8Vz7Ihm27AZ+H ns2.nic.se. 3600 IN RRSIG A 5 3 3600 20090714132001 20090704132001 58670 nic.se. UcEcYGX59H8bAVGwhfwko ns3.nic.se. 60 IN RRSIG A 5 3 60 20090714132001 20090704132001 58670 nic.se. NRoFeFzAm0hoyKa2ObxjCfB ;; Query time: 382 msec ;; SERVER: 212.247.7.228#53(212.247.7.228) ;; WHEN: Tue Jul 7 23:39:24 2009 ;; MSG SIZE rcvd: 1180 注 意 :RRSIGは 行 の 途 中 まで 残 り 省 略 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 126
DNSSEC 有 無 による 存 在 しないドメイン 名 の 検 索 example.jp +dnssec 無 し $ dig +norec @a.dns.jp example.jp a grep SIZE ;; MSG SIZE rcvd: 75 example.jp +dnssec 有 り $ dig +norec +dnssec @a.dns.jp example.jp a grep SIZE ;; MSG SIZE rcvd: 741 注 意 : example.jpは 存 在 しないドメイン 名 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 127
DNSSEC 対 応 になると 署 名 の 付 加 によりゾーンデータが 大 きくなる 5~10 倍 程 度 ( 鍵 のbit 長 に 依 存 ) プライマリが 署 名 すると セカンダリにもインパクトがある DNS 応 答 パケットのサイズが 大 きくなる DNSトラフィックが 増 える キャッシュサーバのキャッシュ 効 率 が 落 ちる 特 に 存 在 しない 名 前 の 検 索 では 顕 著 DNSSEC 対 応 のキャッシュサーバの 実 装 では DNSSEC 設 定 を 行 わなくてもDOビットはONとなる 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 128
何 故 DOビットは 常 時 ONなのか キャッシュサーバ 自 身 では 署 名 検 証 を 行 わなくても 他 の 署 名 検 証 を 行 うもの(バリデータ)のために 署 名 があれば 対 象 レコードと 同 時 にキャッシュ 1クライアント 2 バリデータ 3 DNSSEC 対 応 キャッシュサーバ 4 DNSSEC 対 応 ゾーンの 権 威 サーバ DNSSECにおいて 署 名 検 証 が 独 立 したモデル 2が 署 名 検 証 を 行 うキャッシュサーバで3をフォワード 先 として 指 定 している 場 合 や 2は 存 在 せず1のクライアン トが 直 接 署 名 検 証 を 行 う 場 合 等 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 129
DOビットが 常 時 ONのインパクト 問 合 せ1 回 あたりの 応 答 パケットが 大 きくなる DNSのトラフィックが 増 加 する キャッシュサーバではキャッシュに 必 要 なメモ リ 量 が 増 える 場 合 によっては キャッシュできるレコード 数 が 減 り キャッシュ 効 率 に 影 響 する 手 元 のDNSSEC 設 定 とは 関 係 なく DNSSECの 普 及 度 によって 影 響 する 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 130
DNSSECのリスク 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 131
DNSSEC 化 による 負 荷 の 増 加 (1) 権 威 DNSサーバ 側 署 名 を 作 成 するための 負 荷 但 し DNSサーバと 別 サーバでの 処 理 が 可 能 署 名 が 負 荷 によるDNSデータを 保 持 するためのメモリ 量 の 増 加 応 答 にRRSIGを 付 加 するための 処 理 キャッシュDNSサーバ 側 署 名 検 証 の 負 荷 但 し 署 名 検 証 は キャッシュ 時 に 行 われ キャッシュ 済 み であれば 改 めて 署 名 検 証 することは 無 い 署 名 データもキャッシュするためメモリ 使 用 量 の 増 加 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 132
DNSSEC 化 による 負 荷 の 増 加 (2) キャッシュ 権 威 DNSサーバ 共 通 の 負 荷 NSEC3 方 式 の 場 合 ハッシュ 計 算 コスト DNSSEC 対 応 によって 同 じサーバであれば 処 理 能 力 は3~5 割 程 度 減 少 する 条 件 によって 大 きく 変 化 する メモリ 使 用 量 は5~10 倍 程 度 増 加 署 名 検 証 する しないとは 独 立 に 起 きる 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 133
DNSSECの 署 名 検 証 の 失 敗 署 名 検 証 に 失 敗 した 場 合 名 前 解 決 不 能 DNSSECは 嘘 を 識 別 する 技 術 正 しいものを 探 し 出 す 技 術 ではない 署 名 検 証 が 失 敗 する 主 な 要 因 鍵 を 取 り 違 えた 上 位 に 登 録 するDSを 誤 った 署 名 開 始 前 の 鍵 を 作 った 時 点 で 上 位 にDSを 登 録 した 署 名 の 有 効 期 間 を 過 ぎた etc... 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 134
サーバ 時 刻 の 同 期 の 必 要 性 署 名 には 有 効 期 間 があり 有 効 期 間 外 は 無 効 有 効 期 間 の 開 始 時 刻 終 了 時 刻 は 絶 対 時 刻 署 名 が 正 しくてもサーバの 時 刻 が 極 端 に 違 うと 署 名 検 証 に 失 敗 する DNSSEC 運 用 を 行 う 場 合 サーバの 時 刻 を 正 しく 合 わせる 必 要 がある NTPなどを 利 用 するのが 確 実 実 用 上 は 分 程 度 まで 合 っていれば 問 題 ない 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 135
DNSSECのまとめ 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 136
従 来 (DNSSEC 無 し)との 比 較 (1) ゾーン 管 理 ( 権 威 サーバ) 側 ZSKとKSKを 作 成 し 管 理 する 必 要 がある ゾーンに 署 名 を 行 う 必 要 がある 定 期 的 に 鍵 の 更 新 を 行 う 必 要 がある 子 ゾーンでは 親 ゾーンにDSの 登 録 作 業 を 行 う 必 要 がある(KSKを 変 更 する 度 に 必 要 ) 鍵 管 理 の 手 間 と ゾーン 署 名 のコストが 増 え るが ある 程 度 は 自 動 化 可 能 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 137
従 来 (DNSSEC 無 し)との 比 較 (2) キャッシュサーバ 側 DNSSEC 機 能 を 有 効 にし トラストアンカーを 設 定 する 必 要 に 応 じてトラストアンカーを 更 新 する 署 名 検 証 による 負 荷 の 増 大 の 懸 念 がある 双 方 でサーバの 時 刻 を 正 しく 設 定 する 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 138
DNSSECまとめ DNSSECは 公 開 鍵 暗 号 技 術 を 利 用 した 署 名 によるDNSデータ 保 護 のしくみ KSKとZSKの2つの 鍵 を 使 う 親 ゾーンにはNSに 加 えてDSを 登 録 する rootゾーンのkskの 公 開 鍵 を 使 って 署 名 を 検 証 定 期 的 な 鍵 の 更 新 と 再 署 名 とが 必 要 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 139
Q and A 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 140
参 考 :DNSSEC 関 連 ツール 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 141
OpenDNSSEC http://www.opendnssec.org/ DNSSECの 運 用 に 必 要 な 作 業 の 多 くを 自 動 化 するツール 集 定 期 的 なゾーンの 再 署 名 鍵 更 新 等 TLDや 大 量 のDNSSEC 対 応 ゾーンを 扱 う 場 合 に 適 している rootゾーン SE UK 等 で 採 用 多 くの 関 連 ソフトウェアを 別 途 インストールす る 必 要 があり インストールに 手 間 がかかる 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 142
DNSSECで 役 立 つWEBサイト DNSSEC Debugger http://dnssec-debugger.verisignlabs.com/ DNSSECの 署 名 が 正 しいかどうかを 確 認 する A DNS visualization tool http://dnsviz.net/ DNSSECの 信 頼 の 連 鎖 を 図 で 表 示 する http://test.dnssec-or-not.org/ 利 用 中 のキャッシュDNSサーバがDNSSEC 対 応 かどうかを 教 えてくれるサイト 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 143
参 考 : 電 子 署 名 とDNSSEC 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 144
電 子 署 名 の 概 念 送 信 者 暗 号 化 ( 署 名 ) 圧 縮 ハッシュ 値 署 名 送 信 者 の 秘 密 鍵 ( 送 信 者 のみ 保 持 ) 送 信 データ 攻 撃 者 データを 改 ざんできても 対 応 する 署 名 を 作 成 できない 送 信 データ 送 信 署 名 データ 送 信 送 信 者 の 公 開 鍵 ( 受 信 者 に 安 全 に 配 布 ) 受 信 データ 受 信 署 名 圧 縮 復 号 受 信 者 受 信 データから 受 信 者 が 作 成 した ハッシュ 値 受 信 した 署 名 から 復 号 した ハッシュ 値 照 合 ( 検 証 ) 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 145
電 子 署 名 の 概 念 送 信 者 の 秘 密 鍵 で 送 信 データのハッシュ 値 を 暗 号 化 したものが 署 名 公 開 鍵 で 署 名 を 復 号 すれば 送 信 者 作 成 のハッシュ 値 が 得 られる 受 信 データから 受 信 者 が 作 成 したハッシュ 値 と 公 開 鍵 で 復 号 したハッシュ 値 が 同 じであるか 照 合 ( 検 証 )する 同 じであれば 送 信 者 からの 完 全 なデータであると 判 断 できる 署 名 を 作 成 できるのは 送 信 者 しかいない( 出 自 の 保 証 ) データが 改 ざんされていれば 比 較 が 一 致 しない( 完 全 性 の 保 証 ) 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 146
電 子 署 名 のDNSへの 応 用 (DNSSEC) DNS 管 理 者 ( 権 威 サーバ) 暗 号 化 ( 署 名 ) 圧 縮 ハッシュ 値 署 名 DNS レコード DNS 管 理 者 の 秘 密 鍵 (DNS 管 理 者 のみ 保 持 ) 攻 撃 者 DNSレコードを 改 ざんできても 対 応 する 署 名 を 作 成 できない 送 信 レコード 送 信 署 名 DNS 検 索 DNS 管 理 者 の 公 開 鍵 (DNS 検 索 中 に 入 手 ) 受 信 レコード 受 信 署 名 DNS 検 索 者 (キャッシュサーバ) 圧 縮 復 号 受 信 レコードから 検 索 者 が 作 成 した ハッシュ 値 受 信 した 署 名 から 復 号 した ハッシュ 値 照 合 ( 検 証 ) 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 147
電 子 署 名 のDNSへの 応 用 (DNSSEC) DNS 管 理 者 は 署 名 鍵 ( 秘 密 鍵 + 公 開 鍵 )を 作 成 DNS 管 理 者 は DNSレコード(ハッシュ 値 )を 秘 密 鍵 で 署 名 検 索 を 受 けたDNSサーバは DNSレコードに 署 名 を 添 付 して 応 答 DNS 検 索 者 は DNS 管 理 者 の 公 開 鍵 を 用 いて 署 名 を 復 号 し 検 索 で 得 たDNSレコードと 照 合 することで 出 自 完 全 性 を 検 証 この 仕 組 みを 基 本 単 位 とし DNS 階 層 で 信 頼 の 連 鎖 を 作 ることで 実 現 2010-11-25 Copyright 2010 株 式 会 社 日 本 レジストリサービス 148