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.

Jestem zmęczony

Utwór Jestem zmęczony trafił na moją playlistę już jakiś czas temu. I tak, wiedziałem, że pochodzi z serialu Siedem życzeń, ale do serialu jakoś mnie nie ciągnęło. Zmieniło się to za sprawą wpisu.

Zachęcony recenzją i informacją o serialu, odświeżyłem. Przyznaję, że ten serial to całkiem zgrabna konstrukcja, choć kontekst zginął po drodze w wielu miejscach i raczej może być niezrozumiały dla dzisiejszej młodzieży.

Wszystko o serialu jest we wspomnianym wpisie[1], dodać tylko mogę, że jakość po rekonstrukcji jest naprawdę dobra. Sam serial jest dla mnie – z perspektywy – dobrym serialem młodzieżowym. Trochę uproszczeń, stereotypów, sporo humoru i mrugania okiem. Jedyne, co mnie wkurzyło, to podejście do zwierząt w ostatnim odcinku. Zdecydowanie mamy do czynienia z rzucaniem kotami i napis nie ucierpiało żadne zwierzę się nie należy. Ale to też znak czasów.

No i bardzo dobra ścieżka dźwiękowa. Poza utworem tytułowym[2], jest kilka innych mocnych pozycji, świetnie pasujących i do serialu, i będących samodzielnymi utworami. Mam wrażenie, że teraz takie rzeczy nie powstają. Jeśli się mylę, to proszę o wyprowadzenie z błędu.

W każdym razie, obejrzenie serialu, pierwotnie z kronikarskiego obowiązku, okazało się zaskakująco dobrą rozrywką. Bo obecnymi produkcjami, w stylu netfliksowego Wiedźmina, jestem zmęczony.

[1] Jakby komuś było mało, to jest jeszcze artykuł na Wikipedii, warto zerknąć.
[2] Chodzi o tytuł wpisu, nie serialu.

HumanRank

Dziś przeczytałem wpis o human.json i stwierdziłem, że temat jest godny pełnowymiarowego wpisu. Nie dlatego, że jest ciekawy, ale dlatego, jak bardzo nieprzemyślany i słabo wykonany jest to pomysł. Uprzedzam, że będzie stronniczo i trochę mi się uleje.

W skrócie, LLMosceptycy wpadli na pomysł, żeby ludzie zaczęli dodawać plik JSON, w którym będą wskazywać URLe do innych treści (stron) tworzonych przez ludzi. Do tego dodatek do przeglądarki, który pokaże ilu ludzi wskazało odwiedzaną stronę na tworzoną przez człowieka i jaka jest odległość (ilu pośredników) względem naszej strony.

Czyli – cytując wytłuszczenia ze strony projektu – autor strony deklaruje się jako człowiek i umieszcza plik. Następnie poręcza za inne strony. I rozszerza scope poręczeń.

Jeśli komuś się z czymś to kojarzy, to – jeśli jeszcze nie zorientował się na podstawie tytułu wpisu – jest to w założeniu bardzo podobne do PageRank stworzonego przez Google. Może i Google stwierdziło, że to nie działa dobrze, jest podatne na manipulacje SEO i wycofało się z projektu, ale tym razem się uda. OK, jest różnica, bo aktualnie human.json nie uwzględnia wag. Ale to wczesna wersja, więc możliwe, że wszystko przed nami.

Wersja Google była o tyle lepsza/prostsza, że nie wymagała osobnego pliku i używała po prostu linków ze strony. Ale to nic, wiadomo, że wszyscy ludzie są techniczni, tu sobie nagłówek dopiszą, tam plik wygenerują. Na ironię zakłada wybór formatu JSON, który jest pomyślany jako przetwarzalny przez automaty i niezbyt przyjazny ludziom.

Dalsze wady pomysłu? Ależ proszę bardzo. Rozwiązanie jest podatne na manipulację. Nie ma żadnego problemu, żeby kupić kilka(-naście, -set) stron, umieścić na nich human.json, który będzie linkować do pozostałych. Zapewne będą miały wyższą ilość potwierdzeń, niż wiele stron tworzonych przez ludzi.

Kolejny problem to założenie, że wszyscy pieczołowicie będą utrzymywać swoje pliki. O ile z dodaniem pliku nie ma większego problemu, to z czasem domeny wygasają, zmieniają właścicieli. Po kilku latach może być na nich zupełnie inna treść. Znam to doskonale i z linków na blogu, i z czytnika RSS. W przypadku PageRank był jeden opiekun, który dbał o jakość wskaźnika.

Czy to koniec problemów? Na pewno nie. Na pewno znajdą się chętni do „wymiany linków” tj. wzajemnego potwierdzenia swojego człowieczeństwa. Pamiętacie sprzedaż linków? Gdyby pomysł jakimś cudem się przyjął (w co nie wierzę) to handel linkami powróci w wielkim stylu. Tym razem linkami w human.json.

Czym więc jest human.json, albo jakie widzę jego niezamierzone skutki? Przede wszystkim jest deklaracją nie lubię LLM. Do tego oczywiście każdy ma prawo. Ale czy człowiek musi polegać na automatycznym, algorytmicznym wskaźniku z przeglądarki, żeby ocenić czy treść jest wartościowa? Wydaje mi się to dziwne.

Ostatni niezamierzony skutek, który widzę, to tworzenie kolejnego bąbelka. Bo czy strony ludzi, z których poglądami się nie zgadzamy, trafią do human.json równie często, jak tych, z którymi się zgadzamy? Szczerze w to wątpię.