CAPTCHAの効果を考える――正しい理解と実装を心掛けよ会社に潜む情報セキュリティの落とし穴(1/3 ページ)

インターネットサービスのユーザー認証でおなじみの変形文字「CAPTCHA」。近年、CAPTCHA技術が突破される事件が相次いだが、すでに無意味な対策となってしまったのだろうか……。

» 2009年06月22日 07時00分 公開
[萩原栄幸,ITmedia]

数々のセキュリティ事件の調査・分析を手掛け、企業や団体でセキュリティ対策に取り組んできた専門家の萩原栄幸氏が、企業や組織に潜む情報セキュリティの危険や対策を解説します。


 CAPTCHAとは、「Completely Automated Public Turing test to tell Computers and Humans Apart」の頭文字を取ったもので、画像などを利用してWebサイトにアクセスしているユーザーが本当に人間なのか、それともコンピュータが自動的に応答しているものなのかを容易に識別しようというものです。

 なぜこのような識別が必要かと言いますと、例えばフリーメールのアカウントを大量に不正取得してスパムメールを大量に送信したり、オンライン投票で意図的に支持者の得票を伸ばしたりできてしまうほか、掲示板荒らしにも利用されたりします。CAPTCHAを使ってユーザーを識別すれば、こうした行為からサービスを防御できるのです。

 ヤフーの「Yahoo! JAPAN ID」のようなオンラインサービスの申し込みでは、人間ならば画面に表示される画像を入力するのは簡単です。これを機械的に入力しようとすると、画像パターンや人間にしか簡単に識別できない画像を組み込ませている場合が多く、すべてのケースを識別するのは容易ではありません。

Yahoo! JAPAN IDの申し込み画面

 CAPTCHAの種類には、文字を重ねたり、ゆがめたりする「Gimpy」、写真で判別する「Pix」、形で判別する「Bongo」、音で判別する「Sounds」の4種類に分けるのが一般的とされています。この中でも最も普及されているのは「Gimpy」でしょう。

CAPTCHAの理解を誤ると……

 情報セキュリティの世界では有名な研究者で産業技術総合研究所の高木浩光氏は、自身のブログ「高木浩光@自宅の日記」において、三井住友VISAカードのサイトで一見するとCAPTCHAらしいものの、機能を正しく理解した上で実装したのかが不明な認証システムを見つけたと指摘しました。このエピソードを少しだけ解説しましょう。

 CAPTCHAでは画像の変形させることで、人間が識別できるもののコンピュータでは識別しにくいという特性を使います。このケースでは、4けたの文字列を表示(正確には4けた数字)するのに、4つの画像データを使っていたのでした。何回か画像を繰り返して表示させると気が付くのですが、数字が同じなら画像も同じということだったのです。

 高木氏の指摘ではありませんが、これをCAPTCHAと言ってもほとんど意味がありません。つまり、1文字(1数字)に1枚の画像であるならテキストと同じ種類ですので、「こういう画像なら入力欄に“1”」「これなら入力欄に“2”」と推測して入力できてしまいます。解読するための仕組みも簡単に実装できてしまうでしょう。検証はどのようにされたのでしょうか……。

       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