TOUCH THE SECURITY Powered by Security Service G

ナレッジ

2017.11.29

改めて振り返るcaptcha認証とその役割など

今回のテーマは『キャプチャ認証』です。CAPTCHAとも言われています。『キャプチャ認証』あるいは『CAPTCHA』(以下、CAPTCHA)という言葉は知らなくても、皆さんは既に見かけたことや実際に使用してみたことがあるかもしれません。

『CAPTCHA』とは簡単に説明すると人間が操作したのか、あるいはプログラムなどを使用して自動的・機械的に実行されたのかを区別するための機能です。主に『CAPTCHA』を見かける部分としては、ログイン認証部分にユーザIDやパスワードとともに設定されている場合、掲示板などの投稿機能部分に設定されている場合などがあります。

IPAにCAPTCHAについて書かれた記事があります。下記のページを読むとイメージがわかるかと思います。
IPA ISEC セキュア・プログラミング講座:Webアプリケーション編 第2章 アクセス制御
URL: http://www.ipa.go.jp/security/awareness/vendor/programmingv2/contents/103.html

1.歪んだ文字を入力するだけじゃない!様々な方式

『CAPTCHA』のパターンについては1つではなく、様々な種類があります。今まで私自身が実際に利用したことのある(出会った)CAPTCHAには下記のようなものがあります。

  • 歪んだ文字列の画像を入力させるもの
  • 歪んだ文字列が2単語以上を入力させるもの
  • ひらがなを入力させるもの
  • 「私はロボットではありません」(I’m not a robot)と書かれたチェックボックスをチェックするもの
  • パズルのピースを背景画像の空いた部分にマウスでドラッグ&ドロップするもの
  • 背景画像のある部分に、最適なパーツを選んでマウスでドラッグ&ドロップするもの
  • パネル(4×4)が表示され質問の回答にあたるパネルを複数選ぶもの
  • 画像が表示され、質問の回答にあたる絵の部分をマウスで囲むもの

上記今まで利用したことのあるCAPTCHAの中には、入力を失敗し何度もやりなおしたことのあるCAPTCHAもあります。

「歪んだ文字列の画像を入力させるもの」、「歪んだ文字列が2単語以上を入力させるもの」については、あまりに文字が歪んでいて読めないもの、似たような文字列があってどちらか判別できないもの(Oと0など)があって失敗したことがあります。そういうものには最近音声読み上げ機能がついてあるものもあります。音声読み上げ機能については視覚障害者にとっても有効な機能です。

また、「パネル(4×4)が表示され質問の回答にあたるパネルを複数選ぶもの」については、選ぶパネルが複数枚のため、1枚でも足りなくて失敗し、新たなパネルでやり直したことがあります。「画像が表示され、質問の回答にあたる絵の部分をマウスで囲むもの」についても、なかなかうまく絵を囲むことができなかったりしました。

ログイン認証情報は正しいのに、CAPTCHAの入力に失敗したがためにログインがなかなかできないとイライラしてしまいますよね。CAPTCHAの本来の目的である人間にはわかり、コンピュータ(プログラム)にはできないという前提が崩れてしまい、人間にも入力できなければCAPTCHAとして本末転倒です。

ログインの場合は、仕方なく再チャレンジすると思いますが、これがコメント投稿などで失敗した場合は投稿自体を諦めてしまう場合もあるかと思います。せっかく意見や感想を投稿しようという気持ちになったのに、CAPTCHAが原因で諦めてしまう結果になったら残念ですよね。

今まで私自身は利用したことはありませんが、下記のようなCAPTCHAもあるようです。

  • 文字列の上に文字列が重ねて合って、どちらを入力すればよいのかわからないもの
  • 暗号を解くかのように記号の置き換えをして入力させるもの
  • 難しい計算式の結果を回答入力させるもの
  • 背景と文字の色がほとんど同じでよくわからないもの
  • 文字が一般的なアルファベットや英数字などからかけ離れているもの
  • 五線譜の音符の音を入力させるもの
  • 図面を組み立てるとどうなるか入力させるもの
  • 複数選択問題でその人の好みによって回答が異なるようなもの

どれも難しそうですね。このうち「暗号を解くかのように記号の置き換えをして入力させるもの」については、名探偵になった気分で頑張れそうな気がします。また、私自身音楽好きで楽譜も読むため「五線譜の音符の音を入力させるもの」についてはある程度分かるかもしれませんが、オクターブまで考える必要があるのかもしれません。

2.CAPTCHAとセキュリティ脆弱性

