Episode 4

階層の仕組みを信じよう!

DNSは階層構造なことは、話したよね。

DNSは階層構造なことは、話したよね。

dnsimple.com のAレコードを知りたいとき、リゾルバは最初にルートに .com サーバーの場所を聞く必要があるんだよ。

※HowDNS.works に登場するキャラクター
dnsimple.com のAレコードを知りたいとき、リゾルバは最初にルートに .com サーバーの場所を聞く必要があるんだよ。

次に、.com サーバーが dnsimple.com のネームサーバーをリゾルバに案内してくれるんだよ。

※HowDNS.works に出てくる、もう一人のキャラクター
次に、.com サーバーが dnsimple.com のネームサーバーをリゾルバに案内してくれるんだよ。

最終的に、権威サーバーが dnsimple.com のAレコードのIPアドレスを返してくれるよ。

※これも HowDNS.works に出てくるキャラクターだけど、もう知ってるよね
最終的に、権威サーバーが dnsimple.com のAレコードのIPアドレスを返してくれるよ。

これはぜんぶ、信頼の連鎖が土台になってるんだ。

これはぜんぶ、**信頼の連鎖**が土台になってるんだ。

リゾルバはサーバーをたどるたびに、信頼できる親から信頼できる子に案内されてると信じて動いてるよ。

リゾルバはサーバーをたどるたびに、信頼できる親から信頼できる子に案内されてると信じて動いてるよ。

DNSSECでは、DS(委任署名者)という新しいタイプのレコードでこれを実現してるんだ。

DNSSECでは、**DS(委任署名者)**という新しいタイプのレコードでこれを実現してるんだ。

DSレコードは子ゾーンで作られて、それを親ゾーンに渡すんだ。

DSレコードは子ゾーンで作られて、それを親ゾーンに渡すんだ。

DSレコードの中身は、DNSKEYにあるキー署名キーの公開鍵を、DNSプロバイダがハッシュ化して記録したものだよ。

DSレコードの中身は、DNSKEYにあるキー署名キーの公開鍵を、DNSプロバイダがハッシュ化して記録したものだよ。

DSレコードは、親ゾーンに登録されている必要があるよ。

DSレコードは、親ゾーンに登録されている必要があるよ。

リゾルバが子ゾーンに問い合わせるとき、親ゾーンがDSレコードをリゾルバに教えてくれるよ。

リゾルバが子ゾーンに問い合わせるとき、親ゾーンがDSレコードをリゾルバに教えてくれるよ。

これには2つの役割があります:

これには2つの役割があります:

まず、リゾルバは、子ゾーンがDNSSECを使っていることが分かります。

まず、リゾルバは、子ゾーンがDNSSECを使っていることが分かります。

次に、親ゾーンにある暗号化されていないDSレコードと子ゾーンのDNSKEYが一致してるか、リゾルバが確認できるんだ。

次に、親ゾーンにある暗号化されていないDSレコードと子ゾーンのDNSKEYが一致してるか、リゾルバが確認できるんだ。

リゾルバは子ゾーンのDNSKEYをハッシュ化し直して、DSレコードと同じかどうか見比べるよ。

リゾルバは子ゾーンのDNSKEYをハッシュ化し直して、DSレコードと同じかどうか見比べるよ。

もし合ってなかったら、リゾルバはゾーンが改ざんされていることに気づくんだ。

もし合ってなかったら、リゾルバはゾーンが改ざんされていることに気づくんだ。

一致してたら、 dnsimple.com が信頼できるとリゾルバが判断するよ。

一致してたら、 dnsimple.com が信頼できるとリゾルバが判断するよ。

これでDNSimpleは安心。でも、.com やルートは本当に大丈夫なのかな?

これでDNSimpleは安心。でも、.com やルートは本当に大丈夫なのかな?
つづきを読む →