= DNS/qname-minimisation/毒盛対策 = <> Mueller流のNS毒盛攻撃への対策は簡単に実装できることを示す。-- ToshinoriMaeno <> 実装されているリゾルバーは知らない。 == zone cut直下のNS == qname minimisationを採用していると、  問い合わせ中にco.jpドメイン名はNSレコードを持たないことが分かるため、 Mueller型の攻撃が行われても、毒であることは容易に判別できる。 例えば、xxx.co.jpに対する問い合わせを行った場合を考えてみる。  delegation返答があって、co.jpを指す返事があったとしても、  すでにNSを持たないことはキャッシュにある(はず)。 jp直下のドメイン名であって、NSを持たないことは明らか。   もしNSを持つのであれば、zone cutとして登録されていなければおかしい。 qname minimisationを採用しているリゾルバーであれば、co.jpがゾーンでないことは事前に分っているはずだ。 これらの理由でco.jpへの毒盛は成功しないのだが、残念ながら、 Knot resolver 1.3.0 ではどちらの検査も実装されていない。 簡単な修正で対応させられるか、検討する。 -- ToshinoriMaeno <> == zone cut 直下ではないNS毒 == $random.xxx.co.jp によるxxx.co.jp NS 毒は受け入れる可能性が少し残る。  これは別途対策が必要である。(現在はTCPを使うことで回避)  先行する否定返答中のSOAレコードを利用するのが確実だが、簡単な改造ではすまない。 ただし、NSが存在するノードであれば、JP NSからのdelegationが(先に)返るので、  毒の可能性は考慮しなくてもよいだろう。 -- ToshinoriMaeno <> NSを持たないノードが2段以上続くドメイン名もある。  現状ではこれらを防衛するには否定返答を使う方法が簡単だが、実装が存在するかは知らない。 ゾーン(サーバー)側で対応できる話なので、当面は静観する。-- ToshinoriMaeno <> == 都道府県型ドメイン名 == {{{ $ dnsq ns tokyo.jp a.dns.jp 2 tokyo.jp: 73 bytes, 1+0+1+0 records, response, authoritative, noerror query: 2 tokyo.jp authority: jp 900 SOA z.dns.jp root.dns.jp 1498116602 3600 900 1814400 900 $ dnsq ns nerima.tokyo.jp a.dns.jp 2 nerima.tokyo.jp: 80 bytes, 1+0+1+0 records, response, authoritative, noerror query: 2 nerima.tokyo.jp authority: jp 900 SOA z.dns.jp root.dns.jp 1498116602 3600 900 1814400 900 }}} == www.ana.co.jp == akamai CDNを使っていると、ゾーンでない名前が多段になっていることがよくある。  これらの防衛にも否定返答を使うのがよさそう。[[watchWWW/ana.co.jp]] -- ToshinoriMaeno <>