topics CAPTCHA란? CAPTCHA란?
CAPTCHA는 악성 봇이 제기하는 위협을 방지하기 위해 사용자가 인간인지 인증합니다.
모두 IBM Security를 사용하고 있는 다양한 사무실 직원을 보여주는 등축 도식
CAPTCHA란?

"Completely Automated Public Turing Test* to Tell Humans Apart"(컴퓨터와 인간을 구분하기 위한 완전 자동화된 공개 튜링 테스트)의 약자인 CAPTCHA는 인간에게는 쉽지만 기계에게는 어려운 과제로 사용자를 테스트하여 사용자가 봇이 아니라 인간인지 검증하는 다양한 인증 방법을 말합니다. CAPTCHA는 사기꾼과 스팸 발송자가 봇을 사용하여 악의적 목적으로 웹 양식을 작성하지 못하도록 합니다.

기존의 CAPTCHA는 사용자에게 광학적 문자 인식(optical character recognition, OCR) 기술로 해독할 수 없는 왜곡된 텍스트를 읽거나 올바르게 입력하도록 요구했습니다. 새로운 CAPTCHA 기술은 AI 기반 행동 및 리스크 분석을 활용하여 별개의 단일 작업이 아니라 활동 패턴을 기반으로 인간인 사용자를 인증합니다.

많은 웹사이트가 사용자에게 계정 프로필에 로그인하거나, 등록 양식을 제출하거나, 댓글을 달거나, 해커가 봇을 사용하여 수행할 수 있는 기타 작업을 수행하기 전에 CAPTCHA 과제를 완료하도록 요구합니다. 과제를 성공적으로 완료하면 사용자는 인간으로 입증되며 웹사이트에서 활동을 계속할 수 있습니다.

CAPTCHA의 진화

가장 초기 형태의 CAPTCHA 기술은 1990년대 말과 2000년대 초에 여러 그룹에 의해 동시에 개발되었습니다. 각 그룹은 인터넷에서 범죄 활동을 수행하기 위해 봇을 사용하는 해커로 인한 만연한 문제와 싸우고 있었습니다. 예를 들면, 검색 엔진인 AltaVista의 컴퓨터 과학자들은 이 회사의 링크 데이터베이스에 악의적인 웹 주소를 추가하는 봇의 활동을 막고 싶었습니다.

IT 회사인 Sanctum의 연구원들은 최초의 CAPTCHA 형식 시스템을 1997년에 제출했습니다. 그러나 CAPTCHA라는 용어는 Luis von Ahn 및 Manuel Blum이 이끄는 Carnegie Mellon University의 컴퓨터 과학 연구원들이 2003년에 만들었습니다. 이 팀은 수백만 개의 가짜 이메일 계정을 등록하는 스팸봇 때문에 문제에 직면한 Yahoo 임원의 강연에서 영감을 받아 이 기술을 개발하게 되었습니다.

Yahoo의 문제를 해결하기 위해 von Ahn과 Blum은 1) 무작위 텍스트 스트링을 만들고 2) ('CAPTCHA 코드'라는) 텍스트의 왜곡된 이미지를 생성하고, 3) 이 이미지를 사용자에게 제시하고, 4) 사용자에게 양식 입력란에 이 텍스트를 입력한 후 '저는 로봇이 아닙니다'라는 구문 옆의 확인란을 클릭하여 입력 사항을 제출하도록 요구하는 컴퓨터 프로그램을 만들었습니다. 당시의 OCR(optical character recognition) 기술은 이러한 왜곡된 텍스트를 해독하는 데 어려움을 겪었기 때문에 봇은 이 CAPTCHA 과제를 통과하지 못했습니다. 사용자가 문자열을 올바르게 입력하면 인간이라고 확실히 가정할 수 있었으며, 이러한 사용자는 계정 등록 또는 웹 양식 제출을 완료할 수 있었습니다.

Yahoo는 Carnegie Mellon의 기술을 실행했기 때문에 모든 사용자는 이메일 주소를 등록하기 전에 CAPTCHA 테스트를 통과해야 했습니다.

