web-dev-qa-db-ja.com

辞書を使用した攻撃に対する防御

パスワードに対する攻撃には、辞書を使用するものがあります。 YunSUanLinArtibichokeなど、辞書に関係のない意味のないパスワードを使用する方が安全ですか?

13
Albert

攻撃者は多くの場合、辞書だけでなく、辞書の単語を置換するルールも使用します。

たとえば、規則は、同じように見える特定の文字を数字に置き換えることです。これはPasswordP455w0rdに変換します。

この場合に適用できるルールは、単語から1文字を削除することです。つまり、1文字を削除するか、意図的にスペルを間違えることでパスワードを並べ替えるだけで、より良い可能性が得られますが、保証はされません。

具体的に質問に答えるにははい、辞書で単語を使用するよりも意味のない単語を使用する方が安全です。

しかし、それはあなたが得ることができるほど安全ではありません。オフラインパスワードマネージャーは、本当にランダムなパスワードを生成し、暗号化して保存します。これは、パスワードマネージャーのロックを解除するためのマスターパスワードを除いて、パスワードを入力する必要がないことを意味します。

これを実証するには、安全であると考えるパスワードを自分自身に尋ねてください:YunSuanLin0または[D@,7##M]enMd*)j5fxG~KQ~?r\<DdV^

47
MechMK1

これは明白な答えがある質問のように見えるかもしれませんが、それほど簡単ではありません。

辞書に表示されない単語は、ランダム性(「エントロピー」)が多く、コンピュータで推測するのが難しくなります。

しかし、それらは人間にとっても覚えにくいです。そして、それはパスワードの再利用につながります。それは非常に悪いです。

パスワードマネージャーを使用しない場合(そして使用する必要があります!)、ランダムな辞書の単語の文を使用する方が、ランダムな非単語よりも安全です。これについて詳しくは、こちらをご覧ください: どのパスワードを使用する必要がありますか? (非常に正確でわかりやすい視覚的な説明があります)

パスワードマネージャーの詳細については、 こちら をご覧ください。

17
Jenessa

「より安全」は相対的な用語です。何よりどのような状況で安全ですか?

純粋な理論的条件の下で、ある種のブルートフォース攻撃を想定すると、攻撃者が徹底的な検索の前に辞書攻撃を試みる可能性が高いという意味で、意味のない単語は「安全」です。

実際の状況では、辞書攻撃は2つの状況下で発生します。a)あるシステムにブルートフォースする方法と、b)漏洩したパスワードハッシュのデータベースでパスワードを破る方法です。

A)の解決策は、壊れたソフトウェアを使用しないことです。ソフトウェアが10、100、またはその他の失敗した試行回数の後に攻撃者をロックアウトしない場合、ソフトウェアは壊れています。

B)の場合、攻撃者は多くのユーザーが使用する通常の単純なパスワードを破った後に停止する可能性があります。彼はそれをもう少し実行する可能性が高いですが、すべてのパスワードを取得するまでクラッカーを実行し続けることは珍しいでしょう-おそらく、彼の時間とリソースをよりよく費やすことができる簡単なターゲットを持つ、さらにいくつかのリークされたデータベースがあります。

B)の場合、辞書になく、単純な順列ではないパスワードを使用すると(クラッカーは通常の「Oをゼロに置き換える」置換などについて知っています)、habebeenpwned.comにアクセスしない可能性が大幅に向上します。

1
Tom

辞書に関する限り、辞書には最も一般的に使用されるパスワードのリストが含まれていますが、それは意味のない語句や単語でもかまいません。たとえば、x + Word + 123またはx + monkeyは、qwertyとともに最も一般的に使用されるパスワードの一部であり、実際には意味がありません。したがって、意味のないパスワードを使用できますが、それらが予測不可能であり、それほど一般的ではないことを確認してください。また、パスワードを強化したい場合は、複数のフレーズの最初の2語または3語を組み合わせることができます。さらに、パスワードに特殊文字を追加できれば、はるかに安全になります。

0

TL; DR:パスワードを生成する最も安全な方法は、一般にパスワードマネージャーを使用することです

ハッシュをクラックしたり、ログイン試行をブルートフォースにしたりする人は、問題の可能性のあるパスワード(またはパスワードハッシュ)を見つけるためのツールをいくつか持っています。辞書や単語リストはこれらの1つにすぎません。したがって、辞書のみに対する防御手法を制限するだけでは不十分です。

他の人が述べたように、攻撃者がhashcatやJohn the Ripperなどのツールを使用している場合、ルールは、ワードリストにある単語を「強化」するように定義されています。これらのルールは比較的簡単に定義できます。しかし、攻撃者はこれらのルールをどのように知っていますか?そして、これらの辞書はどこから来たのですか?

2番目の質問は簡単に答えることができます:悪名高い rockyou.txt のように、他の多くの辞書は、メジャー(またはマイナー)企業のデータ侵害の後に公開されます。

今、あなたはあなたの単語リストを手に入れました。ルールセットはどこで入手できますか?

それらの辞書に戻りましょう。 IIRC rockyou.txtには約1,400万のパスワードが含まれています。何百万ものユーザーパスワードが1か所にあり、最もよく使用されるパスワード、ユーザーが大文字にする文字、通常は数字や特殊文字を配置する場所などの巨大なデータセットを提供します。

「iloveyou」、「password」、「baseball」とは異なるパスワードを作成するように人々に教えてきたため、ワードリストは少しずつ変化しました。しかし、変化が遅いのは、a)多くの高齢者とb)パスワードリテラシーが普及していない新興国の人々がデジタルサービスにアクセスできるためです。

要点は、人々は自分のパスワードを簡単に入力したいことと、簡単に覚えたいことです。

数字や特殊文字については、簡単に入力できることが重要です。理論的には、ALT +テンキーの組み合わせで入力できる約200の特殊文字があります。しかし実際には、ほとんどの人はこれらの文字の1つまたは2つを使用します(キーボードのレイアウトに応じて):!@#} |)(US)、! "§*#=(DE)。
数字が同じであるため、おそらくここにパターンが表示されます。最も一般的に使用されるのは1209です。

質問に戻りましょう。
正確に何を達成しようとしていますか?
他のすべてのユーザーのようにパスワードを生成する必要はありません。辞書の単語を使用したくない。では、パスワードマネージャーを使用してください。しかし、常にそうすることはできません。システムにログインした場合、パスワードマネージャにはまだアクセスできません。

時々haveパスワードを覚えてから、簡単に覚えられ、しかも非常に強力なパスワードを使いたい場合があります。私の提案: diceware のようなものを試すか、パスワードマネージャにパスワードを生成させて、後で覚えてください。奇妙な言葉を使い、活用する。 「!」よりも入力が少し難しい特殊文字を使用します。特殊文字や数字を1つだけ使用しないでください。

賢いルールだと思ったとしたら、確かに、同じことをする人が100万人もいますし、攻撃者もこのルールを知っているでしょう。

最も重要なこと:1.本当に長いパスワードを使用してください。 2.他の人と同じように作成されたパスワードを使用しないでください。これらは、すべての攻撃者が知っているルールを構築するためのパスワードだからです。それが辞書攻撃を防ぐ方法です。

強力なパスワードから得られるのは時間です。アカウントが侵害された後にパスワードを変更するのに役立つ時間。パスワードの長さとパスワードの作成方法は、あなたにその強さとその時をもたらします。

0
Tom K.