Vân tay trình duyệt

Updated by guanguan

Tác nhân người dùng

Tác nhân người dùng là gì?

Tác nhân người dùng là bất kỳ phần mềm nào tương tác với máy chủ web thay mặt cho người dùng Internet. Chúng cũng có thể được coi là cầu nối giữa bạn và Internet.

Bất kỳ phần mềm nào gửi yêu cầu web đến máy chủ web đều là tác nhân người dùng cho dù phần mềm đó hoạt động độc lập với sự tương tác của con người như trong trường hợp các công cụ tự động hóa hoặc bot hay trong trường hợp trình duyệt web và phần mềm khác chấp nhận lệnh trực tiếp từ con người.

Ví dụ: nếu bạn muốn gửi nội dung truy cập trực tuyến, bạn sẽ phải sử dụng trình duyệt web đóng vai trò là tác nhân người dùng xử lý việc truy xuất, hiển thị và giúp bạn có thể tương tác với nội dung.

Trong giao thức mạng, máy khách được coi là tác nhân người dùng, được sử dụng để liên lạc với hệ thống mạng máy khách-máy chủ. Bạn có thể quan tâm khi biết rằng trình đọc email của bạn là tác nhân người dùng thư.

Tác nhân người dùng không dừng ở đó – bảng điều khiển trò chơi của bạn có thể là tác nhân người dùng, TV thông minh và các thiết bị hỗ trợ Internet khác cũng vậy. Trong Giao thức truyền siêu văn bản (HTTP), máy khách (tác nhân người dùng) được xác định bằng tiêu đề tác nhân người dùng.

Công dụng của tác nhân người dùng

Bạn có thể thắc mắc tại sao phần mềm máy khách lại tự nhận dạng và máy chủ web cần thông tin đó để làm gì? Hóa ra tác nhân người dùng có hai công dụng chính. Chúng bao gồm đàm phán nội dung, cấp quyền truy cập và chặn.

Đàm phán nội dung

Có nhiều biến thể của một trang web được cung cấp cho các thiết bị dựa trên khả năng của chúng. Lấy ví dụ, cấu trúc của trang kết quả của công cụ tìm kiếm Google khác nhau tùy thuộc vào trình duyệt hoặc nền tảng bạn đang sử dụng để truy cập nó. Bằng cách xem chuỗi tác nhân người dùng, Google có thể cung cấp cho bạn phiên bản tốt nhất cho trình duyệt và thiết bị của bạn.

Có nhiều trang web khác trên Internet sử dụng tác nhân người dùng để cung cấp trải nghiệm người dùng tốt hơn. Nếu không có tác nhân người dùng, tốt nhất bạn sẽ được cung cấp phiên bản chung của một trang, phiên bản này có thể hiển thị tốt hoặc không hiển thị tốt trên trình duyệt của bạn. Các nhà phát triển bot sử dụng điều này để tránh trang web giàu JavaScript bằng cách sử dụng các tác nhân trình duyệt di động sẽ khiến máy chủ web trả về phiên bản nặng không phải JavaScript của một trang.

Truy cập đàm phán và chặn

Có lẽ cách sử dụng phổ biến nhất của chuỗi tác nhân người dùng là để biết liệu một phần mềm máy khách cụ thể có quyền truy cập vào một số nội dung nhất định hay không. Máy chủ web sử dụng chuỗi tác nhân người dùng trong tiêu đề yêu cầu HTTP để loại trừ trình thu thập thông tin, trình dọn dẹp và các bot khác truy cập vào nền tảng của chúng.

Nhiều trang web phổ biến trên Internet không hài lòng với lưu lượng truy cập của bot và do đó, sẽ từ chối quyền truy cập vào các tác nhân người dùng không phải là các trình duyệt phổ biến. Trong khi thực hiện việc này trong nội bộ, họ có thể cung cấp tín hiệu cho trình thu thập dữ liệu web thông qua tệp robots.txt – và yêu cầu bạn làm theo chỉ thị trong đó. Nói chung, các máy chủ web chỉ muốn cho phép truy cập vào lưu lượng truy cập bắt nguồn từ người dùng và có xu hướng chặn lưu lượng truy cập từ các nguồn tự động, ngoại trừ việc họ có lợi.

