Nowa reCAPTCHA

Pojawiło się doniesienie o wprowadzeniu przez Google nowej wersji reCAPTCHA. Nazwa jest piękna Google Cloud Fraud Defense. Od razu wiadomo, jak opakowana została zmiana, w imię której będziemy poświęcać wolność. Walka z nadużyciami, bezpieczeństwo. W artykule jest security, safety, trust i fraud. Oczywiście pojawia się też AI.

Trochę miałem do czynienia z rozwiązaniami do detekcji botów, wydaje mi się, że widzę, w czym rzecz. Nowatorstwo rozwiązania nie jest w QR-code. Nie jest w konieczności użycia drugiego urządzenia do odczytania danych z pierwszego. To wszystko można oprogramować i zasymulować i zrobić na tym samym urządzeniu, automatycznie.

Prawdziwa natura nowego rozwiązania jest wg mnie widoczna w niepozornym fragmencie: By correlating telemetry across the entire lifecycle, our unified trust model identifies complex, multi-stage fraud campaigns that disconnected point solutions miss. This holistic view has demonstrated […] Wytłuszczenia moje.

Zmierzamy do tego, że poprawne rozwiązanie CAPTCHA, tj. bycie słusznie uznanym za człowieka, będzie opierało się na tym, że przynajmniej na jednym z urządzeń – o ile nie na obu – trzeba będzie wyrazić zgodę na telemetrię. Czyli pozwolić dostawcy – tu: Google – na pobieranie masy danych z urządzenia i o urządzeniu. O położeniu (geolokalizacj), o IP, o stanie baterii, zainstalowanych kodekach, fontach, o tym, jak i kiedy się porusza (akcelerometry). Wreszcie metadane o tym, które urządzenia były powiązane z którymi. I nie, nie na chwilę, tylko holistycznie przez cały cykl życia (cokolwiek ma to znaczyć).

A jeśli nie wyrazimy zgody? No cóż, w najlepszym wypadku stracimy więcej czasu na częstsze skanowanie lub rozwiązywanie innych form CAPTCHA. W najgorszym? Zostaniemy uznani za boty i pozbawieni dostępu do usług.

Czy będzie to skuteczne? Cóż, na początku pewnie tak. Czy da się obejść? Pewnie tak, ale wątpię, by obejście zyskało masową popularność. Ale masa danych, łatwych do skorelowania i niosących wiele informacji nie wprost trafi do dostawcy (tu: Google).

Dlatego mam szczerą nadzieję, że rozwiązanie spotka się z bojkotem użytkowników. Zarówno tych, którzy mieliby rozwiązywać CAPTCHA, jak i tych, którzy wybierają rozwiązanie, które wykorzystują. Zawsze zamiast rozwiązywać CAPTCHA można zrezygnować z dostępu/zakupu i zamiast tego zgłosić problem z dostępem do danych na stronie.

UPDATE: Nie padło to w pierwotnej wersji wpisu, ale oczywiście chodzi o umacnianie monopolu Google (ew. duopolu, bo jeszcze Apple). Weryfikacja na systemie Android wymaga telefonu z Google Play.

Czy teraz futbol?

Czytelników zaniepokojonych nagłą zmianą zainteresowań muszę uspokoić. Nie, nie zacząłem interesować się piłką nożną. Nie chodzi o moje zainteresowania, a o tłumaczenie z języka hiszpańskiego. Hay ahora futbol[1] można przetłumaczyć właśnie w taki sposób. No ale o co chodzi?

Dziś dowiedziałem się o istnieniu strony, która pokazuje odpowiedź na tytułowe pytanie. Można by pomyśleć, że nieźli fanatycy piłki nożnej w tej Hiszpanii. Być może, ale ponownie, nie o to chodzi. Chodzi o wyrok sądu, który nakazuje największym hiszpańskim ISP blokadę… określonych IP CDNów w trakcie trwania transmisji niektórych rozgrywek. Na stronie hayahora.futbol jest opisane[2], czemu blokada na poziomie IP, a nie DNS lub podobnej. Czyli cenzura, sankcjonowana przez prawo, pod hasłem ochrony własności intelektualnej i walki z piractwem.

