chevron-left chevron-right

[PHP] Browser fingerprints, czyli jak przeglądarka zostawia ślad po sobie i jak to wykorzystać?

Na pewno często uważasz, że jesteś anonimowy w sieci i że potrafisz się dobrze zabezpieczyć przed wykryciem przez inne osoby. Niestety, jest to błędne podejście. A to dlatego, że jak pokazuje eksperyment przeprowadzony przez Panopticlick, nawet Twoja przeglądarka może pozostawić po sobie unikalny ślad dzięki któremu ktoś będzie wiedział, że Ty to Ty. No i wpadłem na pomysł jak to można wykorzystać na stronach WWW.

Język PHP jest na tyle dobrym językiem, że potrafi wyciągnąć jakieś informacje związane z przeglądarką i systemie komputerowym. Dlatego moją propozycją do sposobu autoryzacji użytkownika jest wykorzystanie tych danych i korzystanie z nich zamiast ciasteczek czy identyfikatorów i loginów. Brzmi to trochę karkołomnie, ale w sieciach korporacyjnych, gdzie użytkownik się musi zalogować do swojego konta za każdym razem gdy korzysta z komputera, takie podejście może zdać egzamin.

Mój pomysł wygląda następująco:

$browser = $_SERVER['HTTP_USER_AGENT'].get_browser(null, true); //pobiera informacje na temat przeglądarki
$ip = $_SERVER['REMOTE_ADDR']; //pobiera IP odwiedzającego 
$browser = serialize($browser.$ip); //zamienia dane w jeden ciąg
$login = sha1($browser); //szyfrowanie danych i wykorzystanie ich jako loginu do systemu
$pass = $ip; //wykorzystanie IP jako hasła do konta w serwisie korporacyjnym
Takie dane możemy przechowywać w bazie danych i następnie wywoływać je po wejściu na stronę. Dzięki temu, treść danego serwisu będzie zabezpieczona przed niepowołanym wejściem z innej sieci komputerowej czy nawet z innej przeglądarki internetowej.
To administrator takiej sieci będzie ustalał dane przeglądarki i sieci komputerowej z jakiej dany użytkownik będzie mógł się zalogować.

Zdaję sobie sprawę, że moje podejście jest bardzo uproszczone w stosunku do tego co zaprezentował serwis Panopticlick i ogranicza się tylko i wyłącznie do języka PHP, ale można jest stosować w specyficznych rozwiązaniach intranetowych i korporacyjnych.

Jestem otwarty na wszelkie komentarze odnoszące się do tego pomysłu.
Jeżeli ktoś jest zainteresowany specyfikacją browser fingerprinting, to zapraszam do przeczytania jej TUTAJ (tekst jest po angielsku).