이 덕분에 스팸봇의 활동이 상당히 줄어들었고 다른 회사들도 웹 양식을 보호하기 위해 CAPTCHA를 도입했습니다. 그러나 시간이 경과하면서 해커들은 완료된 CAPTCHA 과제의 데이터를 사용하여 CAPTCHA 테스트를 안정적으로 통과할 수 있는 알고리즘을 개발했습니다. 이때부터 CAPTCHA 개발자와 사이버 범죄자들의 지속적 경쟁이 시작되었으며, 그 결과 CAPTCHA 기능의 진화가 촉진되었습니다.

reCAPTCHA v1

2007년에 von Ahn이 내놓은 reCAPTCHA v1의 목표는 두 가지였습니다. 즉, 봇이 해독하기 더 어려워 하는 텍스트 기반 CAPTCHA 과제를 만들고, 당시 인쇄된 텍스트를 디지털화하는 데 사용된 OCR의 정확성을 향상하는 것이 목표였습니다.

reCAPTCHA는 사용자에게 표시되는 텍스트의 왜곡을 강화하고 결국에는 텍스트를 가로지르는 선을 추가하여 첫 번째 목표를 달성했습니다.

그리고 무작위로 생성된 왜곡 텍스트의 단일 이미지를 두 가지 OCR 프로그램이 실제 텍스트를 스캔하여 얻은 단어의 왜곡된 텍스트 이미지 2개로 교체하여 두 번째 목표를 달성했습니다. 첫 번째 단어, 즉 대조 단어는 두 OCR 프로그램이 모두 올바르게 식별한 단어이고, 두 번째 단어는 두 OCR 프로그램 모두가 식별하지 못한 단어였습니다. 사용자가 대조 단어를 올바르게 식별할 경우, reCAPTCHA는 1) 사용자가 인간이라고 가정하고 작업을 계속하도록 허용했고, 2) 사용자가 두 번째 단어도 올바르게 식별한 것으로 가정하고 이 응답을 향후 OCR 결과를 검증하는 데 사용했습니다.

이러한 방식으로 reCAPTCHA는 봇 방지 보안을 향상했고, Internet Archive와 New York Times에서 디지털화되는 텍스트의 정확성을 향상했습니다. (역설적이게도, 시간이 흐르면서 이 기술은 인공 지능머신 러닝 알고리즘이 2014년까지 가장 왜곡된 텍스트 CAPTCHA를 99.8% 식별하는 수준까지 발전하는 데 기여했습니다.)

2009년, Google은 reCAPTCHA를 인수하고 이 기술을 사용하여 Google Books의 텍스트를 디지털화하는 데 사용하기 시작했으며, 이 기술을 다른 조직에 서비스로 제공했습니다. 그러나 reCAPTCHA 덕분에 OCR 기술이 발전함에 따라 텍스트 기반 reCAPTCHA를 효과적으로 해결할 수 있는 인공 지능 프로그램도 발전했습니다. 이에 대응하기 위해 Google은 2012년에 이미지 인식 reCAPTCHA를 도입했습니다. 이 기술은 왜곡된 텍스트 대신 Google Street View에서 가져온 이미지를 사용했습니다. 사용자는 신호등 및 택시와 같은 실제 물체를 식별하여 인간임을 증명했습니다. 이 이미지 기반 reCAPTCHA는 봇이 배포하는 첨단 OCR을 피할 수 있었을 뿐만 아니라 모바일 앱 사용자에게 더 편리한 기술로 여겨졌습니다.

Google ReCAPTCHA v2: No CAPTCHA reCAPTCHA

