問題タブ [srp-protocol]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
3195 参照

security - ブラウザーでの TLS/SRP?

主要なブラウザで RFC 5054 の計画または既存の実装はありますか?

誰もまだ実装していない場合、どの主要ブラウザがロードマップに実装されていますか? どこ?

0 投票する
2 に答える
685 参照

algorithm - SRP が平文と同等ではないのはなぜですか?

SRP プロトコルについて: http://en.wikipedia.org/wiki/Secure_remote_password_protocol

セッション キー (K) の生成は完全に安全であることがわかりますが、最後のステップでユーザーが K (M) の証明を送信します。ネットワークが安全でなく、中間の攻撃者が M をキャプチャした場合、K がなくても認証できますよね?

0 投票する
2 に答える
1886 参照

java - アプリケーションレベルでのSecureRemotePasswordプロトコル

私はJavaEEアプリケーションを作成しています。これにより、新しいユーザーは自分で登録してからインターネット経由でログインできます。クレデンシャルとデータベースを保存しています。

さて、それを行うにはいくつかの方法があります、例えば:

  • ユーザー名とパスワードを、できればTLS/SSL接続を介して送信します
  • ユーザー名とパスワードのハッシュコードを、できればTLS/SSL接続を介して送信します
  • Secure Remote Passwordプロトコルを使用します(できればTLS / SSL接続を介して?)

いくつかの記事を読んで、Secure Remote Password Protocol(SRP)が進むべき道のようです。

しかし、他のいくつかの記事を読むと、これはTLS / SSL自体など、一部の低レベルのレイヤーでのみ使用されているようです。

それでも、アプリケーションレベルでSecure RemotePasswordProtocolを使用することをお勧めします。

これは正しいです?または、これがアプリケーションレベルで必要とされない理由はいくつかありますか?

0 投票する
2 に答える
113 参照

javascript - 転送時にサーバーの応答を変更することは可能ですか?

SRP-6プロトコルを使用してサーバーへの認証を可能にするJavaScriptライブラリを構築しています。

XSSのため、認証方法としてjavascriptを使用するのは最善の選択肢ではないことを私は知っています。しかし、適切なXSS予防は、ほとんどの問題を取り除くことができます。

私の唯一の懸念は、ユーザーがリクエストを受け取る前にサーバーの応答を変更するのがどれほど簡単かということです。

サンプルシナリオ:

ユーザーリクエストページ:http://serverdomain/home

サーバー:次のように返信します:

ユーザーが返信を受け取る前。ハッカーはどういうわけか魔法のように返信を変更できますか

これは可能ですか?これは、JavaScriptを使用して認証するときに考えられる脆弱性の1つです。

0 投票する
2 に答える
461 参照

c# - C# BigIntegers は正の modPow を取得します

安全な認証のために SRP プロトコルを実装しようとしています。私の問題は、負の数の ModPow を計算する必要があるときに、負の数も返すことです。モジュラスではなく残りと呼ばれる可能性があることは知っていますが、正しいハッシュを生成するには正のモジュラスを取得する必要があります。

どうすればそれができますか?

0 投票する
0 に答える
655 参照

c# - SRP6a の異なるセッション キー

私のソリューションで srp6 spr4net ( https://code.google.com/p/srp4net/ ) の実装を使用しようとしました。そのため、クライアント側を JavaScript から C# に書き直し、WinForm アプリにしました。そして疑問に思ったのは、そのセッション キーが一致しないということです。私は一日中それを解決しようとしましたが、結果はありませんでした.

ここに私のsrp6a実装があります:

...そしてサーバー側.. ( http://code.ohloh.net/file?fid=Xxqdu2GY4_w8UD2b_4VNP_5Cp9I&cid=bLhc6E0xdjo&s=&fp=31372&projSelected=true#L0 )

おそらくセッション キーの式に誤りがあるのでしょうが、どこにあるのかわかりません :C

0 投票する
1 に答える
358 参照

erlang - SRP6 の異なるセッション キー

crypto モジュールを使用して Erlang に SRP6 を実装しようとしていますが、一致するセッション キーを取得できません。256 ビットの素数を使用しています。1024 ビットの素数を使用すると、それらは一致します。オプションの scrambler パラメータを crypto:compute_key で除外しましたが、違いはありません。

セッションキーが一致しない理由を理解してくれる人はいますか?

要点はここにあります https://gist.github.com/jcclinton/4cdc9f616927677737a2

0 投票する
0 に答える
715 参照

linux - パスワードファイルをopenssl srpに渡す方法

以下のように -passin param を使用してファイルを介して openssl srp にパスワードを渡そうとしていますが、エラーが発生します。

次のエラーが表示されます

私が犯している間違いを提案できますか。
ありがとう

0 投票する
0 に答える
646 参照

ssl - nginx は SSL-SRP をサポートしていますか?

nginx は SRP (セキュア リモート パスワード) プロトコルをサポートしていますか?

ssl_ciphers ディレクティブが OpenSSL で使用される形式を受け入れることがわかりますが、nginx が OpenSSL でサポートされているすべての暗号を実際にサポートしているかどうかは明確ではありません。

SRP に関する nginx のドキュメント (検証ファイルの指定方法など) が見当たらないのですが、これは SRP が nginx でサポートされていないということですか?

ありがとう、アリザ

0 投票する
2 に答える
370 参照

security - SRP アルゴリズムに関する質問

SRP アルゴリズムを使用しようとしていますが、いくつか質問があります。

  1. これは、SSL/TLS を使用した登録および承認 SRP アルゴリズムに使用するのに適していますか? また、SSL/TLS のみを使用する他のすべての送信については? 実装には C# ソケットを使用します。

  2. g、k、N を生成する方法は? これらをアプリ定数のように使用しても安全ですか?

  3. その SRP アルゴリズムは正しいですか?

    //M-モジュラス、g-ジェネレーター、k-乗数、I-ユーザー名、p-パスワード、s-ソルト、v-パス検証者

    登録:

    クライアント: s = randomString(); x = ハッシュ (s、p); v = g^x %N;

    sendToServer(私、s、v);

    サーバー:保存 (I、s、v);

    承認:

    クライアント: a = random(); A = g^a %N;

    sendToServer(I, A);

    サーバー: if(A != 0) { b=random(); B = k*v + g^b %N;}

    sendToClient(B, s);

    u = ハッシュ (A、B);

    if(u == 0) abortConnection();

    クライアント: if(B == 0) abortConnection();

    u = ハッシュ (A、B);

    if(u == 0) abortConnection();

    x = ハッシュ (s、p);

    S = ((B - k*(g^x %N)) ^ (a + u*x)) %N;

    K = ハッシュ (S);

    Mc = Hash( Hash(N) XOR Hash(g), Hash(I), s, A, B, K);

    sendToServer(M);

    サーバー: S = ((A*(v^u %N)) ^ B) %N; K = ハッシュ (S);

    Ms = Hash( Hash(N) XOR Hash(g), Hash(I), s, A, B, K);

    if(Mc == Ms) {Rs = Hash(A, M, K); sendToClient(Rs);}

    クライアント: Rc = Hash(A, M, K);

    if(Rc == Rs) ALL_OK();