シナジーマーケティング株式会社

Menu

「reCAPTCHA」って?スパム対策に効果的なreCAPTCHAをフォームに入れてみた

「reCAPTCHA(リキャプチャ)」をご存じでしょうか?

reCAPTCHAは、Webフォームなどに登録する際、botなどによる悪質なアクセスからWebサイトを守るための機能です。みなさん、フォームに登録する際、「私はロボットではありません」というチェックボックスにチェックを入れた経験が一度はあるのではないでしょうか。これがreCAPTCHAの仕組みの一部です。

▼reCAPTCHAの例

※GoogleおよびGoogleのロゴはGoogle LLCの登録商標であり、許可を得て使用しています。

この記事では、2019年1月12日現在公開されているInvisible reCAPTCHAとreCAPTCHA v3を、弊社が提供している顧客管理システム「Synergy!」のフォームに実際にカスタマイズ適用した際の違いや感触をまとめました。

    • フォームへのスパム登録に困っている
    • reCAPTCHAのバージョンの違いって?
    • reCAPTCHAの実装って手間がかかるの?

などなど、疑問に思われている方はぜひ目を通してみてください。

そもそも、「reCAPTCHA」って?

reCAPTCHAは改良を重ね、2018年12月現在、v3まで公開されています。botの攻撃に悩まされているサイト運用者へのツールとしての「CAPTCHA」機能と、その判定データを有効活用するという意味を込めて「reCAPTCHA」という名前が採用されました。v1はbotではないと判断するための文字認証が複雑化し、人間でも読み取ることが難しくなったため、提供は終了しています。

主要なv3までの「reCAPTCHA」のバージョンと特徴はこのようになっています。

※GoogleおよびGoogleのロゴはGoogle LLCの登録商標であり、許可を得て使用しています。

Invisible reCAPTCHAとは

v1の終了後、reCAPTCHAはv2の時代になりましたが、v2ではチェックボックスを選択するという一手間が必要でした。この操作に対し「やらされている」と感じる方も多いのではないでしょうか(かくいう私もその一人です)。

そのチェックが不要になったのが、Invisible reCAPTCHAです。送信ボタンにreCAPTCHAのウィジェットをリンクさせておき、送信ボタンを押した際にbotである可能性があると判定された場合、v2と同じ画像認証が表示されます(挙動については次項の図を参照してください)。

Googleは、判断ロジックの内容を公開していませんが、どのようなGoogleアカウントでログインしているのか、という点もbotかどうかの判断材料になるようです。

Invisible reCAPTCHAの導入方法

Invisible reCAPTCHAの導入方法はreCAPTCHA v2とほぼ同じです。以下の3つのステップで実現できます。
実装してみて、サーバー側処理のカスタマイズに多少手がかかるなと感じましたが、複雑ではありません。

  1. GoogleのサイトでreCAPTCHAを取得
  2. 適用したいフォームのHTMLにreCAPTCHAのウィジェットを組み込む
  3. サーバー側でreCAPTCHAが送信したトークンをチェック

(※それぞれの導入手順の詳細についてはTECHSCORE記事に記載があります)

Invisible reCAPTCHAが導入されたSynergy!フォームの構成は以下になります。

Invisible reCAPTCHA導入のメリットとデメリット

reCAPTCHA v2と比較してのメリット

  • レイアウトがスッキリしてイメージを損なわない
  • 画像認証判断~トークン取得からサーバー送信の一連の動作をウィジェットがやってくれる(構成図の2~5の部分)

認証の必要がない場合は、そのままフォーム登録が実行できます。「ホントに確認した?」と感じるくらい自然で、フォームの見栄えを損ないません。
また、reCAPTCHAのトークンは、取得後数分放置するとタイムアウトと判定されるので、ユーザーの操作に不便のないように、考慮する必要があります。Invisible reCAPTCHAはトークンの取得から送信まで連続して処理されるため、タイムアウトへの考慮を軽減できます。

デメリット

  • 認証が必要だと判断された場合、突然画像認証の画面が表示されるので、おどろく

ユーザーが送信ボタンを押下したタイミングで、予告なく画像認証画面が表示されるため、なんらかのフィッシングの可能性などを考えて操作を躊躇するかもしれません。特に、ユーザーの年齢層が高い場合などは、ユーザーの戸惑いを軽減するコメントを記載するなどの配慮が必要になりそうです。

※GoogleおよびGoogleのロゴはGoogle LLCの登録商標であり、許可を得て使用しています。

reCAPTCHAウィジェットの動的制御を行えば、上記と異なるクライアント動作も可能です。詳細はGoogleのreCAPTCHAガイドに記載がありますので、参考にしてください。

reCAPTCHA v3とは

2018年10月29日にGoogleからreCAPTCHAの新バージョンreCAPTCHA v3が正式公開されました。reCAPTCHA v3の最大の特徴は、画像認証が完全になくなることです。

reCAPTCHAのAIが、ユーザーのページ内での行動をスコアとして算出し、botかそうでないかを判別します。さらに、reCAPTCHA v3を配置したページでのユーザーの動きを学習し、利用が増えるとともに行動スコアの精度が高まっていくこともv3の特徴です。

reCAPTCHA v3の導入方法

