安全なパスワードの作り方
「英大文字・小文字・数字・記号を混ぜて8文字以上」——この指示に従っても、実はあまり安全になりません。 何が強さを決めているのかを先に理解すると、覚えられて、しかも強いパスワードが作れます。
強さを決めているのは「長さ」です
パスワードの強さは「ありうる組み合わせが何通りか」で決まります。 そして組み合わせの数は、文字の種類より長さのほうが圧倒的に効きます。
使える文字を90種類とすると、1文字増やすたびに組み合わせは90倍になります。 一方、文字の種類を26種類から90種類に増やしても、増えるのは1文字あたり3.5倍程度。 1文字足すほうが、記号を許可するよりずっと効くのです。
| パスワード | 強さ | 総当たりの目安 |
|---|---|---|
Tk9$mR2p(記号入り8文字) | 約52ビット | 数時間〜数日 |
tanpopokujiratsukue(英小文字のみ19文字) | 約89ビット | 事実上不可能 |
記号も数字も大文字も入っていない下のほうが、桁違いに強い。 これが「長さが効く」ということです。
本当の脅威は総当たりではありません
ここまで組み合わせの数の話をしましたが、 現実に起きている被害の大半は、総当たり攻撃ではありません。
最も多いのはパスワードリスト攻撃です。 どこかの企業からIDとパスワードの組み合わせが漏れると、攻撃者はその一覧を使って、 他のサービスに片っ端からログインを試します。 使い回していれば、どれだけ複雑なパスワードでも一発で破られます。
Xk#9mQ2!vB を全サービスで使っている人より、
tanpopo-kujira-tsukue をサービスごとに変えている人のほうが安全です。
定期的な変更は、もう推奨されていません
「3か月ごとにパスワードを変更してください」——長く常識とされてきましたが、 現在は推奨されていません。
理由は単純で、人間が対応しきれないからです。
頻繁に変更を求められると、人は Pass01 → Pass02 → Pass03
のような、規則性のある弱い変形に走ります。
これでは1つ漏れた時点で次が推測できてしまい、かえって危険になります。
米国のNIST(国立標準技術研究所)はガイドラインを改め、 漏えいの兆候がない限り定期変更を求めない方針に転換しました。 日本の総務省も同様の考え方を示しています。
変えるべきなのは「漏れたとき」だけです。 利用中のサービスから漏えいの連絡が来たら、そのときに変更してください。
現実的なやり方:覚えるものと、覚えないものを分ける
パスワードの管理が破綻するのは、全部を自力で覚えようとするからです。 実際に暗記が必要なものは、ほとんどの人で2〜3個しかありません。
| 覚えない (大多数) |
通販、SNS、各種会員サービス。管理ソフトに保存すればよいので、 読めなくても打てなくてもかまいません。完全ランダムで20文字前後にします |
|---|---|
| 覚える (2〜3個) |
パソコンのログイン、パスワード管理ソフトのマスターパスワード、スマホのロック解除。 ここだけ単語をつなぐ方式で作ります |
この切り分けをすると、大多数のパスワードは覚えやすさを考えなくてよくなるので、 無制限に強くできます。
覚える用:単語をつなぐ
暗記が必要なものは、関係のない単語をいくつも並べる方式にします。
たとえば Kusa-Jitensha-Tani-Tanpopo-Niji-Haru-Kame-Mizu のように。
覚え方にはコツがあります。文字列として暗記しないでください。 代わりに、単語をつないでばかばかしい情景を1つ思い浮かべます。
「草むらの自転車が谷に落ちて、たんぽぽの上に虹が出た春、亀が水に飛び込んだ」—— こんな調子です。変な話ほどよく残ります。 順番も一緒に覚えられるので、記号まじりの文字列より圧倒的に楽です。
3日ほど「コピーに頼らず、思い出して入力する」を繰り返せば定着します。
作るときの注意点(ツールの選び方)
パスワード生成サイトを使うときは、そのパスワードがどこで作られているかを気にしてください。 サーバー側で生成している場合、あなたのパスワードが一度は他社を通ることになります。
当サイトのパスワード作成ツールは、 ブラウザの中だけで生成し、通信も保存も一切していません。 ブラウザの開発者ツール(F12)の「ネットワーク」を開いたまま生成すれば、確認できます。
また、内部ではcrypto.getRandomValues()という
暗号用途向けの乱数を使っています。
よく使われるMath.random()は予測可能な擬似乱数で、パスワードには使えません。
実装は難読化せず公開しているので、中身を確認できます。
やってはいけないこと
- 使い回し——最大の危険。1社の漏えいが全サービスに波及します
- 誕生日・名前・電話番号・ペットの名前——SNSから割り出せます
- 単語1つ+数字——
sakura2024は辞書攻撃で真っ先に試されます - キーボードの並び——
qwertyや1qaz2wsxは既知のパターンです - メールやチャットで送る——履歴に残り続けます
- パソコン内に平文のファイルで保存——ウイルスに感染すると一括で持ち出されます
保存する場所
強いパスワードを作っても、置き場所がなければ結局メモ帳に平文で保存することになります。 現実的な選択肢は3つです。
| パスワード管理ソフト | 最も安全。マスターパスワード1つだけ覚えれば済みます |
|---|---|
| ブラウザの保存機能 | 専用ソフトには劣りますが、何もしないよりはるかにましです |
| 紙に書いて自宅で保管 | 意外に悪くありません。ネット経由では盗めないからです |
よくある質問
2段階認証を設定していれば、パスワードは適当でもよいですか?
いいえ。2段階認証は非常に有効ですが、万能ではありません。認証コードを盗む手口も存在します。パスワードと2段階認証は、どちらも設定してください。
自分のパスワードが漏れているか調べられますか?
漏えいしたアカウント情報を検索できるサービスがあります。ただしパスワードそのものを入力させるサイトには絶対に入力しないでください。調べるならメールアドレスで検索する形式のものを使ってください。
スマホのロックは4桁の数字でよいですか?
指紋や顔認証と併用するなら現実的です。ただし数字4桁は1万通りしかないため、それだけに頼るのは避けてください。可能なら6桁以上、または英数字のパスコードにしてください。
まとめ
- 強さを決めるのは長さ。記号より1文字足すほうが効く
- 最大の危険は使い回し。複雑さより優先すべき
- 定期変更は不要。漏れたときだけ変える
- 覚えるのは2〜3個だけ。残りは管理ソフトに任せる
- 覚える分は単語をつないで、情景で覚える