CAPTCHA에 대한 단상 by 백남중

사용자들의 공개적인 참여가 가능한 웹 사이트에서는, 자동 프로그램이 스팸을 뿌리는 경우가 있다. 물론 이러한 스팸은 제거할 수는 있지만 귀찮은 작업이 늘어난다.

 이러한 스팸을 방지하기 위해서, 가입할 당시 비틀린 글자가 들어있는 그림을 보여주고 그 그림의 글자를 입력해 달라고 하는 경우가 있다.

이러한 것을 CAPTCHA라고 한다.

Carnegie Mellon University에서 처음으로 시작하여 확산된 CAPTCHA(Completely Automated Public Turing test to tell Computers and Humans Apart, 자동가입방지)는 어떠한 사용자가 실제 인간인지 컴퓨터 프로그램인지를 구별하기 위해 사용되는 방법의 하나이다. 인간은 구별할 수 있지만 컴퓨터는 구별하기 힘들게 의도적으로 비틀어 놓거나 그림을 주고 그 그림에 쓰여 있는 내용을 물어보는 방법으로 악의적인 가입을 방지할 목적으로 사용한다.

즉 스팸 방지, 웹 사이트 등록 방지, 이메일 주소 불법 수집 방지, 디렉토리 공격 방지 등을 목적으로 CAPTCHA를 사용한다.

이러한 글자 입력 작업은 OCR 프로그램을 활용하여 인식하는 것을 방지하고, 자동 프로그램을 만들기가 힘들기 때문에, 스팸을 효과적으로 막으면서 일반 사용자를 막지 않을 수 있다.

그러나 웹 접근이라는 측면에서 본다면

- 난독증인 사람은 해당 글자를 제대로 인식하지 못하고

- 시각장애인은 이미지의 글자를 파악할 수 없어서 문제가 있다.

이러한 문제 때문에 WCAG 2.0에서는 해당 콘텐츠에 목적을 설명하는 동일한 내용의 텍스트를 제공하거나, 다른 형태의 장애인을 고려하여 CAPTCHA를 서로 다른 형태의 감각기관을 활용하여 사용할 수 있는 대체 방법을 제공하라고 권고하고 있다.

즉 시각적 방법만 제공하지 말고 2가지 이상의 방법을 제시하라는 것이다.

CAPTCHA를 다른 방법으로 제공하는 방법에는 음성 출력과 논리적 문제 제공 등을 들 수 있다.

▪ 음성 출력:

CAPTCHA 외에 다른 방법으로 많이 사용하고 있는 방법으로서 특정 단어를 듣고 입력하는 방식이다.

구글의 경우 CAPTCHA를 보여 주고 입력창 옆에 휠체어 버튼을 누르면 음성 출력을 해준다.

CAPTCHA의 대안으로 제공한 음성 출력을 듣고 입력하는 문제는 음성 인식 소프트웨어를 활용하면 해당 내용을 파악할 수 있다. 이러한 문제 때문에 음성을 듣고 해당 내용을 입력하는 방식의 경우에는 이상한 배경음을 활용하여 제대로 인식하지 못하게 하는 경우가 많다.

그러나 대부분 영어로 음성 출력을 하기 때문에 한국인이 이상한 배경음이 있는 영어를 듣고 내용을 입력한다는 것은 아무래도 어려운 점이 있다. 이것은 장애인이 아닌 경우도 마찬가지이다.

▪ 휴대폰 인증:

다음의 경우에는 CAPTCHA를 사용하지 않고 실명 확인 후 휴대폰 인증번호를 입력하는 방식을 사용하고 있다.

CAPTCHA를 사용하지 않은 것은 좋았는데 가입 인증 방법이 신용카드, 휴대폰, 공인인증서로 제한되어 있다. 만일 이 중에 한 가지도 없는 사람은 가입 인증 방법이 없다는데 문제가 있다.

 ▪ CAPTCHA,에 대체 텍스트(Alt Text) 제공:

CAPTCHA의 이미지를 시각장애인이 볼 수 없다는 이유만으로 대체 텍스트를 제공하는 관공서도 있다.

위의 방법은 화면에 보이지 않는 해당 숫자를 음성 출력해 주어서 스크린 리더를 사용하는 시각장애인은 접근 할 수 있지만, 화면 확대 프로그램을 사용하는 저시력인과 난독증이 있는 사람은 여전히 접근할 방법이 없다는데 문제가 있다.

더 나아가 CAPTCHA의 내용을 그대로 텍스트로 제공하는 것이 원래의 목적에 맞는지 생각해볼 필요가 있다.

▪ 간단한 퍼즐 활용:

CAPTCHA 외에 간단한 숫자 맞추기 문제, 일반적인 상식 문제에 대한 답을 맞추는 방식이다.

예를 들어 다음과 같이 CAPTCHA와 더불어 간단한 문제를 제공하는 것이다.
먼저 기존 방식의 CAPTCHA를 제시하고, CAPTCHA를 제대로 입력하지 못하는 사람을 위해서 숫자 풀이 문제를 제시하는 방식이다.

숫자 풀이 문제를 제시하는 경우에도 자동으로 해석하기 어렵게 하기 위하여 두 개의 숫자 중 한 가지는 한글로 제시한다.

숫자 풀이 문제는 다음과 같이 하면 좋다.

- 삼 더하기 2는 얼마인가?

- 7에서 이를 빼면 얼마인가?

