-1

私はこのサイトhttp://www.openwall.com/phpass/を知っていますが、アイデアは主にシステムのソルトにあります。

たとえば、ZEND は system('uname -a') を使用し、ROW LEVEL ユーザー SALT 暗号化を使用するために md5() にハッシュされます。これは、ユーザー パスワード、ユーザー ログイン名/電子メール アドレス、およびサーバー名を sha1/md5/... として組み合わせたものです。

しかし、私の考えは、system('uname -a') などの STATIC SALT の代わりにDYNAMIC SALTを生成することです。たとえば、ユーザーがログインするたびに、SALT は変更されますが、ユーザーのパスワードは変更されません。

セキュリティ上の理由から、データベースまたは外部ファイルのソルトを毎日動的に変更するか、別のサーバーからのデータをソルティングのためにチェックするなどのサードパーティを使用する必要がありますか?

ユーザーデータベーステーブルと現在のログインでユーザーの機密データを保護するための最良の方法は何ですか. クッキーも私にとって非常に悪い安全なオプションです。PayPal API Tokenize やユーザー ID などの機能が必要です。

現在使用しています:

  1. すべてのユーザーからのソルト
  2. ハッシュされたシステムからのソルト
  3. ユーザーパスワード、ユーザーソルト、システムソルトのハッシュ化された組み合わせ
  4. SHA-512 crypt() または bcrpyt() クラス
  5. 動的塩?考え?
4

3 に答える 3

1

それは間違っている。

パスワードの再ハッシュに関する重要な事実が欠けていると思います。そのためには、回復可能な形式で保存する必要があります。したがって、システムが危険にさらされた場合、さらに大きなセキュリティ リスクが生じます。

これが私がすることです:

  • パスワードを 60 日で期限切れにする (または、あまり頻繁ではない別の番号を選択することもできます)。
  • ユーザーが新しいパスワードを設定するたびに、ランダムなソルトを生成します
  • crypt()、使用CRYPT_SHA512、またはCRYPT_BLOWFISHハッシュアルゴリズムでハッシュを構築する
  • ラウンドの量を少し多めに設定してください.. 20'000 で十分です
  • crypt()フィールドに返される結果全体hashを db に保存します。

また、読むことも有益かもしれません:パスワードを適切にソルトする、ペッパーに対するケース

于 2012-06-09T10:04:55.947 に答える
0

塩を変えても改善されません。

ポイントは、パスワード入力をハッシュと比較するときに入力をハッシュする必要があるため、ソルトとハッシュを常にどこかに一緒に保存する必要があることです-明らかですよね?

つまり、これがポイントです。ログインのたびにソルトを変更し、パスワードの奇妙な再ハッシュを行っても、攻撃者がデータベースを取得するとすぐにハッシュとソルトの両方を持っているため、何も変わりません(一緒に保存されている場合、これは、ユーザーごとに異なるソルトを常に使用する場合に必要です。これは、すべきことです)。

はるかに優れた方法は、1000 ~ 10000 ラウンドのハッシュと長いソルト (ソルトに 512 バイトを簡単に使用できます) を使用してハッシュを拡張することです。これらは、再ハッシュを行うよりも優れたヒントです。

とにかく: 本当に PHP アプリケーションを改善したいのであれば、SQL インジェクション、XSS、CSRF、RFI、LFI、ファイル漏えい、RCE などのセキュリティの問題を回避することに集中する必要があります。ログイン スクリプトを使用して、誰かがログインを試みるたびにプレーンテキストの資格情報を含む電子メールを彼に送信します。(まあ、CRAM-MD5 http://en.wikipedia.org/wiki/Challenge-response_authenticationのような JavaScript で実装されたチャレンジ/レスポンス認証を使用するか、RSA (これも JS で実装されています) を使用して安全に送信する場合、これを回避することもできます。ログインデータ)。

于 2012-06-08T23:22:18.917 に答える
0

Salt は、Rainbow Table などの事前計算攻撃を防ぐためにのみ使用されます。したがって、誰かがハッシュをブルートフォースしたい場合、実際には実行時に一度に 1 つずつ計算する必要があります。(事前に計算されたハッシュ値のデータベースでルックアップを行うだけではありません)

解決しようとしている問題が何であるかが明確ではありません。あなたはただ言う:

「より多くのセキュリティ上の理由から、ソルトを動的に変更する必要があります」

その問題が事前計算攻撃である場合は、通常のソルトを使用してください。事前計算攻撃でない場合、salt はほぼ間違いなく間違ったソリューションです。

于 2012-06-09T00:02:00.557 に答える