디지털 풋프린트 추적의 내부 작동 원리
TLS 핸드셰이크부터 canvas 렌더링까지 — 쿠키나 저장소 없이 130개가 넘는 수동 시그널로 기기의 디지털 풋프린트를 재구성하는 방법.
인터넷에 연결되는 모든 기기는 기술적 흔적, 즉 디지털 풋프린트를 남깁니다. tracio.ai에서는 쿠키, localStorage 또는 어떠한 형태의 영구적인 클라이언트 측 저장소에도 의존하지 않고, 단일 페이지 로드 동안 수집한 130개가 넘는 수동 시그널로부터 이 풋프린트를 재구성합니다. 이 글에서는 그 과정이 정확히 어떻게 작동하는지 설명합니다.
시그널 수집 계층
당사의 JavaScript 에이전트가 방문자의 브라우저에 로드되면, 여러 범주에 걸친 시그널을 동시에 수집하기 시작합니다. Canvas 렌더링, WebGL 파라미터 조회, AudioContext 처리, 폰트 열거, navigator 속성 읽기가 모두 병렬로 실행됩니다. 전체 수집 과정은 최신 하드웨어에서 50밀리초 이내에 완료됩니다.
핵심은 각 시그널이 기기의 하드웨어 및 소프트웨어 스택의 서로 다른 측면을 포착한다는 점입니다. Canvas 렌더링은 GPU, 드라이버, 폰트 렌더링 엔진을 반영합니다. WebGL 파라미터는 그래픽 카드 모델과 성능을 드러냅니다. AudioContext는 오디오 DSP가 부동소수점 연산을 처리하는 방식의 차이를 보여줍니다. Navigator 속성은 CPU 코어 수, 메모리, 플랫폼, 언어 설정을 보고합니다.
당사 팀은 지난달 20억 건의 이벤트에 걸쳐 이를 측정했습니다. 중앙값 수집 시간은 38ms였고, 99번째 백분위수는 52ms였습니다. 사실 우리는 먼저 순진한 방식, 즉 시그널을 순차적으로 수집하는 방식을 시도했습니다. 그 방식은 40배 느렸습니다. 타임아웃 펜스를 적용한 병렬 수집은 우리가 처음부터 제대로 내린 아키텍처 결정 중 하나였습니다.
TLS 핑거프린팅: 첫 번째 계층
당사의 JavaScript가 실행되기도 전에, 브라우저는 이미 TLS 핸드셰이크를 통해 상당한 정보를 드러냅니다. Client Hello 메시지에는 브라우저가 지원하는 암호화 스위트, 사용하는 TLS 확장, 선호하는 타원 곡선, 수용하는 서명 알고리즘이 담겨 있습니다. 이 정보는 브라우저의 TLS 라이브러리에 의해 결정되며, 브라우저 계열, 버전, 운영체제에 따라 크게 달라집니다.
당사는 JA4 해싱을 사용해 이 TLS 핑거프린트를 캡처합니다. JA4는 JA3를 대체하는 최신 방식으로, 더 나은 세분성과 버전 간 안정성을 제공합니다. JA4 해시 단독으로도 Chrome, Firefox, Safari를 구분할 수 있으며, 종종 특정 브라우저 버전 범위까지 식별을 좁혀 줍니다. 클라이언트 측 시그널과 결합하면 위조하기가 극히 어려운 교차 검증 계층을 제공합니다.
Canvas 및 GPU 핑거프린팅
Canvas 핑거프린팅은 서로 다른 GPU가 동일한 그리기 명령을 픽셀 단위로 미묘하게 다르게 렌더링한다는 사실을 활용합니다. Canvas API를 사용하면 정교하게 설계된 장면(여러 폰트로 된 특정 텍스트 문자열, 특정 좌표의 기하학적 도형, 정밀한 색상 정지점을 가진 그라데이션)을 그린 다음, 그 결과 픽셀 데이터의 해시를 계산할 수 있습니다.
렌더링 차이는 GPU 모델과 드라이버 버전에 따른 안티앨리어싱 알고리즘, 서브픽셀 렌더링, 색상 혼합, 폰트 힌팅의 편차에서 비롯됩니다. 동일한 GPU 모델을 사용하는 두 기기라도 서로 다른 드라이버 버전이나 운영체제에서 실행되면 다른 canvas 출력을 만들어 낼 수 있습니다. 이 때문에 canvas 해시는 당사의 가장 변별력 있는 시그널 중 하나가 됩니다.
WebGL 하드웨어 프로파일링
WebGL API
는 렌더러와 벤더 문자열을 훨씬 넘어서는, 그래픽 서브시스템에 대한 상세한 정보를 노출합니다. 당사는 최대 텍스처 크기, 셰이더 정밀도 형식, 지원 확장, 뷰포트 크기, 그리고 GPU 모델과 드라이버 구성에 따라 달라지는 수십 가지 다른 파라미터를 조회합니다.
이러한 파라미터의 조합은 상세한 하드웨어 프로필을 만들어 냅니다. 예를 들어 NVIDIA RTX 4070을 장착한 기기는 AMD RX 7800 XT를 장착한 기기와는 다른 최대 텍스처 크기, 다른 셰이더 정밀도, 다른 확장 지원을 보고합니다. 이 하드웨어 프로필은 본질적으로 안정적입니다. 브라우저 업데이트로는 변하지 않으며, 오직 하드웨어나 드라이버 변경으로만 바뀝니다.
오디오 처리 핑거프린팅
Web Audio API는 또 다른 하드웨어 의존적 시그널 소스를 제공합니다. 당사는 오실레이터 노드를 생성하고 이를 다이내믹스 컴프레서에 연결한 뒤 출력 버퍼를 측정합니다. 오디오 하드웨어와 운영체제에 따른 부동소수점 정밀도, DSP 구현, 리샘플링 알고리즘의 차이는 출력에서 측정 가능한 편차를 만들어 냅니다.
오디오 핑거프린트는 고유성은 중간 정도이지만 안정성은 매우 뛰어납니다. 오디오 처리 파이프라인은 사용자가 오디오 하드웨어를 교체하거나 운영체제를 재설치하지 않는 한 좀처럼 변하지 않습니다. 이 때문에 오디오 시그널은 당사의 다단계 식별 시스템에서 유용한 앵커 역할을 합니다.
시그널 융합 및 신원 확인
원시 시그널은 암호화되어 당사 서버로 전송되며, 서버에서 기기 식별 엔진이 3단계 해싱 시스템을 통해 이를 처리합니다. 하드웨어 수준 시그널(canvas, WebGL, 오디오)은 안정적인 핵심 신원인 Tier 1을 형성합니다. 브라우저 수준 시그널(기능 감지, CSS 속성, 미디어 성능)은 Tier 2를 형성하며, 브라우저 업데이트로 인한 예상 가능한 변동을 처리하기 위해 세션 간 매칭을 거쳐 처리됩니다. 변동성이 큰 시그널(user agent, 시간대, 언어)은 Tier 3을 형성하며, 신원 결정을 주도하지 않으면서 신뢰도 점수 산정에 기여합니다.
융합 알고리즘은 각 시그널의 고유성과 안정성에 따라 가중치를 부여합니다. 희귀한 canvas 해시의 일치는 흔한 화면 해상도의 일치보다 훨씬 큰 가중치를 갖습니다. 이러한 가중치 방식은 일부 시그널이 변경되더라도 식별이 정확하게 유지되도록 보장합니다.
저장소 없음, 쿠키 없음
당사 시스템의 핵심 설계 원칙은 식별이 어떠한 형태의 클라이언트 측 저장소에도 의존하지 않는다는 것입니다. 당사는 추적 목적으로 쿠키를 설정하거나, localStorage에 쓰거나, IndexedDB를 사용하지 않습니다. 방문자 ID는 전적으로 기기의 고유한 특성, 즉 하드웨어, 소프트웨어 스택, 네트워크 구성으로부터 도출됩니다. 이는 쿠키 삭제, 시크릿 모드, 심지어 브라우저 재설치를 거쳐도 식별이 유지된다는 것을 의미합니다.
아키텍처에 의한 프라이버시
당사는 오직 기술적 브라우저 속성만 수집하며 — 브라우징 기록, 폼 데이터, 개인 콘텐츠는 수집하지 않으므로 — 프라이버시에 미치는 영향이 최소화됩니다. W3C Fingerprinting Guidance는 브라우저 시그널의 책임 있는 사용을 위한 모범 사례를 제시하며, 당사의 아키텍처는 이러한 원칙에 부합합니다. 클라우드 호스팅 배포에서는 모든 처리가 귀사의 인프라에서 이루어집니다. 어떠한 방문자 데이터도 당사 서버에 도달하지 않습니다. 이 아키텍처는 GDPR, CCPA를 비롯한 여러 프라이버시 규정 준수를 간단하게 만들어 줍니다.