2011-01-16 12 views
1

私はWebサービスとクライアントアプリケーションで構成されるプロジェクトを開発しています。それは公正な単純なシナリオです。ウェブサービスはデータベースサーバに接続され、クライアントはウェブサーバから消費され、データベースから情報を取得する。WebServiceセキュリティ

問題は次のとおりです。 1.クライアントアプリケーションは、以前の認証後にのみデータを表示できます。 2. Webサービスとクライアント間で転送されるすべてのデータは機密でなければなりません。 3.データの完全性を損なわないでください。

これらの要件を達成するための最良の方法は何ですか? 私が考えた最初のことは、サーバーにクライアント証明書を含むデジタル署名を送信し、サーバーに格納し、認証の比較として使用することでした。しかし、私はWebサービスのセキュリティについて少し調べましたが、私はもはやこれが最善の選択肢であることは確信していません。

誰でも私にこれについての意見を与えることができますか?

クライアントとWebサービス間のすべての通信が暗号化されなければならないTIA

答えて

2

この種のセキュリティで保護された接続を実現するには、既知の適切なスキームを使用する必要があります。使用しているテクノロジ(プログラミング言語、ライブラリなど)に既知のSSLパターンがある場合は、それを使用します。

セッションが安全である場合、追加のデータ暗号化は必要ありません。 SSLの最新バージョンは、今日の標準によってかなり強力です。

C#アプリケーションの場合は、SSLでWCFを使用します。

あなたのクライアントは、彼らがすることができます知っている必要があります(私は確かに私はあなたが使用して終了アプローチが最新であることを保証するために、あまりにもMSDNを確認作ると思いますが)http://en.wikipedia.org/wiki/Transport_Layer_Security

  • http://www.codeproject.com/KB/WCF/WCF.aspx

    • サーバーを信頼するので、サーバー証明書が必要になります。そのデータにアクセスするためのパスワードだけを必要とするクライアントであれば、クライアント証明書は必要ありません。

  • 1

    。 より強くなるのは、暗号化キーの処理方法です。

    マイクロソフトのwcfには、証明書やその他のオプションを使用したメッセージ認証があります。

    (メッセージ内の)クライアントに送信する「データ」に署名アルゴリズム(md5など)を使用することもできますが、攻撃者がそれを行うこともできます。したがって、強力なオプションは、秘密鍵を使用して署名を使ってデータを暗号化しますが、秘密鍵を今すぐ保護する必要があります。

    あなたのデータはどれくらい重要ですか?

    +0

    フォーム認証に言及して以来、クライアントがウェブページであると仮定していると思います。彼女はC#について言及していたので、デスクトップアプリケーションだと思っています。 –

    +0

    私は知っています - ありがとう、私は答えを投稿して、今それを変更した後気づいた。あまりにも疲れて...寝る必要があります。 – Dani

    +0

    デスクトップクライアントアプリケーションです。 – LauzPT