Mọi thứ bạn cần biết về dấu vân tay canvas

Dấu vân tay canvas là một công nghệ cho phép người dùng xác thực danh tính của họ bằng cách sử dụng dấu vân tay hoặc chạm vào màn hình. Điều này được sử dụng trong các thiết bị di động hoặc máy tính cầm tay với cảm biến dấu vân tay để xác thực danh tính người dùng và cho phép truy cập vào các tài khoản cá nhân hoặc các dịch vụ bảo mật. Điều này cung cấp một cách tiện lợi và an toàn hơn cho việc xác thực danh tính so với việc sử dụng mật khẩu.

Hiện có nhiều kỹ thuật có thể được sử dụng để theo dõi và nhận dạng bạn thông qua trình duyệt của bạn. Một trong những cách sáng tạo và hiệu quả nhất mà các trang web có thể thực hiện là thông qua dấu vân tay canvas. Kỹ thuật theo dõi sáng tạo này cho phép các trang web xác định người dùng bằng cách kiểm tra cách máy tính của họ thực hiện tác vụ vẽ hình ảnh.

Chúng tôi thường xuyên nhận được thông báo từ các cá nhân quan tâm đến quyền riêng tư đề nghị chúng tôi tạo danh sách các mã băm lấy dấu vân tay canvas. Quan niệm sai lầm này bắt nguồn từ thực tế là các bài kiểm tra trực tuyến đại diện cho một dấu vân tay canvas riêng lẻ dưới dạng hàm băm. Tuy nhiên, việc tạo một cơ sở dữ liệu đầy đủ về các giá trị băm này là không thể do bản chất của quá trình lấy dấu vân tay.

Bạn cần xem xét một số yếu tố khác nhau để thực sự hiểu cách hoạt động của dấu vân tay canvas. Trong bài viết này, chúng tôi sẽ cung cấp giải thích chuyên sâu về dấu vân tay canvas, cách hoạt động và lý do tại sao các tùy chọn có sẵn để chống lại kỹ thuật theo dõi này không phải là lý tưởng.

Hiểu các hàm băm

Trước khi đi vào dấu vân tay canvas, bạn phải hiểu khái niệm về hàm băm. Các hàm băm lấy một đoạn dữ liệu chẳng hạn như một đoạn văn bản, hình ảnh hoặc âm thanh và giảm nó thành một lượng dữ liệu được tiêu chuẩn hóa mà không làm mất đi tính duy nhất của nó. Chúng được gọi là băm.

Có rất nhiều hàm băm có sẵn, nhưng tất cả chúng đều có một điểm chung: chúng được sử dụng để giảm lượng dữ liệu nhằm so sánh nhanh chóng và dễ dàng, mặc dù có những cách sử dụng khác.

Một trong những lý do tại sao hàm băm được sử dụng trong lấy dấu vân tay canvas là thực tế là chúng sẽ luôn tạo ra kết quả giống nhau nếu đầu vào vẫn giống hệt nhau. Chẳng hạn, nếu bạn chạy từ “kỳ lạ” thông qua hàm băm SHA-256, hàm băm kết quả sẽ luôn là:

b6e4acc0d58497837b1273b11bc14bb7334e0b56ecbda2f9b98363d343b30610

Bây giờ, đến phần thú vị. Nếu chúng ta chạy thuật ngữ “kỳ lạ” bao gồm cùng một từ với khoảng trắng bên cạnh, hàm băm thu được sẽ hoàn toàn khác:

e3d52382d090793314599af020841d0772e9fb7f8d94c5dd7415fc896d4e1e8b

Nói cách khác, nếu bạn chạy hai phần tử giống hệt mắt người thông qua hàm băm, chúng vẫn có thể tạo ra các kết quả khác nhau. Điều này là do các biến thể nhỏ và sự khác biệt trong đầu vào mà mắt người không thể nhận thấy. Hãy nhớ điều này, vì nó đóng một vai trò quan trọng trong việc tạo dấu vân tay trên canvas!

Một đặc điểm khác mà bạn cần hiểu là các hàm băm không thể đảo ngược. Nói cách khác, bạn có thể biến bất kỳ phần dữ liệu nào thành hàm băm, nhưng bạn sẽ không thể đảo ngược dữ liệu đó trở lại đầu vào ban đầu. Ví dụ: sử dụng hàm băm MD5, bạn có thể biến từ “dog” thành 06d80eb0c50b49a509b49f2424e8c805 nhưng bạn sẽ không thể thực hiện ngược quy trình tương tự.

Ngoài ra, nếu bạn áp dụng một hàm băm cho các khối thông tin khác nhau, thì không thể biết các đầu vào ban đầu giống nhau hay khác nhau như thế nào. Thật không may, đặc điểm này không ảnh hưởng đến hiệu quả của dấu vân tay canvas.

