CAPTCHA

 


1. 정의
2. 설명
3. 상세
5. 한국에서
6. 문제점
7. 부적절한 단어들


1. 정의


'''C'''ompletely '''A'''utomated '''P'''ublic '''T'''uring test to tell '''C'''omputers and '''H'''umans '''A'''part / '''CAPT'''ure(d) + '''CHA'''racter
'''컴퓨터와 사람을 구분 짓기 위한 완전 자동 튜링 테스트.''' 읽을 때는 [캡처] 혹은 [캅차]로 읽으면 될 것이다.

2. 설명


[image]
[image]
reCAPTCHA 버전 1.0
GooglereCAPTCHA 2.0
[image]
Discord에 한국 사진이 등장한 reCAPTCHA. 희귀한 장면이다.
웹사이트에서 사람이 접근하려고 하는 것인지 이 접근하는 것인지 판단하기 위하여 사용되는 테스트다.
2010년대 들어 각종 사이트에서 자주 사용하기에 CAPTCHA라는 명칭 자체는 일반인들에게도 어느 정도 알려졌지만 CAPTCHA의 정확한 뜻을 알고 있는 사람은 전공자 혹은 관련 직종에 종사하고 있는 사람이 아닌 이상 없다고 봐도 무방하다.
1999년에 최고의 컴퓨터 과학 프로그램을 가진 대학을 뽑는 투표가 인터넷 상에서 이루어졌다. 이때 카네기 멜런 대학교매사추세츠 공과대학교의 학생들이 자동으로 투표를 하는 프로그램을 만들어 매우 많은 투표를 얻었는데, 이후 이런 것들을 방지하기 위해 만들어졌다고 한다.

3. 상세


