코딩항해기

[기타] CAPCHA (+ 기타) 본문

기타

[기타] CAPCHA (+ 기타)

miniBcake 2024. 12. 12. 17:57

 

CAPTCHA

Completely Automated Public Turing test to tell Computers and Humans Apart

컴퓨터와 인간을 구분하기 위해 개발된 보안 메커니즘이다. 웹사이트에서 봇(Bot)과 자동화된 스크립트로부터 시스템을 보호한다.

 

CAPTCHA의 진화 과정

초기 텍스트 기반 CAPTCHA

초기 CAPTCHA는 왜곡되고 읽기 어려운 텍스트 이미지로 구성되었다. 사용자는 이미지에 표시된 문자나 숫자를 입력해야 했다. 하지만 이 방식은 시각장애인에게 접근성 문제가 있었고, 기술 발전에 따라 봇을 거르지 못하게 됐다.


이미지 선택형 CAPTCHA

Google의 reCAPTCHA는 이미지 선택 방식을 도입했다. 예를 들어 "신호등이 있는 이미지를 모두 선택하세요"와 같은 과제를 제시한다. 이 방식은 기존 텍스트 방식보다 사용자 친화적이었지만 오류문제나 문제가 모호한 경우가 많아 원성이 많았다.


행동 기반 CAPTCHA

최신 CAPTCHA 기술은 단순한 이미지 인식을 넘어선다. 마우스 움직임, 스크롤 패턴, 키보드 입력 등 사용자의 행동 패턴을 분석하는 방식이다.

 

오디오 CAPTCHA

오디오를 들려주고 받아쓰기하는 방식인데 이 또한 기술 발전에 따라 너무 쉽게 뚫리게 되면서 잘 사용되지 않게 됐다.

 

사람들이 CAPCHA에 대해 피로감 증가, 봇을 거르기 어려워지는 문제가 증가하면서 다른 방식이 등장했다.

honeypot

범용적인 봇의 경우 input 태그를 채우려고 한다는 습성을 이용한 방식으로, 타겟 봇의 경우에는 효과가 없다. display none을 사용하거나 일반적으로 볼 수 없는 크기로 숨겨두거나, 화면 바깥에 배치해 봇만 인지할 수 있도록 구성하는 경우도 있다.

 

Proof of work

간단한 해쉬연산을 시켜 CPU를 낭비하게 만들어 봇이 접근하지 못하도록 막는 방식이다. Rate limiting하는데 도움이 되는 방식이다.

 

Rate limiting
특정 시간 내에 할 수 있는 API 호출 수를 의미한다. API 속도를 제한하는 것이다.

 

 

Cloudflare Turnstile Google ReCaptcha v3

유저가 별다른 반응을 하지 않아도 봇 여부를 판단할 수 있기 때문에 유저 친화적이다. 현재의 정보를 보내 분석하고 봇인지 아닌지를 판단하는 방식이다. 특정 점수를 넘으면 사람으로 보고 토큰을 보내 서버에서 토큰을 확인해 판단한다.

'기타' 카테고리의 다른 글

[기타] 공공데이터 사이트  (1) 2024.12.24
[기타] 액션스크립트 ActionScript (X)  (0) 2024.12.16
[기타] Commit Calendar  (0) 2024.12.11
[기타] DNS (Domain Name System)  (0) 2024.12.10
[기타] 롬복 라이브러리 Lombok  (0) 2024.11.16