Fingerprinting WebGPU: thế hệ tiếp theo sau Canvas và WebGL
WebGPU phơi bày năng lực phần cứng sâu hơn cả Canvas và WebGL cộng lại — và đã có mặt trên Chrome, Edge, Firefox. Nó tiết lộ những gì, và vì sao sẽ thay thế các kỹ thuật cũ trong 2–3 năm tới.
WebGPU ra mắt cùng Chrome 113 vào năm 2023. Đến 2026, nó đã có trên mọi trình duyệt lớn ở mọi nền tảng lớn. Khác với WebGL — một API trình duyệt bọc quanh OpenGL ES 2.0 — WebGPU là giao diện trực tiếp tới các API GPU hiện đại: Vulkan trên Linux, Metal trên macOS, DirectX 12 trên Windows.
Điều này thay đổi những gì một trình duyệt có thể hỏi về phần cứng bên dưới. Fingerprinting bằng Canvas và WebGL dựa vào kết quả kết xuất. WebGPU cho phép truy vấn năng lực trực tiếp tới chính GPU, phơi bày những chi tiết kiến trúc mà kết quả kết xuất chỉ có thể gợi ý.
Với fingerprinting, đây là bước nhảy về chất lượng tín hiệu.
WebGPU phơi bày điều gì mà WebGL thì không
Bề mặt chẩn đoán của WebGL rất hạn chế. Phần hữu ích nhất là phần mở rộng WEBGL_debug_renderer_info, trả về chuỗi vendor và renderer — thường bị trình duyệt antidetect giả mạo hoặc bị các tính năng riêng tư lược bỏ.
WebGPU cung cấp các đối tượng GPUAdapter và GPUAdapterInfo với dữ liệu phong phú hơn hẳn:
- Vendor — định danh nhà sản xuất GPU (NVIDIA, AMD, Intel, Apple, Qualcomm).
- Architecture — họ kiến trúc GPU (Ampere, RDNA 2, Xe-LP, Apple M2, Adreno).
- Device — mẫu cụ thể, nếu có.
- Description — chuỗi mô tả cho người đọc.
Ngoài định danh, WebGPU còn phơi bày các giới hạn GPU — năng lực số chính xác của phần cứng. Chúng có thể truy vấn qua giao diện GPUSupportedLimits và gồm hơn 30 thuộc tính số:
- Kích thước texture tối đa —
maxTextureDimension2D - Kích thước buffer tối đa —
maxBufferSize - Số bind group tối đa —
maxBindGroups - Kích thước compute workgroup tối đa
- Số thuộc tính vertex tối đa
- Yêu cầu căn chỉnh cho storage buffer
Mỗi giá trị này do driver GPU đặt ra dựa trên năng lực phần cứng. Các thế hệ GPU khác nhau, kể cả cùng một nhà sản xuất, có tổ hợp giới hạn khác nhau. GPU năm 2019 có giới hạn khác GPU năm 2023 trong cùng một họ.
Vì sao khó giả mạo hơn
Trình duyệt antidetect giả mạo Canvas và WebGL bằng cách chặn lời gọi API rồi sửa kết quả. Canvas trả về hash của các điểm ảnh đã kết xuất — trình duyệt có thể kết xuất rồi tráo hash. WebGL bị truy vấn một số ít chuỗi, có thể thay thế trọn gói.
WebGPU thì khác. Bề mặt API rất lớn — hàng trăm phương thức và thuộc tính. Mỗi lời gọi đều cần một giá trị trả về hợp lý. Lớp giả mạo phải:
- Trình ra một danh tính nhất quán trên toàn bộ các giới hạn số — một GPU tự nhận là NVIDIA RTX 4090 phải trả về mọi giá trị giới hạn khớp với phần cứng đó.
- Xử lý được việc thực thi tính toán thật. WebGPU cho phép chạy compute shader. Nếu lớp giả mạo khai hiệu năng cao nhưng tính toán chậm, sự vênh nhau đó lộ ra qua đo thời gian.
- Bám theo thay đổi qua các bản cập nhật driver. Mỗi phiên bản driver GPU có giới hạn hơi khác nhau. Bảng giả mạo tĩnh sẽ lỗi thời khi driver mới phát hành.
Phần cứng thật cung cấp tất cả những thứ đó miễn phí. Giả mạo phần cứng đòi hỏi duy trì một cơ sở dữ liệu các tổ hợp giới hạn đúng cho từng mẫu GPU theo từng phiên bản driver — gánh nặng bảo trì liên tục mà phần lớn trình duyệt antidetect chưa gánh.
Hiệu năng tính toán như một dấu vân tay
WebGPU cho phép chạy compute shader tùy ý trong trình duyệt. Nghĩa là hệ thống phát hiện có thể thực thi các khối lượng công việc chuẩn hóa và đo thời gian hoàn thành.
Một bài đo bẻ hash, một phép nhân ma trận hay một tác vụ tính toán gần với kết xuất đều chạy ở tốc độ do phần cứng bên dưới quyết định. Hai khách truy cập cùng khai một mẫu GPU nhưng cho hiệu năng tính toán khác nhau thì có người đang nói dối về phần cứng.
Kỹ thuật này vượt qua hoàn toàn việc giả mạo dấu vân tay tĩnh. Khách truy cập có thể khai bất kỳ chuỗi GPU nào. Nhưng không thể khai một hiệu năng tính toán mà họ không có.
Cái giá phải trả là trải nghiệm người dùng. Chạy compute shader ở nền tiêu tốn chu kỳ GPU và có thể bị cảm nhận là ì ạch. Điều đó giới hạn mức độ mạnh tay khi áp dụng — thường là một lần kiểm tra với phiên đáng ngờ, thay vì giám sát liên tục.
Khả dụng của tính năng như một tín hiệu
WebGPU phơi bày các tính năng tùy chọn qua GPUAdapter.features. Một số GPU hỗ trợ những phần mở rộng cụ thể:
timestamp-query— cần GPU hiện đại có bộ đếm hiệu năngshader-f16— dấu phẩy động nửa độ chính xác, phổ biến trên GPU di độngtexture-compression-bc— Block Compression, chuẩn trên máy để bàntexture-compression-etc2— định dạng nén texture di độngtexture-compression-astc— định dạng nén texture di động
Bộ tính năng mang tính tất định theo từng mẫu GPU. Một máy Windows khai có tính năng Adreno di động sẽ bị lộ. Một thiết bị di động khai các định dạng nén chỉ có trên máy để bàn cũng bị lộ.
Sự nhất quán với WebGL
Trước WebGPU, trình duyệt chỉ có một bề mặt truy vấn GPU chính: WebGL. Nay có hai, và chúng buộc phải khớp nhau.
WebGL và WebGPU phơi bày cùng một GPU bên dưới. Câu trả lời của chúng phải nhất quán. Một trình duyệt báo NVIDIA RTX 4080 qua WebGL nhưng trả về giới hạn WebGPU khớp với GPU Intel tích hợp là điều bất khả trên phần cứng thật.
Tính nhất quán giữa hai API là thêm một tín hiệu cho phát hiện. Giả mạo một API thì đơn giản. Giả mạo hai API sao cho nhất quán với nhau khó hơn đáng kể — và các trình duyệt antidetect hiện nay phần lớn không làm.
WebGPU tiết lộ gì về hệ điều hành và driver
Ngoài định danh GPU, WebGPU còn phơi bày bối cảnh của ngăn xếp đồ họa:
- Trên Windows, WebGPU có thể cho thấy đang dùng Direct3D 11 hay Direct3D 12, điều này tương quan với phiên bản hệ điều hành và thời kỳ của driver.
- Trên macOS, mức hỗ trợ phiên bản Metal để lộ phiên bản macOS — vì các phiên bản Metal đi kèm bản cập nhật hệ điều hành.
- Trên Linux, mức hỗ trợ Vulkan để lộ bản phân phối và nguồn gốc driver (ví dụ NVIDIA độc quyền so với Mesa mã nguồn mở).
Không tín hiệu nào trong số này là trực tiếp — mỗi cái đều cần diễn giải. Nhưng gộp lại, chúng dựng nên bức tranh về ngăn xếp phần mềm bên dưới, vốn phải tương quan với dấu vân tay trình duyệt được khai báo. Sự vênh nhau chỉ ra dấu hiệu giả mạo.
Lộ trình áp dụng trong các ngăn xếp phát hiện
Fingerprinting WebGPU chưa phải kỹ thuật phát hiện phổ thông vào năm 2026, vì ba lý do:
- Hỗ trợ trình duyệt vẫn đang ổn định dần. WebGPU trên Firefox ra mắt năm 2024 nhưng phạm vi tính năng còn hạn chế. WebGPU trên Safari ra mắt năm 2024 nhưng với các giới hạn khác Chrome. Hệ thống phát hiện cần độ phủ rộng trước khi dựa vào tín hiệu WebGPU.
- Hỗ trợ WebGPU trên người dùng thực vẫn chưa đầy đủ. Thiết bị cũ không có GPU hỗ trợ các tính năng WebGPU. Một hệ thống phát hiện trừng phạt khách truy cập không có WebGPU sẽ có nguy cơ chặn nhầm người dùng hợp lệ dùng phần cứng năm năm tuổi.
- Trình duyệt antidetect chưa xây dựng đầy đủ khả năng giả mạo WebGPU, nghĩa là các tín hiệu dựa trên WebGPU hiện hiệu quả trước những kẻ tấn công tinh vi vốn tin rằng mình đã xóa dấu vết. Điều này sẽ đổi khi việc phát hiện được áp dụng rộng hơn và công cụ giả mạo đáp trả.
Chân trời áp dụng 2–3 năm là thực tế. Đến 2027–2028, tín hiệu WebGPU sẽ trọng yếu với phát hiện bot như WebGL hôm nay. Câu hỏi cho các đội phát hiện là khi nào bắt đầu thu thập dữ liệu WebGPU — câu trả lời là ngay bây giờ, để khi các tín hiệu này trở thành chủ đạo thì dữ liệu nền đã sẵn có.
Điều này có nghĩa gì với bên phòng thủ
Fingerprinting Canvas là kỹ thuật đã chín. Fingerprinting WebGL là kỹ thuật đã chín. Cả hai đang bị công cụ antidetect giả mạo tích cực với mức thành công tương đối.
Fingerprinting WebGPU là kỹ thuật còn non trẻ. Công cụ giả mạo chưa theo kịp. Điều đó tạo ra một cửa sổ — có lẽ 18–36 tháng — khi tín hiệu WebGPU tách bạch rõ ràng người dùng thật với bot tinh vi. Cửa sổ đó đáng để đầu tư.
Những tín hiệu nó tạo ra cũng khó giả mạo hơn về mặt cấu trúc so với Canvas hay WebGL. Kết xuất có thể bị chặn và sửa. Hiệu năng tính toán thì không. Có thể nói dối về bộ tính năng, nhưng không thể nhất quán trên toàn bộ bề mặt API. Mỗi thế hệ kỹ thuật fingerprinting lại đẩy chi phí giả mạo lên cao. WebGPU đẩy lên đáng kể.
Với các nền tảng nghiêm túc về phát hiện bot từ 2026 trở đi, WebGPU chính là nơi tín hiệu đang dịch chuyển tới.