Google reCAPTCHA v2はどのようにバックグラウンドで機能しますか?


303

この投稿はGoogle ReCaptcha v2を参照しています(最新バージョンではありません)

最近Googleは、ユーザーが「キャプチャ」をクリックするだけでそれを渡すことができる、簡略化された「キャプチャ」検証システム(ビデオ)を導入しました。

しかし、クリックするだけでボットと人をどのように区別できるでしょうか。

この回答に従って(同様の実装を想定)、最初に「recaptcha」は非表示のキーを生成し、それを非表示の入力要素にアタッチし、同じキーを持つチェックボックス(実際のチェックボックスではinputなくdiv)を遅延表示します。クリックすると、非同期リクエスト(XHR)をGoogleバックエンドサーバーに送信して、有効な検証キー(フォームの送信時に検証する必要があるキー)としてマークします。

しかし、ボットがそのクリックを自動化できないのはなぜですか(少なくとも、ブラウザベースのボット)。

これはどのように機能しますか?


1
おそらく、彼らが単純なキャプチャを人間に送信し、ハードキャプチャをボットに送信していた方法と同様
mukunda

1
私がそれを理解した方法-キャプチャはまだありますが、不審なリクエストをしない限り、解決する必要はありません。
Kelm、2014

@ルイ「盗まれた」とは?誰かが同じ質問をし、同じ(そして唯一の)投稿をリンクしました。ただし、言葉遣いが少し異なり、同じ答えはありません。しかも、元Quoraの質問は、日、12月3日に掲載された前に、この質問。問題であると想定されるのは?
wchargin 2015

10
@CiroSantilli六四事件法轮功一体何ですか?リンクがなくなりました
TechLife、2015

14
@TechLife true!github.com/neuroradiology/InsideReCaptchaに移動したようですか?自分へのリマインダー:常にフォークのもの。
Ciro Santilli郝海东冠状病六四事件法轮功

回答:


200

