4

XMLリクエストで暗号化されたタグを使用して、SOAP Webサービス(Ruby 1.8.7 /Rails2.3.5でRedHatEnterprise Linux5のdatanoisegemを使用してデプロイ)の呼び出し元を認証したいと思います。通常、クライアントはWindowsプログラム(Java / RubyではなくC#/。Net Windowsプログラム)であり、キー/ソルトに基づいてWebサービスへの呼び出しごとにさまざまな暗号化キーを生成する必要がありますが、サーバー側は常に秘密鍵でデコードします。有線の暗号化されたトークンを知っていても、サードパーティのプログラムが完全に暗号化されたトークンを複製してWebサービスにアクセスすることはできません。私はOpenSSLを調べていますが、暗号化の初心者です。識別のために暗号化される文字列は、(他の項目の中でも)信頼できるクライアントのMACIDである可能性があります。

Ruby側には多くの可能性がありますが、理想的には、ソリューションがWindowsクライアント側にライブラリやインストールの要件を課さない(または最小限に抑える)ことを確認する必要があります。私が最も苦労しているのは、電話をかけるたびに新しいキーを生成する方法です。これにより、トラフィックを盗聴する人は、キーにアクセスして暗号化されたタグを作成するモードを簡単に推測することはできません。

4

1 に答える 1

0

ここで発信者を認証していて、発信者が送信する内容だけを認証しているとは限らないため、認証メカニズムを SOAP リクエストに入れる必要はありません。他の人はWS-Securityであなたが求めていることをやろうとしました。

ただし、スキームのセキュリティには問題がありましたが、おそらく最大の障害は、Ruby で利用できるサポートがないことです (少なくとも私が知っていることです。間違っていたら訂正してください!)。

おそらく、両端でクライアント認証を実現する最も簡単な方法は、相互認証 TLS (以前の SSL) を使用することです。これにより、トランスポートレベルでの認証が保証されます。これで十分です。実際の認証は、最初にクライアントから送信された証明書の有効性を確認することで行われ (Ruby OpenSSL がそれを処理します)、それが確立されると、管理している既知の証明書のホワイト リストと照合します。あなたのサーバー。

独自のスキームを考え出さないでください。暗号化プロトコルは正しく理解するのが最も難しいものの 1 つです (それが WS-Security に問題がある理由です)。

于 2012-07-28T03:41:36.163 に答える