パスワード強度とパスフレーズという選択
自分はいままでパスフレーズは、覚えるのも簡単だし、文字列も多いので登録するパスワードとして、”パスフレーズ”を利用してきました。でもちょっとパスワードを解読する立場から考えた時、パスフレーズも実は意外と脆いのかもと思い調べたのがきっかけです。
参考情報
エントロピーとは、一般的にランダム性の度合いを表します。
上記の考えによると、パスフレーズも使い方によってはエントロピーは下がると考えられる。 例えば、自分が少し前からはまってる「目標をパスワードにする」方法。
ref.) パスワードを自分の目標にしたら人生が変わった話
これは実際、パスフレーズになるわけだけど、目標として使うような動詞や名詞は気をつけないとだいたい決まってきてしまうように思える。
go, tell, email, believe, make, create, clean, eat, call, text
などなど。
こういった複数の傾向や規則性を考えると、本人の嗜好などから目標となるパスフレーズを推測するのはそこまで難しい確率ではないかもしれない。 そこでこれをもう少しランダム性を上げるために日本語をローマ字で入力すると
taberu, tsukuru, kangaeru, onegaisuru,....
など日本語を知らない人からすると単なる文字の羅列に近くなる。
それでも、上の例を見ただけでも”u”の出現率がとても高くなるなど、文字の出現傾向を簡単に数値化できてしまいそうな懸念はあるが、パスワード/パスフレーズ解読に対するコストを考えると気にしなくていいのではないだろうか。(※きちんと計算していません)
せっかく日本語を使えるのだし、このくらいは海外発のサイバー攻撃に対する緩和策として利用してもいいかもしれない。
上記引用サイトにも書いてあるけど、さらに 0 をアルファベットの O と置き換えたり、E => 3, 7 => T, S => 5, I => !, at => @ と置き換えるなどで自分が記憶できるレベル(またはツールに記録すること)で規則に沿って変換させれば、より良い効果を生むのだと思われる。
こういう変換はわりと知られていると思うので、変換するかどうかを1文字置きにするとか少し変化を持たせることでさらに強力なパスフレーズにできる。
下記サイトを読んでて意外だったのが「アカウントロックはすべきではない」という部分。理由は、「アカウントロックを狙ったサービス拒否攻撃として利用できてしまうため」とある。 ”妥当なパスワードを推測出来ない”という前提において有効というのは見落としていた視点だった。
https://technet.microsoft.com/ja-jp/library/dd362848.aspx
当然ながら、同じパスワードの使い回しはダメです。
最後に引用を。 「記号はキーボード上の数字から選択されたものでない方がよいでしょう。」 この部分はどういう意味だろう。最初は「キーボード上に表示されていない(=キーボードから直接入力できない)記号」と意味を解釈してたけど、それだとログイン時とか入力できなくなってしまうので単に「数字キー上にある記号は試行率が高いので避けましょう」という意味だと今は考えているけどどうなんだろう。。。
最後に、パスフレーズを選択した場合、パスフレーズの使用方法について、いくつかのコツがあります。 まず、パスフレーズは 4 語 (少なくとも、6 語が望ましいです) 以上の長さで、完全にランダムなパスワードと同じくらいの強度である必要があります。 第 2 に、語は短くてはいけません。短い語は、標準のパスワード クラッカーで非常に効率よくクラックされる可能性があります。 第 3 に、文字の代替およびスペル間違いは、著しくパスフレーズを強化します。いくつかのスペースを含めれば、そのほかの代替文字を除外しても同じレベルの強度を得ることもできます。 第 4 に、文章は分かりやすい必要はありません。実際、分かりづらい文章の場合、パスフレーズをクラックすることはさらに困難になります。最後に、大文字と小文字の組み合わせを使用し、数字と記号を含めることは必須です。できれば、記号はキーボード上の数字から選択されたものでない方がよいでしょう。
ref.) パスフレーズ vs. パスワード Part 3
P.S こんな記事もありました。
ref.) NSAでも破れないが、覚えやすいパスフレーズ