Potwierdź mój wiek, anonimowo

Pojawiło się zagadnienie weryfikacji wieku przyjaznego dla prywatności czyli anonimowej weryfikacji wieku. Czyli mamy serwis X, który chce potwierdzić, że użytkownik ma 18 lat, ale jednocześnie ma otrzymać możliwie mało danych na temat tego użytkownika. Idealnie: tylko wiek.

Rysiek zaproponował rozwiązanie, które zaintrygowało mnie na tyle, że postanowiłem przeanalizować, czy to ma szansę działać. Wyszło mi, że nie. W tym wpisie skupiam się wyłącznie na proponowanym opisie algorytmu, czyli punktach i akapicie w którym jest zawarty.

Podsumowując założenia, ma tam być tak, że jest serwis X, użytkownik U, oraz serwis potwierdzania identyfikacji EID. X ma nie wiedzieć, kim jest U (dane osobowe). EID jak najbardziej zna dane osobowe użytkownika U, ma potwierdzić wiek, ale ma nie wiedzieć, że potwierdzenie jest na potrzeby serwisu X.

Problemy, które tu widzę, są dwa. Pierwszy jest taki, że użytkownik U w pełni kontroluje komunikację pomiędzy X a EID. Najpierw wysyła dane (które może dowolnie ustalić przed wysłaniem), potem otrzymuje odpowiedź, którą przekazuje. Czyli mamy do czynienia z man in the middle. Nie byłoby tu wielkiego problemu, gdyby EID wiedziało, że rozmawia z X – wystarczyłoby wtedy użyć odpowiednich kluczy prywatnych i publicznych. Ale jest to sprzeczne z założeniami.

Drugi problem jest poważniejszy. Serwis X nie wie, jakiego użytkownika weryfikuje. W tej sytuacji dowolny „dowód osobisty” może posłużyć do weryfikacji użytkownika.

Przekładając to na bardziej tradycyjne okoliczności: osoba w kominiarce przychodzi kupić alkohol i w ramach weryfikacji wieku pokazuje na ekranie telefonu zdjęcie dowodu osobistego. Czy sprzedawca jest w stanie zweryfikować wiek osoby na tej podstawie? Wg mnie – nie bardzo. Zdjęcie na ekranie to tutaj odpowiednik MITM (nie wiemy nawet, czy dowód jest autentyczny). Natomiast kominiarka (ukrycie tożsamości, anonimowość) uniemożliwia sprawdzenie, czy dowód należy do danej osoby.

Czyli dokładanie kolejnych warstw, algorytmów, systemów, stron w komunikacji nie zwiększa nam tu pewności anonimowej weryfikacji wieku. Nie w stosunku do wybrania przez użytkownika na stronie opcji „potwierdzam, że mam 18 lat”.

Być może po prostu mamy problem z akceptacją faktu, że weryfikacja wieku nigdy nie była anonimowa? Bo sprzedawca w sklepie z alkoholem nie tylko sprawdza[1], czy osoba posiada dowód osobisty. Sprawdza też, czy jest on autentyczny. I czy należy do tej osoby. OK, do tego ostatniego nie potrzebuje tu kompletu danych z dowodu, wystarczy zdjęcie. Ale do pozostałych danych ma dostęp w trakcie sprawdzania autentyczności.

Na Mastodonie trwa dyskusja, pewnie warto zapoznać się z całością, a komentować czy sugerować działające rozwiązania można równie dobrze tam.

[1] A przynajmniej powinien to robić.

Raspberry Pi niemal read only

W końcu padła kolejna karta microSD. Tym razem jakaś chińszczyzna, kupiona wieki temu na Aliexpress. Działała długo. Nie pamiętam od kiedy, ale chyba parę lat. Znaczy się, problemy miała wcześniej, ale nie miałem czasu się tym zająć i jakoś działało. Chodzi oczywiście o Raspberry Pi robiące za router GSM.

O tym, że nie jest z nią dobrze wiedziałem. Przy instalacji nowych pakietów miała narowy i leciały jakieś błędy. Za pierwszym razem ograniczyłem zapisy na kartę – wyłączyłem bieda statystyki w postaci logowania ilości przesłanych danych. Mogłem wyłączyć więcej logów oraz swap, ale nie wpadłem na to. Zresztą, działało.

A teraz pewnego dnia zniknął internet, akurat gdy pracowałem. Oczywiście udostępniłem sobie net z komórki, ale zrobiłem szybką diagnostykę. W logach czysto, w dmesg czysto, uptime 240 dni. Reboot i… nadal nie działało. Za to chwilę po reboocie przy zwykłym działaniu pojawiły się błędy odczytu. Uznałem, że wina karty.

Chyba niesłusznie i była to po prostu awaria a2mobile, bo po przełożeniu modemu do innego komputera netu także nie było.

Tu mała dygresja odnośnie operatorów. Zmigrowałem z Aero2 na a2mobile i tak to sobie działa. Przy okazji – można odzyskać kaucję za kartę, którą pobierało Aero2. Nie trzeba odsyłać karty, nie trzeba podawać numeru ani wypełniać druku – wystarczy napisać email, tak jak to opisano na Pepper. W mniej niż tydzień pieniądze z depozytu miałem na koncie.

