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
匿名DNSCryptは、DNSのプライバシーをさらに改善するために2019年に提案されたプロトコル拡張である[ 8] 。
リゾルバは、クライアントに直接応答する代わりに、別のリゾルバへの透過プロキシとして機能し、実際のクライアントIPを後者に隠すことができる。匿名DNSCryptは、TorおよびSOCKSプロキシの軽量な代替手段であり、DNSトラフィック用に特別に設計されている[ 8] 。
匿名DNSCryptの展開は2019年10月に開始され、クライアントとサーバの実装が公開されてからわずか2週間で40台のDNSリレーが設置されるなど、プロトコルの採用は迅速に行われた[ 9] 。
脚注
関連項目
外部リンク