Dấu vân tay trình duyệt được cấu hình ở tầng nào, và vì sao cần khớp với proxy?

LE
leohoom
Newbie

Em Minh ở Thủ Đức mới mở gian Lazada thứ hai. Em cài thêm Cốc Cốc, bảo hai trình duyệt khác nhau rồi, chắc không dính nhau đâu. Ai ngờ vài bữa sau, lúc đăng nhập gian mới, hệ thống vẫn hỏi xác minh, có đơn lại bị đưa vào diện kiểm tra. Em nhắn hỏi mình, câu đầu tiên là: hai cái trình duyệt khác nhau mà vẫn nhận ra nhau, lạ thiệt sự anh ơi.

Mình bảo em thử tạo một hồ sơ riêng trong BitBrowser cho gian thứ hai, để phần mềm sinh bộ thông số và gắn proxy ngay lúc tạo. Em sửa trong mười phút. Cái em thiếu không phải một trình duyệt mới, mà là một môi trường mới.

Một hồ sơ trình duyệt thật ra là cái gì

Đừng hình dung hồ sơ là một cửa sổ. Nó là một thư mục dữ liệu, trong Chromium gọi là user-data-dir. Bên trong có file cookie dạng SQLite, có Local Storage và IndexedDB dạng leveldb, có cache ảnh và script, có lịch sử, có vùng lưu trữ riêng của từng extension. Khi bạn mở tab ẩn danh, bạn chỉ đổi một phần hành vi ghi dữ liệu tạm thời, còn hàng chục giá trị cấp máy vẫn đọc từ cùng một cái máy. Cài thêm một trình duyệt nữa cũng vậy: khác giao diện, cùng GPU, cùng font hệ thống, cùng múi giờ, cùng card âm thanh.

Các trang web không cần hỏi tên máy. Chúng gọi JavaScript và đọc câu trả lời: navigator.userAgent, hardwareConcurrency, deviceMemory, screen.width, danh sách font, Canvas qua toDataURL, WebGL qua UNMASKED_RENDERER_WEBGL, AudioContext, Intl.DateTimeFormat trả múi giờ, navigator.languages, WebRTC nhả ICE candidate, rồi DNS và dạng bắt tay TLS. Mỗi phép đo một mình vô hại, gộp lại thành bộ giá trị khá đặc trưng cho từng máy.

Can thiệp nằm ở đâu: extension hay nhân trình duyệt

Đây là chỗ phân biệt rõ nhất giữa đổi vài thông số bằng extension và một trình duyệt quản lý đa tài khoản đúng nghĩa. Extension chỉ sửa được những gì JavaScript cho phép sửa, và thường sửa ở lớp script nên dễ bị một phép đo khác tố cáo lại. Cách làm của BitBrowser là lấy mã nguồn mở Chromium và Firefox, chỉnh trực tiếp bằng C++ tại chỗ các API đó trả kết quả, rồi đóng gói bằng vỏ Electron cho Windows và macOS. Kết quả là cả một tập giá trị được trả về từ tầng thấp, nhất quán với nhau, chứ không phải một lớp dán mỏng bên trên.

Mỗi hồ sơ khi tạo sẽ có thư mục dữ liệu riêng và một bộ cấu hình riêng: User Agent, độ phân giải, CPU và RAM khai báo, font, Canvas, WebGL, Audio, WebRTC, DNS, Do Not Track, múi giờ, ngôn ngữ, vùng địa lý, IPv4 hoặc IPv6, cookie, Local Storage, IndexedDB. Sau đó proxy được gắn vào chính hồ sơ đó. Nên khi em Minh mở hai hồ sơ, hệ thống thấy hai thiết bị với hai kho dữ liệu không chạm nhau, thay vì một thiết bị mở hai cửa sổ.

Mình hay ví von thế này cho dễ nhớ: đổi User Agent giống như thay biển số xe nhưng vẫn đi cùng một cái xe. Tạo hồ sơ riêng là dựng thêm một cái xe, có động cơ, có giấy tờ, có lịch sử đi lại riêng.

Hai hồ sơ, hai cách ghép thông số

Cùng một bộ tham số, chỉ khác cách ghép, kết quả đã khác hẳn. Đây là bảng mình hay dùng để dặn người mới trước khi họ bấm nút sinh ngẫu nhiên.

Tham sốCách ghép dễ bị lệchCách ghép nên dùng
IPMột IP xoay dùng cho cả hai hồ sơMỗi hồ sơ một IP ổn định
Múi giờUTC-5 dù IP ở Hà NộiAsia/Ho_Chi_Minh theo vùng IP
Ngôn ngữen-US cho gian bán hàng Việtvi-VN, thêm en-SG nếu bán sang Singapore
WebRTC và DNSĐể mặc định, đi ra máy thậtĐi theo proxy của từng hồ sơ
Font, độ phân giảiSinh ngẫu nhiên, lệch hệ điều hành đã khai báoChọn bộ font khớp hệ điều hành đã khai báo
Cookie, IndexedDBImport chung một file cho cả haiMỗi hồ sơ một kho, không ghi chéo

Lỗi của người mới thường không nằm ở thiếu tham số, mà nằm ở các tham số mâu thuẫn nhau.

Vì sao nhất quán quan trọng hơn ngẫu nhiên

