11

私は過去 2 時間かけてパスワードのソルティングについて読み、その考えを理解していることを確認しました。皆さんの何人かが、私の結論についての知識を共有してくれることを願っていました。


私が攻撃者であり、ユーザー データベースへのアクセス権を取得した場合、テーブルに存在するすべてのユーザーごとのソルトを取得し、それらを使用してレインボー テーブルを作成できます。大きなテーブルの場合、これには長い時間がかかる場合があります。リストを関心のあるユーザー (管理者、改造者) に絞り込むことができれば、より大きな辞書リストを使用してレインボー テーブルを作成し、ヒット率を上げることができます...

これが本当なら、塩漬けは実際にはそれほど役に立たないようです. 攻撃者の速度をわずかに低下させるだけです。

複雑なパスワードを強制し、一意のランダムな文字列でソルトするのが理想的ですが、複雑なパスワードを強制することはユーザーを悩ませる可能性があるため (私はそれが私を悩ませることを知っています)、多くのサイトではそれを行いません。サイトはこれでユーザーに不利益を与えているようであり、複雑なパスワードを強制することは、適切なソルティング方法よりもはるかに重要です.

これはあまり質問ではなく、状況に関する他の人への知識の要求だと思います。

4

7 に答える 7

14

ソルトのポイントは、攻撃者が既存の辞書を使用してシステム内のユーザーを攻撃できなくなることです。ユーザーごとに、そのユーザーのソルトを使用してまったく新しい辞書を作成する必要があり、時間と労力がかかります。システムのすべてのユーザーに対して辞書が作成される前に侵害について知った場合は、行動する時間があります。(ログイン認証情報を変更する必要があることをユーザーに警告します。これにより、新しいランダム ソルトが生成されます。)

ソルトと、ユーザーが許容できる最も複雑なパスワード (実際にはパスフレーズ) の両方を使用する必要があると思います。それでもなお、ソルティングは基本的なセキュリティ対策であり、それなしでは本当に余裕がありません.

于 2009-11-17T03:27:55.400 に答える
6

適切な水分補給を維持することは、呼吸よりも重要ですか?

于 2009-11-17T03:40:02.340 に答える
5

私は、ほとんどの Web サイトで、ユーザーごとのソルト、グローバル ソルト (アルゴリズムごとのソルト)、および適度なパスワードの複雑さの規則 (少なくとも 2 つの大文字/数字/句読点の組み合わせを含む 8 文字以上) を使用するアプローチを好む傾向があります。ソルトを使用するには、ユーザーごとに一意のソルトを想定して、壊したいアカウントごとにレインボー テーブルを生成する必要があります。グローバル ソルトを使用するには、DB とアプリケーション サーバーの両方を危険にさらす必要があります。私の場合、これらは常に 2 つの別個のシステムです。パスワードの複雑さのルールを使用すると、単純で推測しやすいパスワードが使用されるのを防ぐことができます。

より多くの権限を持つアカウントの場合、より複雑なパスワードを適用する必要がある場合があります。たとえば、AD フォレストの管理者には、15 文字以上のパスワードが必要です。パスワードではなくパスフレーズを使用する必要があるため、実際には短いパスワードよりも簡単です。

また、適切なパスワードまたはパス フレーズの作成方法をユーザーに指示し、データを保護するための技術的手段をすべて回避するさまざまなソーシャル エンジニアリング攻撃に注意する必要があります。

于 2009-11-17T03:29:26.043 に答える
4

さて、実際の数値を見てみましょう。

Nvidia 9800GTX 1 台で 1 秒あたり 3 億 5000 万の MD5 ハッシュを計算できます。このレートでは、大文字と小文字の英数字のキースペース全体が 7 日で完了します。7文字、2時間。ソルティングを適用すると、アルゴリズムに応じて、これらの時間が 2 倍または 3 倍になります。

安価な最新の GPU は、1 秒あたり 10 億の MD5 ハッシュを容易に誇示します。決心した人々は通常、これらのうち約 6 つをリンクし、毎秒 60 億を取得し、26 日で 9 文字のキースペースを廃止します。

このレベルの複雑さの後にプリイメージ攻撃が適用される場合と適用されない場合があるため、ここではブルート フォースについて話していることに注意してください。

プロの攻撃者から防御したい場合、1 秒あたり 1 兆ハッシュを取得できない理由はありません。専用のハードウェアまたは安価な GPU マシンのファームのいずれか安価な方を使用するだけです。

10 文字のキースペースは 9.7 日で完了しますが、11 文字のパスワードは 602 日かかります。この時点で、10 文字または 20 文字の特殊文字を許可文字リストに追加しても、10 文字のキースペースのクラック時間はそれぞれ 43 日または 159 日になるだけであることに注意してください。