reCAPTCHA v3の導入方法も、前述のInvisible reCAPTCHAと大差ありません。

  1. GoogleのサイトでreCAPTCHAを取得
  2. 適用したいフォームのHTMLにreCAPTCHAのJavaScriptを組み込む
  3. サーバー側でreCAPTCHAが送信したトークンをチェック
  4. アクションとスコアによりbot判定時の動作などを設定

(※それぞれの導入手順の詳細についてはTECHSCORE記事に記載があります)

下図を見ていただくと、Invisible reCAPTCHAとの違いは画像認証がなく、スコアに関する記述が増えているだけ、という点が見て取れると思います。

reCAPTCHA v3の大きなポイントはトークンチェック時のレスポンスに”action”と“score”が追加され、アクションとスコアを取得でき、アクションの種別とスコアによってどのようなふるまいをするか、選択する自由があるというところです。アクションはトークン要求時にフォームから伝えることが可能です。

スコアが想定に満たない場合のふるまいの例は以下のようなものが考えられます。

  • ログインフォームの場合、メールやSMSで2段階認証を行う
  • 口コミ投稿フォームの場合、管理者が確認するまで掲示板に投稿内容を反映しない

(※詳細についてはTECHSCORE記事に記載があります)

reCAPTCHA v3導入のメリットとデメリット

メリット

  • ユーザーが認証操作を行う必要がない
  • 機械学習によって行動スコアの精度が上がっていく

ユーザーが認証操作から解放されるという点は、非常に大きなメリットですので、reCAPTCHAの利用はさらに増えていくと考えられます。

デメリット

  • サイト運営者側の運用負担が増える

閾値の検討や、bot判定した場合のふるまいの実装など、サイト運営者側でbotによる攻撃への対応をコントロールする必要があります。

検証結果:reCAPTCHA v3のスコアについて

reCAPTCHA v3を実装したフォームに様々な状態を想定した登録を行った結果、以下のことが見えてきました。

  • スコアが低くてもトークンチェックがNGで返されるわけではない
  • 100回程度連続してアクセスがあったからといってスコアは下がらない
  • Googleへのログイン状況でスコアは変わらない
  • ブラウザが保持するCookieやユーザーエージェントなどの情報に不整合があるとスコアは下がる

※もちろん機械学習の結果、上記が変わることは考えられます
reCAPTCHA v3の場合、管理画面でスコアの分布を確認できます。また、アクションTOP10のスコア分布も表示されるので、管理するページのなかでどのような性格のページがbotによる攻撃を受けているか、どの程度をbot判定の閾値とすべきなのか、という検討の助けにできます。

まとめ

Invisible reCAPTCHAもreCAPTCHA v3も、これまでより格段にユーザーがストレスなくフォーム登録できる仕組みを提供しています。
両者のどちらかが優位というよりは、それぞれにメリット・デメリットがあり、目的・用途によって使い分けるのがよいでしょう。
Invisible reCAPTCHAは画像認証によって強固なbot排除が可能なため、v3よりもサーバーに送信された情報の信頼度が高くなります。そのため現時点では、会員サイトへのログインフォームや問い合わせフォームはInvisible reCAPTCHAのほうが向いているように考えられます。
逆に、できるだけ多くの方にアクセスをして欲しい応募フォームや口コミフォームなどは、reCAPTCHA v3のほうが適しているでしょう。ただし、正常なユーザー利用がbotと判定された場合の問い合わせ先や、登録方法は準備しておく必要があります。利用が進めば、機械学習の精度も上がるためさらに効率も上がると考えられます。

GoogleはInvisible reCAPTCHAを含むreCAPTCHA v2系サービスとreCAPTCHA v3を当面、並行してサポートするようです(reCAPTCHAのFAQ)。目的によって利用するreCAPTCHAを選択できる状況は、今後しばらく続きそうです。

これまでreCAPTCHAでは画像の鮮明さやバリエーション、仕組みが何度も見直されてきました。reCAPTCHA v3でとうとうAI判定の時代に入りましたが、フォーム管理者のスパム登録との戦いは終わりがありません。
スパム登録に対して国外からのアクセス遮断やブラックリスト管理といったシステム対応が難しい場合、アプリケーション側での簡易な対応を検討するケースが多いでしょう。選択肢の一つとしてreCAPTCHAが上がった際、本記事が少しでもご参考になれば幸いです。

なお、弊社総合顧客管理システム「Synergy!」はreCAPTCHAのカスタマイズが可能です。
先日、弊社の問い合わせフォームに対しても、特定のフリーメールアドレスドメインを登録者のメールアドレスだと偽った大量のスパム投稿がありました。複数のIPアドレスからの登録であったため、IPアドレスなどでブロックするだけでは対応が後手になると判断し、Invisible reCAPTCHAをカスタマイズ実装しました。実装後にスパム投稿は排除され、お客様からのお問い合わせに注力できる状態を取り戻しましたので、効果があったと考えています。
スパム対策でお悩みの方はぜひお問い合わせください。

※記載されている内容は掲載当時のものであり、一部現状とは内容が異なる場合があります。ご了承ください。

伝えたいメッセージを届けるために。CRM/顧客管理をオールインワンで提供する、総合顧客管理(CRM)システム「Synergy!」

関連情報

PageTop