PowerScan
VI

Chuỗi bộ kết xuất WebGL và tín hiệu phần cứng: GPU của bạn tiết lộ bao nhiêu về bạn

Dấu vân tay trình duyệt · 6 phút đọc · bởi PowerScan

Ảnh: Unsplash

Phần cứng mà trình duyệt chạy trên đó rò rỉ vào trang theo nhiều cách nhỏ. Không cách nào gọi tên chiếc máy, nhưng cùng nhau chúng mô tả nó đủ sát để phân biệt nó với hầu hết những máy khác.

Chuỗi bộ kết xuất

WebGL cung cấp một phần mở rộng tên WEBGL_debug_renderer_info với hai giá trị: nhà sản xuất không bị che và bộ kết xuất không bị che. Trên Windows với Chromium, bộ kết xuất thường có dạng như ANGLE (NVIDIA, NVIDIA GeForce RTX 2060 SUPER (0x00001F06) Direct3D11 vs_5_0 ps_5_0, D3D11). Một dòng đó cho biết nhà sản xuất GPU, mẫu chính xác, mã thiết bị PCI, API đồ họa và mô hình shader, vốn cũng là gợi ý mạnh về hệ điều hành, vì chuỗi đó chỉ tồn tại trên Windows.

Firefox và Safari đã có lúc che hoặc tổng quát hóa chuỗi này; Chromium thì để lộ nó. Một trình duyệt che nó sẽ trả về một giá trị chung, và trang chẩn đoán hiển thị "thông tin bộ kết xuất đã bị che" thay vì đoán.

Số lượng và kích thước

navigator.hardwareConcurrency trả về số luồng CPU logic. navigator.deviceMemory trả về lượng RAM xấp xỉ, làm tròn về một tập giá trị nhỏ và bị giới hạn ở 8 trong Chromium, nên máy 32 GB báo cáo 8. screen.width và screen.height cho kích thước màn hình, availWidth và availHeight trừ đi thanh tác vụ, và devicePixelRatio tiết lộ mức co giãn. screen.colorDepth hầu như luôn là 24. navigator.maxTouchPoints phân biệt thiết bị cảm ứng với phần còn lại.

Một số giá trị này có sức định danh cao bất thường so với vẻ vô hại của chúng. Số luồng chỉ có một ít giá trị phổ biến, nhưng nó là một trong những trường mà một dịch vụ lấy vân tay thương mại nổi tiếng đánh trọng số lớn, chính vì nó rẻ và ổn định. Kích thước màn hình kết hợp với tỷ lệ điểm ảnh và chiều cao khả dụng thu hẹp một chiếc máy nhiều hơn so với user agent.

Thiết bị đa phương tiện

navigator.mediaDevices.enumerateDevices() trả về các camera, micro và loa mà hệ thống có. Khi chưa có quyền, các trình duyệt hiện đại trả về loại và số lượng nhưng nhãn để trống, nên trang chỉ biết "một camera, một micro, một đầu ra" và không hơn. Cấp quyền cho bất kỳ trang nào sẽ để lộ các nhãn. Một trang chẩn đoán chỉ hiển thị số lượng đang cư xử như một trang không có quyền.

Góc nhìn về tính nhất quán, một lần nữa

Tín hiệu phần cứng là nơi việc giả mạo hay sai nhất. Một hồ sơ tự nhận là MacBook với bộ kết xuất NVIDIA Direct3D, 24 luồng và màn hình 1366×768 đang mô tả một chiếc máy không tồn tại. Các trang web không cần cơ sở dữ liệu để nhận ra điều đó; vài quy tắc là đủ bắt được. Nếu một hồ sơ thay đổi bất kỳ giá trị nào trong số này, nó phải thay đổi tất cả sang một tổ hợp mà một thiết bị thật thực sự xuất xưởng, và giữ nguyên như vậy qua các lần truy cập.

Cần kiểm tra gì

Đọc chuỗi bộ kết xuất và hỏi nó có khớp với hệ điều hành trong user agent không. Đọc kích thước màn hình và hỏi nó có khớp với tỷ lệ điểm ảnh và chiều cao khả dụng không. Đọc số luồng và bộ nhớ và hỏi cặp đó có hợp lý với GPU kia không. Trang chẩn đoán bày chúng cạnh nhau đúng vì mục đích này; phán đoán là của bạn.

Tất cả bài viết · Chạy quét