web-dev-qa-db-ja.com

正しい文法はパスワードのセキュリティにどのように影響しますか?

XKCDパスワード方式 を使用する場合、エントロピーは、個々の単語が独立していると仮定して、個々の単語に基づいてのみ計算されます。もちろん、これは、パスワードを生成するときに明確に確認しない限り、必ずしも有効な仮定ではありません。また、ランダムで独立した4つの単語からなるパスワードは、文法的に正しいフレーズよりも覚えるのが難しいです。 zxcvbn 同様に、相対頻度の計算を明らかに実行せずに、見つかった個々の単語のみに基づいてエントロピーを報告します。

おそらく、十分に大きなN-gramデータベースがあれば、Wordの正しい英語の使用法の合理的に洗練された統計モデルを生成し、それに応じてXKCDフォームのパスワード推測を注文できます。では、質問:パスワードに覚えやすい文法的なフレーズを使用した場合、独立して選択された同じ数の単語と比較すると、どれだけのエントロピーが失われるのでしょうか。同等のエントロピー/セキュリティを提供するには、文法的なパスワードはどのくらい長くなければならないのですか?パスワードクラッカーは実際にこの方法を使用していますか?

13
Tom Hunt

一般に、パスワードの検索スペースを狭める可能性のある情報は、そのパスワードの強度を低下させます。したがって、理論的には、文法的に正しいパスワードは、無関係な単語の集まりや意図的な文法エラーがあるものよりも潜在的に弱いと想定することは理にかなっています。ただし、その違いを正確に計算することは非常に困難です。

