ランダムパスワード生成

暗号論的に安全なパスワードを、端末内で生成します。

設定

このパスワード生成ツールの仕組み

このページのパスワードはすべて、ブラウザの Web Crypto API(crypto.getRandomValues)で生成されます。これは TLS の鍵や暗号トークンにも使われる乱数源であり、多くの簡易ツールが頼っている予測可能な Math.random() ではありません。生成器は棄却サンプリングを用いて、選択した文字セット内のすべての文字が等しい確率で現れるようにし、有効にした各文字グループから少なくとも 1 文字が含まれることを保証したうえで、それらの文字が予測可能な位置に固定されないよう結果をシャッフルします。

生成はすべてデバイス上で行われるため、パスワードが送信、記録、保存されることは一切ありません。このページを読み込んでからネットワークを切断しても、パスワードを生成し続けられます。

良いパスワードの選び方

何よりも長さが重要です。英字、数字、記号から選んだ 16 文字のパスワードは約 100 ビットのエントロピーを持ち、オフラインの総当たり攻撃で到達できる範囲をはるかに超えています。特殊文字を制限しているサービスでは、英字と数字のみで長さを 20 文字以上にすれば同等の強度が得られます。パスワードの下にあるエントロピーメーターは、長さ × log2(文字セットのサイズ) で計算したビット数を表示するので、感覚ではなく客観的に設定を比較できます。

パスワードを読み上げたり画面を見ながら入力したりする必要がある場合は、「紛らわしい文字を除外」を有効にしてください。多くのフォントで区別しにくい 0、O、1、l、I、| が除外されます。複数のアカウントを設定する際は一度に複数のパスワードを生成し、使い回さずにすべてパスワードマネージャーに保存しましょう。

覚えやすさよりランダム性が勝る理由

人間が選ぶパスワードは、辞書の単語、名前、日付、キーボードのパターン、a→@ のような単純な置き換えといった、小さく予測可能な範囲に集中します。クラッキングツールはまずそれらを試すため、人が決めたパスワードの大半はすぐに突破されます。一様にランダムな文字列にはそうした構造がなく、攻撃者に残された手段はすべての組み合わせを試すことだけです。ランダムなパスワードをパスワードマネージャーと二要素認証と組み合わせれば、実際に起きている攻撃、すなわちクレデンシャルスタッフィング、データベース漏洩、使い回したパスワードを狙うフィッシングからアカウントを守れます。

背景:パスワードからパスワードマネージャーへ

コンピューターのパスワードは 1961 年の MIT の CTSS にさかのぼり、その後数十年にわたって「覚えやすいものにする」ことが推奨されてきました。攻撃者が漏洩したハッシュデータベースに対して毎秒数十億回の推測を試せるようになると状況は一変し、NIST の 2017 年のガイドライン(SP 800-63B)は必須の複雑さルールと定期的な変更を廃止し、長さ、一意性、既知の漏洩リストとの照合を重視するようになりました。現実的な帰結として、人間は数十個の異なる 16 文字の文字列を記憶できないため、この種の生成ツールはパスワードマネージャーと組み合わせて使うことが前提です。マネージャーがパスワードを保存し、自動入力し、デバイス間で同期します。

利用される場面

アカウント登録以外にも、この生成ツールのランダム文字列は、API キーや Webhook のシークレット、Wi-Fi の QR コードに埋め込む Wi-Fi パスフレーズ、.env ファイル内のデータベースや SMTP の認証情報、新入社員のオンボーディング用の仮パスワード、アーカイブやディスクイメージの暗号化パスフレーズ、スクリプト内の使い捨てトークン、そして HMAC 署名の秘密鍵として使えます。データベース URL や Basic 認証ヘッダーに使う場合は、@、:、/ などの記号をパーセントエンコードする必要があることに注意するか、記号なしで生成して代わりに長さを増やしてください。シークレットを設定ファイルやヘッダーに入れる必要がある場合は、Base64 エンコードすれば 1 行に収まります。

よくある質問

Web サイトでパスワードを生成しても安全ですか?

このページでは安全です。生成にはブラウザの暗号学的乱数生成器を使用し、データはどこにも送信されません。インターネットを切断しても動作し続けることで確認できます。

パスワードはどのくらいの長さにすべきですか?

一般的なアカウントには 12 文字以上、メール、銀行、他のアカウントを保護するものには 16 文字以上を使ってください。サイトが記号を制限している場合は、長さを増やして補いましょう。

エントロピーの数値は何を意味しますか?

ビット単位のエントロピーは、攻撃者が平均して何回推測する必要があるかを表します。1 ビット増えるごとに必要な作業量は 2 倍になります。80 ビットを超えれば、現在のハードウェアによるオフライン総当たり攻撃では到達できません。

設定は記憶されますか?

オプション(長さ、文字グループ)はブラウザのローカルストレージに保存され、次回開いたときに復元されます。生成されたパスワードが保存されることはありません。

パスフレーズや PIN にも使えますか?

数字の PIN には「数字」のみを有効にして長さを設定してください。このツールは文字列を生成します。単語ベースのパスフレーズには専用の diceware リストを使ってください。