2011-07-06 25 views
1

私が作成したRESTful Webサービス用のユーザーログイン/認証クライアントを構築しようとしています。 しかし、認証APIの利用可能なJAX-RSを使用して認証を設定しようとしているときに、いくつかの問題があり、アプローチを変更することに決めました。今、私が実際にやろうとしていることは次のとおりです: ウェブページは、電子メールに含まれているuri(ユーザー/ログイン)とパスワードを ":"記号で区切ってajax POSTリクエストを送信します。このメッセージ本文は、いくつかのJavaScript libを使用してクライアントのRSAアルゴリズムを使用して暗号化され、サーバー側で解読されます。RSA暗号化javacript

問題は、Javaを使用してPublicKeyを生成し、X509パディングを使用してコード化されたbase64文字列として格納されています。

公開鍵を表すこのエンコードされた文字列をデコードするには、JavaScriptのみを使用し、実際にはそれを使用して一部のテキストを暗号化しますか?

ありがとうございます!

+0

なぜクライアントで暗号化されますか? JavaScriptで?なぜSSLを使用しないのですか? –

+1

暗号化がクライアント側であれば、クライアント側のソースを使用してMITMを復号化できれば、それを暗号化するのは何ですか?あなたはSSLでより良いです。 – Robert

+0

私は公開鍵を使ってそれを暗号化しています。サーバに秘密鍵を安全に格納して復号化しています。私が最初に見たように、MITM攻撃はPublicKeyを与えられたPrivateKeyを知ることはほとんど不可能なので、起こるはずです。 –

答えて

3

なぜメッセージ本文だけを暗号化したいのですか? SSL以上のAJAXリクエストを送信するだけで、あなたの全送信が暗号化されます。

これはコードの変更が最小限で済みます(URLの前にhttpsを入れてください)、JavaScriptでの暗号化について心配する必要はありません。

+0

私はそれについて考えましたが、サーバー上でどのように処理するのか分かりません。私は現在TomcatでJerseyを使用していますが、これに関して何か役立つものは見つかりませんでした。 –

+0

特別な方法で「サーバー上で処理する」必要はありません。SSLを有効にするだけです。私はIISの人だから、Tomcatの設定を手伝ってはいけません。 –

-3

私はbase64文字列をデコードするためにJQueryプラグインを使用しています。

$.base64.decode('yourstring'); 

詳細はこちら。 http://plugins.jquery.com/project/base64

+0

暗号化とエンコーディングは2つの異なる概念です。 –