web-dev-qa-db-ja.com

80ビットのパスワードは、すべての実用的な目的に対して十分ですか?

強力なパスワードを構成するエントロピーのビット数を尋ねるのは、文字列の長さを尋ねるのと似ています。しかし、NSAはあなたの責任ではなく、10年間を費やしてメールを強制するのは価値のあることではないので、80ビットで十分でしょうか?

29
Peter

短い答え:多いほど良いですが、今のところ(2014年)、おそらくこれで十分です。

Gmailへのハッキングとオフラインパスワードのクラックには重要な違いがあります。パスワードを推測してGmailアカウントをハッキングしたい場合、1秒あたり数回しか試行できません。 Googleは、1つのアカウントへの何千回ものログイン試行を短期間でブロックします。

ただし、たとえばWindowsログインの場合は、ローカルに保存されます。 Windowsには、ハードドライブのどこかにハッシュ化されたパスワード(簡単に言えば、暗号化されたパスワード)のデータベースがあります。これは、ハードドライブにアクセスできる誰かがハッシュされたパスワードを抽出し、コンピューターができる限り速くクラッキングを開始できることを意味します。これは、1秒あたり数百万回の試行である可能性があります。

または、データベースがハッキングされると(LinkedInを参照)、ハッシュされたパスワードが取得されることが多く、Windowsログインと同じようにローカルでクラックを開始できます。ここで、パスワードの強度が本当に重要になります。

編集: emoryJS。 がコメント化されているように、すべてのサービスが特定の時点でハッキングされると想定する必要があるため、たった今 Gmailのパスワードをブルートフォースで高速に処理できない場合があり、いつでも変更される可能性があります。また、すべての企業がハッキングされたことを認めている(または知っている)わけではありません。妥当なパスワードを使用しても問題ないと思います(ハッカーが5分で解読できない場合、取得した他の9千万個のパスワードの1つに移動するだけです)が、完全に安全なサービスがないことは有効な点です。


パスワードの強度について

(専門用語:「エントロピー」は「真のランダムデータ」と考えることができます。)

それで80ビットで十分ですか?次の80ビットのパスワードについて考えてみましょう。1111111111。強力ではないようです...これは160ビットです。「馬のバッテリーの定番」(20バイト×8)です。より良いですが、実際には160ビットではなく3ワードです。英語で10'000の可能性がある場合、3ワードで1兆の組み合わせを作成できます。これは多くのことですが、160ビットのエントロピーでは 1 quindecillion の可能性に近いところはありません。最後に、0MxLrTm8Z1はどうですか?安全な乱数ジェネレーターによって生成されます。 10文字で、80ビットのストレージが必要です。しかし、実際にはどれだけのエントロピーが含まれているのでしょうか。英数字(a-z A-Z 0-9)または62の可能性のみであり、8.39 * 10 ^ 17の可能性、または59.5ビットのエントロピーのみになります。

したがって、10文字のパスワードを持っているからといって、オリジナルを見つける前に80ビットのエントロピーを確認する必要はありません。 *&$@などの特殊文字を含む印刷可能な文字(キーボードで入力できる文字)に80ビットを格納するには、13文字の長さのパスワードが必要になります。

前向きな思考

もう1つの問題は、コンピューターの速度がさらに速くなることです。今のところ80ビットで安全ですが、安全なパスワードを使用して2014年にファイルを暗号化すると、2017年に36か月*が経過し、コンピューターが約4倍高速になったときにクラックされる可能性があります。

1993年には6文字のパスWord(辞書から直接取得)が妥当なセキュリティである可能性がありますが、2014年にはランダムな10文字で十分かどうかについて議論しました。

*注意深い読者はムーアの法則の2倍であることに気づくでしょう(さらに注意深い読者は、ムーアの法則はコンピュータの速度ではなくチップ上のトランジスタに関するものであったことに注意します)。

パスワードの使用法

そして最後に、考えるべき実用的な問題があります:パスワードをどのように管理しますか? 80ビットで十分だと言ったら(たった今)、奇妙な文字を多く含むランダムな13文字のパスワードを記憶し、持っているすべてのアカウントでそれを使用しますか?

