Computer >> 컴퓨터 >  >> 네트워킹 >> 네트워크 보안

캡차(CAPTCHA), 인간과 AI를 구별하는 기술로서 얼마나 더 버틸 수 있을까?

구글 크롬으로 웹사이트에 접속하려 할 때 “당신은 인간입니까?”라는 확인 창이 계속 뜨는 경험, 누구나 한 번쯤 겪어봤을 것입니다. 특히 반복해서 나타나면 가장 어리석은 질문처럼 느껴지기도 합니다. 바로 캡차(CAPTCHA)입니다. 캡차는 브라우저가 사용자가 아니라 기계가 개인 검색에 접근하려 하는 것이 아닌지 판단할 수 있게 해주는 도전-응답(challenge-response) 방식의 테스트입니다. 캡차는 스팸봇을 차단하고 악용을 방지하는 일반적인 보호 장치가 되었습니다. 그런데 최근 들어 캡차는 점점 복잡해져 우리의 집중력을 요하는 번거로운 작업이 되었습니다. 왜 브라우저는 “저는 로봇이 아닙니다”라는 확인을 요구할까요? 그리고 어떻게 이것이 짜증나고 시간 낭비인 시련으로 변해버린 걸까요? 스팸봇 제거 도구로 시작된 것이 어떻게 인간과 기계 간의 치열한 경쟁이 된지 살펴보겠습니다.

캡차(CAPTCHA)란 무엇일까?

캡차는 '완전 자동화 공용 튜링 테스트(Completely Automated Public Turing Test)'의 약자입니다. 2000년대 초반에 개발된 이 테스트는 브라우저 보안을 침해하려는 기계나 스팸봇이 아님을 인간이 증명하기 위한 수단이었습니다. 캡차의 발명자가 누구인지에 대해서는 논란이 있지만, 가장 초기 버전은 1997년까지 거슬러 올라갑니다. 처음 사용되었을 때 캡차는 왜곡된 문자 시퀀스를 단순 텍스트로 입력하게 하여 사용자의 “인간성”을 증명하도록 했습니다. 경우에 따라 비슷하게 왜곡된 숫자가 문자와 결합되기도 했으며, 문자 사이에 공백이 없어 보이도록 작성되었고 로그인 시도마다 코드가 변경되었습니다. 이렇게 설계된 이유는 무한에 가까운 왜곡된 시퀀스를 해독하기 위해서는 항상 인간의 지능이 필요하고, 컴퓨터 알고리즘으로는 왜곡된 시퀀스를 감지할 수 없기 때문입니다. 덕분에 캡차는 많은 웹 서비스와 메일 서비스 제공업체에서 즉시 채택되었습니다.

하지만 몇 년 후, 캡차는 점점 복잡해지기 시작했습니다.

구글의 리캡차(reCAPTCHA): 원조 테스트의 복잡한 업그레이드

2007년, 구글은 리캡차라 불리는 프로그램을 원래 연구진으로부터 인수했고, Google Scholar와 Google Books에 광범위하게 적용하기 시작했습니다. 그러나 시작점에서 출발한 캡차는 이 최신 형태에서 구글 사용자들에게 골칫거리가 되었습니다. 머신러닝 연구가 발전함에 따라 컴퓨팅 시스템과 알고리즘 역시 복잡한 문제를 해결할 수 있는 능력을 갖추게 되었습니다. 결국 기존의 문자 시퀀스는 봇과 기계에게 너무 쉬워졌습니다. 이에 구글은 문자를 더욱 비틀고 인간의 눈에는 기술적으로 더 혼란스럽게 만들었습니다. 이것이 인간 지능과 기계 지능 간의 진정한 경쟁의 시작이었고, 리캡차가 구글 사용자에게 큰 짜증거리가 되는 결과를 낳았습니다. 구글 플랫폼과 검색에 접근하는 사용자가 봇이 아님을 확인하기 위해 시퀀스는 더욱 어렵게 만들어졌습니다.

테스트에 이미지 추가: 구글의 노캡차 리캡차(No CAPTCHA reCAPTCHA)

2014년, 구글은 리캡차를 인수한 지 오랜 시간이 지난 후 사용자들이 겪는 불편에 대한 조치를 결정합니다. 게다가 그동안 연구자들은 더 스마트한 기계를 만들기 위해 리캡차의 응답 챌린지 이해 능력마저 뛰어넘어 버렸습니다. 실험 테스트에서 구글 연구진은 극심한 복잡함과 성가신 팝업에도 불구하고 머신러닝 알고리즘이 응답의 99% 이상을 정확히 맞혔지만, 인간은 고작 33%밖에 맞히지 못했다는 사실을 확인했습니다. 이제 변화가 필요한 때였습니다.

