CAPTCHA 인증방식 원리

카테고리 : 소개/IT 상식

CAPTCHA는 주로 사람인지 봇인지를 구분하기위해 만들어진 인증방식입니다.

 

아래와 같은 문구를 본적 있을겁니다.

  • 자동화된 봇을 차단하기 위해 캡챠를 사용합니다.
  • 스팸을 방지하기위해 캡챠를 사용합니다.

 

그렇다면, 사람인지 봇인지 구분을 하는 기능이 있겠죠?

 

사람과 봇을 구분하기 위해서

  • 주로 이미지를 이용해서 이미지 안에 작성된 문자를 입력하게끔 시키는 경우
  • 시각 장애인을 배려하기위해 음성으로 발음되는 문자를 입력하도록 요구하는 경우
  • 이미지 주제를 정해두고 같은 주제의 이미지를 선택하도록 요구하는 경우

이렇게 3가지 방식이 주로 사용됩니다.

 

요즘에는 많은 사이트에서 구글 리캡챠(reCAPTCHA)를 사용하는데 위의 3방식은 사람이 하기에 번거롭기 때문에 귀찮고 싫다는 인식이 대부분입니다.

그래서 추가적으로 로그인된 구글계정이 있다면, 이미지나 음성확인 대신 이전의 평판으로 번거로운 과정을 건너뛰고 바로 체크표시가 뜹니다.

Google사의 reCAPTCHA

 

 

기본적인 원리

기본적인 원리를 설명해보고자 합니다.

코드는 사용하지 않고 단순히 원리를 소개할것입니다.

 

  1. 사용자가 특정 기능에 접근하려고 합니다.
  2. 서버에서 캡챠를 생성합니다.
    1. 임의의 문자/숫자등을 생성합니다.
    2. 세션(또는 DB)에 저장하여 서버만 정답이 무엇인지 알 수 있습니다.
    3. 생성한 문자(또는 숫자)를 이미지화 하여 기계가 판독하기 어렵게 만듭니다.
  3. 서버에서 생성된 이미지가 표시됩니다.
  4. 이미지에 답을 사용자가 작성하고 전송합니다.
  5. 답이 일치하는지 확인하여 다시 캡챠를 보여주거나, 통과 페이지를 보여줍니다.

위의 과정은 기본적인 이미지 방식 캡챠입니다. 음성기능은 동일한 과정에서 이미지만 TTS로 바꿔 생성할 수 있습니다.

 

 

단점

  • 사용자가 매우 귀찮아집니다.
  • 모든 스팸을 막아주진 못합니다.
  • AI를 이용하는 경우 대부분 뚫릴 가능성이 큽니다.

 

 

장점

스팸이 줄어듭니다.

 

예를들어, 홈페이지 회원가입기능을 자동화 한 봇이 있다면, 회원수가 무한히 늘어나고, 서버용량이 가득차서 사이트가 이용불가하게 만드는 악성 사용자가 있다면, 캡챠로 이를 방지 할 수 있습니다.

 

홍보성 댓글을 자동화한 봇이 스팸홍보를 계속한다면 이를 이용해 방지 할 수도 있습니다.

 

 

 

 

reCAPTCHA

 

reCAPTCHA v3  |  Google Developers

reCAPTCHA v3 returns a score for each request without user friction. The score is based on interactions with your site and enables you to take an appropriate action for your site. Register reCAPTCHA v3 keys here. This page explains how to enable and custom

developers.google.com

reCAPTCHA를 이용하시려면 공식문서를 확인해주세요.

 

저작권 보호안내
무단 전재, 재배포 행위는 금지됩니다. (글을 복사하여 게시금지)
본문의 일부(링크용 문장) 인용은 가능하지만, 출처와 링크(a 태그)를 남기셔야 됩니다.
(웹툴을 이용하고, 스크린샷/녹화하는것은 상관없습니다.)

예외적으로. 저에게 허락받은 경우에는 본문을 전재할 수 있습니다.

만약, 본문 공유를 원하신다면 링크 공유를 해주세요

저작권 정책 확인하기
링크 공유하기

 댓글