Browser Fingerprint - Giải thích tất tần tật theo khía cạnh kỹ thuật

Có thể ace trong cộng đồng đều đã biết hoặc có nghe tới browser fingerprint, tuy nhiên hẳn là mọi người đều mông lung như mình trước kia không rõ nó là cái gì, vì sao các website sử dụng chúng làm "dấu vân tay". Ở series này mình sẽ tìm cách dễ hiểu nhất để giải thích về các browser fingerprint mà mình đã tìm hiểu trong quá trình phát triển GenBrowser tới TitanBrowser.

1. WebGL là gì?
WebGL (Web Graphics Library) là thư viện đồ hoạ cho web sử dụng trên trình duyệt, nó được sử dụng để render đồ hoạ 2D và 3D. Trình duyệt sử dụng WebGL API để gửi thông tin cần xử lý tới GPU, sau đó GPU sẽ trả về dữ liệu hiển thị cho trình duyệt. Ngày nay WebGL cũng là một thư viện được sử dụng để render đồ hoạ của web game thay thế cho Flash Player.

2. WebGL Fingerprint
WebGL Fingerprint là kết quả một hàm băm (ảnh được băm thành một chuỗi tương tự như tính md5 một file) khi vẽ một mẫu (một ảnh) cho trước (mẫu này có sự phân biệt lớn, tức là hình ảnh xuất ra rất khác nhau giữa các GPU khác nhau). Tới đây có thể đặt câu hỏi tại sao cùng một mẫu mà hình ảnh xuất ra lại rất khác nhau khi chạy trên GPU khác nhau? Mình sẽ lấy ví dụ vẽ hình tam giác màu gradient bằng WebGL (đây cũng là một mẫu có sự phân biệt lớn mà các hệ thống tính fingerprint thường sử dụng).
asynccode

Để vẽ được hình bên trên bằng WebGL API thì nôm na trình duyệt chỉ cần truyền thông tin cho GPU 3 đỉnh x,y,z và màu tại 3 đỉnh, sau đó GPU sẽ xử lý để nội suy ra màu của phần bên trong tam giác. Quá trình nội suy này ở các GPU khác nhau có thể cho ra màu khác nhau ở cùng một toạ độ (pixel) nằm trong hình tam giác, do đó khi tính hash của ảnh hình tam giác sẽ cho ra 1 hash khác nhau.

3. So sánh hình ảnh WebGL của TitanBrowser và một antidetect browser khác.
Các antidetect browser sẽ thay đổi màu của hình tam giác này để tạo ra một hash khác với trình duyệt mặc định. Hình dưới đây là ví dụ hình ảnh WebGL của TitanBrowser và một antidetect browser khác.
WebGL Image Hash:
  • Giá trị thật: a01bb7f64daa2dc6a58c97ef1832ba55
  • Gologin: 3d244521a8a594353ab7eafe1cd410a5
  • Titanbrowser: 063b3e4c20b95fb50ee63e9202cda657
asynccode

Có thể thấy Titan Browser của Genlogin có dải màu nhìn bằng mắt thường tương tự như trình duyệt bình thường, nhưng WebGL Hash vẫn khác nhau. Antidetect khác thì có thể thấy màu rất khác trình duyệt bình thường ở một số phần của hình nên hash cũng khác nhau.
Ngoài ra WebGL Fingeprint còn sử dụng một số thông số của card đồ hoạ như "Unmasked Renderer" và "Unmasked Vendor", "Max Vertex Attributes",... Tuy nhiên không nhiều hệ thống sử dụng toàn bộ thông số này để tính WebGL Hash.
 

matchless2003

MMO4ME - Helper
Joined
Aug 2, 2023
Messages
310
Solutions
5
Reactions
118
MR
11.041
Chat with me via Skype
Kiến thức hay và bổ ích quá bác ạ, nhưng phần code của bác bị lỗi, hy vọng nhận được nhiều kiến thức của bác dành cho cộng đồng trong tương lai gần.
 
Upvote 0

GemloginVN

Newbie
Joined
Aug 25, 2024
Messages
3
Reactions
0
MR
0.054

Các tính năng phổ biến của Antidetect Browser