Làm thế nào để các trang web đọc dấu vân tay canvas?

Dấu vân tay canvas bắt đầu khi một trang web giao cho trình duyệt của bạn nhiệm vụ vẽ một đối tượng canvas. Hãy nhớ rằng đối tượng canvas không phải là dấu vân tay canvas của bạn, nó chỉ đơn giản là một công cụ mà các trang web sử dụng để tạo đồ họa đơn giản và phức tạp.

Trang web sử dụng JavaScript để cung cấp cho trình duyệt của bạn tác vụ vẽ hình ảnh trong đối tượng canvas bằng cách sử dụng tập lệnh được xác định trước. Hình ảnh này có thể chứa các yếu tố phức tạp như đường kẻ, màu sắc, hình học, có nền khác nhau hoặc bị biến dạng theo những cách khác nhau.

Điều chính bạn phải luôn ghi nhớ là các máy tính khác nhau sẽ vẽ hình ảnh theo một cách hơi khác. Ngay cả khi hình ảnh được tạo ra trông giống với mắt người, vẫn có những thay đổi nhỏ cho phép chúng được phân biệt.

Vì vậy, hãy nhớ bản chất của hàm băm? Hai mẩu thông tin trông giống nhau đối với mắt người, nhưng có sự khác biệt nhỏ, sẽ dẫn đến các giá trị băm hoàn toàn khác nhau. Ngay cả những khác biệt nhỏ nhất, rất nhỏ nhất cũng đủ để tạo ra những kết quả khác biệt rõ rệt.

Tuy nhiên, tại sao các máy tính khác nhau tạo ra các hình ảnh khác nhau khi chúng được cung cấp cùng một hướng dẫn?

Vẽ hình ảnh với các công thức toán học

Khi lập trình viên vẽ hình ảnh bên trong đối tượng canvas, quy trình này không giống như vẽ hình ảnh trong MS Paint. Hình ảnh được vẽ là kết quả của một kịch bản tuân theo một công thức toán học. Hãy dành một phút để nhớ lại thời trung học của bạn và nghĩ cách bạn có thể vẽ một vòng tròn bằng các công thức.

Trước hết, bạn sẽ cần hai tọa độ (X và Y) để xác định tâm của hình tròn. Sau đó, bạn sẽ cần bán kính (R) được biểu thị bằng pixel. Sau khi bạn có hai thứ này, máy tính của bạn sẽ vẽ vòng tròn trên màn hình của bạn bằng cách lấp đầy tất cả các pixel riêng lẻ nằm ở khoảng cách R tính từ tâm của vòng tròn. Dễ dàng, phải không?

Tuy nhiên, mọi thứ có thể trở nên thực sự phức tạp khi bạn bắt đầu vẽ những hình ảnh phức tạp. Sử dụng các hướng dẫn được viết bằng Javascript, bạn có thể tạo tất cả các loại hình dạng, bóng đổ, màu sắc, hình nền và các yếu tố phức tạp khác bên trong đối tượng canvas.

Điều gì làm cho dấu vân tay canvas trở nên độc đáo?

Hình ảnh: phông chữ hệ thống trông như thế nào trên các hệ thống máy tính cũ.

Trong thời kỳ đồ đá của kỷ nguyên máy tính, tất cả các máy sẽ vẽ cùng một hình ảnh khi được hướng dẫn giống nhau. Tuy nhiên, với sự phát triển của màn hình độ phân giải cao, các nhà phát triển phần cứng và phần mềm đã đưa ra các bộ lọc giúp cải thiện giao diện cuối cùng của những hình ảnh này.

Các bộ lọc này được áp dụng khi các công thức được chuyển đổi thành hình ảnh pixel và chúng dẫn đến hình ảnh sắc nét hơn, sắc nét hơn và nói một cách đơn giản là trông đẹp hơn. Bộ lọc đáng chú ý nhất là khử răng cưa, nhưng cũng có những bộ lọc cụ thể khác, chẳng hạn như gợi ý, được sử dụng khi vẽ phông chữ.

Tương tự như vậy, tất cả các phông chữ đều chứa glyphs, có thể được mô tả dưới dạng một tập hợp các đường dẫn hoặc đường cong khép kín được chỉ định bằng cách sử dụng một công thức toán học cụ thể. Chẳng hạn, chữ “i” viết thường có hai ký tự, một cho dấu chấm và một cho phần thân. Những nét chữ cụ thể này, còn được gọi là đường viền, sau đó được lấp đầy bằng các pixel để tạo ra mẫu chữ cái cuối cùng.

Glyph cũng có thể hoạt động khác đi vì đôi khi chúng phụ thuộc vào các thành phần khác bao quanh và ảnh hưởng đến chúng. Một hình tượng có thể chứa các tham chiếu đến các đường dẫn khác kết hợp để tạo ra một hình tượng ghép, ví dụ: “é”. Trong nét chữ ghép này, cả chữ “e” và dấu trọng âm đều có vị trí và dữ liệu chuyển đổi tùy chọn được liên kết với chúng.

