HTTPSレコード
新しいDNSのリソースレコードとして、HTTPSレコードの標準化がIETFで進められています(提案仕様 URL)
このHTTPSレコードを使うことで、HTTP/3の接続時に利用するAlt-Svc情報や、SNIを暗号化するのに利用するECHconfigをDNSを介して提供できるようになります。
HTTPSレコードを取得する
dig で Type65 (HTTPSレコード)を指定して取得する事ができます。
$ dig crypto.cloudflare.com type65
...
;; ANSWER SECTION:
crypto.cloudflare.com. 300 IN TYPE65 \# 136 0001000001000302683200040008A29F874FA29F884F0005004A0048 FE0A004423002000203DE66812D93354486F011CF747CD101328B236 BF3C524E191771B13F68F4E14A00040001000100000013636C6F7564 666C6172652D65736E692E636F6D0000000600202606470000070000 00000000A29F874F260647000007000000000000A29F884F
ECHconfigを取り出して、Enclipted ClientHelloを試そうと思ったんですが、このままでは中身を読み解くのは難しいです。
HTTPS レコードをパースしたい
HTTPSレコードの値を読むには、Wiresharkでパースすることも出来るんですが、「Google Public DNS」のWebページを使うと手っ取り早い。
Web UIからHTTPSレコードを指定できないが、ちゃんと動く。
"Answer": [
{
"name": "crypto.cloudflare.com.",
"type": 65,
"TTL": 299,
"data": "1 . alpn=h2 ipv4hint=162.159.135.79,162.159.136.79 ech=AEj+CgBEIwAgACA95mgS2TNUSG8BHPdHzRATKLI2vzxSThkXcbE/aPThSgAEAAEAAQAAABNjbG91ZGZsYXJlLWVzbmkuY29tAAA= ipv6hint=2606:4700:7::a29f:874f,2606:4700:7::a29f:884f"
}
],
これで、ECHconfigが取り出せました。
よかったよかった。