Skip to content

브라우저 핑거프린트:WebGL

WebGL은 웹 페이지에서 3D 이미지를 렌더링하기 위한 JavaScript 브라우저 API입니다. 웹사이트는 WebGL을 사용하여 장치 핑거프린트를 식별할 수 있습니다. 일반적으로 웹사이트는 다음 두 가지 공격 방법을 사용합니다.

  1. WebGL 보고서 (WebGL Report): 전체 WebGL 브라우저 보고서 양식을 읽어 감지할 수 있습니다. 경우에 따라 더 빠른 분석을 위해 해시로 변환되기도 합니다.
  2. WebGL 이미지 (WebGL Images): 보이지 않는 3D 이미지를 렌더링하고 이를 해시 값으로 변환합니다. 최종 결과는 이미지를 계산하는 하드웨어 장치에 따라 달라지므로, 이 방법은 장치와 드라이버의 조합에 따른 고유한 값을 생성합니다.

Browserleaks 테스트와 같은 웹사이트를 통해 사이트가 API를 통해 어떤 정보에 접근할 수 있는지 확인할 수 있습니다.

WebGL 이미지 노이즈 기능 (WebGL Image noise feature)

WebGL 설정에서 노이즈(noise) 모드를 선택하면 후니오(Migratory Bird) 브라우저가 웹사이트에서 요청한 WebGL 판독값을 가로채어 특수한 노이즈를 추가합니다. 이 노이즈 값은 해당 브라우저 환경 내에서 일관되게 유지됩니다. 즉, 해당 파일에 대한 모든 WebGL 이미지 판독값이 동일한 방식으로 변경됨을 의미합니다. 예를 들어, 서로 다른 페이지에 있는 동일한 WebGL 이미지는 동일한 방식으로 변경되며, 서로 다른 브라우저 세션에 있는 동일한 이미지도 동일한 방식으로 변경됩니다.

이를 통해 브라우저 환경 내의 고유한 핑거프린트가 지속성을 갖게 됩니다.

WebGL 이미지 판독값에 무작위 노이즈가 추가되므로, 사이트가 데이터 분석 기법을 적용할 경우 핑거프린트는 100% 고유하게 나타납니다.

WebGL 메타데이터 마스킹 (WebGL Metadata masking)

WebGL을 노이즈 모드로 설정하면 WebGL 메타데이터가 후니오 브라우저에 의해 마스킹됩니다. 이는 앞서 언급한 방식이며, 향후 WebGL 메타데이터와 이미지를 별도로 숨길 수 있도록 개선될 예정입니다.

메타데이터 마스킹이 활성화되면 후니오 브라우저는 핑거프린트 데이터베이스에서 가져온 값을 기반으로 WebGL 공급업체(Vendor) 및 렌더러(Renderer) 매개변수를 변경합니다.