Hiện nay, Antidetect Browser là trình duyệt được đánh giá vô cùng cao trong vấn đề bảo mật và ẩn danh thông tin. Điều này được chứng minh rõ qua hàng loạt tính năng nổi bật như:
Giả lập User Agent: Cung cấp khả năng thay đổi thông tin về hệ điều hành và trình duyệt để tránh bị nhận dạng, theo dõi.
Giả lập Browser của các hệ điều hành: Gồm giả lập MacOS, Windows, Linux cho máy tính và giả lập Android, iOS cho điện thoại.
Giả lập Proxy: Hỗ trợ người dùng thêm Proxy như http, socks4, socks5 để đổi địa chỉ IP và chuyển tiếp yêu cầu truy cập trang web.
Giả lập Timezone và Geolocation dựa trên IP: Antidetect hỗ trợ thay đổi múi giờ và vị trí địa lý theo địa chỉ IP để bảo vệ quyền riêng tư trực tuyến.
Giả lập WebRTC: Cho phép ẩn danh địa chỉ IP thực và ngăn chặn việc IP bị rò rỉ thông tin khi truy cập vào các ứng dụng trực tuyến.
Giả lập các thông số phần cứng và phần mềm: Cung cấp khả năng thay đổi các thông tin của phần cứng và thông số về phần mềm để tránh bị nhận dạng và theo dõi.
Tăng khả năng bảo mật cao: Trình duyệt này hay được sử dụng trong các môi trường như nghiên cứu, thí nghiệm phần mềm hoặc những hoạt động trực tuyến đòi hỏi tính bảo mật cao.
Tính năng chống phát hiện: Anti-detect Browser được thiết kế nhằm hạn chế khả năng bị phát hiện trong các hoạt động trực tuyến. Nhờ đó, người dùng có thể truy cập trang web an toàn và nhanh chóng hơn.
 
Upvote 0

So Sánh Giữa No-Code và Low-Code​


1.​

  • No-Code: Phù hợp với những người không có kiến thức lập trình hoặc chỉ có kiến thức cơ bản về công nghệ. Các doanh nghiệp nhỏ, cá nhân hoặc các phòng ban nội bộ trong doanh nghiệp lớn có thể tận dụng no-code để tạo ra các ứng dụng hỗ trợ công việc một cách nhanh chóng.
  • Low-Code: Thích hợp cho những người có kiến thức lập trình cơ bản hoặc lập trình viên muốn tiết kiệm thời gian. Các doanh nghiệp lớn với nhu cầu phát triển ứng dụng phức tạp thường sử dụng low-code để giảm bớt khối lượng công việc lập trình và đẩy nhanh quá trình phát triển.

2.​

  • No-Code: Độ linh hoạt và khả năng tùy biến thường hạn chế hơn, do người dùng bị ràng buộc bởi các công cụ và mẫu có sẵn. Tuy nhiên, no-code vẫn là lựa chọn tuyệt vời cho những ứng dụng có yêu cầu đơn giản và không đòi hỏi sự tùy biến phức tạp.
  • Low-Code: Mang lại khả năng tùy biến cao hơn so với no-code nhờ vào việc kết hợp lập trình. Người dùng có thể tạo ra các ứng dụng với độ phức tạp cao hơn, từ việc kết nối các hệ thống khác nhau đến phát triển các tính năng độc đáo.

3.​

  • No-Code: Cho phép tạo ra ứng dụng rất nhanh chóng, thường chỉ trong vài giờ hoặc vài ngày, tùy thuộc vào độ phức tạp của ứng dụng. Điều này đặc biệt quan trọng đối với các doanh nghiệp cần triển khai nhanh các giải pháp để đáp ứng nhu cầu thị trường.
  • Low-Code: Mặc dù cũng giúp giảm thiểu thời gian phát triển so với lập trình truyền thống, nhưng vẫn cần thời gian hơn so với no-code, đặc biệt là khi ứng dụng yêu cầu tùy biến cao.

4.​

  • No-Code: Thích hợp cho các ứng dụng nhỏ lẻ hoặc các dự án tạm thời. No-code có thể gặp khó khăn khi cần mở rộng hoặc tích hợp với các hệ thống lớn và phức tạp.
  • Low-Code: Phù hợp hơn cho các ứng dụng có khả năng mở rộng lớn và tích hợp phức tạp. Các doanh nghiệp có thể bắt đầu với các giải pháp low-code nhỏ và dần dần mở rộng khi nhu cầu tăng lên.
 
Upvote 0

Announcements

Today's birthdays

Forum statistics

Threads
425,426
Messages
7,156,870
Members
177,956
Latest member
tarou
Back
Top Bottom