Tak w ogóle to widzę, że w Aero2 mają nowe pakiety i może niepotrzebnie rezygnowałem. Bo teraz w Aero2 dają 10 GB za 10 zł bez limitu prędkości. Z kolei obecne a2mobile nadal daje za 12,9 zł 5 GB bez limitu prędkości, kolejne 5 GB z limitem 3 Mbps (modem 3G, więc nie robi to dramatycznej różnicy i spokojnie da się działać), kolejne 5 z limitem 1 Mbps (no tu jest wolno już), a potem 512 kbps. W praktyce pewnie zwykle mieściłbym się w 10 GB, a lepiej dopłacić 10 zł za kolejny pakiet przy tych rzadkich okazjach, kiedy potrzeba będzie więcej transferu. Hmm…

No ale skoro karta ewidentnie pada, to pora na wymianę. Czasu mało, więc zamawiać nie będę, szybka wizyta w sklepie, kupiłem jakiś dziwny wynalazek 32GB za 20 zł. Karta microSD z napisem full HD na opakowaniu. Przy okazji zauważyłem, że bardzo stary Raspbian się tam ostał – jeszcze oparty na bullseye. Zastanawiałem się przez chwilę, czy nie instalować nowego Raspbiana (oparty na bookworm), ale o ile backup obrazu karty miałem, o tyle plików nie. Oczywiście mogłem podmontować i zgrać pliki, ale stwierdziłem, że więcej będzie roboty z szukaniem ich wszystkich, niż z aktualizacją Raspbiana.

No i w sumie miałem rację – aktualizacja była bezproblemowa. Przy okazji wyłączyłem logi, wyłączyłem swap, zrobiłem lekki tuning pamięci, ustawiając minimalną możliwą dla karty graficznej (16 MB zamiast domyślnych 64 MB). No i zobaczymy, ile podziała teraz. Oczywiście mam świeży backup, znowu w postaci obrazu karty.

Przy okazji, trafiłem na ciekawy opis, jak zrobić w Raspberry Pi kartę w trybie read only przy pomocy overlayFS. Spróbowałem i… niestety nie działa, choć raspi-config twierdzi, że przełączył. Nie tylko u mnie, widziałem podobne opisy na forach – na 64bit niby działa, na 32bit – nie. A moje RPi to 1B, więc nie mogę 64bit użyć. Na dokładniejszy debug nie starczyło już czasu, może następnym razem się uda…

Radio internetowe – powrót

Radio 357 kiedyś doczekało się wpisu. Radio Nowy Świat – nigdy, choć pewnie powinno. W każdym razie w ostatnich latach praktycznie przestałem słuchać obu tych stacji. Więcej słuchałem audio ze streamingu.

Słyszałem, że trochę odwilż z Trójką, część prowadzących wróciła tam, więc postanowiłem sprawdzić, jak wygląda sytuacja po roszadach personalnych. Od kilkunastu tygodni staram się dawać szansę obu stacjom. Już samo sformułowanie staram się dawać szansę sugeruje, że szału nie ma.

Faktycznie, w obu przypadkach jest – jak dla mnie – średnio. Generalnie za dużo „gadania”, za mało audycji z muzyką i o muzyce. Co gorsza, często jest tak, że „gadana” audycja jest w obu stacjach jednocześnie. Wtedy wjeżdża streaming i raczej przez przynajmnije parę godzin do słuchania radia już nie wracam.

Słyszałem, że trochę upadły ideały w Radio 357. Wbrew początkowym zapowiedziom pojawiły się reklamy. Może nie takie typowe, w trakcie audycji, a tylko czasem na początku streamu. Nie wierzyłem, sprawdziłem. I faktycznie, bardzo rzadko, ale się zdarza. Plus, już od bardzo dawna, mają – z rzadka – audycje sponsorowane (np. lista noworoczna).

W Radio 357 jest też to, co kiedyś mnie drażniło, czyli audycje z wpuszczaniem słuchaczy na antenę. No nie przepadam, szczególnie jeśli słuchacze próbują wypowiadać się merytorycznie. Gdyby to były tylko pozdrowienia, to jeszcze może by uszło.

Z drażniących rzeczy: dużo o „patronizowaniu”. A czemu to dobry pomysł. A zostań patronem. A kup komuś. A jakieś statystyki. A wpływ inflacji. Tu zdaje się przoduje RNŚ. Nie mam statystyk, bo jak się zaczyna, to od razu przełączam stację. Rozumiem, że z tego żyją, ale… chyba wolałbym reklamy.

Ogólnie mam trochę wrażenie, że pewne rzeczy zatrzymały się na etapie sprzed paru lat, krótko po powstaniu stacji i dla fanów. I jak dla mnie się to nie broni, może dlatego, że nigdy nie byłem fanem i nie uważałem żadnej z tych stacji za „swoją”. I – dla jasności – nie byłem patronem. Trochę brakuje mi tu mechanizmu, który podsumowywałby, których audycji słuchałem, pozwalał dawać lajki gdy mi się podobało i jakieś mikropłatności a’la Flattr czy rozdzielanie pieniędzy z reklam, jak kiedyś było w Brave na koniec miesiąca.

Bo właśnie, stacje jako całość mi nie podchodzą, ale niektóre audycje czy prowadzących lubię. Więc pewnie nie przyjmie się słuchanie „ciągle”, ale może ustawię przypomnienia w kalendarzu, by słuchać wybranych audycji? Zobaczymy.

Na koniec jeszcze jedna ciekawa obserwacja. Kiedyś wolałem – i bardziej kibicowałem – RNŚ, teraz w praktyce raczej wybieram Radio 357. Oczywiście nie zawsze, ale proporcja się jakby odwróciła.