LoginSignup
2
1

More than 1 year has passed since last update.

DNSの HTTPS レコードをパースしたい

Posted at

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が取り出せました。

よかったよかった。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1