W Polsce też mamy coś podobnego, za sprawą ustawy antyhazardowej. Co prawda obejście naszego wariantu jest trywialne, ale istnieje od wielu lat. I jest umocowany prawnie. Całkiem niedawno były próby wykorzystania listy tworzonej przez CERT Polska w podobnym celu. Tym razem nieudane.

I tak sobie myślę, że wydaje nam się, że w Europie, w XXI w. cieszymy się wolnością, nie to co [tu wstaw dowolną dyktaturę czy państwo wyznaniowe], a tymczasem wcale wiele się nie różnimy. Motywacja może trochę inna, ale metody jakby podobne.

[1] Jeszcze obustronne znaki zapytania by się przydały, jednak nie przesadzajmy.
[2] Jest, nieco mało widoczny, przełącznik języka. Do wyboru hiszpański i angielski.

Browsergate

Skoro jest strona, to sprawa jest poważna, prawda? Coraz głośniej robi się o aferze ochrzczonej Browsergate. Zaczyna się od LinkedIn Is Illegally Searching Your Computer. Czyli grubo. Ale czy słusznie?

Wydaje mi się, że autorzy trochę wyolbrzymiają. Co się dzieje technicznie? Na stronie LinkedIn jest javascript, którego zadaniem jest zebranie informacji o zainstalowanych rozszerzeniach w Chome[1]. Jest to robione przy pomocy paru technik. Najważniejsza z nich opiera się o predefiniowaną listę rozszerzeń i obecnych w nich plików. Skrypt próbował czytać kolejne pliki i – w przypadku sukcesu – zapamiętywał informację, że dane rozszerzenie jest obecne (i aktywne). Tak zebrane informacje były wysyłane do właściciela LinkedIn, czyli Microsoftu. Nie ma natomiast mowy o przeszukiwaniu komputera, co sugeruje nagłówek autorów znaleziska. Aktywność jest ograniczona do plików rozszerzeń.

Autorzy znaleziska argumentują, że za sprawą rozszerzeń w przeglądarce można określić przekonania polityczne, religijne, zdrowotne i dotyczące zatrudnienia. Jestem w stanie się zgodzić, że w specyficznych przypadkach[2] faktycznie da się określić je z wysokim prawdopodobieństwem. I – ponieważ użytkownik jest zalogowany – skorelować z konkretną osobą.

Zatem oburzenie na Microsoft jest słuszne. Czemu jednak jest ograniczone tylko do tej jednej firmy, a Google i twórcy rozszerzeń są tu pominięci? Cała technika możliwa jest tylko dlatego, że przeglądarka Google, podobnie jak wszystkie pochodne Chromium, stosują stałe lokalne identyfikatory rozszerzeń. Nie jest to żadna tajemnica. Nie jest to też norma wśród przeglądarek. Firefox na przykład stosuje losowe identyfikatory lokalne. Takie działanie uniemożliwia stronie próbę odczytu znanego pliku z rozszerzenia, więc technika nie zadziała.

Dodatkowo, twórcy rozszerzenia muszą w manifeście jawnie zezwolić stronie[3] na dostęp do plików przy pomocy dyrektywy web_accessible_resources. Ładny opis, łącznie z tym, że Chrome nie ma losowych identyfikatorów znajdziemy na stronie Mozilli.

Czemu nie ma oburzenia na twórców Chromium, którzy nie randomizują lokalnych ID rozszerzeń? Ani na samych twórców rozszerzeń pozwalających na ustalenie wrażliwych danych, że pozwalają na czytanie plików rozszerzenia stronom[4]? No i w końcu zastanawia mnie, czy to jedyna strona, która tak działa?

Sama funkcjonalność odczytu plików rozszerzeń nie jest nowa i była znana wielu osobom (tak, znałem). Zastosowanie jest… interesujące. Mi masowe skanowanie rozszerzeń nie przyszło do głowy. Może dlatego, że nie mam zastosowania dla tych danych? Czy za sprawą Browsergate będzie mała rewolucja w świecie rozszerzeń i podejściu do prywatności? Zobaczymy.

[1] Tak naprawdę w pochodnych Chromium.
[2] Wymieniają te przypadki i są to konkretne rozszerzenia, których obecność Microsoft celowo sprawdza.
[3] Lub stronom, możliwe wildcardy.
[4] No dobrze, nie zawsze może dać się uniknąć dostępu do plików, zapewne zależy od tego, co dane rozszerzenie robi.