web-dev-qa-db-ja.com

推測可能なパスワードの大規模なブラックリストは役に立ちますか?

適切なパスワードを作成するための提案はすべて、コンピューター(または、可能性としては、複数のGPUを備えたコンピューターのネットワーク)が推測できない文字列の作成に焦点を当てています。ユーザーがパスワードを作成するときに使用するパスワードメーターを置くと、これに少し役立ちます。大文字、小文字、数字、記号を組み合わせた8文字以上のパスワードを適用する。ただし、パスワードメーターとルールは、次のパスワードから保護できません。これらはすべてlookかなり良いパスワードです。

qeadzcwrsfxv1331
Coneyisland9/
n3xtb1gth1ng,
Oscar+emmy2.
":LOL1313le
Sh1a-labe0uf,
DG091101%

これらのパスワードはすべて、Ars Technicaで この記事 を使用してすばやく解読されました。クラッキングアルゴリズムの複雑さ、創造性、スピード、および包括性と競合することは不可能のようです。

だから私の質問です。理論的には、数百人のクラッカーがハードウェアとクラッキングプログラムを使用してすべての推測の大規模なリストを生成し、さらにそれらを追加して、リストにクラッキングプログラムに組み込まれる可能性のある新しい推測が含まれている場合(たとえば、別のサイトがハッキングされた場合、漏えいしたすべてのパスワードがブラックリストに登録されるでしょう)、これは安全なパスワード生成ツールとして実現可能に役立ちますか?それとも簡単に回避できますか、それとも私には見られない大きな問題がありますか?

この膨大なブラックリストはおそらくクラウドソーシングする必要があり、クラッカーが利用できるため、クラッカーが追加できる可能性があるものでさえ、クラッカーの利点に利用できる方法はありますか?または、このリストを使用すると、何があっても仕事が難しくなりますか?

それが役に立たない理由は他にありますか?

5
brentonstrine

これらのパスワードはオフライン攻撃に基づいています。つまり、攻撃者はハッシュを持っていて、それを解読しようとしています。それが問題である場合は、scrypt、bcrypt、またはPBKDF2などを使用してパスワードハッシュを強化し、オフラインでの攻撃を困難にします。

オンライン攻撃が心配な場合は、アカウントのログインレートをある種の指数バックオフで制限するか、不正なログインが何度か試行された後にIPをブロックしてください。いずれの場合も、オンライン攻撃を非常に遅くして、攻撃者が「p4ssw0rd」を通過できないようにします。

4
David

ブルートフォース攻撃には、3つの異なる種類があります。

  1. 一般的な辞書攻撃:100の最も一般的なパスワードを言います。またはトップ30000、または何でも。通常、浅い攻撃は、弱いターゲットを狙い撃ちするために探している多数のターゲットに対して実行されます。

  2. 徹底的な辞書攻撃:さまざまな程度の網羅性。すべての一般的なパスワード、すべての辞書の単語とキーボードパターン、文字を数字に置き換え、数字と記号を追加、記号を挿入...など。通常、非常に標的を絞った攻撃です。

  3. 完全網羅的攻撃0x00から始めて、上に向かって進みます。十分長く続ければ、100%の成功率。非常に的を絞った、特に実用的ではありません。

だから問題は、あなたはどの辞書を守っていますか?簡単な解決策は、パスワードが対応する攻撃辞書にないことを確認することです。

1の確認は、Linuxなどのより高度なシステムですでに行われているものです。しかし、残念ながら、2のパスワードリストは、数ギガバイトまたはテラバイトの長さになる可能性があります。使用時にオンザフライで生成されるため、これに対するチェックは、ストレートルックアップではなく、少なくとも部分的にプログラムで行う必要があります。攻撃に一般的に使用される防御とほぼ同じリストを使用している限り、すべての簡単なものをキャッチする必要があります。 もちろん、非常に長いパスワードを作成する場合を除いて、防御することは不可能です。あなたはどちらをすべきか。今日の標準では、使用可能な文字の選択(大文字、数字、記号など)に応じて、最低12から16文字

2
tylerl