reCAPTCHA

 

reCAPTCHA
리캡차

[image]
개발
v1: 카네기 멜런 대학교 연구팀
v2 이후: Google LLC
개발자
Luis von Ahn 외 4명
Google Developers (영어)
공식 사이트 (영어)
1. 개요
2. 버전
2.1. v1 - CAPTCHA (지원 종료)
2.2. v2 - 체크박스, 능동
2.3. v3 - 상호작용 점수
3. 여담

[clearfix]
[image]

1. 개요


Easy on Humans, Hard on Bots

사람에게는 쉽지만, 봇한테는 어렵습니다.

reCAPTCHA는 구글에서 제공하는 봇 방지 API로, 최신 버전은 v2이며 v3 베타가 나와있다.

2. 버전



2.1. v1 - CAPTCHA (지원 종료)


CAPTCHA의 종류 중 많이 쓰이는 reCAPTCHA라는 것은 사실 구글에서 고서의 내용을 처리하는데 사용되고 있다. 이것의 정체는 구글이 보유하고 있는 고서 스캔 데이터에서 자동 처리에 실패한 단어들의 이미지를 따온 뒤, 그것을 사람이 보고 입력하도록 함으로서 이미지를 텍스트로 바꾸는 프로그램이다. 즉, 한마디로 말하자면 인간 OCR 프로그램.[1] 이 때문에 reCAPTCHA에 나오는 단어 중에는 옛날에나 사용되던 좀 생소한 단어들이 섞여 있다.
reCAPTCHA에서 나오는 문제를 보면 꼭 단어가 두 개씩 짝을 이루어서 나온다. 둘 중 하나는 이미 연산을 통해 데이터로 처리가 된 단어고, 나머지 하나는 아직 처리가 안 된 단어다. 전자는 답이 밝혀져 있으며 후자는 답이 밝혀져있지 않으나 전자를 맞히면 (사람이 입력한 이상) 후자도 정답일 확률이 높다고 처리하는 식으로 연산하는 것.
2014년 4월 10일에 중국 연구팀이 reCAPTCHA v1의 해킹을 성공했다.#[링크삭제됨][2]

2018년 5월 31일 지원 종료되어 더이상 사용할 수 없다.

2.2. v2 - 체크박스, 능동




[image]
나무위키를 비롯한 여러 웹사이트에서 채택한 방식이며 간단하여 가장 인기 있는 타입. 기존의 캡차는 사람조차 알아보기 힘들어서 가끔 사람도 오타를 낸다. 이러한 문제를 해결하기 위해 구글에서는 2014년 12월 노 캡차(No CAPTCHA)를 개발했다. 체크박스를 체크해서 통과하는 ''''I'm not a robot''''과 유동적으로 뜨는 ''''Invisible''''이 있다.
[image]
통상적인 경우 사람 특유의 마우스 포인팅, 클릭과 터치 패턴, 쿠키 값, 기타 알려지지 않은 구분방법을 통해 구별해 낸다. 근데 사실 특유의 마우스 포인팅이라고 해봐야, 느리게 포인트를 비스듬하게 움직이면 되니 어렵진 않다.[3] 보통 스마트폰이나 태블릿 PC의 경우 포인팅 인식이 제대로 안 되거나 되더라도 보통 움직임을 캐치하기가 힘든데, 이 경우 몇몇 부분을 바꿔가면서 터치하면 역시 통과할 수 있다.[4] 아마 모바일 환경일 경우 터치 환경임을 상정하여 판단하는 모양. 실제 나무위키를 모바일에서 편집하고 reCAPTCHA 인증을 시도하면 분명 하라는 대로 사진 다 찾았는데도, 90% 확률로 막혀서 6, 7번을 시도해야 하는 경우가 많다. 보통 구글을 사용한 기록(유튜브 시청, 구독, 댓글, 구글 검색 등)이 일정량 이상이면 눌렀을 때 그냥 넘어간다.
Cloudflare 적용 사이트의 경우 리캡차를 힘들게 다 했는데 새로고침이 되어 10분동안 리캡차만 하게 되는 상황도 발생한다. reCAPTCHA가 아닌 다른 캡차도 사용하는 모양.
만약 클릭 단계에서 사람임을 확인할 수 없었다면 맞는 그림 찾기가 실행된다. 그 때마저도 사람과 구분이 안된다면 전통적인 캡차를 실행한다.
어째 4chan에서는 가끔씩 개그의 대상이 되기도 한다. 샌드위치를 고르라는데 햄버거까지 골라야 하거나, 지속적으로 피자만 나와서 배가 고파진다는 등. 사실 틀린 것은 아닌 게, 햄버거는 '햄버거 샌드위치'의 줄임말이고 햄버거도 원래 샌드위치의 일종이다. 미국의 경우 치킨버거를 '치킨 샌드위치'라고 부르는 경우가 많다.
사물 인식은 사진이 작고 잘 보이지 않아 '''어려울 때도 있다.''' 생전 들어본 적도 없는 것을 고르라고 하면 당황스럽다. 아는 것을 고르라고 해도 문화 차이로 인해서 고르기 어려운 경우도 있다. 대표적인 예로 신호등이 있다. 도로 위에 달려있으면 신호등이 맞겠지만 각 나라마다 모양이 은근히 다르다. 또한 다른 언어 사용자들도 어려움을 겪기도 하는데, 한글 표시중에서 당구대(pool table)를 고르라는 캡챠가 "수영장 탁자를 고르시오"로 오역되었다. 이는 수영장과 당구가 영어로 동음이의어(pool)라서 벌어진 해프닝. 특히 그림 몇개를 골랐는데 덜 골랐다고 판정하여 초기화시키고 다른 것을 고르라고 하면 화가 안 날 수가 없다. 그나마 이후에는 그림을 덜 골랐으면 해당 그림들을 제외하고 나머지 그림 중에서 더 고르라는 식으로 개선되었다.
그리고 가끔 '''고양이 코스프레한 강아지'''가 나오는 등 상당히 헷갈리는 상황이 나오기도 한다. 이 때는 강아지로 인식된다.
'로봇이 아닙니다' 라는 문장 때문에 인격을 가진 캐릭터들이 로봇이라는 이유로 reCAPTCHA를 쓰지 못한다는 밈도 있다.
구글이 자율주행차를 본격적으로 연구하기 시작한 후에는
  • ○○○이 있는 타일을 모두 찍기. 하나도 없을 때까지: 처음에는 주로 차량, 매장 정문이었다. 타일을 선택하면 다음 타일이 굉장히 느린 속도로 나와 답답하다. 사용자 신뢰도가 높을 경우 타일이 빨리 나오거나 한 타일을 한 번만 찍고 끝나는 유형도 나오기는 한다.
  • 16개 타일 중 ○○○이 있는 타일을 모두 찍기: 처음에는 주로 표지판이었다. 첫번째 유형은 사진 하나를 찍었을 때 다른 사진으로 바뀔 때까지의 딜레이가 꽤 길고, 두번째 유형은 ○○○이 겨우 코딱지만큼만 걸쳐져 있는 타일이 있는 경우가 많은데 이걸 찍을 것인가 말 것인가 긴 고민에 빠지기 쉽다. 보통은 코딱지만큼 걸처져 있으면 정답으로 판정하지 않는 경우가 있다.
