1

サーバーへの通常の旅行なしでユーザーを認証するためのアイデアを探しています。クライアント側でユーザーを認証する半安全な方法は受け入れられます。

暗号化されたシークレットをjsファイルに保存することを考えています。正しいコードを持っているユーザーだけがそれを解読でき、正しいコードを入力するか、Cookieなどに保存できます。いいですね、または他のアイデアはありますか?

4

3 に答える 3

0

クライアント側の JavaScript による oauth を見てみましょう。Google で「oauth クライアント側のみ」を検索します。

たとえば、これ - https://developers.google.com/accounts/docs/OAuth2UserAgent

于 2014-01-08T20:29:57.570 に答える
0

暗号化された秘密をjsファイルに保存することを考えています。正しいコードを持っているユーザーだけがそれを復号化でき、正しいコードを入力するか、Cookieなどに保存できます。

あなたが求めていることは間違いなく可能ですが、実際に役立つかどうかはわかりません.

PBDFK2 (「パスワードベースのキー派生関数 2」) のようなキー派生関数を使用する必要があります。ユーザーがパスワードを入力すると、KDF がパスワードをキーに変換します。次に、キーを使用して AES のような強力な対称暗号を操作します (また、CBC のような安全な操作モードを使用するようにしてください)。このアプローチはかなり安全ですが、キー ロガー (OS レベルおよびブラウザー レベル) とメモリ状態の検査に対して依然として脆弱です。

ここで重要な点は、最初にシークレットを暗号化するためにユーザーがパスワードを入力する必要があることです。ユーザーにシークレットを送信してからパスワードを要求することはできません。ユーザーはパスワードを使用してメッセージを暗号化し、後でアクセスするためにシステムに同じパスワードを要求させることができます。

または、自分でパスワードを選択し、キーと暗号化されたデータを生成してから、選択したパスワードを (暗号化されたデータと共に) ユーザーに送信して、記憶または安全に保存することもできます。

実際には、CryptoJSは AES と PBKDF2 の両方をサポートする JavaScript 実装です。

于 2014-01-08T20:30:04.540 に答える