[개념] Captcha 이해하기

Argonaut·2024년 12월 9일

captcha

목록 보기
1/2


Captcha란 무엇인가?


"Completely Automated Public Turing test to tell Computers and Humans Apart"의 줄임말로서 인간에게는 쉽지만 기계에게는 어려운 과제로 사용자를 테스트하여 사용자가 봇이 아니라 인간인지를 검증하는 방법이다.

Captcha는 사용자가 특정 작업을 수행하기 전에 컴퓨터가 자동으로 풀기 어려운 작업을 제시하여, 해결할 수 있는 사람만이 시스템에 접근하도록 보장하는 것이라고 보면 된다.
예를 들어, 왜곡된 텍스트는 OCR(광학 문자 인식) 기술이 판독하기 어렵도록 설계되어 있으며, 이는 자동화된 봇이 해결하기 힘들게 만든다.


Captcha의 동작 원리


테스트 방식은 아래처럼 동작한다.

  1. 문제 제공
    Captcha는 사용자가 풀어야 하는 간단한 문제를 제공한다.
    이 문제는 봇이 해결하기 어렵게 문제를 의도적으로 왜곡하거나 변형시켜 제공.
    예를 들어, 텍스트를 비틀거나 배경에 노이즈를 추가하해 OCR 기술 등으로 읽어내기 어렵게 만듦.

  2. 사용자 응답 확인
    사용자가 입력한 값이나 선택한 옵션을 서버에서 검증을 진행.
    서버는 사전에 정의되 정답과 비교하여 사용자가 문제를 정확히 풀었지를 확인.

  3. 결과 처리

    • 올바른 응답 : 사용자가 인간으로 간주되고 서비스에 접근 허용.
    • 잘못된 응답 : 다시 시도 요청 또는 액세스 차단.


Captcha의 종류


  1. 문자 및 숫자 인식 방식
    왜곡된 이미지 속에서 특정 글자와 숫자를 읽고 입력하도록 요청하는 방식.

  2. 이미지 선택 방식
    "신호등을 선택하세요" 등과 같은 문제를 제시하고, 사용자가 이미지를 선택하여 테스트를 진행하는 방식.

  3. 체크박스 선택 방식
    "나는 로봇이 아닙니다." 체크박스를 클릭하여, 사용자의 클릭 패턴과 행동을 분석하여 봇 여부를 판단하는 방식.

  4. Invisible Captcha
    사용자가 알아채지 못하게 백그라운드에서 동작하며, 사용자의 행동 데이터를 기반으로 판단하는 방식.

이외에도 오디오 방식, 슬라이드 방식 등 여러 종류의 Captcha가 존재한다.


Captcha의 장점


  1. 자동화된 공격 방지
    악의적인 봇이나 스크립트가 사이트를 자동으로 탐색하거나 데이터를 훔치는 것을 방지한다.
    예를 들어 스팸이나 브루트포스 공격 등을 방지하는 것을 의미.

    브루트 포스(brute force) 공격이란?
    암호학에서 특정 암호를 풀기 위해 가능한 모든 값을 대입하여 암호를 해독하는 방법 중 하나로
    여기서는 무작위로 비밀번호를 대입하여 계정을 해킹하는 사이버 공격을 의미한다.

  2. 자원보호
    봇이 서버의 자원을 과도하게 사용하지 못하게 하여 서비스 안정성을 유지한다.
    즉, 악의적 활동을 줄여 개인정보 유출 가능성을 감소시키는 것.

  3. 보안강화
    봇이 민감한 시스템에 접근하거나 자원을 낭비하는 것을 방지한다.


Captcha의 주의점


  • 불편한 사용자 경험
    사용자 입장에서는 봇을 방지하기 위해 추가적으로 수행해야하는 작업이 늘어난 것이기 때문에, 이를 불편하거나 귀찮다고 사용자는 판단할 수 있음.
    시간이 지나면서 captcha는 점점 복잡한 형태를 가지고 있어 captcha를 해결하는 데도 소요가 걸리기에 Invisible Captcha를 활용하거나, 최소한의 상호작용으로 사용자 경험을 방해하지 않도록 적절한 사용이 필요하다.

  • 접근성 문제
    텍스트나, 이미지 기반의 Captcha는 시각 장애인이나 신체적 장애를 가진 사용자가 해결하기에는 매우 어렵거나 불가능할 수 있다.

  • 봇의 진화
    Captcha가 발전하여 어려운 과제를 출력하듯이 봇 또한 이를 해결하기 위해 지속적으로 진화하고 개선되고 있어 따라잡힐 수 있다.


Captcha 도입 시나리오


  • 로그인 페이지: 비정상적인 로그인 시도 방지.
  • 회원가입: 자동 계정 생성 방지.
  • 비밀번호 재설정: 악의적인 비밀번호 요청 방지.
  • 결제 페이지: 자동화된 결제 시도 차단.

@참고 문헌
https://www.ibm.com/topics/captcha

profile
성장하는 개발자가 되기 위한 기록 일지

0개의 댓글