테스트 방식은 매우 단순하다. 출력된 숫자나 글자를 있는 그대로 입력란에 입력하고 확인을 받으면 끝. 이런 작업은 프로그램으로서는 진행할 수 없고 오직 유동적으로 사고할 수 있는 사람만이 할 수 있기 때문에 이게 사람인지 봇인지를 판별하는데 유용하게 사용된다. 물론 화면 상의 텍스트가 폰트를 있는 그대로 사용하는 거라면 프로그램도 당연히 맞힐 수 있으므로 변형을 준다. 글자를 휘거나 글자의 가로 획을 이어 버린다거나 등등. 아니면 호실/번호판 등을 흐린 이미지로 보여준다. 나무위키가 사용하는 구글 리캡챠(버전 2)의 경우에는 뒤에도 나오겠지만 16개의 무작위, 혹은 분할된[1] 카드를 제시한 뒤, 교통 표지판이 있는 사진을 고르라고 한다. 교통 표지판 외에도 자동차가 있는 사진이나 가게 정면이 있는 사진을 고르라 한다[2]. 간혹 2~3번, 심하면 '''5번까지''' 고르라고 한다. 이는 문서를 생성할 때 볼 수 있다. 로그인 유저의 경우 일정 횟수 이상 하면 그냥 넘겨준다.
단순해 보이지만 특성상 프로그램이나 인공지능이 뚫기가 매우 어렵다. 정교한 CAPTCHA는 바둑을 인공지능으로 풀어내는 것 이상으로 어렵다고 봐야 한다. 이는 이미지 인식, 음성 인식 같은 분야들의 공통점이다. OCR만 해도 이 정도로 발전하기까지 20년 이상의 세월이 걸렸다.
특히 스팸메일 방지를 위해 많이 쓰인다. 스팸 소프트웨어의 자동 계정 등록을 막기 위해 계정 등록할 때 거치는 테스트로 이미지 단어를 보여준 뒤 그 단어를 쓰는 것으로 사용자의 명령을 수행하는 프로세스로 진행.
물론 소프트웨어가 진화하다 보면 그냥 숫자나 글자는 인식해버리기도 하는지라[3], 가끔 단어를 시각적으로 변형시킨 복잡한 패턴을 사용하기 때문에 심하면 사람이 봐도 이게 글자인지 뭔지 모를 단어를 보여주고 입력하라고 하는 경우가 있다. 이런 경우를 대비해서 친절하게 해결책이 마련되어 있는데, 단어를 새로고침하거나 단어를 직접 음성으로 들려주어 입력하게 하는 옵션을 이용하면 된다.[4]
일반적인 CAPTCHA 패턴은 사람은 쉽게 알아볼 수 있지만 스팸 소프트웨어나 봇은 자동으로 인식할 수 없다. 결과적으로는 자동 계정 생성이나 메일 자동 발송 등을 어렵게 하여 스팸을 차단하는 효과를 보게 되는 것. 사실 이런 게 가능한 이유는 CAPTCHA에 들어가는 연산의 대부분이 일단 실행된 뒤에는 되돌릴 수 없는, '''비가역적 연산'''이기 때문이다. 그럴 만도 한 게, 대부분이 글자를 비틀거나 회전시키는 등, 역연산이 존재하지 않는 방법으로 글자를 왜곡한다.[5] 같은 이유로 JPEG로 저장된 이미지를 완벽하게 복원하는 것도 불가능하다.
하지만, 이미 문자 기반의 CAPTCHA 중 일부는 연구자들에 의해 뚫린 상태. 이를 보완하기 위해 문자 대신 이미지를 변형시키는 형태도 연구되고 있다. 특히 이미지 기반의 CAPTCHA는 이미지 특성상 특정 문화에 익숙해져 있지 않으면 맞히기 어렵게 하는 경우(예: 태극기, 무궁화 등)도 있어 해외 스패머들을 막을 수 있지만 이미지를 이용하기 때문에 데이터베이스의 크기가 커질 수 있다는 단점을 지니고 있다.
사실, 대부분의 CAPTCHA들이 과학자 커뮤니티에 나와 있는 상용 프로그램을 사용하면 10-20%의 확률로 뚫린다. 10-20%면 낮아 보이지만, 컴퓨터의 특성상 수도 없이 대입해 볼 수 있기 때문에 모든 CAPTCHA는 결국에는 뚫린다고 말할 수 있다. 하지만 해커들이 이런 컴퓨터 비전 소프트웨어를 쓰면서까지 CAPTCHA를 뚫으려고 하지는 않는데, 인터넷 상에는 CAPTCHA 안 뚫어도 쉽게 가입할 수 있는 대체 웹사이트나 서비스가 많기 때문.
CAPTCHA의 단점은 기본적으로 웹 접근성에 위배된다는 점이다. 특성상 이미지를 보고 텍스트를 입력해야 하기 때문에, 이미지를 볼 수 없는 시각장애인은 CAPTCHA를 통과할 수 없다는 문제점이 있다. 시각장애인을 위한 텍스트 리더 프로그램은 이미지로 된 CAPTCHA를 읽지 못하기 때문. 이 때문에 요즘 CAPTCHA에는 음성으로 읽어주는 오디오 기능이 들어가 있다. 이 오디오 기능을 이용해서 프로그램으로 CAPTCHA를 뚫는 경우도 있다. 음성의 경우 정도의 차이는 있지만 명확하게 나오기 때문이다. 시각장애인이 아니더라도 눈이 조금 안 좋은 사람도 통과하기 매우 힘든 CAPTCHA들도 있는 데다가 거의 로마자 알파벳이기 때문에 알파벳 모양에 익숙하지 않은 사람들, 노인들에게는 헬이 펼쳐진다. 알파벳이 어디가 어때서 하는 사람들에게는, 일본어 사이트에서 캡차를 히라가나로 입력하게 해 놓은 것을 직접 풀어보면 된다. 이건 뭐 비슷한 그림 찾기가 된다. 시각과 청각이 모두 안 좋거나 스피커가 없는 환경일 경우도 문제.
설정에 따라서는 대소문자나 띄어쓰기 혹은 점 하나만 틀려도 까칠하게 오답 처리할 수도 있고, 한 두 글자 정도는 틀려도 그냥 넘어가도록 설정할 수도 있다.
CAPTCHA를 설치했는데도 우르르 스팸 게시물이 등록되는 경우가 종종 있는데, 이건 CAPTCHA의 결함이라기보다는 게시판이나 서버에 보안 구멍이 있는 경우가 많다. 보안 구멍을 이용해서 CAPTCHA를 우회하는 것. 만약 CAPTCHA가 설치되어 있는데도 스팸 게시물이 많이 등록된다면 CAPTCHA만 맹신하지 말고 게시판이나 서버에 다른 경로로 게시물이 등록되는 것이 가능한지도 점검해 봐야 한다.
나무위키에서는 이것을 남발해서 문제다. 심하면 5번, 게시글 작성 시에는 20번도 넘게 해야 하는 경우도 있다. 특히 악성 반달 처리 때에 가장 골치 아픈 존재다. 악성 반달은 봇을 돌려서 빠른 속도로 반달을 행하는 경우가 많은데 반달 문서 더미 처리 및 삭제 때마다 CAPTCHA가 걸리다 보니 반달 속도를 따라잡기가 어렵기 때문.
흔히 외국 사이트에서 볼 수 있는 구글 reCAPTCHA의 경우 신호등, 자동차, 횡단보도 등등의 이미지를 클릭하라고 하는데 분명히 존재함에도 불구하고 안되는 경우라던가, 어중간하게 걸쳐있는 목표 때문에 체크를 해야 한다와 안 해야 한다는 의견차로 수십 번을 해야 하는 경우도 있다.

4. reCAPTCHA




5. 한국에서


