1. 브라우저 핑거프린팅이란 무엇인가?
브라우저 핑거프린팅(Browser Fingerprinting)은 웹 브라우저의 내부 설정, 그래픽 카드(GPU), 운영체제, 하드웨어 사양 등의 세부 기술 정보를 복합적으로 수집하여 사용자의 기기를 고유하게 식별하는 기법입니다.
1920x1080 해상도와 같은 개별 속성은 수많은 사용자가 공유하지만, 수십 가지의 미세 환경 변수를 조합하면 통계적으로 유일무이한 디지털 지문이 형성되어 쿠키 없이도 여러 사이트에 걸쳐 사용자를 지속적으로 추적할 수 있습니다.
2. 주요 엔트로피 수집 벡터
3. Canvas 및 WebGL 렌더링 미세 오차
보이지 않는 <canvas> 요소에 복잡한 2D 폰트와 컬러 알파 그라디언트를 렌더링하면, 운영체제의 그래픽 서브시스템(DirectX, Metal, OpenGL)과 물리적 GPU 실리콘의 미세 부동소수점 오차로 인해 장치마다 서로 다른 RGB 픽셀 배열이 생성됩니다.
이를 Base64 Data URL로 추출하여 암호화 해시를 계산하면 세션이 바뀌어도 유지되는 지속적인 고유 식별자가 생성됩니다.
4. 시크릿 모드로 추적을 막을 수 없는 이유
시크릿 모드(비공개 브라우징)는 창을 닫을 때 쿠키, 캐시, 방문 기록을 삭제할 뿐입니다. 사용자의 물리적 그래픽 카드, CPU 구조, 디스플레이 해상도 및 폰트 렌더링 엔진은 시크릿 창에서도 완전히 동일하게 동작하므로 핑거프린팅 추적을 차단할 수 없습니다.
5. 현대적 프라이버시 방어 및 대응 기술
현대 프라이버시 보호 브라우저는 다음 두 가지 접근 방식으로 핑거프린팅에 대응합니다:
- 획일화(Uniformity - 예: Tor 브라우저): 모든 사용자의 시스템 환경을 완전히 동일하게 위장합니다(표준 창 크기 고정, 기본 폰트 강제, UTC 표준시 적용).
- 노이즈 주입(Noise Injection - 예: Brave, Safari): Canvas 및 WebGL 픽셀 계산 결과에 감지하기 어려운 난수 노이즈를 미세하게 주입하여 매 요청마다 서로 다른 일회성 해시가 생성되도록 만듭니다.