典型的なパスワードジェネレータのインターフェースは次のとおりです。

[長さ]スライダーに注意してください。ここでは、パスワードの長さを8文字から100文字に変更できますが、他のツールではさらに長くすることができます。パスワードの最良の値は何ですか?
ハッキングされたときに持っているのは適切なパスワードだけです
良いパスワードが何であるかを理解するために、敵の陣営で何が起こるか見てみましょう!
アカウントを作成すると、サービスはパスワードをさまざまな形式の1つで保存します。このサービスは、パスワードをデータベースに直接(プレーンテキストで)配置するか、多くのアルゴリズムの1つを使用してデータベースからハッシュを生成できます。最も人気のある:
- MD5
- SHA-1
- Bcrypt
- 暗号化
- Argon2
パスワード自体の代わりにハッシュ を保存することの利点は、データベースにパスワードがないことです。パスワードを知っていることを証明するだけでよいのですが、それは問題ではありません。ログインすると、入力されたパスワードは同じアルゴリズムを使用してハッシュされ、結果がデータベースに記録された値と一致する場合は、パスワードを知っていることが証明されています。また、データベースがハッキングされた場合、パスワードを回復することはできません。

ハッシュの保存。
パスワードの解読
パスワードクラッキングとは、攻撃者がハッシュ関数を逆にして、ハッシュからパスワードを回復しようとすることです。これは、優れたハッシュアルゴリズムでは不可能です。しかし、攻撃者が同じハッシュを取得することを期待して異なる値を入力しようとすることを妨げるものは何もありません。一致が発生した場合、パスワードはハッシュから回復されています。

パスワードを解読する。
そしてここでは、適切なアルゴリズムの選択が重要です。 SHA-1は、高速ハッシュを念頭に置いて設計されており、攻撃者の作業を楽にします。 Bcrypt、Scrypt、およびArgon2は、特に専用マシンでのクラッキングを可能な限り遅くするために、高い計算コストを念頭に置いて設計されました。そして、これは非常に重要な側面です。
速度だけに注目すると、パスワードSHA-1は、次のように解読できません
0OVTrv62y2dLJahXjd4FVg81。
適切に構成されたArgon2を使用して作成した安全なパスワードは、次のようになります
Pa$$w0Rd1992。
ご覧のとおり、正しいハッシュアルゴリズムを選択すると、脆弱なパスワードが解読不能なパスワードに変わります。
そしてそれを忘れないでください登録しているサービスの実装にのみ依存します。そして、あなたは実装の品質を知ることができません。あなたは尋ねることができますが、彼らはあなたに答えないか、「私たちはセキュリティに真剣に取り組んでいます」と購読をやめます。
企業はセキュリティを真剣に受け止め、優れたハッシュアルゴリズムを使用していると思いますか?侵害されたデータベースのリスト、特にそれらで使用されているハッシュを見てください。多くの場合、MD5が使用され、ほとんどの場合SHA-1が使用され、一部の場所ではbcryptが使用されました。一部の保存されたパスワードはプレーンテキストです。これが考慮すべき現実です。
さらに、侵害されたデータベースで使用されたハッシュのみがわかっており、弱いアルゴリズムを使用した企業がインフラストラクチャを保護できなかった可能性が高くなります。リストを見てください、あなたはおなじみの名前を見つけると確信しています。会社が大きくて立派に見えるからといって、それがすべてを正しく行っているとは限りません。
パスワードを選択します
ユーザーとして何ができますか?パスワードがプレーンテキストで保存されている場合は、何もする必要はありません。データベースが盗まれたら、パスワードの複雑さは問題になりません。
適切に構成されたアルゴリズムを使用すると、パスワードの複雑さも重要ではなく、
12345またはになる可能性がありますasdf。
ただし、中間の場合、特にSHA-1を使用する場合は、パスワードの複雑さが重要になります。ハッシュ関数は通常、パスワード用に設計されていませんが、複雑なパスワードを使用している場合は、アルゴリズムの弱点を補います。

構成によって異なります。これらのアルゴリズムにはさまざまなセキュリティコンポーネントがあり、適切に構成されていれば、ハッキングを防ぐことができます。
結論:強力なパスワードを使用すると、弱いパスワードを使用するよりも多くのハッキングから保護されます。また、パスワードストアの安全性がわからないため、サービスの「十分な安全性」がわかりません。したがって、パスワードの選択が依然として重要である場合は、最悪の事態を想定してください。
パスワードの一意性だけでは不十分
さて、一体なぜパスワードマネージャーを使用して、サイトごとに一意のパスワードを生成することを考えますか?この場合、人がこのデータをさまざまな場所で使用することを期待して、メールボックスとパスワードの既知のペアがさまざまなサービスでチェックされると、資格情報の詰め込みに対して無防備になります。パスワードの再利用はセキュリティ上の最大の懸念事項の1つであるため、これは深刻な脅威です。サイトごとに一意のパスワードを生成することで、これから保護されます。

資格情報の詰め込み。
また、データベースが盗まれ、そのすべてのコンテンツがハッカーに知られるようになった場合でも、なぜパスワードを保護するのでしょうか。
実際のところ、データベースがハッキングされているかどうかはわからず、引き続きサービスを使用します。その後、ハッカーはこのサイトでの今後のすべてのアクティビティにアクセスできるようになります。あなたは後であなたの銀行カードの詳細を追加することができ、彼らはそれについて知るでしょう。ハッカーが自分のアカウントでログインすることができませんという強力なパスワードの手段とあなたの将来の行動を妥協することはできません。

