Google reCAPTCHA v2는 뒤에서 어떻게 작동합니까?


303

이 게시물은 Google ReCaptcha v2 (최신 버전 아님)에 관한 것입니다.

최근 Google 은 사용자가 클릭만으로 "보안 문자"를 전달할 수 있는 단순화 된 "보안 문자"확인 시스템 ( 비디오 )을 도입 했습니다.

그러나 클릭 한 번으로 봇과 사람을 어떻게 구별 할 수 있습니까?

이 응답 먼저 "reCAPTCHA를"에 숨겨진 입력 요소에 숨겨진 키 첨부합니다를 생성한다 (유사한 구현을 가정 함), 또한 느리게 선택란 렌더링 (아닌 실제 선택란을 input하지만 div동일한 키) 어느 클릭하면 XHR (비동기 요청)을 Google 백엔드 서버로 전송하여 유효한 확인 키 (예 : 양식을 제출할 때 확인해야하는 키)로 표시합니다.

그러나 봇이 클릭을 자동화 할 수없는 이유는 무엇입니까 (적어도 브라우저 기반 봇)?

어떻게 작동할까요?


1
봇에 아마 그들이 인간에게 간단한의 보안 문자를 보내는 한 방법과 유사, 하드 captcha가
mukunda

1
내가 이해 한 방식은 여전히 ​​보안 문자가 있지만 의심스러운 요청을하지 않으면 해결하지 않아도됩니다.
Kelm

@Louie "도난"이란 무엇입니까? 누군가가 같은 질문을하고 같은 (그리고 유일한) 게시물을 연결했지만 조금 다르게 표현되었으므로 답이 같은 것은 없습니다. 무엇보다, 원래 Quora의 질문은 12 월 3 일에 게시 하기 전에 이 질문에. 무엇이 문제인 것 같습니까?
wchargin 5

10
@CiroSantilli 六四 事件 法轮功 도대체 무엇입니까? 링크가 사라졌습니다
TechLife

14
@TechLife 사실! github.com/neuroradiology/InsideReCaptcha 로 이동 한 것 같습니다 . 자기 자신에게 알림 : 항상 물건을 포크하십시오.
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功

답변:


200