이 방식에서 주의해야 할 것은 인지장애인(Cognitive disability)도 해당 문제를 풀 수 있도록 최대한 쉽게 내는 것이다.

숫자 풀이로 하는 방법 이외에도 특정 글자 입력을 요구할 수도 있다.

- '남대문'의 첫 글자는?

 

CAPTCHA 관련 규정, 사이트

WCAG 2.0 Guideline 1.1 Text Alternatives

Understanding WCAG 2.0 SC 1.1.1 Non-Text content

Techniques for WCAG 2.0 G143: Providing a text alternative that describes the purpose of the CAPTCHA

Techniques for WCAG 2.0 G144: Ensuring that the Web Page contains another CAPTCHA serving the same purpose using a different modality

CAPTCHA: Telling Humans and Computers Apart Automatically

ReCAPTCHA

 


덧글

  • 2010/02/27 11:00 # 삭제 비공개

    비공개 덧글입니다.
  • 폭폭이 2010/02/27 17:17 # 삭제

    와 좋은 내용이에요 ^^ 비틀어진 글자는 저도 잘 못읽을 때가 많이 있어요. 도대체 어떻게 읽으라고 그렇게 비틀어 놓는 건지 참 -_-;;
    숫자 풀이나, 일반 상식 문제가 가장 괜찮은 방법인것 같아요. 현재까지는..
    이 글을 읽으면서 책이나 마우스, 가방 ,키보드,우산 같은 사물을 보여주고 이게 무얼까요? 라고 묻는 방식 이나, 동그라미 3개 정도 그려놓고 동그라미가 총 몇개 있나요? 이런 질문을 하는 것은 어떨까 한번 생각해 봤네요 ^^
  • 백남중 2010/02/28 10:28 #

    고맙습니다. 대안에 추가 대안도 제시해 주시고...
    captcha에 대한 대안을 제시하는 경우에는 특정 장애 영역에 문제가 없어야 합니다.
    가장 간단한 상식 문제를 제공하는 것이 좋은 방법인데 간단한 상식의 기준이 모호할 수 있습니다.
    회사 입사하기 위해 상식문제를 풀기 위한 학원에 다니는 세상이니까요.
    그리고 사물을 보여 주거나 동그라미가 몇 개냐는 질문도 대안이 될 수 있지만 시각장애인은 어떻게 해야 하는지요?
    alt text를 그대로 달아주면 이것도 악의적으로 사용할 수 있구요.
    이러한 경우 alt text를 '이 그림은 내용은 우산입니다' 라고 달아 주어 자동으로 악의적으로 해결하는 것을 방지할 수 있지요.
    그런데 이 경우는 홈페이지 개발자들에게 captcha에 이미지 설명은 이렇게 해라 하는 교육을 또 해야 하고...
    또 다른 병발적 문제를 일으킬 것 같다고 생각합니다
    정말로 아주 쉬운 상식을 만들어 내는 것도 쉬운 일은 아니라고 생각 됩니다.
  • dh 2010/06/03 07:36 # 삭제

    어떤 사이트는 이미지의 내용 파악으로 코드를 파악할 수도 있습니다. 직접 해보기도 했고요. 스크린리더 사용자 입니다.
    xxx.php?xxx=e0051354_4b760e854f81f 라고 가정했을 때 맨 끝의 다섯자리 정도가 코드인거죠. 처음 블로그에 댓글 쓰는데 잡담이나 남기다니.. captcha 정말 대첵 안서는 녀석입니다. 다음이 가장 나은 대안을 제시하고 있지 않나 싶습니다. 카페 가입시 입력하는 더하기 문제.
    grboard의 기본 captcha 또한 더하기 문제를 내는 것 같습니다.
  • 에키드나 2010/09/05 05:31 #

    안녕하세요~ 백부장님 블로그에서 좋은 정보 많이 얻어 가는데 정작 댓글은 처음 남기는거 같네요^_^;;
    captcha 에 대한 문제는 별로 생각을 못해봤었는데 정말 좋은 내용이네요ㅎ 위에도 다른분이 남기셨지만 한껏 비틀은 문자같은 경우엔 저도 제대로 읽기가 힘들더라구요;
    얼마전에 google 에서 비밀번호 문제로 확인을 하려는데 한껏 비틀은 captcha 문자가 너무 어려워서 3-4번 실패하고 제대로 썻던 기억이 있어요;;
    이런 경우엔 난독증이 있거나 화면을 확대해서 보시는 분들은 captcha 문자를 파악하기란 거의 불가능할 것 같은데 '간단한 숫자 맞추기'와 같은 대안을 제시하는 방법이 가장 나아보이네요.
    음성출력을 대안으로 제공한 경우엔 captcha 문자를 이상한 배경음과 같이 읽어 준다는 것은 처음 알았네요;
  • doctype 2012/03/15 13:43 # 삭제

    와아~ 좋은내용 정말 감사합니다. CAPTCHA 의 접근성에 대해 고민하던중에 좋은정보 알게되었어요.!!
  • 지운아빠 2012/11/19 09:59 # 삭제

    좋은 내용 감사합니다.

    퀴즈 캡챠에 관해 생각을 더해봤는데, 만약에 답이 숫자로 나올 경우에는 대입해보는 것만으로도 프로그램이 충분히 뚫을 수 있을 것 같습니다.

    그래서 3회나 5회 초과 시 입력할 수 없게 하는 것은 어떨까요?
※ 이 포스트는 더 이상 덧글을 남길 수 없습니다.


me2day