DNSCrypt は、コンピュータと再帰 さいき ネームサーバ 間 あいだ のDomain Name System (DNS) トラフィックを認証 にんしょう および暗号 あんごう 化 か する通信 つうしん プロトコル である。オリジナルは、Frank DenisとYecheng Fuによって設計 せっけい された。
クライアントとサーバーの実装 じっそう は複数 ふくすう 存在 そんざい するが、このプロトコルはRFC によってIETF に提案 ていあん されたことはない。
DNSCrypt は、偽造 ぎぞう を検出 けんしゅつ するために、クライアントとDNSリゾルバ間 あいだ の変更 へんこう されていないDNSトラフィックを暗号 あんごう 化 か 構造 こうぞう でラップする。エンド ツー エンドのセキュリティは提供 ていきょう しないが、ローカル ネットワークを中 ちゅう 間 あいだ 者 しゃ 攻撃 こうげき から保護 ほご する[1] 。
また、少 すく なくとも対応 たいおう する応答 おうとう と同 おな じ大 おお きさの質問 しつもん を要求 ようきゅう することで、 UDP ベースの増幅 ぞうふく 攻撃 こうげき を軽減 けいげん する。このようにして、DNSCryptはDNS 増幅 ぞうふく 攻撃 こうげき の防止 ぼうし に役立 やくだ つ。
DNSCryptプロトコルは、プライベートな展開 てんかい に加 くわ えて、OpenNICネットワークのメンバーを中心 ちゅうしん としたいくつかのパブリックDNSリゾルバや、仮想 かそう プライベートネットワーク (VPN)サービスにも採用 さいよう されている。
OpenDNS (現在 げんざい はCisco の一 いち 部門 ぶもん ) は、2011年 ねん 12月6日 にち にDNSCrypt をサポートする最初 さいしょ のパブリックDNSサービスを発表 はっぴょう し、その後 ご すぐに CloudNS Australiaが続 つづ いた[2] 。
2016年 ねん 3月 がつ 29日 にち 、Yandex は、パブリックDNSサーバおよび Yandex BrowserでDNSCryptプロトコルをサポートすることを発表 はっぴょう した[3] [4] 。
2016年 ねん 10月 がつ 14日 にち 、 AdGuard はDNSフィルタリングモジュールにDNSCryptを追加 ついか し、ユーザーがISPからカスタムまたはAdGuard独自 どくじ のDNSサーバーに移動 いどう して、オンラインプライバシーと広告 こうこく ブロックを行 おこな えるようにした[5] [6] 。
2018年 ねん 9月 がつ 10日 とおか 、非 ひ 営利 えいり のパブリック再帰 さいき リゾルバーサービス、Quad9 はDNSCryptのサポートを発表 はっぴょう した[7] 。
dnscrypt-proxy, Linux 上 うえ で動作 どうさ するDNSCryptクライアント
DNSCryptは、UDP またはTCPの いずれかで使用 しよう できる。どちらの場合 ばあい も、デフォルトのポートは443 である。プロトコルはHTTPS とは根本 こんぽん 的 てき に異 こと なるが、どちらのサービスタイプも同 おな じポートを 使用 しよう する。ただし、 DNS over HTTPS とDNSCryptは同 おな じポートで使用 しよう できるが、それらは異 こと なるサーバで別々 べつべつ に実行 じっこう する必要 ひつよう がある。両方 りょうほう が通信 つうしん に同 おな じポートを使用 しよう する場合 ばあい 、2つのサーバアプリケーションを同 おな じサーバで同時 どうじ に実行 じっこう することはできない。多重 たじゅう 化 か アプローチは理論 りろん 的 てき には可能 かのう である。
クライアントは、ウェブブラウザ に搭載 とうさい されている信頼 しんらい できる認証 にんしょう 局 きょく に頼 たよ るのではなく、選択 せんたく したプロバイダの公開 こうかい 署名 しょめい 鍵 かぎ を明示 めいじ 的 てき に信頼 しんらい する必要 ひつよう がある。この公開 こうかい 鍵 かぎ は、従来 じゅうらい のDNSクエリを使用 しよう して取得 しゅとく した一連 いちれん の証明 しょうめい 書 しょ を検証 けんしょう するために使用 しよう される。これらの証明 しょうめい 書 しょ には、鍵 かぎ 交換 こうかん に使用 しよう する短期 たんき 公開 こうかい 鍵 かぎ と、使用 しよう する暗号 あんごう スイートの識別子 しきべつし が含 ふく まれている。クライアントは問 と い合 あ わせのたびに新 あたら しい鍵 かぎ を生成 せいせい することが推奨 すいしょう され、サーバは24時 じ 間 あいだ ごとに短期 たんき 鍵 かぎ ペアをローテーションすることが推奨 すいしょう される。。
DNSCryptプロトコルは、あらかじめ定義 ていぎ された公開 こうかい 鍵 かぎ のセットのみを受 う け付 つ けることで、アクセス制御 せいぎょ やアカウンティングにも利用 りよう できる。これにより、商用 しょうよう DNSサービスでは、IPアドレスに依存 いぞん せずに顧客 こきゃく を識別 しきべつ することができる[要 よう 出典 しゅってん ] 。
クエリと応答 おうとう は同 おな じアルゴリズムを使用 しよう して暗号 あんごう 化 か され、パケットサイズのリークを回避 かいひ するために64バイトの倍数 ばいすう にパディングされる。 UDPを介 かい して、応答 おうとう がそれにつながる質問 しつもん よりも大 おお きい場合 ばあい 、サーバはTC(切 き り捨 す て)ビットが設定 せってい されている短 みじか いパケットで応答 おうとう できる。その後 ご 、クライアントはTCPをって再 さい 試行 しこう し、後続 こうぞく のクエリのパディングを増 ふ やす必要 ひつよう がある。
バージョン1および2のプロトコルでは、鍵 かぎ 交換 こうかん にX25519 アルゴリズム、署名 しょめい にEdDSA 、認証 にんしょう 付 つ き暗号 あんごう 化 か にXSalsa20-Poly1305 またはXChaCha20-Poly1305 を使用 しよう している。
2020年 ねん の時点 じてん で、DNSCryptプロトコルに既知 きち の脆弱 ぜいじゃく 性 せい はなく、基盤 きばん となる暗号 あんごう 構造 こうぞう に対 たい する実際 じっさい 的 てき な攻撃 こうげき もない。
匿名 とくめい DNSCryptは、DNSのプライバシーをさらに改善 かいぜん するために2019年 ねん に提案 ていあん されたプロトコル拡張 かくちょう である[8] 。
リゾルバは、クライアントに直接 ちょくせつ 応答 おうとう する代 か わりに、別 べつ のリゾルバへの透過 とうか プロキシとして機能 きのう し、実際 じっさい のクライアントIPを後者 こうしゃ に隠 かく すことができる。匿名 とくめい DNSCryptは、TorおよびSOCKSプロキシの軽量 けいりょう な代替 だいたい 手段 しゅだん であり、DNSトラフィック用 よう に特別 とくべつ に設計 せっけい されている[8] 。
匿名 とくめい DNSCryptの展開 てんかい は2019年 ねん 10月 がつ に開始 かいし され、クライアントとサーバの実装 じっそう が公開 こうかい されてからわずか2週間 しゅうかん で40台 だい のDNSリレーが設置 せっち されるなど、プロトコルの採用 さいよう は迅速 じんそく に行 おこな われた[9] 。