Quay lại blog

Làm sao biết môi trường của trình duyệt vân tay có thật hay không? Kiểm tra vân tay báo bất thường thì phải làm sao?

Môi trường vân tay có “thật” hay không không phụ thuộc vào điểm số từ một trang kiểm tra nào đó, mà phải xem các tín hiệu mạng, trình duyệt, hệ thống, phần cứng và quyền hạn có nhất quán với nhau không, đồng thời giữ ổn định qua nhiều lần khởi động. Bài viết cung cấp phương pháp kiểm tra theo từng lớp, bảng đối chiếu các bất thường phổ biến, cùng gợi ý xử lý từng bước trong trình duyệt vân tay.

Đánh giá môi trường trình duyệt vân tay có thật hay không, không thể chỉ nhìn việc một trang web kiểm tra nào đó chấm 90 điểm hay 100 điểm. Tiêu chuẩn có ý nghĩa hơn là: giữa tín hiệu mạng, trình duyệt, hệ điều hành, phần cứng và quyền hạn không có mâu thuẫn rõ ràng; cùng một môi trường khởi động lại nhiều lần vẫn ổn định; các chức năng mà website kinh doanh cần vẫn hoạt động bình thường.

Công cụ kiểm tra hiển thị màu xanh không có nghĩa là nền tảng nào cũng chấp nhận môi trường này; hiển thị màu đỏ cũng chưa chắc nói lên môi trường không dùng được. Trang kiểm tra sử dụng quy tắc, cơ sở dữ liệu và mô hình chấm điểm của riêng mình; cuối cùng cần kết hợp các trường cụ thể, website mục tiêu và kịch bản kinh doanh thực tế để đánh giá.

“Chân thực” của môi trường trình duyệt nghĩa là gì

Một môi trường hợp lý thường thỏa mãn bốn điều kiện:

  1. Nhất quán nội bộ: nhân trình duyệt, User-Agent, hệ điều hành, GPU, ngôn ngữ, múi giờ và khu vực mạng có thể giải thích cho nhau;
  2. Ổn định theo thời gian: sau khi khởi động lại, các tham số quan trọng không thay đổi lớn một cách vô quy luật;
  3. Chức năng dùng được: đăng nhập, tải lên, gọi video, thanh toán hoặc các chức năng cần cho bảng quản trị quảng cáo… hoạt động bình thường;
  4. Truy vết được nguồn gốc: đội ngũ biết môi trường này gắn với tài khoản, proxy và người phụ trách nào, mọi thay đổi cấu hình đều được ghi lại.

“Từng tham số đều giống hệt máy tính vật lý” không phải là điều kiện bắt buộc. Bản thân trình duyệt đã giảm độ chính xác của dữ liệu để bảo vệ quyền riêng tư. Chẳng hạn MDN giải thích về deviceMemory cho biết thuộc tính này chỉ trả về giá trị bộ nhớ gần đúng đã được làm thô và giới hạn trên dưới; hardwareConcurrency cũng có thể nhỏ hơn số bộ xử lý logic thực tế của thiết bị. Vì vậy, giá trị phát hiện không đồng nghĩa với bản báo cáo kiểm tra phần cứng.

Thiết lập đường cơ sở trước khi kiểm tra

Đừng trực tiếp thay đổi tham số liên tục trong môi trường của tài khoản quan trọng đang vận hành. Trước hết hãy tạo một môi trường kiểm thử không đăng nhập tài khoản kinh doanh và ghi lại:

  • Phiên bản trình duyệt vân tay và nhân Chromium;
  • Hệ điều hành, User-Agent và độ phân giải;
  • Loại proxy, IP đầu ra, quốc gia và thành phố;
  • Cài đặt ngôn ngữ, múi giờ và vị trí địa lý;
  • Chính sách WebRTC, DNS, Canvas, WebGL và phông chữ;
  • Tiện ích mở rộng đã cài và tham số khởi động.

Trong cùng một khoảng thời gian, dùng hai đến ba công cụ kiểm tra để đối chiếu chéo, đồng thời lưu ảnh chụp màn hình hoặc xuất kết quả. Về sau mỗi lần chỉ thay đổi một biến rồi so sánh với đường cơ sở. Như vậy mới biết được bất thường đến từ proxy, cấu hình trình duyệt, tiện ích mở rộng hay chính trang kiểm tra.

Lớp 1: Kiểm tra cổng ra của mạng

Trước tiên xác nhận IP công khai mà yêu cầu HTTP hiển thị có đúng là IP proxy mà môi trường đang gắn không, sau đó kiểm tra DNS, WebRTC và IPv6.

