매일 아침 개발자들은 브라우저 개발자 도구의 네트워크 탭을 열어 어떤 데이터가 오가는지 확인한다. 하지만 정작 브라우저가 웹사이트에 접속하는 그 짧은 찰나에, 우리가 의식하지 못한 채 얼마나 많은 정보를 내어주고 있는지는 간과하기 쉽다. 최근 개발자 커뮤니티에서 화제가 된 taken.은 방문 직후 첫 밀리초 동안 브라우저가 넘기는 데이터만으로 사용자의 위치, 기기 정보, GPU 사양, 심지어 설치된 폰트까지 어떻게 식별 가능한지 적나라하게 보여준다.
브라우저가 노출하는 표준 데이터의 실체
이 프로젝트는 해킹이나 취약점을 이용하지 않고, 오직 MDN Web Docs에 공개된 표준 JavaScript API만을 사용한다. 서버는 방문자의 IP 주소를 ip-api.com에 전달하여 도시와 인터넷 제공자를 확인하지만, 이 과정에서 어떠한 데이터도 저장하지 않는다. 화면에 표시되는 정보는 브라우저가 설계상 웹사이트에 제공하도록 되어 있는 값들이다. 예를 들어, 설치된 폰트는 렌더링된 텍스트의 너비를 측정하는 방식으로 감지하며, 이는 Electronic Frontier Foundation의 Cover Your Tracks 도구에서도 브라우저 고유성을 확인하는 핵심 지표로 활용된다.
예전에는 쿠키가 전부였지만 이제는 지문이 문제다
예전에는 웹 추적이라고 하면 쿠키(브라우저에 저장되는 작은 데이터 조각)를 삭제하는 것만으로 충분하다고 믿었다. 하지만 이제는 브라우저의 고유한 설정 조합 자체가 식별자가 되는 시대다. 2014년 Princeton University 연구진은 상위 10만 개 웹사이트 중 5%에서 캔버스 지문(브라우저에 숨겨진 이미지를 그리게 한 뒤 렌더링 픽셀을 읽어 기기를 식별하는 기법)을 발견했다. 또한, Clipboard API(사용자의 클립보드 내용을 읽거나 쓰는 도구)를 통해 단일 제스처만으로 복사된 비밀번호나 개인 정보를 탈취할 가능성도 존재한다. 특히 The Leaking Battery 논문은 배터리 잔량과 방전 시간만으로도 쿠키 없이 30분간 사용자를 추적할 수 있음을 증명했다.
개발자가 체감하는 변화는 설계의 근본적 취약점이다
개발자가 이 프로젝트를 통해 마주하는 가장 큰 충격은 이것이 버그가 아니라 브라우저의 설계 그 자체라는 점이다. taken.은 로그인 상태를 감지하는 favicon(웹사이트 아이콘) 로딩 기법이나, GPU와 폰트 정보를 조합해 생성하는 바코드 형태의 고유 식별자를 통해 현대 웹 환경이 얼마나 투명하게 노출되어 있는지 증명한다. 서버는 쿠키나 로컬 스토리지에 아무것도 저장하지 않으며 탭을 닫는 순간 방문자를 잊지만, 브라우저가 가진 표준 기능만으로도 이미 충분히 개인을 특정할 수 있다는 사실은 웹 표준 설계에 대한 근본적인 질문을 던진다.
결국 웹 브라우저는 사용자의 편의를 위해 설계된 수많은 API가 역설적으로 가장 강력한 추적 도구로 작동하고 있다는 사실을 증명한다.




