브라우저 업체들이 개인정보 보호를 강화하면서 User-Agent는 단계적으로 축소·동결되고, Client Hints는 새로운 고엔트로피 지문 신호가 되고 있습니다. 이 글에서는 UA Reduction, Client Hints의 원리, 지문 일관성이 중요한 이유, 그리고 다중 계정 환경에서 UA·CH·시스템 파라미터를 일관되게 유지하는 방법을 설명합니다.
최근 몇 년 동안 주요 브라우저는 개인정보 보호 정책을 지속적으로 강화했습니다. Safari는 ITP를 도입했고, Firefox는 Total Cookie Protection을 출시했으며, Chrome은 User-Agent 동결(UA Reduction) 을 공식적으로 추진하고 있습니다. 아직도 “UA만 바꾸면 기기를 다르게 보이게 할 수 있다”고 생각하는 경우가 많지만, 실제로 UA는 크게 단순화되었고 세부 정보도 점차 줄어들고 있습니다. 이 자리를 이어받아 기기 식별에서 중요해진 신호가 Client Hints(CH) 입니다.
이 글은 “탐지를 우회하는 방법”을 가르치지 않습니다. 기술 원리만을 바탕으로 세 가지를 설명합니다. UA는 왜 동결되는가? Client Hints는 정확히 무엇이며 왜 고엔트로피 지문 신호로 간주되는가? 그리고 왜 이른바 “지문 일관성”이 핵심인가? 이를 이해하면 현대 브라우저 환경 관리, 특히 여러 계정을 분리해 사용할 때 왜 파라미터를 몇 개의 독립적인 필드가 아니라 하나의 정합성 있는 시스템으로 봐야 하는지 알 수 있습니다.
1. 왜 UA 문자열만으로는 충분하지 않은가?
오랫동안 User-Agent 는 웹사이트가 브라우저와 기기를 식별하는 주요 기준이었습니다. 브라우저 브랜드와 버전, 운영체제, 기기 아키텍처 등의 정보를 노출할 수 있었습니다. 하지만 UA 문자열은 길고 안정적이어서 사용자 fingerprinting에 활용되기 쉬웠습니다. 그래서 Chrome은 UA를 단계적으로 축소하겠다고 명확히 발표했습니다. 주요 버전 같은 기본 정보만 남기고, 더 자세한 기능 정보는 새로운 메커니즘인 Client Hints로 옮기는 방식입니다.
UA 동결의 직접적인 결과는 UA 하나만 위조해서는 더 이상 자연스럽지 않다는 점입니다. 시스템은 UA만 보는 것이 아니라 다른 필드가 UA와 맞는지도 확인합니다. 가장 대표적인 불일치 신호는 파라미터끼리 모순되는 경우입니다. 예를 들면:
- UA에는 macOS 14라고 되어 있지만 플랫폼 버전 필드는 macOS 13으로 표시됨;
- UA는 모바일 기기를 나타내는데 모바일 플래그가 여전히
?0임; - 하드웨어 아키텍처는 arm64인데
navigator.hardwareConcurrency같은 값은 x86에 가까워 보임.
기기 식별 시스템에서는 이런 모순이 “실제 하나의 기기에서 나온 정보가 아니다”라고 판단할 수 있는 신호가 됩니다. 따라서 UA 동결 시대에는 “UA만 변경하는 방식”이 더 이상 충분하지 않습니다.
2. Client Hints란 무엇이며 왜 고엔트로피 지문인가?

