ブルートフォース攻撃
パスワードを機械的に片っ端から試していく攻撃をブルートフォース攻撃といいます。例えば、まず0001、ダメなら0002、それでもダメなら0003という具合です。
ブルートフォース攻撃に対する耐性はパスワードに用いる文字の種類の数と桁数によります。
例えば、数字のみ4桁ですと文字の種類は0~9までの10種類、4桁ということは10の4乗、つまり10000通りのパスワードを試せば必ずどれかが当たりです。仮に攻撃者のコンピュータの性能がパスワードを1秒間に100回試せるものだったとすると、100秒=およそ1分半あればパスワードが破られるということになります。
これに対し、数字だけでなく必ずアルファベットも混ぜてパスワードを決めるルールにしておけば、文字の種類は36になりますからパスワードの種類は36の4乗通り、つまり約168万通りのパスワードが存在することになり、これをブルートフォース攻撃で破るには168倍の時間がかかることになります。
もちろん桁数を増やすのもパスワードを強化することにつながります。例えば、数字とアルファベットのパスワードを4桁ではなく8桁で作るとすると、その種類はおよそ2兆2千億種類にもなります。
従って、パスワードに使う文字の種類は多ければ多いほど、桁数も多ければ多いほどパスワードは堅牢になる、ということがいえますね。
パスワードには数字とアルファベットを混ぜてください、とか大文字と小文字を両方入れてくださいなどといわれる理由がわかりましたね。
ちなみに、パスワードを固定してIDを総当たりで探していくことをリバースブルートフォース攻撃といいます。一定回数間違ったパスワードを入力するとIDをロックされることがありこれを回避する攻撃方法というわけです。
辞書攻撃
パスワードによく使われる言葉をあらかじめ用意しておいて順に試していく攻撃を辞書攻撃といいます。
1234やqwertyがよく知られていますし、有名人の名前なども危険です。
シングルサインオン
これまでの説明でパスワードにふさわしいのは文字の種類が多くて(数字、アルファベット大文字、小文字、さらには記号)、桁数が多くて、かつ意味をなさないものであるということがおわかりいただけたと思います。
例えば、K3@sPvq8なんかがいいわけです。しかし、これを覚えておくのはむずかしいですよね。しかもやっかいなことにパスワードを使って利用するシステムは3つも4つもあったりします。
利用するシステムごとに異なるパスワードを覚えておくのは大変なので、よくないと知りながらも覚えやすいパスワード、例えば名前+誕生日などを設定してしまいがちです。
そこで注目されるのがシングルサインオンです。
シングルサインオンとはIDとパスワードを一度入力すれば、アクセスを許可されているすべてのシステムを利用できるようにするという仕組みです。
システムを使う側からすれば、IDとパスワードを1組覚えておけばいいので楽ですよね。
管理する側からしても、ユーザーの識別・認証管理を一元化できるというメリットがあるので管理が楽になるというメリットがあります。
ワンタイムパスワード
ワンタイムパスワードとは一回限りのパスワードのことです。使い捨てのパスワードなので万が一漏れてしまってもそのパスワードを悪用するチャンスが(ほとんど)ないのが利点です。
ワンタイムパスワードの方式にはさまざまなものがあります。ユーザーにパスワード装置を配布しておくなど、多少手間がかかりますので、コストをかけてもパスワードの悪用を防ぎたいオンラインバンキングなどで採用されています。
時刻同期方式
ユーザーにパスワード発生装置(セキュリティトークンなどと呼ばれます)を渡しておき、発生装置が生成するパスワードを用いる方式です。パスワード発生装置と認証サーバーの時刻が同期されていて、時々刻々とパスワードを変化するパスワードを使用します。
チャレンジ・レスポンス方式
認証サーバーからチャレンジと呼ばれるデータを受け取り、ユーザー側でチャレンジを元にパスワード(レスポンスといいます)を生成して使用します。パスワードの生成方法は共有されているので、サーバー側でも同様にパスワードを生成しレスポンスと一致していれば認証成功となります。
マトリクス方式
ユーザーに暗号表を渡しておきます。ユーザーが認証を求めるときに、認証サーバー側から「右から3番目、上から2番目の暗号は何?」といった質問がきますので、ユーザーは該当する暗号をパスワードとして返答します。
アクセスの管理
情報システムで管理している情報を守るには適正なアクセス管理が不可欠です。
利便性とトレードオフの関係になりますが、システムを利用できる機器、システムの利用時間、同時に利用できる人数を限定すれば情報が改ざんされたり漏えいしたりするリスクを減らすことができます。
また、システムにアクセスした記録(アクセスログ)を取得してシステムを不正利用されていないか監視します。例えば、ごく短時間に何回もアクセスを試みて失敗しているようでしたら、ブルートフォース攻撃を疑います。ただ、個人データのアクセス記録はそれ自体が個人情報となりますので、その取扱いには注意が必要です。