強力なパスワードの条件
強力なパスワードとは、攻撃者が現実的な時間内に推測できないパスワードのことです。それを決めるのは2つの要素です。長さと、各位置に入りうる文字の種類の多さです。ランダムであることも重要です。ペットの名前の後ろに年を付けたような自分で考えたパスワードは、人の選び方に予測しやすい傾向があるため、長さから想像するよりはるかに推測されやすくなります。
このツールは、許可した文字の中からすべての文字をランダムに選びます。そのため強度を簡単に測ることができ、悪用できるパターンもありません。
パスワード生成ツールの使い方
- ページを開くとすぐに、「パスワード」欄に新しいパスワードが表示されます。
- 「長さ」のスライダーを動かすか、マイナスとプラスのボタンを使って、4文字から128文字の間で選びます。初期値は20文字です。
- 「使う文字」で、「英大文字」「英小文字」「数字」「記号」のオン・オフを切り替えます。
- オプションを選びます。
- 紛らわしい文字を除外(I l 1 O 0):取り違えやすい文字を取り除きます。
- 選んだ種類をすべて使う:選んだ各種類の文字が、少なくとも1文字ずつ入るようにします。
- 別のパスワードが欲しい場合は「新しく生成」を、コピーするには「コピー」を押します。
- 複数必要な場合は、「パスワードの数」で数を選びます。「すべてのパスワード」欄に表示され、「すべてコピー」で一覧全体をコピーできます。
パスワードの下には、強度を示すバーとラベルが、ビット数の推定値とともに表示されます。
生成されるパスワードはすべて半角の英数字と記号です。サイトによっては使える記号が限られていることがあります。記号が受け付けられない場合は、「記号」をオフにして、その分文字数を増やしてください。
強度のラベル
| エントロピーのビット数 | ラベル |
|---|---|
| 28未満 | 非常に弱い |
| 28から44 | 弱い |
| 45から63 | 普通 |
| 64から99 | 強い |
| 100以上 | 非常に強い |
生成例
以下のパスワードと数値は、生成ツールを実行した結果です。すでに公開されているので、これらは使わないでください。
| 長さ | 使う文字 | ビット数 | ラベル | 例 |
|---|---|---|---|---|
| 6 | 数字 | 19.93 | 非常に弱い | 546382 |
| 8 | 英小文字 | 37.60 | 弱い | orvapcvl |
| 8 | 4種類すべて | 51.93 | 普通 | QpF4b@<V |
| 12 | 4種類すべて | 77.90 | 強い | .y9}g-.ta$rP |
| 16 | 英字と数字 | 95.27 | 強い | ydrGkOZ9PrXPB6TL |
| 16 | 4種類すべて | 103.87 | 非常に強い | Aj~oJ-WDTW}8rJu2 |
| 20 | 4種類すべて | 129.84 | 非常に強い | CwEfwEyMg)>w~b-tMx.9 |
| 20 | 4種類すべて、紛らわしい文字を除外 | 127.50 | 非常に強い | B;8#]&Dr/*3X8y]fP#-P |
文字の種類を増やすより、長さを伸ばす方が効果的であることに注目してください。4種類すべてを使った場合、8文字から16文字にするとビット数はおよそ2倍になります。
仕組み
4種類の文字には、英大文字26文字、英小文字26文字、数字10文字、記号28文字の合計90文字が含まれます。「紛らわしい文字を除外」では、I、l、1、縦線、O、0、o の7文字が取り除かれ、83文字が残ります。
各文字は、ブラウザの暗号論的な乱数源 crypto.getRandomValues を使って選ばれます。ツールは単純な余りではなく棄却サンプリングで乱数を文字に割り当てるので、候補のどの文字もまったく同じ確率で選ばれます。
「選んだ種類をすべて使う」がオンの場合、選んだ種類のどれかがたまたま含まれなかったパスワードは捨てられ、新しく引き直されます。これにより、結果が均等にランダムなまま保たれます。
強度の推定値は、文字数に候補の数の log2 を掛けた値です。90文字から20文字を選ぶなら、20 x 6.49 で約129.84ビットになります。これは上限の値です。すべての種類を必須にすると、ありうるパスワードの数はわずかに減りますが、通常の長さなら減る量はごくわずかです。
プライバシーとセキュリティ
- 何も端末の外に出ません。 サーバーでの処理はありません。パスワードは、コピーするまでページ上にだけ存在します。
- 何も保存されません。 ページを再読み込みすると、パスワードは消えます。このツールには、意図的に履歴機能を設けていません。
- 共有のパソコンでは、貼り付けた後にクリップボードを消去しましょう。
- パスワード管理ツールを使いましょう。 ランダムなパスワードは、安全に保管できてこそ役に立ちます。管理ツールは自動入力もできるので、長くしても手間は増えません。
- できる限り2段階認証をオンにしましょう。 偽のログインページで盗まれてしまえば、強力なパスワードも役に立ちません。
表示されるビット数は、ここで生成したようにランダムに作られたパスワードを前提にしています。自分で考えて別のチェッカーに入力したパスワードには当てはまりません。
そのほかのパスワードの作り方
Python が入っているパソコンなら、次のコマンドで実行するたびに英数字20文字の新しいパスワードが表示されます。
python -c "import secrets, string; a = string.ascii_letters + string.digits; print(''.join(secrets.choice(a) for _ in range(20)))"
OpenSSL がインストールされていれば、openssl rand -base64 18 で24文字のランダムな文字列が表示されます。ほとんどのパスワード管理ツールにも生成機能が組み込まれています。
パスワードの作成に、Excel の RAND 関数や JavaScript の Math.random は使わないでください。これらは予測できないようには設計されていません。
関連ツール
秘密の値ではなく一意の ID が必要なら、UUID 生成ツールを使ってください。範囲を指定したランダムな数字には、乱数生成ツールを使ってください。ファイルのチェックサムを作るには、MD5 ハッシュ生成ツールを使ってください。