CAPTCHA

(로봇이 아닙니다에서 넘어옴)

공식 사이트
recaptcha-example.gif

  • reCAPTCHA 버전1

hero-recaptcha-demo.gif

1 개요

Completely Automated Public Turing test to tell Computers and Humans Apart[1]

사이트에서 사람이 접근하려고 하는 것인지 이 접근하는 것인지 판단하기 위하여 사용되는 테스트.

2 유래

1999년에 최고의 컴퓨터 과학 프로그램을 가진 대학을 뽑는 투표가 인터넷 상에서 이루어졌다. 이때 카네기 멜론 대학교매사추세츠 공과대학교의 학생들이 자동으로 투표를 하는 프로그램을 만들어 매우 많은 투표를 얻었는데, 이후 이런 것들을 방지하기 위해 만들어졌다고 한다.[2]

3 상세

테스트 방식은 매우 단순하다. 출력된 숫자나 글자를 있는 그대로 입력란에 입력하고 확인을 받으면 끝. 이런 작업은 프로그램으로서는 진행할 수 없고 오직 유동적으로 사고할 수 있는 사람만이 할 수 있기 때문에 이게 사람인지 봇인지를 판별하는데 유용하게 사용된다. 물론 화면상의 텍스트가 폰트를 있는 그대로 사용하는 거라면 프로그램도 당연히 맞힐수 있으므로 변형을 준다. 글자를 휘거나 글자의 가로획을 이어 버린다거나 등등. 아니면 호실/번호판등을 흐린 이미지로 보여주기도 한다. 너무 많이 바뀌어서 사람도 못알아볼 수 있다.

단순해 보이지만 특성상 프로그램이나 인공지능이 뚫기가 매우 어렵다. 정교한 CAPTCHA는 바둑을 인공지능으로 풀어내는 것 이상으로 어렵다고 봐야 한다. 이는 이미지 인식, 음성 인식 같은 분야들의 공통점이다. OCR만 해도 이 정도로 발전하기까지 20년 이상의 세월이 걸렸다(!) 20년전의 OCR은 그야말로...

특히 스팸 방지를 위해 많이 쓰인다. 스팸 소프트웨어의 자동 계정 등록을 막기 위해 계정 등록할 때 거치는 테스트로 이미지 단어를 보여준 뒤 그 단어를 쓰는 것으로 사용자의 명령을 수행하는 프로세스로 진행.

물론 소프트웨어가 진화하다보면 그냥 숫자나 글자는 인식해버리기도 하는지라, 가끔 단어를 시각적으로 변형시킨 복잡한 패턴을 사용하기 때문에 심하면 사람이 봐도 이게 글자인지 뭔지 모를 단어를 보여주고 입력하라고 하는 경우가 있다. 이런 경우를 대비해서 친절하게 해결책이 마련되어 있는데, 단어를 새로고침하거나 단어를 직접 외계어음성으로 들려주어 입력하게끔 하는 옵션을 이용하면 된다.[3]

일반적인 CAPTCHA 패턴은 사람은 쉽게 알아볼 수 있지만 스팸 소프트웨어나 봇은 자동으로 인식할 수 없다. 결과적으로는 자동 계정 생성이나 메일 자동발송등을 어렵게 하여 스팸을 차단하는 효과를 보게 되는 것. 사실 이런 게 가능한 이유는 CAPTCHA에 들어가는 연산의 대부분이 일단 실행된 뒤에는 되돌릴 수 없는, 비가역적 연산이기 때문이다. 그럴만도 한 게, 대부분이 글자를 비틀거나 회전시키는 등, 역연산이 존재하지 않는 방법으로 글자를 왜곡한다.[4] 같은 이유로 JPEG으로 저장된 이미지를 완벽하게 복원하는 것도 불가능하다.

하지만, 이미 문자 기반의 CAPTCHA중 일부는 연구자들에 의해 뚫린 상태. 이를 보완하기 위해 문자 대신 이미지를 변형시키는 형태도 연구되고 있다. 특히 이미지 기반의 CAPTCHA는 이미지 특성상 특정 문화에 익숙해져 있지 않으면 맞히기 어렵게 하는 경우(예 : 세종, 태극기, 무궁화 등)도 있어 해외 스패머들을 막을 수 있지만, 이미지를 이용하기 때문에 데이터베이스의 크기가 커질 수 있다는 단점을 지니고 있다.