Nhiều người mới hay bấm nút sinh ngẫu nhiên rồi nghĩ vậy là xong. Thực ra ngẫu nhiên quá mức lại tạo ra những tổ hợp không tồn tại trong đời thực: khai báo Windows 11 nhưng danh sách font kiểu macOS, IP Singapore mà múi giờ miền Đông nước Mỹ, Canvas của một dòng GPU trong khi WebGL lại trả dòng GPU khác. Các hệ thống đánh giá độ tin cậy thường không cần biết bạn là ai, chúng chỉ cần thấy các mảnh có khớp nhau không. Nên thứ tự ưu tiên phải là: chọn vùng IP, đồng bộ múi giờ và ngôn ngữ theo vùng đó, rồi mới sinh phần còn lại. BitBrowser có bước tự đồng bộ này theo địa chỉ IP, dùng phát một lần đỡ được kha khá lỗi vặt.

Khi nào thì cần thêm một tầng thiết bị di động

Có nghiệp vụ không chạy trên web. Zalo, TikTok, Instagram hay app game đọc tín hiệu ở tầng hệ điều hành: Android ID, SIM, nhà mạng, model máy, cảm biến, danh sách app đã cài. Trình duyệt dù tách kỹ cũng không sửa được mấy giá trị đó. Đây là chỗ điện thoại đám mây như BitCloudPhone bổ sung: mỗi môi trường là một máy Android hoặc iOS chạy riêng trên cụm máy chủ, có thông số chipset, SIM từ hơn sáu trăm nhà mạng, cảm biến và Google Play riêng, tự khớp ngôn ngữ, múi giờ, vị trí theo IP. Studio game hay đội vận hành kênh ngắn cần đúng mảnh này.

Quy trình tám bước cho người mới, làm một lần rồi làm mẫu

Em Minh làm theo đúng trình tự này, rồi lưu hồ sơ đầu tiên thành mẫu cho các gian sau.

1  Tạo hồ sơ, đặt tên theo gian hàng, gán vào nhóm
2  Chọn nhân Chromium hoặc Firefox
3  Gắn một proxy, bấm kiểm tra kết nối
4  Đồng bộ múi giờ, ngôn ngữ, vùng địa lý theo IP đó
5  Sinh bộ thông số thiết bị, rà lại các cặp dễ lệch
6  Chọn nền tảng để tự mở đúng trang đăng nhập
7  Import cookie chỉ vào đúng hồ sơ này
8  Mở hồ sơ, đọc IP và đối chiếu trước khi đăng nhập

Sau tám bước, mình vẫn dặn: chạy ba đến năm hồ sơ trong một tuần, xem nhật ký đăng nhập và lịch lên sản phẩm có đều không, rồi mới mở rộng. Nhảy lên vài chục hồ sơ ngay ngày đầu thường chỉ tạo thêm chỗ phải dọn. Hiểu được từng dòng mình chọn giúp bạn tự sửa hầu hết lỗi về sau.

bạn đang quản lý danh tính, không phải cửa sổ

Ba điều đáng nhớ. Hồ sơ là thư mục dữ liệu cộng một bộ thông số thiết bị, không phải tab mới. Giá trị của một công cụ nằm ở chỗ can thiệp tới tầng nhân trình duyệt và giữ các mảnh thông tin khớp nhau. Và nhất quán theo thời gian quan trọng hơn việc sinh ra thật nhiều giá trị ngẫu nhiên.

Về sau, mình đoán các nền tảng sẽ bớt quan tâm tới từng thông số đơn lẻ mà chuyển sang đồ thị nhất quán: một danh tính có đi cùng một vùng mạng, một nhịp đăng nhập, một lịch sử thao tác hợp lý hay không. Khi trọng tâm là đồ thị, việc mua thêm IP hay đổi User Agent mỗi tuần càng ít tác dụng, còn việc giữ hồ sơ ổn định và nội dung tuân thủ lại càng có giá trị. Đây cũng là hướng mà các công cụ nên đi: ít nút bấm sinh ngẫu nhiên hơn, nhiều cảnh báo lệch cấu hình hơn, có thể nhờ AI kiểm tra giúp cả chục hồ sơ trước khi mở ca làm việc.

Lời khuyên cho người mới ở Việt Nam: học cấu hình bằng cách giải thích được từng dòng mình vừa chọn, đừng học bằng cách bấm nút có sẵn. Và nhớ rằng môi trường sạch chỉ là một nửa, nửa kia vẫn là sản phẩm khác biệt, nội dung đúng quy chuẩn và giao dịch thật theo quy chế sàn cùng Nghị định 85/2021/NĐ-CP.

Câu hỏi thường gặp

Tab ẩn danh có tính là một hồ sơ riêng không?
Đáp: Không. Tab ẩn danh chủ yếu hạn chế lưu dữ liệu mới trên máy, còn các phép đo phần cứng, font, múi giờ và địa chỉ mạng vẫn lấy từ cùng một môi trường.

Một hồ sơ nên gắn một hay nhiều tài khoản?
Đáp: Một hồ sơ cho một tài khoản, kèm một địa chỉ IP riêng, là cách dễ quản lý và dễ truy vết nhất. Gộp nhiều tài khoản vào một hồ sơ sẽ làm chung kho cookie và trạng thái phiên.

Khi nào nên dùng điện thoại đám mây thay vì trình duyệt?
Đáp: Khi nghiệp vụ chạy trong app và app đọc thông tin thiết bị như SIM, model máy hay cảm biến. Với thao tác trên web, hồ sơ trình duyệt đã đủ.