さて、私は最初に何かを認めます:DNSSec保護がどのようにうまく機能するかについての実際的な側面のいくつかは本当に理解していません( this などのリソースを読んだ後でも)。
まあ、私は確かにDNSの名前からアドレスへの解決ルックアップのアンチ スプーフィング 保護が 非常に必要 である理由を理解しています。そして、(大まかに言えば、基本的なレベルで)暗号トラストチェーンメカニズム work がDNSルートサーバーとトップレベルドメインから最下位レベルのISPと内部/企業のネームサーバーに至るまで、特定のドメイン名が実際に1つ以上の特定のIPアドレスにリンクされていることを暗号で証明するDNSSecロールの基盤を提供します。
しかし、エンドユーザーのデバイスが実際にDNSSecシステムの機能を利用して、クライアントが処理しているDNSサーバーが、特定のドメイン名が正当に解決されると言われているときに真実を伝えていることを確認する時点で、私の理解は曖昧になります特定のIPアドレスに。それは、例えば、www.example.com
は、93.184.216.34を指すように所有者が意図しているものであり、93.184.216.34は、たとえば、ブラウザに攻撃者が制御するWebページにアクセスするように指示するだけのものではありません。本物。
とにかく、ここでの私の実際の質問は、「クライアント/ DNSサーバーレベルでDNSSecがどのように機能するかを完全に理解していません。それについて説明してください。」ではありません。もっと実用的な懸念があります:実際にエンドユーザーのクライアントPCまたはデバイスを構成して、強制的に受け入れて使用するようにできますかDNSルックアップ DNSSecで暗号的に検証された結果?特定の特定のDNSサーバーを使用するようにPCを構成するのは非常に簡単です。 DNSSecインフラストラクチャによって正当であると確認されたDNSルックアップ結果のみを使用するようにPCをどのように構成しますか?またはそれを行うこともできます。 DNSSecがクライアント/ DNSサーバーレベルでどのように機能するかについて私が見逃していることはありますか?または何か他のことが起こっていますか?
(注:私は頭の中で典型的なWindowsクライアント環境の写真を尋ねていると思いますが、実際には、より一般的なコンテキストで「実際にDNSSecで発生するDNSSecでなんらかの検証/チェックがあるかどうか」クライアントレベル、またはDNSSecはクライアントが一部のDNSサーバーの最終出力を「単に信頼する」ことが期待されている純粋に外部的なものですか?そして、後者はそれを作る同じ問題のいくつかがあるだけのように聞こえますレガシーDNSシステムに問題があります。)
実際にエンドユーザーのクライアントPCまたはデバイスを構成して、DNSSecで暗号的に検証されたDNSルックアップ結果のみを受け入れて使用するように強制できますか?
直接行うことはできないと思います。あなたができるかもしれないことは、DNSSecで署名されていない応答を捨てるDNSサーバーをセットアップすることです。次に、このDNSサーバーを使用するようにローカルネットワークをセットアップできます。このDNSサーバーは、同じホスト上で実行することもできます。これを行うように構成できる既存のサーバーについては知りません。しかし、個人で使用するためにそのようなサーバーを作成することはそれほど難しくないはずです(つまり、大規模に拡張する必要はありません)。
しかし、インターネット上のほとんどのサーバーはDNSSecを使用していないため、ほとんどのインターネットからこの方法で効果的に自分自身をカットできます。実験にはいいが、実際には役に立たない。
または、DNSSecは、クライアントが一部のDNSサーバーの最終出力を「信頼する」ことが期待されている純粋に外部的なものですか?
DNSSecは通常、実際にはシステムに統合されていません。つまり、現在のWindows、Mac、またはLinuxシステム上のアプリケーションは、ホスト用に取得したアドレスがDNSSecまたは保護されていないDNSを使用して取得されたかどうかを通常認識しません。システムリゾルバーがこれを知っていても、ライブラリとプログラミング言語の現在のAPIはほとんどの場合、この情報をアプリケーションに公開しないか、APIからのこの情報がどれだけ信頼できるかが不明です。問題の複雑さに関する興味深い読み物については、 GNU Cライブラリ)のDNSSECのサポート を参照してください。
実際にエンドユーザーのクライアントPCまたはデバイスを構成して、DNSSecで暗号的に検証されたDNSルックアップ結果のみを受け入れて使用するように強制できますか?
はい、できます!これには2つの方法があります。
アプリケーションは、実行するDNSクエリを検証できます。この例は、Chrome/Firefoxの DNSSEC Validator 拡張です。ただし、これは、アプリケーション(またはアドオン)がサポートしている場合にのみ機能します。
ユーザーとネットワーク管理者は、DNSSECを検証するようにシステムを構成できるため、Originに関係なく、すべてのクエリを検証できます。これを実装する現在の最も簡単な方法は、単純な再帰リゾルバを設定し、それを介してすべてのDNSトラフィックをプロキシすることです。うまくいけば、将来的には、オペレーティングシステムの開発者がOS自体にDNSSECサポートを追加するので、これは不要です。