パスワードマネージャーが良いアイデアかどうかは別のトピックですが、強力なマスターパスワードを覚えておくよりも、異なるパスワードを使用する方が適切です。どこでも強力で一意のパスワードを使用するのが最善ですが、それを書き留めたり、パスワードマネージャーを使用したりしないと、他のリスクが生じます。私はそのような考慮事項を専用の質問に任せます。

43
Luc

セキュリティ戦略の弱点は、常に人間の予測可能性です。考えて覚えることができる巧妙なパスワードは、他の多くの巧妙なパスワードと非常によく似ています。私たちは自分たちが信じているほどユニークではありません。人々は本質的に物事をよく理解し予測可能な方法で考え、記憶します。

パスワードに関して使用するいくつかの基本原則。

  1. パスワードマネージャを使用します。私たちの頭脳は、複数の安全なパスワードを保存する機能を備えていません。パスワードを覚えることができれば、それらは単純すぎる。
  2. 複数のサービスに同じパスワードを使用しないでください。これは非常に重要ですが、ほとんどの場合無視されます。このプリンシパルは、パスワードマネージャーを使用すると簡単になり、そうでなければ事実上不可能です。
  3. あなたのアイデンティティはあなたの最も弱いパスワードと同じくらい安全です。メールやソーシャルメディアのアカウントがどれほど重要でありふれたものであっても、より機密性の高いサービスへのアクセスに使用される可能性があるため、依然として安全である必要があります。
  4. 回避できる場合は、パスワードのヒントを使用しないでください。サービスから要求された場合は、ランダムで個人を特定できないものを使用してください。そうは言っても、堅牢なパスワード管理戦略を実施している場合にのみ、これを行ってください。パスワードをなくすことはないので、パスワード回復を使用する必要はありません。
  5. パスワードの最大長を使用してください。この場合も、パスワードマネージャーを使用する必要があります。現在、ほとんどのサービスで16文字以上がサポートされています。それらすべてを使用してください。
  6. すべてのモバイルデバイスをロックして暗号化します。あなたの個人情報(どんなに平凡なものでも)はサイバー犯罪者にとって貴重です。
9
user1751825

それは述べられています(合理的な信頼できる情報源については、---を参照してください 覚えられるパスフレーズ—しかし、それでもNSA推測できないThe Intercept)NSAは、PGPパスフレーズのコンテキストで(少なくとも)「1秒あたり1兆回の推測」が可能です。PGPパスフレーズは確認するのに意図的に高価であり、アップグレードされている可能性がありますそれ以降の機能ですが、合理的に設計されたシステムで数桁以上オフになることはほとんどないため、これを何らかのベースラインとして使用できます。

1秒あたり1兆回の推測は2に相当します40 1秒あたりの推測。

true 80ビットのエントロピーを含むパスワードは、2(80-40) = 240 秒。

240 秒は約35,000年です。

平均すると、攻撃者はその半分の時間でパスワードを正しく推測することが予想されます。それはまだ15,000年以上の試みです。

コンピュータテクノロジーの進歩を理解し、数千年の間だけパスワードを保護する必要があると仮定すると、このように合理的にと記述できます80ビットのエントロピーパスワードで十分なはずです。何百年から何千年もの間、非常に有能な敵による集中的なオフライン攻撃に対してもです。

彼らがそのかなり前に待つのに飽き飽きしている可能性はかなりあります 成功する可能性がはるかに高い他の方法を試してください、代わりにメソッド

また、真のエントロピーとパスワードのバイトを保存するために必要なストレージの量の違いに注意してください。たとえば、私のパスワードマネージャー(LinuxのKeePassX)は、パスワードの「ビット」の数はパスワードの文字数に8を掛けたものに等しいと主張しています。これは、4桁の不条理につながりますPIN銀行カードの場合、13ビットから14ビットのはるかに正確な値ではなく、32ビットの強度(43億の可能な値)を持っていると主張されています)強度(13ビットで8192個の可能な値をエンコードできるため、10000個の値をエンコードするには約13.3ビットが必要です)。

