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.

Sesja Linuksowa cz. 2

W poprzednim wpisie było o tym, jak pojechałem na Sesję Linuksową i co mi się podobało. W tym będzie o powrocie, konkursach i trochę ponarzekam.

Zacznę od narzekania. Strona Sesji Linuksowej to dziwny twór, z którym miałem problemy. Zaczęło się od tego, że jedna z przeglądarek (Firefox Focus) w ogóle nie pokazywała agendy. Druga pokazała, więc wzruszyłem ramionami. I tak by zostało i zapomniałbym o sprawie, gdyby nie dziwne godziny pokazane na desktopie (Firefox), gdy sprawdzałem pociągi pod kątem wyjazdu. Stwierdziłem, że z rozwiązaniem do agendy jest coś nie tak. Zacząłem walczyć z ustawieniami Focusa i… nie udało mi się wyświetlić treści agendy. Doszło do dość absurdalnej sytuacji, gdy miałem 4 różne przeglądarki, na 2 różnych systemach (Android, Linux). Z których jedna nie pokazywała agendy, a druga miała inne godziny, niż dwie pozostałe. Za każdym razem problem był na przeglądarce robionej przez Mozillę.

Owszem, dobrzy ludzie zwrócili mi później uwagę, że jest napisane System informatyczny Confreg wyświetla godziny w strefie czasowej zażądanej przez przeglądarkę. W przypadku używania funkcji ResistFingerprinting, godziny pokazują się w UTC. Wykłady zaczynają się o godzinie 9:00 czasu środkowoeuropejskiego letniego. Drobny problem polegał na tym, że było to napisane za agendą. A mnie interesował pierwszy wykład z uwagi na godzinę rozpoczęcia i kupno biletu. Ach, gdyby tylko można było wyświetlić godzinę korzystając z lokalnego czasu konferencji lub podać wprost strefę czasową, a nie zgadywać na podstawie strefy przeglądarki… Niby nic, ale naprawdę mało brakowało, żebym zrezygnował z przyjazdu. Dotarcie na siódmą rano w sobotę trochę mi się nie uśmiechało. Ostatecznie pewność zyskałem przy użyciu macOS z Chrome, bez dodatków. Czyli chwalmy open source i prywatność, ale jak coś trzeba zrobić, to… niekoniecznie się to sprawdza.

Na obronę systemu agendy powiem jedynie, że całkiem zgrabnie wg mnie pokazywał, w którym miejscu w agendy jesteśmy w danej chwili. Niby tylko czerwona linia, a bardzo ułatwiała korzystanie.

Byli sponsorzy ze stoiskami oraz konkursy. Korbank, którego znam z sieci ze starych czasów, ma teraz swoją kolokację i VPSy. W ramach konkursu można było złożyć serwer (prawdziwy) na czas[1] i dostać talon na VPS i balon[2]. Niby niezłe ceny, bo od 10 zł/m-c z VAT za najmniejszą maszynkę (10 GB dysku, 2 GB RAM, 1 vCPU), ale… wygląda, że do normalnego korzystania trzeba dokupić adres IPv4 za 5 zł/m-c, bo w standardzie jest IPv6. Jeśli wszystko pójdzie dobrze to uruchomię wkrótce i dam znać, czy da się korzystać bez IPv4. Tzn. czy i na ile jest to w praktyce problematyczne.

Drugi konkurs, w którym wziąłem udział, był „konferencyjny” i w przypadku niektórych zadań także dawał dostęp do VPSów. Też takich wyposażonych wyłącznie w IPv6, choć bez możliwości dokupienia IPv4. Chodzi o mikr.us, którym trochę chciałem się pobawić już wcześniej, a trochę nie widziałem sensu, skoro istnieją darmowe alternatywy, z lepszymi warunkami. No ale skoro można było się pobawić i sprawdzić w konkursie[3], to niech będzie. Ku mojemu zdziwieniu, talon jest na całkiem mocną maszynę (wariant 3.5, czyli 4GB RAM, 40 GB dysk) i na rok. Nawet mam pomysł do czego go wykorzystam, choć pewnie starczyłaby połowa zasobów.