Cookie, một loại “tệp văn bản nhỏ”, đề cập đến dữ liệu (thường được mã hóa) mà một số trang web lưu trữ trên thiết bị đầu cuối cục bộ của người dùng (Phía máy khách) để nhận dạng người dùng.

Bởi vì giao thức HTTP là không trạng thái, tức là máy chủ không biết lần trước người dùng đã làm gì, điều này cản trở nghiêm trọng việc triển khai các ứng dụng web tương tác. Trong một tình huống mua sắm trực tuyến điển hình, người dùng duyệt qua một số trang và mua một hộp bánh quy và hai chai đồ uống. Ở lần thanh toán cuối cùng, do tính chất không trạng thái của HTTP, máy chủ không biết người dùng đã mua gì nếu không có phương tiện bổ sung, vì vậy cookie là một trong những “phương tiện bổ sung” được sử dụng để vượt qua trạng thái không trạng thái của HTTP. Máy chủ có thể đặt hoặc đọc thông tin có trong Cookies để duy trì trạng thái của người dùng trong cuộc trò chuyện với máy chủ.

Trong kịch bản mua sắm vừa rồi, khi người dùng mua mặt hàng đầu tiên, máy chủ sẽ gửi cookie cho người dùng trong khi gửi trang web cho người dùng, ghi lại thông tin của mặt hàng đó. Khi người dùng truy cập một trang khác, trình duyệt sẽ gửi cookie đến máy chủ để máy chủ biết trước đó họ đã mua gì. Người dùng tiếp tục mua đồ uống và máy chủ thêm thông tin sản phẩm mới vào cookie ban đầu. Khi thanh toán, máy chủ chỉ đọc cookie được gửi.

Một ứng dụng điển hình khác của cookie là khi đăng nhập vào một trang web, trang web đó thường yêu cầu người dùng nhập tên người dùng và mật khẩu và người dùng có thể chọn “Tự động đăng nhập lần sau”. Nếu được chọn, lần sau khi người dùng truy cập vào cùng một trang web, người dùng sẽ thấy rằng mình đã đăng nhập mà không nhập tên người dùng và mật khẩu. Điều này chính xác là do máy chủ đã gửi cookie chứa thông tin xác thực đăng nhập (dạng tên người dùng và mật khẩu được mã hóa) tới đĩa cứng của người dùng trong lần đăng nhập trước đó. Khi đăng nhập lần thứ hai, nếu cookie chưa hết hạn, trình duyệt sẽ gửi cookie và máy chủ xác minh thông tin đăng nhập, do đó người dùng có thể đăng nhập mà không cần nhập tên người dùng và mật khẩu.

Ngôn ngữ

Ngôn ngữ là một trong những dấu vân tay cơ bản của trình duyệt. Dấu vân tay cơ bản của trình duyệt là một đặc điểm nhận dạng mà bất kỳ trình duyệt nào cũng có, bao gồm độ phân giải màn hình, loại phần cứng, hệ điều hành, tác nhân người dùng, phông chữ hệ thống, ngôn ngữ, plugin trình duyệt, tiện ích mở rộng trình duyệt, cài đặt trình duyệt, sự khác biệt về múi giờ và nhiều thứ khác. thông tin, những thông tin dấu vân tay này tương tự như chiều cao, tuổi tác của con người, v.v., có khả năng xung đột cao, chỉ có thể được sử dụng làm nhận dạng phụ trợ.

Độ phân giải

Độ phân giải màn hình đề cập đến độ rõ nét của văn bản và hình ảnh hiển thị trên màn hình. Màn hình càng lớn thì độ phân giải thường được hỗ trợ càng cao. Độ phân giải màn hình có thể tăng lên hay không tùy thuộc vào kích thước và khả năng của màn hình cũng như loại card màn hình được sử dụng. Về mặt kỹ thuật, “độ phân giải” là số pixel trên một đơn vị diện tích chứ không phải tổng số pixel.

Múi giờ

Múi giờ là một khu vực được chỉ định trên quy mô toàn cầu và thời gian tiêu chuẩn thống nhất được tuân thủ cho các mục đích pháp lý, thương mại và xã hội. Múi giờ thường tuân theo biên giới của các quốc gia và tiểu vùng của họ, thay vì tuân thủ nghiêm ngặt kinh độ, vì thuận tiện cho các khu vực thương mại hoặc liên lạc gần gũi có thể duy trì cùng một thời gian.

