私はつまずいて、ブルース・シュナイアーがこのエッセイに出くわしました。 div id = “91a99f1932”>
XKCDパスワードスキームは事実上無効でした。
最新のパスワードクラッカーは、辞書とは異なる単語を組み合わせています:[…]
これが、パスワードを生成するためによく引用されるXKCDスキームである理由です-” correcthorsebatterystaple -もはや良いアドバイスではありません。パスワードクラッカーはこのトリックに取り組んでいます。
攻撃者は、パスワード作成者に関してアクセスできる個人情報をパスワードクラッカーに送ります。優れたパスワードクラッカーは、名簿の名前と住所、意味のある日付、およびその他の個人情報をテストします。 […]プログラムがそれをメモリに保存したことがある場合、このプロセスはそれを取得します。
彼の主張は、それが知られているためだと思われます。人々は攻撃しやすいようにパスワードを作成するかもしれませんが、強みは純粋に指数の力にあるようです。彼は、単語を本当にランダムに選択していない人々をほのめかしていると思います。 「すべての副詞や形容詞ではないものを取得するために数回リロールしたので、完全に不誠実ではありません。ただし、エントロピーを2〜10倍下げることはそれほど重要ではないと思います(単語リストの場合)は2倍の4000になりますが、それほど難しくはありません。損失は回復するだけではありません。
プログラムがメモリに保存したことがある場合の”に関するもう1つの説明”は少し戸惑いますが、すべてのパスワードが一度にメモリに保存されているわけではありませんか?それは少し広すぎるようです。彼は実際に何を参照しているのでしょうか。 に?
コメント
回答
聖戦
パスワードを生成する正しい方法は、各グループがお互いに作っていると考える聖戦を開始する可能性があることがわかると思います非常に単純な数学的誤りまたは要点の欠落。部屋に10人のコンピュータセキュリティ専門家がいて、適切なパスワードを考え出す方法を尋ねると、11の異なる答えが得られます。
誤解
多くの理由の1つがあります。パスワードに関する一貫したアドバイスはありません。それはすべて、脅威モデリングの問題に帰着するということです。正確には何を防御しようとしていますか?
例:特にあなたを標的にしていて、パスワードを生成するためのシステムを知っている攻撃者から保護しようとしていますか?それとも、リークされたデータベースの数百万人のユーザーの1人にすぎませんか? GPUベースのパスワードクラッキングまたは単に弱いWebサーバーから防御していますか?マルウェアに感染したホストにいますか[1]?
攻撃者はパスワードを生成する正確な方法を知っており、単にあなたを標的にしていると想定する必要があると思います。[2] xkcdコミックは、両方の例で、世代のすべての詳細がわかっていることを前提としています。
数学
xkcdコミックの数学は正しく、変更されることはありません。 。
入力する必要があるパスワードについては、 pythonスクリプトを使用して、真にランダムなxkcdスタイルのパスワードを生成します。 2 ^ 11(2048)の一般的な、綴りやすい英語の単語の辞書。完全なソースコードと単語のリストのコピーを攻撃者に渡すことができますが、2 ^ 44の可能なパスワードがまだあります。
コミックが言うように:
1000 Guesses / Sec弱いリモートWebサービスへのもっともらしい攻撃。はい、盗まれたハッシュのクラッキングはより高速です。 、しかしそれは平均的なユーザーが心配すべきことではありません。
これは、覚えやすいものと解読しにくいもののバランスが取れています。
より多くの電力を試した場合はどうなりますか?
確かに2 ^ 44は問題ありませんが、GPUクラッキングは高速であり、「高速化するだけです。 Hashcat は、そのサイズの弱いハッシュ[3]を数年ではなく数日で解読する可能性があります。また、覚えておくべきパスワードが何百もあります。xkcdスタイルでも数日で難しくなります。
ここでパスワードマネージャーが登場します。私は KeePass が好きですが、基本的に同じものが他にもたくさんあります。覚えることができる1つの長いxkcdパスフレーズ(たとえば10ワード)。次に、アカウントごとに一意の128ビットの真にランダムなパスワードを作成します(16進数またはベース64が適切です)。128ビットは十分に強力です。長い間。大げさになりたい場合は、256ビットの16進パスワードを生成するための余分な作業は必要ありません。
[1]ここで思い出しますあなたが負けた危険にさらされたホストにいるなら、あなたは入ってくる。攻撃者がメモリをキーログ/読み取りできる場合は、入力するか、KeePassなどのプログラムを使用してコピーして貼り付けるかは関係ありません。
[2]弱い(ただし可能性が高い)のではなく攻撃者が” Top Passw0rdz 4realz 111!”という辞書を急襲したと仮定します。
[3]確かに私たちは皆PBKDF2などを使用する必要があります…しかし多くのサイトがまだSHA1にあります(そしてそれらは良いサイトです)
コメント
- @ Dick99999最新のGPUは、1枚のカードに6 GBのメモリを搭載でき(2スロットかかりますが)、数千語の辞書を簡単に保存できます。
- @NateKerkhofsこれは恐ろしくて驚くべきことです。同時に。私の最初の(プログラム可能な)マシンには1mhzと64kbのRAMがあり、6GBのビデオメモリについて話します…
- ” 128ビットの真にランダムなパスワード… “本当にランダムですか?’まだ疑似ランダムですか?
- これは聖戦の部分以外の理由がなければ、答えを受け入れました。
- @Doorknob意味のある組み合わせを選択すると、ほとんどのエントロピーが消えます。 ‘選択できる文の数を見積もろうとはしませんが、これはおそらく2 ^ 44分の1よりも10億分の1に近いでしょう。
回答
シュナイアーは次のように書いています:
これが理由ですパスワードを生成するためによく引用されるXKCDスキーム(「correcthorsebatterystaple」のような個々の単語をつなぎ合わせる)は、もはや良いアドバイスではありません。パスワードクラッカーはこのトリックに取り組んでいます。
しかし、彼が本当に何を求めているのかを理解するための鍵は、彼のエッセイのもう少し先にあります。
機能するスキームはまだ1つあります。2008年に、私は「シュナイアースキーム」について説明しました “
これで終わりです。 Ole “Bruceは、彼のスキームが唯一無二、最高、勝者、究極のスキームであると主張したいと考えています。したがって、彼は「競合他社」について、そのようなものかどうかに関係なく、軽蔑することを言う必要があります。アサーションは科学的に正しいかどうか。
この場合、パスワード生成方法は攻撃者に知られていると常に想定されています。これがエントロピー計算の要点です。 ; 分析を参照してください。攻撃者が「このトリックに取り組んでいる」ことは何も変更しません(攻撃者がパスワードの生成方法を知っている場合、エントロピー計算はパスワードの強度を正確に記述します。攻撃者が能力がなく、パスワードの生成方法がわからない場合、パスワードの強度は、定量化するのがほぼ不可能な量だけ高くなります。
「メモリ内のパスワード」についての口論は、より一貫性のないとりとめのないものです。パスワードは、入力するか、パスワードセーフからコピーして貼り付けるか、または同様のものであるかどうかにかかわらず、必ずある時点でRAMに送られます。
ブルースは酔っていたと思います。
更新:シュナイアーは、2016年8月2日に行われた a Reddit AMA でのパスフレーズの非難について特にコメントを求められました。彼は、パスワード作成システムを次のように主張し続けました。ランダムな単語のパスフレーズの優れた代替手段。シュナイアーは、彼の計画は「他の方法よりも記憶に残る文字ごとにより多くのエントロピーを与える」と述べました。これは、単語を構成する文字と比較した場合に当てはまります。ただし、システムが文字ではなく単語の記憶に依存しており、パスフレーズ全体に適切な「エントロピー」を生成するのに十分な単語を組み合わせることが許可されている場合も、これは関係ありません。
コメント
- ええ、彼のコメントは彼の典型的な良いアドバイスからの奇妙な逸脱だと思いました。彼が推奨するスキームはおそらく’悪くはありませんが、’実際のテストはあまり受けていません。パスフレーズのアプローチは、比較してテストするのがかなり簡単であり、’は、彼の暗号研究者にとって魅力的だと思います。たぶん、彼は自然言語のパスフレーズの解読に関するニュースをざっと読んだだけで、’それらとランダムな単語のパスフレーズの違いがわかりませんでした。
- 彼についてのあなたの議論は彼の計画を説明した直後に、彼は” ランダムな覚えられない英数字のパスワード(サイトで許可されている場合は記号付き)を使用するのがさらに良いと言っているので、競争は失敗します。そして、それらを作成して保存するためのPasswordSafeのようなパスワードマネージャー “。
- @wfaulk PasswordSafeはBruceSchneier ‘の作成なので、競争についての彼の議論は今も続いています。あなたの失敗ステートメントは失敗します;-)
- @AviD:私はそれを全く知りませんでした。 😳
- あなたが’見逃していること、そして明らかにシュナイアーも、”トリックがないことです”から”にキャッチします”。 Dicewareのセキュリティは、攻撃者がスキームについて知っていることをすでに想定しています。実際、辞書自体がわかっていることを前提としています。 ‘攻撃者があなたの正確な辞書と単語数を持っているかどうかは関係ありません。太陽が爆発する前に、攻撃を成功させるには組み合わせが多すぎるだけです。
回答
[開示:私は1PasswordのメーカーであるAgileBitsで働いています]
2011年に Toward Better Master Passwords でXKCDのようなスキームを(それが呼ばれる前に)提唱した理由の1つは、その強みが使用したスキームを攻撃者が知っていることに依存しないでください。自分の言葉を引用するとします
Dicewareの優れている点は、攻撃者が使用されているシステムを知っていると仮定しても、どれだけ安全かを正確に把握できることです。セキュリティは、サイコロを振るという真のランダム性から生まれます。 パスワードクラッカーの観察された速度を考えると [1Passwordマスターパスワードに対して]
XKCDコミックが効果的に伝達しないのは、単語の選択は(均一に)ランダムでなければならないということです。人間にランダムに単語を選ぶように頼むと、具体的な名詞に大きな偏見が生じます。このようなバイアスは悪用される可能性があり、悪用される可能性があります。
必要な強度
完璧な世界では、保護しているキーと同じくらい強力なパスワードの強度が必要です。それ。 128ビットと言います。しかし、これらの手法にもかかわらず、人間はそれを達成するつもりはありません。それでは、攻撃と、私たちの小さな頭脳に何をさせることができるかを現実的に見てみましょう。
7776エントリの元のDiceware単語リストを使用して、使用するワードあたり約12.9ビットを取得します。したがって、パスワードに少なくとも64ビットが必要な場合は、5つの単語で対応できます。
パスワードの推測はキーの推測よりも時間がかかります
このセクションでは、非常に大雑把に説明します。エンベロープの見積もりでは、一定の金額の場合、パスワードのテストはAESキーのテストよりも2 ^ 13倍遅くなります。
パスワードのテストは、パスワードのテストよりもはるかに遅いことに注意してください。キー。適切な種類のパスワードハッシュスキームが使用されている場合、ほとんどの攻撃者を1秒あたり100000回未満の推測に抑えることができます。したがって、50ビットのキーを使用したくない場合でも、50ビットのパスワードを使用することは理にかなっている可能性があります。
アーノルド・ラインホルドの元のダイスウェアスキーム」では、より長い単語リストを使用できます。 1Password forWindowsのStrongPassword Generatorは、4〜8文字の17679の英語の単語のリストを使用します(タブー単語とアポストロフィまたはハイフンを含む単語を削除)。これにより、ワードあたり約14ビットが得られます。したがって、これらのうち4つは56ビット、5つは70ビットになります。
繰り返しになりますが、クラッキング速度に注意する必要があります。 1997年の Deep Crack は、1秒あたり920億のDESテストを実行できました。ハイエンドの専用PCが適度にハッシュ化されたパスワードに対して毎秒100万回の推測を実行できると仮定すると、今日のパスワードは1997年のDESキーよりも約16ビット解読が困難です。
では、デュアルコア3.8GHzプロセッサのこのStackExchangeの見積もりを見てみましょう。1秒あたり6億7000万キーです。ハードウェアで5000ドルを想定すると、1秒あたり100億キーを簡単に超える可能性があります。したがって、同様のハードウェアコストで、キークラッキングはパスワードクラッキングよりも2 ^ 13倍以上高速です。
パスワード強度の目標を修正
推定値である2 ^ 13に取り組んでいます。適切にハッシュされたパスワードをテストする方が、AESキーをテストするよりもコストがかかるため、適切にハッシュされたパスワードは、クラッキングに関して実際のエントロピーよりも13ビット強いと見なす必要があります。 90ビットの「実効強度」を達成したい場合は、77ビットのパスワード強度でそれを実行できます。これは、元のリストの6ワードのDicewareパスワード(77.5ビット)と、17679ワードのリストから抽出された6ワードの84.6ビットで実現されます。
ほとんどの人が次のようなパスワードを使用することはないと思います。長い。人々は4〜5語の長さのものを使用すると思いますが、NSAがパスワードを追跡することを本当に心配している場合は、適切なパスワードハッシュスキームを使用していると仮定すると、6語で十分です。
非常に大まかな見積もりのみ
コストとベンチマークの調査に多くの時間を費やしませんでした。私の見積もりには、いじくりまわすことがたくさんあります。私は保守的にしようとしました(私が提唱しているスキームについては悲観的です)。「よくハッシュされたパスワード」についても漠然としています。繰り返しになりますが、私は1Passwordでのパスワードハッシュに関して非常に保守的です。(新しいデータ形式では、攻撃者は1秒あたり20,000推測未満に抑えられ、古いデータ形式では、マルチで1秒あたり300,000推測に達しました。 -GPUマシン。ここでの私の見積もりでは、「「適度にハッシュ化されたパスワード」として1秒あたり100万回の推測を選択しました。)
さらにいくつかの履歴メモ
全体「XKCDのような」パスワードのアイデアは、少なくとも1980年代初頭の S / Keyワンタイムパスワードまでさかのぼります。これらは、2048個のリストを使用していました。 6ワードのS / Keyパスワードで66ビットを取得しました。リストからランダムに選択した単語をパスフレーズに使用するというこのアイデアが、S / Keyよりも前のものであるかどうかはわかりません。
1995年、ArnoldReinholdはダイスウェアを提案しました。彼が当時S / Keyを知っていたかどうかはわかりません。ダイスウェアは、PGPのパスフレーズを開発するという文脈で提案されました。また、ほとんどのコンピューターに暗号的に適切な乱数ジェネレーターが搭載される前でもありました。したがって、実際にはサイコロを振る必要があります。 (使用しているマシンのCSPRNGは信頼できますが、それでも「新しいパスワードのロールアップ」を楽しんでいます。)
2011年6月、マスターパスワードの改善に向けて追加の変更を加えました。これにより15分間の名声が得られました。XKCDコミックが公開された後、オタク版を作成しました。 いくつかの計算を説明しました。
2011年7月、Randall Monroeは、Dicewareのようなスキームを採用し、今では有名なを公開しました。コミック。私はアイデアの発明者ではないので、コミックに上演されてもかまいません。確かに、フォローアップ記事
で言ったように技術的ではない言葉で言うと2000語で、ランドール・モンローは漫画にまとめることができました。これは数学の力を示しているだけです…
しかし、コミックがどのように解釈されているかについて、私が心配していることが1つあります。私とそのスキームをすでに理解している人々にとって、単語は確実に均一なランダムプロセスを通じて選択されなければならないことは明らかです。 頭から「ランダムに」単語を選ぶことは、確実に均一なプロセスではありません。 p>
コメント
- 歴史的な観点からDicewareについて言及し、同時にXKCDがパスフレーズに対して行った優れたマーケティングの仕事を認めてくれたことは素晴らしいことです。あなたの修正されたスキームについて、なぜ3文字または2文字の単語がそれらの単語リストに含まれていないのか説明されていますか? blog.agilebits.com/2013/04/16/ … を参照してください。 ‘ off ‘や’ line もオフラインで1ワード攻撃される可能性がありますか? Raestlozの投稿に関する私のコメントを参照してください。元のダイスウェアリストには、1、2、3文字の単語が多数含まれています。
- すばらしい質問です。当時の私の(おそらく間違った)考えは、パスフレーズも最小の長さにしたかったということでした。誰かが3語のパスフレーズを使用した場合、それが最低12文字の長さを超えることを確認したかったのです。 S / Keyでは1、2、3文字の単語も使用できることに注意してください。
- SimThrowパスフレーズジェネレーターとテスターが使用する単語リストをすばやく確認しました。元のダイスウェアリストには、’ any ‘ ‘のように少なくとも1400の衝突があります。 ‘と’とにかく’。区切り文字を使用しない場合、4ワードの文が3ワードに劣化する可能性があります。このリストにはすべての文字と2文字の組み合わせが含まれているため、’衝突数が多くなります。したがって、2文字の単語を含めないという正しい選択をしたようです。 Dicewareは、17の最小文長を推奨しています。私のジェネレーターは、短いパスワード(20)のみを許可するサイトに対処するために、単語ベースと文字ベースの両方の回復時間を推定します。
- 次の単語リストも確認しました。 S / Key :> 93回の衝突、拡張されたdicelists米国:> 190と私のオランダのリスト:> 750。これを処理する方法は、区切り文字を含めることをお勧めします。フレーズの単語の間。
- ローリングダイスは完全にランダムではないことに注意してください。 forbes.com/sites/davidewalt/2012/09/06/ … および insidescience.org/blog/2012/09/12/ …
回答
XKCDパスワードスキームはこれまでになく優れています。セキュリティは不明であることに由来するのではなく、大きな検索スペースから記憶に残るパスワードを生成するための優れた方法であることに由来します。ただし、ランダムに生成するのではなく、使用する単語を選択すると、この利点は失われます-人間「ランダムにするのは得意ではありません。
メモリについての説明は不十分ですが、 懸念事項です。パスワードを盗むマルウェアがコンピュータに侵入した場合は、「アカウントへの直接攻撃で使用するために、RAMやハードドライブからテキストのようにすべてを一掃します。
コメント
- +1私はしません’ XKCDテクニックが死んでいるとは思わない-‘は’トリック’クラッカー’が’に接続されています。テクニックは裏返しになっていますが、そうではありません。 ‘ ‘が十分にランダムである場合は、クラック可能になりません。
- @PiTheNumber ‘十分な単語や小さな辞書を使用していない場合、’ xkcdテクニックをまったく適用していません。しかし、いいえ、xkcdコミックでも、’は、全員に 伝えれば、アドバンテージを失うことはないことを明確に示しています。 div id = “a824a77af5”>
ねえ、私は’正しいホースバッテリーステープルスタイルのパスワードを使用しています”-検証/エントロピーの量方法がわかっている場合でも、ビットは通常のほとんどのパスワードよりも高くなります。
回答
他の人と同じようにブルース・シュナイアーが説明する攻撃は、ユーザーがツールを使用せずに自分で複数の単語を選択した場合に効果的であると述べています。シュナイアーは通常、一般の聴衆に手紙を書きますが、それは自分で選んだ「ランダムな」単語とプログラムで選んだランダムな単語の違いを理解する可能性は低いです。
スクリプトを使用したり、辞書から単語をランダムに選択する他のツール、最初のシーケンスを使用する必要があります。私は「それが好きではありません」、そしてあなたがそれを好きになるまでそれをもう一度実行します、それはもはやランダムなパスフレーズではありません、それは人間が選んだものです。
また、スクリプトを使用し、複数のシーケンスのお気に入りを選択してランダム性を損なうことなく、攻撃者がPRNG(疑似乱数)を悪用する可能性もあります。攻撃者が、パスワードを作成した時期、使用したPRNG、およびPRNGを使用してほぼ同時に生成されたネットワークトラフィックなど、PRNGに関するその他の情報を知ることができれば、の実効エントロピーを減らすことができます。ランダムなパスフレーズ。
少し難解かもしれませんが、PRNGが悪用可能である場合、2 ^ 44の数字は完全には実現されません(「誰も私のPRNGを悪用しようとしない」と仮定した場合、本当に安全なパスフレーズを使用することに関心があるのはなぜですか?)
コメント
- +1興味深い角度。PRNGの活用は、暗号化のコンテキストでは明らかです。キー-‘興味深いのは、ここでは事実上後付けのようです。一般的なパスワードは非常に悪いと思います。比較すると、PRNGは安全だと感じています。おそらく、攻撃者がハッシュされたパスワードのリストを盗むことができる場合、pwdChangedTimeまたは同等のものを見つけるのは簡単でしょうか?パスワードエージングの慣行を終了するもう1つの理由は?
- 封筒の裏側。パスワードを生成してから1分以内にパスワードを更新し、PRNGのエントロピーの唯一の原因がシステム時間である場合、ナノ秒の解像度で2 ^ 35まで削減することを検討している可能性があります。合理的に聞こえますか?
- ‘単語が好きではないためにフレーズを拒否し、それを1000回実行するとします。それから私は辞書を1000語減らしました。その縮小された辞書からの選択はまだランダムですか?それでもそうであれば、このように削減された7776ワードのダイスウェア辞書からの4ワードの文は、(7776-1000)^ 4 = 2.1E15 / 50.9の可能性/エントロピービットを、3.7E15 /51.7の可能性/エントロピービットから完全に減らします。辞書。ランダムジェネレーターの影響を判断できません。私はwww.random.orgからのものを使用しています
- @ Dick99999 ‘本当に’だとは思いません1つのパスワードを選択する際に除外する提供される選択肢の数について。 ‘は、提示された場合に除外するフレーズのパターンについてです。攻撃者は、ユーザーが短い単語、QWERTYキーボードで入力しやすい単語、大文字や句読点のない単語を好むと推測する可能性があります。この戦略により、探索するパスフレーズのスペースが大幅に縮小される可能性があります。基本的に、’は、お気に入りのスポーツチーム、誕生日、子供’の名前を推測するのと同じ問題です。
- @wberry私は’数学がうまくいくとは思いません。気に入ったパスフレーズを見つける前に、1000個のパスフレーズを拒否するとします。次に、’は、可能なパスワードスペースの1/1000しか気に入らないという合理的な見積もりです。ここで、攻撃者がスペースのどの1/1000がお気に入りであるかを完全に推測できると仮定します。これにより、可能性の数が2 ^ 44から2 ^ 34に減少します。これは重要ですが、余分な単語ができるほどではありません’損失を埋めます。さらに、拒否を制限する場合でも、これは必要ありません。
回答
状況によって異なります。理解する必要があることの1つは、これは隠すことによるセキュリティではないということです。コミックで使用されているエントロピー値は、攻撃者が「この方法を使用している」ことをすでに知っていることを前提としています。攻撃者がパスフレーズの生成方法を「知らない」場合は、エントロピー
XKCDメソッドの秘訣は、実際に乱数ジェネレーターと適切な単語リストを使用する必要があることです。単語を選択しないでください。自分自身でさえ、「ランダムに」ではありません(人間は実際にランダムに物を選ぶのが本当に苦手なので、引用符で囲んでください。そのため、そうすべきではありません)。 ダイスウェアには、これを行うのに役立つツールがあり、通常のサイコロを使用して、ランダムな要素をコンピューターの手の届かないところに移動することもできます。
広範な攻撃(攻撃者がWebサイトからパスワードのリストを取得し、そのリストに誰のパスワードが含まれているかについて何も知らないようなもの)に対して、これはかつてないほど強力です。あなたが言うように、その強さは指数の力(そして良い単語リスト)から来ています。
シュナイアーの攻撃は機能しますが、まったく異なるコンテキストでのみ機能します。彼の攻撃は、あなたのことをすでによく知っている攻撃者によって、あなたが特に標的にされていることを前提としています。ステレオタイプであると判断された攻撃者は画面の背後にいる諜報機関であり、私たちのほとんどはそれらについてそれほど心配する必要がないため、これは最初は特に気にならないと思われるかもしれません。それらの数は非常に多く、それぞれができるのは非常に多くの人々のことを気にする余裕があります。しかし、高度なマルウェアの出現のおかげで、実際には最初に思われるよりも多くの問題が発生しています。マルウェアのインストールは、攻撃者が気にしない場合でもあなたのことを気にする余裕があるため、非常に決心した攻撃者に直面することになります。実際、人間よりもさらに決断力がありますが、創造性ははるかに低くなります。
あなたに関する情報をまとめるマルウェアは、単語リストで非常に高い優先度であなたにとって重要と思われる単語を与えます。ほとんどの人が自分で「ランダムな」単語を選ぶので、これを行いますが、そうすることで、実際には彼らにとって最も重要な単語に非常に強く偏ります。それでもランダムに「感じる」かもしれませんが、一部の単語ははるかに可能性が高いです他の人よりも出てきます。そのため、これらの単語に高い優先度を与えると、ヒットが比較的速くなることが多く、これがシュナイアーが話している「トリック」です。
ただし、本当のランダム性を使用することで、シュナイアーの攻撃を阻止することができます。キャッチは、これには規律が必要であるということです。パスフレーズで使用する単語に関するすべての決定(適切な単語の選択を除く)リスト)は完全にあなたの手から離さなければなりません。これはDicewareのようなものがあなたを助けることができるところです。
コメント
- @Gilles:その理由攻撃者がメソッドがパスワードの構造全体を変更することを知っている場合、エントロピーは低下します。’メソッドがわからない場合は、”正しい馬のバッテリーステープル”は、2シンボルのアルファベットからの216シンボル、つまり216ビットのように見えます。それがわかっている場合は’の4つの英語の単語(そしてXKCDを知っている
の単語リスト)の場合、2048記号のアルファベットの4つの記号のように見えます。 2048 ^ 4は大きいですが、’は2 ^ 216よりも小さくなります。これは、その長さの真にランダムなビット文字列が持つエントロピーのバイト数です。しかし、XKCD ‘の主張は、すでにそれを説明しています:2048 ^ 4 = 2 ^ 44。
回答
強度単語の選択がランダムである場合、数学は非常に簡単です:(辞書内の単語数)^(文中の単語数)、攻撃者が辞書内の単語数を知っていると仮定します。したがって、攻撃者が知っている( !)7776単語のダイスウェア辞書を使用した5単語のフレーズ:7776 ^ 5 = 2.8E19または64ビットのエントロピー。
スキームで言及されていない項目が1つあります。フレーズ全体のランダムな場所に1つの(ランダムな)文字を追加することで、強度が約10ビット向上します。 、ダイスウェア、オプションのものを参照してください。
上記の計算では、単語間の区切り記号も考慮されていません。それはさらに5ビットを追加することができます。
コメント
- XKCDコミックのポイント(または少なくとも1つ)は、ランダムな場所にランダムな文字を1つ追加すると難易度が上がることです。パスワードを覚えるよりも多く覚えると、解読の難しさが増します。
- 一般的には覚えるのに当てはまりますが、金庫のマスターパスワードには当てはまらないと思います。 ‘入力しやすい’が主な利点だと思います。パスワードマネージャーがパスワード(アプリ、WifIゲストネットワーク)を入力できず、入力しなければならない状況がますます増えています。
- @ Mark-余分なランダムな(または辞書にない)文字がすべてのパスワードで同じである必要があります。つまり、’忘れることはありません。 ‘少なくとも他のいくつかのパスワードが侵害されるまで、エントロピーの追加ビットを獲得します。その時点でも、パスワードはxkcd-strengthです…
- @ imsotiredicantsleep-それは非常に興味深い提案です。この強化技術をより使いやすくするための解決策を常に探していました。攻撃者はランダムな文字と位置に関する知識から利益を得ることができるため、隠すことでセキュリティと呼ぶことができます。わずかなトレードオフですが、使いやすさと安全性の間だと思います。
- @ Dick99999絶対に、’はトレードオフです。ただし、定数コンポーネントが危険にさらされるまで、それはナイーブな辞書攻撃を打ち負かし、より洗練されたものを大幅に遅くします。 ‘ テクニックを使用していることがわかるので、隠すことによる’のセキュリティに同意しません。 可能な値が私に与えるエントロピーを失うことなく。主な弱点は、定数部分がわかると、ランダム化された可能性のあるパスワード不動産を犠牲にしたことです。
回答
はいの回答も追加したいのですが、その他の理由。長さの制約があるため、[一般的に]良いアドバイスではありません。
- Skype、ING、eBay、私の国のBinckbankやKPNなどのサイトではパスワードを20文字に制限しています。 (その銀行の制限は15ですが、2要素認証を使用しました)
- 3000〜8000語の短い辞書の平均長さは4.5文字/語で、3〜4語のフレーズのみを使用できます。
- 大きな辞書を使用する場合、平均は6〜7:3語のみです
- サイトがパスワードに記号と数字を使用することを主張している場合、18文字しか使用できません。フレーズ。
これらの長さは、オンライン攻撃からのみ保護します。オフライン攻撃の場合、3〜4語のフレーズで十分な保護が提供されるかどうかは、キーの導出とハッシュ関数、反復回数、アプリのサイトで使用されるクラッキングハードウェアによって異なります。
コメント
- パスワードの長さを制限しているサイトは、多くの場合、パスワードストレージシステムが非常に安全でないことを示す優れた指標です。逃げる。全体として、パスワード強度の要件は、有用なIMO(セキュリティと記憶力の両方)よりも有害である傾向があります。
- 15文字に制限されたパスワードのリストにSuntrustを追加します。その業界はどうなっているのだろうか。
- 反対に、’と入力する方がはるかに簡単です’ correcthorsebatterystaple ‘は、小文字、大文字、数字、句読点を切り替え続けるよりもスマートフォンで使用します。
- パスワードの下限は’ tは、安全でないパスワードの保存方法を意味します。つまり、パスワードがプレーンテキストで保存されているか、暗号化されている(ハッシュされていない)ことを意味します。 @ Á ngel Microsoft関連のすべてのアカウントのパスワードがそれより長いので、BSに電話します。何年も前、NTLMの前は、Windowsのパスワードは16文字に制限されていました(iirc)。これはXPより前のものであり、ほとんど関係ありません。
- @Zenexer Microsoftアカウントについて:Microsoftオンラインアカウント(live.com、Office 365など)は16文字に制限されています(文字、数字、一部の記号は使用できます)。 )。
回答
適切なコンテキストを持つことが重要です。 xkcdコミックは、想定される28ビットのエントロピーでTr0ub4dor&3
を比較します(ただし、計算 34.6として)からcorrecthorsebatterystaple
と想定される44ビットのエントロピー(4ワードのダイスウェアコードは51.7ビット…しかし、それらの単語の1つは「ダイスウェア」ではありません。単純な100kワードのスペル辞書を使用して、66.4ビットと計算します。
まず、これを理解しやすくしましょう。94個あります。印刷可能な文字。1文字のパスワードにはlog₂(94) = 6.55
ビットのエントロピーがあります。2文字にはlog₂(94²) = 13.10
ビットのエントロピーがあります。パスワードスキームの最終エントロピーを6.55で割って、文字数で測定した純粋にランダムなパスワードと同等の複雑さを判断できます。
したがって:
- 28ビットエントロピーの≈4.3文字のパスワード(非常に悪い!)
- エントロピーの44ビット≈6.7文字のパスワード(これも悪い)
- エントロピーの66.4ビット≈10.1文字のパスワード(2016年は大丈夫)
xkcdの番号を信頼すると、シュナイアーが懸念した理由がわかります。ほとんどの攻撃者は10文字程度で諦めるため、これは少し誇張されているようです [引用が必要] —大きなクラスターが10文字のMD5ハッシュパスワードを破るには数年かかるはずです—ただし、優れた攻撃者があなたのスキームを知っていれば、文字の絶対長は問題になりません。
スキームの全体的な複雑さが最も重要です。最悪のケース(攻撃者が正確なスキームを知っている)を想定する必要があります。 。 「パスワードが11文字以上であることを追加で確認することをお勧めします(許可されている場合は )が、それは2番目の優先順位です(パスフレーズで無料で提供されます) 。
4つの単語とパスコードを使用してパスフレーズを作成する
これが私のパスファース作成のアドバイスです(エントロピー推定あり):
- それぞれ4文字以上の4単語以上の無意味な「文」を作成します(100,000⁴)
- これらの単語はどれも接続できませんあなた–またはお互い– 何らかの方法で
- 大文字と小文字、スペース、および少なくとも2つの記号または句読点(32²)
- 少なくとも1つの単語スペルチェックに失敗する必要があります(例:leetspeak、外国語、各64)
- 少なくとも1つの他の「エラー」(スペル/文法/構文、エントロピー不明)を含める
- 2つの単語の間に、従来の「ランダムな」7文字以上のパスコード(92⁷)を追加します
これは、少なくともlog₂(100000⁴ × 32 × 3 × 64 × 92⁵) = 112
ビットのエントロピーである必要があります(これは非常に強力です。 ≈17文字)。大文字(最初の文字のみが大文字であると想定)と1つの記号(.
、!
、または?
なので、2番目の記号の複雑さは3)であり、「ランダム」は完全にランダムではないと仮定して、コードを5文字相当として計算しました(上記を厳密に順守)式を使用すると、約20文字で128ビット以上のエントロピーが得られます。
最後のポイントは繰り返す価値があります:
人間はランダム性を生成するのが非常に苦手です
真のランダム性に近づく 場合でも、人間が生成する「ランダム」文字パスコードはほとんどありません。関連するコードにはパターンがあります。人のキーボード、好きな数字、および/または特定のあいまいな単語が推測できないという仮定に。
このスキームは、人の本質的なランダム性の欠如に対して堅牢になるように設計しました。限られた語彙を想定しています。 (バシの2600語を言うc英語)、関連する単語の使用(3つの単語のみを数えることでペナルティが課せられる)、および6つの英数字のエントロピーのみに制限されたパスコードlog₂(2600³ × 62⁶)
自体は依然として強力です。 70ビット(約10.6文字)。
この水をパスフレーズに流さないでください!このセクションは、このスキームが人間の限られたエントロピーに対してある程度の抵抗があることを示すために存在します。悪い選択を助長するためではなく、選択。
唯一の本当の問題は、引用符や歌詞を4つの単語として使用する人々から来ています。これらのパスフレーズは、引用符または歌詞が推測できる場合(たとえば、Facebookのいいねを見て)、または30秒(MD5)から17日(PBKDF2)のクラック時間で約6つのランダムな文字のエントロピーを持つ場合は簡単に無効になります。 。
マイエントロピーテーブルを使用してパスフレーズスキームのエントロピーを計算します。
(パスワードが一時的にメモリに存在するという事実を気にしないでください。あなたは開発者です)
コメント
- ASCII 文字は銀の弾丸のようなもので、ほとんどの攻撃を自動的に打ち負かします。
•••••••••
(9つの箇条書き文字)のパスワードは、長さとあいまいさのために、恥ずかしいほど安全です(そして、マスクされていないのと同じように見えます!)’ dは、実際にはこの事実だけに依存する恐ろしいアイデアです。パスコード+4ワードと複雑さの急上昇に非ASCII文字を入れます(計算するには、そのユニコード値を使用します)が、おそらく移植性を犠牲にして(’友達の’のスマートフォンを使用していますか?)
回答
いいえ、そうは思いません。
そのxkcdコミックの実際のアドバイスは、覚えやすいニーモニックを使用することですそして覚えている限りパスワードを生成します。これらはどこでも基本的なパスワードアドバイスであり、常に当てはまります(引用されたシュナイアーの方法でも、これら2つの基本的な事実を使用します)。確かに、コミックは一般的な英語の単語を使用しますが、実装はそうである必要はなく、そうではありませんでした。コミックはあなたがすべきだということを暗示しています。
もちろん、最も安全なパスワードはMD5文字列のように完全にランダムな文字列であり、おそらくパスワードマネージャーを使用してこれらすべてのパスワードを保存できますが、そのマネージャーに使用するパスワードは何ですか?¯\ (ツ) /¯
コメント
- “もちろん、最も安全なパスワードは完全にランダムな文字列です”いいえ、比較については、 en.wikipedia.org/wiki/Password_strength#Random_passwords
- いいえ、’ xkcdのアドバイスではありません。もう一度お読みになることをお勧めします。また、関連する質問の分析(上記のリンク)をご覧ください。
- 署名” ¯ \(ツ)/ ¯ “は優れたパスワードです:短くて簡単覚えておく、本当に壊すのが難しい、パスワードとして検出するのが難しいログ。
- @Daniel Azuelos、…一般的に使用される文字列のリストに追加するのは簡単です…
- @Raestloz言語を話さない人’ ASCII範囲内の文字を使用しない’ ASCIIパスワードを使用する予定はありません。アジアの国々の人々はすべて、日常のタイピング用とパスワード用の2つのキーボードを使用していると思いますか? DOSなどの30年前のオペレーティングシステムとは異なり、最新のOS ‘はすべて、Unicodeやその他の文字セット/ページを適切に処理し、どのWebサイトでもそれらをサポートする必要があります(開発者は’毎回ランダムな文字セットを使用してフォームをエンコードしたり、ブラウザに選択させたりしません)。パスワードは、人間にとって何かを意味する単なるビットです。
correcthorsebatterystaple
だった場合、安全性が大幅に低下しました!correcthorsebatterystaple
のようなパスワードを使用する場合は、パスワードをサイレントに切り捨てるシステムに’ログインしないように注意してください。correcth
のようなパスワードはおそらくN#y;f8eR
よりも推測しやすいでしょう。