Trình duyệt antidetect hoạt động thế nào: giải thích kỹ thuật đầy đủ

Các bề mặt vân tay, cách tạo danh tính nhất quán, cách ly lưu trữ trên ổ đĩa, định tuyến theo từng hồ sơ và những giới hạn thực tế của toàn bộ cách tiếp cận này.
Một trình duyệt antidetect làm bốn việc. Nó lưu dữ liệu duyệt web của từng hồ sơ riêng biệt, kiểm soát danh tính thiết bị mà mỗi hồ sơ báo cáo, định tuyến lưu lượng của từng hồ sơ một cách độc lập, và giữ cả ba điều đó nhất quán theo thời gian. Bài viết này đi qua cách thực hiện từng việc ở mức cơ chế, và kết thúc bằng những gì cách tiếp cận này không làm được.
Các bề mặt vân tay
Hãy bắt đầu từ những gì một trang web có thể đọc, vì mọi thứ khác đều là phản ứng với nó. Một đoạn script trên bất kỳ trang web nào cũng có thể đặt câu hỏi cho trình duyệt, và các câu trả lời mô tả chiếc máy. Các bề mặt này được nhóm lại một cách tự nhiên.
| Bề mặt | Trang web đọc được gì |
|---|---|
| Navigator | Tên và phiên bản trình duyệt, nền tảng, danh sách ngôn ngữ, số lượng bộ xử lý và bộ nhớ được báo cáo, hỗ trợ cảm ứng |
| Màn hình | Chiều rộng, chiều cao, vùng làm việc khả dụng, độ sâu màu, tỷ lệ điểm ảnh của thiết bị |
| Canvas | Các điểm ảnh chính xác tạo ra khi vẽ chữ và hình ngoài màn hình, được băm thành một giá trị ổn định |
| WebGL | Chuỗi nhà sản xuất và bộ kết xuất đồ họa, cùng các giá trị băm của cảnh được kết xuất |
| Âm thanh | Đầu ra của một bộ dao động chạy qua đồ thị xử lý âm thanh, thay đổi tùy theo nền tảng |
| Phông chữ | Những kiểu chữ nào đã được cài đặt, suy ra từ các phép đo văn bản |
| Múi giờ và đồng hồ | Múi giờ và độ lệch được báo cáo, so sánh với nơi lưu lượng đến từ |
| Mạng | Chính địa chỉ, góc nhìn của WebRTC về các ứng viên kết nối, và hình dạng của bắt tay TLS |
Không hàng nào một mình xác định được một chiếc máy. Chính sự kết hợp mới làm được điều đó, và sự kết hợp cũng là nơi những lời nói dối bị bắt: các giá trị không thể thuộc về cùng một chiếc máy thật là tín hiệu lớn hơn bất kỳ giá trị đơn lẻ nào.
Việc thu thập rẻ và âm thầm. Mọi giá trị trong bảng đều có sẵn cho bất kỳ trang nào qua các API được tài liệu hóa, không có hộp thoại xin phép, và phần lớn đến trong giây đầu tiên của một lượt truy cập. Dù bạn có quan điểm nào về việc này, đó là một thực tế thường trực của web hiện đại, và là đường cơ sở mà trình duyệt antidetect được thiết kế để đối phó.
Cách tạo một danh tính nhất quán
Cách tiếp cận ngây thơ là chặn từng câu hỏi và ngẫu nhiên hóa câu trả lời. Cách này thất bại vì một lý do mang tính cấu trúc. Các câu trả lời mô tả cùng một chiếc máy nên chúng tương quan với nhau, và các câu trả lời ngẫu nhiên độc lập làm vỡ những tương quan đó. Một user agent Windows đi kèm các phông chữ chỉ có trên macOS, một kích thước màn hình chưa từng có laptop nào xuất xưởng, một chuỗi đồ họa chưa bao giờ cùng tồn tại với nền tảng được khai báo: mỗi thứ là một mâu thuẫn mà bộ kiểm tra có thể kiểm tra rất rẻ.
Vì thế một trình duyệt antidetect hoạt động tốt tạo danh tính như một tập hợp. Nó bắt đầu từ một lớp máy thật, phổ biến và suy ra mọi giá trị từ lựa chọn đó. Nền tảng quyết định danh sách phông chữ hợp lý, chuỗi đồ họa và hỗ trợ cảm ứng. Màn hình lấy từ những kích thước mà lớp máy đó thực sự xuất xưởng. Ngôn ngữ và múi giờ lấy từ khu vực dự kiến của hồ sơ. Các giá trị khớp với nhau vì chúng được chọn cùng lúc, từ một mô tả về một chiếc máy.
Thuộc tính thứ hai quan trọng không kém: tập hợp đó được lưu lại. Nó được ghi vào hồ sơ khi hồ sơ được tạo, và mọi phiên đều báo cáo cùng các giá trị, vì một thiết bị thay đổi giữa các lần truy cập mô tả phần cứng mà không ai sở hữu. Sự ổn định chiếm phần lớn ý nghĩa của từ "hợp lý".
Cách ly lưu trữ trên ổ đĩa
Việc lưu trữ là phần ít hào nhoáng nhất và tuyệt đối nhất. Mỗi hồ sơ sở hữu một thư mục, và mọi thứ trình duyệt lưu giữ đều nằm trong đó: cơ sở dữ liệu cookie, Local Storage, IndexedDB, bộ nhớ đệm HTTP, các đăng ký service worker, trạng thái tiện ích mở rộng, lịch sử và thông tin đăng nhập đã lưu. Hai hồ sơ là hai thư mục tách rời, và mỗi trình duyệt đang chạy được trỏ vào thư mục của riêng nó.
Tách rời hoàn toàn là thuộc tính cần kiểm tra, vì cách ly một phần sẽ thất bại một cách âm thầm. Cookie rất dễ tách biệt. Bộ nhớ đệm có thể nhận ra một trình duyệt quay lại qua các tài nguyên nó đã giữ. Service worker có thể giữ định danh và tiếp tục chạy giữa các lượt truy cập. IndexedDB là nơi các ứng dụng hiện đại lưu những bản ghi mà chúng thật sự tin cậy. Cách ly bao phủ các kho nổi tiếng nhưng chia sẻ bất kỳ kho nào khác thì mới chỉ cách ly phần dễ thấy của vấn đề.
Tính bền vững là nửa còn lại. Các phiên tích lũy giá trị: các bước kiểm tra bảo mật đã hoàn tất, lịch sử đăng nhập đã thiết lập, dáng vẻ của một khách quay lại. Một hồ sơ giữ thư mục của nó giữa các phiên, đó là điều khiến việc làm việc với tài khoản khả thi. Việc ghi ra khi đóng làm cho thư mục bền vững, vì vậy kết thúc đột ngột tiến trình hồ sơ giữa phiên có thể làm mất phiên vừa thiết lập.
Định tuyến mạng
Mỗi hồ sơ mang tuyến đường riêng, được áp dụng khi trình duyệt của nó khởi động, nên lưu lượng đi ra qua proxy của hồ sơ đó mà không đụng đến cài đặt hệ thống hay tuyến đường của hồ sơ khác.
- Proxy được gắn theo từng hồ sơ chứ không theo từng máy. Trình duyệt thông thường dùng proxy của hệ thống. Ở đây, mỗi hồ sơ đang chạy kết nối qua điểm cuối của riêng nó.
- Việc phân giải tên cũng đi qua tuyến đường, vì một yêu cầu đến từ một quốc gia trong khi các truy vấn tra cứu của nó đến từ quốc gia khác là một mâu thuẫn ở tầng mạng.
- WebRTC bị ràng buộc phải khớp với tuyến đường. Nếu để mặc, nó có thể làm lộ các ứng viên kết nối mà proxy chưa từng chạm tới.
- Múi giờ và ngôn ngữ được khớp với quốc gia của tuyến đường, vì địa chỉ là giá trị duy nhất không thể tạo ra, nên phần còn lại của câu chuyện phải khớp với nó.
Tuyến đường cũng là thành phần đáng được kiểm chứng độc lập nhất, vì nó được mua từ bên thứ ba. Kiểm tra một điểm cuối trước khi gán, và đọc lại địa chỉ quan sát được thay vì địa chỉ được quảng cáo, giúp bắt lỗi khi nó vẫn còn là vấn đề cấu hình chứ chưa thành vấn đề của tài khoản.
Trình duyệt tự thay đổi những gì
Có hai nơi một công cụ có thể thay đổi các câu trả lời mà trang web nhận được, và sự khác biệt giữa chúng là ngã rẽ kỹ thuật nhất trong chủ đề này.
| Cách tiếp cận | Cách hoạt động | Điểm yếu |
|---|---|---|
| Chèn script | Một tiện ích hoặc script được chèn ghi đè các hàm mà trang gọi, nên các lần đọc canvas và tra cứu navigator trả về giá trị thay thế | Bản thân các phép ghi đè có thể bị nhìn thấy. Hàm bị vá có thể bị nhận ra là đã vá, và bất kỳ bề mặt nào bộ chèn bỏ sót vẫn trả lời bằng giá trị thật |
| Bên trong mã của trình duyệt | Phần triển khai của trình duyệt trả lời bằng các giá trị đã lưu của hồ sơ, ngay tại các đường mã sinh ra giá trị thật | Tốn công xây dựng và bảo trì hơn nhiều, đó là điều phân biệt các công cụ chuyên dụng với tiện ích mở rộng |
Cách chèn script là nơi nhóm công cụ này khởi đầu, và giới hạn của nó đã được hiểu rõ: một trang có thể kiểm tra xem các hàm gốc có còn trông như gốc không, và có thể tiếp cận cùng bề mặt đó qua một đường mà phần chèn không bao phủ. Vì vậy các trình duyệt antidetect chuyên dụng thực hiện thay đổi ngay bên trong trình duyệt, để danh tính đã lưu chính là thứ phần triển khai báo cáo qua mọi đường đọc nó.
Việc mở một hồ sơ thực sự làm gì
- Danh tính đã lưu được nạp: một tập hợp giá trị thiết bị nhất quán, giống hệt lần trước.
- Trình duyệt khởi động trên thư mục riêng của hồ sơ, nên mọi kho lưu trữ bền vững đều là của chính hồ sơ.
- Tuyến đường được áp dụng: proxy, phân giải tên qua nó, WebRTC bị ràng buộc theo nó.
- Phiên chạy, tích lũy trạng thái bên trong thư mục.
- Khi đóng, trạng thái được ghi ra, để lần mở sau tiếp tục cùng thiết bị, cùng lưu trữ và cùng tuyến đường.
Mọi phần trong danh sách đó đều có thể kiểm tra từ bên ngoài. Mở một trang kiểm tra vân tay hai lần và so sánh các giá trị giữa hai lần mở. Xem thư mục hồ sơ trên ổ đĩa. Đọc lại địa chỉ quan sát được. Một công cụ thuộc nhóm này nên khuyến khích việc kiểm tra đó, vì cơ chế chính là sản phẩm.
Những giới hạn thực tế
Cách tiếp cận này có giới hạn, và biết chúng là một phần của việc sử dụng thành thạo.
- Nó không thể khiến một trình duyệt không thể bị nhận dạng, và dù sao cũng không ai đo được tuyên bố như vậy. Mục tiêu thực tế là một hồ sơ trông như một chiếc máy bình thường, nhất quán nội tại và ổn định.
- Nó không thể sửa các mâu thuẫn do bạn tự tạo ra. Một tuyến đường ở quốc gia này với múi giờ ở quốc gia khác là lỗi cấu hình, và công cụ chỉ có thể khiến cấu hình đúng trở nên dễ làm.
- Nó không bao phủ hành vi. Thời gian, khối lượng và nhịp điệu được đọc cùng với môi trường, và một đội tài khoản hành động đồng loạt tự lộ mình dù từng môi trường sạch đến đâu.
- Nó không bao phủ danh tính khai báo. Thông tin khôi phục dùng chung, phương thức thanh toán dùng chung và văn bản tái sử dụng liên kết các tài khoản qua chính hồ sơ của nền tảng, ở tầng cao hơn trình duyệt rất nhiều.
- Nó không thay đổi quy tắc của nền tảng. Cách ly tách biệt các môi trường hợp pháp. Điều nền tảng cho phép là quyết định của nền tảng, và ở đây không hứa hẹn kết quả nào trên nền tảng mà chúng tôi không kiểm soát.
Hãy đọc các giới hạn như một định nghĩa chứ không phải một sự thất vọng. Trình duyệt antidetect là một công cụ giữ tính nhất quán: lưu trữ tách biệt, một danh tính ổn định và hợp lý, một tuyến đường khớp, được giữ cùng nhau theo từng hồ sơ và lặp lại giống hệt ở mỗi lần mở. Đó là toàn bộ cơ chế, và mọi điều khác được viết về nhóm công cụ này đều là biến thể của nó.