ハッキング後にサービスを使用する。
エントロピーを使用してパスワードの強度を評価する方法
パスワードの強度は、パスワードに含まれるランダム性の量の数値表現であるエントロピーによって特徴付けられます。多数について話しているので、代わりに
1 099 511 627 776 (2^40)「40ビットのエントロピー」と言う方が簡単です。また、パスワードのクラッキングはオプションの列挙であるため、クラッキングに多くの時間を費やす必要があります。
ランダムな文字で生成されたパスワードマネージャーの場合、エントロピーは次の式で計算されます
log2(< > ^ <>)。
長さは明らかですが、文字数はいくつですか?パスワードに含まれる文字クラスによって異なります。

たとえば、10個のランダムな大文字と小文字のパスワードには
log2(52 ^ 10) = 57 少しエントロピーがあります。
特定のエントロピー(特定のクラスの1つのシンボル内の量)を計算するには、式を使用できます
log2(n ^ m) = m * log2(n)。次のようになります。<> * log2(< >)ここで、2番目の部分は特定のエントロピーです。次の式を使用して、前のテーブルを再計算してみましょう。

パスワードの強度を計算するには、パスワードに含まれている文字クラスを取得し、これらのクラスのエントロピー値を取得して、長さを掛ける必要があります。上記の例では、大文字と小文字の10個のパスワードを取得しました
5.7 * 10 = 57 。ただし、長さを14に増やすと、エントロピーは79.8ビットにジャンプします。また、10文字を残して、特殊文字のクラスを追加すると、合計エントロピーは64ビットになります。
上記の式を使用すると、パスワードエントロピーをすばやく計算できますが、問題があります。シンボルが互いに独立している場合にのみ、式は正しいです。これは、生成されたパスワードにのみ適用されます。組み合わせ
H8QavhV2guはこの基準を満たし、57ビットのエントロピーを持っています。
ただし、次のような覚えやすいパスワードを使用する場合
Pa$$word11の場合、同じ数のシンボルを使用すると、エントロピーははるかに低くなります。クラッカーは、考えられるすべての組み合わせを調べる必要はありません。いくつかの変更を加えて、辞書の単語を調べるだけです。
したがって、長さに特定のエントロピーを掛けたすべての計算は、生成されたパスワードに対してのみ有効です。
エントロピーガイド
パスワードのエントロピーが多いほど、パスワードを解読するのが難しくなります。しかし、どのくらいのエントロピーで十分ですか?一般に、約16文字が目の前にあります。このようなパスワードには、文字クラスに応じて95〜102ビットのエントロピーがあります。最小しきい値はいくつですか? 80ビット? 60?または、102ビットでも小さすぎますか?
速度の点で悪いハッシュアルゴリズムに匹敵するアルゴリズムがありますが、それははるかによく研究されています:これはAESです。
すべての政府および軍事組織で使用されているため、耐久性は十分です。そしてそれは速く働きます。したがって、一定量のエントロピーを持つAESキーを解読できない場合は、ハッシュが不良な(ただし解読されていない)パスワードが役立ちます。
National Institute of Standards and Technologyは、予見可能な将来に十分なキーサイズを決定しました。そこ「2019-2030以降」の期間はAES-128の使用をお勧めします。名前が示すように、128ビットのエントロピーについて話しています。

別の推奨事項では、キーのサイズを少なくとも112ビットにすることをお勧めします。
連邦政府のニーズに暗号強度を提供するには、今日、少なくとも112ビットが必要です(たとえば、データの暗号化や署名など)。
大文字と小文字の文字と数字を使用して128ビットのエントロピーを取得するには、パスワードの長さが必要です
22 ((5.95 * 22 = 131 )。
その他の考慮事項
特別なキャラクターを使ってみませんか?言葉の境界を壊してしまうので使わないようにしています。つまり、2回ではなく3回クリックして特殊文字を選択する必要があり、残りのパスワードを誤ってフィールドに挿入しないと、エラーが発生する可能性があります。
また、文字と数字のみを使用している場合は、ダブルクリックするとパスワード全体が強調表示されます。
長さに制限がある場合はどうなりますか?一部のサイトでは、パスワードの長さを22文字までにすることはできません。パスワードは、たとえば5桁以下など、非常に短い場合があります。あとは、できるだけ長くパスワードを使用するだけです。
パスワードを操作するためのサイトのガイドラインもあり、長さの制限はこれらのガイドラインと明らかに矛盾しています。これが言うことです 国立標準技術研究所:
64文字以上の長さのパスワードをサポートする必要があります。ユーザーが覚えやすいように、任意の文字(スペースを含む)を使用して、任意の長さの覚えやすい秘密を作成するようにユーザーに促します。
また、サイトのパスワード保護はひどいものから優れたものまでさまざまであり、実際の状況を教えてくれないことを忘れないでください。最大許容パスワードの長さが小さい場合、そうです、このようなAサイトは、スケールの悪い端にあること。
結論
異なる場所で同じ組み合わせを使用しない場合でも、パスワードは強力である必要があります。パスワードの強度はエントロピーによって測定され、128ビットの値を目指して努力する必要があります。これには、大文字と小文字の文字と数字で構成される22文字の長さのパスワードで十分です。
これにより、サービスがハッキングされ、弱いがハッキングされていないハッシュアルゴリズムが使用された場合に保護されます。