Google reCAPTCHA v2 perde arkasında nasıl çalışır?


303

Bu yayın Google ReCaptcha v2'ye (en son sürüm değil) atıfta bulunuyor

Son zamanlarda Google , kullanıcıların "captcha" yı yalnızca tıklayarak geçmesine olanak tanıyan basitleştirilmiş bir "captcha" doğrulama sistemi ( video ) tanıttı .

Ancak bir botu bir kişiden sadece bir tıklama ile nasıl ayırt edebilir?

Gereğince bu cevap , ilk "reCAPTCHA" de, bir gizli giriş öğesine bir gizli anahtar ve ataşeleri bunu oluşturur (benzer bir uygulama varsayarak) ve aynı zamanda tembel bir onay kutusu vermektedir (gerçek bir onay kutusu inputancak divaynı anahtarla) hangi tıklandığında, Google arka uç sunucularına geçerli bir doğrulama anahtarı (yani form gönderildiğinde doğrulanması gereken bir anahtar) olarak işaretlemek için eşzamansız bir istek (XHR) gönderir.

Ancak botlar neden bu tıklamayı otomatikleştiremiyor (en azından tarayıcı tabanlı botlar)?

Bu nasıl olabilir?


1
Muhtemelen insanlara basit captcha'lar ve botlara sert captcha'lar gönderme yöntemlerine benziyorlar
Mukunda

1
Anladığım gibi - hala bir captcha var, ancak şüpheli isteklerde bulunmadıkça - bunu asla çözmek zorunda kalmayacaksınız.
Kelm

@Louie "Çalınan" nedir? Birisi aynı soruyu sordu ve aynı (ve sadece) gönderiyi bağladı - ancak biraz farklı ifade edildi ve cevapların hiçbiri aynı değil. Dahası, orijinal Quora sorusu 3 Aralık'ta bu sorudan bir gün önce yayınlandı . Sorun ne gibi görünüyor?
wchargin

10
@CiroSantilli 六四 事件 法轮功 ne halt? bağlantı
koptu

14
@TechLife gerçek! Github.com/neuroradiology/InsideReCaptcha adresine taşınmış gibi görünüyor mu? Kendine hatırlatma: her zaman çatal şeyler.
Ciro Santilli 法轮功 冠状 病 六四 事件 法轮功

Yanıtlar:


200

Bu spekülasyon, ancak Google'ın kullandıkları "risk analizi motoru" referansına dayanarak ( http://googleonlinesecurity.blogspot.com/2014/12/are-you-robot-introducing-no-captcha.html )

Tıklamadan önce nasıl davrandığınıza, imlecinizin onay kutusuna (organik yol / hızlanma), onay kutusunun hangi kısmına tıklandığına (rastgele yerler veya merkezde her seferinde ölü), tarayıcıya nasıl geçtiğine baktığımı varsayalım. parmak izi, Google çerezleri ve içeriği, parmak izi veya hesabınızla ilişkili konum geçmişini tıklayın.

"Organik" davranışı, sürekli öğrenen bir kalıp algılama motorunu kandıracak şekilde taklit etmek oldukça zordur. Emin olmadığı durumlarda, sizden gerçek bir CAPTCHA dizesini eşleştirmenizi ister.


73
Bu doğru görünüyor ve neden her zaman PSVita'ya sopalarla bir dize yazmak zorunda olduğumu açıklamalıyım. Normal bir fare gibi hareket etmiyor.
Domino

3
Google'ın yeterli miktarda kayıtlı organik davranışa nasıl tepki vereceğini merak ediyorum.
Markus Malkusch

16
Fare hareketi kesinlikle buna katkıda bulunmaz. İmleci, onay kutusunun görüneceği yere yerleştirin. İmlecinizi hareket ettirmeden siteye gidin. Onay kutusunu tıkladığınızda onaylanır.
Derek 朕 會 功夫

3
@Derek, bunun hiçbir şeyin kanıtı olduğunu düşünmüyorum. Çerezler, IP ve diğer birçok faktör, fare hareketine geri dönmeden önce geçmenize izin verebilir. Test etmek istemiyorum, ancak taze bir bilgisayardan yeni bir IP ateş edip fareyi hiç kullanmazsanız, başarısız olacağına bahse girmeye hazırım.
Caimen

13
Ayrıca sekme üzerine gidip boşluk tuşuna basabileceğinizi unutmayın.
JSideris

74

ReCAPTCHA'ya karşı çeşitli testlerle yeni bir makale yayınlandı:

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