2014년에 Google은 텍스트 및 이미지 기반 과제를 "저는 로봇이 아닙니다"라는 간단한 확인란으로 대체한 reCAPTCHA v2를 출시했습니다. 사용자가 확인란을 선택할 때 reCAPTCHA v2는 웹 페이지와 사용자의 상호작용을 분석하면서 사용자가 인간인지 결정하기 위해 타이핑 속도, 쿠키, 디바이스 내역, IP 주소 등의 요인들을 평가합니다. 확인란은 또한 CAPTCHA의 작동 원리를 지원합니다. no CAPTCHA reCAPTCHA는 사용자가 확인란을 클릭할 때 마우스의 움직임을 추적합니다. 봇의 움직임은 정확한 편이지만 인간의 움직임은 무질서한 편입니다. no CAPTCHA reCAPTCHA가 사용자를 봇으로 의심할 경우, 이미지 기반 CAPTCHA 과제가 제시됩니다. 

ReCAPTCHA v3

2018년에 데뷔한 reCAPTCHA v3은 확인란을 사용하지 않고 no CAPTCHA reCAPTCHA의 AI 기반 리스크 분석을 확장한 것입니다. ReCAPTCHA v3은 JavaScript API를 통해 웹 페이지와 통합되어 백그라운드에서 실행되며, 사용자의 행동을 0.0(봇일 가능성이 큼)부터 1.0(인간일 가능성이 큼)의 척도록 점수를 매깁니다. 웹사이트 소유자는 사용자의 점수에 따라 봇일 가능성이 있을 경우 특정 시점에 자동 조치가 작동하도록 설정할 수 있습니다. 예를 들면, 낮은 점수의 사용자가 남긴 블로그 댓글은 사용자가 "제출"을 클릭할 경우 관리 열로 전송될 수 있습니다. 또는 낮은 점수의 사용자는 계정에 로그인하려고 할 때 다단계 인증 프로세스를 완료하도록 요구받을 수 있습니다.

reCAPTCHA v3와 같은 AI 기반 인증 방법은 CAPTCHA 검증 프로세스에서 대화형 과제를 제거하여 해커가 이전에 해결한 과제의 데이터를 사용하여 새 CAPTCHA를 해독하도록 봇을 훈련시키는 문제를 피하려고 합니다. 이러한 이유 때문에 전문가들은 AI 기반 CAPTCHA가 향후 5~10년간 과제 기반 CAPTCHA를 완전히 대체하고 널리 사용될 수도 있다고 생각합니다.

CAPTCHA 사용 사례

봇 탐지 및 방지 조치인 CAPTCHA 기술은 다음과 같이 몇 가지 공통 사용 사례가 있습니다.

거짓 등록 방지. 기업들은 사용자가 이메일 계정, 소셜 미디어 프로필 또는 기타 온라인 서비스에 등록하기 전에 CAPTCHA 테스트를 통과하도록 하여 스팸 또는 멀웨어를 퍼뜨리거나 기타 악의적 활동을 수행하기 위해 이러한 서비스를 사용하려는 봇을 걸러낼 수 있습니다. CAPTCHA를 가장 먼저 도입한 곳은 Yahoo, Microsoft, AOL과 같은 회사들이었습니다. 이들은 거짓 이메일 계정을 등록하는 봇을 막고 싶어했습니다.

의심스러운 거래로부터 보호. Ticketmaster와 같은 회사들은 콘서트 티켓과 같은 제한된 상품을 구입한 후 2차 시장에서 재판매하는 봇의 활동의 방지하기 위해 CAPTCHA를 사용했습니다.

온라인 여론조사의 질 보호. CAPTCHA와 같은 억제 장치가 없을 경우 온라인 여론조사는 봇에 의해 침해될 수 있습니다. CAPTCHA와 같은 기술에 대한 가장 초기의 실험 중 몇몇은 온라인 설문조사 결과의 질을 보호하기 위해 시도되었습니다. 예를 들면, 1996년 미국 대선 기간 동안 온라인 여론조사의 질을 유지하기 위해 Digital Equipment Corporation은 사용자에게 투표하기 전에 웹 페이지의 픽셀화된 깃발 이미지를 찾아 클릭하도록 요구했습니다.

