現在公開中の映画「イミテーション・ゲーム/エニグマと天才数学者の秘密」をご存知でしょうか?

 コンピュータの誕生に貢献したとされる、アラン・チューリングの伝記を描いた映画です。時は第二次世界大戦、映画の中でチューリングは、ドイツが通信内容の秘匿に使った「エニグマ」と呼ばれる暗号機の解読に挑みます。当時、解読不能といわれたエニグマ暗号機に対して、映画の中では、今回解説する「総当たり攻撃」や「辞書攻撃」のような手法も使って解読に挑みます。

 さて今回のテーマは、Webアプリケーションのユーザーが本人であることを確認する「認証」です。Webアプリケーションの認証機構を狙った攻撃では、パスワードやユーザー名を推測する手法として、先ほど紹介した総当たり攻撃や辞書攻撃などが使われます。また、近年はリスト型アカウントハッキングと呼ばれる、複数の攻撃手法を組み合わせた新たな脅威も発生しています。

 今回は、前半でパスワードを狙った攻撃、後半で認証の不備を突いた「クロスサイト・リクエスト・フォージェリ(CSRF)」と呼ばれる攻撃について解説します。

 Webアプリケーションの要件定義・基本設計では、これらの攻撃手法や脅威を理解したうえで、ユーザーの利便性も考慮してどのような認証を実装するか検討しておく必要があります。

個人や端末、アプリケーションを認証する

 Webアプリケーションでは、ログイン機能において認証が必要です。ユーザーIDとパスワードなどの組み合わせで、アクセスしてきたユーザーが本当に本人かどうかを確認します。

 認証の対象は「個人」以外に、「端末」や「アプリケーション」もあります(図1)。

図1 認証する対象と最適な認証方式
図1 認証する対象と最適な認証方式
[画像のクリックで拡大表示]