真のエントロピーを80ビットにする方法の1つは、 Diceware メソッドを使用して6または7(それぞれ12.9ビットで、それぞれ77ビットと90ビット)のワードパスフレーズを生成することです。 EFFワードリスト (各ワードの最初の3文字で一意の1つ)のいずれかを使用すると、18または21文字で表すことができます。これは、80ビットのエントロピーをエンコードするために17文字が必要な、真にランダムな1文字の英数字のパスワード(小文字のa〜z、数字0〜9)と非常によく似ています(ログ2 26日17 ≈80、または2617 ≈280)、単語を覚えて、それぞれの最初の3文字だけを入力できるので、覚えやすいかもしれません。

8
a CVn

はい、特に非NSAタイプの攻撃者の「実用的な目的」に照らして。

オンラインパスワードの場合、パスワードへの攻撃が行われる頻度には制限があります。また、通常、セキュリティエクスプロイトが存在します(カスタマーサービスは、設計上、単一の最大のセキュリティエクスプロイトです)。これは、パスワードよりもはるかに脆弱です。数分 ソーシャルエンジニアリング でCSにアクセスを許可できるのに、80ビットのパスワードを解読するのに何十万ドルも無駄にするのはなぜですか。
はい、誰かがサーバー上のパスワードデータベースを盗みます可能性がありますブルートフォースでパスワードを逆にしますが、80ビットでは起こりそうにありません、彼らはむしろ20ビットのパスワードを持っている他の1000万人のユーザーをして、そこで止めるでしょう。また、他の場所で使用されていないrandomパスワードであるため、失うものはありません。それは価値がありません。
侵入者はその時点ですでにサーバーへのrootアクセス権を持っているため、侵入先のシステムで実行できることは何でも、とにかく実行します。それを超えて、彼らはあなたのパスワードで何もすることができません。

Windowsのパスワードとしては、80ビットでも十分です。確かに、誰かがブルートフォース攻撃を実行する可能性がありますが、NTLMと同様に、有名な25-GPUの348億NTLM /秒のマシンでさえ、徹底的な検索に110.000年かかります。
一方、パスワードを知らなくても、ハードディスクを別のコンピュータに接続して、ファイルシステムを読み取ることができます。所要時間は5秒程度で、SATA-USBアダプターがあればケースを開ける必要もありません。攻撃者はおそらく何をしますか?

一方、フルディスク暗号化の場合、キー(またはパスワード)は通常は保存されませんが、複雑なキー導出スキームを使用して、復号化キーテーブルの復号化キーを導出します。これにより、攻撃が発生する可能性のあるレートが制限されます。 Truecryptはかつて2,000回の反復を使用していましたが、Veracryptは現在320,000回程度の反復を使用しています。すべてのフルディスク暗号化システムが多数の反復を使用することは合理的な仮定です(使用するものもあれば、使用しないものもありますが、Bitlockerはむしろ下端にあると思います)。
パスワードがさらに一致するかどうかを確認するために、少なくとも数千の反復を行った後、少なくとも2つのセクターを読み取って復号化する必要があるという事実は、大規模な並列攻撃を遅らせます。したがって、ランダムな80ビットのパスワードは、平均的な非NSA攻撃者にとって、無視できないほどのハードルです。

256ビットのパスワードでセキュリティを強化できますか?もちろん、毎回3倍の数のキーを押す必要があります。これは、「実用的な」部分が別の角度から方程式に入るところです。誰かがあなたを攻撃することが実用的であるかどうかだけでなく、毎日使用するためにシステムが実用的であり続けるかどうかも重要です。

5
Damon

私はそう思いますが、コンピュータが総当たりする方法に関しては真のエントロピーを理解することが重要です。

辞書の単語は、あらゆる言語で漢字に似た文字と考えることができます。そして、一般的な言葉と珍しい言葉があります。珍しい単語は非常に大きなアルファベットを持っていると考えることができます、一般的な単語ははるかに小さいアルファベットを持っていますが、それでも英語のセットよりはるかに大きいです。

そうは言っても、パスワードエントロピー計算機はこれを方程式に取り入れず、文字列桁のパスワードをランダムなパスワードのように扱いますが、そうではありません。

文字列桁のパスワード: "el1zabeth267"コンピュータは、これを12文字ではなく2文字として推測します。

4
Andrew Hoffman