多くのパスワードクラッキングプログラムでは、複雑なパターンを定義できます。たとえば、人々はしばしばパスワードに数字を含める方法として日付を使用することが観察されています。つまり、password1961またはpassword171067(または米国の日付の場合はpassword101767)であるため、一部のパスワードクラッカーは[dictonary-Word] [year ]および[dictionary-Word] [date]。ここで、年/日付の数値は、有効で「期待される」範囲内の数字に制限されます(つまり、年/日付が現在/最近の期間またはユーザーに関連していると想定します)生年月日など)。同様に、パスワードの調査によると、人々はパスワードコンポーネントの境界に「特殊」文字を配置する傾向があります(例:password:1972)。これは、この形式の数字を使用せず、4または6ではなく3、5、7桁の数字を使用することを検討することをお勧めします。特殊/句読文字を追加する場合は、/ unusual /位置、つまりpasに追加します。 sword1972(もちろん、 'password'は使用しないでください:-(

クラッカーとして、文法を使用する際の課題は、それをモデル化する方法にあります。たとえば、英語の文法は非常に複雑です。これが部分的に自然言語処理がそのような課題である理由です。理論的には、文法を十分な精度で定義でき、十分に大きな辞書があれば、/ valid /文の辞書を作成できるシステムを生成できます。ただし、これは非常に大きな検索スペースを表します。パスワードの文字数が正確にわかっている場合、これは検索スペースの削減に役立ちますが、非常に大きくなります。決定する必要があるのは、ランダムな単語が連結されただけの同様の辞書と比較して、そのような辞書をどれだけ小さくするかです。それはもっと小さくなりますが、実用的な違いを生み出すのに十分小さいかどうかは不明です。文法ベースの辞書が50年の平均検索時間を意味し、ランダムなWord辞書が500年の平均検索時間を表す場合、実際には、どちらのアプローチも有用ではありません(時間を短縮できる他の最適化がない場合)実用的なレベル)。

文法ベースの辞書ではなく、引用、有名な詩、歌の歌詞に基づいて辞書を作成するでしょう。私の理論は、人々がフレーズをパスワードとして使用する場合、そのフレーズは覚えやすいものであり、したがって歌、詩、またはお気に入りの引用に基づいている可能性が高いということです。これはさらに小さな辞書になります。課題は、データベースを構築し、十分に包括的であることを保証することです。引用符、歌、詩などのすべてのデジタルリポジトリがあると、おそらくもっと簡単になるでしょう。

個人的にはあまり気にしません。明らかに、よく知られたフレーズを使用しないことが最善であり、ソーシャルエンジニアリングテクニックを介して誰かが識別できる可能性のあるフレーズを使用しないことが非常に重要です。あなたが軍人である場合、有名な軍の引用/スピーチを使用しないでください、あなたがクリスチャンである場合、聖書からの引用を使用しないでください。基本的に、あなたについて何らかの調査を行う人が検索スペースを狭めるために使用できる可能性があるものは使用しないでください。また、できるだけ長いフレーズを使用することをお勧めします。非常に長い既知の引用は、単純に検索スペースが大きいという理由だけで、ランダムな単語の短いセットよりも強力です。

ランダムな単語のセットを覚えている場合は、それを行います。ただし、それができない場合は、文法的に正しいフレーズを使用しますが、できるだけ長くします。パスワードを覚えることは、おそらくそれが強力であることを保証するために重要であるのと同じくらいです。多くのシステムの最も弱い部分はパスワード回復プロセスであることがよくあります。そのようなプロセスを使用する必要がないように、できる限り多くのことを行う必要があると思います。フレーズを逆の順序(または覚えやすい他のパターン)で入力し、単語の間にではなく特殊文字と数字を挿入します。2、4、6桁などの数字のパターンは避け、引用符やフレーズは避けます。あなたと関連付けます。

8
Tim X

研究論文 長いパスワードのセキュリティに対する文法の効果 があなたの質問に答えます。以下は論文の要約です。

「abiggerbetterpassword」や「thecommunistfairy」など、長い文章やフレーズのようなパスワードの使用が増加しています。この論文では、パスワードのセキュリティを低下させる上で、そのようなパスワードの基礎となる文法構造の役割を研究します。この調査の結果が、安全なパスワードポリシーの設計と、パスワードセキュリティの実施に使用されるパスワードクラッカーに直接関係していることを示します。品詞タグ付けに基づく分析モデルを使用して、文法構造の存在による検索スペースの減少が50%以上になる可能性があることを示します。私たちの作業の重要な結果は、長いパスワードの強度が長さとともに均一に増加しないことです。より良い辞書を使用することを示します。 Google Web Corpusでは、以前に表示されたものよりも長いパスワードをクラックできます(20.5%対6%)。長いパスワードのクラッキング効率を向上させるために、概念実証の文法認識クラッキングアルゴリズムを開発します。長いパスワードデータセットのパフォーマンス評価では、データセット全体の10%が、最新のパスワードクラッカーではなく、アルゴリズムによって排他的にクラックされました。

4
Ashwini Rao

まず第一に:(たとえば、文法規則に従うために)非ランダムに単語を選択する場合、これはまったくXKCDスタイルのパスワードではありません。私の理解では、「XKCDスタイル」とは diceware を意味し、Wordリストは小さくなります。

文法的に正しい文の1つの問題は、意味のないナンセンスでない限り、おそらくかなり予測可能であることです。どれほど予測可能かは正確にはわかりませんが、 基本的に、印刷されたものはどこでもパスワードの基礎として安全ではありません です。だから、どういうわけか、これまで誰も発声したことのないユニークなフレーズを生成する必要があります。

とはいえ、Mad-Libのようなランダムなナンセンスフレーズを作成することで、文法規則に(緩く)従う安全なパスフレーズを作成できるはずです。ワードごとに異なるワードリストを使用して、ダイスウェアを実行してください。たとえば、パスフレーズジェネレータは次の形式でパスワードを生成できます。

{article} {adjective} {noun} {adverb} {verb} {article} {adjective} {noun}, {exclamation}{punctuation}

たとえば、「スタイリッシュなツチブタは、だまされやすい飛行船を愚かに投げ飛ばします、やった!」

このような「文章」は、6つの完全にランダムな単語をすべて混ぜ合わせたものよりも覚えやすいと思いますが、同様のセキュリティを実現するには、単語リスト全体を大きくする必要があります。

名詞、副詞、動詞、形容詞のそれぞれ4096個のリスト(つまり、合計16384語)のリストを作成できます。簡単にするために、2つの句読点(。または!)と32の一般的な感嘆符( "oh my"、 "uh-oh"、 "rats"など)があるとします。したがって、エントロピーは次のように計算できます。

1 + 12 + 12 + 12 + 12 + 1 + 12 + 12 + 5 + 1 = 80

エントロピーを完全に決定するのは、各Word位置のWordリストのサイズです。攻撃者は、パスワードの生成方法を正確に知ることができます。本当に運が悪く、一般的な歌の歌詞を生成できなかった場合でも、パスワードがXKCDスタイルのルールと同じように安全であることを予測できます。

重要なのは、各単語は真にランダムである必要があり、各単語リストは大きくなければならないか、非常に長いフレーズを作成する必要があるということです。

品詞で単語を分解しない大きなWordリストを取得する方がおそらく簡単です。1つのWordリストと1つの簡単に理解できるルールを配布する方が簡単ですが、数学はまったく同じです。

免責事項:私はセキュリティの専門家ではありませんが、私は考えるここに含まれる数学と概念を理解しています。

3
Ben