Tổng chênh lệch thời gian giữa hầu hết các múi giờ trên đất liền và Giờ phối hợp quốc tế (UTC) là cả một giờ (UTC-11:00 (UTC-12:00 không có người) đến UTC + 14:00), nhưng một số trong số đó được bù Shift 30 hoặc 45 phút (ví dụ: Giờ chuẩn Newfoundland là UTC-03:30, Giờ chuẩn Nepal là UTC+05:45, Giờ chuẩn Ấn Độ là UTC+05:30 và Giờ chuẩn Myanmar là UTC+06:30).

MoreLogin hiển thị Giờ chuẩn Greenwich khi bạn mở trình duyệt.

Âm thanh

API âm thanh do HTML5 cung cấp để lập trình JavaScript cho phép các nhà phát triển thao tác trực tiếp dữ liệu luồng âm thanh gốc trong mã, tạo, xử lý và tạo lại dữ liệu đó một cách tùy ý, chẳng hạn như cải thiện âm sắc, thay đổi cao độ và phân đoạn âm thanh. Nó thậm chí có thể được gọi là phiên bản web của Adobe Audition.

Nguyên lý của dấu vân tay AudioContext đại khái như sau:

Phương pháp 1: Tạo luồng thông tin âm thanh (sóng tam giác), thực hiện chuyển đổi FFT trên đó và tính giá trị SHA dưới dạng dấu vân tay.

Phương pháp 2: Tạo luồng thông tin âm thanh (sóng hình sin), thực hiện xử lý nén động và tính giá trị MD5.

Trong cả hai phương pháp, âm thanh sẽ bị xóa trước khi âm thanh được xuất ra thiết bị âm thanh và người dùng sẽ được lấy dấu vân tay mà không hề nhận ra.

Nguyên tắc cơ bản của lấy dấu vân tay AudioContext:

Sự khác biệt nhỏ về phần cứng hoặc phần mềm của máy chủ hoặc trình duyệt gây ra sự khác biệt trong quá trình xử lý tín hiệu âm thanh. Cùng một loại trình duyệt trên cùng một trình duyệt sẽ tạo ra cùng một đầu ra âm thanh và đầu ra âm thanh do các máy khác nhau hoặc các trình duyệt khác nhau tạo ra sẽ khác nhau.

Có thể thấy ở trên rằng dấu vân tay của AudioContext và Canvas rất giống nhau về nguyên tắc. Cả hai đều sử dụng sự khác biệt về phần cứng hoặc phần mềm. Cái trước tạo ra âm thanh, cái sau tạo ra hình ảnh và sau đó tính toán các giá trị băm khác nhau để nhận dạng.

Lưu trữ cục bộ

Là một trong những API của tính năng lưu trữ web lưu trữ cục bộ HTML5, lưu trữ cục bộ chủ yếu được sử dụng để lưu trữ dữ liệu bai trong máy khách và máy khách thường đề cập đến máy tính của người dùng thiết kế trang web Thượng Hải. Trên thiết bị di động, do hầu hết các trình duyệt đều hỗ trợ tính năng lưu trữ web nên các trình duyệt web trên điện thoại thông minh như android và ios đều có thể sử dụng tính năng này một cách bình thường.

Dữ liệu được lưu bởi lưu trữ cục bộ thường được lưu vĩnh viễn, điều đó có nghĩa là miễn là thông tin được lưu bởi lưu trữ cục bộ thì dữ liệu sẽ luôn được lưu trữ trong ứng dụng khách của người dùng. Ngay cả khi người dùng đóng trình duyệt web hiện tại và khởi động lại thì dữ liệu vẫn tồn tại. Vòng đời của dữ liệu sẽ chỉ kết thúc khi người dùng hoặc chương trình thực hiện việc xóa rõ ràng.