Powrót chciałem rozpocząć tramwajem, ale… Google maps stwierdziło, że tramwaj, którym przyjechałem, nie jeździ na dworzec. Pokazywało same autobusy. To skłoniło mnie do opcji numer dwa, czyli spaceru, który pierwotnie był przewidziany także na dotarcie na Sesję. Faktycznie, nie jest daleko, w czasie poniżej pół godziny spokojnie dało się dojść. Piękna pogoda, więc spacer po Wrocławiu zaliczony z przyjemnością. Pociąg punktualnie i w zasadzie bez niespodzianek, jeśli nie liczyć braku wagonu, w którym miałem miejsce. Okazało się, że dopiero je doczepią po podstawieniu, ale mogłoby to być zaznaczone na bilecie. Nie tylko ja byłem zaskoczony sytuacją i szukałem nieistniejącego jeszcze wagonu.

Wykłady z dnia drugiego – postaram się obejrzeć. Niestety, średnio lubię nagrania prezentacji ogólnie, a „scenicznych” szczególnie. Zwykle najwyżej średnia jakość dźwięku jest i nie wszystko dobrze widać. Choć sprawdziłem właśnie na YouTube nagrania z niedzieli i przyznaję, że jest zrobione profesjonalnie. Nie zmienia to faktu, że za rok i tak postaram się powtórzyć wypad.

[1] Oj, wyszedłem z wprawy, faktem jest, że ładnych parę lat nie składałem takiego sprzętu.
[2] To pomysł twórców, nie mój.
[3] Trochę miałem wyrzuty, bo dla grających w CTFy zadanie było proste. Jednak stwierdziłem, że po pierwsze nie mam żadnych powiązań z organizatorami, po drugie każdy może zrobić, po trzecie, wyjątkowo mam laptopa na konferencji, po czwarte, będzie okazja pobawić się VPSem.

UPDATE: Talon od Korbanku to zniżka (30%), nie doładowanie (30zł). Chęć na testy trochę mi spadła, zwłaszcza, że nie mam działającego IPv6 w tej chwili dostępnego od ręki. W dobie wszechobecnych free tier u dużych dostawców – jestem lekko zdziwiony.


LinkedOut

Konto na portalu LinkedIn założyłem dawno temu. Miało być trochę takim CV online, trochę miejscem gdzie można „pokazać się” i dać się znaleźć pracodawcom. Szybko okazało się, że nie do końca to działa i głównie zbieram ludzi, z którymi zetknąłem się zawodowo. I znajomych, których znam niekoniecznie zawodowo, ale też uczelnie itp. Wszytko niby zgodnie z założeniem, bo edukacja, umiejętności, doświadczenie zawodowe, ba, nawet to CV online/historia zatrudnienia coś tam pokazuje. Czy też może raczej pokazywałoby, gdybym tylko przyłożył się do uzupełniania.

Ciekawe oferty pracy? No powiedzmy, że coś tam było, ale takich naprawdę ciekawych i dopasowanych – mało. Szczególnie przez pryzmat lat. Faza, gdy zdecydowałem się przejść do rozmowy rekrutacyjnej – może kilka razy w historii. No ale też nie miałem parcia na to. Więc powiedzmy, że w kwestii zawodowej LinkedIn jako tako daje radę. W kwestii socjalnej (choć nie taka wg mnie jest rola) było dość przewidywalnie i nudno. Chwalenie się osiągnięciami, zmianą pracy, szkoleniami, rocznicami. Not great, not terrible.

I jakiś czas temu to wszystko zaczęło się zmieniać. Niekoniecznie na lepsze. Zaczęło pojawiać się więcej treści zbliżonych do Facebooka. Nie czysto zawodowych, niekoniecznie prawdziwych, obliczonych na zaangażowanie. To, co kiedyś było na FB na grupach tematycznych, albo po prostu na FB, zaczęło się pojawiać na LinkedIn. Narzekania na usługi firm, promowanie własnych usług przy pomocy wymyślonych historii i czego nauczyło mnie to o prowadzeniu biznesu. Rzyg.

Tyle jeśli chodzi o użytkowników i ich podejście, ale sam portal nie pozostaje w tyle. Pojawiły się jakieś mało sensowne gry w które rzekomo grają znajomi z firmy (przy czym każdy pyta, kto gra, bo on nie). Obliczone oczywiście na wywołanie zaangażowania i otwarcie aplikacji. Która, po otwarciu, już coś podsunie. Czy to więcej powiadomień o postach znajomych, czy po prostu treściach, które są trending.