이 버전의 리캡챠는 자율주행자동차, 구글 맵스에 대한 인식 데이터로서 수집된다고 한다.
물론 구글 측 인공지능도 답을 확정적으로 안다기보다는 인식 결과에 대한 신뢰성을 높이는 차원일 가능성이 높기 때문에 터무니없는 곳을 찍지만 않으면 많이 걸친 부분만 찍든 전체를 여백까지 다 찍든 정상적으로 통과될 때가 더 많다. 가끔 첫번째 유형에서 선택하고 난 다음 그 자리에 사진이 다시 뜨지 않을 때가 있는데, 대부분 선택하지 말고 무시하고 진행하면 통과된다. 특히나 자율주행차는 야간에서의 사물 식별도 가능해야 하는데, 레이저, 적외선, 초음파 인식으로 모든 것을 식별할 순 없으니만큼 나중에 야간 사진도 나올 가능성을 배제할 수 없다.
와이파이가 불안정한 환경[5]이나 Tor(익명 네트워크)를 사용하고 있다면 문제를 다 맞혔는데 ''''reCAPTCHA에 연결할 수 없습니다. 다시 시도해 주세요.''''와 같은 메시지가 떠서 기껏 풀어놓은거 다 날려먹는 황당한 경우도 존재한다. 혹은 아무리 그림을 찍어도 다음 테스트로만 넘어갈 뿐 정작 그림 찍기 작업 자체는 끝나지 않는 무한 루프비슷한 상황에 빠질 때도 있다.
중국에서는 구글차단되어 있기 때문에 캡차가 적용된 사이트 역시 이용할 수 없다. 이를 역이용해서 중국에서의 회원가입이나 문서 훼손을 막는 것도 가능하다. 당연하지만 중국 대륙만 해당되고 홍콩, 마카오, 대만 등에서는 정상 이용 가능.
나무위키의 비로그인 사용자는 수정하기 전에 CAPTCHA 인증[6]을 해야한다. 같은 아이피일 경우 쿠키가 지워지지 않았다면 reCAPTCHA 한 번으로 이후엔 다시 인증할 필요 없이 지속해서 위키사용이 가능하다.[7]
사실 나무위키든 어디든 이런 유형의 reCAPTCHA를 통과해야 하는 작업을 바쁜 일이 있을 때 하는 것은 권장하지 않는다. 가령 등교 시간이나 출근 시간 몇 분 전이라든지.
2020년 2월부터 일부 PC에서 reCAPTCHA 체크박스를 클릭하면 API 매개변수 오류가 뜬다.# 4월 19일 기준 해결 방법은 KMSpico를 사용하는 경우 라이센스를 구입하여 정품으로 전환하고, TouchVPN같은 VPN 부가 기능을 이용하거나 파이어폭스 브라우저를 이용하면 정상적으로 작동된다.
reCAPTCHA를 단시간 내에 수십 번 실행하다보면 테스트 통과 기준이 점점 까다로워진다. 테스트를 두 번 하는 경우가 빈번해지며, 하나도 없을 때까지 ○○○이 있는 타일을 모두 선택하는 유형이 자주 나오게 된다. 더 나아가면 이 유형에 화질 저하 효과까지 포함되며, 마지막에는 다섯 번 연속으로 테스트를 진행하며, 이때 높은 확률로 다시 해야 한다. 이 정도 왔으면, 쉬었다 하자.
언젠가부터 클릭했을 때 뜨는 동그라미의 굵기가 굵어지고, 둥근 디자인이 사라졌다.
여담으로 잼민이 reCAPTCHA도 있다.
IP마다 문제의 난도가 다를 때도 있다. 집 IP로는 문제가 대단히 짜증나게 나오는데 VPN에 연결하면 쉽거나 그냥 통과하는 경우나 집 IP는 쉬운데 VPN으로는 계속해서 다시 시도하라고 묻는 경우도 있다.

