VPN조차도 이것으로부터는 당신을 숨길 수 없습니다 (브라우저 핑거프린팅)
원제 · Even a VPN Can't Hide You From This (Browser Fingerprinting)
핵심 요약
쿠키 차단, 시크릿 창, VPN 사용만으로는 핑거프린팅을 막을 수 없으며, 토르나 브레이브처럼 고유성을 숨기거나 무작위화하는 내장 보호 기능이 있는 브라우저를 사용해야 한다.
하이라이트
시크릿 창을 사용하고 VPN으로 IP 주소를 변경해도 핑거프린팅 기법을 통해 웹사이트는 동일한 사용자를 식별해 낸다.
화면 크기, 시간대, 언어, 프로세서 코어 개수 등의 브라우저 API 정보를 조합하면 33번의 질문만으로 전 세계 모든 사람 중 단 한 명을 특정할 수 있다.
스크립트가 브라우저 내부에 숨겨진 캔버스를 렌더링할 때 그래픽 카드와 글꼴 설정에 따라 미세한 픽셀 차이가 발생하여 고유한 데이터 포인트가 만들어진다.
알리익스프레스 사용 시 볼륨을 0으로 설정한 백그라운드 오디오 코드와 캔버스 읽기 스크립트가 봇 감지 도구로 실행되면서 블루투스 헤드폰 소리가 안 나는 문제가 발생했다.
토르 브라우저와 멀바드 브라우저는 모든 사용자에게 동일한 글꼴과 시간대를 제공하고 창 크기를 반올림하여 동일한 군중 속에 섞이도록 만든다.
브레이브 브라우저는 모든 브라우저에 약간씩 다른 무작위 답변을 부여하는 방식으로 핑거프린팅을 회피한다.
타임라인
핑거프린팅의 개념과 추적 지속성
웹사이트는 쿠키나 접속 위치와 무관하게 사용자의 브라우저를 고유하게 식별할 수 있는 방식을 활용한다. 100줄 미만의 코드로 작성된 테스트 페이지에서 시크릿 창과 VPN을 차례로 적용해 보아도 식별자 문자열은 변하지 않는다.
- 쿠키를 차단하고 시크릿 창을 열거나 VPN을 사용해도 웹사이트는 사용자를 알아낼 수 있다.
- 이 추적은 100줄이 채 되지 않는 자바스크립트 코드로 이루어진 핑거프린팅 기법을 통해 수행된다.
- 시크릿 창에서 접속하거나 VPN으로 IP를 변경해도 동일한 브라우저 ID가 그대로 유지된다.
브라우저 API와 스무 고개 방식의 식별 원리
웹사이트는 쿠키 배너 없이도 브라우저 API를 통해 엄청난 양의 기기 정보를 얻어낸다. 시간대 확인만으로 전체 인구의 90퍼센트가 제외되는 등 정보를 계속 반으로 쪼개어 단 한 명의 고유 사용자를 특정한다.
- 웹사이트는 화면 크기, 시간대, 언어, 프로세서 코어 개수 등의 브라우저 API 정보를 수집한다.
- 스무 고개 게임과 유사한 방식으로 정보를 좁혀나가면 33번의 질문으로 전 세계 모든 사람 중 단 한 명을 집어낼 수 있다.
- 관련 API를 전부 비활성화하는 것은 번거롭고 우회하는 다른 기법들도 존재한다.
캔버스, 오디오 렌더링 및 봇 감지 스크립트
그래픽 카드나 설치된 글꼴에 따라 캔버스 내 픽셀이 렌더링되는 방식이 달라져 고유한 데이터가 만들어진다. FingerprintJS 같은 오픈소스 라이브러리와 봇 감지 도구들이 이러한 원리를 활용하며, 백그라운드 오디오 코드가 헤드폰 작동을 방해하는 사례도 발생한다.
- 스크립트가 브라우저 내부에 캔버스를 렌더링하고 텍스트와 도형을 그리며 미세한 픽셀 차이를 만들어낸다.
- 사운드 생성 및 오디오 효과 통과 과정을 통해 기기마다 다른 원시 숫자가 반환된다.
- 알리익스프레스 이용 중 발견된 봇 감지 스크립트는 캔버스와 그래픽 카드 이름을 읽어내며 헤드폰 소리 출력에 영향을 주었다.
브라우저 테스트 방법과 핑거프린팅 회피 대책
디지털 권리 단체 EFF의 무료 사이트에서 브라우저가 추적기로부터 보호받고 있는지 진단할 수 있다. 프라이버시 확장 프로그램은 오히려 사용자를 더 눈에 띄게 만들므로, 군중 속에 섞이거나 무작위 답변을 부여하는 내장 보호 기능이 있는 브라우저를 사용하는 것이 효과적이다.
- EFF의 Cover Your Tracks 웹사이트를 통해 일반 크롬 브라우저의 고유 핑거프린트 여부를 쉽게 확인할 수 있다.
- 토르와 멀바드 브라우저는 모든 사용자가 동일하게 보이도록 만들어 군중 속에 섞이게 한다.
- 브레이브는 무작위 답변을 부여하며, 파이어폭스와 사파리도 핑거프린팅 차단 기능을 도입하고 있다.
설명
You can block cookies, go incognito and switch on a VPN, and a website can still tell it's you. Browser fingerprinting turns your screen, timezone, canvas and audio quirks into an ID you can't delete. If you care about privacy, test your own browser on Cover Your Tracks and see which browsers actually stop it. 🔗 Relevant Links My fingerprinting example: https://gist.github.com/warrenday/369179150d827bf273bbacb4f8e1ca78 ❤️ More about us Radically better observability stack: https://betterstack.com/ Written tutorials: https://betterstack.com/community/ Example projects: https://github.com/BetterStackHQ 📱 Socials Twitter: https://twitter.com/betterstackhq Instagram: https://www.instagram.com/betterstackhq/ TikTok: https://www.tiktok.com/@betterstack LinkedIn: https://www.linkedin.com/company/betterstack 📌 Chapters: 0:00 Even a VPN can't hide you 0:26 My fingerprinting demo page 1:02 Cookies vs fingerprints 1:27 Browser APIs and 20 questions 2:12 Canvas and audio fingerprinting 2:51 FingerprintJS and the AliExpress headphones 3:23 Test your own browser 3:57 How to avoid it
