web-dev-qa-db-ja.com

DNSCurveとDNSSEC

誰かに知らせてもらえますか、両方のアプローチの違いと長所/短所について長い返信をしてください。

私はDNSの専門家ではなく、プログラマーでもありません。私はDNSについて十分な基本的な知識を持っており、kaminskyバグなどがどのように機能するかを理解するのに十分な知識を持っています。私が理解していることから、DNSCurveはより強力な暗号化を備えており、セットアップがはるかに簡単で、完全に優れたソリューションです。

DNSSECは不必要に複雑で、解読可能な暗号化を使用しますが、DNSCurveにはないエンドツーエンドのセキュリティを提供します。しかし、私が読んだ記事の多くは、エンドツーエンドのセキュリティがほとんど役に立たないか、違いがないことを示しているようです。

では、どちらが正しいのでしょうか。どちらがより良い解決策ですか、またはそれぞれの欠点/利点は何ですか?

編集:

機密性ではなく認証が目的の場合、メッセージの内容を暗号化することで何が得られるかを誰かが説明していただければ幸いです。

キーが1024ビットRSAキーであることの証明は、 ここ です。

6
Bill Gray

DNSCurveは、ホップバイホップベースでのみ、特に再帰サーバーと権限のあるサーバー間のホップで、DNSパケットに実際の暗号化を提供します。

そのパスで使用すると、ゾーンデータの認証を提供できます。ただし、セキュリティは「ホップバイホップ」のみであるため、さらに下流のクライアントはこの認証の恩恵を受けることができません。解決パスの途中にある悪意のあるリゾルバーは、依然として誤ったデータを提供する可能性があります。

一方、DNSSECは、受信したデータが権限のあるサーバーのデータと同じであることを証明する、エンドツーエンドの検証可能な暗号署名を提供します。 DNSSECは暗号化技術を使用しますが、実際にはDNSトラフィックを暗号化しません。

DNSCurveの楕円曲線暗号化アルゴリズムの使用により、RSAを使用する場合よりもはるかに小さいキーを使用して、同じレベルの暗号化強度を実現できます。ただし、DNSSECが想定するリストに同様のアルゴリズムを含める提案があります。

DNSSECはIETF(RFC4034およびRFC4035、RFC 5155によって更新)によって標準化され、BIND(もちろん)やNSD/Unboundを含むいくつかの非常に人気のあるネームサーバー実装で実装されています。 PowerDNSはまもなくDNSSECをサポートする予定です。

