3

PHP5.3以降のパスワードハッシュにbcryptを使用しています

bcryptは、アイテムごとに結果のハッシュに組み込まれるランダムなソルトを使用することを理解しています。これにより、各ハッシュのクラッキングが困難になり、クラッキングが防止されます

私が知らないのは、追加のアプリケーションレベルのグローバルシークレットキーを使用する正当な理由がまだ存在するかどうかです。

たとえば、パスワード文字列をハッシュするだけでなく、たとえば「password1」をbcrypt生成システムに組み込まれているランダムソルトを使用してbcryptハッシュにハッシュします(ここではhttps://gist.github.com/1053158):$ 2a $ 08 $ mjQAZ5cZi5B9u6zpUU4mGuRcvtxr1K.9ncYpxCdG.YhlD8yFG2mXK

定数を作成することもできます。例: "@#$%$%&BDFGG @ $%BNG $ Y ^ $%SEHYSZTHN $%"、その定数をアプリケーションに(アプリケーションのソースコードまたはアプリケーションの構成ファイルに)入れます。 、そしてそれをハッシュする任意の文字列に追加します。したがって、「password1」+「@#$%$%&BDFGG @ $%BNG $ Y ^ $%SEHYSZTHN $%」->は、「password1」のみとは異なるハッシュにハッシュされます。$ 2a $ 08 $ xFgULsrpoIYlbxp1IG3H8.kdVggyhm4aTQXrP2Ptu25nMBUjBdrrK

明らかに、アプリケーション自体のコンテキストでは、これはあまり役に立ちません。誰かが実行中のシステムでパスワード「password1」を試してみると、乗車のためにグローバル秘密鍵を自動的に取得するため、成功します。しかし、データベースを持っているか、データベースにしかアクセスできない場合は、グローバル秘密鍵が追加の障害になる可能性がありますか?なぜなら、グローバル秘密鍵を知らないので、単に「password1」を解読するのではなく、「password1 @#$%$%&BDFGG @ $%BNG $ Y ^ $%SEHYSZTHN $%」を解読する必要があるからです。

私が想像できるいくつかの潜在的な利点が存在する可能性があります。

  • これは、侵害されたデータベースだけを使用してハッシュを解読するのを本当に妨げる可能性がありますか?

そして、存在する可能性のあるいくつかの漠然とした欠点:

  • これにより、ハッシュされるすべての文字列に共通のスレッドが導入され、既知の場合はハッシュを解読しやすくなる可能性があります。
  • データの脆弱性が高まります。サーバーの移行中などにグローバルシークレットキーが失われた場合、データはゴミ箱になります。

だから私は、グローバルシークレットキーも持っているのが良い考えなのか、それともアイテムごとのランダムソルトで十分なのか、そしてあなたが望むすべてのものなのかを理解しようとしています。グローバルシークレットキーを使用する実装、またはそれを使用することを提案する研究を知っている人はいますか?

4

2 に答える 2

3

ソルトの唯一の目的は、事前計算攻撃(レインボーテーブルなど)を打ち負かすことです。あなたが「グローバルソルト」と表現するのは、実際には秘密鍵です。

これが役立つかどうかについては意見が異なります。防御に役立つ唯一の脅威モデルは、攻撃者がデータベースのコンテンツを取得できるが、ソースコードにアクセスできないモデルです。個人的には、これは十分に狭い可能性であり、防御する必要がなく、適切に行うために必要な労力は不当であると私は考えています。

于 2012-04-26T06:29:40.243 に答える
0

ソルトとストレッチの目的は、ハッカーがデータベースにアクセスした場合にpwdをクラックするのを困難にすることです。

アプリにグローバルソルトを追加すると、基本的にアプリとデータベース間でログインプロセスが分散されるため、必要以上に複雑になり、攻撃の可能性が高くなります。

グローバルソルトを含むハッシュをデータベースに保存しますか?次に、ログインプロセス中にdbとappの間で何を転送する必要がありますか?とにかく、アプリとデータベース間の通信を保護する必要があります(そうしないと、中間者がいるとソルティングシステムが簡単に壊れてしまう可能性があります)。

ハッカーがdbにしかアクセスできず、appにアクセスできない場合は、わずかなメリットがあるかもしれませんが、正直なところ、これは今日の非常に小さな非現実的なケースです。ハッカーは、DBの前にアプリにアクセスします。努力する価値はありません。さらに、私も間違っているかもしれません。

多くの場合、セキュリティに関しては、コーナーケースが適切に特定および調査されていないため、ハッカーによって破壊されるだけで、「新しい」アイデアを思い浮かべます。これは暗号化の古典です。それらのアイデアの何千もが劇的に失敗し、それらを使用した人々に多くの苦痛をもたらしました。創造性は暗号化における責任です。

従来の安全な通信+ランダムなアイテムレベルのソルトスキームに固執します。

于 2012-04-24T21:50:56.020 に答える