これは、@ Brianの賢明な答えに対する実際の補遺です。また、@ Martijn Pietersは、現在のパスワードに基づいて古いパスワードをブルートフォースする方法についての詳細と、「ハミング距離」について@ratchet freakに追加しました。答えを削除するわけではありません。なぜなら、それはそれらをバックアップする興味深い背景を提供すると思うからです。
最先端のパスワードストレージでは、ユーザーごとに一意のソルト(128ビット以上)を備えた強力な一方向暗号ハッシュ(SHA-512 +)を複数回使用する必要があります。ただし、各パスワードに関する追加情報を保存しようとしないでください。各パスワードについて保存する情報が多いほど、ハッシュアルゴリズムのセキュリティが損なわれます。
例
次のことがわかっている場合、パスワードをブルートフォースするのがどれほど簡単になるかを検討してください。
- 7文字の長さです
- 文字3〜5は大文字です(4は小文字)
- 1と7は数字です
- 6はシンボルです
USキーボードには95文字の印刷可能な文字があるため、パスワードが7文字の長さであることを知ると、95 ^ 7 = 69,833,729,610,000 = 7x10 ^ 13の順列になります。本当にランダムな場合、1つの3Ghzプロセッサでこれを解読するには1年かかるかもしれません。しかし:
- 大文字と小文字は26文字のみです
- これらの2つの数値に対して100の可能性をもたらす10桁のみがあります。
- シンボルは32個のみです
だから(@Hellionのおかげで修正済み):
26^4 (charcters 2-5 are known upper or lower-case)
x 100 (characters 1 & 7 are digits)
x 32 (character 6 is a symbol)
====
1,462,323,200 possible passwords.
これは50,000倍簡単にクラックできます!この場合、同様のパスワードを防ぐために適切な情報を保存することで、7文字のパスワードのクラック時間を1年から数時間に短縮できました。優れたビデオカードと少しの忍耐を備えた強力なマルチプロセッサデスクトップですべてのパスワードをデコードすることは、現在非常に実現可能です。この簡単な例が、類似のパスワードをより意味のあるものと比較できるほど、ハッシュの安全性が低下することを実証することを願っています。
強力なハッシュの重要性
パスワード付きのデータベースは定期的に盗まれ、毎月ニュースで巨大な侵入があります。さて、ちょうど先月、SCの州は皆の社会保障番号を失いました -おっと!これらの違反のうちどれだけが隠蔽されますか?
おわりに
私にとって最も恐ろしいのは、複数のサイトに同じまたは類似のパスワードを選択することです。これにより、1つのサイトに侵入すると、攻撃者はすべてのサイトにアクセスできます。最も一般的な不正なパスワードを防止することは、個々のユーザーが同じサイト内で不正なパスワードを再利用することを防止するよりも役立つと思いますが、そのような状況を防止する実証済みの方法を見たいです。私が提案できる最善の方法は、安全なパスワードマネージャーを使用して、ユーザーごとに非常にランダムなパスワードを生成し、安全に保存するという会社全体のポリシーです。