gợi ý

Hình ảnh: lược đồ nguyên tắc gợi ý phông chữ

Bên cạnh dữ liệu toán học cơ bản xác định đường viền của từng nét chữ cụ thể, phông chữ cũng có thể lưu trữ các “gợi ý” bổ sung. Các gợi ý về cơ bản là các hướng dẫn được thực hiện khi các hình tượng được vẽ trên màn hình của bạn. Các hướng dẫn này di chuyển một số điểm xác định hình dạng của các chữ cái, để đảm bảo chúng được định vị chính xác so với lưới nơi biểu tượng được hiển thị. Bằng cách này, phông chữ sẽ trông giống nhau bất kể nó được hiển thị trên màn hình nào.

Anti-Aliasing

Hình ảnh: cách khử răng cưa hoạt động

Khử răng cưa có thể là bộ lọc phổ biến nhất được sử dụng hiện nay và nó bao gồm việc sử dụng các pixel màu xám để làm mờ các cạnh của mỗi hình tượng. Nếu bạn phóng to một trang, bạn sẽ nhận thấy rằng các cạnh của các chữ cái cong không hoàn hảo mà khá lởm chởm. Bộ lọc khử răng cưa làm mịn các cạnh lởm chởm này vì mắt của chúng ta tính trung bình sự khác biệt về âm sắc.

Điều làm cho mỗi dấu vân tay canvas trở nên độc nhất không phải là hình ảnh cuối cùng mà chúng ta nhìn thấy, mà là cách mỗi máy tính hiển thị gợi ý và khử răng cưa. Các máy tính khác nhau thực hiện từng quy trình khác nhau và thực tế này cho phép lấy dấu vân tay hiệu quả.

Khi hai máy tính được giao cùng một tác vụ vẽ, sẽ có các tông màu hơi khác nhau của các pixel đường viền giữa các điểm khác biệt. Những khác biệt rất nhỏ về quy trình này dẫn đến một hình ảnh trông giống với chúng tôi, nhưng không giống với các trang web. Lưu ý rằng các nghiên cứu khoa học chỉ ra rằng phần cứng máy tính, trình điều khiển và phiên bản trình duyệt đều có thể ảnh hưởng đến glyph kết quả. Ngoài ra, trong nghiên cứu của riêng mình, chúng tôi nhận thấy rằng các máy tính có cùng đơn vị xử lý đồ họa (GPU) sẽ có khả năng tạo ra kết quả giống nhau.

So sánh dấu vân tay canvas thông qua hashes

Bây giờ, chúng tôi đã đề cập đến các chức năng băm và điều gì làm cho dấu vân tay canvas trở nên độc đáo, đã đến lúc kết hợp chúng lại với nhau. Các trang web sử dụng dấu vân tay canvas cung cấp cho tất cả khách truy cập hướng dẫn vẽ các hình ảnh cụ thể. Tuy nhiên, việc gửi lại hình ảnh đã hiển thị tới một trang web sẽ không thực tế. Thay vào đó, các trang web sử dụng hàm băm để giảm kích thước dữ liệu mà không làm mất tính duy nhất của nó.

Giống như chúng tôi đã đề cập trước đây, hai phần dữ liệu trông giống nhau khi nhìn bằng mắt người có thể có những điểm khác biệt dẫn đến các giá trị băm khác nhau, chẳng hạn như “kỳ lạ” và “kỳ lạ”. Nguyên tắc là giống nhau đối với dấu vân tay canvas. Đối với mắt người, tất cả các hình ảnh hiển thị đều giống nhau, nhưng có thể xác định, băm nhỏ và gửi các điểm khác biệt nhỏ và khác biệt do sử dụng các máy khác nhau đến các trang web thông qua các chuỗi thông tin đơn giản nhưng độc đáo.

Tóm lại, dấu vân tay canvas xảy ra khi một trang web xác định cách máy tính của bạn xử lý các hướng dẫn đồ họa. Đây là lý do tại sao hầu như không thể tạo ra một cơ sở dữ liệu về các mã băm canvas. Các trang web có thể gửi một bộ hướng dẫn cụ thể đến máy tính của bạn và có thể sử dụng một trong số các hàm băm khác nhau để đơn giản hóa dữ liệu được gửi lại cho chúng. Hơn nữa, các trang web có thể thay đổi hướng dẫn và/hoặc hàm băm bất kỳ lúc nào để lấy dấu vân tay của khách truy cập theo một cách hoàn toàn khác.

Cơ chế giảm thiểu và lý do tại sao chúng không hoạt động tốt

