トラストセンター
セキュリティと生成方式
乱数、拒否サンプリング、文字構成、データの流れ、脅威モデルを技術的に説明します。
乱数の取得元
生成処理は crypto.getRandomValues() から暗号学的に強い乱数を取得し、暗号用途が保証されていない Math.random() は使用しません。Web Crypto 仕様では、一般にOSの高品質なエントロピーでシードされたCSPRNGを想定しています。実際の暗号プロバイダーはブラウザとOSが選択するため、呼び出しのたびにCPUの物理乱数源を直接読み取るとは説明しません。
文字位置の選択には拒否サンプリングを使います。文字集合の大きさで割り切れない上端の値を破棄してから剰余を求め、単純な剰余演算で生じる偏りを避けます。
文字種とシャッフル
有効な文字種から最低1文字ずつ選び、残りを結合した文字集合から生成します。最後に暗号学的乱数を使ったFisher–Yates方式で並び替えます。似た文字や紛らわしい記号の除外は、抽選前に適用されます。
データの流れ
生成結果は現在のページメモリと表示要素にのみ存在します。URL、Cookie、localStorage、sessionStorage、サーバーログ、ビルド成果物には保存しません。保存するアプリ設定は言語コードだけです。
対象と限界
この設計は、当サイトが生成パスワードを収集しないためのものです。利用端末、ブラウザ拡張、OS、クリップボード、利用先サービスの安全性までは保証できません。
検証
ブラウザ、公開API、pwdgen-cli@1.0.0 は同じWeb Cryptoと拒否サンプリングの中核を共有します。単体テストでは文字種、除外文字、不正設定、乱数APIを確認し、ブラウザテストでは再生成やコピーでパスワードを含む通信が発生しないことを確認します。公開ソースとCIは再現可能な技術証拠であり、第三者監査を受けたという意味ではありません。
より詳しいプロトコルレベルの説明は、クライアントサイド・パスワード生成ホワイトペーパーを参照してください。