브라우저 업데이트에서 살아남는 신호는 무엇인가? 안정성 분석
Chrome, Firefox, Safari의 브라우저 업데이트 50건에 걸쳐 신호 안정성을 분석했습니다. 가장 안정적인 핑거프린팅 신호와 가장 불안정한 신호를 정리했습니다.
브라우저 업데이트는 기기 핑거프린팅의 천적입니다. 4~6주마다 Chrome, Firefox, Safari는 신호 값을 바꿀 수 있는 새 버전을 배포합니다. user-agent 문자열을 변경하고, 렌더링 동작을 수정하며, API를 추가하거나 제거합니다. W3C 핑거프린팅 가이드에서 지적하듯, 브라우저는 핑거프린팅 가능한 표면적을 제한하기 위해 적극적으로 노력하고 있습니다. 모든 신호를 동등하게 취급하는 핑거프린팅 시스템에게 각각의 업데이트는 수백만 방문자의 신원을 끊어놓을 수 있는 잠재적 위협입니다.
우리는 근본적인 질문에 답하기 위해 브라우저 업데이트 50건에 걸친 종합 안정성 분석을 수행했습니다. 어떤 신호는 신뢰할 수 있고, 어떤 신호는 당신을 배신할 것인가?
방법론
우리는 5개 운영체제(Windows 10, Windows 11, macOS Ventura, macOS Sonoma, Ubuntu 22.04)와 3개 브라우저(Chrome, Firefox, Safari)에 걸쳐 200대의 실물 기기를 계측했습니다. 각 기기는 14개월 동안 매일 자동 신호 수집을 실행하여, 주요 브라우저 버전 업데이트 50건(Chrome 24건, Firefox 16건, Safari 10건)을 다루었습니다.
각 신호에 대해 우리는 다음을 추적했습니다. 값이 얼마나 자주 바뀌었는지, 그 변화가 브라우저 업데이트나 외부 요인(드라이버 업데이트, OS 패치)과 상관관계가 있었는지, 그리고 변화의 크기(값 전체 교체 대 사소한 변동)입니다.
안정성 계층
계층 1: 반석같이 견고함 (99.5% 이상 안정성)
이 신호들은 물리적 하드웨어가 바뀌거나 드라이버가 업데이트될 때만 변했으며, 브라우저 업데이트만으로는 결코 변하지 않았습니다.
Hardware Concurrency(navigator.hardwareConcurrency): 99.97% 안정. 하이퍼스레딩에 영향을 준 BIOS 업데이트가 있었던 기기 1대에서만 변했습니다. Device Memory(navigator.deviceMemory): 99.98% 안정. 연구 기간 중 한 기기가 8GB에서 16GB로 업그레이드되었습니다. Screen Resolution 및 Color Depth: 99.92% 안정. 변화는 모니터 교체 및 도킹 스테이션 이벤트와 상관관계가 있었습니다. WebGL Max Texture Size: 99.99% 안정. 브라우저와 관련된 변화는 전무했습니다. NVIDIA 드라이버 업데이트를 받은 기기에서 한 번 변했습니다. Audio Sample Rate: 100% 안정. 200대 전 기기와 50건의 업데이트에 걸쳐 변화가 전혀 없었습니다. 우리가 추적하는 신호 중 가장 안정적인 단일 신호입니다.
계층 2: 대체로 안정적 (95~99.5%)
이 신호들은 이따금 브라우저 업데이트와 함께 변하지만 대부분의 릴리스에 걸쳐 안정적으로 유지됩니다.
Canvas 2D Fingerprint: 97.8% 안정. 변화는 Chrome 118(폰트 렌더링 엔진 업데이트), Chrome 122(서브픽셀 안티앨리어싱 변경), Firefox 121(텍스트 셰이핑 업데이트)에서 발생했습니다. 각 변화는 해당 브라우저의 모든 기기에 동시에 영향을 주었으며, 이는 우리가 브라우저 버전 인식 매칭으로 처리하는 탐지 가능한 패턴입니다. WebGL Renderer String: 98.1% 안정. Chrome은 이따금 ANGLE 래퍼 문자열의 형식을 다시 지정합니다. 기반이 되는 GPU 정보는 변하지 않지만, 문자열 표현이 달라집니다. 우리는 문자열을 직접 해싱하는 대신 문자열에서 GPU 모델을 파싱합니다. Font List: 96.4% 안정. OS 업데이트는 이따금 시스템 폰트를 추가하거나 제거합니다. 브라우저 업데이트가 폰트 열거에 영향을 주는 경우는 드물지만, Chrome 120은 폰트가 보고되는 순서를 바꾸어 해시 기반 폰트 핑거프린팅을 망가뜨렸습니다. 우리는 순서 기반 해싱 대신 집합 기반 비교(집합 유사도)를 사용합니다.
계층 3: 중간 안정성 (80~95%)
이 신호들은 의미 있는 빈도로 변하지만, 변화와 변화 사이에는 여전히 유용한 식별 가치를 제공합니다.
Installed Plugins: 89.2% 안정. Chrome이 플러그인 배열(navigator.plugins)을 지속적으로 축소하면서 일부 맥락에서는 플러그인 가시성이 완전히 사라졌습니다. Firefox는 플러그인 열거를 유지했습니다. Safari는 이를 표준 집합으로 제한했습니다. CSS Feature Detection: 91.7% 안정. 브라우저 릴리스마다 새로운 CSS 기능이 추가되어, 우리의 CSS 프로빙으로 탐지되는 기능 집합이 바뀝니다. 우리는 영향을 줄이기 위해 새 기능에 기존 기능보다 낮은 가중치를 부여합니다. Touch Support: 93.1% 안정. Chrome이 기기 에뮬레이션 탐지를 조정할 때 데스크톱 브라우저가 보고하는 터치 지원이 이따금 바뀝니다.
계층 4: 불안정 (<80%)
이 신호들은 자주 변하므로 결코 주요 식별 기준이 되어서는 안 됩니다.
User Agent String: 42.3% 안정. Chrome의 User-Agent 축소 이니셔티브가 문자열 형식을 여러 차례 바꿨습니다. Firefox는 릴리스마다 버전 번호를 갱신합니다. Safari는 WebKit 버전 문자열을 정기적으로 수정합니다. 이것은 한때 단순 핑거프린팅 시스템의 근간이었지만, 그런 시스템들은 이제 망가졌습니다. Connection Type(navigator.connection): 68.4% 안정. 네트워크 전환(WiFi에서 셀룰러로, 다른 WiFi 네트워크로)에 따라 변합니다. Battery API: 71.2% 안정. 충전 상태와 브라우저 API 가용성에 따라 달라집니다. Chrome은 일부 맥락에서 Battery API 접근을 제한했습니다. Available Screen Area: 76.8% 안정. 작업 표시줄 가시성, 창 관리, 디스플레이 배율 조정에 따라 변합니다.
브라우저 간 비교
Chrome은 핑거프린팅 안정성 면에서 가장 변동이 심한 브라우저입니다. Google은 핑거프린팅 가능성을 줄이기 위해 적극적으로 노력하며, 이는 Chrome 업데이트가 Firefox나 Safari 업데이트보다 더 많은 신호를 망가뜨린다는 것을 의미합니다. 우리 연구 기간 동안:
Chrome은 수집 세션의 3.2%에서 신호 변화를 일으켰습니다. Firefox는 수집 세션의 1.8%에서 신호 변화를 일으켰습니다. Safari는 수집 세션의 1.1%에서 신호 변화를 일으켰습니다.
Safari의 낮은 변동성은 부분적으로 Apple이 연간 릴리스 수가 더 적기 때문이고, 부분적으로는 Safari의 핑거프린팅 대응책(Intelligent Tracking Prevention)이 API 반환 값을 바꾸는 대신 네트워크 수준에서 작동하기 때문입니다.
실무 권장 사항
이 분석을 바탕으로, 프로덕션 핑거프린팅 시스템을 위한 다섯 가지 권장 사항을 제시합니다.
user-agent를 식별 기준으로 절대 사용하지 마십시오. 가장 불안정한 식별 신호입니다. 브라우저 탐지와 계층 3 신뢰도 점수 산정에만 사용하십시오.
하드웨어 신호를 소프트웨어 신호와 분리하십시오. 하드웨어 신호(GPU, 화면, 오디오)는 소프트웨어 신호(user agent, 플러그인, CSS 기능)보다 40배 더 안정적입니다. 그에 맞게 가중치를 부여하십시오.
열거 가능한 신호에는 집합 기반 비교를 사용하십시오. 폰트 목록, 플러그인 목록, 기능 탐지 결과는 순서 기반 해싱이 아니라 집합 유사도나 이와 유사한 집합 거리 지표로 비교해야 합니다. 순서 변화는 흔하고, 내용 변화는 드뭅니다.
브라우저 버전 인식 매칭을 구현하십시오. Chrome 118이 모든 Chrome 사용자의 캔버스 렌더링을 동시에 바꿀 때, 시스템은 이를 대규모 신원 단절이 아니라 브라우저 업데이트로 인식해야 합니다. 브라우저 버전을 추적하고 버전별 매칭 허용 오차를 적용하십시오.
신호 안정성을 지속적으로 모니터링하십시오. 우리의 안정성 백분율은 과거 데이터를 기반으로 합니다. 향후 브라우저 업데이트가 어떤 신호의 안정성 프로필이든 바꿀 수 있습니다. 우리는 지속적인 모니터링을 실행하며 안정성이 바뀌면 신호 가중치를 자동으로 조정합니다.
tracio.ai에 미치는 영향
우리의 V3 다중 계층 식별 아키텍처는 이 안정성 분석을 직접 반영합니다. 계층 1 신호(하드웨어)는 60%의 가중치를 가집니다. 계층 2 신호(렌더링, 폰트)는 30%의 가중치를 가집니다. 계층 3 신호(브라우저 메타데이터, 연결)는 10%의 가중치를 가집니다. 이 가중 방식은 가장 안정적인 신호가 식별을 주도하도록 보장하는 한편, 불안정한 신호는 신원 단절을 일으키지 않으면서 신뢰도 점수 산정에 기여하도록 합니다.
결과: 50건의 브라우저 업데이트에 걸쳐 99.5%의 식별 안정성을 달성했으며, 이는 평면 해시 기반 핑거프린팅을 사용하는 시스템의 69%와 대비됩니다. 그 차이는 알고리즘적 영리함이 아니라, 아키텍처 결정에 적용된 경험적 신호 분석에서 나옵니다.