0

Website nhận dạng người dùng qua dấu vân tay trình duyệt như thế nào?

Khi bạn mở một trang web, trình duyệt không chỉ tải nội dung về mà còn "tự giới thiệu" mình với máy chủ và với mã chạy trên trang. Dấu vân tay trình duyệt (browser fingerprint) hình thành từ chính những thông tin đó. Bài viết này giải thích các bước một website hoặc dịch vụ bên thứ ba thường thực hiện để biến các thông số rời rạc thành một mã nhận dạng thiết bị.

Bước 1: Thu thập thông tin từ trình duyệt

Thông tin được lấy từ hai nguồn chính.

Tiêu đề HTTP (HTTP headers). Mỗi yêu cầu gửi đến máy chủ đều kèm một số thông tin như user agent (loại trình duyệt, phiên bản, hệ điều hành), ngôn ngữ ưu tiên và các định dạng nội dung trình duyệt chấp nhận. Máy chủ nhận được những thông tin này ngay cả khi không chạy đoạn mã nào.

Mã JavaScript trên trang. Đây là nguồn phong phú hơn nhiều. Mã chạy trên trang có thể đọc các thuộc tính của trình duyệt và thiết bị, chẳng hạn độ phân giải màn hình, độ sâu màu, múi giờ, số nhân xử lý, dung lượng bộ nhớ ước tính và nền tảng hệ điều hành.

Bước 2: Đo cách thiết bị thực hiện tác vụ

Ngoài việc đọc thuộc tính, một số kỹ thuật quan sát kết quả khi thiết bị thực hiện một tác vụ cụ thể. Cùng một yêu cầu nhưng mỗi tổ hợp phần cứng, hệ điều hành và trình điều khiển có thể cho kết quả khác nhau rất nhỏ.

  • Canvas: trang yêu cầu trình duyệt vẽ một hình hoặc đoạn chữ ẩn rồi đọc lại dữ liệu điểm ảnh. Khác biệt nhỏ ở cách làm mượt cạnh chữ và kết xuất đồ họa tạo ra kết quả khác nhau giữa các thiết bị.
  • WebGL: trang có thể lấy thông tin về card đồ họa và nhà sản xuất qua giao diện đồ họa 3D, đồng thời kiểm tra kết quả kết xuất.
  • Âm thanh (AudioContext): trang xử lý một tín hiệu âm thanh thử, không phát ra loa, rồi ghi lại kết quả số học, vốn hơi khác nhau giữa các cấu hình.
  • Phông chữ: trang đo kích thước của cùng một đoạn văn bản với nhiều phông khác nhau. Từ chênh lệch kích thước, hệ thống suy ra phông nào đang được cài trên máy.

Bước 3: Ghép lại và tạo mã định danh

Từng giá trị đơn lẻ thường rất phổ biến. Hàng triệu người cùng dùng một độ phân giải hay cùng ngôn ngữ. Nhưng khi ghép nhiều giá trị lại, số tổ hợp khả dĩ tăng rất nhanh, nên số người có đúng cùng một tổ hợp giảm mạnh.

Cách nhìn thường dùng là entropy, đo bằng bit: mỗi thuộc tính bổ sung một lượng thông tin giúp phân biệt. Về lý thuyết, khoảng 33 bit thông tin là đủ để phân biệt từng người trong dân số thế giới, nên một tổ hợp thuộc tính đủ đa dạng có thể tiến gần đến mức đó.

Sau khi thu thập, hệ thống thường băm toàn bộ dữ liệu thành một chuỗi ngắn. Chuỗi này đóng vai trò mã định danh để lưu và so sánh.

Bước 4: So khớp trong các lần truy cập sau

Khi người dùng quay lại, dịch vụ thu thập lại các giá trị và so với mã đã lưu. Nếu trùng hoặc rất gần, hệ thống có cơ sở cho rằng đây có thể là cùng một thiết bị, kể cả khi cookie đã bị xóa. Nhiều hệ thống không đòi hỏi trùng tuyệt đối mà dùng cách chấm điểm mức độ giống nhau, vì cấu hình có thể thay đổi nhẹ theo thời gian, ví dụ sau khi cập nhật trình duyệt.

