인터넷에서 이러한 표시를 보신 경험 다들 한 번씩 있으시죠? 오늘은 여러분이 한 번씩 겪어본 불편함. CAPTCHA(캡차)에 대해서 한번 이야기해보려고 합니다.
CAPTCHA란 Completely Automated Public Turing test to tell Computers and Humans Apart(컴퓨터와 인간을 구분하기 위한 완전 자동화된 공공 튜링 테스트)의 줄임말로 일반적으로 게시글 및 댓글을 작성하거나 온라인 투표 등의 상황에서 프로그램을 통해 참여 숫자를 조작하는 것을 방지하기 위해 개발되었습니다.
그렇다면 튜링 테스트란 무엇일까요? 튜링 테스트란 최초의 전자식 컴퓨터인 콜로서스의 개발자 엘런 튜링이 1950년에 제안한 인공지능 테스트입니다. 시험자에게 응답자의 정체를 알리지 않고 키보드로 대화하여 응답자가 컴퓨터인지 사람인지 추측할 수 없는 경우, 응답자 컴퓨터가 인공지능을 가지고 있다고 판단하게 됩니다.
즉, 응답자가 사람인지 컴퓨터인지 구분하는 테스트인 것이죠.
CAPTCHA는 튜링 테스트의 이러한 아이디어를 역으로 활용합니다. 서비스 이용자가 사람인지 프로그램인지를 구분하여 프로그램에게는 서비스 이용을 차단하는 것입니다. 이러한 CAPTCHA를 실현시키기 위해서는 사람은 쉽게 통과 가능하며 동시에 자동화 프로그램은 통과하기 힘든 문제구조로 만들어야 합니다. 또한 같은 문제가 지속, 반복될 경우 프로그램에 의해 통과될 수 있으므로 쉽게 생성되고 평가되어야 합니다.
이러한 문제구조를 충족하는 가장 대중적인 CAPTCHA 방식은 문자인식기반 CAPTCHA입니다. 문자열에 프로그램이 인식하지 못하도록 왜곡을 주게 만든 후, 그에 알맞은 대답을 한 이용자만을 사람으로 인식하여 통과하는 것이죠. 상대적으로 쉽게 만들 수 있다는 장점 때문에 일반적으로 인터넷에서 만날 수 있는 CAPTCHA는 대부분 이러한 방식을 가지고 있습니다.
그렇다면 이처럼 2가지 왜곡된 문자열이 동시에 보여지는 CAPTCHA를 보신 적이 있으신가요? 이것은 루이스 폰 안 교수가 개발하여 구글에서 제공했던 reCAPTCHA v1입니다. reCAPTCHA는 튜링테스트의 역발상을 통해 만들어졌던 CAPTCHA를 다른 시각으로 바라봤습니다. 문자열 CAPTCHA의 원리인 컴퓨터는 읽지 못한 것도 사람은 읽을 수 있다는 점을 활용하여 컴퓨터로 읽지 못한 고서 스캔 데이터를 사람이 직접 해석하는데 사용한 것입니다. reCAPTCHA를 사용하면 보여지는 2가지 문자열 중 하나는 일반적인 튜링 테스트 용도에 사용되고, 다른 하나는 고서의 글자를 해석하는 용도로 사용됩니다.
그러나 왜곡된 문자를 읽는 기술이 발전해나감에 따라 문자 방식 CAPTCHA는 사장되거나 인간도 쉽게 읽기 어려운 문자열을 사용하는 방향으로 변화해갔습니다. reCAPTCHA 제공자였던 구글은 이를 해결하기 위해 2014년 12월 v2를 발표했습니다. v2의 이름은 no CAPTCHA로써 2단계를 통해 사람과 프로그램을 구분합니다. 첫 번째 단계는 체크박스로서 사람 특유의 마우스 포인팅, 클릭/터치 패턴, 쿠키값 등을 통해 사람인지 판단합니다.
만약 첫 단계에서 인간임을 확인하는 것에 실패하면 두 번째 단계인 Invisible을 합니다. Invisible은 제시한 단어가 포함되어있는 사진만 선택하는 일종의 그림 맞추기 게임입니다. 사진에 포함되어있는 개체가 정확히 무엇인지 파악하는 것은 왜곡된 글자를 읽는 것만큼이나 프로그램이 수행하기에는 힘든 것이고 사진은 왜곡된 문자열보다 더 쉽게 구할 수 있기 때문에 no CAPTCHA는 효과적인 CAPTCHA로써 인정받고 사용되고 있습니다.
게다가 no CAPTCHA도 reCAPTCHA처럼 사회의 발전에 기여하고 있습니다. 구글에서 인공지능 딥러닝을 개발할 때 no CAPTCHA의 사진 데이터베이스 가지고 활용하기 때문입니다. no CAPTCHA 초창기 사진인식 인공지능을 연구할 때에는 고양이와 강아지 사진들을 비교하여 선택하는 문제가 많이 제공됐었고, 자율주행차를 개발하고 있는 요즘에는 도로의 표지판, 신호등, 차량 등의 유무를 묻는 문제가 제공되고 있는 모습을 보여줍니다.
튜링 테스트는 인공지능을 규정하기 위한 아이디어일 뿐, 실질적으로 알고리즘이 아닌 인공지능으로서 이를 통과한 사례는 존재하지 않습니다. 그러나 최근 BETA 버전을 출시한 reCAPTHA v3는 아예 사람에게 특정한 행동을 요구하지 않고 ‘적응형 위험분석 엔진’을 통해 이용자를 사람과 로봇으로 자동으로 구분할 수 있게 개발된 것처럼, CAPTCHA는 인공지능의 발달 역사에 기여하고 있으며 자체적으로 발전해나가고 있다는 것을 보여줍니다.
출처-https://mybellona.blog.me/221388232389