Wiele sensownych organizacji z mojej bańki (niekoniecznie firm, choć firmy także) używa teraz combo w postaci Discord plus LinkedIn jako podstawowego sposobu informowania o organizowanych wydarzeniach. Nie jest to dla mnie niezrozumiały wybór, bo edukacyjnie/zawodowo czy nawet hobbystycznie ma sens. Ma też sens ze względu na nakład pracy z utrzymaniem – LinkedIn czy Discord oznaczają niewielki narzut. Zarówno po stronie zamieszczających, jak i odbiorców. Choć nie wiem, na ile pewne jest informowanie poprzez LinkedIn – algorytm może ukryć, a wiara, że ludzie korzystają może być zbyt optymistyczna. Istnieje co prawda ryzyko konieczności płatności lub odcięcia kanału, ale… mało prawdopodobne (odcięcie) i zapewne akceptowalne (płatności). No i teoretycznie wygodne dla użytkowników, bo zwykle mają już te platformy. Dla pozostałych jest – czy raczej: bywa – RSS lub lista mailowa.

Złapałem się na tym, że większość nieinteresujących powiadomień na telefonie pochodzi z serwisu LinkedIn[1]. Szczególnie irytujące były te o grach. Myślałem o wyłączeniu powiadomień zupełnie, jednak skoro portal stał się jednocześnie trochę feedem o eventach, to nie chciałem tego tracić. Pewnie FOMO, bo tak naprawdę o eventach i tak dowiaduję się z innych źródeł. Postanowiłem sprawdzić, czy mogę wyłączyć tylko powiadomienia push z LinkedIn dotyczące gier. Okazało się, że tak. Przy okazji zobaczyłem, że ustawienia dotyczące powiadomień w aplikacji są bardzo rozbudowane i granularne.

Wyłączyłem te o grach i… nie pomogło. Tzn. pomogło częściowo. Te o grach przestały przychodzić, ale nadal za większość powiadomień odpowiada LinkedIn. Zacząłem grzebać w ustawieniach i wyłączać kolejne rzeczy. Na pierwszy ogień poszły powiadomienia push. I znowu – niezbyt to pomogło. Mimo wyłączenia powiadomień push w większości kategorii, nadal przychodzą. Kolejnym krokiem jest wyłączenie powiadomień pochodzących z aplikacji. Stopniowo to robię – staram się, by każde nietrafione powiadomienie skutkowało wyłączeniem kolejnego w ustawieniach. Nie wykluczam, że wkrótce wyłączę powiadomienia z LinkedIn na telefonie zupełnie, czyli 2026 może być u mnie rokiem bez LinkedIn (na telefonie).

Tymczasem wpadłem na pomysł, jaki system powiadomień byłby rozsądny. Po prostu każda aplikacja powinna mieć obowiązek udostępniania maksymalnej liczby powiadomień w ciągu dnia/tygodnia. Oczywiście powiadomienia transakcyjne, potwierdzanie logowania i alerty bezpieczeństwa wyłączone z limitu. I wtedy określalibyśmy, że drogi serwisie, możesz mi wysłać w ciągu tygodnia 5 powiadomień, kombinuj, by były jak najbardziej wartościowe. Co by to dało? Totalną zmianę pozycji. Serwis musiałby dobierać interesujące treści, agregować treści. Użytkownik nie mógłby być bombardowany nadmierną ilością powiadomień.

Można to zaimplementować oczywiście inaczej, na poziomie systemu. Tyle, że wtedy jest ryzyko pominięcia powiadomień transakcyjnych itp. Jednak nie każda appka takie posiada, więc coś takiego też bym chętnie zobaczył. Pewne możliwości ustawień powiadomień już istnieją w systemie Android. Zacznę od uruchomienia historii powiadomień… (Settings -> Notifications -> Notification history).

UPDATE: Dobrzy ludzie podpowiedzieli, że nie trzeba włączać historii powiadomień. Wystarczy wejść w Settings -> Apps i dla każdej aplikacji można sprawdzić, ile powiadomień wysłała. Twarde dane potwierdzają, że appka LinkedIn jest u mnie w ścisłej czołówce. I to w porównaniu z appkami, których aktywnie używam i chcę z nich powiadomienia. W dodatku po częściowym wyłączeniu powiadomień…

[1] Swoją drogą, jeśli appka LinkedIn jest u mnie najbardziej agresywną, to czuję, że i tak mam mało powiadomień. Ale tak, nie mam np. FB na telefonie.