パスワード作成|覚えやすい語呂つき
🔒 生成結果はこの端末から出ません
安全なパスワードを作ります。暗記が必要なものには読み方つきの語呂パスワードも作れます。 入力内容も生成結果も、どこにも送信・保存されません。
結果
使い分け:覚えるものと、覚えないもの
パスワードの話がややこしいのは、全部を覚えようとするからです。 実際に暗記が必要なものは、ほとんどの人で2〜3個しかありません。
| 覚えないもの (大多数) |
通販、SNS、各種サービス。管理ソフトに保存すればよいので、 読めなくても打てなくてもかまいません。完全ランダムで20文字前後にしてください。 |
|---|---|
| 覚えるもの (2〜3個) |
パソコンのログイン、パスワード管理ソフトのマスターパスワード、 スマートフォンのロック解除。ここだけ語呂つきを使ってください。 マスターパスワードは10語に増やすことをおすすめします。 |
この2つを混ぜないことが、いちばん効きます。 「覚えられる範囲で複雑にする」という発想をやめると、大多数のパスワードは無制限に強くできます。
覚えやすいのに強い、という理屈
Tk9$mR2p のような8文字より、Sakura-Neko-Yama-Hoshi-Kaze-Mizu のほうが
強くて、しかも覚えやすい。直感に反しますが、数えれば分かります。
パスワードの強さは「何通りありうるか」で決まります。 このツールは256語の中から選ぶので、 1語あたり 256 通り=8ビット。 初期設定の8語なら 256 の8乗で、およそ1,800京通りになります。
一方、記号まじり8文字は約90種類の8乗で、約4,300兆通り。
つまり単語8個のほうが、4,000倍ほど広いのです。
しかもTk9$mR2pは覚えられませんが、単語8個なら情景として覚えられます。
短くて複雑なパスワードの問題は、覚えられないことです。 覚えられないから、結局「よく使う単語+123+!」のような、実際にはずっと狭い範囲から選んでしまう。 それなら本当にランダムな単語を並べたほうが安全です。
| 単語の数 | 強さ | 目安 |
|---|---|---|
| 6語 | 58ビット | ふつうのサービス向け |
| 8語(初期設定) | 74ビット | 重要なサービスに十分 |
| 10語 | 90ビット | パスワード管理ソフトのマスター向け |
ツールの各行に「何ビットか」「総当たりに何年かかるか」を表示しています。 単語数を増やすと数字がどう動くか、実際に動かして確かめてみてください。
語のリストが公開されていると弱くなる?
当サイトは使っている256語をすべて公開しています(password.jsにそのまま書いてあります)。 「リストが分かれば、その中だけを狙って総当たりできてしまうのでは」と思われるかもしれません。
そのとおりです。そして、それを前提に強度を計算しています。
画面に出している「74ビット」という数字は、攻撃者がリストも作り方も完全に知っている場合の 数字です。隠していることを前提にした数字ではありません。 強さを支えているのは、リストの秘密ではなく「どれを選んだか分からないこと」です。 256語から8語をランダムに選べば、リストを知っていても 256⁸ = 約1,800京通りを試すしかありません。
これは暗号の世界で古くから言われている考え方です。 仕組みを隠すことで守られている安全は、仕組みが漏れた瞬間に消えます。 逆に、公開しても壊れないものだけが本当に安全といえます。 パスワード生成で世界的に使われているDiceware方式も、単語リストは完全に公開されています。
自分の語を使う場合
自分に馴染みのある語のほうが覚えやすいので、語を自分で入力することもできます。 入力した語の中から、ツールがランダムに選んで並べます。
このとき語の数がそのまま強度になります。 10語しか入れなければ1語あたり3.3ビットにしかならず、8語つないでも27ビット程度。 これは数秒で破られる水準です。 32語以上を目安に入れてください。画面に登録語数と1語あたりのビット数を表示しています。
なお、語を自分で並べ替えないでください。 「意味の通る順番」にすると、そのぶん組み合わせが減ります。順番はツールに任せてください。
乱数の話:Math.random() は使ってはいけません
ここが、パスワード生成ツールで最も差が出るところです。
プログラミングでよく使われる Math.random() は、
予測可能な計算式で数字を並べているだけです。速度優先で作られており、
内部状態が推測されるとその後に出る値をすべて言い当てられます。
パスワード生成に使うと、いくら長くしても意味がありません。
このツールは crypto.getRandomValues() を使っています。
これはブラウザが暗号用途のために用意している乱数で、OSが集めた予測不能な情報を元にしています。
実装は /assets/password.js でそのまま読めます。 難読化していないので、本当に上のとおりに作っているか確認できます。
語呂を覚えるコツ
語呂パスワードには読み方(ひらがな)を並べて表示しています。 これをそのまま暗記するのではなく、単語をつないで、ばかばかしい情景を1つ思い浮かべてください。
たとえば「ねこ・やま・さくら・ほし・かぜ・みず」なら、 「ねこが山でさくらを見上げていたら、星が風に吹かれて水に落ちた」のように。 変な話ほどよく残ります。順番も一緒に覚えられるので、 文字列そのものを暗記するより圧倒的に楽です。
3日ほど、思い出してから入力する(コピーに頼らない)を繰り返せば定着します。
やってはいけないこと
- 使い回し — どこか1社が漏らすと、同じ組み合わせが他のサービスで順に試されます(パスワードリスト攻撃)。実際の被害の多くがこれです
- 誕生日・名前・電話番号 — SNSから割り出せます
- 定期的な変更 — 頻繁に変えさせると、人は「Pass01→Pass02」のような弱い変形に走ります。現在は推奨されていません(総務省・NISTとも、漏えいが疑われる場合を除き変更不要としています)
- 単語1つ+数字 —
sakura2024のような形は、辞書を使った攻撃で真っ先に試されます - メールやチャットで送る — 履歴に残り続けます
作ったあと、どこに置くか
強いパスワードを作っても、置き場所がなければ結局メモ帳に平文で保存することになります。 そこまで含めて考えてください。
現実的な選択肢は3つです。パスワード管理ソフトを使うのが最も安全で、 マスターパスワード1つだけを覚えれば済みます。ブラウザの内蔵機能でも、何もしないよりはるかにましです。 紙に書いて自宅の引き出しにしまうのも、意外に悪くありません—— ネット経由では盗めないからです。やってはいけないのは、パソコンの中に平文のファイルで置くことです。
よくある質問
本当に送信されていませんか?
されていません。ご自身で確認できます。ブラウザでF12キーを押して「ネットワーク」タブを開き、その状態で「作り直す」を押してください。通信が発生していないことが見えます。なお、このページには広告が表示されるため広告配信の通信は出ますが、パスワードはそこに一切含まれません(そもそもJavaScriptの外に出ていません)。
同じパスワードが他の人に出ることはありますか?
理論上は同じものが出る可能性がゼロではありませんが、20文字のランダムなら組み合わせは天文学的な数になり、現実には起こりません。仮に偶然一致しても、それがどのサービスの誰のものかは分からないため、攻撃には使えません。
記号が使えないサービスがあります
「使う文字」から記号のチェックを外してください。そのぶん強度が下がるので、長さを増やして補ってください。表示されるビット数を見ながら調整できます。
語呂パスワードは日本語で入力するのですか?
いいえ、入力するのはローマ字のほうです。ひらがなは覚えるための手がかりとして表示しているだけで、パスワードには含まれません。
何ビットあれば安心ですか?
目安として、重要なサービスは60ビット以上、パスワード管理ソフトのマスターパスワードは80ビット以上を推奨します。ランダム(20文字)の初期設定は123ビットで両方を満たします。語呂の初期設定(8語)は74ビットなので、マスターパスワードに使うなら10語(90ビット)に増やしてください。表示されるビット数で確認できます。
パスワードを保存する機能はありますか?
ありません。意図的に付けていません。保存機能を作ると、そのデータの安全性という新しい問題が発生します。このツールは作るところまでを担当し、保管は専用の管理ソフトにお任せするという切り分けにしています。