ヤマト運輸や佐川急便のサービスから住所などの個人情報が抜かれたようです。何が起きたかというと「別のサービスで流出したIDとパスワードの組み合わせで試したらヤマトのサービスにもログインできた」ということ。サービスにログインできれば自分の個人情報は見放題です。
今回のエントリーでは私が思うパスワードの限界の理由と、それにどう対応したら良いのかを述べます。
IDとパスワードの限界
正直私もIDとパスワードの組み合わせによる管理には限界が来ていると思っています。その理由は次の通り。
サービスが多すぎて使い回ししないことが不可能
昔はIDとパスワードなんてSNSやメジャーなWEBサービスくらいにしか使いませんでした。mixiとかYahooとかGoogleとか。それが今ではサービスが増えたこともそうですが、携帯キャリアがWEBページを作ったりTOEIC試験を受検するにもアカウントを作ったり、本当に多くの会社がサービスを作っています。数えたことは無いですが、多分一人あたり30個以上はサービスのアカウントを持っているのではないでしょうか。
この状況では確かに使い回しもやむを得ないと思います。そもそも流出しなければ使い回しは結構安全策です。なぜなら忘れる心配が少ないのでどこかに書いておく必要がないですから。あまり流出事件も(表沙汰にならなかっただけなのか)報道されていませんでしたし。
サービスごとにパスワード命名規則などのルールが違うので管理が大変
たとえばAというサービスは8文字以上でないといけない、Bというサービスでは4文字でないといけないなど、かなりルールがバラバラです。あとは使って良い文字種類ですね。記号を使ったらダメなケースや大文字と小文字を混ぜないといけないケース。もうホントこれによってパスワード管理が一気に大変になります。
IDも覚えなくてはいけないなんて正直無理
パスワードだけならまだしも、IDがメールアドレスじゃなくてIDも必要なケース。TwitterみたいにIDに意味があるものならまだしも、サービスが勝手に発行する(ID=113034みたいな)パターンなんて最悪。覚えられるわけがない。日経のサービスはIDとメールアドレスとパスワードが必要ですが、マジで意味不明。日経の記事を読むために付けろと言われたから考えたIDなんて覚えているわけがない。
安全な使い回しパスワードの設定方法
上記のようにパスワードとIDを全てのサービスで違うものにして、覚え続けることは不可能な状況と言っても良いでしょう。個人的には全てのサービスをシングル・サインオン(1つのサービスにログインすれば、他のサービスにもログインできるようにする仕組み)にして、踏み台サービスとして国などが運営する超堅固な認証サービスを使うことで「一点集中ガード」ができないかなと思っています。(私はこれをWorld Wide Single Sign On (W2S2O)と呼んでいます)もちろんそこが突破されれば全てがパーなのでリスクが半端ないですが、今でも似たようなことが起きていることを考えるとねえ。
さて、とはいえ自分の身は自分で守るのが私のモットー。今日は今から使えるパスワードの設定+管理方法を伝授します。私がやっているやり方です。
特定文字列の決定
まず絶対に忘れない特定文字列を決めます。なるべくアルファベットと数字の組み合わせで、自分にしか分からない8文字の辞書ワードでないものを作ります。8文字以上というポリシーのサービスが多いためです。例えばGLAYファンな私ならktkt26thみたいなものが良いでしょうか。TERU、TAKURO、HISASHIのイニシャルを並べてJIROを26としてみました。そしてこの特定文字列は最低2種類用意してください。ビジネス用とプライベート用を分けるためです。
記号を決める
記号を混ぜると推測されづらくなります。ただし記号は使えないサービスも多いので「使えるサービスの場合に付与する」という程度に止めておきます。たとえば「!」に決めたら、それをどこに入れるかも決めます。今回はktkt!26thとしてみましょう。
付帯文字列の法則を決める
特定文字列+付帯文字列とすることで各サービスでパスワードを違うものにすることができます。例えば付帯文字列をラストにいれてktkt!26thbとかktkt!26thaとか言う風になります。ですがこれだと文字列が分かってしまえば対策されやすいので、一工夫します。
たとえば楽天のサービスならktkst!26th、アマゾンならktkzt!26th、リクルートならktkts!26th、フェイスブックならktkt!2e6thとします。法則分かります?
特定文字列に記号を加えたktkt!26thという文字列に一文字ずつアルファベットをつけています。次のような規則になっています。
- 各サービスの頭文字を、国内サービスは1つ進め、海外サービスは1つ戻す
(楽天はr⇒s、アマゾンはa⇒z) - サービス名の文字数の位置に上記文字を入れ込む。
(楽天:4文字め、リクルート:5文字目)
もちろんこれは1つの例にしか過ぎません。たとえば企業カラーが赤なら、青なら、それ以外ならというルールで文字をつけてもよいと思います。要は1つのサービスのパスワードが流出した時に、それによって他のサービスのパスワードが推測されないようにしておくのです。
アマゾンでktkzt!26thという文字列が流出しても、この文字列からフェイスブックのパスワードのktkt!2e6thは想像できないでしょ?でもルールさえ覚えていれば自分自身は絶対に忘れない。
もちろんですが、上記の例はあくまでフィクションで私のパスワード方式は上記の応用でまたちょっと違います。ktkt!26thでアタックしても無駄ですよー