Bazı önemli noktalar:

  • Bir çerezi +9 gün boyunca etkin tutarak (Google kaynaklarına sahip sitelere göz atarak), daha sonra yalnızca onay kutusunu tıklayarak reCAPTCHA'yı iletebilirsiniz;
  • IP başına taleplere dayalı herhangi bir kısıtlama yoktur;
  • Tarayıcının kullanıcı aracısı gerçek olmalı ve Google, kullanıcı aracıyla eşleştiğinden emin olmak için ortamınıza karşı testler yapmalıdır;
  • Google, tarayıcının bir Tuval oluşturabildiğini test eder;
  • Ekran çözünürlüğü ve fare olayları sonuçları etkilemez;

Google, çerez güvenlik açığını zaten düzeltmiştir ve muhtemelen IP'lere dayalı bazı davranışları kısıtlamaktadır.

Bir başka ilginç bulgu , Google'ın JavaScript'te reCAPTCHA kodunun ve davranışının çoğunu gizleyen bir VM çalıştırmasıdır. Bu VM botguard olarak bilinir ve reCAPTCHA dışındaki diğer hizmetleri korumak için kullanılır:

https://github.com/neuroradiology/InsideReCaptcha

GÜNCELLEME 2017

WOOT 2017'de noCAPTCHA reCAPTCHA ses zorluklarının çözümünde% 85 doğruluk sağlayan yeni bir makale (Ağustos'tan itibaren) yayınlandı:

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

GÜNCELLEME 2018

Google, web sitesi başına kalibre edilmiş bir "insan puanı tahmin motoru" gibi görünen reCAPTCHA v3'ü sunuyor. ReCAPTCHA'nın ve web sitesi sahibinin, bir reCAPTCHA'yı doldurmadan önce insanların ve botların davranışlarını anlamalarına yardımcı olmak için bir web sitesinin farklı sayfalarına (Google Analytics komut dosyası gibi çalışır) yüklenebilir.

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


4
mouse events don't affect the resultsBu ilginç, çünkü ben (ve diğerlerine inanıyorum) bunun sonuçları etkileyen ana şey olduğunu düşündüm. Onay kutusu yerine mobil cihazlarda düşündüm, kullanıcılardan dokunmatik ekranda fare hareketleri olmadığı için benzer tüm resimleri seçmeleri istendi. Ancak, giriş blog yayınına tekrar bakıldığında durum böyle olmayabilir. Belki de görüntüleri seçmek, kutuyu işaretlemek yerine bozuk metin yazmak yerine. Siz (veya herhangi biri) reCAPTCHA'nın mobil cihazlarda bir kutuyu işaretlemenize izin verip vermediğini biliyor musunuz?
Nateowami

Fare olayları sonuçları etkiler. Onay kutusunu seçmek için Tabve tuşlarına basarsanız Enter, kritere göre seçmeniz için captcha görüntülerini gösterecektir.
mbomb007

1
mbomb007 @ Fare olaylar sonuçlarını etkileyebilir ancak basarak olabilir Tabve Enterher zaman görüntü captcha'yı gösterilmez. Çoğu zaman baskı Tabve Enterkabul edilir
Manish Ojha

24

Botlarım ReCaptcha'ya karşı iyi çalışıyor.

İşte benim çözümüm.

Botunuzun bu adımları yapmasına izin verin:

Farenizi B-Spline gibi hareket ettirmek için önce bir İnsan Faresi Hareket Fonksiyonu yazın (Kaynak Kodunu Sor). Bu en önemli noktadır.

Daha iyi sonuçlar için https://www.purevpn.com gibi bir VPN kullanın

