Trình duyệt antidetect: nó là gì và hoạt động ra sao
Từ «antidetect» dùng để gọi công cụ khiến nhiều tài khoản trên một máy tính trông giống như nhiều người khác nhau. Cái tên này không hay: nó hứa hẹn sự tàng hình vốn không tồn tại. Hãy nói thẳng — bên trong có gì, nó mang lại điều gì và ranh giới của cái có thể nằm ở đâu.
Cái gì thực sự bị nhận diện
Khi bạn mở một trang web, trình duyệt tự nó, mà bạn không hề hay biết, khai ra hàng chục đặc điểm: phiên bản và hệ điều hành, múi giờ, ngôn ngữ, độ phân giải màn hình, số nhân, dung lượng bộ nhớ, model card đồ hoạ, bộ phông chữ, những đặc điểm nhỏ khi vẽ hình ảnh và xử lý âm thanh. Từng giá trị riêng lẻ chẳng nói lên điều gì — hàng triệu máy trùng nhau ở đó. Nhưng sự kết hợp thu hẹp phạm vi xuống còn vài máy, đôi khi chỉ còn một.
Đó chính là dấu vân tay trình duyệt. Trang web không cần đặt cookie để nhận ra bạn lần sau: chỉ cần tính dấu vân tay và so với thứ nó đã thấy hôm qua.
Dấu vân tay chỉ là một trong ba mối liên kết. Để liên kết tài khoản hoàn toàn cần:
- cookie và kho lưu trữ của trang — dấu vết trực tiếp của những lần ghé thăm trước;
- dấu vân tay trình duyệt — bạn là ai trong mắt trang web, kể cả khi không có cookie;
- địa chỉ IP — bạn đến từ đâu.
Phân tích chi tiết cả ba — trong bài cách chạy nhiều tài khoản trên một máy tính.
Trình duyệt antidetect làm gì
Ba việc, và cả ba đều bắt buộc — riêng lẻ chúng không có tác dụng.
Tách kho lưu trữ. Mỗi tài khoản sống trong hồ sơ riêng của nó: cookie riêng, kho lưu trữ riêng, tiện ích riêng. Đây là nền móng, và cũng là phần đơn giản nhất — Chrome thường cũng làm được hồ sơ tách biệt.
Cho mỗi hồ sơ một proxy riêng. Không phải một địa chỉ cho cả chương trình, mà mỗi cửa sổ một địa chỉ riêng.
Thay thế dấu vân tay sao cho nó không mâu thuẫn với proxy. Và chính ở đây bắt đầu sự khác biệt giữa các công cụ.
Từ khoá quan trọng là sự nhất quán, chứ không phải «sự thay thế». Proxy Đức với múi giờ Moskva và ngôn ngữ trình duyệt tiếng Nga còn đáng ngờ hơn cả việc không thay đổi gì: người dùng bình thường không có sự kết hợp như vậy. Cách làm hiệu quả là lấy múi giờ, ngôn ngữ, vị trí địa lý và các tiêu đề theo đúng quốc gia mà proxy thực sự đi ra, và không thay đổi chúng qua mỗi lần khởi chạy.
Cái gì không nên thay thế
Các công cụ loại này thường hứa hẹn «thay thế mọi thứ». Trên thực tế, sự thay thế mà người ta nhìn thấy được gây hại nhiều hơn là không thay thế, và tập hợp hợp lý trông như sau:
| Nên thay thế | Không nên đụng vào |
|---|---|
| múi giờ, ngôn ngữ, vị trí địa lý | độ phân giải màn hình |
| số nhân, bộ nhớ, card đồ hoạ | bộ phông chữ |
| canvas, WebGL, âm thanh | cái bắt tay TLS |
Chỉ một quy tắc: chỉ nên thay thế thứ khiến bạn nổi bật; thứ khiến bạn giống mọi người thì tốt nhất để yên.
Phông chữ trên Windows thông thường giống hệt nhau ở hàng triệu máy — chúng không khiến bạn nổi bật, còn nếu mỗi hồ sơ có một bộ phông chữ ngẫu nhiên riêng thì kết quả sẽ ngược lại: mỗi hồ sơ trở nên hiếm và vì thế dễ bị chú ý. Màn hình không bị thay thế vì cửa sổ có thể kéo bằng chuột, và sự thay thế trên một cửa sổ có thể đổi kích thước sớm muộn cũng sẽ lệch khỏi kích thước thật. Cái bắt tay TLS là cách trình duyệt chào hỏi máy chủ; ở Chrome thật nó trùng với hàng triệu trình duyệt đang hoạt động, không có chỗ ẩn náu nào tốt hơn, còn ở bản dựng tự chế thì nó là riêng và vì thế dễ bị nhận ra.
Một lưu ý, thiếu nó thì lập luận về phông chữ chỉ đúng một nửa: nó đúng với hệ thống thông thường. Nếu trên máy có những bộ phông chữ lạ — thiết kế, chữ viết tay hiếm — thì bản thân bộ phông chữ đã trở nên hiếm, và các hồ sơ trên máy đó thực sự giống nhau. Trên máy dùng để làm việc, tốt nhất không nên cài những phông chữ như vậy.
Hai kiểu thiết kế: bản dựng trên đám mây và chương trình chạy trên nền Chrome
Các công cụ chia thành hai loại, và đây là khác biệt quan trọng nhất giữa chúng.
Dịch vụ đám mây với bản dựng Chromium riêng. Hồ sơ và cookie được lưu ở phía dịch vụ, trình duyệt là bản dựng riêng của họ. Ưu điểm: chạy trên mọi hệ điều hành, hồ sơ tự mở được trên máy khác, có thể làm việc nhóm. Nhược điểm: dữ liệu không nằm ở phía bạn, bản dựng luôn chậm hơn Chrome mới một chút, và phải trả tiền theo số lượng hồ sơ hằng tháng.
Chương trình trên chính máy tính của bạn, chạy trên nền Chrome thật. Hồ sơ nằm trên ổ đĩa của bạn, chương trình khởi chạy đúng cái Chrome bạn đã cài từ trang của Google. Ưu điểm: dữ liệu không đi đâu cả, trình duyệt tự cập nhật và trông như Chrome thường — vì nó chính là Chrome thường. Nhược điểm: chỉ một chỗ làm việc, chỉ một hệ điều hành, chuyển sang máy khác phải làm bằng tay.
Không phương án nào tốt hơn phương án kia một cách tuyệt đối: chúng dành cho những việc khác nhau. Một đội năm người dùng nhiều hệ điều hành khác nhau cần phương án đầu. Một người không muốn giao cookie của mình cho đám mây của người khác cần phương án thứ hai.
Kênh gỡ lỗi và việc đăng nhập Google
Có một chi tiết kỹ thuật hầu như không ai nói đến, nhưng nó quyết định bạn có đăng nhập được vào tài khoản Google hay không.
Sự thay thế dấu vân tay thường được cài đặt qua kênh gỡ lỗi của trình duyệt — chính kênh mà Playwright và Puppeteer sử dụng. Google nhận ra ngay sự tồn tại của kênh đó và trả lời «This browser or app may not be secure». Chúng tôi đã kiểm chứng trực tiếp: vấn đề không nằm ở các lệnh đi qua kênh, cũng không phải chất lượng của sự thay thế — chỉ cần kênh đó đang mở là đủ.
Không thể lách qua chuyện này bằng cách chỉnh dấu vân tay, và nếu bạn cần đăng nhập Google, hãy hỏi công cụ không phải «antidetect của bạn là gì» mà chính xác nó cài đặt sự thay thế bằng cách nào. Có cách làm không cần kênh gỡ lỗi: một tiện ích bên trong chính hồ sơ có đầy đủ khả năng từ bên trong, còn nhìn từ bên ngoài trình duyệt vẫn trông bình thường.
Cách kiểm tra xem sự thay thế có hoạt động không
Các trang kiểm tra — iphey, browserleaks, creepjs — cho thấy trang web nhìn thấy gì. Đáng dùng chúng, nhưng với hai lưu ý.
Cần nhìn vào mâu thuẫn chứ không phải điểm số chung. Dòng chữ xanh «bạn trông bình thường» không nói lên nhiều điều; điều quan trọng là sự lệch nhau giữa các giá trị — quốc gia của IP và múi giờ, ngôn ngữ trình duyệt và khu vực, giá trị trên chính trang và trong các tiến trình nền.
Một lần kiểm tra là chưa đủ. Một phần dữ liệu trang lấy ngay khoảnh khắc đầu tiên khi tải, một phần từ các tiến trình nền, và sự thay thế nào cài đặt trễ hoặc không lan tới tiến trình nền sẽ cho ra hai câu trả lời khác nhau trên cùng một thẻ. Sự thay đổi đó nói với dịch vụ kiểm tra nhiều hơn bất kỳ giá trị riêng lẻ nào.
Nỗi thất vọng chính
Tốt nhất nên biết trước điều này: phần lớn trường hợp là do proxy chứ không phải dấu vân tay.
Chúng tôi đã bắt gặp điều này trước hệ thống bảo vệ thật của Cloudflare. Một hồ sơ với thiết lập hoàn hảo vẫn quay vòng qua captcha chỉ vì địa chỉ thuộc dải trung tâm dữ liệu đã bị liệt kê. Đổi dấu vân tay hay chuyển giữa HTTP và SOCKS đều không thay đổi được gì — chỉ chuyển sang proxy dân cư mới giúp được. Phân tích các loại proxy và giá cả — trong một bài riêng.
Và nửa còn lại của cùng một sự thật: không công cụ nào xoá bỏ quy định của nền tảng hay khiến bạn tàng hình. Việc tách hồ sơ giải quyết đúng một bài toán — các tài khoản khác nhau trông như những vị khách khác nhau, chứ không phải một người với mười thẻ trình duyệt. Tài khoản vi phạm quy định sẽ bị khoá bất kể nó được mở bằng gì.
Việc này được làm thế nào trong Morfiade
Morfiade là trình quản lý hồ sơ Chrome cho Windows: một chương trình trên chính máy tính của bạn, không phải đám mây.
- hồ sơ được tạo theo lô, mỗi hồ sơ có proxy riêng lấy từ thư viện chung;
- sự thay thế được bật bằng ô đánh dấu trên hồ sơ và tự lấy quốc gia, múi giờ và ngôn ngữ theo proxy;
- dấu vân tay được cài đặt trước dòng mã đầu tiên của trang và có tác dụng cả trong các tiến trình nền;
- khi kiểm tra proxy, chương trình hỏi quốc gia từ hai cơ sở dữ liệu độc lập và tô màu đèn tín hiệu: nếu hai cơ sở dữ liệu cho ra quốc gia khác nhau, không thiết lập nào sửa được điều đó;
- sự thay thế do một tiện ích bên trong hồ sơ cài đặt, không có cờ gỡ lỗi nào trên dòng lệnh — đăng nhập Google trên hồ sơ như vậy vẫn thành công;
- một nút riêng cho thấy trang web thực sự nhìn thấy gì: dự định là gì, thẻ nhìn thấy gì, tiến trình nền nhìn thấy gì.
