1. 개요
reCAPTCHA 버전 1.0 | Google의 reCAPTCHA 2.0 |
1999년에 최고의 컴퓨터 과학 프로그램을 가진 대학을 뽑는 투표가 인터넷 상에서 이루어졌다. 이때 카네기 멜런 대학교와 매사추세츠 공과대학교의 학생들이 자동으로 투표를 하는 프로그램을 만들어 매우 많은 투표를 얻었는데, 이후 이런 것들을 방지하기 위해 만들어졌다고 한다.
2000년 페이팔 CTO였던 맥스 레브친이 최초로 상용화하면서 산업계에서도 보편화되기 시작한다.
2. 원리
테스트 방식은 매우 단순하다. 출력된 숫자나 글자를 있는 그대로 입력란에 입력하고 확인을 받으면 끝이다.이런 작업은 단순히 틀에 박힌 내에서만 특화된 프로그램으로서는 진행할 수 없고 유동적으로 사고할 수 있는 사람만이 할 수 있기 때문에 이게 사람인지 로봇인지를 판별하는데 유용하게 사용된다.
물론 화면 상의 텍스트가 폰트를 있는 그대로 사용하는 거라면 프로그램도 당연히 맞힐 수 있으므로 변형을 준다. 글자를 휘거나 글자의 가로 획을 이어 버린다거나 등등. 아니면 호실/번호판 등을 흐린 이미지로 보여준다. 나무위키가 사용하는 구글 리캡차(버전 2)의 경우에는 뒤에도 나오겠지만 16개의 무작위 혹은 분할된 카드를 제시한 뒤 교통 표지판, 신호등, 자동차, 버스, 오토바이, 자전거, 횡단보도, 계단 등등이 있는 사진을 고르라고 한다. 1번 하고 통과될때도 있지만 간혹 2~3번, 심하면 5번 넘어까지 고르라고 한다. 로그인 유저의 경우 일정 횟수가 넘어가면 그냥 통과시켜준다.
3. CAPTCHA 솔루션의 종류
- Google reCAPTCHA: 캡차의 원조이자 가장 보편적으로 사용되는 CAPTCHA이다. 문서 참조.
- hCaptcha: 구글이 reCAPTCHA를 사용자의 웹사이트 접속정보 등을 추적하는 용도로 사용한다는 비판을 받자, 대항마로 떠오른 캡차 솔루션. Cloudflare나 디스코드에 도입되면서 유명해졌다. 9개의 이미지 중 일치하는 것을 골라야 하는 reCAPTCHA v2와 거의 같은 UI를 가지고 있다. 그러나 대항마로 떠오른 것이 무색하게 한때 이미지 검수를 제대로 하지 않아 아무리 맞게 골라도 거부되는 것으로 악명이 높았으며, 이걸 해결하겠답시고 통과 불가 보고 기능을 추가하고는 사용자가 보고를 보내기만 하면 적당히 몇 개를 아무거나 고르면 통과시켜주는 어처구니없는 행태를 보이다 걸리는 등 사용자 경험과 보안 양면에서 최악이었다. 최근에는 주로 AI가 생성한 이미지를 보여주면서 고르라고 하는데, 캡차 결과를 이미지 생성 AI를 향상시키는 용도로 사용하는 것으로 추정된다. 효과가 있었는지 기존보다는 훨씬 나아졌다. 한국어 번역이 다소 조악한 편으로, 최근에는 눈밭에 있는 늑대의 그림을 보여주며 "냉동액체"를 고르라고 지시했던 것이 유머글로 떠돌기도 했다.
- Arkose MatchKey: 그림의 방향을 회전시키는 형태의 캡차.
- GeeTest Captcha: 글자를 순서대로 클릭하거나, 퍼즐 조각을 이동시켜 그림을 완성시키는 형태의 캡차. 중국산으로 주로 중국 업체에서 많이 사용한다. 2023년 8월 15일 잠깐 나무위키에 도입되어 이미지 파일을 클릭 시 등장했었으나, 얼마 안 가 리캡챠로 대체되었다.
- 기타 텍스트/오디오 기반 캡차: 주로 PHP 기반으로 개발되었으며 이미지는 임의로 생성한 글자에 노이즈와 변형을 삽입하는 방식으로 OCR을 회피했으며 오디오는 오디오 파일에 임의로 오류를 삽입해 노이즈를 삽입하는 방식으로 자동화를 피했다. 제로보드나 XpressEngine 등 오픈 소스 게시판 CMS에 주로 사용되었으나 OCR 기술의 발달로 사실상 사장된 방식이다.[1]
- Cloudflare Turnstile: Cloudflare의 Turnstile은 사용자에게 이미지 퍼즐을 풀 것을 요구하지 않는다. Turnstile은 AI로 그동안 인간이 캡챠를 통과한 사례를 학습한 머신 러닝 모델을 통해 봇을 구분한다. 체크 박스를 클릭하지 않고도 봇인지 아닌지 구분할 수 있으며, 의심스러운 경우에 한하여 단순히 버튼을 클릭하도록 하는 박스를 표출할 수 있도록 하는 등 다양한 위젯 옵션도 제공된다. 2023년 10월부터 모든 이용자는 무료로 이용할 수 있다. Developers
4. 효과
한국 사진이 등장한 디스코드의 reCAPTCHA. |
특히 스팸메일 방지를 위해 많이 쓰인다. 스팸 소프트웨어의 자동 계정 등록을 막기 위해 계정을 등록할 때 거치는 테스트로 이미지 단어를 보여준 뒤 그 단어를 쓰는 것으로 사용자의 명령을 수행하는 프로세스로 진행.
물론 소프트웨어가 진화하다 보면 그냥 숫자나 글자는 인식해 버리기도 하는지라,[2] 가끔 단어를 시각적으로 변형시킨 복잡한 패턴을 사용하기 때문에 심하면 사람이 봐도 이게 글자인지 뭔지 모를 단어를 보여주고 입력하라고 하는 경우가 있다. 이런 경우를 대비해서 친절하게 해결책이 마련되어 있는데, 단어를 새로고침하거나 단어를 직접
일반적인 CAPTCHA 패턴은 사람은 쉽게 알아볼 수 있지만 스팸 소프트웨어나 봇은 자동으로 인식할 수 없다. 결과적으로는 자동 계정 생성이나 메일 자동 발송 등을 어렵게 하여 스팸을 차단하는 효과를 보게 되는 것. 사실 이런 게 가능한 이유는 CAPTCHA에 들어가는 연산의 대부분이 일단 실행된 뒤에는 되돌릴 수 없는 비가역적 연산이기 때문이다. 그럴 만도 한 게, 대부분이 글자를 비틀거나 회전시키는 등 역연산이 존재하지 않는 방법으로 글자를 왜곡한다.[4] 같은 이유로 JPEG로 저장된 이미지를 완벽하게 복원하는 것도 불가능하다.
하지만, 이미 문자 기반의 CAPTCHA 중 일부는 연구자들에 의해 뚫린 상태. 이를 보완하기 위해 문자 대신 이미지를 변형시키는 형태도 연구되고 있다. 특히 이미지 기반의 CAPTCHA는 이미지 특성상 특정 문화에 익숙해져 있지 않으면 맞히기 어렵게 하는 경우(예: 태극기, 무궁화 등)도 있어 해외 스패머들을 막을 수 있지만 이미지를 이용하기 때문에 데이터베이스의 크기가 커질 수 있다는 단점을 지니고 있다.
사실, 대부분의 CAPTCHA들이 과학자 커뮤니티에 나와 있는 상용 프로그램을 사용하면 10-20%의 확률로 뚫린다. 10-20%면 낮아 보이지만, 컴퓨터의 특성상 수도 없이 대입해 볼 수 있기 때문에 모든 CAPTCHA는 결국에는 뚫린다고 말할 수 있다. 하지만 해커들이 이런 컴퓨터 비전 소프트웨어를 쓰면서까지 CAPTCHA를 뚫으려고 하지는 않는데, 인터넷 상에는 CAPTCHA 안 뚫어도 쉽게 가입할 수 있는 대체 웹사이트나 서비스가 많고, CAPTCHA를 뚫을 수 있을 만한 AI 기술을 사용하기 위해 필요한 비용이 높기 때문에 최대한 적은 비용으로 최대한 많은 시도를 해야 하는 해커들 입장에서는 해킹에 성공해도 이득을 보기 어렵게 되기 때문이다. 위조지폐 제조를 원천 차단하는 것을 포기하는 대신, 액면가보다 제조비용이 더 들게 해서 위조를 포기하게 만드는 것과 비슷한 상황인 셈이다.
CAPTCHA의 단점은 기본적으로 웹 접근성을 약화시킨다는 점이다. 특성상 이미지를 보고 텍스트를 입력해야 하기 때문에, 이미지를 볼 수 없는 시각장애인은 CAPTCHA를 통과할 수 없다는 문제점이 있다. 시각장애인을 위한 텍스트 리더 프로그램은 이미지로 된 CAPTCHA를 읽지 못하기 때문이다. 이 때문에 요즘 CAPTCHA에는 음성으로 읽어주는 오디오 기능이 들어가 있다. 이 오디오 기능을 이용해서 프로그램으로 CAPTCHA를 뚫는 경우도 있다. 음성의 경우 정도의 차이는 있지만 명확하게 나오기 때문이다. 시각장애인이 아니더라도 눈이 조금 안 좋은 사람도 통과하기 매우 힘든 CAPTCHA들도 있는 데다가 거의 로마자 알파벳이기 때문에 알파벳 모양에 익숙하지 않은 사람들, 노인들에게는 헬이 펼쳐진다. 알파벳이 어디가 어때서 하는 사람들에게는, 일본어 사이트에서 캡차를 히라가나로 입력하게 해 놓은 것을 직접 풀어보면 된다. 이건 뭐 비슷한 그림 찾기가 된다. 시각과 청각이 모두 안 좋거나 스피커가 없는 환경일 경우도 문제.
설정에 따라서는 대소문자나 띄어쓰기 혹은 점 하나만 틀려도 까칠하게 오답 처리할 수도 있고, 한 두 글자 정도는 틀려도 그냥 넘어가도록 설정할 수도 있다.
CAPTCHA를 설치했는데도 우르르 스팸 게시물이 등록되는 경우가 종종 있는데, 이건 CAPTCHA의 결함이라기보다는 게시판이나 서버에 보안 구멍이 있는 경우가 많다. 보안 구멍을 이용해서 CAPTCHA를 우회하는 것. 만약 CAPTCHA가 설치되어 있는데도 스팸 게시물이 많이 등록된다면 CAPTCHA만 맹신하지 말고 게시판이나 서버에 다른 경로로 게시물이 등록되는 것이 가능한지도 점검해 봐야 한다.
흔히 외국 사이트에서 볼 수 있는 구글 reCAPTCHA의 경우 신호등, 자동차, 횡단보도 등등의 이미지를 클릭하라고 하는데 분명히 존재함에도 불구하고 안 되는 경우라던가, 어중간하게 걸쳐있는 목표 때문에 체크를 해야 한다와 안 해야 한다는 의견차로 수십 번을 해야 하는 경우도 있다. 가장 욕 나오는 케이스는 사진 화질이 구린 것. 음영 등의 문제로 이게 맞는지 아닌지 확신하기가 어렵다.
나무위키에서도
캡차를 뚫기 위해 인건비가 저렴한 국가에서 캡차 입력 알바나 전문업체를 고용하여 캡차를 푸는 업자들이 등장하기도 했다. 보통 이런 알바들은 한화로 환산하면 시급 몇백 원 ~ 천원 남짓의 박봉으로 일하지만, 일단 별다른 교육 없이 글만 읽을 줄 알면 할 수 있는 일인데다, 경제 사정이 좋지 않은 개발도상국에서는 시급 1천원 정도면 나쁜 조건이 아닌 경우도 있기 때문에...
인공지능을 동원하여 푸는 경우도 있다고 하며, 최근엔 AI 기술의 발달로 AI가 사람보다 더 빠르고 정확하게 CAPTCHA를 풀 수 있다는 연구결과도 있다.
5. 밈
봇을 구분한다는 특징 때문에 매트릭스 시리즈에서 로봇이 인류를 지배하는 매트릭스와 엮이는 밈도 있다.
또한 전화번호부 상에 있는 사라 코너 주소에 캡챠를 썼으면 터미네이터가 암살에 실패했을 것이라는 개드립이 서양에서 유행했다.
물론 진지하게 말하면 작중 묘사된 T-800의 OCR 능력이 워낙 뛰어나 문자 기반 캡챠 정도로는 막을 수 없었다.
6. 한국에서
한국에서는 대부분의 사이트에 가입 시 아이핀이나 휴대폰 번호, 공인인증서 같은 제한적인 수단을 주로 요구하기 때문에 CAPTCHA를 쓰는 경우가 적었다.[5] 정 스패머가 이런 과정을 거쳐 정상 등록을 한다고 쳐도 그냥 그 계정을 차단해버리면 그만이다. 인증용으로 사용되는 특정 아이핀이나 전화번호 등에 아이디 생성 개수 제한이 걸려있기 때문에 돌려 쓰기도 불가능한 고로 오래 버티기도 힘들다.따라서 편리하고 좋다고 생각할 수 있겠지만, 대신 반대로 사이트 자체의 보안이 취약해진다는 문제가 지적되고 있다. 이런 식으로 인증 처리를 할 경우 전화번호 등의 개인정보가 사이트에 저장이 되니 해킹당하면 개인의 신상정보가 속절 없이 털리기 때문이다. 대신 CAPTCHA를 사용하면 일단 가입할 때 인증 자체는 확실히 되고, 또 사이트가 털려봐야 그 계정만 못쓰게 될 뿐 개인정보는 애초에 사이트에 저장이 되어있지 않으니 털릴 염려가 완전히 없어진다.
한국에서는 CAPTCHA 대신에 그냥 아예 회원 가입을 유도하는 방법을 사용해서 잘 사용되지 않던 때도 있었다. 귀찮게 CAPTCHA 같은 걸 쓰느니, 주민번호 수집을 바탕으로 회원 가입을 하면 이는 곧 사람인 것이라는 식으로 처리한 것. 이후에 개인정보 유출 문제가 심각해져 사용이 크게 제한되면서 주민번호 같은 고급 개인 정보는 그냥 수집할 수 없고 인증 업체 등을 통하는 것으로 변경되었다.[6] 문제는 이런 인증 업체들을 이용하는 것은 공짜가 아니라는 것. 이에 따라 중소 규모 사이트의 경우는 굳이 별도의 개인 인증을 요구하기 보다는 CAPTCHA를 이용해 인증 과정을 사용하는 경우가 늘어났다. 나무위키에서는 2023년 8월 15일 이후 문서를 편집하려 하거나 문서 리비전을 비교하려 할 때마다 중국산 퍼즐 캡차가 떠서 굉장히 불편해졌다.
하지만 CAPTCHA는 적지 않은 사람들, 이를테면 노인 계층에게 매우 문턱이 높다는 게 간과되고 있는 문제다.
네이버 뉴스 댓글 서비스에서 비정상적인 활동이 감지[7]가 될 때, 상당히 난이도가 높은 캡차 문제를 낸다. 음성도 지원된다.
디시인사이드의 글쓰기, 댓글 쓰기, 추천, 비추천의 경우에도 가끔가다 매니저, 운영자의 설정이나 통신사IP를 이용하면 자동 입력 방지 캡차를 쓴다. 한글[8], 알파벳(소문자), 숫자[9] 1~8개[10]의 단어가 랜덤한 방향으로 뒤틀려져 나온다.
네이버 지식인에서 대답 중 비정상적인 부분[11]이 나오면 캡차를 쓴다.
카카오 로그인에도 사용되고 있다.
7. 문제점
자세한 내용은 CAPTCHA/문제점 문서 참고하십시오.8. 부적절한 단어들
단어를 무작위로 만들어 낼 수 있어서인지 아래 사진들과 같이 부적절한 단어가 나오기도 하며 인터넷 등지에서 유머글로 종종 올라온다.8.1. 던전앤파이터
게임 내에서 클린패드를 입력할 수 있으며 여기서 부적절한 단어가 나왔다.- 년게씌쁨렬[12]
- 처제덜따먹[13]
- 밟근헤씩팔[14]
8.2. 마비노기 영웅전
8.3. 메이플스토리
자세한 내용은 거짓말 탐지기(메이플스토리) 문서 참고하십시오.전체 이용가 게임인 메이플스토리의 매크로 방지 시스템이자 아이템인 거짓말 탐지기에도 많이 나온다.[15] 자세한 것은 거짓말 탐지기 문서 참고. 여기에서는 타 커뮤니티 사이트에 돌 정도로 유명한 것만 넣는다.
8.4. 엔씨소프트
게임 사이트에서 CAPTCHA를 이용해 인증을 하는 과정에서 CAPTCHA가 유저에게 욕을 썼다.8.5. 기타
- 이런 것도 있다
미쳤습니까, 휴먼?당연히 진짜 시각장애인들의 접근성을 위한 프로그램이 읽으라고 넣은 문구다.근데 시각장애인이 저걸 볼 수 있겠냐고
9. 그 외
- AI가 CAPTCH테스트를 클리어 했다고 한다. 물론 직접 클리한 것은 아니고 인간을 이용했다고 한다.
인간 알바 고용한 AI...감히 별점도 줬다
10. 관련 문서
[1] 자동 인식이 불가능한 난이도는 사람도 읽거나 알아보기 힘들고 사람이 알아볼 수 있는 수준이면 자동 인식도 가능한 문제점이 있다.[2] 실제로 최근 프로그램들은 글자를 인식해서 쓰며 게임들을 이런 실시간 온스크린 번역 프로그램으로 한국어로 플레이하는 것이 그 예.[3] 음성 기능은 원래 시각장애인에 대한 배려 차원에서 들어간 것이다. 음성 인식을 방지하기 위해 보통 배경에 소음을 깔아 놓고 들려준다.[4] 의심된다면 포토샵에서 아무 필터나 이용해보자. 대부분은 한번 이미지가 일그러지면 실행을 취소하지 않는 한 절대로 완벽히 되돌릴 수 없다.[5] 과거에는 주민등록번호도 수집했으나, 개인정보 보호법 개정에 따라서 이제는 회원 가입 시 주민번호를 받을 수 없다.[6] 이후에는 주민번호가 아닌 아이핀과 휴대폰 번호로만 가능하다.[7] 예를 들면 IP 충돌, 매크로 활동 의심 동작 등.[8] 받침이 없는 단어[9] 숫자 0은 나오지 않는다.[10] 약 2018년까지 중순까지는 10개까지도 나왔다.[11] 같은 대답 등[12] 너 개 XXX[13] 처제 덜 XX[14] 박근혜 XX[15] 거짓말 탐지기에 나오는 글자들은 메이플스토리에 나오는 몬스터, NPC의 이름들의 일부가 합쳐진 것인데 가끔 합치면 전체 이용가에 부적절한 문장이 만들어질 때도 있다.[16] 몬스터 중에 '어미원숭이'가 있어서 일어난 현상이다.[17] 출처는 아이온 서버별 텔레마커스 게시판에 누군가가 비번 틀렸다고 엔씨가 욕했다는 식으로 제목을 쓴 글에 나온 이미지. 2013년 11월 이후부터 돌기 시작했다,