사실, 대부분의 CAPTCHA들이 과학자 커뮤니티에 나와 있는 상용 프로그램을 사용하면 10-20%의 확률로 뚫린다. 10-20%면 낮아 보이지만, 컴퓨터의 특성상 1분에 수천, 수만, 수억번 시도해 볼 수 있기 때문에, 모든 CAPTCHA는 결국에는 뚫린다라고 말할 수 있다. 하지만, 해커라고 하기에도 단순무식해보이는 방법을 쓰는 사람들이 이런 컴퓨터 비전 소프트웨어를 쓰면서까지 CAPTCHA를 뚫으려고 하지는 않는데, 인터넷 상에는 CAPTCHA 안 뚫어도 쉽게 가입할 수 있는 대체 웹사이트나 서비스가 많기 때문.

CAPTCHA의 단점은 기본적으로 웹 접근성에 위배된다는 점이다. 특성상 이미지를 보고 텍스트화를 해야 되기 때문에, 이미지를 볼 수 없는 시각장애인은 CAPTCHA를 통과할 수 없다는 문제점이 있다. 시각장애인을 위한 텍스트 리더 프로그램은 이미지로 된 CAPTCHA를 읽지 못하기 때문. 이 때문에 요즘 CAPTCHA에는 음성으로 읽어주는 오디오 기능이 들어가 있다. 이 오디오 기능을 이용해서 프로그램으로 CAPTCHA를 뚫는 경우도 있다. 음성의 경우 정도의 차이는 있지만 명확하게 나오기 때문이다. 시각장애인이 아니더라도 눈이 조금 안 좋은 사람도 통과하기 매우 힘든 CAPTCHA들도 있는데다가 거의 로마자 알파벳이기 때문에 알파벳 모양에 익숙하지 않은 사람들, 노인들에게는 헬이 펼쳐진다. 시각과 청각이 모두 안 좋거나 스피커가 없는 환경일 경우도 문제.

설정에 따라서는 대소문자나 띄어쓰기 혹은 점 하나만 틀려도 까칠하게 오답처리할 수도 있고, 한두글자 정도는 틀려도 그냥 넘어가도록 설정할 수도 있다.

CAPTCHA를 설치했는데도 우르르 스팸 게시물이 등록되는 경우가 종종 있는데, 이건 CAPTCHA의 결함이라기보다는 게시판이나 서버에 보안 구멍이 있는 경우가 많다. 보안 구멍을 이용해서 CAPTCHA를 우회하는 것. 만약 CAPTCHA가 설치되어 있는데도 스팸 게시물이 많이 등록된다면 CAPTCHA만 맹신하지 말고 게시판이나 서버에 다른 경로로 게시물이 등록되는 것이 가능한지도 점검해 봐야 한다.

4 reCAPTCHA

설명 1 설명 2

CAPTCHA의 종류 중 많이 쓰이는 reCAPTCHA라는 것은 사실 구글에서 고서의 내용을 처리하는데(!) 사용되고 있다. 이것의 정체는 구글이 보유하고 있는 고서 스캔 데이터에서 자동 처리에 실패한 단어들의 이미지를 따온 뒤, 그것을 사람이 보고 입력하도록 함으로서 이미지를 텍스트로 바꾸는 프로그램이다. 고서 번역에 기여하자. 즉, 한마디로 말하자면 인간 OCR 프로그램. 네놈은 그냥 하루하루 구글신에게 텍스트를 갖다 바치는 OCR일 뿐이지![5] 이 때문에 reCAPTCHA에 나오는 단어 중에는 옛날에나 사용되던 좀 생소한 단어들이 섞여 있다.

reCAPTCHA에서 나오는 문제를 보면 꼭 단어가 두 개씩 짝을 이뤄서 나온다. 둘 중 하나는 이미 연산을 통해 데이터로 처리가 된 단어고, 나머지 하나는 아직 처리가 안 된 단어이다. 전자는 답이 밝혀져 있지만 후자는 답이 밝혀져있지 않다. 하지만 전자를 맞히면 (사람이 입력한 이상) 후자도 정답일 확률이 높다고 처리하는 식으로 연산하는 것.

reCAPTCHA는 무료로 쓸 수 있다.

2014년 4월 10일에 중국 연구팀이 reCAPTCHA의 해킹을 성공했다. [6]

5 no CAPTCHA

이 문단은 로봇이 아닙니다(으)로 검색해도 들어올 수 있습니다.

나무위키에 적용된 CAPTCHA에 대해서는 나무위키/CAPTCHA 문서를 참조하십시오.

no CAPTCHA 개발자 블로그 글 공식 홈페이지 관련 기사

