WebGL Fingerprinting là gì?
Trình duyệt Scrapeless Scraping cung cấp các phiên Chromium được quản lý mà các hồ sơ trình duyệt có thể được cấu hình cho tự động hóa nhận thức đồ họa nhất quán.
Tóm tắt
- WebGL fingerprinting đo lường khả năng đồ họa và hành vi kết xuất. Nó có thể truy vấn các tham số API, các tiện ích mở rộng được hỗ trợ, độ chính xác của shader và đầu ra pixel.
- Tên GPU chỉ là một tín hiệu. Các trình điều khiển, lớp dịch thuật trình duyệt, kết xuất phần mềm và các phần mở rộng được tiết lộ cũng hình thành kết quả.
- WebGL và việc đánh dấu dấu vân tay canvas có sự trùng lặp nhưng không hoàn toàn giống nhau. WebGL thực hiện một ống dẫn đồ họa có thể lập trình, trong khi canvas hai chiều tập trung vào một lộ trình kết xuất khác.
- Việc vô hiệu hóa WebGL có thể làm cho các trang hiện đại không hoạt động. Bản đồ, trình xem sản phẩm, hình ảnh khoa học và trò chơi có thể phụ thuộc vào nó.
- Một hồ sơ trình duyệt đáng tin cậy định hình WebGL với nền tảng được tuyên bố. Nhà cung cấp, trình kết xuất, mở rộng, màn hình và gia đình trình duyệt nên mô tả một môi trường hợp lý.
Tại sao tín hiệu đồ họa cần ngữ cảnh
WebGL fingerprinting ảnh hưởng đến cách trình duyệt tiết lộ trạng thái, hiển thị nội dung, hoặc quyết định khi nào một hành động tự động là an toàn. Một định nghĩa chính xác ngăn các đội ngũ xem một tín hiệu hẹp như một câu trả lời phổ quát. Nó cũng làm cho việc chẩn đoán lỗi thử nghiệm trở nên dễ dàng hơn vì hành vi trình duyệt mong đợi gắn liền với một vòng đời, API hoặc ranh giới hệ thống được ghi tài liệu.
Đối với tự động hóa web, câu hỏi thực tiễn luôn hẹp hơn “liệu trang đã sẵn sàng chưa?” hay “liệu trình duyệt trông có giống thật không?” Bước tiếp theo có thể cần một điều khiển được kích hoạt, một khung hoàn tất điều hướng, một thành phần gắn kết cây bên trong của nó, hoặc một bề mặt kết xuất giữ cho nhất quán. Các phần dưới đây biến khái niệm thành những kiểm tra có thể quan sát được thay vì dựa vào truyền thuyết.
Một Định Nghĩa Trực Tiếp về WebGL Fingerprinting
WebGL fingerprinting là một kỹ thuật chủ động lấy tín hiệu môi trường từ giao diện WebGL của trình duyệt. Một script có thể kiểm tra khả năng đồ họa và render một cảnh được kiểm soát, sau đó so sánh các tham số hoặc pixel được trả về với kết quả từ các trình duyệt khác. Tín hiệu phản ánh ngăn xếp đồ họa đã được tiết lộ, bao gồm trình duyệt, lớp dịch, driver, GPU hoặc trình render phần mềm, và môi trường hệ điều hành.
WebGL tự nó là một API đồ họa để vẽ nội dung tương tác hai chiều và ba chiều trong một canvas. Thông số kỹ thuật WebGL của Khronos định nghĩa một liên kết JavaScript dựa trên các khái niệm OpenGL ES và bao gồm các quy tắc nhằm làm cho API an toàn cho nội dung web. Việc phân tích dấu vân tay định hình lại khả năng báo cáo hợp pháp và kết xuất xác định của API thành một kênh quan sát.
Một dấu vân tay WebGL không nên được so sánh với một số sê-ri. Nhiều máy móc tiết lộ cùng một chuỗi trình tạo hình và tạo ra cùng một hình ảnh kiểm tra. Giá trị nằm ở việc kết hợp một số quan sát và so sánh chúng trong một quần thể. Một kết quả có thể giúp phân biệt các lớp môi trường rộng mà không xác định riêng lẻ một thiết bị.
Hai Gia Đình Tín Hiệu WebGL
Gia đình đầu tiên bao gồm các tham số được truy vấn. Một trang có thể kiểm tra kích thước kết cấu tối đa, các phần mở rộng được hỗ trợ, độ chính xác màu sắc và độ sâu, hỗ trợ khử răng cưa, định dạng độ chính xác shader, hoặc thông tin nhà cung cấp và bộ kết xuất nếu được hiển thị. Mỗi trường đều bị ràng buộc bởi trình duyệt và việc triển khai đồ họa. Vectơ khả năng kết hợp có thể thu hẹp tập hợp các môi trường phù hợp.
Gia đình thứ hai đến từ đầu ra đã được kết xuất. Một kịch bản xây dựng các shader, hình học, kết cấu, các phép trộn, và một sự sắp xếp máy ảnh, vẽ cảnh, và đọc các pixel của framebuffer. Các triển khai khác nhau nhằm mục tiêu đạt được kết quả tương thích, nhưng độ chính xác, hành vi của trình điều khiển, việc biên dịch shader, và rasterization có thể tạo ra những khác biệt nhỏ. Các pixel sau đó có thể được giảm xuống thành một băm để so sánh.
The Tổng quan về API WebGL của MDN giải thích mối quan hệ giữa WebGL và phần tử canvas HTML. Mối quan hệ đó là lý do một số cuộc thảo luận làm mờ ranh giới giữa WebGL fingerprinting và canvas fingerprinting. Một cuộc kiểm tra hữu ích ghi lại xem liệu đầu dò đã sử dụng ngữ cảnh vẽ hai chiều, ngữ cảnh WebGL, truy vấn các tham số, vẽ pixel, hoặc một vài trong số này cùng một lúc.
Những gì hình thành kết quả?
GPU vật lý có thể quan trọng, nhưng các trình duyệt thường chèn các lớp dịch thuật và an toàn giữa JavaScript và phần cứng. Một trình duyệt có thể ánh xạ các thao tác WebGL sang Direct3D, Metal, Vulkan, OpenGL hoặc một triển khai phần mềm. Chuỗi trình kết xuất có thể mô tả ngăn xếp trung gian đó thay vì phơi bày phần cứng thô. Các bản cập nhật trình điều khiển và thay đổi trình duyệt có thể thay đổi bề mặt quan sát mà không cần thay thế phần cứng.
Việc kết xuất phần mềm đặc biệt quan trọng trong các container, máy ảo, công nhân tích hợp liên tục và môi trường từ xa. Nó có thể cung cấp hành vi đáng đoán khi tăng tốc phần cứng không khả dụng, nhưng nó cũng có thể tạo ra một cụm dễ nhận diện. Một hồ sơ tuyên bố là một chiếc laptop tiêu dùng phổ biến trong khi tiết lộ một trình kết xuất phần mềm bất thường đáng được xem xét tính nhất quán.
Các tín hiệu từ trình duyệt khác cung cấp ngữ cảnh. Kích thước màn hình và tỷ lệ điểm ảnh thiết bị ảnh hưởng đến kích thước canvas. Hệ điều hành và họ trình duyệt giới hạn các backend đồ họa có thể xảy ra. Tác nhân người dùng, chuỗi nền tảng và hỗ trợ tính năng nên đồng nhất với bề mặt WebGL. Dấu vân tay trở nên mạnh mẽ hơn khi những quan sát độc lập này củng cố một câu chuyện, và yếu hơn khi chúng mâu thuẫn với nhau.
WebGL Fingerprinting, Quyền riêng tư và Bảo mật
Việc phát hiện khả năng WebGL hỗ trợ nâng cao tiến bộ hợp pháp: một trang web có thể chọn kích thước kết cấu, hiệu ứng, hoặc kết xuất dự phòng mà một thiết bị có thể xử lý. Các hệ thống bảo mật cũng có thể sử dụng tín hiệu đồ họa như một đầu vào khi đánh giá sự thay đổi đột ngột trong môi trường tài khoản. Vấn đề bảo mật bắt đầu khi các quan sát chi tiết được sử dụng cho sự tương quan giữa các phiên hoặc các trang không mong đợi.
Cái Phân tích của W3C về việc in dấu vân tay hoạt động đối xử với việc kết xuất các mẫu đồ họa và đọc đặc điểm thiết bị như một bề mặt in dấu vân tay. Hướng dẫn khuyến nghị giảm thiểu lượng thông tin ngẫu nhiên không cần thiết, hạn chế khả năng có sẵn khi thích hợp, và giữ hoạt động in dấu vân tay có thể phát hiện được. Nó cũng cảnh báo rằng một biện pháp phòng ngừa không thể loại bỏ khả năng bị in dấu từ toàn bộ nền tảng web.
Thiết kế quan tâm đến quyền riêng tư do đó hỏi liệu các giá trị khả năng chính xác có cần thiết cho chức năng, thời gian giữ kết quả là bao lâu, và liệu chúng có được định rõ cho một nguồn gốc. Các đội tự động hóa có trách nhiệm tương tự: sử dụng điều khiển hồ sơ đồ họa cho việc kiểm tra hoặc quy trình dữ liệu được ủy quyền, giữ việc thu thập tập trung vào nhiệm vụ, và tránh dạy các mẫu truy cập mà không tuân theo quy tắc của trang.
Ý nghĩa cho Trình duyệt Headless và Đám mây
Trình duyệt headless vẫn là một trình duyệt, nhưng cấu hình đồ họa của nó có thể khác biệt so với một phiên desktop. Các cờ dòng lệnh, thư viện container, khả năng GPU, cấu hình hiển thị từ xa, và bản dựng trình duyệt đều ảnh hưởng đến WebGL. Đối xử với chế độ headless như một dấu vân tay toàn cầu che giấu các sự khác biệt này và làm cho các lỗi khó chẩn đoán hơn.
Các hồ sơ trình duyệt đám mây nên định nghĩa hành vi đồ họa bên cạnh tác nhân người dùng, hệ điều hành, phông chữ, khung nhìn, tỷ lệ pixel, địa phương, và múi giờ. Mục tiêu không phải là chọn chuỗi bộ kết xuất phổ biến nhất một cách độc lập. Mục tiêu là trình bày một môi trường hoàn chỉnh mà khả năng và đầu ra WebGL của nó phù hợp với các thuộc tính khác và vẫn ổn định trong suốt phiên dự kiến.
Khi một trang yêu cầu WebGL cho nội dung, việc vô hiệu hóa nó không phải là một biện pháp phòng thủ trung lập. Các trình xem ba chiều, bản đồ nâng cao, bề mặt lập biểu, trò chơi, và xem trước mô hình có thể hiển thị trống rỗng hoặc quay lại các giao diện hạn chế. Một triển khai tương thích với tiêu chuẩn với các giá trị hồ sơ hợp lý thường bảo tồn nhiều chức năng hơn so với việc xóa API rộng rãi.
Cách kiểm tra Hồ sơ WebGL
Ghi lại bản dựng trình duyệt, hồ sơ hệ điều hành, chế độ đồ họa, giá trị bộ kết xuất và nhà cung cấp, các phần mở rộng được hỗ trợ, giới hạn chính, độ chính xác của shader, và một hash từ một cảnh thử nghiệm cố định. Lặp lại phép kiểm tra bên trong một phiên để thiết lập tính ổn định. Sau đó so sánh các phiên mới được tạo từ cùng một hồ sơ và các hồ sơ tách biệt được thiết kế để đại diện cho các thiết bị khác nhau.
Cũng thử nghiệm việc kết xuất chức năng. Một phép kiểm tra dấu vân tay có thể thông qua trong khi một bản đồ thực sự hoặc trình xem không thành công vì các phần mở rộng, giới hạn kết cấu, hoặc việc tạo ngữ cảnh khác nhau. Xác nhận rằng trang có thể tạo một ngữ cảnh WebGL, biên soạn shaders, tải lên kết cấu, và vẽ nội dung mong đợi. Ghi lại các lỗi trong bảng điều khiển và các sự kiện mất ngữ cảnh như bằng chứng gỡ lỗi.
Diễn giải các thay đổi một cách cẩn thận. Một hash khác sau khi cập nhật trình duyệt có thể là một hệ quả bình thường của sự thay đổi trong triển khai được chia sẻ. Một hash giống nhau trong một đội có thể chỉ có nghĩa là đội đó sử dụng một hình ảnh tiêu chuẩn duy nhất. Phân phối và tính nhất quán quan trọng hơn một token đơn lẻ. Câu hỏi hữu ích là liệu bề mặt WebGL có khớp với môi trường được tuyên bố và yêu cầu chức năng của ứng dụng.
Quyết định những gì cần xác thực trong WebGL
Bắt đầu với điều kiện hoặc cấu hình nhỏ nhất chứng minh rằng nhiệm vụ có thể tiến triển. Giữ lại hành vi của trình duyệt tương thích với tiêu chuẩn, sau đó chỉ thêm các điều khiển hồ sơ khi quy trình làm việc yêu cầu. Ghi lại bản dựng trình duyệt và trạng thái liên quan để những khác biệt sau này có thể được giải thích. Một quan sát có thể lặp lại hữu ích hơn một tuyên bố rộng rãi rằng một trang, khung, hiển thị, hoặc dấu vân tay chỉ đơn giản là “hoàn thành” hoặc “an toàn.”
- Xác định hành động tiếp theo. Nêu rõ chính xác những gì tập lệnh hoặc người dùng cần làm sau khi chờ đợi hoặc bước cấu hình.
- Chọn một tín hiệu có thể quan sát. Ưu tiên một thuộc tính trình duyệt, trạng thái vòng đời, điều kiện phần tử, hoặc kết quả kết xuất hỗ trợ trực tiếp cho hành động đó.
- Giữ các giá trị liên quan nhất quán. Trình duyệt, hệ điều hành, màn hình, địa phương, đồ họa, và cài đặt phiên nên mô tả một môi trường khả thi.
- Xác thực hành vi ứng dụng bình thường. Một can thiệp về quyền riêng tư hoặc tự động hóa không nên lặng lẽ phá vỡ API hoặc thành phần mà nó thay đổi.
- Ghi lại bằng chứng chẩn đoán. Lưu các URL, trạng thái, thông điệp bảng điều khiển, và tên cấu hình liên quan khi một kiểm tra thất bại.
Kết luận
WebGL in dấu vân tay kết hợp các truy vấn khả năng đồ họa và kết xuất có kiểm soát để mô tả môi trường trình duyệt. Nó quan sát ngăn xếp đồ họa được trung gian chứ không phải một danh tính phần cứng được đảm bảo. Đối với quyền riêng tư và tự động hóa, cách tiếp cận hợp lý là giảm thiểu việc thu thập không cần thiết, bảo tồn chức năng cần thiết, và giữ cho các giá trị WebGL nhất quán với phần còn lại của hồ sơ trình duyệt.
Cái Tài liệu Trình duyệt Scraping Không Rác giải thích cách các phiên trình duyệt được quản lý được cấu hình, trong khi đó Tổng quan sản phẩm Trình duyệt Scraping mô tả bề mặt tự động hóa trình duyệt. Những tài nguyên này cung cấp bối cảnh sản phẩm để áp dụng khái niệm trong một quy trình làm việc được ủy quyền.
Sẵn sàng kiểm tra tự động hóa nhận thức đồ họa?
Di chuyển kết xuất trình duyệt, cấu hình phiên, và cơ sở hạ tầng tự động hóa vào một môi trường Chromium quản lý.
Đăng ký ngay hôm nay và nhận $5 tín dụng miễn phí — không yêu cầu thẻ tín dụng.
Nhận tín dụng $5 của bạn →Câu hỏi thường gặp
Có phải in dấu vân tay WebGL giống như đọc mô hình GPU không?
Không. Một probe có thể bao gồm thông tin về bộ xử lý, giới hạn khả năng, phần mở rộng, độ chính xác của shader và các pixel đã được kết xuất, và bộ xử lý được tiết lộ có thể mô tả một lớp dịch thuật hoặc phần mềm.
Hai thiết bị có thể chia sẻ một dấu vân tay WebGL không?
Có. Các thiết bị với cùng một trình duyệt và ngăn xếp đồ họa có thể tiết lộ cùng một tham số và kết quả kết xuất, đặc biệt khi ảo hóa hoặc kết xuất phần mềm tiêu chuẩn hóa được sử dụng.
Có phải việc vô hiệu hóa WebGL sẽ dừng tất cả việc lấy dấu vân tay không?
Không. Nó thay đổi một bề mặt và có thể làm hỏng nội dung hợp pháp, trong khi canvas, âm thanh, phông chữ, thuộc tính màn hình, tiêu đề và quan sát mạng vẫn có sẵn.
Tại sao WebGL thay đổi trong một container?
Các container có thể thiếu quyền truy cập GPU trực tiếp hoặc sử dụng các thư viện đồ họa và bộ xử lý phần mềm khác nhau, vì vậy trình duyệt sẽ tiết lộ một môi trường đồ họa trung gian khác.