Về mặt bảo mật, bộ nhớ cục bộ được bảo mật trong miền, nghĩa là bộ nhớ cục bộ dựa trên tên miền. Bất kỳ trang nào trong miền đều có thể truy cập dữ liệu lưu trữ cục bộ. Nhưng có một vấn đề, đó là dữ liệu giữa các trình duyệt của mỗi nhà sản xuất trình duyệt là độc lập. Nói cách khác, nếu bạn sử dụng bộ lưu trữ cục bộ để lưu trữ một tập hợp dữ liệu trong firefox thì nó không thể đọc được trong trình duyệt chrome. Tương tự, vì dữ liệu lưu trữ cục bộ được lưu trữ trong thiết bị của người dùng nên dữ liệu được lưu bởi cùng một ứng dụng trên các thiết bị khác nhau là khác nhau.

Địa lý

API vị trí địa lý là một phần của tiêu chuẩn W3C HTML5, cung cấp API JavaScript cấp cao đơn giản cho phép các trang web yêu cầu vị trí thực tế, do đó có khả năng ảnh hưởng đến quyền riêng tư của người dùng. Thử nghiệm API vị trí địa lý này nhằm đảm bảo rằng không có thông tin vị trí nào được truy cập thông qua API này mà không có sự cho phép rõ ràng của bạn.

Nguồn:https://browserleaks.com/geo

Phông chữ

Dấu vân tay phông chữ - là những phông chữ bạn có và cách chúng được vẽ. Dựa trên việc đo kích thước của các phần tử HTML văn bản chứa đầy, có thể xây dựng một mã định danh có thể được sử dụng để theo dõi cùng một trình duyệt theo thời gian.

Dấu vân tay dựa trên số liệu phông chữ được kết hợp chặt chẽ với dấu vân tay canvas. Đây có thể là một kỹ thuật lấy dấu vân tay yếu hơn vì canvas không chỉ nhận được các hộp giới hạn mà còn cả dữ liệu pixel. Mặt khác, việc bảo vệ dấu vân tay của phông chữ khó bảo vệ hơn nhiều.

Kết xuất văn bản là một phần tinh tế và phức tạp của trình duyệt web. Ngay cả trong bảng chữ cái Latinh, bố cục không chỉ đơn giản là xếp các hộp lại với nhau: các yếu tố cần cân nhắc như chữ ghép, k sâu và kết hợp các ký tự sẽ phát huy tác dụng. Một số hệ thống chữ viết khác thậm chí còn phức tạp hơn, khiến trình duyệt phải dựa vào các thư viện do hệ điều hành cung cấp để bố cục văn bản. Các thư viện này, bao gồm Pango trên GNU/Linux, Giao diện thiết bị đồ họa (GDI) hoặc DirectWrite trên Windows và Core Text trên Mac OS X, là các cơ sở mã độc lập và không hoạt động giống hệt nhau. Các trình duyệt cũng áp dụng các tùy chỉnh của riêng họ trên phần hiển thị văn bản cơ sở.

Nguồn:https://browserleaks.com/fonts

Canvas

Canvas là một phần của HTML5 và cho phép các ngôn ngữ kịch bản tự động hiển thị hình ảnh bit. Bạn có thể sử dụng ngôn ngữ lập trình JavaScript để vẽ trên phần tử này. Các ứng dụng phổ biến bao gồm vẽ đồ họa và văn bản, xử lý hình ảnh, trò chơi và hoạt hình.

Nguồn:https://browserleaks.com/canvas

WebGL

WebGL là API JavaScript được sử dụng để hiển thị đồ họa 2D và 3D tương tác trong bất kỳ trình duyệt web tương thích nào mà không cần sử dụng plug-in. WebGL được tích hợp hoàn toàn vào tất cả các tiêu chuẩn trang web của trình duyệt và khả năng tăng tốc xử lý hình ảnh và hiệu ứng GPU có thể được sử dụng như một phần của Canvas trang web. Các phần tử WebGL có thể được thêm vào các phần tử HTML khác và trộn lẫn với các phần khác của trang web hoặc nền trang web. Chương trình WebGL bao gồm một bộ điều khiển được viết bằng JavaScript và mã đổ bóng được viết bằng Ngôn ngữ tạo bóng OpenGL (GLSL), tương tự như C hoặc C++ và chạy trên bộ xử lý đồ họa (GPU) của máy tính.

Nguồn:https://browserleaks.com/webgl

WebRTC