나무위키를 비롯한 여러 웹사이트에서 채택한 방식. 기존의 캡차는 사람조차 알아보기 힘들어서 가끔 사람도 오타를 낸다. 이러한 문제를 해결하기 위해 구글에서는 2014년 12월 노 캡차 (No CAPTCHA)를 개발했다.


통상적인 경우 사람 특유의 마우스 포인팅, 클릭/터치 패턴, 쿠키 값, 기타 알려지지 않은 구분방법을 통해 구별해 낸다.


만약 클릭 단계에서 사람임을 확인할 수 없었다면 맞는 그림 찾기가 실행된다. 최근 대세가 되고 있는 사물 인식 까지도 전 세계 사람들을 써먹으려나 보다.


그 때마저도 사람과 구분이 안된다면 전통적인 캡차를 실행한다.

어째 4chan에서는 가끔씩 개그의 대상이 되기도 한다. 햄버거를 고르라는데 샌드위치까지 골라야 하거나, 지속적으로 피자캡차만 나와서 배가 고파진다는 등.

사물 인식은 사진이 작고 잘 보이지 않아 어려울 때도 있다. 생전 들어본 적도 없는 것을 고르라고 하면 당황스럽다. 또한 다른 언어 사용자들도 어려움을 겪기도 하는데, 한글 표시중에서 당구대(pool table)를 고르라는 캡챠가 "수영장 탁자를 고르시오"로 오역되었다. 이는 수영장과 당구가 영어로 동음이의어(pool)라서 벌어진 해프닝.

그리고 가끔 고양이 코스프레한 강아지가 나와서 흠좀무한 상황이 나오기도 한다. 이 때는 강아지로 인식된다.

CORSqksWsAErkao.jpg
나는 로봇이 아니에요라는 표현 때문에 가끔은 이런 이미지가 나오기도 한다.

사람을 로봇 취급해 싫어하는 사람도 있다고 한다. 이럼 체크 안하는 로봇이 얼마나 있을까?? 로봇이 아닙니다 개새끼 해봐 개새끼

'로봇이 아닙니다'라는 문장 때문에 로봇이나 인조인간인 여러 캐릭터들이 인터넷을 쓰지 못한다는 드립들도 있다.

'표지판이 있는 타일을 모두 누르세요', '매장 정면을 모두 누르세요' 같은[7]질문이 나오기도 하는데, 심히 귀찮다. 기존의 질문에 비해 간단하긴 하지만, 6개의 타일을 눌러야 하는 질문이 꽤 자주 나오기 때문. 간혹가다 타일 전체(...)를 눌러야 되는 질문이 나오기도 한다.

6 한국에서는?

한국에서는 좀처럼 보기 힘든 인증 시스템이기도 하다. 한국은 기본적으로 대부분의 사이트에 가입시 주민등록번호[8], 아이핀이나 휴대폰 번호, 공인인증서 같은 인증 가능한 제한적 수단을 요구하기 때문에 굳이 CAPTCHA가 필요하지 않은 상황이다. 정 스패머가 이런 과정을 거쳐 정상 등록을 한다손 쳐도 그냥 그 계정을 차단해버리면 그만이다. 인증용으로 사용되는 특정 아이핀이나 전화번호 등에 아이디 생성 개수 제한이 걸려있기 때문에 돌려쓰기도 불가능한고로 오래 버티기도 힘들다. 놀라운 한국의 시스템... 다른 나라들도 본받자. (뭐? 계정을 만들기위해 계정을 만든다고?)

따라서 매우 편하고 좋다고 생각할 수 있겠지만... 대신 반대로 사이트 자체의 보안이 취약해진다는 문제가 지적되고 있다. 이런 식으로 인증처리를 할 경우 대부분 저주받은 ActiveX를 사용하기 때문에 악성프로그램이 유포될 가능성이 높아지는데다가, 전화번호등의 개인정보가 사이트에 저장이 되니 해킹당하면 개인의 신상정보가 속절없이 털리기 때문이다.

대신 CAPTCHA를 사용하면 일단 가입할 때 인증 자체는 확실히 되고, 또 사이트가 털려봐야 그 계정만 못쓰게 될 뿐 개인정보는 애초에 사이트에 저장이 되어있지 않으니 털릴 염려가 완전히 없어진다. ActiveX 같은 낡은 유통경로를 사용하는 것도 아니니 CAPTCHA를 통해 악성 코드가 유입될 가능성도 전혀 없다.[9]

