問題タブ [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.
ssl - nginx は SSL-SRP をサポートしていますか?
nginx は SRP (セキュア リモート パスワード) プロトコルをサポートしていますか?
ssl_ciphers ディレクティブが OpenSSL で使用される形式を受け入れることがわかりますが、nginx が OpenSSL でサポートされているすべての暗号を実際にサポートしているかどうかは明確ではありません。
SRP に関する nginx のドキュメント (検証ファイルの指定方法など) が見当たらないのですが、これは SRP が nginx でサポートされていないということですか?
ありがとう、アリザ
security - SRP アルゴリズムに関する質問
SRP アルゴリズムを使用しようとしていますが、いくつか質問があります。
これは、SSL/TLS を使用した登録および承認 SRP アルゴリズムに使用するのに適していますか? また、SSL/TLS のみを使用する他のすべての送信については? 実装には C# ソケットを使用します。
g、k、N を生成する方法は? これらをアプリ定数のように使用しても安全ですか?
その 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();
srp-protocol - 安全なリモートパスワード SRP_set_authenticator()
ユーザー名/パスワードを表示するためのディスプレイも、それらを入力するためのキーボードもない組み込みデバイスで、安全なリモート パスワード プロトコルを使用しています。SRP_set_params() の代わりに SRP_set_authenticator() を使用できると言われました。これには、SRP ベリファイアを事前に計算しておく必要があります。私の質問は、ユーザー名/パスワードの SRP ベリファイアを取得する方法です。情報については、MS Visual Studio で SRP ライブラリを実行していますが、SRP ベリファイアを取得するのに役立つと思いますが、方法がわかりません。srp_st 構造体の verifier フィールドを読み取るだけですか。答えが得られたら、あなたを支持することを約束します。前もって感謝します。
delphi - SRP Delphi の実装
ついに Delphi での SRP プロトコルの実装を完了しました! openssl ライブラリを使用して、ハッシュと Bignum を計算します。
最後の実装は複雑ではありません。しかし、私は疑問に思っています:
1) ランダムなペア N, g を使用できます。N 4096 ビットは安全ですか?
2) RFC 5054 のように、K は強力なセッション キーですが、N から 4906 ビットまでの長さは 768 バイトです。では、このセッション キーを AES256 で正しく使用するにはどうすればよいでしょうか?
3) 最後に、私が書いた実装が正常に動作するかどうかをテストする方法はありますか? 私にアドバイスをくれる人はいますか?
まだ最適化されていないことを考慮して、コードを配置します。型 N、G はクラス var である可能性があります。
すべてに前もって感謝します。
スクリーンショット
javascript - Web クライアントと Java サーバー間のセキュリティ プロトコル
Web クライアント (HTML) とサーバーの間にセキュリティ層を構築しようとしています。技術的な制限により、HTTPS を有効にすることはできません。
信頼できるソースからのリクエストのみが処理されるようにサーバーを保護するにはどうすればよいですか?
Nimbus SRPを調べましたが、パスワードはクライアント側に保存する必要があるため、検査のために表示されます。
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_auth
とcognito.respond_to_auth_challenge
.
これらのプリミティブをpysrp
lib 認証と一緒に使用しようとしていますUSER_SRP_AUTH
が、私が持っているものは機能していません。
「RespondToAuthChallenge操作を呼び出すときにエラーが発生しました(NotAuthorizedException):ユーザー名またはパスワードが正しくありません」で常に失敗します。(ユーザー名とパスワードのペアは、JS SDK で機能します。)
私の疑いは、チャレンジ応答を間違って作成していること (ステップ 3)、および/または base64 が必要なときに Congito 16 進文字列を渡していること、またはその逆であることです。
誰かがこれを機能させましたか?誰かが私が間違っていることを見ていますか?
authenticateUser
Javascript SDK にある呼び出しの動作をコピーしようとしています。
https://github.com/aws/amazon-cognito-identity-js/blob/master/src/CognitoUser.js#L138
しかし、私は何か間違ったことをしていて、何がわからないのですか。