Curious TechieDev Toolbox
전체 가이드/개인정보 & 보안8 min read

브라우저 핑거프린팅과 캔버스(Canvas) 추적의 원리

쿠키 없이 사용자를 식별하는 기법: Canvas 렌더링 미세 오차, AudioContext 노이즈, WebGL 속성 및 프라이버시 보호 대책.

핵심 요약 (Key Takeaways)
  • 브라우저 핑거프린팅은 하드웨어와 소프트웨어의 수십 가지 속성을 조합하여 고유한 기기 식별자를 생성합니다.
  • 쿠키나 로컬 스토리지를 사용하지 않으며, 시크릿 모드에서도 동일하게 식별할 수 있습니다.
  • 캔버스 핑거프린팅은 GPU 드라이버 및 폰트 래스터화 과정에서 발생하는 미세한 픽셀 차이를 이용합니다.
  • AudioContext 분석은 사운드 하드웨어의 오디오 버퍼 연산 오차를 감지하여 지문을 만듭니다.
  • 가장 효과적인 대응책은 캔버스 렌더링에 미세한 노이즈를 주입하거나 Tor 브라우저처럼 환경을 표준화하는 것입니다.

1. 브라우저 핑거프린팅이란 무엇인가?

브라우저 핑거프린팅(Browser Fingerprinting)은 웹 브라우저의 내부 설정, 그래픽 카드(GPU), 운영체제, 하드웨어 사양 등의 세부 기술 정보를 복합적으로 수집하여 사용자의 기기를 고유하게 식별하는 기법입니다.

1920x1080 해상도와 같은 개별 속성은 수많은 사용자가 공유하지만, 수십 가지의 미세 환경 변수를 조합하면 통계적으로 유일무이한 디지털 지문이 형성되어 쿠키 없이도 여러 사이트에 걸쳐 사용자를 지속적으로 추적할 수 있습니다.

2. 주요 엔트로피 수집 벡터

Canvas 래스터화 차이GPU 드라이버와 폰트 렌더러의 서브픽셀 스무딩 및 안티에일리어싱 처리로 발생하는 픽셀 단위의 미세 오차.
WebGL GPU 프로파일링마스킹되지 않은 실제 GPU 제조사, 렌더러 모델명 및 셰이더 부동소수점 연산 정밀도 한계 추출.
AudioContext 음향 신호 처리시스템 DAC(디지털-아날로그 변환기)와 오디오 버퍼를 거치는 합성 주파수 신호의 미세 감쇠율 측정.
하드웨어 병렬도논리 CPU 코어 수(navigator.hardwareConcurrency) 및 대략적인 시스템 메모리(RAM) 용량 감지.

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 픽셀 계산 결과에 감지하기 어려운 난수 노이즈를 미세하게 주입하여 매 요청마다 서로 다른 일회성 해시가 생성되도록 만듭니다.