fastapple's blog

時系列関係なく、情報を追記・分割・統合などします。ブログに記載の内容のうち、引用ではなく、私自身が記載している文章・コードなどについては、自由にご利用ください。

パスワードの作り方。


最近、パスワードが破られて、不正ログインされるという事件が様々なサービスで相次いでいる。原因として大きくあげられるのが、複数のサイトで、パスワードを使いまわしているユーザーが2人に1人くらいの割合でいるという事実。確かにパスワードを作成しないといけないサイトが多すぎて、パスワードの使い回しをしている人も多い。自分も以前は使い回しが多かったが、アカウントに入れなくなる経験をしてから、パスワードの作り方をちょっと真面目に考えた。そのルールで今運用しているが、結構いいと思っているので、セキュリティが高く、パスワードを忘れてしまうこともないようなパスワードの作り方というのをここに書いてみたいと思う。

・攻撃者の視点
まずは攻撃者の視点でパスワードを破ることができるパターンをいくつか考えてみる。逆にそのパターンに当てはまらないようなパスワードが強いパスワードということである。

1.総当たり攻撃 (ブルートフォースアタック)
  総当たりで試す方法で、単純なパスワードはこれだけで破られてしまう。
2.パスワードファイルを直接見られる
  パスワードを直接記載したファイルがある場合、それを見られることで破られてしまう。
3.他のサービスで使っているパスワードと似たようなものを試す
  パスワードを使いまわしている場合、ひとつのサービスで破られると芋づる式に、この方法で破られてしまう。

・本題
では早速、考えてみる。1を防ぐには、パスワードのランダム性を上げるしかない。そうなってくると、自分で考えていてはだめで、ランダムな文字列などを生成してくれるサービスを使うのがいい。そういうアプリなどもある。(たとえばAndroidだと、とりあえずパスワードのようなアプリがある。)例えばこの方法で5文字のパスワードを自動生成する。たとえば、abcdeとなったとしよう(例なので適当。実際はランダムな英数字を自動生成する。)これで、1を防ぐことができた。ただ、こんなものはなかなか覚えられないので、どこかに書き留める必要がある。さらに使い回しもできないので、毎回生成してサービスごとにどこかへ書き留めておく。そうすれば、1の総当たり攻撃と、3の使い回しを突く攻撃を防ぐことができる。しかし、これをパスワードとして、まだ直接はつかわない。これを自動生成断片と仮によぼう。

こういうようにして自動生成断片を書いたものをメモとして保管しておくか、dropboxなどにアップロードしておいてもいい。あくまでも注意してほしいのは、abcdeをパスワードとして直接使うというわけではない。パスワードとして直接使うものをメモに書いておいたり、あるいはどこかクラウド上へ保存しておくと、それを悪意の第三者に見られた場合に、被害が甚大だからである(攻撃者の2番に相当する)。ではどうするのがいいかというと、そのabcdeなどの自動生成されたパスワードにさらに自分ルールで生成したパスワードを組み合わせていく。例えば、単純な例だとgoogleのパスワードならそれを逆からelgoogとして、それを各文字列の間にはさんでいき、aeblcgdoeog(最後は挟めないので連続)としたりする。たとえばamazonなら、まず自動生成したamazonの自動生成断片が、4fjIdだとする。それは書き留めておくが、肝心の自分ルールは(少なくとも同じ場所には)書き留めない。そうして実際に使用するときには、nozamaと4fjIdを組み合わせて、4nfojzIadmaなどとする。
もちろん、この自分ルールはもう少し、複雑なものにしておくのがいい。(自分が覚えておける範囲で)

こうすることで、かなり固いパスワードを作ることができる。もう一度攻撃者のシチュエーションでこの生成規則でできたパスワードをみてみよう。

1.総当たり攻撃は、ほぼ無力である。パスワードは何か月かごとに変えるのがよいが、この方法なら、自動生成断片を変更するのはあまり手間はかからない。ランダム性がかならずあるので、総当たり攻撃にも強い。

2.直接みられる場合、仮に自動生成断片のメモをだれかに見られたとしても、そこからパスワードをつくる自分ルールがわからなければ無力である。自動生成断片が知られた可能性があれば、また生成しなおしていけばいい。しかも別にそこまで急ぐ必要はない。自分ルールのほうも大きなスパンで変えていくのがいい。(切り替え時期があるので、もちろん古い自分ルールも覚えておくようにしないといけない)

3.そもそも使い回しは発生しない。自動生成断片はサービスごとに生成するし、覚えておく必要はないからである。

また、1と3の攻撃者というのは、おそらく自分にとって赤の他人である可能性が高いのだが、その場合、自動生成断片のメモなどをみることができる可能性はぐんとさがる。また2の自動生成断片を見られるシチュエーションは、知り合いなどで発生するかもしれないが、自分ルールがわからないのですぐにはパスワードは分からず。対応に時間が十分とれる。

こんか感じで最近はパスワードを運用していて、なかなかいい感じなので、記載しておいた。