reCAPTCHA v2とv3の違いについて

 



2021/1/20

reCAPTCHAとは

reCAPTCHAは、悪意のあるソフトウェアがWebサイトで不正な活動を行わないようにし、ロボットなどの偽のユーザーはブロックされる機能を持ったサービスです。

reCAPTCHAについては過去にも記事にしているのでそちらもご覧ください。

reCAPTCHAにはv2とv3があります

vはバージョン(Version)のことでしょう。
v2は2012年にリリースされ、v3は2018年に新しく登場しました。

新しいバージョンがあるなら新しい方を使えば良さそうですが、すべての環境でv3が最適というわけではないようです。
reCAPTCHAを提供しているGoogleも、v2を廃止する予定はなく、今後も両方のバージョンをサポートしていくと言っています。

reCAPTCHA v2がなくなることはありません!今後もv2のセキュリティと使いやすさを全面的にサポート・改善していきます。
Frequently Asked Questions  |  reCAPTCHA  |  Google Developers
https://developers.google.com/recaptcha/docs/faq#can-i-run-recaptcha-v2-and-v3-on-the-same-page

reCAPTCHA v2とv3は何が違うのか?

大まかに言えば、v2はユーザーに手間を掛けさせる認証方法で、v3はその煩わしさをなくして自動化した認証となります。

ポータルサイト reCAPTCHA v2 v3
reCAPTCHA v2 のチェックボックス

もう少し詳しくすると、v2は「チェックボックス」または「不可視のトリガー」のアクションでまず判定をして、そこでロボットやスパムのようだと疑われる場合は、画像認証(写真から車や横断歩道などを選択するアレ)で再チェックするという流れです。

ユーザーが入力情報を送信する度に必要になるので、高頻度で入力が必要な場面だと煩わしさがありますが、開発する側としての技術的な部分では「成功」か「失敗」の判定が返ってくるのでシンプルに判断できます。

v3の場合は、ユーザーの環境や動作からスコアを算出し、ロボットの場合は0、人間の場合は1としてその0~1の間で数字を返します。
閾値を0に近づけると人間がロボットと判断されることは少なくなりますが、ロボットの偽装がすり抜けやすくなります。
逆に1に近づけるとロボットを防げる確率は上がりますが、人間がロボットと誤検出される可能性が高くなってしまうなど、
スコアがいくつの場合に送信を許可するかは、設定次第となるので注意が必要です。

また、v2では最初のチェックで疑われた場合、画像認証をクリアすれば送信が可能ですが、v3だとロボットと誤って判断された人がいた場合、どうすれば認証をクリアできるのか案内が必要となるでしょう。

reCAPTCHA v2とv3の要素別の特徴

どれを採用するかを判断するかはいくつか要素があります。

v2 チェックボックスv2 不可視タイプv3
1.判定の精度◎(スコア制)
2.ユーザーへの負担チェックの手間
疑われた場合の画像認証
疑われた場合の画像認証なし
3.設置の技術的なコスト比較的簡単トークンの発行に一手間トークンの発行に一手間
スコアの判定処理
誤検出の場合の調整が必要
4.プライバシーGoogleに渡す情報が少ないGoogleに渡す情報が少ないGoogleに渡す情報がある
  1. 「判定の精度」はv2でも十分だと思いますが、近年はロボットの技術も上がっている為、画像認証なども突破される可能性はあります。しかし、v3もスコア付の精度は日々向上していると思いますが、100%では無いことは覚えておく必要があります。
  2. 「ユーザーへの負担」はv3が手間もかからずユーザーにとっては理想的です。
  3. 「設置の技術的なコスト」はv2 チェックボックスが一番簡単で、v3は開発コストが余計にかかる場合があります。
  4. 「プライバシー」については、ロボットかどうかスコア付するために何らかの情報をGoogleに渡しているので、v3を設置するサイトが増えるとその分Googleがユーザーを追跡することができる可能性があると言われています。(とはいえ、Google Analyticsを設定しているサイトの場合であれば、気にすることではないと思います)

ユーザーの負担だけを考えたら当然v3がいいのですが、人間でも環境などによってスコアが変動する場合はあるので、絶対に認証を通るとは言い切れません。
認証に通らなかった場合にどうするかを仕組みとして考えておく必要があるので、「スパム対策したい」→「v3設置」とすぐに判断するのは注意が必要かもしれません。

また、設置するにはフォームの送信処理にコードを組み込む必要がありますが、これはv2の方が簡単に設置することが可能です。特殊な構築をしているフォームの場合、v2不可視タイプやv3は設置が難しい場合もありますので、低予算でとりあえずスパムが来ないようにしたいだけであれば、v2を採用するほうがいい場面も十分あるでしょう。

v2とv3の使い分け

そこで、具体的には

v2 → 会員登録フォームやお問い合わせフォームなど、1人のユーザーの送信頻度が低く、万が一にも誤検出で弾かれてほしくない部分

v3 → チャットや掲示板、ブログなどのコメント欄など、高い頻度で何度も書き込むような部分

のようにして使い分けていけば良さそうです。