댓글 및 제품 후기 스팸 방지. 사기꾼과 사이버 범죄자들은 종종 사기 콘텐츠와 멀웨어를 확산시키기 위해 블로그와 기사의 댓글 섹션을 사용합니다. 이들은 또한 대량의 거짓 후기를 게시하여 전자상거래 웹사이트 또는 검색 엔진에서 인위적으로 제품의 순위를 높이는 사용 후기 스팸 활동을 벌일 수도 있습니다. 또한 봇은 보호되지 않은 댓글 섹션을 사용하여 괴롭힘 캠페인을 벌일 수도 있습니다. 사용자가 댓글 또는 후기를 게시하기 전에 CAPTCHA를 완료하도록 하면 이러한 악의적 활동을 완화할 수 있습니다.

무차별 대입 공격 및 사전 공격 방어. 무차별 대입 공격(brute-force attack) 및 사전 공격(dictionary attack) 감행 시 해커는 올바른 비밀번호를 찾을 때까지 숫자, 문자, 특수 문자의 조합을 추측하는 봇을 사용하여 계정에 침입합니다. 사용자가 특정 횟수만큼 로그인 시도에 실패할 경우 CAPTCHA를 완료하도록 요구하면 이러한 공격을 중단시킬 수 있습니다.

CAPTCHA의 단점

CAPTCHA 기술은 일반적으로 봇의 활동을 중단시키는 데 효과적인 것으로 입증되었지만, 단점도 있습니다.

불편한 사용자 경험. CAPTCHA 과제는 등록, 로그인, 양식 작성 프로세스에 단계를 하나 더 추가하는데 이를 귀찮게 여기는 사람들이 있습니다. 게다가, 더 첨단화된 봇을 이기기 위해 CAPTCHA의 복잡성도 증가되었기 때문에 사용자가 CAPTCHA를 푸는 일도 어려워졌습니다. 2010년에 한 연구에서 Stanford University 연구원들은 3인으로 구성된 그룹들에게 동일한 CAPTCHA를 풀도록 했습니다. 참가자들이 CAPTCHA의 답에 관해 만장일치로 동의한 것은 전체 경우 중 71%에 불과했습니다(PDF, 2.5MB, IBM.com 외부 링크). 또한, 이 연구에 따르면 모국어가 영어가 아닌 사람들은 영어 원어민보다 CAPTCHA를 푸는 것을 더 어려워 했습니다. 이는 특정 인구통계학적 그룹에게 CAPTCHA가 더 어려울 수 있음을 시사합니다.

접근 불가능성. 텍스트 및 이미지 기반 CAPTCHA는 시각장애인들에게 매우 어렵거나 해결하기 불가능한 과제일 수 있습니다. 이러한 테스트는 기계가 읽을 수 없도록 설계되었으므로 스크린 리더가 대부분의 CAPTCHA 과제를 읽지 못합니다. 따라서 이이 문제가 더 악화됩니다.

대안적 형태의 CAPTCHA로 이 문제를 해결하려 했지만, 이들 역시 자체적인 한계가 있습니다. 사용자에게 잘 알아들을 수 없는 오디오를 해독하라고 요구하는 오디오 CAPTCHA는 풀기가 어렵기로 악명이 높습니다. 앞서 언급한 Stanford 연구에 따르면 사용자가 오디오 CAPTCHA의 답에 대해 만장일치로 동의한 경우는 단 31%에 불과했습니다.

사용자에게 간단한 수학 문제를 풀도록 요구하는 유형의 CAPTCHA인 MCAPTCHA는 알고리즘에 의해 해독될 수 있는 취약성이 큽니다.

접근 불가능한 CAPTCHA를 사용하면 법적 파급 효과도 발생합니다. 1998년에 도입된 1973년 재활법에 대한 수정 508조(The Section 508 Amendment to the Rehabilitation Act of 1973)는 미국 연방 기관과 이러한 연방 기관과 거래하는 민간 조직은 장애인에게 접근 가능한 디지털 정보를 제공하도록 규정하고 있습니다. 접근 가능한 CAPTCHA 옵션을 제공하지 않는 회사는 이 법규를 위반하게 될 수 있습니다.

