사용자들의 공개적인 참여가 가능한 웹 사이트에서는, 자동 프로그램이 스팸을 뿌리는 경우가 있다. 물론 이러한 스팸은 제거할 수는 있지만 귀찮은 작업이 늘어난다.
이러한 스팸을 방지하기 위해서, 가입할 당시 비틀린 글자가 들어있는 그림을 보여주고 그 그림의 글자를 입력해 달라고 하는 경우가 있다.

이러한 것을 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,에 대체 텍스트(Alt Text) 제공:
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 contentTechniques for WCAG 2.0 G143: Providing a text alternative that describes the purpose of the CAPTCHATechniques for WCAG 2.0 G144: Ensuring that the Web Page contains another CAPTCHA serving the same purpose using a different modalityCAPTCHA: Telling Humans and Computers Apart AutomaticallyReCAPTCHA
덧글
숫자 풀이나, 일반 상식 문제가 가장 괜찮은 방법인것 같아요. 현재까지는..
이 글을 읽으면서 책이나 마우스, 가방 ,키보드,우산 같은 사물을 보여주고 이게 무얼까요? 라고 묻는 방식 이나, 동그라미 3개 정도 그려놓고 동그라미가 총 몇개 있나요? 이런 질문을 하는 것은 어떨까 한번 생각해 봤네요 ^^
captcha에 대한 대안을 제시하는 경우에는 특정 장애 영역에 문제가 없어야 합니다.
가장 간단한 상식 문제를 제공하는 것이 좋은 방법인데 간단한 상식의 기준이 모호할 수 있습니다.
회사 입사하기 위해 상식문제를 풀기 위한 학원에 다니는 세상이니까요.
그리고 사물을 보여 주거나 동그라미가 몇 개냐는 질문도 대안이 될 수 있지만 시각장애인은 어떻게 해야 하는지요?
alt text를 그대로 달아주면 이것도 악의적으로 사용할 수 있구요.
이러한 경우 alt text를 '이 그림은 내용은 우산입니다' 라고 달아 주어 자동으로 악의적으로 해결하는 것을 방지할 수 있지요.
그런데 이 경우는 홈페이지 개발자들에게 captcha에 이미지 설명은 이렇게 해라 하는 교육을 또 해야 하고...
또 다른 병발적 문제를 일으킬 것 같다고 생각합니다
정말로 아주 쉬운 상식을 만들어 내는 것도 쉬운 일은 아니라고 생각 됩니다.
xxx.php?xxx=e0051354_4b760e854f81f 라고 가정했을 때 맨 끝의 다섯자리 정도가 코드인거죠. 처음 블로그에 댓글 쓰는데 잡담이나 남기다니.. captcha 정말 대첵 안서는 녀석입니다. 다음이 가장 나은 대안을 제시하고 있지 않나 싶습니다. 카페 가입시 입력하는 더하기 문제.
grboard의 기본 captcha 또한 더하기 문제를 내는 것 같습니다.
captcha 에 대한 문제는 별로 생각을 못해봤었는데 정말 좋은 내용이네요ㅎ 위에도 다른분이 남기셨지만 한껏 비틀은 문자같은 경우엔 저도 제대로 읽기가 힘들더라구요;
얼마전에 google 에서 비밀번호 문제로 확인을 하려는데 한껏 비틀은 captcha 문자가 너무 어려워서 3-4번 실패하고 제대로 썻던 기억이 있어요;;
이런 경우엔 난독증이 있거나 화면을 확대해서 보시는 분들은 captcha 문자를 파악하기란 거의 불가능할 것 같은데 '간단한 숫자 맞추기'와 같은 대안을 제시하는 방법이 가장 나아보이네요.
음성출력을 대안으로 제공한 경우엔 captcha 문자를 이상한 배경음과 같이 읽어 준다는 것은 처음 알았네요;
퀴즈 캡챠에 관해 생각을 더해봤는데, 만약에 답이 숫자로 나올 경우에는 대입해보는 것만으로도 프로그램이 충분히 뚫을 수 있을 것 같습니다.
그래서 3회나 5회 초과 시 입력할 수 없게 하는 것은 어떨까요?