私たちのアーキテクチャは単純な N 層モデルであり、IIS7 (DiscountASP でホストされている) にある ASP.Net アプリケーションで構成され、WCF サービスでメソッドを公開します。これらのメソッドは、EF4 を使用して DB と通信します。クライアントは Silverlight 4.0 です。
3 つの重要なポイント:
認証と承認は問題ではありません。サービスへの呼び出しは匿名であり、呼び出し元の身元は気にしません。
メソッド呼び出しで転送されるデータは、機密ではありません。
誰にも電話をかけられないようにしたいだけです。
間違っている場合は訂正してください。Silverlight
ではサポートされていないため、メッセージ セキュリティはオプションではありません。
トランスポート セキュリティ (HTTPS および x.509/SSL 証明書) も Silverlight では実行できません
したがって、一定レベルのセキュリティを強化するための手順は次のとおりです。
秘密鍵は、XAP の dll の 1 つにハードコードされています。
この dll はスクランブルされているため、再設計することはできません。
秘密鍵は、すべてのサービス メソッド呼び出しにパラメーターとして送信されます。
各メソッドの開始時に、秘密鍵を DB にある元の鍵と照合します。
サービスから MetaDataExchange エンドポイントを削除します。
この最小限のセットアップと多くの欠陥を考慮すると、おそらく最大の欠陥は、転送が保護されておらず (HTTP)、秘密鍵が公開されていることです。質問は次のとおりです。
悪意のあるユーザーが私たちのシステムに危害を加えたい場合、秘密鍵を抽出し、公開されているメソッドを見つけてそれらを呼び出し始めるために、どれだけの努力が必要でしょうか?
各呼び出しで資格情報の基本的な保護を提供できる他の WCFcombiantion はありますか (HTTPS または証明書なし)?