はじめに
最近開いたセキュリティの社内勉強会で、DNSの話題が出ました。
そういえばDNSについて改めて勉強をしたことがなかったので、そのときに勧められた「DNSがよくわかる教科書」株式会社日本レジストリサービス(JPRS)を読んだので、書評を書こうと思います。
「DNSがよくわかる教科書」とは
「DNSがよくわかる教科書」は2018年11月22に出版されたDNSについての解説本です。
基礎編、実践編、アドバンス編に分かれており、DNSの基礎である仕組みの話から運用、セキュリティといった応用まで幅広く解説されています。
目次
- はじめに
- 1章 DNSが作られた背景
- 2章 ドメイン名の登録管理の仕組みと管理体制
- 3章 DNSの名前解決
- 4章 DNSの構成要素と具体的な動作
- 5章 自分のドメイン名を設計する
- 6章 自分のドメイン名を管理する~権威サーバーの設定~
- 7章 名前解決サービスを提供する~フルリゾルバーの設定~
- 8章 DNSの動作確認
- 9章 DNSに対するサイバー攻撃とその対策
- 10章 よりよいDNS運用のために
- 11章 DNSの設定・運用に関するノウハウ
- 12章 権威サーバーの移行(DNSの引っ越し)
- 13章 DNSSECの仕組み
- 14章 DNSにおけるプライバシーの概要と実装状況
- 付録A DNS関連の主なRFC
DNSとは?
DNSというものがIPアドレスの名前解決を行うものであるということは知っていたのですが、この本ではそのことを学校の生徒の学籍番号と名前で例えています。
基礎的な部分の話を分かりやすいたとえを用いて説明しつつ、DNSに関する基礎的な要素である階層化、レジストリ、名前解決といった要素を解説しています。
DNSの可用性を高めるために
実践編では、DNSの可用性についてのトピックも扱われていました。
DNSサーバーは担当するゾーンの名前解決を行っているので可用性が重要です。
それを保つために、権威サーバーを複数用意してアクセスを分散させる概念が解説されています。
「ゾーン転送」という言葉をこれまでもセキュリティ回りの話で聞いたことはあったのですが、それが何のためのなのかこれまではあまりはっきりと答えられませんでした。
同じゾーンデータを持つ権威サーバーを複数台設置すると、どの権威サーバーに問い合わせても同じ応答を得ることができます。
DNSではこの仕組みを「ゾーン転送」で実現できます。
とあるとおり、可用性を高める目的で権威サーバーを複数用意して冗長化する際、ゾーン情報を権威サーバーの間でコピーして転送する際に行われるものであるということが分かります。
DNSSECの話
勉強会の中でDNSSECの話題が出たので、このトピックは特に気になっていました。
DNSSECを用いるとDNSサーバーから受け取った情報の出元が正しいか検証できるよ、けれどもどことどこの間の通信での話でしょうか?
より細かくいうと、これはフルリゾルバーにおいて権威DNSサーバーからの応答を検証する仕組みです。
フルリゾルバーとはDNSにおいて名前解決を実行する部分で、名前解決要求を受けた場合キャッシュに情報がなければ権威サーバーに対して問い合わせを行います。
この際に偽の情報を別の場所から送信されるキャッシュポイズニングなどを行われないようにするためにこの仕組みを使って検証を行います。
具体的には、権威サーバーの側で秘密鍵をを使って署名を付与し、フルリゾルバーの側でその署名を公開鍵で検証することで応答が改竄されていないかを確かめることができます。
読んで感じたこと
この本においては、DNSがどのように動くかといった仕組みの話から、自分でDNSを動かすために必要なこと、セキュリティといった運用面の話までトピックとして盛り込まれており、DNSについて学ぶのに必要なことを一通り網羅しているように感じました。
特に、DNSに関わる用語の解説が一つ一つ丁寧になされており、前提知識をあまり要求されないため本の内容に置いてけぼりにされることもなくDNSについて理解を進めることができました。
DNSについてあまりわからないけど理解を深めたいという方にはお勧めの一冊です。