Hãy xem xét các tình huống dưới đây
- Anh X dùng 1 acc facebook phụ để like hình gái , tránh vợ phát hiện. 1 ngày đẹp trời cả face phụ và face chính bay màu . Cay cú, anh X dùng sim khác, ip khác, trình duyệt khác, tất cả mọi thứ đều khác để tạo thêm vài acc face like hình gái tiếp, đam mê mà . Qua bữa sau đám acc đó lại tiếp tục bay màu, wdf, sau thằng facebook hay vậy? Nó làm như thế nào?
- Anh Y là 1 mmo-er, mấy cái trò fake ip, useragent, browser đối với anh là chuyện nhỏ . Nghĩ mình hoàn toàn vô hình trên internet, anh Y bắt đầu startup đi... scam trên mạng . 1 ngày đẹp trời không nắng, hơn chục anh FBI ập vào xích anh Y như cán bộ xích Khá Bảnh trong khi anh Y còn chưa biết mình sai chỗ nào . Sao mấy anh FBI hay vậy?
Chắc hẳn khi chiến mmo, các bạn cũng sẽ có vài lần cay cú khi gặp trường hợp như anh X hoặc thắc mắc khi gặp những trường hợp như anh Y mà tìm nát google cũng không tìm được câu trả lời thoả đáng, nếu có thì cũng chỉ là những mảnh ghép khá mơ hồ rất khó để lắp ghép. Series "Device fingerprint và nghệ thuật ẩn danh" sẽ giúp bạn hiểu 1 phần về lĩnh vực này theo cách đơn giản nhất có thể, và tuyệt vời, nó được viết bằng tiếng Việt
Trong nội bộ series này, tôi sẽ chỉ nói riêng về browser fingerprint, tức dấu vân tay thiết bị "được" website thu thập thông qua trình duyệt trên máy tính kèm những giải pháp để xử lý chúng. Series này phục vụ cho việc chống lại các website bẩn thu thập thông tin máy tính trái phép, hoàn toàn không ủng hộ việc cheat, fraud
. Sử dụng ra sao là do các bạn, tôi không chịu trách nhiệm
Do đây toàn là kiến thức lụm lặt của 1 anh coder hẻm, nếu có kiến thức nào sai bạn hãy comment lại phía dưới để mọi người cùng thảo luận, rất hoan nghênh
.
I/ Giới thiệu về Device Fingerprint
- Device fingerprint hay machine fingerprint (trong nội bộ series này là browser fingerprint), là 1 chuỗi các thông tin về phần mềm lẫn phần cứng của thiết bị, được mã hoá (hash) lại rồi gửi về server của website, từ đó xác định danh tính người dùng, làm gì thì tuỳ mục đích của họ. Thông thường thì việc này nhắm vào 2 mục đích chính:
- chống gian lận như xác định danh tính hacker, chống multi-accounts, bot traffic, chống gian lận tài chính...
- xây dựng kịch bản thói quen người dùng để quảng cáo đúng đối tượng (facex, goox...)
- Các kỹ thuật thu thập thông tin này được giới thiệu lần đầu trong thập niên 90 thông qua javascript trên trình duyệt, sau đó càng ngày càng phát triển với rất nhiều kỹ thuật mới, thuật toán phức tạp hơn. Thậm chí ngày này có những website hoặc dịch vụ bên thứ 3 đã áp dụng cả AI vào việc này nhằm chống lại những người cố gắng fake những thông tin này.
- Device(browser) fingerprint có nguy hiểm không? Tất nhiên là có, nếu chỉ phục vụ mục đích chống gian lận thì nó cũng không ảnh hưởng gì lắm cho những người dùng cá nhân thông thường, nhưng khi nó được áp dụng 1 cách tràn lan như hiện tại thì nó quả thực là ác mộng. Danh tính cá nhân cũng như nhất cử nhất động của người dùng trên internet đều bị ghi lại, họ làm gì với đống thông tin đó có trời mà biết, người dùng bị thu thập thông tin ở thế bị động. Tất nhiên có nhiều website sẽ chèn 1 số thoả thuận được viết bé xíu như đầu kim, chèn trong 1 đống chữ trong phần TOS của họ, cái mà chả thằng điên nào ngồi đọc hết cả.
II/ Browser Fingerprint gồm những gì
- Rất nhiều, tuỳ website, tuỳ mục đích, tuỳ lòng hảo tâm mà họ sẽ thu thập nhiều hay ít thông tin. Tôi chỉ đề cập đến những thứ thường gặp nhất:
- IP address + DNS leak, tất nhiên rồi, cái này cơ bản mà
- Cookie, local storage
- Các thông số trong navigator object của trình duyệt: useragent, screen resolution, plugins, mimetype, hardware concurrency, device memory, language...
- Timezone (của cả máy và trình duyệt)
- Webrtc (thu thập ip thật của người dùng)
- Media devices (loa, headphone, camera...)
- Browser history (lịch sử duyệt web)
- Fonts (máy bạn cài những font nào và trình duyệt sử dụng chúng ra sao?)
- JA3 Fingerprint (*)
- Canvas fingerprint (*)
- Webgl fingerprint (*)
- domRect (*)
- AudioContext (*)
- Social media login (kiểm tra trình duyệt có login facebook, google, twitter... không?)
- ....
(*): những kỹ thuật thu thập thông tin người dùng phức tạp, khó có thể diễn giải trong vài câu chữ, sẽ có bài riêng về những kỹ thuật này.
III/ Một số nhầm lẫn thông thường về Browser Fingerprint
- Trình duyệt có thể detect Mac Address? Câu trả lời là không, theo lý thuyết không thể thu thập thông tin Mac Address thông qua javascript trên trình duyệt 1 cách trực tiếp. Nhưng, vẫn sẽ có trick để có thể làm được điều này, ta sẽ bàn sau nếu có thời gian. Nhưng về cơ bản, theo những cách "trong sáng" thì câu trả lời là không! Các website sẽ không mạo hiểm để dùng những cách ngoài luồng để làm việc này. Vì thế bạn có fake mac address thì nó cũng chả có tác dụng gì.
- Dùng chế độ private browser (firefox) hoặc incognito (chrome) có ẩn danh không? Không, tiếp tục là 1 chữ không. Không như cookie và local storage (được xoá bỏ sau khi duyệt = chế độ ẩn danh), Browser Fingerprint vẫn gần như y chang như khi bạn xài chế độ trình duyệt thông thường. Có thể nói chế độ ẩn danh là tính năng "bịp" người dùng nhiều nhất của các gã khổng lồ trình duyệt. Vì thế đừng thắc mắc khi bạn dùng chế độ incognito để coi phim ơ kìa xong hôm sau lướt web đọc báo thấy 1 loạt quảng cáo đồ chơi người lớn, lol
- Đổi useragent tương đương với việc thay đổi trình duyệt: sai hoàn toàn nhé, không phải cứ ưng useragent nào đổi useragent đó là sẽ có tác dụng, riêng về useragent sẽ được giải thích cặn kẽ trong bài sau.
....
Phần này viết như mứt, chữ không, 4.0 mà không có được tấm hình, chán phèo đúng không?
Chờ đi, còn tiếp, đang són....