More Related Content
PDF
PPTX
PDF
PDF
PDF
「これ危ない設定じゃないでしょうか」とヒアリングするための仕組み @AWS Summit Tokyo 2018 PDF
Spring Data RESTを利用したAPIの設計と、作り直しまでの道のり PDF
20200722 AWS Black Belt Online Seminar AWSアカウント シングルサインオンの設計と運用 PPTX
Amazon EKS への道 ~ EKS 再入門 ~ What's hot
PDF
PDF
AWS Black Belt Online Seminar AWS Direct Connect PDF
"Kong Summit, Japan 2022" パートナーセッション:Kong on AWS で実現するスケーラブルな API 基盤の構築 PPTX
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら PDF
PDF
20210216 AWS Black Belt Online Seminar AWS Database Migration Service PPTX
AWS WAF のマネージドルールって結局どれを選べばいいの? PDF
AWS Well-Architected Security とベストプラクティス PPTX
PDF
AWS Black Belt Online Seminar AWS Key Management Service (KMS) PDF
PDF
PPTX
PDF
アプリ屋もDockerをドカドカ使おう ~ Docker入門 PPTX
PDF
PDF
Ansibleはじめよぉ -Infrastructure as Codeを理解- PDF
AWSでDockerを扱うためのベストプラクティス PPTX
PDF
20180425 AWS Black Belt Online Seminar Amazon Relational Database Service (Am... More from Yoshikazu GOTO
PPTX
#JANOG 44 「運用自動化に「失敗」しちゃった」 PPTX
こうやって続けよう、運用自動化 #ssmjp 2019/08 PPTX
PPTX
PPTX
「DNS浸透いうな」と言うけれど… (OSC 2018 Tokyo/Spring) PPTX
「DNS浸透いうな」と言うけれど… (#ssmjp 2018/07) PPTX
co.jp への TXT 追加の謎
- 1.
- 2.
- 3.
一通のメール
• あるとき、dnsops MLに一通のメールが流れました
Subject:[DNSOPS dnsops 1339] Re: キャッシュポイズニング攻撃の危険性増加に関
する緊急の注意喚起の掲載について
From: "T.Suzuki" <tss@e-ontap.com>
To: dnsops@dnsops.jp
Date: Tue, 15 Apr 2014 15:03:41 +0900
<snip>
それから、co.jp などにいつの間にか入っている不思議な TXT レコードについて、
本件との関連性の説明をしてもらえたりできませんか?
- 4.
- 5.
co.jpってどんなドメイン名?
• 実は、TXT RRが入る前は、リソースレコードが何も存在しないドメイン
名でした
•jpゾーンから直接、example.co.jpが委任されています
• DNSSECでも、example.co.jpのDSは、jpゾーンに登録されています
• 「example.co.jp」は、例です
• co.jpにTXT RRが入ると、DNSSECとしては、状況が変わります
• TXT RRに対する署名が行われ、RRSIG RRが生成されます
• “drill -D -o rd co.jp. any @a.dns.jp” と入力してみましょう
• これで、既に署名されていた jpゾーンと、example.co.jpとの間にあるco.jpも、
署名されることになります
• つながった!何がつながった?
- 6.
- 7.
RFC 5155
• ここで出てくるのがRFC5155です
• JPRSさんによる日本語訳はこちらです
• 日本語タイトルは「DNSSECにおけるハッシュを使用した不在証明」です
• これがまた、難解で…
• 特に、「用語」を理解するのが大変
• ハッシュ化所有者名?ハッシュ整列順?空の非終端?証明可能な最近接名?カバー
する?
• co.jpは「空の非終端」(Empty non-terminal)になります
- 8.
混乱
• 「ハッシュ整列順」と「カバーする」が、私を混乱させました
• RFC5155では、「ゾーン列挙」によりゾーンの全内容を読み取ることができて
しまう問題を解消しています
• ドメイン名にハッシュ関数を適用し、それを権威DNSサーバーが返すことで、
ドメイン名自体は返らなくなるのです
• ある範囲にはドメイン名は存在しないことも、複数のハッシュ化所有者名を
返すことで示すことができます
• 「カバーする」ということは、例えばco.jpについて「なにもないよ」を示すには、
その両側のハッシュ化所有者名で挟めばよいのかな?
• aa.jpとzz.jpを作ったりしました…失敗…
- 9.
NSEC3リソースレコード
• RFC 5155ではNSEC3RRが導入されます
• NSEC3 RRは、NSEC3 RRのオリジナル所有者名について、これに存在
するRRタイプを列挙します
• 「タイプビットマップ」フィールドにエンコードされます
• 例えば、jpドメインの場合、NSやSOA, RRRIG, DNSKEY, NSEC3PARAMが存在す
ることを、NSEC3 RRを用いてバリデーターに知らせることができます
• 「フラグ」フィールド内の「Opt-Outフラグ」により、NSEC3 RRが未署名
委任をカバーしているかがわかります
• ん?カバー?
- 10.
- 11.
カバーする(続き)
• 続けて、NSEC3 RDATAのワイヤフォーマットを見てみます(3章)
•「次ハッシュ化所有者名」フィールドがあります
• 次ハッシュ化所有者名(Next hashed owner name): 全ハッシュ化所有者名を整列した
集合がある場合に、あるNSEC3 RRの「次ハッシュ化所有者名」フィールドは、そのNSEC3
RRの所有者名の直後にくる所有者名のハッシュを含む
• 各NSEC3 RRにおいて、ハッシュ整列順にしたがった次のNSEC3 RRの値を、次ハッシュ化
所有者名として挿入する(7.1章)
• ハッシュ整列順(Hash order): ハッシュ化所有者名がその数値に応じて配列される順
序
• ハッシュ化所有者名(Hashed owner name): 所有者名にハッシュ関数を適用した後に
生成される所有者名
• 何か、見えてきました
- 12.
カバーする(続き)
• もう一度考えてみる
• 例えばexample.co.jpの「最近接名」はco.jpです
•しかし署名されているのはjpですので、jpが「証明可能な最近接名」です
• すると「次近接名」はco.jpになります
• ここで、co.jpの「次ハッシュ化所有者名」のドメイン名はexample.jpとします
• NSEC3 RRの所有者名をco.jpとすると、ある名前co.jpのハッシュが自分自身
(所有者自身)となり、さらに「次ハッシュ化所有者名」フィールドにexample.jp
のハッシュを入れておけば、co.jpのNSEC3 RRはco.jpを「カバー」する、という
ことになります
- 13.
- 14.
Opt-Out
• NSEC3 RRの「フラグ」フィールドにはOpt-Outbitがあります
• このNSEC3 RRが未署名委任を「カバー」しているかを示しています
• つまり、ここが1の場合、未署名の委任が存在してもよい、ということです
• jpのNSEC3 RRは、ここが1になっています
• example.co.jpが未署名(DNSSECを導入していない)でも構わないことを示しています
• 署名は、ゾーンファイルに対して行います
• dnssec-signzone(BIND9に同梱)やldns-signzone(NLnet Labsの独自作成ツー
ルでありldnsライブラリのサンプルプログラム)といったツールがあります
• オプションで、Opt-Outを有効にして署名することができます
- 15.
実装の違い
• dnssec-signzoneでは、すべてが“Insecure”な委任の場合にはNSEC3
RRを生成しません
• RFC5155の当初の目的の1つでもある、委任が主たる仕事となる大規模ゾー
ンの場合の、署名のコストを減らすために、このような実装になっています
• “Secure”な委任がco.jpの配下に1個もないと、co.jpのNSEC3 RRも生成されず、
co.jpの乗っ取りが可能となります
• co.jpの配下にex1.co.jpとex2.co.jpがあったとして、どちらもjpから委任されており、しか
しDNSSECは導入していなかった場合、DSがjpには登録されていないために、署名の際
に、co.jpのNSEC3 RRは生成されません
• jpのNSEC3 RRにはOpt-Outがあるため、バリデーターはco.jp以下についてバリデーショ
ンを行いません
- 16.
- 17.
そしてDSを問い合わせる理由は?
• どちらのツールでも、 “Secure”な委任がある場合は「空の非終端」に
ついてもNSEC3RRが生成されます
• 例えばexample.co.jpはjpから委任されているとすると、co.jpから委任されて
いるわけではないために、co.jpのNSEC3 RRにおける「タイプビットマップ」に
はNSは記録されません(というか空になります)
• co.jp NS RRを毒入れされるとバリデーターは、しかしco.jpにはNSが存在しな
いことを知っているために、「おかしいぞ」と気が付きます
• ここでUnboundもBIND9も、jpの権威DNSサーバーが言っていることよりかは
co.jpの(偽)権威DNSサーバーが言っていることを信じてみようということで、
偽権威DNSサーバーにDSがあるか問い合わせ、「信頼の連鎖」が守られて
いるかを確認しようとします(これについてのRFCが見つからない…)
• そもそも、本来なら委任元に問い合わせるべきだし
- 18.
というわけで
• RFC 5155に、「少しだけ」詳しくなることができました
•いや、ほんの少しだけ、ですね…
• なぜco.jpにTXT RRをつけたのかという理由は、わかりませんでした
• TXT RRの有無で、キャッシュDNSサーバー(バリデーター)の動作に変わりは
ありませんでした
• どうやら、co.jpにつけたかったのではなくて、aichi.jpなどの都道府県型JPドメ
イン名を守るためでは?というお話を、ある方(某h氏)から聞きました
• なるほど納得です
• aichi.jpなどは、もしかするとDNSSECさえも知らない人・組織が使っている可能性
• なので、「一律」に入れたと、ある方(某O氏)がおっしゃっていました
• 結果、co.jpにもTXT RRがつきました
- 19.
- 20.