ここまでで、CAPTCHAがどんなものなのかというのが感じて頂けたかと思います。次はCAPTCHAとセキュリティについてみていきます。JVN iPediaで「CAPTCHA」で検索してみると下記のようなものがみつかりました。

WordPress 用プラグイン Captcha における CAPTCHA 保護メカニズムを回避される脆弱性
http://jvndb.jvn.jp/ja/contents/2015/JVNDB-2015-000029.html

WordPress 用プラグイン Google Captcha (reCAPTCHA) by BestWebSoft における CAPTCHA 保護メカニズムを回避される脆弱性
http://jvndb.jvn.jp/ja/contents/2015/JVNDB-2015-000030.html

上記のようにCAPTCHAのメカニズムを回避される脆弱性が存在する場合があるようです。

3.CAPTCHAの解読・突破

次はメカニズムそのものを回避するのではなく、解読・突破についてはどうでしょうか。CAPTCHAのタイプごとに突破方法もいろいろとあるようです。

CAPTCHAのタイプ / 機械に突破される可能性の例

画像に文字列が表示されているようなCAPTCHAの場合 画像の文字列をテキスト化するOCR機能・サービスを利用してテキスト変換される
音声読み上げ機能ありのCAPTCHAの場合 音声を再生させてテキスト化する機能・サービスを利用してテキスト変換される
パズルのピースをはめるCAPTCHAの場合 パズルのピースのエッジ検出を行って、ピースの位置を割り出してピースをはめられる
背景色でわかりづらくしているCAPTCHAの場合 画像のコントラストや明度などを変更することで文字列等をあぶりだして解読される

画像をテキスト化するサービスや音声からテキスト化するサービスなどは、本来の想定されている目的ではないサービスの利用のされ方をしてしまっている場合もあるようです。そのほか、CAPTCHAを突破するマルウェアも既に存在しているようです。

CAPTCHAの突破についてみてきましたが、CAPTCHAを提供する側もただ突破を許しているわけではなく、さらに強固なCAPTCHAを目指して日々改善を行っているようです。 突破するものとCAPTCHAを作成するものとの攻防はいたちごっこのように続いているようです。

また、解読という観点では、人力でCAPTCHAを解読するというビジネスが存在するようです。途上国を中心とした労働者がひたすらCAPTCHAの解読作業を行うというもの。ある解読サービスのサイトによると、1か月の給料が100ドルだそうです。キャプチャ解析の平均月給が100ドルということは、1ドル=109円換算で1万900円ほどです。途上国の平均月給よりも劣る国々も少なくないようで、ビジネス自体に色々と問題を考えさせられます。

4.まとめ

今回はCAPTCHAということで、見てきましたがいかがだったでしょうか?普段は何気なく、Webサイトで入力しているCAPTCHAですが、調べてみると色々な種類や問題点などがあることがわかりました。

初期のころのCAPTCHAと比べて最近のCAPTCHAには手軽さを追求したものもあれば、パズルやパネル選択など少しエンターテインメント性をもたせたもの、セキュリティの高さを高めたものなどいろいろなものが存在します。

皆さんがCAPTCHAを使う立場であればどんなCAPTCHAを求めますか?またCAPTCHAを作成するとすればどんなCAPTCHAを作成してみたいですか?

私だったら…エンターテインメント性タイプのCAPTCHAとして、ボタンを押すと短いメロディー(5音ほど)が再生されて、そのメロディ通りに音符を五線譜上にマウスでドラッグ&ドロップしてもらうというのも面白いかなと思いました。このタイプでセキュリティを高めるには…音符の種類で4分音符のみが標準、8分音符と混ぜたのがやや高め、3連符を入れたのが高め…みたいな感じで如何でしょうか。そのうち音符が読めなかった人が音符が読めるようになりますね!

最後までお読み頂きありがとうございました!

おまけ

今回も本編のあとのおまけとして、私自身が撮影した数多くの写真の中から3点をお届けします。今回は今年の夏に撮影した写真から選んでみました。

今年就航したばかりの豪華客船、『Super Star Virgo』です。横浜大さん橋の赤レンガ倉庫側に入港した時の写真です。

コレド室町で開催されたアートアクアリウムの写真です。金魚などの魚がライトアップされ幻想的な世界が広がっていました。毎年開催されています。また10月下旬から12月中旬にかけて京都の二条城でも開催されます。

8月5日に横須賀で開催された開国記念花火大会の写真です。ほぼ満月のお月さまとのコラボレーションです。 打ち上げ数は五千発ほとですが、関東では珍しい水中花火もあり、さまざまな演出を楽しめます。

記事一覧に戻る