安全で強力なランダムパスワードを瞬時に作成
安全なパスワードの条件は、十分な長さ(12文字以上推奨)、大文字・小文字・数字・記号の組み合わせ、辞書に載っている単語を含まないこと、そしてサービスごとに異なるパスワードを使うことです。
暗号学的に安全な乱数生成器(crypto.getRandomValues)を使用しており、生成されたパスワードは予測不可能です。パスワードはサーバーに送信されず、すべてブラウザ内で処理されます。
8文字以下:非常に弱い(数秒で解読可能)。12文字:中程度(記号を含めれば数年)。16文字以上:強力(現実的に解読不可能)。当ツールでは最大64文字まで生成可能です。
強いパスワードを作るうえで大切なのは、長さ・文字種・使い回さないことの3点です。このツールはこの3つをすべてカバーできるよう設計されており、文字数のスライダー、4種類の文字種トグル、まとめて10個作る一括生成を備えています。順を追って解説します。
パスワードの強さは、文字種を増やすことよりも長さを伸ばすことのほうが効果的です。総当たり攻撃で試す組み合わせは1文字増えるごとに何倍にもなるため、長いほど解読は急激に難しくなります。8文字以下は危険、12文字以上を推奨、重要なアカウントは16文字以上が安心です。このツールでは文字数を4〜64文字の範囲で指定でき、初期値は16文字に設定されています。
大文字(A〜Z)・小文字(a〜z)・数字(0〜9)・記号(!@#$%^&*()_+-=[]{}|;:,.)を混ぜると、1文字あたりに使える種類が増え、組み合わせの総数が大きくなります。このツールでは各文字種をトグルで個別にオン・オフでき、4種類すべてを有効にすると85種類の文字から各桁が選ばれます。なお最低1種類は必ず有効になる仕様で、すべてオフにすることはできません。ログインフォームの「0とO」「lと1」の見間違いを避けたい場合は、紛らわしい文字を除外するオプションも利用できます。
どれだけ強いパスワードでも、複数のサービスで同じものを使い回すと、1か所からの漏えいが全アカウントの危険に直結します(パスワードリスト攻撃)。サービスごとに別々のパスワードを用意してください。このツールの一括生成ボタンを押すと一度に10個のパスワードを作れるため、複数アカウント分をまとめて準備するのに便利です。生成にはブラウザ標準の暗号学的乱数(crypto.getRandomValues)を用いており、予測されにくい値が得られます。処理はすべてブラウザ内で完結し、生成結果がサーバーへ送信・保存されることはありません。
同じ文字数でも、使う文字種が多いほど、また文字数が長いほど、総当たりで試す組み合わせの数が増え、解読されにくくなります。下表は文字種と文字数ごとの組み合わせ数(おおよその桁数)と強度の目安です。エントロピー(bit)は値が大きいほど強く、一般に80bit以上が安全圏の目安とされます。
| 文字種 | 文字数 | 使える文字数 | 組み合わせ数の目安 | エントロピー | 強度の目安 |
|---|---|---|---|---|---|
| 英数字 | 8文字 | 62種類 | 約10の14乗通り | 約48bit | 弱い |
| 英数字 | 12文字 | 62種類 | 約10の22乗通り | 約71bit | 普通 |
| 英数記号 | 8文字 | 85種類 | 約10の15乗通り | 約51bit | やや弱い |
| 英数記号 | 12文字 | 85種類 | 約10の23乗通り | 約77bit | 強い |
| 英数記号 | 16文字 | 85種類 | 約10の31乗通り | 約103bit | 非常に強い |
たとえば「8文字の英数字」は約10の14乗通りなのに対し、「12文字の英数記号」は約10の23乗通りと、桁違いに解読されにくくなります。さらに16文字まで伸ばすと約10の31乗通り・約103bitに達し、現実的な時間での総当たり解読はほぼ不可能になります。短い英数字だけのパスワードから、長めの英数記号パスワードへ切り替えるだけで、安全性は飛躍的に高まります。当ツールの強度バーは、文字数(8・12・16文字の各しきい値)と含まれる文字種の多さを点数化して、弱い〜非常に強いの5段階で目安を表示します。