Kết hợp với các tín hiệu khác

Dấu vân tay hiếm khi được dùng một mình. Các dịch vụ thường kết hợp thêm:

  • Địa chỉ IP và thông tin mạng, ví dụ khu vực và loại nhà cung cấp kết nối.
  • Cookie và dữ liệu lưu trữ khi còn tồn tại.
  • Hành vi sử dụng, chẳng hạn nhịp độ thao tác, cách di chuyển chuột hoặc gõ phím.
  • Tính nhất quán của các thông số: hệ thống đối chiếu xem các giá trị có hợp lý với nhau không, ví dụ múi giờ của thiết bị có phù hợp với khu vực của IP, hay user agent có khớp với nền tảng phần cứng báo về. Những mâu thuẫn bất thường có thể là tín hiệu để xem xét kỹ hơn.

Giới hạn của phương pháp này

Dấu vân tay không phải là bằng chứng tuyệt đối về danh tính.

  • Các thiết bị cùng mẫu, cùng phiên bản hệ điều hành và cấu hình mặc định, ví dụ nhiều điện thoại cùng đời, có thể cho dấu vân tay giống nhau.
  • Dấu vân tay thay đổi khi người dùng cập nhật phần mềm, đổi độ phân giải hay cài thêm phông chữ.
  • Một số trình duyệt chủ động làm giảm độ chính xác hoặc làm đồng nhất các giá trị để hạn chế fingerprinting.
  • Hệ thống có thể nhầm lẫn, nên các quyết định quan trọng như khóa tài khoản thường dựa trên nhiều tín hiệu chứ không chỉ một mã.

Liên hệ với trình duyệt antidetect

Vì dấu vân tay được tạo từ những thông số có thể cấu hình, đã xuất hiện antidetect browser. Thay vì để mọi cửa sổ trình duyệt mang cùng thông số của máy tính, loại trình duyệt này cho phép thiết lập riêng các giá trị như user agent, hệ điều hành, độ phân giải hay múi giờ cho từng profile, để mỗi profile có một cấu hình riêng và nhất quán.

Người dùng thường áp dụng cách này khi cần tách biệt nhiều tài khoản mà mình sở hữu hoặc được ủy quyền quản lý, ví dụ trong công việc của agency hay khi vận hành nhiều gian hàng. Tuy nhiên, như đã nói ở trên, các hệ thống nhận dạng còn xem xét nhiều tín hiệu và kiểm tra tính nhất quán. Vì vậy công cụ này chỉ giúp tổ chức môi trường làm việc, không đảm bảo kết quả, và người dùng vẫn cần tuân thủ điều khoản của từng nền tảng.

Mục đích sử dụng và vấn đề quyền riêng tư

Kỹ thuật này được dùng để phát hiện gian lận, bảo vệ tài khoản và chống bot. Nhưng cũng chính nó có thể phục vụ theo dõi người dùng xuyên nhiều website mà họ không hay biết. Vì vậy fingerprinting là chủ đề được các tổ chức bảo vệ quyền riêng tư và cơ quan quản lý theo dõi chặt chẽ, và nhiều trình duyệt đã bổ sung biện pháp hạn chế.

Tóm tắt

Website nhận dạng người dùng qua dấu vân tay trình duyệt bằng cách thu thập thuộc tính từ tiêu đề HTTP và mã JavaScript, đo kết quả của các tác vụ đồ họa, âm thanh và phông chữ, rồi ghép tất cả thành một mã băm để so khớp ở các lần truy cập sau. Kết quả thường được kết hợp với IP, cookie và hành vi để tăng độ tin cậy, nhưng vẫn có giới hạn và không phải bằng chứng tuyệt đối về danh tính. Trong thực tế, các trình duyệt antidetect cho phép cấu hình riêng các thông số này theo từng profile, phục vụ nhu cầu tách biệt nhiều môi trường làm việc hợp lệ.


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí