Gmailのようなパスワードを必要とするすべてのWebサービスでは、長いパスワードを設定するように求められます。 8文字以上。
その理由は、より高いセキュリティです。
ただし、同じサービスでは、アカウントをロックして詳細情報を要求する前に、ログインの試行回数を3〜4回に制限しています。非常に迷惑なことですが、それは別のトピックです。
それでは、ログインの試行を制限する場合、短いパスワードはどのように安全ではありませんか?パスワードに5文字が含まれている場合、3回の試行ですべての組み合わせを試すことはできません。
パスワードを長くランダムにする必要がある主な理由(つまり、高いエントロピー)は、オフラインのブルートフォース攻撃から保護するためです。
パスワードは通常、プレーンテキストでは保存されません。代わりに、それらは ハッシュ化 です。誰かがハッシュ化されたパスワードでデータベースを盗んだ場合(これは 驚くほど一般的です )、パスワードを直接読み取ることはできません。代わりに、ハッシュに一致するパスワードを見つけるために、大量のパスワードを試す必要があります。パスワードハッシュが盗まれたので、これは攻撃者のマシンで実行でき、Webサイト自体では実行できません(したがってoffline攻撃)。つまり、Webページでの再試行の制限は適用されません。
長くてランダムなパスワードは推測が多くなるため、データベースが盗まれたとしても、パスワードを解読することは困難です。それが彼らがウェブ上で奨励されている理由です。
それはそれほど単純ではありません...
3回の試行後にアカウントが完全にロックされた場合、すべてのアカウントをロックすることで DOS
(Deny Of Service) を作成するのは簡単です!
サーバーは、不正な試行の回数だけでなく、IPアドレス、ブラウザID、およびロックにdurationを使用してロックの決定を行う必要があるため、誰かが間違ったキーボードを使用した場合、それらは一部の遅延で再接続できます...
そこから、botnets
を考えると、攻撃者は多くの異なるIPアドレスを使用し、さまざまな試行を行う可能性があります。いくつかのsmooth
オプションと長い遅延により、短いパスワードは弱くなります。
サンプル:
a-z, A-Z, 0-9, $+"*/%&()_
で選択された5文字に対する総当り攻撃を考慮:72文字
72^5 => 1'934'917'632 # all possible combination
72^5 / 300000 => 6'449 # botnet
72^5*900/300000/3 => 1'934'917 # 3 attemps -> 15' penalty
秒単位:これは、すべての組み合わせをテストするために〜22日を表します。
注意:300000マシンは Botnet @Wikipedia から任意の平均値を計算します。 6Mボットネットの場合、ジョブは1日未満で終了します。
パスワードは一般的にハッシュされて保存されます。誰かが(リモートエクスプロイト、ソーシャルエンジニアリングなどを使用して)パスワードファイルを盗んだ場合、ブルートフォースをに対して使用できますパスワードファイルに格納されているハッシュ。
そこから、攻撃者は3回の試行に制限されなくなりました!!
パスワードが12文字より長い場合:72^12 => 2'435'196'222'894'505'984
。これはボットネットを介しても重くなります...
しかし、任意の john
like password cracker は、盗まれたパスワードファイルを参照し、すべての一般的なWordベースのパスワードとすべての短いパスワードをすばやく抽出します。
私は(可能な限り)パスワードの代わりにパスフレーズを使用することを好むので、私は本当にこれが好きです XKCDのストリップ :
だから小さな数学のデモがあります:
72文字の束を持つ12文字のパスワードを検討します。
$ printf "%'.u\n" $[(72**12)]
2'435'196'222'894'505'984
5〜9個のプレーン文字(a〜z、アクセントなし)を含むWordのアメリカの辞書で選択された4ワードランダムを考慮:
$ printf "%'u\n" $[$(
LANG=C grep '^[a-z]\{5,9\}$' /usr/share/dict/american-english|
wc -l) ** 4]
2'945'898'655'785'685'681
ほぼ同じ数の組み合わせ
最小フレーズ長:5x4 = 20のアルファベット文字:
$ printf "%'.u\n" $[(26**20)]
5'350'152'024'406'097'920
(ノートブルートフォースクラッキングパスフレーズは文字の組み合わせを暗示する、これは全体の組み合わせを減らしますが、41'429 ^ 4
よりも高いままです... 41429は私の前のテストでのwc -l
の結果です)
そして、あなたはそれらを覚えていることができる間、キャップ、数字、および/または特別な文字を追加することによって、いくつかの塩を追加することさえできます!
誰かが多くのアカウントに対して共通のパスワードを試す「パスワードスプレー」を防ぐため。