IP và DNS

Ghi lại IP đầu ra, ASN, ISP, quốc gia, thành phố và múi giờ. Các cơ sở dữ liệu khác nhau có thể đánh giá không thống nhất về thành phố và loại proxy; xung đột về quốc gia hoặc ASN đáng để kiểm tra hơn là sai lệch ở một thành phố.

Nếu yêu cầu DNS đi qua mạng cục bộ còn truy cập web đi qua proxy, trang kiểm tra có thể hiển thị vùng DNS khác với vùng IP đầu ra. Ưu tiên kiểm tra xem proxy có hỗ trợ DNS từ xa không, trình duyệt hoặc hệ thống có cài đặt DNS riêng không, và tiện ích mở rộng có ghi đè yêu cầu mạng không.

WebRTC

WebRTC thu thập các địa chỉ ICE candidate để thiết lập kết nối điểm-điểm. RFC 8828 giải thích rằng nó có thể làm lộ thêm địa chỉ công khai, địa chỉ mạng riêng, hoặc khi proxy cho phép kết nối trực tiếp thì có thể bỏ qua proxy để lộ IP công khai thật.

Phát hiện địa chỉ riêng chưa chắc đã là rò rỉ IP công khai thật; 192.168.x.x, 10.x.x.x chỉ là địa chỉ mạng nội bộ. Điều thực sự cần quan tâm là: trong các ICE candidate của WebRTC có xuất hiện một IP công khai khác không liên quan đến proxy đầu ra hay không.

Khi xử lý, đừng máy móc vô hiệu hóa toàn bộ WebRTC. Họp video, thoại và truyền thông thời gian thực có thể phụ thuộc vào nó. Nên căn cứ vào nghiệp vụ để lựa chọn: để WebRTC đi theo tuyến proxy mặc định, dùng proxy hỗ trợ UDP hoặc TURN, hạn chế lộ địa chỉ nội bộ, hoặc tắt khi không cần truyền thông thời gian thực. Sau khi chỉnh sửa cần kiểm tra song song kết quả quyền riêng tư và chức năng nghiệp vụ.

Vị trí địa lý

Tọa độ từ Geolocation API của trình duyệt có thể đến từ GPS, Wi-Fi, IP, mạng di động hoặc người dùng nhập. Đặc tả W3C Geolocation nêu rõ API không đảm bảo trả về vị trí thực của thiết bị.

Vì vậy, IP chỉ đến một thành phố còn tọa độ Geolocation lệch nhẹ chưa chắc là bất thường. Điều quan trọng hơn là quốc gia, múi giờ, ngôn ngữ và khu vực kinh doanh có xung đột không thể giải thích, cùng việc website đã được cấp quyền vị trí hay chưa.

Lớp 2: Kiểm tra trình duyệt và hệ điều hành

Tập trung so sánh các tổ hợp sau:

  • Phiên bản nhân Chromium với phiên bản chính của trình duyệt trong User-Agent;
  • Hệ điều hành trong User-Agent với platform, UA Client Hints và bộ phông chữ;
  • Ngôn ngữ giao diện trình duyệt, Accept-Language, múi giờ và định dạng khu vực;
  • Độ phân giải, tỷ lệ pixel thiết bị, kích thước cửa sổ và khả năng cảm ứng;
  • Nhận diện di động với kích thước màn hình, loại con trỏ và đặc điểm phần cứng.

Bất thường hay gặp là tự tay sửa User-Agent nhưng không đồng bộ nhân hoặc client hint; hoặc khai môi trường Windows thành macOS nhưng vẫn giữ phông chữ, GPU và đặc điểm tương tác rất “Windows”.

Cách chắc chắn nhất không phải là tự bịa từng mục, mà dùng bộ cấu hình hệ thống đã được kiểm chứng, để nhân, UA, nền tảng và các tham số liên quan được cập nhật như một nhóm. Sau khi nâng cấp nhân, hãy tạo lại hoặc kiểm tra User-Agent; đừng khóa lâu dài ở phiên bản đã lỗi thời rõ ràng.

Lớp 3: Kiểm tra tín hiệu phần cứng và kết xuất

Canvas, WebGL, AudioContext, phông chữ, CPU, bộ nhớ, thiết bị đa phương tiện và ClientRects đều có thể tham gia nhận diện môi trường. Khi kiểm tra hãy chú ý đến “tổ hợp có hợp lý không” và “có ổn định không”, thay vì theo đuổi một hash duy nhất.

WebGL và GPU

