| 通信プロトコル | |
| 開発者 | ダニエル・J・バーンスタイン |
|---|---|
| 導入 | 2009年[ 1 ] (2009年) |
| OSI層 | アプリケーション層 |
DNSCurveは、 Daniel J. Bernsteinによって設計された、ドメインネームシステム(DNS)向けの安全なプロトコルです。リゾルバと権威サーバー 間のDNSパケットを暗号化し、認証します。
DNSCurveは、従来のDNSサービスに比べて以下の利点があると主張している。[ 1 ]
- 機密性 - 従来の DNS 要求と応答は暗号化されていないため、送信経路上のすべてのユーザーが読み取ることができます。
- 整合性 - 従来の DNS にはある程度の保護機能がありますが、攻撃者は忍耐とスニッフィングによって DNS レコードを偽造できます。これは DNSCurve の暗号化認証によって防止されます。
- 可用性 - 従来の DNS には、 1 秒あたり数個の偽造パケットを送信するスニッフィング攻撃によるサービス拒否(DoS) に対する保護機能がありません。DNSCurve は偽造 DNS パケットを認識して破棄することで、ある程度の保護を提供します。ただし、SMTP、HTTP、HTTPSもDoS攻撃に対して脆弱です。
構造
DNSCurveは、権威サーバーのIDを確立するためにCurve25519楕円曲線暗号を使用します。 [ 2 ] リモート権威サーバーの公開鍵は、サーバーの完全修飾ドメイン名のホスト名コンポーネントとしてNSレコードにエンコードされるため、再帰リゾルバはサーバーがDNSCurveをサポートしているかどうかを認識できます。鍵はマジックストリングで始まり、その後にサーバーの255ビット公開鍵を51バイトのBase32uz5エンコードしたものが続きます。例えば、 BIND形式では次のようになります。
example.com。IN NS uz5bcx1nh80x1r17q653jf3guywz7cmyh5jv0qjz0unm56lq7rpj8l.example.com 。このIDは、 Salsa20とPoly1305で構成される認証暗号化方式で使用される鍵を確立するために使用されます。暗号化設定は、具体的には暗号化ボックスと呼ばれます。[ 3 ]crypto_box_curve25519xsalsa20poly1305
DNSCurveで使用されている暗号化ツールは、 TCPに似ていますが、楕円曲線暗号を用いてデータの暗号化と認証を行うUDPベースのプロトコルであるCurveCPで使用されているものと同じです。DNSSECがPretty Good Privacy (PGP) でウェブページに署名するのに対し、CurveCPとDNSCurveはTransport Layer Security (TLS)を用いてチャネルを暗号化・認証するようなものです。PGPで署名されたウェブページをSSLを用いて暗号化されたチャネルで送信できるのと同様に、DNSSECデータはDNSCurveを用いて保護できます。[ 4 ]
手術
リゾルバはまず NS レコードから公開鍵を取得します (上記の§ 構造を参照)。
リゾルバは、DNSCurve公開鍵、96ビットのノンス、そしてクエリを含む暗号ボックスを含むパケットをサーバーに送信します。暗号ボックスは、リゾルバの秘密鍵、サーバーの公開鍵、そしてノンスを用いて作成されます。サーバーからの応答には、別の96ビットのノンスと、クエリへの回答を含む独自の暗号ボックスが含まれます。
安全
DNSCurveは256ビットの楕円曲線暗号を用いており、NISTはこれを3072ビットのRSAとほぼ同等と推定しています。[ 5 ] ECRYPTも同様の同等性を報告しています。[ 6 ] ECRYPTはクエリごとの公開鍵暗号(SSHやSSLなど)と、リプレイ攻撃から保護するための96ビットのノンスを使用しています。Googleのセキュリティ責任者であるアダム・ラングレー氏は、「非常に高い確率で、大規模な量子コンピュータなしではCurve25519の単一のインスタンスを解読することはできないだろう」と述べています。[ 7 ]
スピード
アダム・ラングレーは自身のウェブサイトで速度テストを公開しており、DNSCurveで使用されているCurve25519がテストされた楕円曲線の中で最速であることを示しています。[ 8 ]米国国家安全保障局(NSA) によると、楕円曲線暗号は、鍵サイズが大きくなるにつれて、RSAやDiffie-Hellmanに比べてはるかに優れた性能を発揮します。[ 9 ]
実装
DNSCurveは、Matthew Dempskyによるパッチ[ 10 ]を通じて、dnscacheで初めて再帰サポートを獲得しました。DempskyはGitHubリポジトリも所有しており、そこにはPythonのDNSルックアップツールとC言語のフォワーダーが含まれています。[ 11 ] Adam LangleyもGitHubリポジトリを所有しています。[ 12 ] CurveDNSと呼ばれる権威フォワーダー[ 13 ]があり、これによりDNS管理者はパッチを適用することなく既存のインストールを保護できます。
Jan Mojžíšは、DNS、SSH、HTTP、SMTPなどの一般的なサービスに対してDNSCurveとCurveCPの保護を実装した ソフトウェアスイートであるcurveprotect [ 14 ]をリリースしました。
DNSCurve.io(2023)は、再帰リゾルバにはJan Mojžíšのdqcache、権威サーバにはCurveDNSという2つの実装を推奨しています。[ 15 ]
展開
5000万人のユーザーを抱えるOpenDNSは、2010年2月23日に再帰リゾルバでDNSCurveをサポートすると発表しました。つまり、同社の再帰リゾルバは、権威サーバーとの通信にDNSCurveを使用するようになりました(利用可能な場合)。 [ 16 ] 2011年12月6日、OpenDNSはDNSCryptと呼ばれる新しいツールを発表しました。[ 17 ] DNSCryptはDNSCurveと同様の暗号化ツールに基づいていますが、OpenDNSとユーザー間のチャネルを保護します。[ 18 ]
同程度の規模の権威 DNS プロバイダーはまだ DNSCurve を導入していません。
参照
DNSCurveは、リゾルバと権威サーバー間の通信を保護することを目的としています。DNSクライアントとリゾルバ間の通信を保護するには、いくつかの方法があります。
- DNS over TLS は、2つの標準化過程の RFC、RFC 7858 と RFC 8310 で定義されています。
- RFC 8484で標準化されたDNS over HTTPS
- DNS暗号化
注記
- ^ a b「DNSCurveの紹介」DNSCurve、2009年6月22日。 2016年3月16日閲覧。
- ^ DJ Bernstein. 「Curve25519:高速楕円曲線暗号」 . 2013年1月30日閲覧。
- ^ 「公開鍵認証暗号化:crypto_box」 . nacl.cr.yp.to. crypto_box は、Curve25519、Salsa20、およびPoly1305の特定の組み合わせであるcurve25519xsalsa20poly1305であり、「Cryptography in NaCl」で規定されています。この関数は、
プライバシーと第三者による偽造不可能性の標準的な概念を満たすと推測されます。
- ^ 「CurveCP: インターネットで使えるセキュリティ」2024年1月18日閲覧。
- ^ 「NIST勧告(2011)」。
- ^ 「ECRYPT II アルゴリズムと鍵サイズに関する年次報告書 (2010-2011)」(PDF) 。2012年6月2日時点のオリジナル(PDF)からアーカイブ。
- ^ 「Adam Langley がcurve25519のセキュリティについて語る」。
- ^ 「アダム・ラングレー:素数によって何が変わるのか」。
- ^ 「楕円曲線暗号の事例」 NSA 。 2009年1月17日時点のオリジナルよりアーカイブ。 2009年1月17日閲覧。
- ^ 「DNSCurve patch for dnscache」 。2012年12月28日時点のオリジナルよりアーカイブ。
- ^ 「Matthew DempskyのDNSCurveリポジトリ(GitHub)」GitHub。2019年8月13日。
- ^ 「Adam LangleyのDNSCurveリポジトリ」。GitHub 。 2019年8月13日。
- ^ 「CurveDNS: DNSCurve 転送ネームサーバー」。GitHub 。
- ^ 「curveprotect:幅広いインターネットサービスを保護するための複雑なツール群」。2013年5月26日時点のオリジナルよりアーカイブ。 2012年5月9日閲覧。
- ^ 「DNSCurve.io - DNSCurve のコミュニティ」 . dnscurve.io .
- ^ 「OpenDNSがDNSCurveを採用」 。 2010年2月26日時点のオリジナルよりアーカイブ。2010年4月13日閲覧。
- ^ 「OpenDNSがDNSCryptを発表」 。2013年2月3日時点のオリジナルよりアーカイブ。
- ^ "net/dnscrypt-proxy: dnscrypt-proxy-1.4.3 – DNSクライアントとリゾルバ間の安全な通信" . OpenBSDポート. 2015年1月6日. 2015年2月9日閲覧.
外部リンク
- 公式サイト
- DNSCurve.io: DNSCurveユーザーのためのコミュニティ
- 高速暗号化とDNSCurve、著者による2009年6月のプレゼンテーション
- DNSCurve: DNS の実用的なセキュリティ、著者による 2008 年 8 月のプレゼンテーション
- draft-dempsky-dnscurve-01提案された標準「DNSCurve: ドメインネームシステムのリンクレベルセキュリティ」、M. Dempsky ( OpenDNSから)がIETFに送信(2010 年 2 月に更新)
- OpenDNSがDNSCurveを採用Archived 2010-02-26 at the Wayback Machine、公式OpenDNSブログ記事
- CurveDNS、DNSCurve転送ネームサーバー
- NaCl、ネットワークおよび暗号化ライブラリ