Her Recpatcha için şu adımları uygulayın:

  1. Önce VPN anahtarı IP'sini kullanıyorsanız

  2. Tüm Tarayıcı Çerezlerini Temizle

  3. Tüm Tarayıcı Önbelleğini Temizle

  4. Bu Kullanım Parçalarından birini Rastgele Ayarlayın:

    a. Mozilla / 5.0 (uyumlu; 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 Farenizi İnsan Faresi ile Hareket ettirin Funktion'ı bir RandomPoint'ten farklı 10x10 Randomrange ile bir Robot Resmi değilim

  1. Sonra arasında rastgele gecikme ile hiç tıklayın

    WM_LBUTTONDOWN

    ve

    WM_LBUTTONUP

  2. Image Captcha'dan Ekran Görüntüsü Alın

  3. Ekran görüntüsünü şuraya gönder:

    http://www.deathbycaptcha.com

    veya

    https://2captcha.com

ve çözmelerine izin verin.

  1. Captcha çözücü tıklama cooridinates aldıktan sonra taşımak ve tıklayın Recaptcha görüntüleri insan fare hareket Funktion kullanın

  2. Hareket Etmek ve Recaptcha Doğrulama Düğmesine Tıklamak için İnsan Fare Hareket İşlevinizi kullanın

% 75'te tüm trys Recaptcha çözülecek

Chears Google

Tom


2
Neden "İnsan Faresi Hareket Fonksiyonu" na ihtiyacınız var? Hedefinize ulaşmak gereksiz görünüyor.
barbolo

9
'İnsan Fare Hareketi' İşlevi en önemli noktadır. Google, captcha Mousespeed, MouseWay, MouseButton aşağı ve yukarı Olayları, Tıklamaları, Fare EntryPoint'ini captcha'ya tespit eder ... ve bu bilgileri Javascript aracılığıyla milyonlarca gerçek İnsan Mousemove İzlemesi ile Google Veritabanına gönderir. Tüm bu yakalanan Bilgileri yorumladıktan sonra, Captcha sadece google algoritması bir insan olduğunu söylüyorsa çözüldü olarak işaretlenir.
Ingo

3
@ barbolo: Lütfen bu resmi Google Blog'u kontrol edin security.googleblog.com/2014/12/… -> Google, "Buna karşı koymak için geçen yıl reCAPTCHA için aktif olarak kullanıcının CAPTCHA ile tüm etkileşimini dikkate alan Gelişmiş bir Risk Analizi arka ucu geliştirdik. —Bunun öncesinde, sırasında ve sonrasında — bu kullanıcının bir insan olup olmadığını belirlemek için. ”
Ingo

6
Adım 8, insanların captcha'yı sizin için çözdüğü harici bir API kullanır . Bot hiçbir şeyi çözmüyor.
Andrea Lazzarotto

14
Sadece ben mi, yoksa bot yazarlarının yığın taşmalarını reCAPTCHA'ları çözmek (ve tartışma hakkında!)
Ogre Psalm33

3

Tahminimi sunabilir miyim, çünkü bu açık bir teknoloji değil.

Google bunun, insanı robottan ayırmak için önce, sırasında, sonrasında bilgi taramakla ilgili olduğunu söylüyor. Ancak onay kutusundaki son tıklamayla daha fazla ilgileniyorum.

Diyelim ki, POST verisi (çözülmüş CAPTCHA), parmak izi adı verilen bir alana sahiptir ve kullanıcı davranışından hesaplanan bir dize. Bu onay kutusunun konumu hakkında bir alan olabileceğini düşünüyorum. Sanırım bu onay kutusu, Google arka ucu tarafından rastgele oluşturulmuş ve sitemin genel anahtarı tarafından şifrelenmiş bir koordinat sisteminde. Bu nedenle, bir robot bu kutu hakkında bir konumu "tahmin edebilir / hesaplayabilir", ancak site sahibi kullanıcı kimliğini doğrulamak için GET sorgusunu özel anahtarla yaptığında, Google koordinat sisteminin şifresini çözer ve kullanıcının doğru yeri tıklayıp tıklamadığını söyler. Bu nedenle, yalnızca Google ve site sahiplerinin sahip olduğu bu rastgele koordinat sisteminde yalnızca bir olası sağ tıklama (bazı ofsetlerle, bir kare kutu) konumu.


Tarayıcı kutuyu gerçekten gösterecek ve tıklamaları algılayacak kadar iyiyse, bir bilgisayar korsanı neden aynı şeyi yapamaz? Bununla birlikte, onay kutusunun konumunu çok kesin bir konuma ayarlayabilirim (ondalık sayı olarak), böylece aynı ondalıklarla bir tıklama algılanırsa, tıklama konumuna rastgele ondalık sayılar eklemeyi zahmet etmeyen bir robot olduğu anlamına gelir. Ama yine de, bu kusursuz değildir.
Domino

Google'ın sözde 'öğrenme' algoritması kullanması, böylece aynı özelliklere sahip bazı müşteriler oraya ulaşmak için aynı genel yola ve genel zamana uyuyor gibi görünüyorsa ve günde 100.000 kez gerçekleşmişse, muhtemelen yasal değildir.
Sirenler

1
Kare alanda tıklamayı simüle etmek nispeten kolay olmalıdır. Google'ın göndermeden önce verileri nasıl şifrelediği önemli değildir.
Eugene C

0

Google'ın reCaptcha ile birlikte kullandığını lütfen unutmayın

Canvas fingerprinting 

Kullanıcı / Tarayıcıları çerezler olmadan benzersiz bir şekilde tanımak için!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.