본문 바로가기
← 메인으로
회원 가입

CAPTCHA 인증

게시 2024-02-19

CAPTCHA 인증 프로세스를 단계별로 나타낸 흐름도. 랜덤 문자열 생성(Python random 모듈, 알파벳·숫자 조합, 무작위 문자열 생성), 이미지 변환(Pillow 라이브러리, 텍스트 왜곡·회전·굴곡, 노이즈 및 배경 패턴 추가), 사용자 검증(이미지 문자 입력 요청, 원본 문자열과 비교, 일치 시 인증 통과) 순으로 이어짐. 하단에는 CAPTCHA 종류로 텍스트 CAPTCHA(왜곡된 문자 인식), 이미지 CAPTCHA(객체 선택), 오디오 CAPTCHA(소리를 듣고 문자 입력), 논리 퍼즐(간단한 수학 문제 풀기)이 병렬로 표시된 구조.

  • CAPTCHA는 사람과 봇을 구별하기 위한 자동화된 테스트 기술. 자동 가입, 스팸, 무차별 대입 공격 등을 방지하는 데 사용
  • 초기에는 왜곡된 문자를 입력하는 텍스트 방식이 주류였지만, 딥러닝과 OCR 기술 발전으로 96% 이상 뚫리면서 한계가 드러남
  • 최근에는 사용자 행동 패턴을 분석하는 방향으로 진화 중
  • 프로세스는 랜덤 문자열 생성 → 이미지 변환 → 사용자 검증 순으로 진행

랜덤 문자열 생성 : Python의 random 모듈로 알파벳 대소문자와 숫자를 조합한 무작위 문자열 생성. 단순 무작위 시도 방지 용도로는 충분하지만 금융 인증 등 고보안 용도로는 적합하지 않음

이미지 변환 : Pillow 라이브러리로 문자열을 이미지로 변환한 뒤 텍스트 회전·굴곡, 노이즈 추가, 배경 패턴 삽입 등으로 왜곡 처리. OCR이 쉽게 읽지 못하도록 하는 게 목적

사용자 검증 : 왜곡된 이미지를 사용자에게 보여주고 문자를 입력받아 원본 문자열과 비교. 일치하면 인증 통과

최신 CAPTCHA 흐름 : 텍스트 방식의 한계로 인해 다음 방향으로 발전 중

  • reCAPTCHA : 구글이 개발. 사용자 행동 패턴 분석으로 체크박스 클릭만으로 인증 가능
  • hCaptcha : 개인정보 보호 중심. 테스트 데이터를 AI 학습에 활용하면서도 개인정보는 보호
  • AI 기반 백그라운드 인증 : 마우스 움직임, 키보드 패턴, 세션 정보 등을 분석해 사용자 여부를 자동 판단