Kategorie
Android Epidemia iOS Publicystyka

Obawiam się GAFA nawet, gdy niosą dary

Zasada równoważenia władz na naszych oczach przenosi się na poziom państw i korporacji. Google, Apple, Facebook czy Amazon (GAFA) już od jakiegoś czasu nie muszą się przejmować opiniami tego czy tamtego państwa, jednak nadal opłaca im się kreowanie własnego wizerunku jako obrońców prywatności zwykłych ludzi – w kontrze do państw narodowych poddających obywateli inwigilacji i represjom. W ramach tego kreowania korporacje promują rozwiązania prowadzące w dłuższej perspektywie do uzależnienia rządów od własnych kaprysów.

Mam tu oczywiście na myśli sytuację, w której firmy Google i Apple zapowiadają dodanie do Androida i iOS funkcji umożliwiających powstanie aplikacji do śledzenia interakcji między ludźmi i alarmowania tych, którzy stykali się z nosicielami koronawirusa. Proponowane algorytmy zagwarantują, że państwa nie będą miały możliwości śledzenia obywateli wbrew ich woli, jednocześnie zaś rządy będą musiały nadrabiać miną, bo to od woli Google i Apple będzie zależało, które aplikacje zostaną w ogóle obdarzone dostępem do wspomnianych funkcji. 

Inne teksty związane z epidemią koronawirusa

[13.03.2020] o projekcie „Stop the pandemic” i tym, że jego autorzy prosili o znacznie więcej danych niż powinni
[20.03.2020] w którym zaglądam do środka aplikacji „Kwarantanna Domowa” i opisuję, co znalazłem w środku
[29.03.2020] w którym opisuję dlaczego smartfony nie bardzo nadają się do śledzenia interakcji między ludźmi
[03.04.2020] w którym piszę o zapowiadanej przez Ministerstwo Cyfryzacji apce „ProteGO” i o tym, że nie zadziała ona zgodnie z oczekiwaniami
[21.04.2020] w którym piszę o protokole Contact Tracing autorstwa Apple+Google i projekcie OpenTrace
[26.04.2020] w którym opowiadam, jak można sprawdzić, co robi aplikacja mobilna i dlaczego otwarte źródła to nie wszystko
[29.04.2020] w którym mając umowę szacuję koszty napisania od zera aplikacji Kwarantanna Domowa
[09.05.2020] w którym pokazuję, jak sprawdzić zawartość komunikatów wysyłanych w eter przez ProteGO Safe
[04.06.2020] w którym opisuję kontrowersyjną architekturę aplikacji ProteGO Safe 4.1.0-rc.1
[16.07.2020] w którym pokazuję, że aplikacja ProteGO nie działa

Contact Tracing

Nie będę streszczał założeń protokołu Contact Tracing, zainteresowani mogą poczytać o nim na przykład na stronach Niebezpiecznika. Podzielę się za to listą spostrzeżeń i otwartych pytań, które nasunęły mi się na myśl po lekturze dokumentów ze stron Apple i Google

  • skanowanie ma mieć miejsce nie rzadziej, niż co 5 minut – w odróżnieniu od ograniczeń nakładanych na zwykłe programy, których aktywność może być opóźniana o całe godziny  
  • rejestracja interakcji może uwzględniać siłę odebranego sygnału
  • serwery Google/Apple będą obowiązkowe, twórcy aplikacji nie mogą użyć własnych maszyn do dystrybucji Diagnosis Keys
  • wszystkie założenia dotyczące serwera (np. to, że nie zapisze metadanych identyfikujących chorego przesyłającego Diagnosis Keys) trzeba przyjmować na wiarę
  • wszystkie założenia dotyczące bezpieczeństwa Tracing Key na dobrą sprawę też trzeba przyjmować na wiarę, bo usługi systemowe bardzo trudno audytować zaś kod wykonywany przekazany dynamicznie z backendu i tak może być unikalny dla każdego użytkownika
  • nie wiadomo, czy informacja o zachorowaniu jest dzielona między aplikacjami, tzn. czy zgłoszenie choroby w aplikacji “polskiej” będzie widoczne w aplikacji “czeskiej”
  • nie wiadomo, czy instalacja wielu aplikacji korzystających z Contact Tracing nie spowoduje konfliktów (aplikacja A włącza rozgłaszanie, aplikacja B włącza, aplikacja A wyłącza, co się dzieje z B? to samo dotyczy automatycznego wyłączania śledzenia przy odinstalowaniu aplikacji A)
  • nie wiadomo zresztą, jakie będą kryteria przydzielania dostępu do API, bo kategoria “rządy i właściwe organy” jest bardzo ogólna
  • nie mówimy tu o jakimś takim ogólnym błogosławieństwie, dokumentacja mówi: “apps will be required to timestamp and cryptographically sign the set of keys before delivery to the server with the signature of an authorized medical authority” czyli aplikacje będą musiały sygnować dane kluczami uprawnionych organizacji – ale nie wiadomo, czy mowa o procedurze online, czy zaszyciu zaufanych kluczy w aplikacji
  • nie wiadomo, czy twórcy aplikacji dostaną do dyspozycji “piaskownicę” czyli środowisko do testowania zdarzeń trudnych do zaaranżowania w inny sposób

