問題タブ [password-storage]

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 投票する
1 に答える
825 参照

security - パスワード保存ファイルへのリプレイ攻撃に対する効果的な解決策は何ですか?

ユーザー名とソルト (またはペッパー) でハッシュ化されたパスワードを含むパスワード ファイルに対するリプレイ攻撃を効果的に阻止するにはどうすればよいですか? 防止したい攻撃は次のとおりです。

  1. Alice はパスワード A を持っています。
  2. マロリーはパスワード A を知るようになります。
  3. Alice は自分のパスワードを B に変更します。
  4. マロリーは、パスワード ファイルを、アリスのパスワードが A だったときに使用されたものに置き換えます。
  5. Mallory はパスワード A を使用して alice として認証します。

OS の読み取り/書き込みアクセス許可に依存するだけでは明らかに十分ではありません。また、ハッシュ化されていないパスワードをプレーンテキストとして保存するだけでも十分です。

実際のシステムはどのようにそれを行うのでしょうか? /etc/shadow を古いものに置き換えるとどうなりますか?

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

unicode - ハッシュ時のパスワードに適した Unicode 正規化 (およびその他の処理) は何ですか?

パスワードに完全な Unicode を受け入れる場合、文字列をハッシュ関数に渡す前にどのように正規化すればよいですか?

目標

正規化しないと、あるコンピューターでパスワードを「mañana」( ma\u00F1ana) に設定し、別のコンピューターで「mañana」( ) を使用してログインしようとするとma\u006E\u0303ana、ハッシュが異なり、ログインに失敗します。これは、ユーザー エージェントまたはそのオペレーティング システムの制御下にあります。

  • それらが同じものにハッシュされるようにしたいと思います。
  • Α、А、A (ギリシャ語、キリル文字、ラテン語)などのホモグリフは気にしません。

参照

Unicode 正規化フォーム: http://unicode.org/reports/tr15/#Norm_Forms

考慮事項

  • 正規化手順は、衝突を引き起こす可能性があります"office" == "office"
  • 正規化により、文字列のバイト数が変わる場合があります。

さらなる質問

  • サーバーが有効な UTF-8 (またはその他の形式) ではないバイト シーケンスを受信した場合はどうなりますか? 正規化できないので拒否しますか?
  • サーバーがそのバージョンの Unicode で割り当てられていない文字を受信するとどうなりますか?
0 投票する
2 に答える
15738 参照

node.js - pbkdf2 を使用した SALT および HASH

次の方法を使用して、nodejs の crypto lib からソルト化およびハッシュ化されたパスワードを作成しています。

randomBytes 呼び出し (SALT の作成) では、どのサイズを使用すればよいですか? 128 ビットのソルトを聞いたことがありますが、おそらく最大 256 ビットです。この関数はバイト単位のサイズを使用しているように見えますが、32 (256 ビット) のサイズで十分だと思いますか?

pbkdf2 呼び出しの適切な反復回数とキーの長さ (keylen) はどれくらいですか?

また、ストレージについては、salt、length、iterations、および derviedkey を同じ列に格納する例を見てきました。4 を で区切る例を使用しています::

これを行うと、分離し::て 4 つの値を取得できるので、提供されたパスワードに基づいて派生キーを生成し、一致するかどうかを確認できます。これは正しい保存方法ですか?それとも、これらの値を組み合わせる際にもう少し「欺く」べきでしょうか?

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

c++ - シンプルなパスワード マネージャーでパスワードを更新する

私は C++ で単純なパスワード マネージャーを作成していますが、プログラムを閉じた後、パスワードを最新の状態に保つ方法を知りたいと思っています。

プログラムでパスワードを更新すると、プログラムを終了した後、ソース コードにあるものに戻るだけだと思います。プログラムを閉じた後、変更を永続化する方法はありますか?

パスワードを変更するときにパスワードリストを出力ファイルに何度も書き込む以外に、これを行う別の方法はありますか?

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

ruby - CouchRest と BCrypt を使用して CouchDB にパスワードを保存するにはどうすればよいですか?

これは CouchDB 固有のものではありませんが、私が使用しているライブラリ. Rubyでcouchrest_modelを使用して、以下のUserようなモデルを作成しています:

ここにパスワードを保存することと混同しています。BCrypt を使用したいのですが、次のようなことをすると:

User::BCryptHashそれは初期化されていない定数だと言われます。もちろん、bcrypt事前にライブラリが必要です。その BCrypt の問題を解決するのを手伝ってもらえますか、またはパスワードを CouchDB に保存する別の方法を提案してもらえますか? パスワードのハッシュについて調べましたが、これを実装する方法がわかりません。

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

php - sha1() をパスワードに何度も再適用すると、まったく役に立ちますか?

PHP sha1() はハッシュの長いリストと比較することで非常に簡単に壊れる可能性があるため、これはより良いことでしょうか (基本的には、sha1() を何度も適用して、ハッシュ プロセスを遅くすることでブルート フォースを非現実的にしようとします)。 :

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

.net - アプリケーションにパスワードを安全に保存する方法

これに対する答えは単純にノーだと確信していますが、すべての根拠をカバーしたいと思います。

.net のコンテキストで、Web アプリやサービスではなく、エンド ユーザーが同じサービスに直接アクセスせずにサービスにアクセスできるアプリを作成する方法はありますか?

または、より具体的に言えば、パスワード、何らかの形式の資格情報をアプリ内またはアプリとファイル (どちらもユーザーもアクセスできる) 内に保存する方法はありますか?資格情報を抽出し、そのサービスに一般的にアクセスするために使用しますか?

これを非常に困難にする可能性があることは認識していますが、このシナリオとセットアップを考えると、これらの資格情報とこのパスワードの取得を多かれ少なかれ不可能にすることはできないという印象を受けています. 利害関係者に安全であることを保証できる方法はありますか?