問題タブ [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 投票する
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();

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

srp-protocol - 安全なリモートパスワード SRP_set_authenticator()

ユーザー名/パスワードを表示するためのディスプレイも、それらを入力するためのキーボードもない組み込みデバイスで、安全なリモート パスワード プロトコルを使用しています。SRP_set_params() の代わりに SRP_set_authenticator() を使用できると言われました。これには、SRP ベリファイアを事前に計算しておく必要があります。私の質問は、ユーザー名/パスワードの SRP ベリファイアを取得する方法です。情報については、MS Visual Studio で SRP ライブラリを実行していますが、SRP ベリファイアを取得するのに役立つと思いますが、方法がわかりません。srp_st 構造体の verifier フィールドを読み取るだけですか。答えが得られたら、あなたを支持することを約束します。前もって感謝します。

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

delphi - SRP Delphi の実装

ついに Delphi での SRP プロトコルの実装を完了しました! openssl ライブラリを使用して、ハッシュと Bignum を計算します。

最後の実装は複雑ではありません。しかし、私は疑問に思っています:

1) ランダムなペア N, g を使用できます。N 4096 ビットは安全ですか?

2) RFC 5054 のように、K は強力なセッション キーですが、N から 4906 ビットまでの長さは 768 バイトです。では、このセッション キーを AES256 で正しく使用するにはどうすればよいでしょうか?

3) 最後に、私が書いた実装が正常に動作するかどうかをテストする方法はありますか? 私にアドバイスをくれる人はいますか?

まだ最適化されていないことを考慮して、コードを配置します。型 N、G はクラス var である可能性があります。

すべてに前もって感謝します。

スクリーンショット

ここに画像の説明を入力

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

javascript - Web クライアントと Java サーバー間のセキュリティ プロトコル

Web クライアント (HTML) とサーバーの間にセキュリティ層を構築しようとしています。技術的な制限により、HTTPS を有効にすることはできません。

信頼できるソースからのリクエストのみが処理されるようにサーバーを保護するにはどうすればよいですか?

Nimbus SRPを調べましたが、パスワードはクライアント側に保存する必要があるため、検査のために表示されます。

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

python - AWS Cognito の python boto3 で USER_SRP_AUTH を実装する

Amazon は、高レベルの認証ユーザー操作を提供する iOS、Android、および Javascript Cognito SDK を提供します。

たとえば、こちらのユース ケース 4 を参照してください。

https://github.com/aws/amazon-cognito-identity-js

ただし、python/boto3 を使用している場合は、プリミティブのペアcognito.initiate_authcognito.respond_to_auth_challenge.

これらのプリミティブをpysrplib 認証と一緒に使用しようとしていますUSER_SRP_AUTHが、私が持っているものは機能していません。

「RespondToAuthChallenge操作を呼び出すときにエラーが発生しました(NotAuthorizedException):ユーザー名またはパスワードが正しくありません」で常に失敗します。(ユーザー名とパスワードのペアは、JS SDK で機能します。)

私の疑いは、チャレンジ応答を間違って作成していること (ステップ 3)、および/または base64 が必要なときに Congito 16 進文字列を渡していること、またはその逆であることです。

誰かがこれを機能させましたか?誰かが私が間違っていることを見ていますか?

authenticateUserJavascript SDK にある呼び出しの動作をコピーしようとしています。

https://github.com/aws/amazon-cognito-identity-js/blob/master/src/CognitoUser.js#L138

しかし、私は何か間違ったことをしていて、何がわからないのですか。