パスワード強度チェッカー
パスワードを生成
GeekFormatパスワード強度チェッカーは、Shannon Entropyに基づいてパスワードの安全性を科学的に評価します。パスワードを入力すると、5段階星強度評価、エントロピー値(bits)、3シナリオでのクラッキング時間推定(通常のPC/スーパーコンピュータ/オンライン速度制限攻撃)が即座に表示され、7項目のセキュリティ指標(長さ、大文字小文字、数字、特殊文字、繰り返しパターン、連続シーケンス、一般的な脆弱パスワードデータベース一致)を項目別にチェックし、個人化された改善提案を提供します。暗号論的に安全なランダムパスワードジェネレーター(crypto.getRandomValues)を内蔵し、8-64文字の長さとカスタム文字セットをサポートしています。純粋なブラウザローカル処理で、パスワードはサーバーにアップロードされません。
関連おすすめ
パスワード強度とセキュリティについて
Password Strength(パスワード強度)は、Brute-force AttackとDictionary Attackに抵抗するパスワードの能力の尺度です。強力なパスワードは、十分な長さ、十分に大きな文字セット(複数の文字タイプの混合)、十分なランダム性(規則性がなく予測不可能)を持ち、漏洩したパスワードリストに含まれていない必要があります。パスワードはデジタルID認証の最も基本的かつ広く使用されている手段であり、メール、ソーシャルアカウントからネットバンキング、暗号ウォレットまで、ほぼすべてのオンラインサービスがパスワード保護に依存しています。脆弱なパスワードはデータ漏洩とアカウント盗難の首要因です——Verizon DBIR(データ漏洩調査報告書)の長年の統計によると、データ漏洩インシデントの80%以上が脆弱なパスワードまたはパスワード漏洩に関連しています。
Shannon Entropy(シャノンエントロピー)はパスワード強度を測定する科学的指標であり、情報論の父Claude Shannonによって1948年に提案されました。暗号学では、エントロピーの単位はビット(bit)であり、パスワードをBrute-forceするのに平均して必要な試行回数の対数(2を底とする)を表します。例えば、40 bitsのエントロピーは、攻撃者が平均して2⁴⁰≈1兆回の組み合わせを試行する必要があることを意味します;80 bitsのエントロピーは2⁸⁰≈1兆兆回を必要とします;128 bitsのエントロピーは予見可能な将来内にBrute-forceすることはできません。注意が必要なのは、Shannon Entropyはパスワードの文字が完全にランダムであると仮定しており、パスワードに規則性がある場合(単語+数字の接尾辞など)、実際の有効エントロピーは理論値よりも低くなることです。
Brute-force Attackは最も直接的なパスワード攻撃方法です:正しいパスワードが見つかるまで、すべての可能な文字の組み合わせを1つずつ試行します。Brute-forceの速度は2つの要因に依存します:計算能力(毎秒何回試行できるか)とパスワードエントロピー(ヒットするまでに何回試行する必要があるか)。GPUの並列計算能力の向上に伴い、Brute-forceの速度は非常に速く成長しています——2020年代のハイエンドグラフィックカードは毎秒数百億回のパスワードハッシュを試行できます。しかし、パスワードのエントロピーが十分に高い場合(100 bits以上など)、世界中のすべての計算リソースを集約しても、宇宙の年齢内に総当たりを完了することはできません。したがって、Brute-force攻撃に対抗する最も効果的な方法は、高エントロピーの長いランダムパスワードを使用することです。
Dictionary AttackはBrute-forceよりも効率的な攻撃方法です:攻撃者はすべての組み合わせを試行するのではなく、一般的なパスワード、漏洩したパスワード、単語リスト、一般的なパターンの組み合わせを含む「辞書」を使用して試行します。ほとんどのユーザーが選択するパスワードは完全にランダムではありません——研究によると、ユーザーの50%以上がTop 1000の一般的なパスワードのバリアントを使用しています。Dictionary Attackは最も可能性の高い候補のみを試行するため、Brute-forceよりも数桁速くなります。一般的なパスワードデータベース(rockyou漏洩の1400万パスワード、Have I Been PwnedのPwned Passwordsデータベースなど)はインターネット上で漏洩した数十億のパスワードを記録しており、これらのリストに含まれるパスワードはすべて安全でないと見なされるべきです。
パスワードクラッキング時間の推定は攻撃シナリオを考慮する必要があります。オンライン攻撃(ウェブサイトのログインインターフェースを介した試行)は通常、厳格に速度制限されています——サーバーは試行頻度を制限し、複数回失敗するとアカウントをロックし、CAPTCHAを要求するため、速度が最も遅くなります(毎秒数回から数百回)。オフライン攻撃(攻撃者がパスワードハッシュデータベースを取得した後にローカルでクラッキング)は非常に高速です——ハイエンドGPUクラスタを使用すると毎秒数千億回試行でき、クラウドコンピューティングやスーパーコンピュータを使用すると毎秒数兆回、さらには千兆回に達する可能性があります。さらに、異なるハッシュアルゴリズムのクラッキング速度は大きく異なります:MD5とNTHashは非常に高速で、bcrypt/Argon2などの低速ハッシュアルゴリズムはBrute-force攻撃に抵抗するために特別に設計されており、速度が数百万倍遅くなります。
NIST(米国国立標準技術研究所)はSP 800-63Bガイドラインでパスワードポリシーに対する現代的な推奨事項を提案しています:1)パスワードの長さは少なくとも8文字、より長いパスワードの使用を推奨(パスフレーズ/passphrase);2)すべてのASCII文字とUnicode文字をサポート(スペースを含む);3)定期的なパスワード変更を強制しない(漏洩の証拠がある場合にのみ変更);4)特定の文字の組み合わせルールを強制しない(ただし複数のタイプの使用を推奨);5)既知の漏洩パスワードの使用を禁止;6)パスワード強度フィードバックを提供。これらの推奨事項の核心は:パスワードの真の強度は複雑な構成ルールではなく長さとランダム性から来る;複雑さよりも長さが重要であるということです。
Passphrase(パスフレーズ)はセキュリティと記憶容易性のバランスをとるパスワード戦略です:ランダムに選択された4-6個の単語(correct horse battery stapleなど)を組み合わせ、文字の複雑さではなく単語の数によって高いエントロピーを獲得します。5個のランダムな英単語のパスフレーズのエントロピー値は約65-70 bitsです(7776の一般的な単語からランダムに選択したと仮定)。これは10-11文字の完全にランダムなASCII文字に相当しますが、より記憶しやすいです。ただし注意が必要です:パスフレーズ内の単語はランダムに選択される必要があり、意味のある文や一般的なフレーズ(iloveyou、tobeornottobeなど)を使用するとセキュリティが大幅に低下します。
パスワードセキュリティのベストプラクティス:第一に、パスワードマネージャー(Bitwarden、KeePassXC、1Passwordなど)を使用して、ウェブサイトごとに一意の強力なランダムパスワード(16文字以上の全文字タイプ)を生成して保存し、パスワードの使い回しを回避します;第二に、可能な場合は常に二要素認証(2FA/TOTP/セキュリティキー)を有効にし、パスワードが漏洩してもアカウントを保護します;第三に、メールがデータ漏洩に含まれているか定期的に確認します(Have I Been Pwnedなどのサービスを介して);第四に、フィッシングメールや偽装ウェブサイトに注意します。これらはパスワードを盗む最も一般的な方法です;第五に、重要なアカウント(メール、ネットバンキング、暗号ウォレット)には追加の強力な保護を使用し、公共のWiFiで機密性の高いアカウントにログインすることを避けます;第六に、パスワードセキュリティはシステム工学であり、強力なパスワードは最初の防衛線に過ぎません。
ユースケース
- 新しいウェブサイトのアカウント登録前にパスワード強度をチェックし、脆弱なパスワードの使用によるアカウントの盗難を回避します
- 定期的なパスワード変更時に新しいパスワードの安全性を評価し、新しいパスワードが古いパスワードよりも強力であることを確認します
- 企業のIT部門がチームのパスワードポリシーを策定する際に、パスワード複雑さ要件の参考検出ツールとして使用します
- ユーザー登録/パスワード変更機能を開発する際に、検出基準を参考にフロントエンドのパスワード強度プロンプトを設計します
- アカウントセキュリティインシデントを調査する際に、既存のパスワードが一般的な脆弱パスワードであるか、クラッキング時間が短すぎないかを検出します
- 異なるセキュリティレベルのアカウントに対応する強度のパスワードを生成します——メール/ネットバンキングには非常に強力なパスワード、フォーラムには中程度のパスワード
- 非技術者に「長く見える」パスワード(password123など)が実際には安全でない理由を説明し、クラッキング時間でリスクを視覚的に示します
- パスワードマネージャーがパスワードを生成した後、エントロピー値と強度レベルが基準を満たしているかを二次検証します
- パスワードセキュリティ知識を学ぶ際に、文字の組み合わせを調整してエントロピーとクラッキング時間の変化関係を観察します
- 異なるパスワードポリシーの効果を比較します——8桁の純粋な数字 vs 8桁の混合文字 vs 16桁の混合文字のクラッキング時間の違い
- セキュリティトレーニングのデモで脆弱パスワードの脆弱性を示し、一般的なパスワードを入力して瞬時にクラッキングされるリスクを示します
- Wi-Fiパスワード、データベースパスワード、暗号化キーなどの高セキュリティシナリオを設定する際に、パスワードが★★★★レベル以上に達していることを確認します
使い方
- パスワード入力ボックスに検出するパスワードを入力します。目のアイコンをクリックすると平文/暗号文表示を切り替えて確認できます
- ツールはパスワードをリアルタイムで分析し、5段階星強度評価、Shannonエントロピー(bits)、3シナリオでのクラッキング時間を表示します
- 文字セット検出テーブルを表示し、7項目のセキュリティ指標(長さ、大文字小文字、数字、特殊文字、繰り返しなし、一般的なパスワードでない)が合格しているかどうかを確認します
- 改善提案エリアのプロンプトに基づいてパスワードを最適化します——長さを増やす、不足している文字タイプを補う、一般的なパスワードを避けるなど
- 強力なパスワードを生成する必要がある場合は、長さ(8-64文字)と文字タイプオプションを設定し、生成ボタンをクリックして暗号論的に安全なランダムパスワードを取得します
特徴
- Shannon Entropyアルゴリズム:パスワードの文字セットサイズと長さに基づいてShannonエントロピー値(bits)を計算し、単純なルールベースのスコアリングではなく、パスワードのランダム性強度を科学的に定量化します
- 5段階星強度評価:☆☆☆☆☆(非常に弱い)から★★★★★(非常に強い)までの5レベル。エントロピー範囲(<30/30-45/45-60/60-80/>80 bits)とセキュリティチェック結果に基づいて総合的に判定します
- 3シナリオのクラッキング時間推定:通常のPC(10億回/秒)、スーパーコンピュータ(1000兆回/秒)、オンライン速度制限攻撃(100回/秒)の3シナリオでのBrute-force Attackクラッキング時間を推定し、ミリ秒から数兆年までの時間範囲をカバーします
- 7項目のセキュリティ指標を項目別に検出:パスワードが8文字以上、大文字を含む、小文字を含む、数字を含む、特殊文字を含む、連続した繰り返し文字がない(aaa/111など)、連続した数字シーケンスがない(123/456など)、一般的な脆弱パスワードリストにないかを自動検出します
- 一般的な脆弱パスワードデータベース検出:一般的な脆弱パスワードリストを内蔵し、123456、password、qwertyなどの代表的な脆弱パスワードを入力すると即座に赤色警告を表示。これらのパスワードはRainbow Table攻撃で瞬時にクラッキングされます
- 動的な改善提案:検出結果に基づいてリアルタイムで個人化された改善提案を提供——大文字が不足している場合は大文字追加を促し、長さが不十分な場合は長さを増やすことを提案し、一般的なパスワードに一致した場合は変更を促し、ユーザーがパスワード強度を向上させるよう正確にガイドします
- 安全なパスワードジェネレーター内蔵:ブラウザのcrypto.getRandomValues()暗号論的安全乱数を使用してパスワードを生成。長さは8-64文字で調整可能で、大文字、小文字、数字、特殊文字(!@#$%^&*-_+=?)を含めるかどうかを自由に選択できます
- パスワード表示/非表示切り替え:ワンクリックで平文/暗号文表示を切り替え、入力内容を簡単に確認できるため、文字の見間違いによるパスワード設定ミスを回避できます
- リアルタイム文字カウント:入力ボックスの下に現在のパスワード文字数をリアルタイムで表示し、長さが基準を満たしているか簡単に評価できます
- 遅延のない即時分析:パスワード入力時に即座に分析し、ボタンをクリックする必要はなく、変更すると即座に強度の変化がフィードバックされます
- 検出結果のワンクリックコピー:強度レベル、エントロピー値、3つのクラッキング時間の完全な要約テキストをワンクリックでコピーでき、記録や共有に便利です
- 国際化された数値フォーマット:クラッキング時間の数値はユーザーの言語環境に応じて自動的にローカライズされてフォーマットされます(桁区切り記号など)
- クリア機能:ワンクリックで入力ボックスをクリアして再検出でき、操作が簡単です
- 純粋なブラウザローカル処理:パスワードの分析と生成はブラウザのJavaScriptで完了し、入力されたパスワードがネットワークを介していかなるサーバーにも送信されることはなく、パスワードの安全性が保証されます
よくある質問
パスワード強度チェックの原理は何ですか?Shannonエントロピーはどのように計算されますか?
このツールはClaude Shannonによって提案された情報エントロピー理論に基づいてパスワード強度を定量化します。エントロピーの計算式は:エントロピー = パスワードの長さ × log₂(文字プールサイズ)です。文字プールサイズはパスワードで使用される文字の種類に基づいて累積されます:小文字26文字、大文字26文字、数字10文字、特殊文字33文字(!@#$%^&*-_+=?など)。例えば、小文字のみを使用した8文字のパスワードの場合、文字プール=26、エントロピー=8×log₂(26)≈37.6 bits;4種類すべての文字を使用した16文字のパスワードの場合、文字プール=95、エントロピー=16×log₂(95)≈105 bitsです。エントロピー値が高いほど、Brute-force Attackで試行する必要のある組み合わせ数が多くなり、パスワードはより安全になります。
なぜ123456、passwordのようなパスワードは長いのに非常に弱いと評価されるのですか?
パスワード強度は長さだけでなく、ランダム性と予測不可能性に依存するからです。123456は6文字ありますが、最も一般的なパスワードの1つであり、すべてのRainbow Tableとパスワード辞書に存在します。ハッカーはクラッキング時にこれらの高頻度パスワードを優先的に試行するため、実際には数秒以内に推測されます。このツールには一般的な脆弱パスワードデータベースが内蔵されており、パスワードが一般的なパスワードリストにあることが検出された場合、長さに関係なく直接非常に弱い(☆☆☆☆☆)と判定されます。同様の脆弱なパスワードには以下のものがあります:qwerty、abc123、admin、letmein、welcome、monkey、dragonなど。
クラッキング時間推定の3つのシナリオの違いは何ですか?
3つのシナリオは異なる攻撃能力のクラッキング速度をシミュレートしています:1)オンライン速度制限攻撃(100回/秒):ウェブサイトのログインインターフェースをシミュレート。サーバーは通常、試行頻度を制限し(例:アカウントあたり毎秒最大数回、5回失敗でロック)、これは最も一般的なリモート攻撃シナリオで速度が最も遅いです;2)通常のPCオフライン攻撃(10億回/秒):攻撃者がパスワードハッシュ値を取得した後、ローカルでグラフィックカードを使用してBrute-force Attackを行います。現代のGPUは毎秒数十億回の試行が可能です;3)スーパーコンピュータ/分散攻撃(1000兆回/秒):国家レベルの攻撃者または大規模なボットネットで、非常に強力な並列計算能力を持っています。あなたのパスワードは、スーパーコンピュータシナリオでも十分な時間耐性があって初めて真に安全であると見なされます。
何文字のパスワードが安全ですか?推奨されるパスワードポリシーは何ですか?
セキュリティレベルはシナリオによって異なります:1)通常のフォーラム/重要でないアカウント:≥12文字の混合文字、エントロピー≥60 bits(★★★☆☆)、スーパーコンピュータで数年かかる;2)メール/ソーシャルアカウント:≥14文字の混合文字、エントロピー≥80 bits(★★★★☆);3)ネットバンキング/暗号ウォレット/管理者アカウント:≥16文字の全文字タイプ、エントロピー≥100 bits(★★★★★)、スーパーコンピュータでのクラッキングに数兆年以上かかる。一般的な推奨事項:パスワードマネージャーを使用して、大文字+小文字+数字+特殊文字を含む16文字以上のランダムパスワードを生成し、ウェブサイトごとに一意のパスワードを使用し、二要素認証(2FA)を有効にします。
大文字+小文字+数字+特殊文字があるのに、まだ十分に強くないと表示されるのはなぜですか?
いくつかの理由が考えられます:1)長さが不十分——4種類の文字がすべてあっても、わずか8文字の場合、エントロピー値は約52 bitsであり、スーパーコンピュータでも比較的速くクラッキングされる可能性があります;2)繰り返しパターンがある——AAAbbb123!!!のように連続した繰り返し文字が含まれている場合、ツールはこれを検出して減点します;3)連続した数字がある——abc123!の123は連続したシーケンスです;4)全体的な構造に規則性がある——Password1!は4種類の文字要件を満たしていますが、Passwordは一般的な単語に先頭の大文字と数字/記号の接尾辞が付いたもので、Dictionary Attackに簡単にヒットします。長さは少なくとも12文字以上にし、文字の配列をできるだけランダムにすることを推奨します。
入力したパスワードはサーバーにアップロードされますか?安全ですか?
まったくありません。このツールのすべてのパスワード分析計算はブラウザのJavaScriptでローカルに完了し、パスワードを入力した後、ネットワークを介して外部サーバーに送信されることはありません。ページはブラウザ側のcrypto.getRandomValues() APIを使用してランダムパスワードを生成します(これはブラウザが提供する暗号論的安全乱数インターフェースです)。サーバーに依存しません。オフライン状態でこのツールを使用でき、機能は完全に正常に動作します。ページを閉じるか更新すると、入力したパスワードは自動的にクリアされ、ブラウザに永続的に保存されることはありません。
なぜパスワードはランダムに見えるのに、一般的なパスワードデータベースにないと検出結果に表示されるのですか?これはどのように判断されていますか?
ツールには一般的な脆弱パスワードデータセット(commonPasswords)が内蔵されており、歴史的なデータ漏洩で最も頻度の高い数千のパスワード(rockyouなどの漏洩イベントで統計された高頻度パスワードなど)が含まれています。あなたのパスワードがこのリストにない場合、それは広く使用されている脆弱なパスワードではないことを意味します。ただし注意が必要です:一般的なパスワードデータベースにないからといって絶対的に安全というわけではありません——パスワードに個人情報(名前のピンイン、誕生日、電話番号)、キーボードパス(asdfgh)、または意味のある単語の組み合わせが含まれている場合、標的型のDictionary Attackでクラッキングされる可能性があります。最も安全なパスワードは完全にランダムに生成された文字シーケンスです。
パスワードジェネレーターが使用する乱数は安全ですか?
安全です。パスワードジェネレーターはブラウザが提供するcrypto.getRandomValues()インターフェースを使用します。これはWeb Cryptography APIが提供するCryptographically Secure Pseudo-Random Number Generator(CSPRNG)であり、その乱数品質はMath.random()よりもはるかに優れています。crypto.getRandomValues()の乱数エントロピーはオペレーティングシステムのエントロピープール(キーボード入力間隔、マウスの動き、ディスクIO時間などの物理的なランダムソース)に由来し、予測不可能かつ再現不可能であり、パスワード、キーなどのセキュリティ感受性データの生成に適しています。生成されるパスワードの文字は、選択した文字セットから均一にランダムに抽出されます。
なぜ同じパスワードでもツールによって強度評価が異なる場合があるのですか?
異なるパスワード強度チェックツールは異なるアルゴリズムと閾値を使用しているため、評価結果が異なる場合があります。一般的な違いには以下のものがあります:1)エントロピー計算方法が異なる——一部のツールは文字クラス数で単純に計算し、他のツールはより正確なパターン分析を行います;2)一般的なパスワードデータベースのサイズが異なる——データベースが完全であるほど、より多くの脆弱パスワードを識別できます;3)強度レベルの閾値が異なる——何ビットを「強い」とするかに統一基準はありません;4)キーボードパターン(qwerty、qazwsx)、日付形式、繰り返し文字などのパターンを検出するかどうか。このツールはShannonエントロピー+7項目のルールチェックの組み合わせ方式を採用し、一般的な脆弱パスワードに対する専門的な検出を行い、評価は業界の標準(NIST、OWASPの推奨事項)を参考にしています。
特殊文字には何が含まれますか?なぜより多くの特殊文字をサポートしないのですか?
このツールの特殊文字セットは!@#$%^&*-_+=?(合計14文字)であり、パスワードジェネレーターもこの文字セットを使用します。これは多くのウェブサイトがパスワードに許可する特殊文字に制限を設けているためです——例えば、一重引用符、二重引用符、バックスラッシュ、スペース、山括弧などはSQL、HTML、コマンドラインで特別な意味を持ち、インジェクションの問題を引き起こしたりウェブサイトによって拒否されたりする可能性があります。最も一般的に使用され、広く受け入れられている特殊文字を選択することで、生成されたパスワードが大多数のウェブサイトで使用可能であることを保証します。手動でパスワードを入力する際に他の特殊文字(%、~、|、{}[]など)を使用した場合でも、ツールはそれらを特殊文字として認識し、文字プールにカウントします。
定期的なパスワード変更はセキュリティを向上させますか?
NIST(米国国立標準技術研究所)のSP 800-63B最新ガイドラインによると、定期的な強制パスワード変更(例:90日ごと)のセキュリティ上の利益は限定的であり、むしろユーザーが脆弱なパスワードを選択したり、古いパスワードに基づいて微小な変更を加えたりする(password1→password2など)可能性があります。より良い戦略は:1)十分に強力な長いランダムパスワードを使用する(16文字以上);2)アカウントごとに一意のパスワードを使用する(パスワードマネージャーで管理);3)二要素認証(2FA)を有効にする;4)データ漏洩インシデントを知った場合は直ちに関連するパスワードを変更する;5)異常なログインを検出した場合は直ちにパスワードを変更する。このツールは既存のパスワード強度をアップグレードする必要があるかどうかを判断するのに役立ちます。
パスワードマネージャーが生成したパスワードをこのツールでチェックする必要がありますか?
一般的には必要ありません。主流のパスワードマネージャー(1Password、Bitwarden、KeePass、LastPassなど)が生成するパスワードは、デフォルトで暗号論的安全乱数と全文字セットを使用しており、通常12-20文字以上の長さで、強度は一般的に★★★★以上です。ただし、パスワードマネージャーの生成ルールをカスタマイズした場合(特殊文字の除外、長さの短縮など)、このツールを使用してエントロピーとクラッキング時間がセキュリティ要件を満たしているかを検証できます。さらに、パスワードマネージャーの乱数実装が信頼できるかどうか不明な場合は、二次検証も良い習慣です。
なぜ連続した数字や連続した繰り返し文字はパスワードのセキュリティを低下させるのですか?
Brute-forceツールとDictionary Attackは一般的なパスワードを試行するだけでなく、一般的なパターンを対象に候補パスワードを生成するからです。連続した数字(123、456、789、012)と連続した繰り返し文字(aaa、111、!!!)は非常に高頻度のパターンであり、多数のパスワードに出現します。パスワードクラッキングツールのルールエンジンはこのようなバリアント(単語の後に123、!!!、2024などの西暦年の数字を追加するなど)を特に生成します。これらのパターンを含むパスワードは事実上有効エントロピーを減少させます——攻撃者はすべての組み合わせを総当たりする必要はなく、一般的なパターンを試行するだけでヒットします。
中国語のパスワードや全角文字のパスワードは安全ですか?
ほとんどのウェブサイトとシステムは、エンコーディング処理で互換性の問題が発生しやすいため、中国語や全角文字をパスワードとしてサポートしていません。このツールは英数字以外の文字をすべて特殊文字としてカウントしますが、実際に中国語パスワードを使用すると、ログイン不能、クロスプラットフォームでの文字化けなどの問題が発生する可能性があります。ASCII文字セット(英大文字小文字、数字、半角記号)で構成されるパスワードを使用することを推奨します。これが最も互換性の高いソリューションです。システムがUnicodeパスワードをサポートしている場合(一部のLinuxシステムなど)、Unicodeパスワードは文字プールが大きくなりますが、すべての端末が正しく入力できることを確認する必要があります。
Rainbow Table攻撃とは何ですか?Brute-forceとの違いは何ですか?
Brute-force Attackはすべての可能な文字の組み合わせを1つずつ試行します;一方、Rainbow Table攻撃は一般的なパスワードとそのハッシュ値の対照表(Rainbow Table)を事前に計算し、攻撃時に毎回計算するのではなく直接テーブルを参照するため、速度が非常に速いです。ユーザーが一般的なパスワードを使用している場合、ハッシュアルゴリズムが強力でも(SHA-256など)、攻撃者はRainbow Tableを介して元のパスワードを数秒以内に逆引きできます。Rainbow Table攻撃を防ぐ方法には以下のものがあります:1)十分にランダムな長いパスワードを使用する(Rainbow Tableのカバー範囲外);2)システムがソルト付きハッシュ(bcrypt、scrypt、Argon2など)を使用し、事前計算されたRainbow Tableを無効にする。このツールの一般的なパスワードデータベース検出は、ユーザーがすでにRainbow Tableにカバーされているパスワードを選択することを回避するのに役立ちます。
トラブルシューティング
パスワードを入力しても分析結果が表示されないのはなぜですか?
分析結果はパスワード入力後にリアルタイムで表示されます。パスワードを入力しても結果エリアが表示されない場合は、以下を確認してください:1)パスワードを入力したか(空の入力ボックスは結果を表示しません);2)ページが完全に読み込まれているか(JavaScriptが有効でエラーがない)。それでも応答しない場合は、ページを更新してみてください。パスワード分析はローカルブラウザで完全に実行され、ネットワークリクエストに依存しません。更新しても入力は失われませんがコンテンツはクリアされます。
パスワード生成ボタンをクリックしても反応がない?
パスワード生成ボタンは少なくとも1つの文字タイプを選択する必要があります(大文字/小文字/数字/記号の少なくとも1つ)。すべてのオプションがチェックされていない場合、パスワードを生成できません。デフォルトでは小文字+数字がフォールバックとして使用されます。最も強力なパスワードを生成するために、大文字、小文字、数字、記号の4つのオプションをすべてチェックしたままにすることを推奨します。長さスライダーの範囲は8-64文字です。生成されたパスワードは自動的に入力ボックスに入力され、即座に分析されます。
パスワード表示/非表示ボタンが機能しない?
目のアイコンボタンは、パスワード入力ボックスのtype属性をpasswordとtextの間で切り替えます。クリックしても切り替わらない場合は、ブラウザのJavaScript例外である可能性があります。ページを更新してみてください。注意:passwordモードで入力した文字はドット(•••)で表示され、textモードでは平文が表示されます。公共の場所や画面録画時にはpasswordモードを使用することを推奨します。
私のパスワードは明らかに複雑なのに評価が高くないのはなぜですか?
以下の一般的な問題を確認してください:1)長さが不十分ではないか?12文字未満は全文字混合でもスーパーコンピュータで比較的速くクラッキングされる可能性があるため、少なくとも14文字を推奨します;2)反復シーケンスが含まれていないか?AAA111!!!のような連続した繰り返し文字を含む;3)一般的な単語に接尾辞が付いているだけではないか?Password123!やQwerty@2024は4種類の文字を満たしていますが、コアが一般的な単語+規則的な接尾辞です;4)キーボードパスではないか?Qazwsx123!はキーボード上のZ字形パスであり、このようなパターンはクラッキングツールによって優先的に試行されます。パスワードジェネレーターを使用して完全にランダムなパスワードを生成することを推奨します。
用語集
- Shannon Entropy(シャノンエントロピー)
- Claude Shannonによって提案された情報論の概念で、パスワードのランダム性強度を測定するために使用され、単位はビット(bit)です。エントロピー = パスワードの長さ × log₂(文字プールサイズ)。エントロピー値が高いほど、Brute-force攻撃に必要な組み合わせ数が多くなります。
- Character Pool(文字プール)
- パスワードで使用されるすべての可能な文字のセットサイズ。小文字26文字、大文字26文字、数字10文字、特殊文字約33文字。使用する文字タイプが多いほど文字プールは大きくなり、1文字追加するごとのエントロピー利得が多くなります。
- Brute-force Attack(ブルートフォース攻撃)
- すべての可能な文字の組み合わせを体系的に試行することでパスワードを推測する攻撃方法。クラッキング時間はパスワードエントロピーと攻撃者の計算能力に依存し、高エントロピーパスワードはBrute-forceを計算上実行不可能にすることができます。
- Dictionary Attack(辞書攻撃)
- 一般的なパスワード、漏洩したパスワード、単語、一般的なパターンを含む事前コンパイルされたリストを使用してパスワード推測を行う攻撃方法であり、純粋なBrute-forceよりもはるかに効率的で、現実に最も一般的なパスワード攻撃手段です。
- Rainbow Table(レインボーテーブル)
- ハッシュ値を取得した後に元のパスワードを迅速に逆引きするために使用される、事前計算されたパスワードハッシュ値対照表。ソルト付きハッシュ(salted hash)と低速ハッシュアルゴリズム(bcrypt/Argon2)を使用するとRainbow Table攻撃を効果的に防御できます。
- CSPRNG(暗号論的擬似乱数生成器)
- Cryptographically Secure Pseudo-Random Number Generator、予測不可能かつ再現不可能な乱数を出力する乱数生成器。このツールはブラウザのcrypto.getRandomValues() CSPRNGインターフェースを使用してパスワードを生成します。
- Common Password(一般的な脆弱パスワード)
- 複数のデータ漏洩インシデントで高頻度で出現するパスワード(123456、password、qwerty、adminなど)。これらのパスワードはすべてのクラッキング辞書に存在し、完全に使用を回避すべきです。
- 2FA/MFA(二要素/多要素認証)
- Two-Factor/Multi-Factor Authentication、パスワードに加えて2番目の検証要素(携帯電話の確認コード、TOTP、ハードウェアセキュリティキーなど)を必要とし、パスワードが漏洩してもアカウントのセキュリティを保護します。
- Passphrase(パスフレーズ)
- 複数のランダムな単語で構成される長いパスワードであり、ランダム文字列よりも記憶しやすい一方で、単語数によって高いエントロピーを獲得します。例えば「correct horse battery staple」スタイルの4単語ランダム組み合わせ。
- Password Hash(パスワードハッシュ)
- 一方向ハッシュ関数を使用してパスワードを不可逆な固定長文字列に変換して保存します。検証時には平文ではなくハッシュ値を比較し、データベースが漏洩してもパスワードを直接露出させません。bcrypt/Argon2などの低速ハッシュアルゴリズムを使用すべきです。
- Salt(ソルト)
- ハッシュ計算前にパスワードに追加されるランダム文字列であり、同じパスワードでも異なるハッシュ値を生成させ、Rainbow Table攻撃と一括クラッキングを防止します。各パスワードには一意のソルト値が必要です。
- crypto.getRandomValues()
- Web Cryptography APIによって提供される暗号論的安全乱数生成インターフェースであり、ブラウザによって実装され、乱数ソースはオペレーティングシステムのエントロピープールに由来し、Math.random()よりもはるかに優れており、パスワードとキーの生成に適しています。
パスワードエントロピーとクラッキング時間リファレンス
スーパーコンピュータ攻撃シナリオ(1000兆回/秒)での、異なるエントロピー値のパスワードのクラッキング難易度リファレンス:
| エントロピー(bits) | 代表的な組み合わせ | PCクラッキング時間 | スパコンクラッキング時間 | 強度評価 |
|---|---|---|---|---|
< 30 | 6桁の純粋な数字、一般的な単語 | < 1秒 | 瞬時 | ☆☆☆☆☆ 非常に弱い |
30-45 | 8文字の純粋な小文字 | 数秒-数時間 | < 1秒 | ★☆☆☆☆ 弱い |
45-60 | 8文字の大文字+小文字+数字 | 数日-数年 | 数秒-数分 | ★★☆☆☆ 普通 |
60-80 | 10文字の全文字混合 | 数十年-数千年 | 数時間-数日 | ★★★☆☆ 良好 |
80-100 | 14文字の全文字混合 | 数百年以上 | 数年-数百年 | ★★★★☆ 強い |
> 100 | 16文字の全文字ランダム | 実行不可能 | 数兆年以上 | ★★★★★ 非常に強い |
異なる文字タイプの組み合わせのエントロピー比較
12文字のパスワードで異なる文字の組み合わせを使用した場合の理論的エントロピーとセキュリティの違い:
| 文字の組み合わせ | 文字プール | 12文字エントロピー | 組み合わせ数量級 | セキュリティ評価 |
|---|---|---|---|---|
| 純粋な数字(0-9) | 10 | ~40 bits | 10¹² | 非常に弱い、秒で破られる |
| 純粋な小文字 | 26 | ~56 bits | 10¹⁷ | 弱い、分単位で破られる |
| 大文字+小文字 | 52 | ~68 bits | 10²⁰ | 普通、時間単位で破られる |
| 大文字+小文字+数字 | 62 | ~71 bits | 10²¹ | 良好、日単位で破られる |
| 大文字+小文字+数字+記号 | 95 | ~79 bits | 10²³ | 強い、年単位で破られる |
| 全文字16文字ランダム | 95 | ~105 bits | 10³¹ | 非常に強い、Brute-force不可 |
7項目セキュリティチェック指標の説明
ツールが項目別に検出する7つのパスワードセキュリティ指標:
| チェック項目 | 合格基準 | 不合格リスク |
|---|---|---|
| 長さ≥8文字 | パスワードが少なくとも8文字 | 短すぎるパスワードはBrute-force空間が小さい |
| 大文字を含む | A-Zを少なくとも1つ含む | 文字プールが26減少、エントロピー低下 |
| 小文字を含む | a-zを少なくとも1つ含む | 文字プールが26減少、エントロピー低下 |
| 数字を含む | 0-9を少なくとも1つ含む | 文字プールが10減少、エントロピー低下 |
| 特殊文字を含む | 英数字以外の記号を含む | 文字プールが約33減少、エントロピー低下 |
| 繰り返し/連続パターンなし | 3文字以上の同一文字または連続数字がない | パターン化されたパスワードはルール攻撃でヒットされやすい |
| 一般的なパスワードDBにない | 既知の脆弱パスワードリストにない | 一般的なパスワードは辞書で秒で破られる |
Privacy & Security
このパスワード強度チェッカーのすべての操作はブラウザで完全にローカルに完了します:あなたが入力したパスワードはブラウザのJavaScriptでエントロピー計算とセキュリティ分析にのみ使用され、ネットワークを介していかなる外部サーバーにも送信されることはありません。パスワードジェネレーターはブラウザに内蔵されたcrypto.getRandomValues()インターフェースを使用してローカルでランダムパスワードを生成し、サーバーに依存しません。ページはCookieトラッキングを使用せず、ユーザーが入力したパスワードや使用データを収集しません。ページを閉じるか更新すると、入力したパスワードと分析結果は自動的にクリアされ、ブラウザに永続的に保存されることはありません。オフライン状態でこのツールを使用でき、すべての機能が完全に利用可能です。
Authoritative References
- NISTNIST SP 800-63B デジタルIDガイドライン
- haveibeenpwned.comHave I Been Pwned - パスワード漏洩確認
- MDNWeb Cryptography API - MDNドキュメント
- 色覚シミュレーター
- カラーコンバーター
- .htaccess→Nginx変換ツール
- SQL 変換ツール
- Cookieパーサー
- Cron式ジェネレーター
- Cron式バリデーター
- CSSフォーマッター
- CSS圧縮
- CSV→Excel変換
- 通貨変換
- 差分チェッカー
- ファビコンジェネレーター
- XMLフォーマッター
- 16進数変換ツール
- HTMLフォーマッター
- HTML圧縮
- HTML→Markdown変換
- MarkdownからHTML変換
- JavaScript フォーマッター
- JS圧縮
- JSXフォーマッター
- JSX 圧縮
- キーワードのクラスタリング
- Lorem Ipsum ジェネレーター
- Markdown テーブルジェネレーター
- Meta Tag ジェネレーター
- パスワード生成器
- パスワード強度チェッカー
- QRコード・バーコードジェネレーター
- 正規表現テスター
- Slugジェネレーター
- SQLビルダー
- SQL フォーマッター
- 文字数カウント
- 時間ツール
- TSフォーマッター
- TS圧縮
- TSXフォーマッター
- TSX圧縮
- Unix タイムスタンプ変換
- UUID ジェネレーター
- YAMLフォーマッター
- 大文字と小文字の変換