이것은 추측이지만 그들이 사용하는 "위험 분석 엔진"에 대한 Google의 참조를 기반으로합니다 ( http://googleonlinesecurity.blogspot.com/2014/12/are-you-robot-introducing-no-captcha.html )

클릭하기 전에 어떻게 행동했는지, 커서가 확인으로 이동하는 방법 (유기 경로 / 가속), 확인란의 클릭 한 부분 (임의의 장소 또는 매번 중앙에서 죽은 경우), 브라우저 지문, Google 쿠키 및 콘텐츠, 지문 또는 계정과 연결된 클릭 위치 기록 등이 감지 될 경우

지속적으로 학습되는 패턴 감지 엔진을 속이는 방식으로 "유기적"행동을 위조하는 것은 상당히 어렵습니다. 확실하지 않은 경우 실제 CAPTCHA 문자열과 일치하라는 메시지가 계속 표시됩니다.


73
그것은 옳은 것처럼 보이고 왜 항상 스틱으로 PSVita에 문자열을 입력 해야하는지 설명해야합니다. 일반적인 마우스처럼 움직이지 않습니다.
Domino

3
Google이 충분한 양의 기록 된 유기적 행동에 대해 어떻게 반응 할 지 궁금합니다.
Markus Malkusch

16
마우스 움직임은 확실히 이것에 영향을 미치지 않습니다. 확인란이 나타날 지점에 커서를 놓습니다. 커서를 움직이지 않고 사이트로 이동하십시오. 확인란을 클릭하면 통과합니다.
Derek 朕 會 功夫

3
@ 데릭, 나는 그것이 아무것도 증거라고 생각하지 않습니다. 쿠키, IP 및 기타 여러 가지 요소가 마우스 움직임으로 돌아 가기 전에 전달하는 데 도움이 될 수 있습니다. 테스트하고 싶지는 않지만 새로운 IP에서 신선한 컴퓨터를 실행하고 마우스를 전혀 사용하지 않으면 실패 할 것입니다.
Caimen

13
탭으로 이동하여 스페이스 바를 누를 수도 있습니다.
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 리소스가있는 사이트를 탐색하여 +9 일 동안 쿠키를 활성화하면 확인란을 클릭하기 만하면 reCAPTCHA를 전달할 수 있습니다.
  • IP 당 요청에 따른 제한은 없습니다.
  • 브라우저의 사용자 에이전트는 실제이어야하며 Google은 사용자 에이전트와 일치하는지 확인하기 위해 사용자 환경에 대해 테스트를 실행합니다.
  • Google은 브라우저가 캔버스를 렌더링 할 수 있는지 테스트합니다.
  • 화면 해상도 및 마우스 이벤트는 결과에 영향을 미치지 않습니다.

Google은 이미 쿠키 취약성을 수정했으며 IP를 기반으로하는 일부 동작을 제한하고있을 것입니다.

또 다른 흥미로운 발견 은 Google이 JavaScript로 VM을 실행하여 많은 reCAPTCHA 코드와 동작을 혼란스럽게한다는 것입니다. 이 VM은 botguard라고하며 reCAPTCHA 외에 다른 서비스를 보호하는 데 사용됩니다.

https://github.com/neuroradiology/InsideReCaptcha

2017 업데이트

NOCAPTCHA reCAPTCHA 오디오 문제를 해결하는 데 85 %의 정확도를 달성 한 WOOT 2017에 최근 논문 (8 월부터)이 게시되었습니다.

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

2018 업데이트

Google은 웹 사이트별로 보정 된 "인간 점수 예측 엔진"처럼 보이는 reCAPTCHA v3을 도입했습니다. reCAPTCHA와 웹 사이트 소유자가 reCAPTCHA를 작성하기 전에 사람과 봇의 행동을 이해하는 데 도움이되도록 웹 사이트의 다른 페이지 (Google Analytics 스크립트처럼 작동)에 설치할 수 있습니다.

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


4
mouse events don't affect the results나는 (그리고 다른 많은 사람들이 믿는다) 그것이 그것이 결과에 영향을 미치는 주요한 것이라고 생각했기 때문에 흥미 롭습니다. 체크 박스 대신 모바일을 생각했는데 터치 스크린에서 마우스 움직임이 없기 때문에 비슷한 이미지를 모두 선택하라는 메시지가 표시됩니다. 그러나 입문 블로그 게시물을 다시 보면 그렇지 않을 수도 있습니다. 이미지를 선택하는 것은 상자를 선택하는 것이 아니라 왜곡 된 텍스트를 입력하는 것이 아닙니다. reCAPTCHA가 모바일에서 단순히 확인란을 선택할 수 있는지 여부를 알고 있습니까?
Nateowami

마우스 이벤트는 결과에 영향을줍니다. 를 누르면 TabEnter체크 박스를 선택하면 기준에 근거하여 선택하기가 이미지의 보안 문자를 표시합니다.
mbomb007

1
mbomb007 @ 마우스 이벤트는 결과에 영향을 미칠 수 있지만 눌러 수 TabEnter모든 시간을 이미지 보안 문자를 표시하지 않습니다. 눌러 대부분의 시간 Tab과는 Enter허용됩니다
마니 Ojha을

24

내 봇은 ReCaptcha와 잘 어울립니다.

여기 내 솔루션.

봇이이 단계를 수행하게하십시오 :

먼저 휴먼 마우스 이동 기능을 작성하여 마우스를 B- 스플라인처럼 이동 시키십시오 (소스 코드 요청). 이것이 가장 중요한 포인트입니다.

https://www.purevpn.com 과 같은 VPN을 더 나은 결과로 사용 하십시오.

모든 Recpatcha에 대해 다음 단계를 수행하십시오.

  1. VPN 스위치 IP를 먼저 사용하는 경우

  2. 모든 브라우저 쿠키를 지 웁니다.

  3. 모든 브라우저 캐시 지우기

  4. 다음 Useragent 중 하나를 임의로 설정하십시오.

    ㅏ. Mozilla / 5.0 (호환 가능; MSIE 9.0; Windows NT 6.1; Trident / 5.0)

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

5 휴먼 마우스로 마우스 이동 RandomPoint에서 다른 10x10 랜덤 범위로 매번 로봇 이미지가 아닙니다.

  1. 그런 다음 임의의 지연 시간으로 클릭하십시오.

    WM_LBUTTONDOWN

    WM_LBUTTONUP

  2. Image Captcha에서 스크린 샷 찍기

  3. 에 스크린 샷 보내기

    http://www.deathbycaptcha.com

    또는

    https://2captcha.com

그들이 해결하게 해주세요.

  1. 보안 문자 해결사로부터 클릭 조정을받은 후 휴먼 마우스 이동 기능을 사용하여 이동하고 클릭하십시오 보안 문자 이미지

  2. 휴먼 마우스 이동 기능을 사용하여 Recaptcha 확인 버튼으로 이동하고 클릭하십시오.

75 %에서 모든 시도 Recaptcha가 해결됩니다.

치어스 구글


2
왜 "인간 마우스 이동 기능"이 필요합니까? 목표를 달성하는 것이 불필요 해 보입니다.
barbolo

9
'인간 마우스 이동'기능이 가장 중요한 포인트입니다. Google은 보안 문자 Mousespeed, MouseWay, MouseButton down and up Events, Clickpositions, Mouse EntryPoint를 보안 문자로 감지하고 Javascript를 통해 수백만 개의 실제 Human Mousemove Tracking을 통해 Google 데이터베이스로이 정보를 보냅니다. 이 모든 캡처 된 정보를 해석 한 후 보안 문자는 Google 알고리즘이 사람이라고 말한 경우에만 als 해결됨으로 표시됩니다.
Ingo

3
@ barbolo :이 공식 Google 블로그 security.googleblog.com/2014/12/…를 확인하세요 .-> Google은 "이 문제를 해결하기 위해 작년에 CAPTCHA에 대한 사용자의 전체 참여를 적극적으로 고려하는 reCAPTCHA를위한 Advanced Risk Analysis 백엔드를 개발했습니다. "전, 중 및 이후에 해당 사용자가 사람인지 확인합니다."
Ingo

6
8 단계는 사람이 보안 문자를 해결 하는 외부 API를 사용 합니다. 봇은 아무것도 풀지 않습니다.
Andrea Lazzarotto

14
봇 작성자가 스택 오버플로를 사용하여 재조정을 해결하고 토론하는 데 도움이되는 다른 사람에게 혼란스럽고 매력적입니까?
오우거 시편 33

3

이것이 공개 기술이 아니기 때문에 내 추측을 제시 할 수 있습니다.

구글은 인간과 로봇을 구별하기 전, 도중, 후에 정보를 결합하는 것이라고 말한다. 그러나 확인란의 마지막 클릭에 더 관심이 있습니다.

POST 데이터 (해결 된 CAPTCHA)에는 사용자 행동으로 계산 된 문자열 인 지문이라는 필드가 있습니다. 해당 확인란 위치에 대한 필드가있을 수 있습니다. 이 확인란은 Google 백엔드에서 임의로 생성하고 내 사이트의 공개 키로 암호화 된 좌표계에 있다고 생각합니다. 따라서 로봇은이 상자에 대한 위치를 "추측 / 계산"할 수 있지만 사이트 소유자가 개인 키를 사용하여 GET 쿼리를 수행하여 사용자 신원을 확인하면 Google은 좌표계를 해독하고 사용자가 올바른 위치를 클릭하면 말합니다. 따라서 Google 및 사이트 소유자만이 소유 한이 임의의 좌표계에서 하나의 가능한 오른쪽 클릭 (일부 오프셋과 사각형 상자) 위치.


브라우저가 실제로 상자를 표시하고 클릭을 감지하기에 충분하다면 해킹 로봇이 왜 그렇게 할 수 없습니까? 그러나 확인란의 위치를 ​​매우 정확한 위치 (십진수)로 설정할 수 있으므로 동일한 소수점으로 클릭이 감지되면 클릭 위치에 임의의 소수를 추가하지 않아도되는 로봇임을 의미합니다. 그러나 다시 말하지만, 그것은 절대 아닙니다.
Domino Domino

구글은 아마도 '학습'알고리즘을 사용하고 있기 때문에 같은 특성을 가진 일부 클라이언트가 동일한 일반 경로와 일반적인 시간에 도달하고 하루에 10 만 번 발생하는 경우 합법적이지 않을 수 있습니다.
사이렌

1
정사각형 영역에서 클릭을 시뮬레이션하는 것이 비교적 쉬워야합니다. Google이 데이터를 전송하기 전에 데이터를 암호화하는 방법은 중요하지 않습니다.
유진 C

0

Google은 reCaptcha와 함께

Canvas fingerprinting 

쿠키없이 사용자 / 브라우저를 고유하게 인식합니다!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.