1
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

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

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

よかったよかった。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
1
Help us understand the problem. What are the problem?