한국에서는 대부분의 사이트에 가입 시 아이핀이나 휴대폰 번호, 공인인증서 같은 제한적인 수단을 주로 요구하기 때문에 CAPTCHA를 쓰는 경우가 적었다.[6] 정 스패머가 이런 과정을 거쳐 정상 등록을 한다고 쳐도 그냥 그 계정을 차단해버리면 그만이다. 인증용으로 사용되는 특정 아이핀이나 전화번호 등에 아이디 생성 개수 제한이 걸려있기 때문에 돌려 쓰기도 불가능한 고로 오래 버티기도 힘들다.
따라서 매우 편하고 좋다고 생각할 수 있겠지만, 대신 반대로 사이트 자체의 보안이 취약해진다는 문제가 지적되고 있다. 이런 식으로 인증 처리를 할 경우 전화번호 등의 개인정보가 사이트에 저장이 되니 해킹당하면 개인의 신상정보가 속절 없이 털리기 때문이다. 대신 CAPTCHA를 사용하면 일단 가입할 때 인증 자체는 확실히 되고, 또 사이트가 털려봐야 그 계정만 못쓰게 될 뿐 개인정보는 애초에 사이트에 저장이 되어있지 않으니 털릴 염려가 완전히 없어진다.
한국에서는 이 CAPTCHA 대신에 그냥 아예 회원 가입을 유도하는 방법을 사용해서 잘 사용되지 않는 때도 있었다. 귀찮게 CAPTCHA같은 걸 쓰느니, 주민번호 수집을 바탕으로 회원 가입을 하면 이는 곧 사람인 것이라는 식으로 처리한 것. 이후에 개인정보 유출 문제가 심각해져 사용이 크게 제한되면서 주민번호 같은 고급 개인 정보는 그냥 수집할 수 없고 인증 업체 등을 통하는 것으로 변경되었다.[7] 문제는 이런 인증 업체들을 이용하는 것은 공짜가 아니라는 것. 이에 따라 중소 규모 사이트의 경우는 굳이 별도의 개인 인증을 요구하기 보다는 CAPTCHA를 이용해 인증 과정을 사용하는 경우가 늘어났다. 나무위키 역시 좋은 예시 중 하나다.
하지만 이런 CAPTCHA는 적지 않은 사람들, 이를테면 노인 계층에게 매우 문턱이 높다는 게 간과되고 있는 문제다.
네이버 뉴스 댓글 서비스에서 비정상적인 활동이 감지[8]가 될 때, 상당히 난이도가 높은 캡챠 문제를 낸다. 음성도 지원된다.
디시인사이드의 글쓰기, 댓글 쓰기, 추천의 경우에도 가끔가다 매니저, 운영자의 설정에 따라 자동 입력 방지 캡챠를 쓴다. 한글[9], 알파벳(소문자), 숫자[10] 1~8개[11]의 단어가 랜덤한 방향으로 뒤틀려져 나온다.
네이버 지식인에서 대답 중 비정상적인 부분[12]이 나오면 캡챠를 쓴다.

6. 문제점


CAPTCHA/문제점 문서 참고

7. 부적절한 단어들


단어를 무작위로 만들어 낼 수 있어서인지 아래 사진들과 같이 부적절한 단어가 나올 수도 있다.

7.1. 엔씨소프트


게임 사이트에서 CAPTCHA를 이용해 인증을 하는 과정에서 CAPTCHA가 유저에게 욕을 썼다.
  • 븃신[13]

7.2. 던전 앤 파이터


게임 내에서 클린패드를 입력할 수 있으며 여기서 부적절한 단어가 나왔다.

7.3. 마비노기 영웅전




7.4. 메이플스토리


전체 이용가 게임인 메이플스토리의 매크로 방지 시스템이자 아이템인 거짓말 탐지기에도 많이 나온다. 자세한 것은 거짓말 탐지기 문서 참고.

7.5. 기타


  • 이런 것도 있다

7.6. 관련 문서



[1] 한 사진을 16등분한 모양이다.[2] 횡단보도도 있다.[3] 실제로 최근 프로그램들은 글자를 인식해서 쓰며 게임들을 이런 실시간 온스크린 번역 프로그램으로 한국어로 플레이하는 것이 그 예.[4] 음성 기능은 원래 시각장애인에 대한 배려 차원에서 들어간 것이다. 음성 인식을 방지하기 위해 보통 배경에 소음을 깔아 놓고 들려준다.[5] 의심된다면 포토샵에서 아무 필터나 이용해보자. 대부분은 한번 이미지가 일그러지면 실행을 취소하지 않는 한 절대로 완벽히 되돌릴 수 없다.[6] 과거에는 주민등록번호도 수집했으나, 개인정보 보호법 개정에 따라서 이제는 회원 가입 시 주민번호를 받을 수 없다.[7] 현재는 주민번호가 아닌 아이핀으로만 가능하다.[8] 예를 들면 IP충돌, 매크로 활동 의심 동작 등.[9] 받침이 없는 단어[10] 숫자 0은 나오지 않는다.[11] 약 2018년까지 중순까지는 10개까지도 나왔다.[12] 같은 대답 등[13] 출처는 아이온 서버별 텔레마커스 게시판에 누군가가 비번 틀렸다고 엔씨가 욕했다는 식으로 제목을 쓴 글에 나온 이미지. 2013년 11월 이후부터 돌기 시작했다,