한국에서는 이 CAPTCHA 대신에 그냥 아에 회원가입을 유도하는 방법을 사용해서 잘 사용되지 않는 때도 있었다. 주민번호 같은 고급 개인 정보를 너무 쉽게 수집하는 관습에 젖어서 귀찮게 CAPTCHA 같은 걸 쓰느니, 주민번호 수집을 바탕으로 회원 가입을 하면 이는 곧 사람인 것이다라는 식으로 처리한 것. 이후에 개인정보 유출 문제가 심각해져 사용이 크게 제한되면서 주민번호 같은 고급 개인 정보는 그냥 수집할 수 없고 인증 업체 등을 통하는 것으로 변경 되었다.[10] 문제는 이런 인증 업체들을 이용하는 것은 공짜가 아니라는 것. 이에 따라 중소규모 사이트의 경우는 굳이 별도의 개인 인증을 요구하기 보다는 CAPTCHA를 이용해 인증 과정을 사용하는 경우가 늘어났다. 나무위키 역시 좋은 예시 중 하나이다.

하지만 이런 CAPTCHA는 적지 않은 사람들, 이를테면 노인계층에게 매우 문턱이 높다는 게 간과되고 있는 문제이다.

파일:JP67RMC.jpg
seX

파일:Attachment/CAPTCHA/i4385157094.jpg
븃신[11]

파일:Attachment/CAPTCHA/5521 485 0.jpg
붷큐

게임 사이트에서 CAPTCHA를 이용해 인증을 하게 되는데, 한 게임 사이트에서는 CAPTCHA가 유저에게 욕을 썼다. 비밀번호 잊어버린 것도 서러운데!

파일:Attachment/CAPTCHA/5522 363 5.jpg
씌쁨


처제덜따먹...뭐?

던전 앤 파이터에서는 게임 내에서 클린패드를 입력할 수 있는데, 여기서 부적절한 단어가 나왔다.

54E16BC43942FD000A?.jpg
처녀굿바이

54E16BCD39462E0007?.jpg
어머니벌레 맘충...?

마비노기 영웅전에서도 나왔다. 마비노기 패륜전

i2802402913.jpg
니어미원 이쯤되면 고의인것 같다

전체 이용가 게임인 메이플스토리의 매크로 방지 시스템이자 아이템인 거짓말탐지기에도 많이 나온다. 자세한 것은 거짓말탐지기 문서 참고.
  1. 컴퓨터와 사람을 구분짓기 위한 완전 자동 튜링 테스트라는 뜻이다. 직관적인 의미전달도 의도한 것 같다. CAPTure(d) + CHAracter
  2. 출처는 리더스뱅크 Level3 교재. 별게 다나온다
  3. 음성 기능은 원래 시각장애인에 대한 배려 차원에서 들어간 것이다. 음성 인식을 하는 봇이면 어떨까
  4. 의심된다면 포토샵에서 아무 필터나 이용해보자. 대부분은 한번 이미지가 일그러지면 실행을 취소하지 않는 한 절대로 완벽히 되돌릴 수 없다.
  5. 이런 식으로 자기도 모르는 새에 인간 고유의 지적 능력을 아주 조금이나마 갖다 바치도록 하는 기법을 ‘인간 기반 연산’이라고 한다. 이 분야의 선도주자는 미국 카네기 멜론 대학교의 루이스 본 안 교수. 이 교수는 reCAPTCHA 기술을 2009년에 구글에 팔았다.
  6. 중국 해킹팀이 아니라 중국의 연구팀이다... 영상에서도 우리는 사악하지 않으며, 해킹을 지지하지 않는다고 명시한다. 캡차 자체가 말 그대로 튜링테스트 중 하나이다보니 인공지능 연구를 하려면 필연적으로 만나게 된 문제였을 뿐이다. 영상을 제작한 연구팀은 사람의 인지심리를 파악하고 이해하는 인공지능을 개발하는 중이다.
  7. 크리스마스 시즌에는 그림에서 선물 상자를 찾는 문제로 나온다
  8. 개인정보 보호법 개정에 따라서 이제는 회원가입시 주민번호를 받을 수 없다
  9. 물론 악의적으로 심으려고만 한다면 할 수야 있겠지만. 그렇게 따지면 못할 건 없는 거니까, 제외.
  10. 이 마저도 2016년 현재 주민번호가 아닌 아이핀으로만 가능한것으로 보인다. 자세한 내용은 추가바람
  11. 출처아이온 서버별 텔레마커스 게시판에 누군가가 비번 틀렸다고 엔씨가 욕했다는 식으로 제목을 쓴 글에 나온 이미지.