2.3. v3 - 상호작용 점수



reCAPTCHA v3는 웹 사이트에서의 상호작용을 기반으로 작동한다. 즉 v2와는 다르게 직접 인증을 할 필요가 없다.
이 상호작용은 ARAE(Adaptive Risk Analysis Engine)를 기반으로 ''''좋은 상호작용(Good Interaction)''''과 '''상호작용(Interaction)''''으로 나누어지는데 전자의 경우 1.0의 점수를 주며, 후자는 0.0점을 준다. 점수가 높을수록 사람으로 확인하며, 낮으면 대부분 봇으로 식별한다. 공식적인 사용 예는 다음과 같다.
  • 홈페이지: 스크래퍼를 필터링하는 동안 관리 콘솔에서 트래픽을 일관적으로 볼 수 있다.
  • 로그인: 점수가 낮으면 이중 인증(2FA)나 이메일 인증을 요구해서 무차별 대입 공격(브루트포스)를 막을 수 있다.
  • 소셜: 악성 유저의 친구 요청을 제한하고 위험한 댓글을 검토로 보낼 수 있다.
  • 전자상거래: 봇보다 먼저 판매할 수 있고 위험한 사기 거래를 식별할 수 있다.
일단 대표적으로 알려진 식별 방법은 ''''마우스 추적''''이며, v2와 동일할 것으로 보인다. API 응답은 v2와 동일하게 true와 false가 있으며, action(중요), challenge_ts(타임스탬프), hostname, error -codes가 있다.
v2에서 체크박스가 숨어있다고 생각하면 된다.

3. 여담


로봇 캐릭터가 등장하는 대중 매체의 경우 2차 창작에서 로봇 캐릭터가 한 사이트에 접속하려다가 I'm not a robot 체크박스가 뜨는 것을 보고 멘붕하는 장면을 종종 볼수 있다. 아니면 사악한 웃음을 지으며 체크표시를 누르는 경우도 있다(...).


[1] 이런 식으로 자기도 모르는 새에 인간 고유의 지적 능력을 아주 조금이나마 갖다 바치도록 하는 기법을 ‘인간 기반 연산’이라고 한다. 이 분야의 선도주자는 미국 카네기 멜런 대학교의 루이스 본 안 교수. 이 교수는 reCAPTCHA 기술을 2009년에 구글에 팔았다.[링크삭제됨] [2] 영상에서 우리는 사악하지 않으며, 해킹을 지지하지 않는다고 했다. 캡차 자체가 말 그대로 튜링 테스트 중 하나이다보니 인공지능 연구를 하려면 필연적으로 만나게 된 문제였을 뿐이다. 영상을 제작한 연구팀은 사람의 인지심리를 파악하고 이해하는 인공지능을 개발하는 중이다.[3] 이것도 많이 발전한 것이다. v1 시절에는 마우스를 마구 흔들면 무조건 통과였다.[4] 다만 웹사이트 설정에 따라서는 이 방법을 사용하지 않고 바로 밑으로 넘기는 경우도 존재한다.[5] 공유기가 구형이라서 신호 수신율이 약하거나 핑이 잔뜩 튈 때 등등.[6] "로봇이 아닙니다" 라고 쓰여있는 박스 옆 빈칸에 체크 표시를 하기 위한 인증.[7] 다만 캡챠 인증 박스가 인증 없이 다시 뜨는 경우도 있으며 토론 개최, 문서 생성 및 삭제, 편집 요청, 문서 이동 등을 할 때는 로그인 사용자도 CAPTCHA 인증이 필요하다.