Nếu môi trường khai là một loại hệ điều hành hoặc thiết bị nào đó, nhưng nhà sản xuất WebGL, bộ kết xuất và trạng thái tăng tốc phần cứng lại không thể cùng xuất hiện một cách hợp lý, cần quay lại kiểm tra bộ cấu hình hệ thống. Đừng chỉ vì muốn qua một trang kiểm tra mà tùy tiện đổi tên nhà sản xuất thành một thương hiệu khác; tổ hợp sai thường kéo theo nhiều mâu thuẫn hơn.

CPU và bộ nhớ

hardwareConcurrency thể hiện số bộ xử lý logic trình duyệt có thể dùng; trình duyệt có thể chủ động báo giá trị thấp hơn. deviceMemory là giá trị gần đúng đã làm thô. Thấy 4 nhân hoặc 8GB không thể suy ngược ra phần cứng thật, và cũng không nên vì không khớp với máy tính vật lý mà sửa ngay.

Cần kiểm tra là: giá trị có nằm trong phạm vi trình duyệt hỗ trợ không, có xung đột rõ ràng với loại thiết bị di động/máy bàn không, và cùng một môi trường sau khi khởi động lại có giữ ổn định hợp lý không.

Canvas và Audio

Chính sách bảo vệ quyền riêng tư hoặc nhiễu ngẫu nhiên có thể khiến cùng một thiết bị vật lý tạo ra kết quả khác nhau giữa các môi trường. Nhưng nếu cùng một môi trường mà mỗi lần làm mới hash lại đổi, có thể nghĩa là mức ngẫu nhiên hóa quá mạnh, khiến độ ổn định của phiên dài hạn kém đi.

Hãy thử cùng một môi trường bằng cách làm mới liên tục, đóng rồi mở lại và khởi động sang ngày hôm sau. Nếu chính sách được thiết kế theo hướng “nhiễu ổn định cấp môi trường”, cùng một môi trường phải có tính nhất quán giải thích được.

Lớp 4: Kiểm tra bộ nhớ lưu trữ, tiện ích mở rộng và tham số khởi động

Cô lập môi trường không chỉ là tham số vân tay, mà còn bao gồm Cookie, Local Storage, IndexedDB, bộ nhớ đệm, Service Worker, tiện ích mở rộng và lịch sử tải xuống.

Dùng hai môi trường kiểm thử đăng nhập vào hai website kiểm thử khác nhau để chắc chắn Cookie và Local Storage không bị tráo sang nhau; rồi kiểm tra sau khi xóa bộ nhớ đệm, nhập Cookie hoặc khôi phục môi trường, dữ liệu có đúng như kỳ vọng không.

Tiện ích mở rộng là nguồn gây nhiễu phổ biến. Nó có thể sửa User-Agent, proxy, header yêu cầu, Canvas, WebRTC hoặc script của trang. Khi phát hiện bất thường, trước tiên hãy vô hiệu hóa toàn bộ tiện ích không cần thiết trong bản sao kiểm thử, rồi bật từng cái một. Tham số khởi động tùy chỉnh cũng nên loại trừ từng mục, tránh nhiều công cụ cùng ghi đè một tín hiệu.

Bảng các bất thường thường gặp và cách xử lý

Hiện tượng bất thườngNguyên nhân có thểXử lý khuyến nghị
Quốc gia IP không khớp múi giờMúi giờ cố định theo giá trị nội địa, hoặc proxy bị nhận diện sai khu vựcĐối chiếu quốc gia của proxy trước, rồi cho múi giờ theo IP hoặc đặt theo khu vực kinh doanh thật
IP đầu ra HTTP khác IP công khai của WebRTCWebRTC kết nối trực tiếp, proxy không hỗ trợ UDP hoặc tuyến bị chia táchĐiều chỉnh chính sách tuyến của WebRTC, kiểm thử UDP/TURN và chức năng nghiệp vụ
Phiên bản UA không khớp nhânUA tự sửa quá cũ hoặc sau nâng cấp nhân chưa đồng bộDùng bộ cấu hình khớp, tạo lại UA và kiểm tra lại UA Client Hints
Nhận diện macOS đi kèm phông chữ/GPU WindowsChỉ sửa các trường bề ngoàiQuay lại bộ cấu hình cấp hệ thống, tránh tự ráp chéo giữa các hệ điều hành
Canvas đổi mỗi lần làm mớiNhiễu ngẫu nhiên quá mạnh hoặc xung đột tiện ích mở rộngCố định theo chính sách cấp môi trường, tắt tiện ích gây xung đột rồi kiểm tra lại
CPU hoặc bộ nhớ bị bôi đỏTrang kiểm tra hiểu nhầm giá trị đã làm thô thành phần cứng vật lýTra cách đo của API trình duyệt trước, rồi xác định có thật sự xung đột tổ hợp không
Hai trang kiểm tra kết luận ngược nhauCơ sở dữ liệu, quy tắc và nhịp cập nhật khác nhauSo sánh các trường gốc, không chỉ so tổng điểm; lấy kiểm thử trên nghiệp vụ mục tiêu làm chuẩn
Sau khi khởi động lại, các trường quan trọng thay đổiCấu hình ngẫu nhiên chưa lưu bền hoặc môi trường bị dựng lạiKiểm tra chính sách lưu, đồng bộ và vân tay ngẫu nhiên, cố định tham số cấp môi trường

Truy từng lớp trong PurpleMark

Nếu các kết luận phía trên đều có vẻ bình thường mà một số nền tảng vẫn báo bất thường, bạn có thể đưa các thao tác kiểm tra xuống đúng môi trường tương ứng trong PurpleMark.

Bước một là xác nhận cổng ra. Trong phần quản lý proxy của PurpleMark, xem proxy mà môi trường hiện tại đang gắn, xác nhận IP đầu ra, khu vực và múi giờ của proxy đó, đối chiếu với IP công khai mà trang kiểm tra hiển thị, rồi kiểm tra WebRTC có xuất hiện một địa chỉ công khai khác không liên quan đến cổng ra hay không.

Bước hai là xem tham số như một tổ hợp để kiểm tra, chứ không sửa tay từng cái. Khi tạo môi trường trong PurpleMark, bạn có thể thiết lập một lượt hệ điều hành, nhân Chromium, User-Agent, ngôn ngữ, múi giờ, vị trí địa lý, đồng thời cấu hình các tham số vân tay như WebGL, WebRTC, CPU, bộ nhớ, Canvas. Để nhân, UA, hệ điều hành và phông chữ chạy theo cùng một bộ cấu hình, sẽ tránh được các kết quả mâu thuẫn kiểu “phông chữ Windows đi với nhận diện macOS”; trước khi tạo, hãy xem bản xem trước môi trường, chắc chắn các trường kết hợp hợp lý rồi mới lưu dùng.

Bước ba là thử nghiệm an toàn. Nhân bản môi trường có vấn đề thành một bản kiểm thử, đừng sửa đi sửa lại trên môi trường đang vận hành. Mỗi lần chỉ điều chỉnh một biến — ví dụ đổi proxy hoặc tuyến WebRTC trước, rồi mới đổi chính sách nhiễu Canvas — mỗi lần đổi hãy lưu lại kết quả kiểm tra, khởi động lại liên tục hai lần để chắc chắn ổn định, rồi mới chạy lại quy trình nghiệp vụ thật trên website mục tiêu. Nếu nghi ngờ tiện ích mở rộng gây nhiễu, hãy bật từng cái trong bản sao để loại trừ.

Những thao tác này giúp bạn trong cùng một bộ cấu hình đối chiếu được cổng ra, tổ hợp tham số và độ ổn định, để “kết quả kiểm tra đến từ lớp nào” dễ định vị hơn. Cần nói rõ: PurpleMark đảm nhiệm việc giữ các tham số nhất quán và lưu lại môi trường có thể tái tạo; kết luận kiểm tra cuối cùng vẫn phụ thuộc vào chất lượng proxy, phiên bản trình duyệt, tiện ích mở rộng, tuyến mạng và logic đánh giá của chính website mục tiêu.

Đừng vì điểm tuyệt đối mà tạo ra bất thường mới

Điểm số của trang kiểm tra phù hợp để phát hiện manh mối, không phù hợp để làm mục tiêu duy nhất. Thay UA, GPU, Canvas, phông chữ và múi giờ quá thường xuyên có thể khiến môi trường bất ổn hơn trước; sao chép “bộ tham số điểm tuyệt đối” của người khác cũng không thể sao chép mạng, phần cứng và lịch sử sử dụng của họ.

Cách làm đúng là bắt đầu từ các trường gốc, sửa những mâu thuẫn rõ ràng trước, rồi kiểm chứng độ ổn định dài hạn và chức năng nghiệp vụ. Một môi trường không đạt điểm cao nhất nhưng tổ hợp hợp lý và ổn định lâu dài, thường dễ quản lý hơn một “môi trường điểm tuyệt đối” thay đổi sau mỗi lần kiểm tra.