DNSSECは確かに複雑ですが、これを簡素化するための取り組みが進行中であり(例: http://opendnssec.org/ を参照)、展開は常に増加しています。さまざまなTLD(.se、.br、.org、.govなど)はすでにDNSSECで署名されており、ルートゾーンは年末までにDNSSECで署名されることが発表されています。

DNSCurveは非常に興味深いものですが、DNSCurveは独立した方法で開発されているため、重要な展開が見られる可能性はほとんどありません。私見では、ルートサーバーにデプロイされる可能性はzeroです。

ところで、「解読可能な暗号化」を使用したDNSSECに関するあなたの主張は完全に根拠がないようです。何に基づいてそれを言いますか?

ゾーン署名キーは通常(必ずしもそうとは限りませんが)1024ビット長です。これらのキーは通常、毎月かそこらでロールされます。現在の最良の見積もりでは、 ブルートフォース 1024ビットキーになるまでに少なくとも2、3年かかるとされています。

この時点で、1024ビットRSAに対するブルートフォース攻撃は、プロセッサまたはメインボードごとに数十ギガバイトのメモリを備えた数百万のコンピューティングコアで約2年を必要とします。

これは、典型的なボットネットではありません。同じ論文から:

次に、特別な目的のハードウェアを検討すると、最も楽観的なアプローチでは、1024ビットのRSAモジュラスのふるい分けは、1年で約10,000,000米ドル、さらに1回限りの開発コストは約2,000万米ドルで、同等の時間とコストで実行できることが示唆されています。マトリックス用。私たちの意見では、そのようなデザインが遭遇する(一般的な)懐疑論は重要ではありません。このような数値は、上限、つまり「注意してください。1024ビットRSAは2年間で約2,000万ドル(無料開発を想定)で破られる可能性があります」ではなく、下限、つまり「心配する理由はありません」と解釈する必要があります。多すぎる:非常に好ましい攻撃条件下でも、1024ビットのRSAモジュラスを因数分解するには膨大なリソースが必要です。」したがって、見積もりは脅迫的ではなく、自信を刺激するものとして読む必要があります。

または1歳から PCProの記事

これを概観すると、RSAの1,024ビットキーを解読するには、Kasperskyは、成功するために1年間で1500万台のコンピューターが完全に稼働しなくなると見積もっています。

率直に言って、1つのドメインのZSKを解読するためにその量の努力を払う人は誰もいないでしょう!

その上、本当のセキュリティは鍵署名鍵にあり、それらは通常少なくとも2048ビットであり、多くの場合それより長い(4096ビット)。 RSAキーを解読するのにかかる時間は、直線的ではなく、キーの長さとともに指数関数的に増加します。

14
Alnitak

A LWNへのコメント クレーム

DNSCurveは、メッセージではなくコンジットを保護します。悪意のあるキャッシュから保護するために使用することはできず、DNSSECと機能的に同等ではありません。

フランス語でのディスカッション へのリンク。

4
TRS-80

「暗号化」ではなく「信頼」を理解することが重要であり、セキュリティの鍵となります。 「暗号化」を使用して誰かと「安全な」会話をすることができますが、相手があなたが思っている人ではない場合、どのようなメリットがありますか?

DNSSecとDNSCurveの主な持ち帰りの違いは、DNSSecがすべてに署名することです。ルートから、各オペレーターのDNSサーバーによって提供されるホストレコードまで、明確な信頼チェーンがあります。

DNSCurveは、信頼チェーンがまったくないものには署名しません。 DNSCurveの焦点は、DNS応答のパッシブまたはブラインドポージングを防ぐことに限定されています。

それは実用性に要約されます... DNSSecには大きな運用上の課題があります-惑星のサイズのトラストアンカーを実際にどのように作成しますか?何百万ものドメインが署名されているとき、署名を偽造するために必要なキー情報が悪意のある人の手に渡ったり、不適切に使用されたりしないという確信を植え付けるためにどのようなメカニズムが使用されますか?大規模な信頼は、運用の観点から、撤回して維持することは非常に困難です。

DNSCurveは試みさえしません。

ここで基本的な質問に答えたので、実際に解決すべき問題は何か、2つのテクノロジーのどちらがより適しているかについての私の見解を示します。

インターネットは本質的に、顕著な議論や啓蒙主義と同じくらいナンセンスなものです。私の見解では、完全に信頼できるインターネットは合理的または入手可能な目標ではなく、そうなるとしたら、自由と匿名の言論や行動の面で否定的な影響が生じる可能性があります。

私の意見では、必要なのは、基盤となるトランスポートと同じくらい信頼できる最低のDNSソリューションだけです。誤ったメッセージを盲目的に挿入したり、要求を受動的にスニッフィングしてUDP応答を偽造したりする攻撃者による、DNSレコードのポイズニングを実質的に防止する必要があります。それ以上のセキュリティを保証する必要はありません。このようにして、インターネットは引き続きパケットをルーティングし、信頼できるが必ずしも安全ではない方法でDNSサービスを提供します。

私の意見では、DNSSecとそのグローバルなトラストアンカーは、存在しない問題の解決にほぼ完全に焦点を当てた愚かな用事です。 (インターネット経由で使用できるすべてのエンドエンド暗号化システムには、IDを検証するための独自の方法がすでにあります)

DNSSecは遅く、費用がかかり、IPv6への移行のようなDNSの明確で現在の問題は、昨日解決されるべきであったことを大幅に遅らせます。

DNSCurveが行うことは、ネットワークを保護して、ネーミングサービスが最低ネットワークを介したパケットの基本的な転送と同じくらい信頼できるようにすることですが、それ以上ではありません。私の見解では、それは現実の世界で実際に直面している正確な問題を解決します。 DNSCurveはパッシブMITMを防止しますが、sshスタイルの「leap-of-faith」署名キャッシングなしではアクティブMITMから実質的に保護しません。

DNSSecの大規模な展開を提唱する悪魔を演じることは、潜在的にプラスの影響を与える可能性があります。 PKIインフラストラクチャは、SSLセキュアサーバーCAを置き換え、IPSecおよびピア間のその他の暗号化された会話に信頼バインディングを提供できます。

1
Einstein