WebRTC là một plugin trình duyệt thường được sử dụng bởi các ứng dụng web yêu cầu kết nối trực tiếp nhanh. Vì WebRTC thiết lập kết nối thông qua giao thức UDP nên nó không được định tuyến qua máy chủ proxy mà bạn có thể sử dụng trong trình duyệt. Các trang web có thể khai thác thực tế này để tiết lộ địa chỉ IP cục bộ và công cộng thực sự của bạn ngay cả khi bạn đang sử dụng proxy. Plugin tương tự cũng có thể được sử dụng để tiết lộ địa chỉ IP cục bộ hoặc theo dõi các thiết bị đa phương tiện của bạn.

Plugin WebRTC nào bị rò rỉ

  1. (Các) địa chỉ IP công cộng
  2. (Các) địa chỉ IP cục bộ
  3. Số và giá trị băm của thiết bị đa phương tiện

Nguồn:https://browserleaks.com/webrtc

Thiết bị truyền thông

WebRTC là một plugin trình duyệt hỗ trợ giao tiếp âm thanh và video bên trong trang web bằng cách cho phép thực hiện kết nối ngang hàng trực tiếp, không cần phải cài đặt plugin bổ sung hoặc các ứng dụng gốc khác. Để plugin hoạt động, WebRTC cấp quyền truy cập vào các thiết bị đa phương tiện của bạn, chẳng hạn như micrô, máy ảnh và tai nghe. Các trang web có thể khai thác cơ chế này theo hai cách:

  1. Liệt kê thiết bị
  2. Theo dõi ID thiết bị đa phương tiện

Do Not Track

Do Not Track (DNT) là trường tiêu đề HTTP (Header). Khi người dùng kích hoạt chức năng này, trình duyệt sẽ thêm trường tiêu đề vào đường truyền dữ liệu http: dnt: 1. Trường này cho máy chủ trang web biết rằng người dùng không muốn bị theo dõi. Bằng cách này, các trang web tuân thủ quy tắc sẽ không theo dõi thông tin cá nhân của người dùng để quảng cáo chính xác hơn.

SSL

Transport Layer Security (TLS) và tiền thân của nó là Secure Sockets Layer (tiếng Anh: Secure Sockets Layer, viết tắt: SSL) là một giao thức bảo mật nhằm mục đích cung cấp bảo mật và bảo vệ tính toàn vẹn dữ liệu cho truyền thông Internet. Khi Netscape tung ra phiên bản đầu tiên của trình duyệt web-Netscape Navigator vào năm 1994, nó đã giới thiệu giao thức HTTPS với mã hóa SSL, đây là nguồn gốc của SSL. IETF đã tiêu chuẩn hóa SSL và xuất bản tài liệu tiêu chuẩn TLS 1.0 (RFC 2246) vào năm 1999. Sau đó, TLS 1.1 (RFC 4346, 2006), TLS 1.2 (RFC 5246, 2008) và TLS 1.3 (RFC 8446, 2018) đã được công bố. Giao thức này được sử dụng rộng rãi trong các ứng dụng như trình duyệt, e-mail, nhắn tin tức thời, VoIP và Internet fax. Nhiều trang web như Google, Facebook, Wikipedia, v.v. cũng sử dụng giao thức này để tạo kết nối an toàn và gửi thông tin. Nó đã trở thành tiêu chuẩn công nghiệp cho việc liên lạc bí mật trên Internet.

SSL bao gồm Lớp bản ghi và lớp vận chuyển. Giao thức lớp bản ghi xác định định dạng đóng gói của dữ liệu lớp vận chuyển. Giao thức bảo mật lớp vận chuyển sử dụng xác thực X.509, sau đó sử dụng thuật toán mã hóa bất đối xứng để xác thực bên giao tiếp, sau đó trao đổi khóa đối xứng làm khóa phiên. Khóa phiên này được sử dụng để mã hóa dữ liệu được hai bên trao đổi nhằm đảm bảo tính bảo mật và độ tin cậy của giao tiếp giữa hai ứng dụng, để giao tiếp giữa máy khách và ứng dụng máy chủ sẽ không bị kẻ tấn công nghe lén.

Cần sự giúp đỡ nhiều hơn? Liên hệ chúng tôi:


How did we do?