오늘은 캡챠라는 용어에 대해서 조금은 자세하게 정리를 해 보도록 하겠습니다.

 

 

먼저 대부분의 참고자료 및 간단히 훑어보는 용도로는 위키백과를 먼저 사용하였으며 그 외의 자료는 출처를 아래에 표기하였습니다.

 

 

https://ko.wikipedia.org/wiki/CAPTCHA

 

CAPTCHA - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. smwm이라는 단어를 비틀어 놓아 컴퓨터가 인식하기 어렵게 해 놓았다. CAPTCHA(Completely Automated Public Turing test to tell Computers and Humans Apart, 완전 자동화된 사람과 컴��

ko.wikipedia.org

위키백과의 내용 중 필요한 부분 일부만 짧게 정리합니다.

 

 

 

 

 

 

 

1. 정의

 

CAPTCHA는 Completely Automated Public Turing test to tell Computers and Humans Apart의 약어로, 컴퓨터와 사람을 구분 짓기 위한 완전 자동 튜링 테스트입니다.

 

(출처 : 나무 위키)

 

 

 

 

 

 

 

 

 

 

2. 원리

 

기계와 사람을 분류하기 위해서 이미지는 기계의 광학식 인식이 어렵도록 처리를 하여 입력하도록 보여주고, 소리에 대해서는 잡음 등을 섞어서 기계가 인식하기 어렵게 하여 사람과 자동화 프로그램(또는 기계)을 구분하여 막아내는 것이 원리이다.

 

 

 

 

 

 

 

 

3. 용도

 

주 용도는 기계의 자동 작업으로 부당이익이나 피해를 주는 반복 작업을 막는 것이 가장 큰 용도이며, 큰 사용 사례는 아래와 같다.

 

 - 웹페이지 사용자 로그인 (반복 로그인 시도 차단)

 - 회원가입 (아이디 자동생성 방지)

 - 게시물 등록 (광고성 게시물 자동 등록 방지)

 

 

 

 

4. 한계

 

 우선 가장 크게 와 닿았던 한계는 장애인에 대한 통과가 사실상 불가능하다는 것이었습니다.

 특히 시각장애인의 경우 이미지 캡차를 통과할 수가 없습니다. 또한 시각 장애인은 음성 캡차를 쓰면 되지 않냐는 말을 할 수 있겠지만, 정부, 관공서 페이지와 같이 극히 일부를 제외하고는 대부분의 웹사이트가 이미지로 하는 캡차만을 제공한다고 합니다.

 

 두 번째로는 우스개 소리로 나왔던 이야기였는데, 실제로 이런 방법으로 캡챠를 뚫는 경우가 위키피디아에 있어 놀랐습니다. 이미지를 사람에게 전달하고 결괏값만 받아 처리하는 방식입니다. 이 방법은 값싼 노동력을 이용하거나 우회 페이지를 이용하는 방법입니다. 통과가 가능하지만 사람의 일반적인 작업이 아닌데 캡챠의 원래 용도에 맞지 않게 통과가 되는 것입니다.

 

 세 번째로는 통과하지 못하는 사람이 생기는 것입니다. 

 그 이유는 시각적인 사항들이 캡챠 인증을 위한 이미지를 구분하기 어려운 경우가 생길 수 있습니다. 예를 들면 색약, 시각장애, 난독증 등이 있습니다. 그리고 그러한 경우가 아니라 오히려 기계를 통과하지 못하도록 이미지에 작업을 많이 하여 결국은 사람도 통과를 못하게 되는 문제가 생기기도 합니다.

 

 

우선 간단하게나마 캡챠에 대해서 훑어보았으며, 아래에는 자동화 솔루션의 OCR을 이용하여 알리익스프레스의 캡챠를 통과한다면 성공률이 얼마나 될까에 대해서 간단히 확인을 해 보았습니다.

 


 

UiPath에서는 기본으로 Google의 Tesseract OCR과 MS의 Microsoft OCR을 제공해줍니다.

 

우선, OCR이 주 기능이 캡차를 통과하는 것이 아니라 광학식으로, 이미지에서 글자를 읽어오는 것을 바탕으로 그것을 방지하는 캡차를 대상으로 인식률이 얼마나 되는지, 캡챠를 통과할 가능성이 있는지를 확인해볼 요량으로, 그리고 2가지의 OCR의 인식 정도도 비교해볼 겸 프로세스를 구현하여 작업을 해 보았습니다.

 

100회를 반복하여 이미지를 변경하며, 알리 익스프레스의 로그인 시 발생하는 OCR을 대상으로 하였으며, 해당 이미지는 영어 대문자와 숫자 값만을 가지고 4자리로 구성이 되어있으며, 글자는 파란색, 배경은 흰색으로 되어있습니다.

 

총 5번의 테스트와 3번의 테스트 결과 검토를 해 보았으며, 그중 2건을 아래에 보여드립니다.

 

 

 

붉은색 수치는 4개 문자를 모두 인식한 경우를 Count 하였습니다. Google 것이 5번으로 MS 것 보다 1번 더 맞췄습니다. 하지만 3번의 수치 비교 시 정확하게 맞춘 건수는 MS 것이 보다 많았습니다.

 

주황색 수치는 OCR로 판독한 결괏값이 비어있는 경우를 Count 한 값입니다. Google의 방식은 어떤 값이라도 내놓는 반면 MS의 방식은 비어있는 값이 나오는 경우도 많았습니다. 44번이면 44%, 대략 절반이 비어있는 값이 나왔습니다. 위의 테스트 케이스는 3번 중 유일하게 구글의 방식이 더 나은 결과를 보여준 100번에 대한 결과입니다.

 

노란색은 정확하게 맞춘 문자의 개수입니다. 캡챠를 통과하는 데에는 이 수치가 큰 상관관계가 없을 수 있지만 한 글자라도 더 정확하게 많이 읽어오는지를 확인할 수 있는 요소라 생각하여 Count 하였습니다.

 

 

 

이 경우는 붉은색으로 표시한 MS사의 결과가 8%, 100번 중 8번이나 4개 문자를 정확하게 읽어 왔습니다. 반면 Google의 Tesseract OCR4건만 4 문자를 정확하게 읽어 왔습니다. 

 

주황색의 비어있는 결괏값은 MS가 52건이나 되어 절반 이상을 값을 반환하지 않고 있습니다. 하지만 절반이나 빈 값을 반환하였음에도, 어떤 값이라도 반환한 Tesseract OCR보다 1개 더 정확하게 문자를 읽어오기도 했습니다.

 

 

 

하다 보니 재미가 있어 진행을 해 보았지만, 생각을 조금만 하고 보아도 뭔가 계란으로 바위를 치는 작업을 해 본 것이 아닐까 싶기도 했습니다. 하지만 캡챠에 대해서 막연하게만 알고 있던 것을 한번 정리도 해 보고 그 방패를 조그마한 칼로라도 찔러보았다는 데에 의의를 두며 간단하게 개념 정리 및 테스트를 마칩니다.

 

 

 

+ Recent posts