Jeśli użytkownik uważa Apple i Google za “tych dobrych”, to może korzystać z Contact Tracing bez żadnych obaw. Założenia protokołu nie budzą zastrzeżeń, jest to jedna z propozycji najbardziej dbających o prywatność użytkownika. Jeśli jednak użytkownik wolałby raczej zaufać rodzimemu Ministerstwu Cyfryzacji albo Narodowemu Funduszowi Zdrowia – cóż, pech. Korporacje nie dają wyboru.

Równi i równiejsi

Dlaczego w ogóle zaangażowanie producentów komórek w temat koronawirusa trafiło na nagłówki gazet? Odpowiedź jest prosta – dzięki ich uczestnictwu idea aplikacji do walki z koronawirusem awansuje z kategorii “nigdy nie zadziała” do kategorii “być może nie jest to niemożliwe”.

W jednym z poprzednich tekstów opisałem przyczyny, dla których aplikacje działające w tle mają w systemie Android duże szanse na uśmiercenie. Mowa jednak o zwykłych apkach instalowanych przez użytkownika – wspomnianym ograniczeniom nie podlegają usługi wchodzące w skład systemu operacyjnego. Wystarczy więc, że aplikacje do walki z COVID-19 zostaną potraktowane w sposób priorytetowy, by ich niezawodność znacząco wzrosła.

Jak będzie wyglądało wdrożenie protokołu? W przypadku Apple będzie to nowa, “mała” wersja systemu operacyjnego – w świecie iOS aktualizacja taka zostanie zainstalowana na większości urządzeń w ciągu kilkunastu dni. Trzeba pamiętać, że choć Apple dostarcza aktualizacje przez około 5 lat od wydania na rynek danego modelu, systematycznie rośnie liczba sprawnych i nadal używanych urządzeń z jabłuszkiem, które są już de facto porzucone przez producenta i nie dostaną żadnych nowych funkcji.

Sytuacja jest o wiele bardziej złożona w przypadku Androida, gdzie producenci urządzeń dostarczają nowsze wersje systemu maksymalnie przez dwa lata i tylko na urządzenia ze średniej i wyższej półki – a i tak aktualizacje bywają opóźniane lub blokowane przez operatorów sieci komórkowych. Skalę problemu obrazuje poniższa tabela – jedna czwarta aktywnych urządzeń z Androidem pracuje pod kontrolą systemu w wersji 6 lub starszej (wersję tę wydano w roku 2015, urządzenia mogą być nieco młodsze).

dane z kwietnia 2020, źródło: XDA developers

Zamiast aktualizacji systemu Google wyda więc nową nową wersję Play Services czyli usług systemowych automatycznie aktualizowanych przez mechanizmy sklepu Google Play. To półśrodek, bo agresywne metody oszczędzania baterii stosowane przez Samsunga czy Huawei nadal będą aktywne. Czy da się osiągnąć coś więcej? Jeden z twórców singapurskiej aplikacji TraceTogether wspomniał, że producenci telefonów zaoferowali wciągnięcie ich apki na listę aplikacji chronionych przed zabiciem. Nie wiadomo, czy taka zmiana dotyczyłaby wszystkich, czy jedynie nowych telefonów, wiadomo za to, że TraceTogether to aplikacja o której było bardzo głośno. Trudno powiedzieć, czy ci sami producenci zechcą równie życzliwie potraktować wszystkie projekty z rodziny Contact Tracing.

OpenTrace czyli co wiemy o efektywności TraceTogether

