パスワードの考え方
このところ、webのサービスからパスワードが漏えいしたというニュースが後を絶ちません。
一度漏洩してしまったものは、取り返す方法はないとして変更するしかありません。
これからどういった方法でパスワードを守っていけばいいのでしょうか。
かつてのパスワード脆弱性
かつて、脆弱なパスワードといえば、パスワード自体がpasswordやユーザー名とパスワードがと同じ、などと破られることを前提としたようなパスワードが用いられ、それを脆弱なパスワードとして例に挙げられていました。
現在、仕事で利用するメールや、クレジットカード情報など重要なプライバシーを含む情報を管理するさいに、このような弱いパスワードを利用することは少なくなってきました。
それでも利用している人がいます。
現在、ユーザー総当たりで攻撃される場合は、まずこの辺りを狙われるでしょうから、いまでも利用しているパスワードにこのようなものが残っているのであれば、即座に変更しておくべきでしょう。
現在のパスワードの脆弱性
今問題になっているパスワードの脆弱性は、複数サービスでのパスワード使いまわしてです。
ひとつセキュリティーの脆弱性のあるサービスからパスワードが漏えいした場合、同一のアカウント名と、漏えいしたパスワードが攻撃者のコンピュータにデータとして登録され、他のサービスで同じユーザ名パスワードの組み合わせがないかを調べ、不正なログインを行う、という事態が多発しています。
ですので、一つのサービスの脆弱性でパスワードが流失した場合、そのサービスが安全性が低いとして使うのをやめたとしても、他に利用しているサービスに脆弱性がなくとも、アカウント名と同一のパスワードで突破されてしまうという可能性は高くなっています。
そのため、使用しているサービスでなんらか漏えいの事故、事件があったことが公になった場合は、そのパスワードは他の場所でも二度と利用しない、という考え方も安全性を保つためには必要になってきています。
パスワードに対する辞書攻撃
かつて8文字のパスワードでも総当たりのパスワード解除は、コンピュータの性能上、時間がかかるために十分であるとされ、現在でも最大8文字というパスワード文字数制限を持つサービスも多いです。
パスワード解除でメジャーな方法としては、辞書攻撃と呼ばれるもので、人間が覚えやすく、パスワードに使われそうな単語を並べ、単語と単語、単語と数字などという組み合わせで何度も解除を試みるものです。
覚えやすいパスワードというものは、この方法に対して非常に脆弱です。日本語であれば大丈夫、ということはなく、パスワード攻撃用辞書には、多くの日本人名や、日本語の単語をローマ字化したものが既に作られて、長く使われています。
今後、いままで漏えいしたパスワードが、ランダムな文字列であったとしても、これら辞書に追加されるという可能性も考えられるでしょう。
ですので、一度漏洩した可能性のあるパスワードは使わないことを勧められます。
パスワードの長さ、複雑さ
パスワードは長ければ、長いほどよく、大文字小文字数字記号のすべてを含んでおいた方がより安全です。
現在英文字のみ8文字程の長さであれば、辞書を使わない単純な総当たりであっても、全て試行するのにそれほど長い時間はかからなくなっています。
もちろんwebサービスであれば、複数回の試行をするとロックがかかるものがほとんどですが、たとえば暗号化ZIPファイルや、パスワード付オフィスファイル、Wi-Fiアクセスポイントのセキュリティーキーなどはこの単純な総当たりの対象になりやすいです。
比較する参考として、8文字で小文字英文字のみ(区別なし)であれば、4日、数字が付けば65日、大文字小文字区別有で混在している場合は3年、英大文字小文字数字記号を含む場合は463年必要となります。
これは単体のコンピュータで50万回を一秒間に試行することができる場合で、一般的なパーソナルコンピュータでこれだけの計算をするのは、特に難しくはありません。
複数台でより高速なコンピュータを利用すれば、それだけ解除までの時間を縮めることができますが、上の例でいえば、9文字で英大文字小文字数字記号を含む場合は44530年となり、組み合わせ数が増えれば増えるだけ、単純な方法での突破は難しい、あるいは不可能なレベルにまで強化することができます。
ですので、文字数に制限がなければ、11文字、英字大小数字記号を含むパスワードを設定すれば、パスワードそのものが何らかの形で漏えいしない限り、数字の上ではほぼ不可能といえます。
まとめ
またFacebookやGoogleなどを装い、誤って他のサイトにパスワードの入力を促すフィッシングサイトも、今でも多く存在します。
パスワードだけでは全てを守りきることはできないかもしれませんが、パスワードがどういった情報を保護しているのかを見極め、パスワードの強度を決めていくことも重要でしょう。
全てのパスワードをユニークな11文字の文字列にして、それを記憶するのはかなり難しいと言わざるを得ません。
くれぐれも重要なものに安易なパスワードを設定することは避けるべきです。
またパスワードの二段階認証を大手のサービスでは勧めているところもありますので、セキュリティーについて、各自工夫して守っていくことが重要です。