쿠키 없는 디바이스 핑거프린팅: 작동 원리
쿠키는 사라지고 있습니다. 클라이언트 측 저장소 없이도 지속적인 식별을 제공하는 디바이스 핑거프린팅의 작동 방식을 소개합니다.
쿠키는 사라지고 있습니다. Safari의 지능형 추적 방지(ITP)는 쿠키 수명을 7일로 제한합니다. Firefox의 향상된 추적 방지는 서드파티 쿠키를 완전히 차단합니다. Chrome의 프라이버시 샌드박스는 서드파티 쿠키를 단계적으로 폐지하고 있습니다. GDPR 동의 요건 때문에 사용자들은 점점 더 쿠키 배너를 거부하고 있습니다.
사기 방지 관점에서 이것은 문제입니다. 디바이스를 지속적으로 식별할 수 없다면, 상습 위반자를 추적하거나, 다중 계정을 탐지하거나, 의심스러운 세션들을 서로 연결할 수 없습니다. 디바이스 핑거프린팅은 디바이스를 그 기술적 특성을 통해 식별함으로써 이 문제를 해결합니다 — 쿠키도, localStorage도, 어떤 종류의 클라이언트 측 저장소도 없이.
신호 카테고리
패시브 핑거프린팅 (JavaScript 불필요)
페이지가 로드되기도 전에, 브라우저는 네트워크 수준의 신호를 통해 정보를 드러냅니다:
TLS 핑거프린팅 (JA4). TLS Client Hello 메시지에는 암호화 스위트, 확장, 타원 곡선, 서명 알고리즘이 담겨 있습니다. 저희는 JA4 해싱을 사용합니다 — 더 나은 세분성을 갖춘 JA3의 현대적 대체 방식입니다.
TCP/IP 스택 분석. TCP 윈도우 크기, TTL 값, MSS 설정은 운영체제마다 다릅니다. Linux, Windows, macOS는 각각 특징적인 TCP 스택 구성을 가지고 있습니다.
HTTP 헤더 분석. 헤더 순서, Accept-Language 값, 연결 설정은 브라우저마다 다릅니다.
액티브 핑거프린팅 (클라이언트 측 JavaScript)
Canvas 핑거프린팅. 저희는 세심하게 설계된 장면을 그립니다 — 특정 텍스트, 기하학적 도형, 그라디언트를요. GPU마다 안티에일리어싱, 서브픽셀 렌더링, 색상 혼합 차이 때문에 이를 미묘한 픽셀 수준의 차이로 렌더링합니다. 저희는 이 픽셀 데이터를 해싱합니다.
WebGL 핑거프린팅. WebGL은 GPU 벤더/렌더러 문자열, 최대 텍스처 크기, 지원되는 확장, 셰이더 성능을 노출합니다. 이 데이터는 GPU 모델과 드라이버 버전을 강하게 식별합니다.
AudioContext 핑거프린팅. 저희는 테스트 신호를 생성하고 그것이 어떻게 처리되는지 분석합니다. 오디오 하드웨어마다 부동소수점 정밀도 차이 때문에 측정 가능할 정도로 다른 출력을 만들어냅니다.
폰트 열거. 사용 가능한 시스템 폰트는 OS, 언어 팩, 설치된 소프트웨어에 따라 달라집니다. 저희는 canvas 측정 기법을 사용하여 약 300개의 진단용 폰트를 검사합니다.
Navigator 속성. CPU 코어 수, 디바이스 메모리, 플랫폼, 언어, 시간대, 화면 해상도, 색 심도, 포인터 및 터치 성능.
엔트로피 분석
모든 신호가 동일한 가중치를 갖는 것은 아닙니다. 저희는 각 신호의 엔트로피를 측정합니다:
| 신호 카테고리 | 대략적인 엔트로피 |
|---|---|
| Canvas + WebGL 결합 | 약 18비트 |
| 폰트 목록 | 약 8비트 |
| AudioContext | 약 5비트 |
| Navigator 속성 | 약 7비트 |
| TLS 핑거프린트 | 약 6비트 |
| 화면 + 디스플레이 | 약 4비트 |
| 시간대 + 언어 | 약 3비트 |
이를 결합하면, 저희의 130개 이상 신호는 약 50비트 이상의 엔트로피를 제공합니다 — 1000조 개가 넘는 개별 디바이스를 고유하게 식별하기에 충분합니다.
신호에서 안정적인 해시로
원시 신호 수집은 문제의 절반에 불과합니다. 브라우저 업데이트는 user agent 문자열을 바꿉니다. 드라이버 업데이트는 WebGL 매개변수를 변경합니다. 폰트 설치는 폰트 목록을 바꿉니다.
퍼지 매칭
정확히 일치하기를 요구하는 대신, 저희는 신호를 안정성과 엔트로피에 따라 가중치를 두는 퍼지 매칭 알고리즘을 사용합니다. 안정적인 신호(canvas, GPU 모델)는 휘발성 신호(user agent, 화면 해상도)보다 더 큰 가중치를 갖습니다.
후보 생성은 가장 안정적인 신호에 지역 민감 해싱(LSH)을 적용하여 잠재적 일치 항목을 식별합니다. 유사도 점수 산출은 모든 신호 카테고리에 걸쳐 가중 점수를 계산하며, 정상적인 디바이스 변화는 방문자 ID를 바꾸지 않되 실제 디바이스 변화는 바꾸도록 보정됩니다.
이로써 99.5% 정확도를 달성합니다 — 브라우저 업데이트, 쿠키 삭제, 시크릿 모드, 브라우저 전환 전반에서 재방문자를 정확하게 식별합니다.
프라이버시 보존 아키텍처
서버 측 처리. 모든 핑거프린트 연산은 저희 서버에서 이루어집니다. 클라이언트 측 에이전트는 원시 신호를 수집하지만 핑거프린트 해시를 연산하거나 저장하지 않습니다.
PII 미저장. 저희는 원시 신호가 아니라 핑거프린트 해시를 저장합니다. 이 해시는 일방향 함수입니다.
데이터 레지던시. EU 고객 데이터는 EU 데이터 센터에서 처리·저장됩니다. GDPR 제6조 1항 (f)는 사기 방지를 정당한 이익으로 인정합니다.
크로스 브라우저 식별
가장 어려운 과제는 서로 다른 브라우저에서 동일한 디바이스를 식별하는 것입니다. 저희는 브라우저와 무관한 신호에 의존합니다: GPU 하드웨어, 화면 특성, 시간대, 언어 설정, (OS 수준의) 설치된 폰트, TCP/IP 스택 특성.
크로스 브라우저 연결 정확도는 약 94%입니다 — 동일 브라우저 식별보다는 낮지만, 같은 디바이스에서 여러 브라우저에 걸친 다중 계정을 탐지하기에는 충분합니다.
통합
디바이스 핑거프린팅을 추가하는 데는 코드 세 줄이면 됩니다. 에이전트는 비동기로 로드되어 50ms 이내에 신호를 수집하고 저희 API로 전송합니다. 서버 응답에는 방문자 ID, 신뢰도 점수, 그리고 24개의 Smart Signals 전체가 포함됩니다.