TLS 핑거프린팅의 원리
TLS 핑거프린팅은 HTTPS 연결 시 TLS 핸드셰이크에서 클라이언트가 보내는 ClientHello 메시지를 분석합니다. 각 HTTP 클라이언트(Chrome, Firefox, Python requests, curl)는 고유한 TLS 설정을 가지고 있어 식별이 가능합니다.
JA3 핑거프린트
JA3는 ClientHello의 다섯 가지 필드를 연결하여 MD5 해시를 생성합니다:
- TLS 버전
- 암호 스위트 목록
- 확장 목록
- 타원 곡선 그룹
- 타원 곡선 포인트 형식
JA4 핑거프린트
JA4는 JA3의 개선 버전으로 더 많은 정보를 포함하며 더 정밀한 식별이 가능합니다. ALPN, 인증서 관련 확장 등을 추가로 분석합니다.
안티봇 시스템의 활용
안티봇 시스템은 TLS 핑거프린트를 확인하여:
- User-Agent가 Chrome인데 TLS 핑거프린트가 Python이면 봇으로 판정
- 알려진 자동화 도구의 핑거프린트를 차단
- 비정상적인 TLS 설정을 의심
우회 방법
| 방법 | 도구 | 효과 |
|---|---|---|
| 브라우저 모방 | curl-impersonate, tls-client | 높음 |
| 헤드리스 브라우저 | Puppeteer, Playwright | 매우 높음 |
| 프록시+브라우저 | ProxyHat + Playwright | 최고 |
핵심 요약
- TLS 핑거프린팅은 HTTP 클라이언트를 식별하는 강력한 기법입니다.
- JA3/JA4 해시로 클라이언트 소프트웨어를 정확히 식별합니다.
- 브라우저 TLS 모방 라이브러리나 헤드리스 브라우저로 우회 가능합니다.
- ProxyHat 프록시와 헤드리스 브라우저를 조합하면 최고의 효과를 얻습니다.