Do bản chất của các kỹ thuật lấy dấu vân tay trên canvas, thật khó để đưa ra một cách hiệu quả để chống lại nó. Giải pháp đầu tiên được phát triển bởi cộng đồng quyền riêng tư trực tuyến là vô hiệu hóa chức năng canvas. Đây có thể là một giải pháp khả thi nếu nó được chấp nhận bởi một nhóm đủ lớn. Tuy nhiên, tại thời điểm viết bài này, chúng tôi ước tính rằng chỉ có 20.000 người dùng trên khắp thế giới sử dụng các tiện ích bổ sung chặn dấu vân tay canvas và thực tế là việc sử dụng các tiện ích bổ sung này có thể được sử dụng làm dấu vân tay của chính nó.

Như chúng tôi đã đề cập trước đây, các máy tính có cùng GPU sẽ có cùng đầu ra canvas. Bộ điều hợp video có GPU giống hệt nhau có thể được bán với số lượng hàng nghìn hoặc thậm chí hàng triệu. Đặt bạn vào một nhóm bao gồm hàng triệu người, thay vì 20.000 người sử dụng trình chặn canvas, sẽ mang lại kết quả hiệu quả hơn.

Tại Multilogin, chúng tôi đã phát triển một giải pháp mạnh mẽ hơn có tên là Canvas Defender. Ý tưởng đằng sau nó là thêm nhiễu tùy ý vào đầu ra canvas bằng cách thay đổi ngẫu nhiên tông màu của một số pixel trong ảnh. Có, mặc dù giải pháp cho phép các trang web theo dõi người dùng chính xác hơn, nhưng có hai lợi ích chính hoạt động trong các tình huống cụ thể.

Đầu tiên là khả năng “thả đuôi” vì bạn có thể quyết định khi nào bạn muốn thay đổi dấu vân tay canvas của mình. Lợi ích thứ hai chỉ áp dụng cho những người dùng sử dụng các cấu hình trình duyệt khác nhau để thực hiện các tác vụ khác nhau. Mặc dù mọi hồ sơ đều có thể được lấy dấu vân tay, nhưng việc theo dõi một người dùng chỉ truy cập một trang web và thực hiện một nhiệm vụ cụ thể là một bài tập vô nghĩa.

Thật không may, Canvas Defender đã nhanh chóng được các nền tảng web lớn chú ý và chúng tôi yêu thích việc bảo vệ quyền riêng tư trực tuyến bao nhiêu thì họ lại thích thu thập thông tin từ chúng tôi bấy nhiêu. Để ngăn người dùng sử dụng Canvas Defender, các trang web lớn đã bắt đầu lọc ra những người dùng có dấu vân tay canvas hoàn toàn độc đáo. Điều này có ý nghĩa bởi vì không có người dùng nào có GPU hoàn toàn độc đáo, ngoại trừ các kỹ sư đang thử nghiệm các mẫu card đồ họa mới trong phòng thí nghiệm của họ.

Tóm lại là…

Dấu vân tay canvas hiệu quả và đặt ra một thách thức lớn đối với những người đam mê quyền riêng tư trực tuyến. Chặn các đối tượng canvas chỉ hiệu quả nếu một nhóm lớn người dùng áp dụng giải pháp này, điều này khó xảy ra do tính phức tạp của chủ đề này.

Che giấu dữ liệu vân tay canvas bằng các tham số giả yêu cầu các bước bổ sung, chẳng hạn như thiết lập các cấu hình trình duyệt khác nhau. Ngoài ra, các nền tảng web thường có thể dễ dàng phát hiện các tham số bị che dấu. Ngay cả khi chúng trở nên dễ triển khai, các nền tảng web sẽ làm gián đoạn người dùng sử dụng các thông số bị che dấu bằng cách kết hợp các bước xác minh bổ sung và kiểm tra bảo mật.

Điều đó đang được nói, nó không phải là tất cả u ám và diệt vong khi nói đến dấu vân tay canvas. Tại Multilogin, chúng tôi đã phát triển một giải pháp lý thuyết có khả năng trở thành câu trả lời hiệu quả mà tất cả chúng tôi đang chờ đợi.

Hiện tại, chúng tôi sẽ không thảo luận chi tiết về giải pháp này vì chúng tôi vẫn đang nghiên cứu cách triển khai và áp dụng nó cho tất cả các tình huống; chưa kể chúng tôi không muốn tạo lợi thế cạnh tranh cho những người phát triển cơ chế lấy dấu vân tay.

Tuy nhiên, hãy yên tâm rằng sớm muộn gì chúng tôi cũng sẽ triển khai giải pháp này khi các nền tảng web lớn đã đến lượt mình. Bây giờ quả bóng đang ở trong sân của chúng tôi và chúng tôi đang lên kế hoạch tạo ra tác động lớn.

Mọi thứ bạn cần biết về dấu vân tay canvas

Leave a Reply

All in one