Twórcy aplikacji TraceTogether udostępnili źródła referencyjnej implementacji swojego protokołu BlueTrace w projekcie o nazwie OpenTrace. Dostępne są aplikacje dla Androida oraz iOS, część serwerowa a także – co szczególnie ciekawe – częściowe wyniki testów skuteczności wzajemnego wykrywania większej liczby urządzeń pozostawionych w spokoju na dłuższy okres czasu.

źródło: OpenTrace

Surowe dane nie zostały opublikowane, jednak sporo możemy wyczytać z przykładowego wykresu, na którym widzimy interakcje ponad dwudziestu urządzeń przez 270 minut.

źródło: OpenTrace

Obrazek nie ma naniesionej siatki godzinowej. Godziny i minuty z osi X można jednak wygodnie wyznaczyć za pomocą narzędzia WebPlotDigitizer (https://apps.automeris.io/wpd/), w którym odczyty skalibrujemy dwoma kliknięciami w znanych punktach.

Czego możemy dowiedzieć się z testów przeprowadzonych przez twórców TraceTogether? 

  • urządzenia nocowały w biurze, położone obok siebie – warunki do komunikacji były więc optymalne i niemożliwe do osiągnięcia w terenie
  • testowany Samsung Galaxy S9+ odnotował między 21:00 a 23:00 DWIE (!!!) interakcje zaś Galaxy Note 8 TRZY (!) interakcje
  • większość urządzeń odnotowała w tym czasie kilka-kilkanaście interakcji, jednak odstępy czasu między zdarzeniami często nie były jednorodne (zdarzały się np. przerwy trwające ponad pół godziny, tymczasem singapurskie Ministerstwo Zdrowia jako kryterium ryzyka określa przebywanie w pobliżu nosiciela koronawirusa przez 30 minut)
  • prezentowane dane mogą być bardzo zaburzone przez hiperaktywnego iPhone’a (trzeci od dołu), bo gdy ten zamilkł na 24 minuty, WSZYSTKIE pozostałe urządzenia zdołały w tym czasie zarejestrować zaledwie cztery interakcje ośmiu komórek.

Konkluzja jednego z twórców: “as long as the user is actively keeping the phone awake through normal usage and they do not explicitly kill the foreground service, the app will function properly” czyli aplikacja utrzyma się przy życiu dopóki użytkownik nie uśpi telefonu. TraceTogether na telefonie schowanym do kieszeni lub torebki nie spełni pokładanych w nim oczekiwań – podobnie, jak żadna inna aplikacja śledząca podlegająca standardowym ograniczeniom.

Wniosek? Jedynie Apple i Google mogą tu coś zmienić. Być może po premierze API Contact Tracing pojawią się niezależne testy skuteczności tego rozwiązania.

źródło: OpenTrace

Autorzy TraceTogether sprawdzili też w komorze bezechowej siłę tłumienia wzorcowego sygnału Bluetooth raportowaną przez różne marki i modele telefonów. Przy ustandaryzowanej odległości dwóch metrów od anteny odnotowano wartości od ok. -50 dBm do -70 dBm, co oznacza stukrotną różnicę energii odbieranego sygnału (i to względem wzorca, nie dwóch urządzeń mobilnych nawzajem). Przy tak wielkich różnicach odczytów jakiekolwiek szacowanie odległości jest skazane na niepowodzenie.

O czym przypomina nam Financial Times?

W artykule opublikowanym przez Financial Times (przedrukowanym przez Ars Technikę) Tim Bradshaw przypomina, że wprawdzie na świecie w użyciu jest około 3.5 miliarda smartfonów, jednak nie wszystkie wyposażone są w układy obsługujące Bluetooth Low Energy. Kolejne 1.5 miliarda ludzi używa zwykłych słuchawek klasy “stara Nokia” z systemem Symbian lub podobnym. Ich udział w rynku zależy mocno od rejonu świata i grupy wiekowej – np. w Indiach nie-smartfony to 60-70 procent rynku, zaś w Europie komórki takie są najpopularniejsze wśród osób starszych.

Jeśli więc zechcemy obliczać próg popularności aplikacji śledzących, który da nadzieję na rzeczywistą pomoc w śledzeniu zarażeń, to pamiętajmy: choćby apka magicznie pojawiła się na wszystkich smartfonach to i tak nie pomoże wielu seniorom, najbardziej narażonym w razie infekcji koronawirusem. Cytowany artykuł wskazuje szacunki, wg których smartfony wyposażone w BLE są w posiadaniu 66-88% mieszkańców Wielkiej Brytanii (może któryś z pracowników telekomów zechciałby dyskretnie podzielić się polskimi statystykami?).

Co wyliczyli amerykańscy brytyjscy naukowcy?

Badacze z Uniwersytetu w Oksfordzie udostępnili wyniki obliczeń, w których modelowano rozprzestrzenianie się koronawirusa w warunkach miejskich. Symulacja uwzględniała różny stopień upowszechnienia aplikacji śledzącej kontakty przy założeniu, że 70% brytyjczyków dysponuje odpowiednim smartfonem.

Z obliczeń wynika, że wygaszanie epidemii przy użyciu aplikacji miałoby być możliwe, gdy zostanie ona zainstalowana na 80% urządzeń (czyli gdy będzie jej używać 56% ludzi) – oczywiście przy założeniu, że osoby narażone na kontakt z wirusem zastosują się do zalecenia kwarantanny.

O ile autorzy modelu przyjęli sensowne założenia dotyczące np. udziału zarażeń bezobjawowych, zaraźliwości wirusa czy odsetka osób łamiących kwarantannę, o tyle za kompletnie nierealistyczne oceniam założenie, że aplikacja będzie w stanie zarejestrować 80% interakcji między ludźmi. 

Inny problem z protokołem Contact Tracing polega na tym, że w proponowanym modelu dystrybuuje on tylko Diagnosis Keys czyli informację o tym, jakimi identyfikatorami przedstawiały się urządzenia osób zarażonych. Nie dowiemy się więc, ile osób zostało poinformowanych o wykryciu kontaktu ani ilu z nich zignorowało tę informację. Gdyby z kolei twórcy aplikacji zechcieli raportować te dane do jakieś scentralizowanej usługi analitycznej, będą od razu podejrzewani o brak poszanowania dla prywatności i łamanie reguł nakreślonych przez protokół. Zadowalający wszystkich kompromis między prywatnością a potrzebą oceny skuteczności rozwiązania może po prostu nie istnieć. 

Niezależnie od wszystkiego innego, kluczowe jest przeprowadzanie dużej liczby testów na obecność koronawirusa o jak najkrótszym czasie realizacji. Obliczenia z cytowanego dokumentu wskazują, że nawet pół dnia różnicy w czasie określania wyniku testu może zaważyć, czy nowy nosiciel zostanie odizolowany zanim sam zacznie zarażać. Żadna aplikacja nie pomoże, jeśli na wyniki przyjdzie czekać tydzień. 

Teorie spiskowe

W całej dyskusji o aplikacjach śledzących interakcje społeczne szalenie dużo mówi się i pisze o poszanowaniu prywatności, decentralizacji, otwieraniu źródeł i tak dalej. Niestety, prawie nikt nie pamięta o jednym prostym fakcie – aplikację szanującą prywatność dzieli od opresyjnej aplikacji gwałcącej wszelkie reguły tylko JEDNO kliknięcie. Może to być kliknięcie zatwierdzające nową wersję w sklepie, kliknięcie włączające zdalnie nieaktywne dotąd funkcje w oprogramowaniu, kliknięcie zatwierdzające rozesłanie do telefonów nowego modułu z nowym kodem wykonywalnym. Dziś jest tak, jutro siak.

Muszą o tym pamiętać ci wszyscy, którzy zechcą poprzeć swym autorytetem takie lub inne rozwiązanie. Będzie im smutno, gdy pewnego dnia usłyszą od któregoś z ministrów: “wicie, rozumicie, poprzednie śledzenie nie przynosiło spodziewanych wyników, więc tu mamy lepsze, takie trochę bardziej śledzące, za to jakie efekty! My otwieramy oczy niedowiarkom. Patrzcie – mówimy – to nasze, przez nas wykonane i to nie jest nasze ostatnie słowo”. Wcześniejsze słowa poparcia mogą być przecież cytowane długo po tym, gdy aplikacja zrobi nagły zwrot na wschód – a nie wszystkim użytkownikom będzie się dało wytłumaczyć, dlaczego ten sam produkt wczoraj był w porządku a dzisiaj już nie jest.

Czy otwarte źródła mogą w czymś pomóc? Tak – bo z nimi łatwiej przekonać się, że aplikacja robi to co się o niej mówi a paczka w sklepie z aplikacjami została zbudowana z tychże źródeł. Nie – bo o różnicach między źródłami a binarkami dowiemy się dopiero, gdy wersja z niepożądanymi zmianami trafi do ludzi (albo i nie dowiemy się wcale, bo przecież ktoś musiałby tę zgodność systematycznie sprawdzać). Na końcu ostateczną instancją i tak będzie ten, kto dzierży certyfikat do podpisywania paczki z nową wersją aplikacji. 

A do tematu reprodukowalnych kompilacji jeszcze wrócę – chyba że ONI mi w tym przeszkodzą.

Inne teksty związane z epidemią koronawirusa

[13.03.2020] o projekcie „Stop the pandemic” i tym, że jego autorzy prosili o znacznie więcej danych niż powinni
[20.03.2020] w którym zaglądam do środka aplikacji „Kwarantanna Domowa” i opisuję, co znalazłem w środku
[29.03.2020] w którym opisuję dlaczego smartfony nie bardzo nadają się do śledzenia interakcji między ludźmi
[03.04.2020] w którym piszę o zapowiadanej przez Ministerstwo Cyfryzacji apce „ProteGO” i o tym, że nie zadziała ona zgodnie z oczekiwaniami
[21.04.2020] w którym piszę o protokole Contact Tracing autorstwa Apple+Google i projekcie OpenTrace
[26.04.2020] w którym opowiadam, jak można sprawdzić, co robi aplikacja mobilna i dlaczego otwarte źródła to nie wszystko
[29.04.2020] w którym mając umowę szacuję koszty napisania od zera aplikacji Kwarantanna Domowa
[09.05.2020] w którym pokazuję, jak sprawdzić zawartość komunikatów wysyłanych w eter przez ProteGO Safe
[04.06.2020] w którym opisuję kontrowersyjną architekturę aplikacji ProteGO Safe 4.1.0-rc.1
[16.07.2020] w którym pokazuję, że aplikacja ProteGO nie działa



O autorze: zawodowy programista od 2003 roku, pasjonat bezpieczeństwa informatycznego. Rozwijał systemy finansowe dla NBP, tworzył i weryfikował zabezpieczenia bankowych aplikacji mobilnych, brał udział w pracach nad grą Angry Birds i wyszukiwarką internetową Microsoft Bing.

8 odpowiedzi na “Obawiam się GAFA nawet, gdy niosą dary”

GAFAM Panie Tomaszu!
Grupa korporacji, której obawia się były współpracownik (bez politycznych skojarzeń) Microsoftu nazywa się GAFAM : )