Client Hints(CH)는 브라우저가 HTTP 요청이나 JavaScript 환경을 통해 필요할 때 서버에 제공하는 기기 기능 정보의 집합입니다. UA와의 큰 차이는 두 가지입니다.
-
고엔트로피 필드(High Entropy Values)를 포함합니다. 고엔트로피란 여러 정보를 조합했을 때 식별력이 높고 추측하기 어렵다는 뜻입니다. 구체적인 플랫폼 버전, 전체 브랜드·버전 목록, 기기 아키텍처 등이 이에 해당합니다. 실제 브라우저는 이런 정보를 한꺼번에 모두 주지 않고 필요한 경우에만 반환합니다.
-
CH는 단독으로 판단되지 않고 다른 지문과 교차 검증됩니다. 실제 기기 식별 시스템은 CH와 UA가 일치하는지, CH와 TLS JA3/JA4 같은 전송 계층 지문이 동일한 브라우저 계열에 맞는지, CH가 JavaScript 환경의
navigator.platform, 동시성, device pixel ratio(DPR)와 일관되는지, 운영체제 플랫폼 특성과도 맞는지를 함께 봅니다.
여기서 핵심 개념이 나옵니다. 어려운 것은 하나의 필드를 바꾸는 일이 아니라 모든 필드가 동일한 실제 기기에서 나온 것처럼 서로 맞아야 한다는 점입니다. 개별 필드 하나만 놓고 보면 대부분 변경할 수 있습니다. 하지만 브랜드, 플랫폼 버전, UA, DPR, 메모리, 아키텍처, TLS 지문 등을 모두 모순 없이 하나의 설득력 있는 기기 프로필로 구성하는 것이 진짜 어려운 부분입니다. 그래서 “필드를 전부 채웠다”고 해도 서로 맞지 않으면 쉽게 부자연스럽게 보일 수 있습니다.
3. 흔히 발생하는 지문 불일치는 무엇인가?
일관성이 핵심이라는 점을 이해하면 많은 파라미터 설정이 왜 잘못되는지도 쉽게 알 수 있습니다. 대표적인 오류는 다음과 같습니다.
- CH와 UA가 맞지 않음(가장 흔함): UA는 macOS 14.1인데 CH는 실제로 존재하지 않는 플랫폼 버전을 반환함;
- 모바일 UA인데 모바일 플래그가
?0: 실제 모바일 기기라면 보통?1이어야 함; - 전체 버전 목록의 파생이 잘못됨: 예를 들어 브라우저 메이저 버전은 120인데 전체 버전 특성은 오래된 115와 비슷함;
- DPR, 메모리 등의 값이 실제 기기 유형과 충돌함: 예를 들어 Apple 기기인데 픽셀 비율이 비정상적으로 낮거나 일반 Windows PC가 1GB 메모리만 표시함;
- 브라우저 자체의 차이를 무시함: 지원하지 않는 브라우저에 특정 필드를 억지로 넣거나, 특정 엔진에서 실제로는 반환하지 않는 필드를 반환함.
이런 모순은 기기 식별 시스템에서 눈에 띕니다. 본질적으로는 환경을 하나의 정합성 있는 전체로 구성하지 않았기 때문에 생기는 문제입니다.
4. 그렇다면 “올바른 설정”이란 무엇인가?
단순히 “필드를 채운다”고 보기보다 일관된 환경 프로필을 유지한다고 보는 편이 정확합니다. 보통 다음과 같은 원칙이 필요합니다.
- CH와 UA를 연결: 브라우저 엔진과 버전의 실제 규칙에 따라 브랜드, 플랫폼, 버전 등 대응되는 CH 값을 도출하고 임의로 값을 조합하지 않음;
- 고엔트로피 필드의 실제 반환 전략을 따름: 기본적으로 저엔트로피 정보를 제공하고, 고엔트로피 값은 실제 브라우저처럼 필요할 때만 반환하며 현재 브라우저가 지원하지 않는 필드는 반환하지 않음;
- JS 속성, HTTP 헤더, 시스템 특성을 서로 맞춤: DPR은 화면 해상도와, 메모리 크기는 플랫폼 유형과, 모바일 플래그는 UA와, 아키텍처는 전체 시스템 로직과 맞아야 함;
- 전송 계층 지문과도 연동: TLS/JA3/JA4 같은 특성도 선언한 브라우저 버전과 일치해야 함.
한 문장으로 정리하면, 진짜 어려운 점은 CH, UA, JavaScript 환경, 시스템 특성이 함께 하나의 “정합성 있는 브라우저 행동 프로필”을 이루게 하는 것이지, 필드 수를 늘리는 것이 아닙니다.
5. 이것이 다중 계정 환경 관리와 어떤 관계가 있는가?
해외 전자상거래, 소셜미디어 광고, 독립 쇼핑몰 운영을 하는 사람이라면 이런 기술 원리가 “각 비즈니스 계정마다 독립적인 브라우저 환경을 만드는 것”과 어떤 관계가 있는지 궁금할 수 있습니다. 관계는 명확합니다. 환경 관리의 전제는 각 환경 자체가 내부적으로 일관되어야 한다는 것입니다.
- 계정과 지역이 많을 때 각 환경마다 UA, 운영체제, 해상도 등의 파라미터를 손으로 조합하기보다는, 선택한 시스템과 엔진 버전을 기준으로 도구가 서로 맞는 파라미터 세트를 자동 생성하도록 하는 편이, 한쪽만 바꿔서 생기는 모순과 재작업을 줄일 수 있습니다.
- 서로 다른 지역과 플랫폼의 비즈니스 계정은 각각 독립적이고 내부 파라미터가 정합성 있는 환경을 가져야 합니다. 모든 계정이 동일한 “템플릿 파라미터”를 공유하면 기기 수준에서 지나치게 비슷해 보여 오히려 부자연스러울 수 있습니다.
- 프록시를 다른 지역으로 전환할 때도 시스템 버전, 기기 모델 등의 특성이 해당 환경 안에서 논리적으로 계속 유지되는 편이 “IP만 바꾸고 다른 파라미터는 모두 그대로 두는 것”보다 실제 기기 사용 방식에 더 가깝습니다.
이런 “일관성” 문제를 해결하는 것이 다중 계정용 브라우저 환경 관리 도구의 역할입니다. PurpleMark는 환경 생성 시 운영체제, Chromium 엔진 버전, User-Agent, 해상도, 시간대, 언어, CPU/메모리, Canvas, WebGL, TLS 등 다양한 지문·기기 파라미터를 하나의 설정 영역에서 관리할 수 있게 합니다. 지역과 계정 용도를 선택하면 로그인할 때마다 값을 임시로 조합하는 대신 하나의 일관된 방식으로 환경을 생성할 수 있습니다. 실제로 관리하는 것은 특정 탐지 방식을 속이는 방법이 아니라, 하나의 workspace 안에서 “계정, 브라우저 환경, 네트워크 설정”을 함께 운영하기 위한 전체적인 일관성과 재사용성입니다.
6. 정리
UA 동결은 브라우저 fingerprinting이 새로운 단계에 들어갔음을 의미합니다. 중요한 것은 “어떤 필드가 존재하는가”가 아니라 필드 사이에 일관성이 있는가입니다. Client Hints가 고엔트로피 지문 신호 역할을 이어받으면서 CH와 UA, 시스템 특성, 전송 계층 지문의 관계를 이해하는 것이 많은 필드 이름을 외우는 것보다 더 중요해졌습니다.
몇 개의 실제이고 규정에 맞는 비즈니스 계정을 관리하는 정도라면 탐지에 맞서는 데 힘을 쓸 필요는 없습니다. PurpleMark 같은 환경 관리 도구를 통해 각 계정의 지역, 시스템, 브라우저 파라미터를 명확하고 일관되며 재사용 가능한 상태로 유지하는 것이 더 실용적이며, 환경 설정의 앞뒤가 맞지 않아 생기는 문제를 원천적으로 줄일 수 있습니다.
(안내: 이 글은 브라우저 fingerprinting 기술 원리를 설명하기 위한 교육용 콘텐츠입니다. 각 플랫폼의 서비스 약관을 준수하고 정상적인 계정을 사용하세요.)


