Łukasz Olejnik

Bezpieczeństwo, cyberbezpieczeństwo, prywatność, ochrona danych

Analiza prywatności Google Privacy Sandbox - Federated Learning of Cohorts i wyciekające informacje o odwiedzanych stronach internetowych?

Czy “federacyjne uczenie się kohort w piaskownicy prywatności” ujawnia informacje o historii przeglądania sieci?

Federated Learning of Cohorts (FloC) oblicza funkcję SimHash na podstawie danych o historii przeglądania sieci przez użytkownika (czyli dane wejściowe: lista adresów odwiedzonych stron internetowych) w celu uzyskania identyfikatora kohorty (dane wyjściowe). To obliczenie “stratne”: mając tylko identyfikator, „odwrócenie” tego identyfikatora w celu uzyskania listy witryn odwiedzanych przez użytkowników powinno w zasadzie być niemożliwe (utrata informacji).

W przeciwnym razie wiedząc, jak powiązać identyfikator z historią przeglądania, możliwe byłoby poznanie historii przeglądania stron internetowych użytkownika. Czyli wyciek danych.

Wszystko w tym artykule dotyczy wczesnej wersji FloC, jest możliwe, że dużo się zmieni oraz - miejmy nadzieję - wbudowane zostaną konkretne zabezpieczenia.

Model zagrożenia prywatności

Co powinien zawierać odpowiedni model zagrożenia prywatności? Mówiąc o modelu zagrożenia prywatności, jest tu pewien niewygodny szczegół. Wyobraźmy sobie atakującego z dostępem do skromnej platformy obliczeniowej (np. wynajętej w usłudze chmurowej). Atakujący może po prostu wcześniej obliczyć listy stron internetowych, aby uzyskać tabelę wyszukiwania “kojarzącą” określony identyfikator z określoną grupą witryn. Odtąd za każdym razem, gdy atakujący napotka na konkretny identyfikator użytkownika (czyli wszedł on na stronę internetową), „odwrócenie” obliczenia kohorty (czyli przejście od ID do poznania listy stron) byłoby tak proste, jak przejrzenie tabeli w celu uzyskania listy wejściowej witryn internetowych. Czyli za proste. Innymi słowy, mogłoby to wyglądać następująco:

  • (lista stron), ID kohorty
  • google.com youtube.com bbc.co.uk, 124680817842188
  • www.thecutecats.com, edps.europa.eu theguardian.com, 74021315925146
  • prywatnik.pl uodo.gov.pl klebek.org, 827576763515347
  • lukaszolejnik.com twitter.com thecatsite.com, 250770441332148

[i wiele więcej podobnych, dla różnych kombinacji popularnych stron internetowych]

W powyższym przypadku, odwiedzając moją stronę (lukaszolejnik.com) z numerem identyfikacyjnym kohorty 250770441332148, odwiedzana strona mogłaby wywnioskować, że odwiedzający odwiedził również dwie inne strony: twitter.com thecatsite.com. Jeśli tak, to jest to problem. Ponieważ oznaczałoby to, że historia przeglądania sieci potencjalnie wycieka, a według moich badań (już potwierdzonych!) historia przeglądania sieci to prywatne dane osobowe. Możemy sobie więc wyobrazić, że taka skromna platforma obliczeniowa może wstępnie obliczyć dużo takich skojarzeń lista stron-ID. Odtąd system taki mógłby nawet służyć jako wyspecjalizowana usługa deanonimizacji użytkowników.

W praktyce

Zobaczmy to w praktyce. Bo szczęśliwie, jest to tak proste, jak przeglądanie sieci w “czystej” (ew po wyczyszczeniu historii) przeglądarce internetowej Chrome (od wersji 89) i sprawdzanie identyfikatora. Żeby było jeszcze łatwiej i skuteczniej to obliczenia te wykonamy offline, korzystając z istniejącej implementacji SimHash(z ustawieniem na 50 bitów precyzji). By zrozumieć więcej o SimHash, warto rzucić okiem na: tę publikację, oraz tę. Do celów testowych użyjmy istniejącej implementacji simhash w Pythonie:

from floc_simhash import SimHash
sh = SimHash(n_bits=50)
historia_stron='uodo.gov.pl wyborcza.pl klebek.org'
print(int(sh.hash(historia_stron),16))
185736951469022

W powyższym przypadku witryna internetowa Urzędu Ochrony Danych Osobowych (uodo.gov.pl) po zauważeniu u odwiedzającego użytkownika numeru ID 185736951469022 mogłaby stwierdzić, że konkretny ten użytkownik wcześniej odwiedził również inne strony internetową: stronę Gazety Wyborczej oraz Fundacji Kłębek. Ogólnie rzecz biorąc w z informacji o odwiedzanych stronach internetowych można by “wywnioskować" o użytkowniku stosunkowo wiele: dane demograficzne, profil psychograficzny, itd. W tym przypadku Urząd Ochrony Danych Osobowych mógłby więc całkiem wiele poznać.

Obrona

Obrona przed takimi atakami nie zawsze jest prosta. Dotyczy to projektu FloC wbudowanego w przeglądarkę internetową. Ważne jest, aby przestudiować, ocenić i zagwarantować, że:

  • Identyfikatory FloC nigdy nie są tworzone, gdy użytkownik nie odwiedził wystarczającej liczby stron (zbyt łatwo jest „odwrócić” na podstawie małej liczby stron). W przypadku niewielkiej liczby odwiedzanych sron identyfikator floc ID nie powinien być pokazywany odwiedzanej stronie. Jednak to, co w tym przypadku stanowi “małą liczbę”, to bardzo dobre pytanie. Ile to jest “mało”? Miejmy nadzieję, że projektanci pochylą się nad tym problemem.
  • W obliczeniach FloC być może nie powinno uwzględniać się niektórych stron internetowych, na przykład takich “wrażliwych”. Dobre pytanie: kto zdecyduje, w przejrzysty sposób, o tym, co jest wrażliwe?
  • Badanie kolizji floc ID daje zadowalające efekty. Ogólnie, to identyfikatory nie powinny być „unikalne”. Pożądana jest duża liczba “kolizji” (różne zestawy stron internetowych mających ten sam ID). To  zarówno kwestia testów teoretycznych, jak i praktycznych.

Moje poprzednie badania wskazują, że historie przeglądania sieci to dane wrażliwe (np. przekazują informacje o opisie demograficznym użytkownika, portrecie psychologicznym itp.). I mogą być dość stabilne, czyli być “przypisane” użytkownikowi. Oznaczałoby to, że identyfikatory mogą faktycznie być wrażliwą informacją. Należałoby przeanalizować gwarancje ochrony prywatności, by wykazać marginesy prywatności. Miejmy nadzieję, że ktoś to zrobi.



Podsumowanie

Poprzednio przyjrzałem się możliwemu wyciekowi na temat przeglądania stron internetowych w trybie incognito. Tym razem atak na prywatność, który wykorzystuje wstępnie obliczone SimHashe do wykrywania historii przeglądania sieci przez użytkownika.  Privacy Sandbox od Google jest z pewnością interesującym rozwiązaniem z punktu widzenia badań prywatności, strategii, inżynierii, a nawet PR. Fascynujące będzie obserwowanie, jak to się rozwija. Miejmy nadzieję, że twórcy zainwestują w rozwój ten propozycji na wszystkich frontach.


Podobał Ci się ten wpis/analiza? Jakieś pytania, uwagi lub oferty? Zapraszam do kontaktu: me@lukaszolejnik.com

Comments is loading...

Comments is loading...