これは推測ですが、Googleが使用する「リスク分析エンジン」への言及に基づいています(http://googleonlinesecurity.blogspot.com/2014/12/are-you-robot-introducing-no-captcha.html

クリックする前の動作、カーソルがチェック(オーガニックパス/アクセラレーション)に移動する方法、チェックボックスのどの部分がクリックされたか(ランダムな場所、または毎回中央に表示されない)、ブラウザーに注目すると思います指紋、GoogleのCookieとコンテンツ、指紋に関連付けられたロケーション履歴をクリックするか、アカウントが検出された場合はアカウントなど。

継続的に学習するパターン検出エンジンをだますような「オーガニック」な振る舞いをするのはかなり難しいです。不明な場合でも、実際のCAPTCHA文字列と一致するように求められます。


73
それは正しいようで、スティックを使ってPSVitaに常に文字列を入力する必要がある理由を説明する必要があります。通常のマウスのようには動きません。
ドミノ

3
記録された十分な量の有機的行動に対してGoogleがどのように反応するのかと思っています。
Markus Malkusch 2015

16
マウスの動きは間違いなくこれには寄与しません。チェックボックスが表示される場所にカーソルを合わせます。カーソルを動かさずにサイトに移動します。チェックボックスをクリックすると合格します。
Derek━會功夫

3
@デレク、私はそれが何かの証拠だとは思いません。Cookie、IP、およびその他の多くの要因が、マウスの動きに戻る前に通過を許可する原因となる場合があります。私はそれをテストする気はありませんが、新しいIPから新しいコンピューターを起動し、マウスをまったく使用しない場合は、失敗することを確信しています。
カイメン、2015年

13
そこに移動してSpaceキーを押すこともできます。
JSideris

74

reCAPTCHAに対するいくつかのテストを含む新しいペーパーがリリースされました。

https://www.blackhat.com/docs/asia-16/materials/asia-16-Sivakorn-Im-Not-a-Human-Breaking-the-Google-reCAPTCHA-wp.pdf

いくつかのハイライト:

  • (Googleリソースを使用してサイトを閲覧することにより)cookieを+9日間アクティブにしておくと、チェックボックスをクリックするだけでreCAPTCHAを渡すことができます。
  • IPごとのリクエストに基づく制限はありません。
  • ブラウザのユーザーエージェントは実在している必要があり、Googleは環境に対してテストを実行して、ユーザーエージェントと一致することを確認します。
  • Googleは、ブラウザがCanvasをレンダリングできるかどうかをテストします。
  • 画面解像度とマウスイベントは結果に影響しません。

GoogleはすでにCookieの脆弱性を修正しており、おそらくIPに基づくいくつかの動作を制限しています。

別の興味深い発見は、GoogleがJavaScriptでVMを実行し、reCAPTCHAコードと動作の多くを難読化していることです。このVMはボットガードと呼ばれ、reCAPTCHA以外のサービスを保護するために使用されます。

https://github.com/neuroradiology/InsideReCaptcha

更新2017

最近の論文(8月から)がWOOT 2017で公開され、noCAPTCHA reCAPTCHAオーディオの課題を85%の精度で解決しました。

http://uncaptcha.cs.umd.edu/papers/uncaptcha_woot17.pdf

2018年の更新

Googleは、Webサイトごとに調整される「人間スコア予測エンジン」のように見えるreCAPTCHA v3を導入しています。Webサイトのさまざまなページ(Googleアナリティクススクリプトのように機能する)にインストールして、reCAPTCHAとWebサイトの所有者がreCAPTCHAに入力する前に人間とボットの動作を理解するのに役立ちます。

https://www.google.com/recaptcha/intro/v3beta.html


4
mouse events don't affect the resultsそれは興味深いです。私(そして私は他の多くの人も信じている)は、それが結果に影響を与える主なものだと思っていたからです。チェックボックスの代わりにモバイルを考えましたが、タッチスクリーンではマウスの動きがないため、ユーザーは代わりに似ているすべての画像を選択するように求められました。しかし、紹介ブログの投稿をもう一度見てみると、そうではないようです。おそらく、画像を選択することは、歪んだテキストを入力することではなく、ボックスをチェックすることではありません。reCAPTCHAがモバイルのチェックボックスをオンにすることを許可するかどうかをあなた(または誰か)が知っていますか?
Nateowami

マウスイベントは結果に影響します。あなたが押した場合TabEnter、チェックボックスを選択するために、それはあなたが判断基準に基づいてそれらを選択するための画像キャプチャが表示されます。
mbomb007 2017

1
@ mbomb007マウスイベントは結果に影響を与える可能性がありますが、押すTabEnter常に画像のキャプチャが表示されません。プレス時間の大部分Tabとは、Enter受け入れられている
マニッシュOjhaを

24

私のボットはReCaptchaに対してうまく動いています。

ここに私のソリューション。

ボットに次の手順を実行させます。

まず、Bスプラインのようにマウスを移動するためのヒューマンマウス移動関数を記述します(ソースコードを確認してください)。これが最も重要なポイントです。

また、より良い結果を得るには、https: //www.purevpn.comのようなVPNを使用します

すべてのRecpatchaについて、次の手順を実行します。

  1. 最初にVPNスイッチIPを使用する場合

  2. すべてのブラウザのCookieをクリアする

  3. すべてのブラウザキャッシュをクリア

  4. これらのユーザーエージェントの1つをランダムで設定します。

    a。Mozilla / 5.0(互換性あり; MSIE 9.0; Windows NT 6.1; Trident / 5.0)

    b。Mozilla / 5.0(Windows NT 6.1; WOW64; rv:44.0)Gecko / 20100101 Firefox / 44.0

5 Human Mouse Move Funktionを使用してマウスを移動し、RandomPointからIはロボットイメージではないものに、毎回異なる10x10ランダムレンジで移動します

  1. 次に、ランダムな遅延を置いてクリックします

    WM_LBUTTONDOWN

    そして

    WM_LBUTTONUP

  2. 画像キャプチャからスクリーンショットを撮る

  3. スクリーンショットを送る

    http://www.deathbycaptcha.com

    または

    https://2captcha.com

そして、彼らが解決してみましょう。

  1. captchaソルバーからクリック座標を受け取ったら、Human Mouse move Funktionを使用して移動し、Recaptcha画像をクリックします。

  2. Human Mouse Move Funktionを使用して移動し、Recaptcha Verifyボタンをクリックします

75%ですべての試行が解決されます

Chears Google

トム


2
なぜ「マウスの移動機能」が必要なのですか?目標を達成する必要はないようです。
barbolo

9
「人間のマウスの動き」機能が最も重要なポイントです。Googleはキャプチャ内でMousespeed、MouseWay、MouseButtonの上下イベント、Clickpositions、キャプチャポイントへのMouse EntryPointを検出し、この情報をJavascriptを介して数百万の実際のHuman MousemoveトラッキングとともにGoogleデータベースに送信します。このキャプチャされたすべての情報を解釈した後、Googleアルゴリズムが人間であると述べた場合にのみ、キャプチャはalsを解決済みとしてマークします。
2016年

3
@ barbolo:この公式のGoogleブログを確認してくださいsecurity.googleblog.com/2014/12/…- > Googleによると、「これに対抗するために、昨年、CAPTCHAに対するユーザーの完全な関与を積極的に検討するreCAPTCHAのAdvanced Risk Analysisバックエンドを開発しました。 —前、最中、および後—そのユーザーが人間であるかどうかを判断します。 "
Ingo

6
ステップ8では、人間がキャプチャを解決する外部APIを使用します。ボットは何も解決していません。
Andrea Lazzarotto 2017

14
ボットの作成者がスタックオーバーフローを使用してreCAPTCHAの解決(および議論!)を行っているのは、私だけですか、それとも他の人にとっては不愉快で魅力的なものですか?
Ogre Psalm33 2017年

3

これはオープンテクノロジーではないので、私の推測を提示してください。

Googleは、人間とロボットを区別するために、前、中、後の情報を組み合わせると説明しています。しかし、私はチェックボックスの最後のクリックについてもっと興味があります。

たとえば、POSTデータ(解決されたCAPTCHA)には、ユーザーの行動から計算された文字列である指紋と呼ばれるフィールドがあります。そのチェックボックスの場所に関するフィールドがあると思います。このチェックボックスは、Googleバックエンドによってランダムに生成され、サイトの公開鍵によって暗号化された座標系にあると思います。したがって、ロボットはこのボックスの場所を「推測/計算」する可能性がありますが、サイト所有者が秘密キーを使用してGETクエリを実行してユーザーの身元を確認すると、Googleは座標系を復号化し、ユーザーが正しい場所をクリックしたかどうかを伝えます。したがって、Googleとサイトの所有者のみが所有するこのランダムな座標系で可能な右クリック(オフセットはあるが、四角いボックス)の場所は1つだけです。


ブラウザが実際にボックスを表示してクリックを検出するのに十分である場合、ハッキングロボットが同じようにできないのはなぜですか?ただし、チェックボックスの位置を非常に正確な位置(小数)に設定することもできるので、同じ小数でクリックが検出された場合は、クリック位置にランダムな小数を追加しなかったのはロボットです。しかし、繰り返しますが、それは絶対に簡単なことではありません。
ドミノ

Googleは「学習」アルゴリズムを使用していると考えられるため、同じ特性を持つ一部のクライアントが同じ一般的なパスと一般的な時間に到達し、1日に100,000回発生した場合、おそらく合法ではありません。
サイレン2015年

1
正方形の領域でのクリックのシミュレーションは比較的簡単です。送信前にgoogleがデータを暗号化する方法は関係ありません。
ユージーンC

0

GoogleはreCaptchaも一緒に使用することを覚えておいてください

Canvas fingerprinting 

Cookieなしでユーザー/ブラウザを一意に認識します!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.