WebGPU 핑거프린팅: Canvas와 WebGL 다음 세대
WebGPU는 Canvas와 WebGL을 합친 것보다 깊은 하드웨어 정보를 드러내며 Chrome, Edge, Firefox에서 이미 쓸 수 있습니다. 무엇을 노출하는지, 그리고 왜 2~3년 안에 기존 기법을 대체하는지 살펴봅니다.
WebGPU는 2023년 Chrome 113에 도입됐습니다. 2026년 현재 주요 플랫폼의 주요 브라우저 전반에서 사용할 수 있습니다. OpenGL ES 2.0을 감싼 브라우저 API였던 WebGL과 달리, WebGPU는 최신 GPU API에 직접 연결되는 인터페이스입니다. Linux에서는 Vulkan, macOS에서는 Metal, Windows에서는 DirectX 12를 사용합니다.
이는 브라우저가 그 아래 하드웨어에 관해 무엇을 질의할 수 있는지를 바꿔 놓습니다. Canvas와 WebGL 핑거프린팅은 렌더링 결과에 의존했습니다. WebGPU는 GPU 자체에 직접 능력을 질의할 수 있어, 렌더링 결과로는 암시밖에 할 수 없던 아키텍처 세부 정보를 드러냅니다.
핑거프린팅 관점에서 이는 신호 품질의 계단식 도약입니다.
WebGPU가 드러내고 WebGL이 드러내지 못하는 것
WebGL의 진단 표면은 제한적입니다. 가장 쓸모 있는 부분은 벤더와 렌더러 문자열을 반환하는 WEBGL_debug_renderer_info 확장인데, 안티디텍트 브라우저가 자주 위조하거나 프라이버시 기능이 제거해 버립니다.
WebGPU는 훨씬 풍부한 데이터를 담은 GPUAdapter와 GPUAdapterInfo 객체를 제공합니다.
- Vendor — GPU 제조사 식별자(NVIDIA, AMD, Intel, Apple, Qualcomm).
- Architecture — GPU 아키텍처 계열(Ampere, RDNA 2, Xe-LP, Apple M2, Adreno).
- Device — 제공되는 경우의 구체적인 모델.
- Description — 사람이 읽을 수 있는 문자열.
식별을 넘어 WebGPU는 GPU 한계값, 즉 하드웨어의 정확한 수치 능력을 노출합니다. GPUSupportedLimits 인터페이스로 질의할 수 있고 30개가 넘는 수치 속성을 포함합니다.
- 최대 텍스처 크기 —
maxTextureDimension2D - 최대 버퍼 크기 —
maxBufferSize - 최대 바인드 그룹 수 —
maxBindGroups - 최대 컴퓨트 워크그룹 차원
- 최대 정점 속성 수
- 스토리지 버퍼 정렬 요구 사항
이 값들은 각각 하드웨어 능력에 따라 GPU 드라이버가 설정합니다. 같은 벤더라도 GPU 세대가 다르면 한계값 조합이 다릅니다. 2019년 GPU는 같은 계열의 2023년 GPU와 한계값이 다릅니다.
위조하기가 더 어려운 이유
안티디텍트 브라우저는 API 호출을 가로채 결과를 바꾸는 방식으로 Canvas와 WebGL을 위조합니다. Canvas가 반환하는 값은 렌더링된 픽셀의 해시라서, 브라우저가 렌더링한 뒤 해시만 바꿔치기할 수 있습니다. WebGL은 통째로 교체 가능한 소수의 문자열을 질의받습니다.
WebGPU는 다릅니다. API 표면이 넓어 메서드와 속성이 수백 개에 이릅니다. 모든 호출에 그럴듯한 반환값이 필요합니다. 위조 계층은 다음을 해내야 합니다.
- 모든 수치 한계값에 걸쳐 일관된 정체성을 제시해야 합니다. NVIDIA RTX 4090이라고 주장하는 GPU는 그 하드웨어에 맞는 모든 한계값을 반환해야 합니다.
- 실제 연산 실행을 감당해야 합니다. WebGPU는 컴퓨트 셰이더 실행을 허용합니다. 위조 계층이 높은 성능을 주장하면서 느린 연산을 내놓으면 그 불일치는 타이밍으로 탐지됩니다.
- 드라이버 업데이트에 따른 변화를 추적해야 합니다. GPU 드라이버 버전마다 한계값이 조금씩 다릅니다. 정적인 위조 테이블은 새 드라이버가 나올 때마다 낡습니다.
실제 하드웨어는 이 모두를 공짜로 제공합니다. 하드웨어를 위조하려면 GPU 모델별, 드라이버 버전별로 참인 한계값 조합의 데이터베이스를 유지해야 합니다. 대부분의 안티디텍트 브라우저가 아직 떠맡지 않은 지속적인 유지보수 부담입니다.
지문으로서의 연산 성능
WebGPU는 브라우저에서 임의의 컴퓨트 셰이더를 실행할 수 있게 합니다. 즉 탐지 시스템이 표준화된 작업을 수행하고 걸린 시간을 측정할 수 있다는 뜻입니다.
해시 크래킹 벤치마크, 행렬 곱셈, 렌더링에 가까운 연산 작업은 모두 그 아래 하드웨어가 정하는 속도로 실행됩니다. 같은 GPU 모델을 주장하면서 서로 다른 연산 성능을 내는 두 방문자 중 하나는 하드웨어에 대해 거짓말을 하고 있는 것입니다.
이 기법은 정적 지문 위조를 통째로 우회합니다. 방문자는 원하는 어떤 GPU 문자열이든 주장할 수 있습니다. 하지만 갖고 있지 않은 연산 성능은 주장할 수 없습니다.
대가는 사용자 경험입니다. 백그라운드에서 컴퓨트 셰이더를 돌리면 GPU 사이클을 소모하고 느리다는 느낌을 줄 수 있습니다. 그래서 이 기법을 얼마나 공격적으로 쓸 수 있는지가 제한되며, 보통은 상시 모니터링이 아니라 의심스러운 세션에 대한 일회성 검사로 사용합니다.
신호로서의 기능 가용성
WebGPU는 GPUAdapter.features를 통해 선택적 기능을 노출합니다. 일부 GPU만 특정 확장을 지원합니다.
timestamp-query— 성능 카운터를 갖춘 최신 GPU 필요shader-f16— 반정밀도 부동소수점, 모바일 GPU에서 흔함texture-compression-bc— Block Compression, 데스크톱 표준texture-compression-etc2— 모바일 텍스처 포맷texture-compression-astc— 모바일 텍스처 포맷
기능 집합은 GPU 모델별로 결정적입니다. 모바일 Adreno 기능을 주장하는 Windows 기기는 걸립니다. 데스크톱 전용 압축 포맷을 주장하는 모바일 기기도 걸립니다.
WebGL과의 정합성
WebGPU 이전에 브라우저의 주요 GPU 질의 표면은 WebGL 하나였습니다. 이제 둘이 됐고, 둘은 서로 맞아떨어져야 합니다.
WebGL과 WebGPU는 동일한 GPU를 드러냅니다. 두 응답은 일관돼야 합니다. WebGL로는 NVIDIA RTX 4080을 보고하면서 WebGPU 한계값은 내장 Intel GPU에 맞는 값을 반환하는 브라우저는 실제 하드웨어에서는 존재할 수 없습니다.
API 간 정합성은 또 하나의 탐지 신호입니다. 하나의 API를 위조하는 일은 단순합니다. 두 API를 서로 모순 없이 위조하는 일은 훨씬 어렵고, 현재 안티디텍트 브라우저는 대체로 그렇게 하지 않습니다.
WebGPU가 드러내는 OS와 드라이버 정보
GPU 식별을 넘어 WebGPU는 그래픽 스택의 맥락도 드러냅니다.
- Windows에서는 Direct3D 11과 Direct3D 12 중 무엇을 쓰는지 드러날 수 있으며, 이는 OS 버전 및 드라이버 시기와 상관관계가 있습니다.
- macOS에서는 지원되는 Metal 버전이 macOS 버전을 드러냅니다. Metal 버전이 OS 업데이트와 함께 배포되기 때문입니다.
- Linux에서는 Vulkan 지원 수준이 배포판과 드라이버 출처를 드러냅니다(예: 독점 NVIDIA 대 오픈소스 Mesa).
이 신호들은 어느 것도 직접적이지 않으며 각각 해석이 필요합니다. 그러나 종합하면 보고된 브라우저 지문과 상관관계를 가져야 할 소프트웨어 스택의 그림이 만들어집니다. 어긋남은 위조를 가리킵니다.
탐지 스택 도입 시점
2026년 현재 WebGPU 핑거프린팅은 아직 주류 탐지 기법이 아니며, 이유는 세 가지입니다.
- 브라우저 지원이 여전히 안정화 중입니다. Firefox의 WebGPU는 2024년에 나왔지만 기능 범위가 제한적이었습니다. Safari의 WebGPU도 2024년에 나왔지만 Chrome과 한계값이 달랐습니다. 탐지 시스템이 WebGPU 신호에 기대려면 넓은 지원 범위가 필요합니다.
- 실사용자의 WebGPU 지원이 아직 완전하지 않습니다. 오래된 기기에는 WebGPU 기능을 지원하는 GPU가 없습니다. WebGPU가 없는 방문자에게 불이익을 주는 탐지 시스템은 5년 된 하드웨어를 쓰는 정상 사용자를 차단할 위험이 있습니다.
- 안티디텍트 브라우저가 아직 완전한 WebGPU 위조를 구축하지 못했습니다. 그래서 WebGPU 기반 신호는 흔적을 지웠다고 믿는 정교한 공격자에게 지금 특히 효과적입니다. 탐지 도입이 늘고 위조 도구가 대응하면 이 상황은 바뀝니다.
23년의 도입 시야는 현실적입니다. 20272028년이면 WebGPU 신호는 오늘날의 WebGL만큼 봇 탐지의 중심이 될 것입니다. 탐지 팀에게 남는 질문은 WebGPU 데이터를 언제부터 모으느냐이고, 답은 지금입니다. 그래야 이 신호가 주력이 될 때 과거 기준선이 준비돼 있습니다.
방어자에게 주는 의미
Canvas 핑거프린팅은 성숙한 기법입니다. WebGL 핑거프린팅도 성숙한 기법입니다. 둘 다 안티디텍트 도구가 상당한 성공률로 활발히 위조하고 있습니다.
WebGPU 핑거프린팅은 아직 젊은 기법입니다. 위조 도구가 따라오지 못했습니다. 그래서 대략 18~36개월의 창이 열립니다. 이 기간에는 WebGPU 신호가 실제 사용자와 정교한 봇을 깔끔하게 갈라 줍니다. 그 창에 투자할 가치가 있습니다.
이 기법이 만들어 내는 신호는 Canvas나 WebGL보다 구조적으로도 위조하기 어렵습니다. 렌더링은 가로챌 수 있습니다. 연산 성능은 그럴 수 없습니다. 기능 집합은 속일 수 있지만 API 표면 전체에 걸쳐 일관되게 속이기는 어렵습니다. 핑거프린팅 기법은 세대가 바뀔 때마다 위조 비용을 끌어올리며, WebGPU는 그 비용을 크게 끌어올립니다.
2026년 이후 봇 탐지를 진지하게 다루는 플랫폼이라면, 신호가 옮겨 가는 곳은 WebGPU입니다.