web-dev-qa-db-ja.com

以前に(これまで誰もが)使用していたパスワードを使用するのは間違いですか?

数か月前、 kutschkem はHIBPに関する質問に回答しました with this

地球上のすべての人がこれまでに約1000個のパスワードを使用したとしましょう。これにより、約10兆のパスワードが作成されます。43 もし私の考え違いでなければ。したがって、既存のパスワードをランダムに選択することは、本当にランダムな8〜9文字の大文字と小文字を区別する文字のパスワードとほぼ同じです。あまりよくない。 この答え を参照してください。

つまり、理論的には、パスワードを再利用しないだけでなく、これまで誰もが使用していたパスワードを再利用してはなりません以前に使用されたパスワードは、基本的に、発生するのを待っている1つの大きな辞書攻撃です。

私はコメントでマイク・オウンズワースとコナー・マンコーンの間の議論によって再び思い出されました この答えについて トップをブラックリストに載せることについて[〜#〜] n [〜#〜]パスワードとHIBPデータベース全体の比較。

クチケムの数学は正しいですか?これは結論を正しいものにしますか?

数学は正しいかもしれません。人は好きなだけそれを洗練して複雑にすることができますが、それは本当にポイントを追加するものではありません。だから私はそれを残しておきます。

また、実際には、リストから一意のパスワードをチェックするよりも、固定長のランダムな文字のパスワードをチェックする方が簡単(そして高速かもしれません)です。 2のパスワードリスト43 8文字の平均パスワード長のパスワードは、約64 TBのサイズになります。これは、プロセッサの近くのどこかに保存して、プロセッサがハッシュを計算するのと同じ速度。

ただし、結論は正しくないことです。問題は、パスワードが使用されたことがあるかどうかではなく、パスワードが使用されたことがあるかどうかです違反に含まれる

侵害されたパスワードがその後公に開示された場合、それらは現在インターネット上で入手可能です。現在、パスワードは、使用されているパスワードだけではなく、それらのごく一部です。さらに悪いことに、このサブセットは、世界中の多くの人々が単語リストで使用して、それらが再利用されているかどうかを確認しています。したがって、誰かがこのパスワードに対してハッシュをチェックする可能性は、どこかで使用されたとしても、未知のパスワードに対してハッシュをチェックする可能性よりもはるかに高くなります。

したがって、HIBPデータベースに含まれているパスワードは使用しません。これらのパスワードがワードリストに含まれる可能性が高いためです。

32
Martin Weil

マイクオウンズワース(参照しているスレッドの作成者)

これは、封筒の裏側の計算を行うための素晴らしい言い訳です!ここで考慮すべき要素は、2のような数値に到達したときに43、そのデータを保存して使用するために必要なハードドライブ、CPU、および電力の数を考慮に入れる必要があります。

計算を簡単にするために、それぞれの2としましょう43 パスワードはSHA-1ハッシュとして保存されます(HIBPデータベースの場合と同様)。各SHA-1値は160ビット、つまり20バイトです。 243 * 20バイト= 176テラバイト。私のラップトップよりも大きいですが、クラウドサービスのための大きな変更です。

別の方向に進んで、すべて2つのデータベースがあるとします。43 プレーンテキストのパスワード。あなたは管理者のパスワードのハッシュを手に入れ、あなたのデータベースに対してそれを総当たりしたいと考えています。最も単純で最も安全でないケースを考えてみましょう。これは無塩SHA-256ハッシュです。これは、赤ちゃんのためにビットコイン採掘リグが構築された問題です!大まかなベンチマークとして このビットコインマイナー を考えてみましょう:$ 3,000 USD、50TH/s(テラハッシュ/秒)、1975 Wを消費します。

データベースが176 TBのデータをすぐに供​​給することができると仮定すると、私の急な計算によると、これらのユニットの1つはすべてのパスワードを試すために2^43 / (50,000,000,000,000 / s) = 0.2sをとります。

実際には、パスワードは(まあ、そうである必要があります)がソルトPBKDF2またはArgon2で保存されます。これらのハッシュ関数はこの種の攻撃を防ぐことを目的としているため、これはゲームを大きく変えます。これらのハッシュ関数は、パスワードをハッシュとして保存するときに、必要なだけ遅く調整できます。ハッシュごとに〜0.1秒になるように調整するとします。突然、「数千年」や「地球の電力消費」などの数値が表示されています。


TL; DR:これは素晴らしい質問です!

その答えは、覚えやすいパスワードを選択し、インターネット上で他の誰かと衝突する可能性がある場合、安全に保管するために提供するサイトよりもパスワードの選択は重要ではないということです。

私見、パスワードを選択する際、十分な熱心な攻撃者がパスワードを解読するのを阻止しようとしているのではありません。代わりに、あなたは彼らがより柔らかい目標を追うように十分に難しくしようとしています。 「クマを追い越す必要はありません。友達を追い越すだけです」

もちろん、完全にランダムな32文字のパスワードでパスワードマネージャーを使用している場合は、「宇宙の時代」と「大きな星の電力出力」という暗号強度の領域に入ります。だからそうしなさい!

23
Mike Ounsworth

私はそのステートメントでいくつかの論理的なエラーを確認します-まず第一に、どうやってそれを知ることができますか
Joe Schmoeが2007年から2009年に自分のWindows PCに特定のパスワードを使用し、ハッキングされたことがなく、マシンがゴミ箱に燃やされた場合、その記録はどこにもありません。
したがって、パスワードが他の方法でハッキングまたは公開されない限り、あなたはそれを知ることができず、そのため、パスワードの再利用を避けることはできません。

それとは別に、これまでに使用されたと推定される2 ^ 43のパスワードのうち、おそらく2 ^ 42.9は重複しており、リストは1つのハードディスクに収まります。

11
Aganju

大文字と小文字が混在する1から9までの英数字パスワード(両端を含む)のキースペースは13,759,005,997,841,642で、2の間です。53 と254

数学はまともな推測ですが、合理的なナプキンの推測ではありません。

ただし、数学が間違っているからといって、結論が無効であるとは限りません。

人間はパスワードが苦手です。それらを記憶し、再利用し、覚えやすい単語から生成します。

したがって、パスワードの素朴な力は、人々が記憶したことがなく、再利用したことがなく、人間の言語の単語に似ていない多くの可能性を生み出します。

以前に漏洩したパスワードの辞書を使用することは、おそらく誰かがどこかでそのパスワードを以前に使用したことを知っているので、パスワードを推測する最も速い方法です。人間は人間なので、ランダムな値がパスワードと一致する可能性よりも、このパスワードが再度使用される可能性が高くなります。

このため、my固い意見として、ランダムに生成されなかったパスワードではないのは誤りであるとされていますですが、どのように生成されたかに関係なく、誰もが以前に使用したパスワードを使用するのは誤りであるという意見には同意します。

4
Ghedipunk

クチケムの数学は正しいですか?

Kutschkemが言っているように見えるのは、次のとおりです。

  1. 7⋅10くらいなら9 人々はそれぞれ1000個のパスワードを選択しました。43 使用中のパスワード。

    これは合理的な近似のようです:log2(1000⋅7⋅109)≈42.7; 43に切り上げます(ユーザーが選択したパスワードの数に関する経験的質問は評価していません。乗算のみを確認しています)。

  2. 約2つあります43 8文字のパスワード。

    これは少し低い見積もりです。大文字と小文字を区別してUS-ASCIIのアルファベットのパスワードのみを数える場合(「完全にランダムな8〜9文字の大文字と小文字を区別する文字のパスワード」)、2〜26の可能な文字があり、ログ2[(2⋅26)9]≈45.6; 43に切り捨てます。

しかし、誰もがこのようにランダムに8文字のアルファベットのパスワードをランダムに選択した場合、ある時点で衝突することが本質的に保証されます

k可能性のスペースからランダムにランダムにパスワードを選択するとします。世界にn個のパスワードがある場合、 誕生日のパラドックス による衝突の確率は多くてもn2/kknが同じ場合、その境界は意味しません何でも、確率は1に非常に近いです。

しかし、すべてのパスワードが2つからランダムに無作為に選ばれ、それぞれ1000個のパスワードがあるとします128 可能性—たとえば、7776ワードのリストを含む10ワードのダイスウェアフレーズ、または20文字のグラフィックUS-ASCII文字列。次にn= 243 およびk= 2128、70億人が選択したパスワードのうち2つが衝突する確率は最大でn2/k=(2432/ 2128= 286−128= 1/242—1兆分の1未満。

パスワードのセキュリティが必要な場合、2歳以上からランダムにランダムにパスワードをコンピュータに選択させることをお勧めします128 可能性。 (無塩のパスワードハッシュを使用するサービスの場合、マルチターゲット攻撃を軽減するために長さを2倍にすることができます。)

これは結論を正しいものにしますか?

結論-これまで誰もが使用していたパスワードを再利用しないでください-ユーザーとしての私の目標は、誰もがパスワードを推測します。たぶん、ユーザーとして私が誰かが私のパスワードを推測できるかどうか気にしないかもしれません、そしてそれを私がただ覚えることができることがより重要です。使い捨てのアカウントを常に作成する可能性があります。egBugMeNot —を参照して、広告主導の大量監視を覆すより価値の高い広告のためにログインによってユーザーを追跡する。

1

ターゲットシステムでのパスワードの処理方法に依存すると思います。

ベストプラクティスのソルティングとハッシュを使用するシステムの場合、パスワードリストはブルートフォース攻撃でのみ役立ちます。攻撃者は、特定のソルトを使用して、各アカウントのハッシュルックアップをコンパイルする必要があります。これは事実上、パスワードファイル(またはテーブル)に対するブルートフォース攻撃です。暗号化された安全なハッシュでは、大きなパスワードスペースでは実行できません(各パスワードのハッシュには、かなりの時間がかかります)。攻撃者は他のすべての可能性よりも既知のパスワードを優先する可能性がありますが、それでも大きな領域です。

ベストプラクティスを使用しないシステムの場合、既知の使用済みパスワードのリストが攻撃をどのように加速するかは、特定のセキュリティ上の欠陥に依存します。

特定のシステムでどのような対策が講じられているのかわからないため、既知の可能性のあるパスワードを回避することは賢明かもしれませんが、使用された不明瞭なパスワードを使用してハッカーにドアを開ける必要はありません誰かがいつか.

0
Zenilogix

集合論以外の数学は必要ないと思います。パスワードの目的は、認証の手段として機能することです。あなたは秘密を知っているので、あなたはあなたが本人であると言います。この「秘密」は、ブルートフォース攻撃を防ぐためにランダムであることが理想的です。つまり、資格情報の対象となるプラットフォームへの攻撃です。ブルートフォーシングは効率的ではないため、最後の手段です。文字通り、その「秘密」に可能なあらゆる置換を盲目的に試みます。ここには3つのセットがあります。

  1. 可能なすべての順列のセット。
  2. #1のサブセットであり、誰もが使用するすべての可能な順列のセットです。
  3. #2のサブセット。既知のすべての可能な順列のセット(違反)。

番号3は、順列数が#2よりも低く、確実に#1よりも低いため、攻撃を削減する方法としてのみ役立ちます。論理的には、これまでに使用されたすべてのパスワードのコレクションを誰も持っていないという事実だけで、#2は実行可能ではないと考えることができます。しかし、私が考える重要な点は、#2だけではそれほど有用ではないということです。アイデアは、攻撃を削減して効率を上げることです。ターゲットが価値の高いターゲットでない限り、#2はおそらく大きすぎて攻撃のトリミングに役立ちません。実際の辞書用語または単なる一般的なパスワードの変形を使用した辞書攻撃は、置換スペースが徹底的な総当たりよりもはるかに小さいため、主に役立ちます。 #2は、ユーザーと同じくらい攻撃者にとって非現実的なほどにそのスペースを増やします。

皮肉なことに、#2が実際にいくつかの魔法によって解放された場合、同じパスワードの長さで攻撃者がカバーする必要がある可能性のある置換スペースを減らしているため、そのリストの置換を回避すると、より影響を受けやすくなる可能性があると私は主張します。

攻撃者は、#2が利用可能な場合でも、そのセットから最も頻度の高いパスワードから辞書を作成することにより、より強力なブルートフォース攻撃を行うためのツールとしてのみ使用しようとします。

そうは言っても、HIBPデータベース全体がすべての順列の比較的小さなサブセットであることは注目に値します。したがって、その全体を辞書攻撃として使用することは依然として効率的です。攻撃者がより高い効率を望んでいる場合でも、攻撃者は最も高い頻度にトリミングすることができますが、#2とは異なり、これは要件ではありません。

0