PowerScan
KO

브라우저 핑거프린팅: 사이트가 실제로 읽는 것

브라우저 핑거프린트 · 읽는 데 10분 · 작성자 PowerOps

사진: Unsplash

캔버스와 WebGL부터 오디오, 글꼴, 화면, 시간대까지 웹사이트가 수집하는 값을 항목별로 살펴보고, 무작위 신원보다 일관된 신원이 나은 이유를 설명합니다.

브라우저 핑거프린팅은 브라우저가 저장한 것이 아니라 브라우저가 보고하는 값으로 브라우저를 식별하는 방법입니다. 쿠키가 필요 없습니다. 브라우저는 어떤 웹 페이지든 물어볼 수 있는 질문에 답할 뿐이고, 그 답을 모으면 다시 알아볼 수 있을 만큼 고유해집니다.

수집되는 값

대부분의 핑거프린팅 스크립트는 같은 몇 가지 영역에서 값을 읽습니다.

눈에 띄는 것들

렌더링 관련 값

핑거프린팅이라고 하면 사람들이 떠올리는 값이 이것들입니다. 간접적이기 때문입니다. 페이지가 브라우저에 무언가를 그리게 한 다음, 실제로 그려진 결과를 그대로 읽어 옵니다.

네트워크 관련 값

모든 필드를 무작위로 바꾸는 것이 잘못된 본능인 이유

직관적인 방어책은 방문할 때마다 모든 것을 바꾸는 것입니다. 하지만 이는 두 가지 이유로 역효과를 냅니다.

첫째는 모순입니다. 무작위로 바뀐 필드들은 서로를 알지 못합니다. Windows라고 주장하는 User-Agent 옆에 Apple 하드웨어에서만 출시되는 WebGL 렌더러 문자열이 있으면, 어느 한 값만 있을 때보다 훨씬 강한 신호가 됩니다. 실제 기기는 내부적으로 일관되며, 합성된 기기만 스스로와 모순됩니다.

둘째는 불안정성입니다. 방문할 때마다 다른 기기를 보고하는 계정은 어느 실제 사람도 가지고 있지 않은 무언가를 묘사하고 있는 것입니다. 시간이 지나도 일관되다는 것이 평범한 사용자의 모습입니다.

프로필 신원이 다루는 범위

영역처리 방식
User-Agent와 플랫폼함께 생성되므로 주장하는 플랫폼이 주변 값과 일치함
화면과 픽셀 비율프로필별로 고정되며 실제 디스플레이가 보고하는 크기에서 선택됨
시간대와 로케일프로필별로 설정되며 사용하는 네트워크 경로와 대조됨
캔버스, WebGL, 오디오프로필별로 안정적인 처리를 적용하여 열 때마다 동일함
글꼴프로필이 주장하는 플랫폼과 일관된 프로필별 글꼴 집합
WebRTC프로필의 네트워크 경로와 모순되지 않도록 제한됨

내 작업 확인하기

프로필을 열고 핑거프린팅 테스트 페이지를 방문해 보세요. 여러 곳이 읽은 값을 무료로 공개합니다. 확인할 가치가 있는 두 가지는 예상과 다를 수 있습니다.

  1. 값들이 서로 일치하는가? 플랫폼, 글꼴, 그래픽 문자열, 시간대가 하나의 그럴듯한 기기를 설명해야 합니다.
  2. 지난번과 같은가? 프로필을 닫고 다시 열어 테스트를 새로고침하세요. 열 때마다 값이 바뀌는 프로필은 안정적이지 않으며, 중요한 것은 바로 안정성입니다.

테스트 페이지의 희소성 점수는 그중 가장 쓸모없는 숫자입니다. 그 페이지의 방문자와 비교한 수치인데, 방문자 대다수가 안티디텍트 브라우저를 테스트하는 사람들이기 때문입니다.

모든 글 · 스캔 실행