낮은 전환율. 불편한 사용자 경험과 CAPTCHA에 대한 접근 불가능성은 전환율에 부정적인 영향을 미칠 수 있습니다. 50개의 웹사이트 대상으로 한 2009년 사례 연구에 따르면 사용자에게 CAPTCHA를 완료하도록 요구할 경우 적법한 전환이 3.2% 줄어든 것으로 나타났습니다 (IBM.com 외부 링크). 오디오 CAPTCHA는 특히 안 좋은 영향을 끼칠 수 있습니다. 앞서 언급한 Stanford 연구에 따르면 사용자가 소리 기반 CAPTCHA를 포기한 경우는 50%에 달했습니다.

봇 AI는 CAPTCHA를 이기기 위해 계속 진화하고 있습니다. 새 CAPTCHA 과제가 등장할 때마다 이를 이기기 위해 봇이 지속적으로 진화해 왔기 때문에 CAPTCHA 기술은 시작된 이래 매우 여러 번 변경되었습니다. CAPTCHA는 봇을 막기 위해 해결되지 않은 AI 문제에 의존하므로 CAPTCHA 기술의 구조 자체가 이 문제를 악화시킵니다. 인간이 CAPTCHA 과제를 해결하면 데이터 세트가 생성되는데, 이러한 데이터는 이전에는 불가능했던 AI 문제를 극복하기 위해 머신 러닝 알고리즘을 훈련시키는 데 사용될 수 있습니다. 에를 들면, 2016년에 컴퓨터 과학 연구자인 Jason Polakis는 Google의 역 이미지 검색(reverse image search)을 사용하여 70%의 정확도로 Google의 이미지 기반 CAPTCHA를 풀었습니다.

개인 정보 보호 문제. 새로운 형태의 CAPTCHA가 접근 가능성 문제를 해결하고 대화형 과제를 완전히 제거하여 봇과의 경쟁을 중단하려고 노력 중이지만, AI 기반 CAPTCHA가 침해적이라고 생각하는 사용자와 연구자도 있습니다. 사람들은 여러 웹사이트를 이동하는 사용자를 추적하기 위해 코드와 쿠키를 사용하는 reCAPTCHA v3에 대한 우려를 표명했습니다. 이러한 추적 데이터가 검증 이외의 목적으로 사용될 가능성에 대한 투명성이 충분하지 않다고 느끼는 사람들도 있습니다.

*테스트를 만든 Alan Turing의 이름을 따서 만든 Turing Test는 인간의 지능을 보여주는 기계의 능력을 테스트합니다.

관련 솔루션
IAM(Identity and Access Management)

IBM Security Verify IAM 솔루션을 사용하여 모든 사용자를 적절한 액세스 수준으로 연결합니다.

IAM 솔루션 살펴보기
고급 인증

IBM Security Verify는 비밀번호 없는 인증 또는 다단계 인증을 위한 옵션을 통해 기본 인증 이상의 효과를 제공합니다.

고급 인증 살펴보기
적응형 액세스

IBM Security Verify의 AI 지원 리스크 기반 인증으로 사용자와 자산을 선제적으로 보호합니다.

적응형 액세스 솔루션 살펴보기
리소스 IAM(Identity and Access Management)이란?

IAM를 통해 IT 관리자는 네트워크의 각 사용자 또는 개체를 위한 단일 디지털 아이덴터티를 할당, 인증, 허용, 관리합니다.

다단계 인증(MFA)이란?

MFA는 사용자를 인증하기 위해 비밀번호 외에 최소한 한 가지의 인증 수단을 요구하거나 비밀번호 대신 최소한 두 개의 인증 수단을 요구합니다.

싱글 사인온(SSO)이란?

SSO를 통해 사용자는 단일 로그인 자격증명 세트를 사용하여 세션에 한 번 로그인하고 이 세션 동안 여러 개의 관련 애플리케이션과 서비스에 액세스할 수 있습니다.