パスワードハッシュの問題は、無駄な破滅までの時間を短縮するだけだということです。本当に強力でありながら、保存されたハッシュ化されたパスワードと同じくらい単純なものが必要な場合は、PBKDF2 を使用してください。

さらに、もう 1 つの問題があります。ユーザーは、他のすべてのサイトで使用を強制されたこの「強力な」パスワードを使用するでしょうか? マスター パスワード ファイルに保存しない場合でも、保存することは間違いありません。そして、それらの他のサイトは、あなたが使用するのと同じ強力なハッシュアルゴリズムを使用せず、システムの目的を無効にします. ユーザーが複数のサイトで同じパスワードを使用するのを防ぐためでなければ、ハッシュを非常に強力にする必要がある理由がわかりません。攻撃者があなたのハッシュにアクセスできた場合、あなたはすでに負けている可能性が高いです。

一方、ハッシングスキームがどの程度「安全」であるかについて質問する人に何度も繰り返しますが、クライアント証明書を使用するだけで、すべての問題が解決されます。ユーザーが複数のサイトで同じ資格情報を使用することは不可能になり、攻撃者は資格情報を変更せずに資格情報を解読できなくなり、スマート カードに資格情報を保存している場合、ユーザーは資格情報を簡単に盗むことができなくなります。

あなたの質問に素朴に答えるには: 強力なパスワードは、強力なハッシュ アルゴリズムによってのみサポートされます。

于 2009-11-17T03:54:17.360 に答える
3

長い文字列の要件を除いて、すべての制約により、パスワードフェーズスペースのサイズが削減されます。制約は、複雑さの増加ではなく、減少を引き起こします。

これが直感に反しているように思われる場合は、クラッカーに信頼できる仮定を多数提供していると考えてください。私の失恋した若者からの実話でこの点を説明しましょう:

双子素数の初期の暗号化プロセッサは非常に低速であったため、人々は速度のためにint32演算を使用する傾向がありました。これにより、素数は0から40億の間であると推測できました。従来の知識では大きい方が良いと考えられていたため、人々は常に大きい素数を選びました。そこで、事前に計算された素数の辞書を使用して、既知の天井から作業を進めました。一般に、人々はその天井に近いキーを選択することを知っていました。これにより、通常、約30秒でキーを解読できました。

ロングパスフレーズを主張し、他の制約なしにソルティングを使用します。

人々が「洗練された」技術と言うとき、彼らはしばしば複雑を意味します。変換は非常に複雑でありながら可換である可能性があります。残念ながら、それが何を意味するのかわからない場合は、この手法のメリットを評価する立場にありません。アルゴリズムの複雑さは、隠すことによるセキュリティのみを提供します。これは、家を町から出してドアをロックしないのと少し似ています。

于 2009-11-18T00:50:52.433 に答える
1

ソルトハッシュなどの高度な手法を使用して、ユーザーの個人情報を安全に保ちます。

ただし、ユーザーの邪魔にならないようにしてください。提案を提供しますが、邪魔しないでください。

適切なパスワードを選択するのはユーザー次第です。適切なパスワードを選択する方法を提案し、与えられたパスワードを受け入れ、与えられたパスワードが許す限りユーザーの情報を安全に保つのはあなた次第です。

于 2009-11-17T03:39:06.157 に答える
1

真のセキュリティには、ソルト化されたパスワードと複雑なパスワードの両方が必要です。通常、レインボー テーブルは特定のサイトを攻撃するためにその場で作成されるのではなく、事前に計算されます。特定のソルト値に基づいてルックアップ テーブルを生成するよりも、単純にパスワードをブルート フォースする方がはるかに効率的です。

そうは言っても、ハッシュの目的は、データベースが侵害された場合に攻撃者がパスワードを回復できないようにすることです。攻撃者が簡単なパスワードを推測するのを防ぐことはできません。

パスワードの複雑さを要求することは、実際には、保護しているサイトの種類/データの種類の問題です。これは一部のユーザーを悩ませ、他のユーザーは自分のパスワードをポストに書き込んでモニターに貼り付けます。最後に強力なハッシュとソルトを使用することが絶対に不可欠です。これを怠ると、サイトが公開されるだけでなく、ユーザー名とパスワードの組み合わせをリサイクルするすべてのユーザーが完全に危険にさらされます.

したがって、私の意見では、サイトのセキュリティ レベルに関係なく、ソルティングは必須です。パスワードの複雑さを強制することは、セキュリティの高いサイトには適していますが、より状況に左右されることは間違いありません。ユーザー側の適切なセキュリティ プラクティスを保証するものではありません。また、安全なパスワードを必要としないサイトに安全なパスワードを要求することは、ユーザーが他のより重要なサイトで使用する高セキュリティ パスワードをリサイクルする可能性が高いため、害を及ぼす可能性があることも付け加えておきます.

于 2009-11-17T03:39:31.653 に答える