구글은 사용자의 불편을 없애기로 했습니다. 새로운 “노캡차 리캡차(NoCAPTCHA reCAPTCHA)”는 사용자가 체크 박스를 클릭하기만 하면 테스트를 통과할 수 있게 했습니다. 이번에 구글은 API 기술을 한 단계 더 활용하여 사용자 행동 패턴을 분석해 인간과 로봇을 구별했습니다. 구글의 새로운 리캡차는 사용자의 검색 기록과 마우스 커서의 움직임까지 분석했습니다. 봇은 마우스 클릭을 흉내 낼 수 없습니다. 봇 입장에서 해당 캡차 테스트의 코드를 분석하면 가상의 체크 박스가 단순한 이미지로 보이기 때문에 반응하지 않는 것입니다. 하지만 다시 말하지만, 봇이 자바스크립트를 읽을 수 있다면 이를 쉽게 모방할 수 있고, 마우스 움직임 추적 옵션도 실패할 수 있습니다.

그럼 이 문제는 어떻게 해결될까요? 만약 평소 선호와 다른 검색을 한다면?

그런 경우라면, 또 다른 테스트에 오신 것을 환영합니다. 구글의 새로운 리캡차는 당신이 인간인지 로봇인지 확인하기 위한 일련의 “시력 검사” 같은 과정으로 안내합니다. 즉, 의심스럽거나 참조되지 않은 검색을 하면 구글은 여러 이미지 중에서 특정 이미지들을 선택하라고 요구합니다. 신호등, 자동차, 공원, 도로 표지판이 담긴 사진을 찾아내라고 요구하는 것을 본 적이 있으시죠? 그것이 바로 노캡차 리캡차입니다.

이것은 현재 가장 최신이며 가장 널리 사용되는 캡차 버전으로, 구글뿐 아니라 트위터, 페이스북, 크레이그리스트(Craigslist) 같은 플랫폼에서도 사용자의 소셜 미디어 프로필에 대한 스팸과 악용을 막기 위한 인간-AI 구별 수단으로 활용되고 있습니다. 그러나 이번에도 이 버전의 이미지들은 인간의 눈에는 더 흐릿해져 퍼즐의 복잡도가 높아졌고, 다시 리캡차가 걸어온 길을 따라가고 있는 상황입니다.

그런데 왜 이런 일이 벌어질까요?

캡차 퍼즐은 왜 그토록 복잡해졌을까?

캡차는 봇과 기계가 인간 사용자로 위장해 부적절한 목적으로 데이터에 접근하는 것을 막기 위한 수단으로 시작되었습니다. 그러나 머신러닝과 인공지능에 대한 연구와 실험이 깊어지고 성공을 거두면서, 우리는 훨씬 복잡한 계산을 해결할 수 있는 기계를 만들었고 캡차는 식은 죽 먹기가 되어버렸습니다. 과학은 기계에 그토록 폭넓은 능력을 부여했기에, 이제 소프트웨어나 봇에게 어려운 것을 만들려 하면 인간이 해독하기는 더 어려워집니다.

캡차가 실패하고 있다는 사실이 놀라울까?

전혀 아닙니다. 우리는 실용적인 양자컴퓨터를 만들었고, 금융 분석, 비즈니스 의사결정, 의료 과학 관련 수많은 퍼즐과 계산 문제를 해결했습니다. 삶을 편하게 하고 더 복잡한 연구 분야를 돕기 위해 수많은 기계 기반 애플리케이션과 도구를 활용해왔습니다. 그 과정에서 작업 속도와 효율성을 높이기 위해 기계에 자체적인 지능을 부여했습니다. 우리 삶이 AI와 머신러닝에 크게 의존하는 만큼, 기계가 우리를 추월하는 것은 시간문제였던 셈입니다.

캡차는 어디까지 발전할 수 있을까?

연구자들이 이 응답-챌린지 메커니즘으로 진행하고 있는 작업을 보면, 이제야 시작에 불과합니다. 현재의 캡차 도구를 업그레이드하고 응답 챌린지 테스트의 방식을 바꾸기 위한 다양한 시도가 있었습니다. 2017년 페이팔(PayPal)은 새로운 형태의 캡차 기술에 대한 특허를 획득했습니다. 여기서 사용자의 인간임을 증명하기 위한 퍼즐과 질문은 인종, 위치, 성별에 따라 달라집니다. 유사하게 아마존(Amazon Technologies)은 사람들이 익숙하지 않은 착시 현상과 논리 퍼즐을 풀도록 하는 캡차 스타일을 특허냈습니다. 여기서 아마존은 퍼즐의 논리를 뒤집으려 했습니다. 아마존은 대부분의 인간은 이런 문제를 틀리고, 현대 AI는 그 능력 덕분에 정답을 맞힐 것이라 주장하며, 따라서 오답을 입력한 쪽이 인간 사용자라는 것입니다. 그 외에도 보드 게임 퍼즐 같은 이미지를 풀어 인간임을 증명하는 게임형 캡차 특허도 있습니다. 이것들은 캡차 업데이트를 향해 나아가고 있는 초기 아이디어들입니다.

