2022-07-21
https://forest.watch.impress.co.jp/docs/news/1426222.html
Android で DNS over HTTP/3 (DoH3) をサポートする方針について書かれた記事。
サポート(予定)の Android バージョンはまだ書かれていないよう。
従来、DNS の問い合わせは UDP かつ平文で送っていたが、これに TLS レイヤーを追加することで問い合わせの内容を暗号化する。
しかし DoT は専用のポート番号 (853) を使うため、DNS のトラフィックが存在することは確認できる。
DoT 同様に暗号化レイヤーとして HTTPS を追加することで、問い合わせの内容を暗号化できる。
DoT との大きな違いはポート番号で、通常の HTTPS 通信のポート番号 (443) で通信するため、外から見ると通常の HTTPS アクセスと DNS 問い合わせの違いがわかりにくい。
このため、プライバシー観点では DoH の方が優れていると考えられる。
DoH で使う HTTP を HTTP/3 に限定したものと思われます(はっきりと調べてはいない)
HTTP/1 や HTTP/2 の課題が解消されているので、主にパフォーマンスの観点で以下のような点が改善されていくと思われます。
Rust で実装したことが高速化の要因ではなさそう。
ただ、脆弱性などができにくいという意味で、よりセキュアな DoH3 に貢献しているかもしれない。
Google Online Security Blog: DNS-over-HTTP/3 in Android
https://security.googleblog.com/2022/07/dns-over-http3-in-android.html
※curl がまだ 正式にHTTP/3に対応していない ため DoH3 ではなく DoH です。
$ curl --silent -H 'accept: application/dns-json' 'https://1.1.1.1/dns-query?name=github.com&type=A' | jq
{
"Status": 0,
"TC": false,
"RD": true,
"RA": true,
"AD": false,
"CD": false,
"Question": [
{
"name": "github.com",
"type": 1
}
],
"Answer": [
{
"name": "github.com",
"type": 1,
"TTL": 51,
"data": "52.69.186.44"
}
]
}