強力でユニークなパスワードは、あらゆるオンラインアカウントにとって最も手軽な防御策です。しかし、それが実際に必要になるタイミングは、新しい仕事用アカウントの作成時、オンラインバンキングの強制的なパスワードリセット時、新しいルーターの初期設定時、あるいは長年先送りにしてきたパスワードマネージャー(password manager)への移行時など、たいてい突然訪れます。この無料のパスワード生成ツールなら、完全にランダムなパスワードを1回のクリックで作成できます。「長さ」を設定し、含めたい文字種(大文字と小文字、数字、基本記号(%$#@!?&)、複雑な記号(.,;[]()^-_=+{}:<>|))を選択して、「生成」ボタンを押すだけです。
セキュリティこそがこのツールの最も重要な目的です。そのため、生成エンジンにはWeb Crypto API(crypto.getRandomValues)が採用されています。これは、TLSやその他のセキュリティ上重要な処理が依存するのと同じ、暗号論的に安全なシステムレベルの乱数から値を取得します。Math.random()などの予測可能な擬似乱数関数に基づくツールとは異なり、1つの結果を見ただけでは攻撃者が次の結果について何も推測できないように設計されています。パスワードの生成は完全にデバイス上で行われます。パスワードがサーバーに送信されることはなく、ログに記録されることも、私たち運営者が見ることも決してありません。つまり、途中で傍受されるデータも、私たちが保存するデータも一切存在しません。
多彩なオプションにより、どんなサイトのパスワード要件にも簡単に対応できます。生成されるすべてのパスワードには、選択した各文字種から少なくとも1文字が必ず含まれるよう保証されています。そのため、「大文字と数字を必ず含める」といった要件も自動的に満たされます。また、デフォルトで「各文字種の数をほぼ均等にする」がオンになっているため、特定の文字種ばかりに偏ることもありません。最大限の強度を求めるなら記号をオンにし、記号を許可しない古いシステムの場合はオフにします。「紛らわしい文字を除く」スイッチを使えば、人が読み間違えやすい文字(Il1O0o)を省くことができます。
複数のパスワードが必要な場合や、特殊な要件がある場合は、「個数」を設定してリストを一度に生成できます(チーム用のアカウント作成時など、最大100個まで)。個数が1より大きい場合、「出力形式」でパスワードの区切り方(「改行」、「スペース区切り」、または「カンマ区切り」)を決定します。その他の機能はすべて「詳細オプション」内にあります。同じ文字が複数回出現してもよい場合は、「1つのパスワード内で文字の重複を除く」をオフにします。なお、このツールは日本語の文字(ひらがなや漢字など)には対応していませんが、ウクライナ語、ギリシャ語、セルビア語からポーランド語、トルコ語、ベトナム語まで、35の言語で使われるローカルな文字をサポートしています。ツールが対応していない任意の文字を追加したい場合や、細かく制御したい場合は、「文字セット(1行につき1つ)」を使用して独自のセットを定義できます。入力した各行が、生成時に選ばれる独立した文字種として扱われます。
このパスワード生成ツールを選ぶ理由
― ブラウザ完結の生成処理:パスワードはデバイス上で作成され、外部には一切送信されません
― Web Crypto APIによる乱数:Math.random()ではない、暗号論的に安全な生成
― 無制限かつ無料:登録不要で、必要なだけ何度でもパスワードを生成可能
― 文字種の保証:選択した各文字種が必ず含まれます
― カスタム文字セット:特殊なパスワード要件にも独自のセットで対応
― エントロピー評価:すべてのパスワードの強度をビット単位で確認
― 紛らわしい文字の除外機能:読み間違いを防ぎます
― ローカルアルファベット対応:35言語の固有文字をミックス可能
― 一括生成モード:ワンクリックでパスワードのリストを作成
乱数はどのように生成されるのでしょうか?お使いのオペレーティングシステムは、ハードウェアのイベントなどから生じる予測不可能なノイズ(エントロピー)を継続的に収集し、それを暗号論的に安全な乱数生成器に供給しています。あなたが生成ボタンを押すと、このページのJavaScriptがWeb Crypto APIを通じてブラウザに乱数値を要求します。その値をあなたが選んだ文字種にマッピングし、各文字種がすべて揃っているかを確認したうえで、パスワードを組み立てます。推測されるような「シード値」は存在せず、パスワード解析専用のハードウェアがショートカットとして利用できるようなアルゴリズム上の抜け道もありません。また、どの段階においてもネットワーク通信は発生しません。すべての処理は完全にあなたのデバイス上で行われます。
結果の下には、パスワードの強度を示すビット単位の予測困難性(エントロピー)が表示されます。日常的なアカウントには60ビット以上が適当であり、80ビット以上なら強力、100ビット以上なら現在のハードウェアを用いたブルートフォース(総当たり)攻撃でも実質的に破ることは不可能です。しかし、何よりも重要なのは次の2つの習慣です。第一に、複雑さよりも「長さ」を優先すること。重要なアカウントには16文字以上を使用してください。文字を1つ追加するたびに、別の記号種別を追加するよりもはるかに早く、攻撃者の作業量を倍増させることができます。第二に「使い回さない」こと。あるウェブサイトでデータ侵害(data breach)が発生すると、漏洩したログイン情報は直ちに別のサービスでのログイン試行に使われます。これはクレデンシャルスタッフィング(credential stuffing)と呼ばれる攻撃であり、たった1つのパスワードの使い回しが、1回の情報漏洩をアカウントの全面的な乗っ取りに変えてしまいます。すべてのアカウントに個別のパスワードを作成し、それらをパスワードマネージャーで管理し、可能であれば必ず二要素認証(2FA)を有効にしてください。こうした対策はNISCの推奨事項にも沿っています。また、完全にランダムなパスワードに文字の繰り返しや短い単語のような部分が含まれていても驚かないでください。真の乱数ではそうした並びが頻繁に発生しますが、それによってパスワードが弱くなることは決してありません。