M$ jest dobry? od kiedy? Pewnie od Office 365 i trzymania dokumentów w chmurze. Czy może od skanowani wszystkiego w Dropboxie i OneDrive

https://en.wikipedia.org/wiki/Big_Tech

Former Google CEO Eric Schmidt, author Phil Simon, and professor Scott Galloway have each grouped the GAFA companies together (Google, Amazon, Facebook, Apple), on the basis that those companies have driven major societal change via their dominance and role in online activities. This is unlike other large tech companies such as Microsoft and IBM, according to Simon and Galloway.[15][28] In 2011, Eric Schmidt argued that „Microsoft is not driving the consumer revolution in the minds of the consumers.”

Jedyny app store, który mógłby zagwarantować zgodność opublikowanej aplikacji ze źródłem to F-Droid, gdzie akceptowane są tylko kody źródłowe lub binarki z kodem źródłowym, który po kompilacji musi mieć 100% zgodności z binarką (https://f-droid.org/en/docs/Reproducible_Builds/). Logi z kompilacji weryfikacyjnej razem z hashami dostępne sa dla wszystkich zainterestowanych (np. w zakładce build metadata https://f-droid.org/en/packages/org.secuso.privacyfriendlysudoku/) .

Reproducible builds są receptą na problem wielkiego brata podmieniającego aplikację, ale poza środowiskiem otwartego oprogramowania mało kto o nich słyszał.

> Założenia protokołu nie budzą zastrzeżeń, jest to jedna z propozycji najbardziej dbających o prywatność użytkownika.

A właśnie, że budzą zastrzeżenie, ponieważ kod Exposure Notification nie zostanie opublikowany z otwartym źródłem.

https://github.com/ProteGO-Safe/specs/issues/191

Tak więc już trzeba wierzyć również w to, że Google nie będzie agregował lokalnie (i wysyłał na inny jeszcze serwer) danych zagregowanych GPS+diagnosis key lub lista kontaktów+diagnosis key (system operacyjny nie musi pytać o uprawnienia do dostępu funkcji smartfona). Ponieważ nie mogę mieć EN na zrootowanym telefonie – nie ufam temu rozwiązaniu jako nie spełniającym 7 filarów zaufania.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *