こないだ初めて聞いたのでちょっとまとめてみる
ネットワークよくわからない
DNS over HTTPS とは?
DNSで通信している内容を、json形式にマッピングしたデータにしてHTTPS通信を行う手法。
つまり通信プロトコルはHTTPS(TLS)なので、DNSの代わりにHTTPSで通信するよって話。
なんでDNS over HTTPS を使うの?
逆に言うとなんでDNSではダメなのかというと、DNSはUDPをベースにしたプロトコルであり、通信内容は平文で行われる。そのため通信内容を盗聴されたり、内容の改竄が可能となってしまう。
そこでプロトコルをHTTPSにして通信することで、通信内容の暗号化を行い秘匿性の向上を図るのが理由。
DNSだってセキュリティプロトコルあるでしょ?DNSSECでいいじゃん
カバーしている通信範囲が違う。
DNSの仕組みとして
クライアントPC → キャッシュサーバ → 権威サーバ
という流れで通信を行うが、DNSSECはこの
キャッシュサーバ → 権威サーバ
の通信内容を電子署名によって保護する。
つまりキャッシュサーバが受け取った問い合わせ内容が、正規の権威サーバのものであり、かつDNSレコードの改竄がされていないか確かめるもの。
これによってDNSキャッシュポイズニングなどの攻撃にも対応ができる。
そしてDNS over HTTPS がカバーしている範囲が
クライアントPC → キャッシュサーバ
である。こちらの目的はクライアントPCから投げる問い合わせ内容の改竄防止と秘匿化、DNSサーバのなりすまし防止が目的である。
そのため結論としては、DNS over HTTPS は必要。もちろんDNSSECも
具体的にどこで試せるの?
Google public DNS(8.8.8.8)
Cloudflare DNS(1.1.1.1)
この辺で試せます
まとめ
すごいなと思いました。(小並感)
そもそもDNSについてもよく知らなかったんで、ネットワークについてちゃんと勉強します・・・
余談ですが、某海賊版サイトの件でDNSブロッキングがどうこうありました。
プロバイダレベルでDNSブロッキングをされる場合、DNS over HTTPSで接続すれば、技術的にはDNSブロッキングを回避できるんですかね?