こんにちは、鈴木俊吾(すずしん)です。
以前、セキュリティのことを考えて、できるだけ複雑なパスワードを作ろうとしたことがあります。
大文字・小文字・数字・記号をランダムに混ぜて、「これなら安全だろう」というものを作ったのですが…。
数日後には、自分でも思い出せなくなっていました。
複雑にすればするほど安全にはなるものの、覚えられなければ結局パスワードの再発行を繰り返す羽目になります。
今回は、そんな経験から今使っている、覚えやすいけど複雑なパスワードの作り方を紹介してみようと思います。
「複雑さ」と「覚えやすさ」は両立できる
ランダムな文字列を丸暗記しようとするから、覚えられなくなるんですよね。
そうではなく、自分の中に一つだけ「ルール」を持っておいて、そのルールに沿って毎回組み立てるという考え方に変えると、複雑さと覚えやすさを両立できます。
ルールさえ覚えていれば、パスワードそのものを一つずつ覚える必要が無くなるからです。
私が使っているルールの考え方
具体的な変換ルールをそのまま公開すると、逆にセキュリティ上のリスクになってしまうので、ここでは考え方が伝わる範囲の例で説明します。
やっていることはシンプルで、「覚えやすい一つの文章」を、自分なりのルールで少しずつ変換していくというものです。
手順を追って説明してみます(以下はあくまで説明用の例で、実際に使っているルールとは異なります)。
- 覚えやすい文章を一つ決める: 例えば「My favorite 四字熟語 is 試行錯誤」という一文にします
- 英単語を頭文字にする(最初の1文字だけ大文字):
My favorite→Mf、is→iとして並べると、Mf四字熟語i試行錯誤になります - 日本語の単語を、自分なりの変換ルールで置き換える(1つ目): 「四字熟語」を自分ルールで
41095に変換し、Mf41095i試行錯誤にします - 日本語の単語を、自分なりの変換ルールで置き換える(2つ目): 「試行錯誤」も同じように
4K0u395に変換し、Mf41095i4K0u395にします - 前後に記号を足す:
!Mf41095i4K0u395@のように、決まった記号を頭とお尻に付け加えます - サービス名の略記を用意する: 使うサービスの略称(Amazonなら
amznなど)を考えます - サービス名の略記は、そのまま使わずキーボードで1つ右にずらす(推奨): サービス名の略記は、パスワードの中で一番「元のサービスが推測されやすい」部分です。そのまま末尾に付けるのではなく、キーボード上で1つ右のキーに置き換えます。
amznならa→s、m→,、z→x、n→mでs,xmにする形です。これを末尾に付け加えて、!Mf41095i4K0u395@s,xmが完成です
文章そのものが覚えやすいものであれば、変換前の状態をいつでも思い出せるので、たとえ長い文字列でも組み立て直すのはそれほど大変ではありません。
見た目からサービス名を連想されにくくなる一方、自分の手元では「1つ右のキーを押すだけ」なので、覚え直す必要がほとんど無いのも良いところです。,の代わりにShiftを押した<を使ってs<xmとすれば、記号をもう一つ増やすこともできます。
一見ランダムに見える文字列ですが、実際に覚えているのは「①元になる文章」「②英単語の頭文字化ルール」「③日本語の変換ルール」「④記号の付け方」「⑤サービス名の略し方」「⑥キーボードでずらすルール」という、いくつかの"ルール"だけです。
パスワードそのものを一つずつ覚える必要が無く、ルールさえ体に染み込ませてしまえば、どのサービスでもその場で組み立てられます。
長さもできるだけ確保しておきたい
複雑さと合わせて意識しておきたいのが、パスワードの長さです。
文字の種類を増やすよりも、単純に長くする方が、パスワードとしての強度は上がりやすいと言われています。
今回の方法は、元になる文章を長めにしたり、日本語の単語を増やしたりするだけで、自然とパスワード全体の長さも伸ばせます。
覚えやすさを保ったまま長さを稼げるのも、この方法の相性が良いところだと思っています。
他にも、こんな作り方が考えられます
「置き換えルール」の部分は、自分の好きなように決めてしまって構いません。
イメージしやすいように、別の例も2つ挙げてみます(こちらも説明用の例で、サービス名の略記は先ほどと同じくキーボードで1つ右にずらしています)。
- ベース「夢中(むちゅう)」→ローマ字「muchuu」→頭文字を大文字化しつつ好きな数字を挟む「M2ch9」→前後に記号「#M2ch9!」→サービス略記(楽天=rktn)を1つ右にずらして追加「#M2ch9!tlym」
- ベース「一期一会(いちごいちえ)」→ローマ字の各パーツの頭文字を並べる「igie」→大文字化と固定の数字を追加「IgIe73」→区切り記号を追加「IgIe73_」→サービス略記(Twitter=twtr)を1つ右にずらして追加「IgIe73_yeyt」
このように、「どの部分を数字や記号に置き換えるか」「記号をどこに入れるか」といったルールの決め方は自由です。
大事なのは、一度決めたルールを、自分の中でずっと使い回すことです。
このルールの良いところ
- パスワードを一つずつ覚える必要が無い: 覚えるのは変換のルールだけ。あとはそのルールに従って、毎回その場で組み立てるだけです
- サービスごとに違うパスワードになる: 使い回しを避けられるので、1つのサービスから情報が漏れても、他のサービスへの被害を防ぎやすくなります
- 複雑さも確保できる: ランダムな文字列に比べれば規則性はありますが、第三者から見れば十分に複雑な文字列に見えます
正直に書いておきたい注意点
この方法にも限界はあります。
もし、このルール(フレーズ+サービス名の組み合わせ、という規則性そのもの)が誰かに知られてしまった場合、ベースのフレーズさえ推測されれば、他のサービスのパスワードも芋づる式に推測されるリスクがあります。
なので、変換ルールの中身は誰にも話さないことが大前提です。
また、特に重要なアカウント(メインのメールアドレスや金融関連など)については、この方法に頼りきらず、パスワード管理ツールを使ったランダムな文字列と使い分けるようにしています。
まとめ:ルールを一つ持っておくだけで、だいぶ楽になる
複雑なパスワードを一つひとつ暗記しようとするのではなく、自分だけのルールを一つ作っておく。
これだけで、パスワード管理の負担はかなり減らせます。
同じように「複雑にしたら覚えられなくなった」という経験がある方は、一度、自分なりの変換ルールを考えてみるのをおすすめします。
ただし、そのルールは誰にも教えないようにしてくださいね。



コメント