2

imはsilverlight 5とWCFを使用しており、サイトはHTTPSで保護されています。ただし、 fiddler を使用すると、ヘッダーでこれを見ることができます: GET /ClientBin/XXXX-Web-MyService.svc/binary/GetUsers

ドメインの直後にそれを置く場合: https://www.mydom.com/ClientBin/XXXX-Web-MyService.svc/binary/GetUsers

テーブルユーザーからすべてのデータをダウンロードします。この情報を非表示にして保護するにはどうすればよいですか!! SSLを十分に使用していませんか?httpsを使用している場合、とにかくこれが表示されるのはなぜですか!?

ありがとうございました。

編集:私の最初の質問は「教育を受けていない」ものでした。そのため、お詫び申し上げます。

この件に関するより多くの情報を見つけ、さらに調査を行いました。SO に関するこの Q では、fiddler が https 経由で送信された要求と応答を復号化して表示できる理由についての説明があります。
Fiddler 2 が HTTPS 経由のすべての呼び出しを復号化できる場合、SSL のポイントは何ですか?

さらに困難なことに、この問題の一般的な解決策は 、System.Net 名前空間の Silverlight 実装に含まれていない System.Net.ServicePointManager の使用を必要とする「証明書のピン留め」を使用することです。

だからここで私はSSL証明書で立ち往生しています。私が支払ったものは、Web デバッグの基本的な知識があれば誰でも「クラック」できます。

4

1 に答える 1

4

純粋に理論的なコンピューター サイエンスの観点から、あなたが求めていることはほぼ不可能から実際には不可能です。攻撃から保護するには、信頼できるプラットフォームを実装する必要があります。

科学のビット、集中してください

では、基本的な理論から始めましょう。SSL、ひいては HTTPS は、非常に特殊な問題を解決します。セキュリティで保護されていないネットワークを介して、これまでに通信したことのない相手と機密情報をどのように通信しますか. この場合、重点は NETWORK にあります。これは、2 つの問題を解決することによって実現されます。

  1. サーバーの認証 (サーバーは、それが誰であるかということです)
  2. 鍵交換の非対称暗号化

これが 1 つのステップであることを確認するために、一部重複があります。これは、フィドラーがシステムを「攻撃」する場所であるため、最初に焦点を当てます。

SSL 認証は、Web of Trust の概念に基づいて機能します。お使いのコンピューターには、信頼できる検証者のリストがあります。Verisign、Thawte、Geotrust などの企業です。これらの企業は、証明書に署名することで証明書を検証します (複雑な非対称暗号化用語ですが、手書きの署名に非常に似ており、偽造が難しく、検証が容易です)。

Fiddler は、信頼できる新しい CA (検証者) をコンピューターに挿入することによって機能します。それ以降、HTTPS サイトにアクセスすると、あなたに代わってリクエストが送信され、それが読み取られ、独自の署名が付けられて転送されます。お使いのコンピュータはこの署名を完全に信頼しているため、何も問題はないと考えています。

次に、証明書のピン留めを実装します。この私見は「血まみれのひどい」です。特定の SSL 証明書を期待するようにソフトウェアに指示することで機能します。ダメな理由は2つ。

  1. Fiddler を使用できる場合は、dotPeek を使用して、証明書のピン留めなしで再コンパイルできます。
  2. 証明書が失効すると、クライアントは接続できなくなります。

証明書が取り消されるのはなぜですか? CA が秘密鍵を紛失した場合、その秘密鍵が取り消され、代わりの鍵が送付されたことを確認する義務があります。また、すべての証明書にも販売期限があり、においがし始める前に交換する必要があります。

では、最後に何ができるでしょうか?

SSL は、マシン上で行っていることから保護するようには設計されていません。あなたが求めていることを行う最も簡単な方法は、対称 (または非対称) 暗号化の追加レイヤーで WCF 呼び出しを単純にラップすることです。しかし、もう一度。キーはどこかに存在する必要があるため、クライアントはバイナリの単純な逆アセンブルからキーを取得し、独自のプロキシを構築できます。

結論は

これは、DRM の問題とほとんど同じです。顧客にマシン上の何かへのアクセスを許可したいが、それがどのように機能するかを見せたくない. この問題を解決できた場合は、フォローアップを投稿してください.

于 2013-03-10T14:09:18.733 に答える