하지만 정말 효과적일까?

여러 면에서 그렇지 않습니다. 첫째, 머신러닝이 인류 진화의 다음 단계처럼 여겨지는 이 “우주 시대”에는 깨지지 않는 캡차는 존재하지 않습니다. 둘째, 이런 아이디어들은 인간에게 너무 복잡합니다. 누군가에게 문화적으로 다양한 질문에 항상 정확히 답하라고 기대한다면 잘못된 생각입니다. 사람들은 인종, 언어, 성격 면에서 매우 큰 차이를 보이며, 문화적 배경에 기반한 광범위한 응답-챌린지 세트를 개발하는 것은 거의 불가능합니다. 더욱이 인터넷은 IQ, 나이, 지능 수준과 무관하게 누구나 어디서든 접근할 수 있는 공간입니다. 그렇기에 모든 연령대의 모든 사람이 웹페이지를 통과하기 위해 보드 게임 퍼즐을 풀 능력이 있으리라고 믿기 어렵습니다. 아마도 연구자들은 기계의 개입에 저항하기 위해 인간이라는 존재가 어떤 것인지 잊어버리고, 최근 개발에서 그 요소를 배제해버린 것일지도 모릅니다.

캡차를 더 신뢰할 수 있게 만들려면 어떻게 해야 할까?

인간에게 더 쉬운 방법을 찾아내기 전까지는 많은 논의와 연구가 필요한 주제입니다. 다만 AI 봇이 모방하기 어려운 인간 행동의 측면을 찾아낼 필요가 있습니다. 웹페이지 “행동(action)”을 감지하는 캡차 도구 개발에 더 집중할 수 있습니다. 구글은 최근 리캡차 v3(reCAPTCHA v3)를 활성화했습니다. 구글의 새로운 응답-챌린지 테스트 버전은 “적응형 리스크 분석(Adaptive Risk Analysis)”을 사용하며, 사용자에게 어떤 테스트도 강요하지 않고 가상 체크 박스를 클릭하도록 요구하지 않습니다. 사용자에게는 완전히 마찰 없는 경험이며 웹페이지에 직접 접근할 수 있게 해줍니다. 스팸 악용을 막기 위한 봇 탐지를 수행하기 위해 구글의 새로운 리캡차는 위험 분석 알고리즘에 기반해 구글이 부여하는 점수를 통해 웹사이트 운영자가 사이트 방문자가 봇인지 아닌지 판단할 수 있게 해줍니다. 이 점수는 사이트 트래픽이 의심스러운지 여부를 감지합니다. 운영자는 이후 의심스러운 사용자에게 응답 테스트를 제시해 리캡차의 탐지를 교차 확인할 수 있습니다. 구글이 새로운 알고리즘으로 사용자에게 점수를 어떻게 부여하는지 공개하지 않지만, 기존 테스트의 불편함과 어려움이 고려된 환영할 만한 트래픽 필터링 방식으로 볼 수 있습니다.

마치며

구글의 새로운 리캡차 v3가 웹페이지의 봇 트래픽을 막는 최선의, 가장 사용자 친화적인 방법이라고 단정하기에는 아직 이릅니다. 게다가 AI와 머신러닝 연구가 빠르게 발전하고 있는 만큼, 어떤 새로운 캡차 기술에 미칠 영향을 예측할 수 없습니다.

사람들이 기계 활동 감시보다 머신러닝에 더 많은 기대를 걸고 있는 상황에서, 이러한 새로운 캡차 기술 특허들은 가까운 미래에 무용지물이 될 수 있습니다. 당분간 캡차는 웹에서 가장 널리 사용되는 봇 탐지용 응답-챌린지 테스트로 남아 있을 것입니다. 그러나 이 상황이 오래 지속되기를 바란다면, 우리가 의존하고 있는 스마트 기계에게 우리의 모든 것과 유산을 넘겨주기 전에 AI와 인간을 구별하는 방법을 찾아내는 것이 중요합니다.