MObywatel, czyli Polak™ by Google & Apple

1 dzień temu
Zdjęcie: Wiadomość mówiąca, że jedynymi legalnymi źródłami apki mObywatel są App Store i Play Store. Obok widać orła bielika ze znakami zapytania nad głową.


Były wybory prezydenckie, już po wyborach. W związku z nimi przez pewien czas było głośno o aplikacji mObywatel, zawierającej elektroniczne wersje różnych dokumentów; takich jak dowód tożsamości, który trzeba okazać przed zagłosowaniem. Niektórzy mieli zastrzeżenia do tej formy weryfikacji, inni uspokajali nastroje.

A ja? Nie przejmowałem się tym, bo mObywatelowi jakiś czas temu podziękowałem. Z tego prostego względu, iż korzystanie z niego domyślnie wymaga podporządkowania się wybranej korporacji: Google albo Apple.

Ministerstwo Cyfryzacji, tworząc swojego mObywatela, nie poczyniło niestety choćby drobnych, symbolicznych kroków ku niezależności.

Nie opublikowali na własnej stronie pliku z aplikacją ani wzorca swojego cyfrowego podpisu, mimo iż byłoby to dla nich kwestią paru chwil. Wprost wykluczyli dużego producenta telefonów. Co gorsza, na stronie niesłusznie sugerują, iż instalacja bez udziału korporacji mogłaby nie być legalna.

Źródło: korona z Emojipedii, orzeł bielik z Wikimedia Commons (zdjęcia autorstwa Małgorzaty Sz., licencja CC-BY-SA 2.5). Przeróbki moje.

Ta sytuacja trwa od lat. Dlatego w ramach protestu stworzyłem ten wpis – nagłaśniający problem niepokojącej zależności między beniaminkiem polskiej cyfryzacji a zagranicznymi gigantami. Zapraszam do lektury!

Przy okazji będzie namiastka wpisu na temat grzeszków Play Store’a, który obiecałem kiedyś mailowo jednemu z czytelników.

Spis treści

  • Czym jest mObywatel
  • Kontrowersyjne słowa o legalności
    • Legalne alternatywy
    • Nielegalni monopoliści
  • Trudne sprawy wokół instalacji
    • Ciemne strony Play Store’a
    • Własna instalacja to nie samoróbka
    • Bezpieczna instalacja z zewnątrz
    • Co mogłoby poprawić Ministerstwo Cyfryzacji
    • Ciekawy przypadek Huaweia
  • Blokowanie alternatywnych systemów
  • Podsumowanie

Czym jest mObywatel

W tym wpisie mówię o aplikacji, czyli o tym, co mogę sobie zainstalować na telefonie i potem uruchamiać, stukając palcem ikonę godła Polski na ekranie głównym.

Jak piszą na oficjalnej stronie mObywatela:

Aplikacja została upubliczniona 29 października 2017 roku na telefony z Androidem. Wersja na urządzenia z iOS została wydana 31 stycznia 2018 roku.
14 lipca 2023 roku, po gruntownej przebudowie, pojawiła się najnowsza wersja aplikacji określana jako mObywatel 2.0.

Android to najpopularniejszy system operacyjny na telefonach, rozwijany przez firmę Google; iOS to jego odpowiednik na telefonach firmy Apple.

Oprócz aplikacji jest też strona internetowa, którą można odwiedzić przez zwykłą przeglądarkę. Problem w tym, iż możliwości strony i aplikacji nie do końca się pokrywają; jak wyczytamy w zakładce Czym różni się aplikacja od serwisu mObywatel:

W serwisie mObywatel.gov.pl załatwisz wiele spraw urzędowych, takich jak wypełnianie wniosków, sprawdzanie danych czy kontakt z administracją publiczną. Nie znajdziesz w nim jednak elektronicznych dokumentów.

Prowadzi to do prostego wniosku: nie da się tak po prostu zastąpić funkcji aplikacji (i to najbardziej podstawowych) stroną internetową. jeżeli ktoś z jakiegoś powodu nie może korzystać z apki – to nie ma pełnego dostępu do cyfrowej wersji swojego państwa. Wersji, która może z czasem zyskiwać dominację.

A jak tę apkę zdobyć? Oficjalna strona oferuje dwie opcje:

Nie ma natomiast informacji o tym, iż instalowanie apki tymi kanałami wiąże się niejako z podpisaniem paktu z korpo (o tym za moment).
Ministerstwo Cyfryzacji nie wydaje się podzielać moich obaw. Co więcej, na stronie umieścili wspomniany wyżej tekst, który szczególnie mnie zirytował:

W tej chwili nie planujemy udostępniania aplikacji w innych sklepach. Jedyną legalną i bezpieczną wersję mObywatela pobierzesz tylko w Google Play lub AppStore.

Kontrowersyjne słowa o legalności

Tekst „jedyną legalną i bezpieczną” może wywoływać presję. Sugerować, iż mObywatel ze źródeł niekorporacyjnych jest niebezpieczny i nielegalny. Czy faktycznie tak jest?

Legalne alternatywy

Co oznacza „legalny”? W słownikach można znaleźć prostą definicję: „zgodny z prawem”. W rozumieniu potocznym: za nieprzestrzeganie będzie kara.

Tak się składa, iż mamy w Polsce ustawę dotyczącą mObywatela. Czy jest w niej jakiś zakaz korzystania ze źródeł niekorporacyjnych?

Na szczęście nie. W ustawie nie znajdziemy absolutnie żadnej wzmianki o Play Storze czy AppStorze. Jest ona raczej takim fundamentem, na którym opiera się możliwość traktowania cyfrowych dokumentów na równi z klasycznymi, jak dowód osobisty.

Mamy również regulamin mObywatela (plik PDF). W nim już oba źródła aplikacji pojawiają się z nazwy… Ale nie widzę tu jednoznacznego zakazu.

W celu prawidłowego i pełnego korzystania z Aplikacji, Użytkownik powinien dysponować urządzeniem mobilnych typu telefon z systemem:
1) Android 7.0 lub wyższym i z dostępem do sklepu Google Play
lub
2) iOS 15.0 lub wyższym i z dostępem do sklepu App Store.

Ten fragment wydaje się mieć jedynie cel informacyjny. „Jak się tego nie spełni, to korzystanie może być niepełne”. W bardzo podobnym tonie piszą później o (opcjonalnym) pozwoleniu na dostęp do aparatu.
A czy ktoś przy zdrowych zmysłach nazwałby nieudzielenie telefonowego pozwolenia czymś nielegalnym?

Wniosek: o ile nie ma jeszcze innych przepisów, o których nie wiem, nazywanie Play Store’a i AppStore’a jedynymi legalnymi źródłami wydaje się bezpodstawne.

Co więcej – gdyby jakaś organizacja udostępniała u siebie do pobrania (pełnoprawny, nieszkodliwy) plik z apką mObywatela, to czy słowa sugerujące nielegalność nie byłyby dla niej krzywdzące? Tak tylko głośno myślę :wink:

Problem z sugerowaniem legalności (przykład praktyczny)

W kontekście niedawnych wyborów trafiłem na przykład możliwego „wykluczenia cyfrowego na tle instalacyjnym” – jak dziwnie by to nie brzmiało.
Ktoś pracujący w komisji wyborczej twierdzi na Twitterze, iż w razie wątpliwości poprosiłby o pokazanie mObywatela w Play Storze lub AppStorze, bo tylko tam jest dostępny.

Skutek? Osoba z pełnoprawnym mObywatelem mogłaby zostać niedopuszczona do głosu przez czyjąś prywatną decyzję. I nie jest to osoba teoretyczna – może to być ktoś, kto kupił telefona Huawei, więc z konieczności instaluje z innego źródła (ale ma dokładnie taką samą apkę jak od Google’a’).

Ba! Taka decyzyjna samowolka mogłaby uderzyć choćby w tych, którzy pobrali mObywatela z zalecanych źródeł, ale po jego zainstalowaniu dezaktywowali lub stracili konto Google (bez niego nie działa Play Store). Mimo iż o wymogu takiego konta nikt nigdzie nie pisze.

Właściwie nie obwiniam samego gościa z komisji; trochę wyszedł ze swoim pomysłem przed szereg, ale mógł nie wiedzieć, iż metod instalacji jest wiele. Natomiast stanowcze stwierdzenia z oficjalnej strony mObywatela dają podkładkę pod takie działania.

Myślę, iż twórcom strony mObywatela nie spadłaby korona z głowy, gdyby zmienili krzywdzący fragment „jedyną legalną i bezpieczną wersję” na coś neutralnego, jak „jedyną oficjalną wersję”.

Nielegalni monopoliści

Jeśli już szukamy nielegalności, to pozwolę sobie przedstawić parę cytatów. Oto wyrok sądu z USA oskarżający Google’a o nielegalną monopolizację segmentu wyszukiwarek.

Google is a monopolist, and it has acted as one to maintain its monopoly. It has violated Section 2 of the Sherman Act.

Wokół sprawy było trochę smaczków: zarząd korporacji niszczył dowody, włączając na czacie usuwanie wiadomości; wyszło też na jaw, iż celowo pogarszali przeglądarkę Chrome w celu wyświetlania reklam i płacili Apple miliardy dolarów za wstrzymanie prac nad ich własną wyszukiwarką.

…A tu kolejny wyrok przeciw Google’owi, nowszy, sprzed paru miesięcy. Oskarżający giganta o nielegalną monopolizację giełd reklamowych:

Google unlawfully monopolized markets for publisher ad servers and the market for ad exchanges, which sit between buyers and sellers

Również Apple oberwało za drakońskie narzucanie metod płatności i zakazywanie kontaktu z klientami twórcom aplikacji. Walkę z nimi podjęła firma Epic Games, a sąd stanął po jej stronie.

Obaj giganci obrywają ponadto od Unii Europejskiej: za monopolizację, nadużywanie danych osobowych, blokowanie konkurencji, próby obchodzenia zaleceń

A pomijam choćby zachowania nieetyczne, które jednak nie trafiły na sale sądowe, bo nie znalazł się wystarczająco duży gracz, żeby rzucić rękawicę bysiorom. Mogę co najwyżej podlinkować całą swoją serię na temat przewinień Google’a.

Jak byśmy nazwali w świecie rzeczywistym kogoś, kto wielokrotnie łamie prawo? Bandziorem? Recydywistą? Złym towarzystwem?
A tymczasem własny kraj namawia mnie, żebym z takim towarzystwem się bratał. I sugeruje, iż tylko recydywiści zapewnią mi legalność. Świat stoi na głowie.

Dlatego postanowiłem iść własną drogą. Konsekwentnie (ale bez głębszych ingerencji w system) oczyściłem telefona z rzeczy od Google’a.

To oczyszczenie obejmowało wyłączenie Play Store’a. A zatem konieczność zdobycia mObywatela innym kanałem niż ten „bezpieczny i legalny”. Czas na małą kronikę związanych z tym trudności – które byłyby łatwe do uniknięcia, gdyby Ministerstwo pomogło.

Trudne sprawy wokół instalacji

W tej części najpierw pokażę, z jakimi wadami wiąże się instalowanie aplikacji oficjalnym kanałem. Następnie pokażę trudności podczas instalacji nieoficjalnej – wynikające częściowo ze złej woli Google’a.

Uwaga

Odtąd skupiam się na systemie Android, bo to jego znam lepiej. Opisane bolączki dotyczą również AppStore’a – niektóre choćby w większym stopniu, bo Apple do niedawna blokowało inne źródła aplikacji niż swoją bazę. Teraz antymonopoliści wywalczyli dopuszczanie alternatyw… ale mam obawy, iż Ministerstwo nie skorzysta z nowej możliwości.

Ciemne strony Play Store’a

Wyobraźmy sobie, iż pani Basia ma nowy telefon, jeszcze bez żadnych aplikacji poza domyślnymi. Tak zachwalali tego mObywatela, iż postanowiła go zainstalować. Wchodzi na stronę apki i klika w ikonę Play Store’a.

W tym momencie uruchamia się aplikacja Play Store z telefonu i… wymaga od pani Basi zalogowania. Nie da się bowiem korzystać z Play Store’a, a zatem również z mObywatela, bez posiadania konta Google.

Żeby założyć to konto, trzeba wyrazić zgodę na zbieranie danych. Pani Basia jest pytana o imię i nazwisko – rozważa choćby podanie zmyślonych danych, ale odczuwa presję i podaje prawdziwe. W końcu państwowa strona tu odesłała, granica między korpo a krajem się zaciera. Tak oto pani Basia i wielu innych Polaków trafia w łapy Google’a.

Co gorsza, czasem przy logowaniu pojawia się dodatkowy wymóg i Google może zażądać numeru telefonu. Zdarza się to dość losowo i wydaje się zależeć od „reputacji” naszego adresu IP, wskazującego w przybliżeniu miejsce, z jakiego łączymy się z internetem.

Jak zwykle u Google’a – „dla twojego bezpieczeństwa” :roll_eyes:

Swoją drogą, skoro już o bezpieczeństwie mowa… Kiedy już założy się konto i włączy Play Store’a, domyślnie będzie w nim włączonych parę wrednych funkcji (uwaga: filmik z Youtube’a), zebranych pod nazwą Play Protect.

  • Automatyczne blokowanie aplikacji uznanych za niebezpieczne.

    A iż firma polega w tej kwestii na nieprzeniknionych algorytmach, to zdarzały im się spektakularne wpadki. Jak zablokowanie Portfela Samsunga, jego oficjalnej apki od płatności.

  • Wysyłanie nieznanych aplikacji do Google’a, żeby mógł je sobie przeanalizować.

    Powodzenia, jeżeli ktoś na przykład testuje eksperymentalną aplikację swojej firmy, która nie powinna być nigdzie publikowana.

Funkcje można wyłączyć w opcjach Play Store’a – ale mało kto w ogóle wie o ich istnieniu.

Ciekawostka

Po odwiedzeniu Play Store’a w dziale z opiniami można zauważyć, iż konto Ministerstwa Cyfryzacji często odpisuje na komentarze ingliszem: „Prosimy o kontakt z Service Desk”.
A gdzie „wżdy Polacy nie gęsi…”? :wink:

Jeśli ktoś już wykaże się miksem szczęścia i umiejętności – założy jednorazowe konto, wyłączy złe opcje – przez cały czas może wszystko stracić. Zdarzało się nieraz, iż Google, z taką samą nieprzewidywalnością jak przy Portfelu Samsunga, usuwał konta realnych osób.

Strata konta oznacza brak aktualizacji przez Play Store’a, zaś mObywatel czasem wymaga aktualizacji. Oznacza to, iż w przypadku otrzymania losowego kopniaka i utraty dotychczasowego dorobku grzeczny Polak™ by Google powinien założyć nowe konto, podając odpowiednie dane i może numer telefonu.
…A podanego numeru telefonu może mu nie akceptować, bo już wcześniej został użyty do założenia konta.

Wobec wszystkich wymienionych utrudnień można całkowicie zrezygnować z mObywatela albo całkowicie zrezygnować z pośrednictwa Google’a. Kiedyś wybrałem tę drugą opcję.

Własna instalacja to nie samoróbka

Dla osób przyzwyczajonych do klikania w Play Store’a samodzielna instalacja może wydawać się czymś złożonym. Robienie tego na własną rękę może się kojarzyć z chaotyczną samoróbką, robioną we współpracy ze szwagrem, przy piwku.

„Dlaczego nie zdasz się na Play Store’a? To wykwalifikowani specjaliści! A ta twoja prowizorka to jeszcze telefona spali”.

To szkodliwy mit, który warto obalić. Cykl życia aplikacji na Androida – jak wielu innych programów – można podzielić na kilka głównych etapów (literą T oznaczyłem etapy odpowiadające twórcom, a literą U – użytkownikom):

  1. (T) stworzenie pliku z aplikacją,
  2. (T) umieszczenie pliku w internecie (tu zwykle w bazie Play Store),
  3. (U) pobranie pliku z aplikacją z internetu,
  4. (U) wyodrębnienie rzeczy do zainstalowania (niektóre są zbędne),
  5. (U) zainstalowanie wybranych rzeczy na swoim systemie.

PlayStore za kulisami wykonuje kroki 3-5, przez co zlewają się w jeden – ale tak naprawdę na ostatnim etapie PlayStore oddaje stery systemowi. To system wykonuje ten najtrudniejszy etap. I wykonałby go również w przypadku samodzielnej instalacji.

Nie ma tu zatem żadnej samoróbki – przy instalacji na własną rękę za montaż odpowiadają dokładnie te same fachowe ręce co przy wariancie googlowym.

Trafniejsza analogia: obejście Play Store’a to zrezygnowanie z usługi transportu materiałów. Usługi, którą wykonywałby wścibski typ, notujący sobie rzeczy na nasz temat, a potem roszczący sobie prawo do niezapowiedzianych inspekcji i wyburzeń.
Zamiast tego załatwiamy te materiały na własną rękę, mając spokój od wścibstwa i ten sam efekt. Tyle wygrać!

I tu pojawia się pytanie – jeżeli nie od Play Store’a, to skąd? O ile bowiem pobranie apki jest łatwe, o tyle bezpieczne pobranie wymaga pewnej weryfikacji. Szkoda by było się nadziać na wirusa.

Ciekawostka

Kiedyś dało się korzystać z Aurora Store’a – pośrednika, który pobierał za nas apkę z oficjalnego Play Store’a. Ale Google’owi się to nie podobało i pobanował im konta.
Aurora przez cały czas działa, ale wymaga korzystania z własnego konta Google – instalując przez nią, zyskujemy co najwyżej brak ingerencji i gwarantowane źródło, ale pełnej wolności od Google’a to nie mamy.

Bezpieczna instalacja z zewnątrz

Nawiązując do etapów opisanych wyżej – trzeba wykonać krok 3, czyli pobrać plik z apką.
Osobiście wybrałem jako swoje źródło stronę apkmirror.com, która ma dobrą reputację. Zdobyłem stamtąd mObywatela w formacie APKM.

Choć z kronikarskiego obowiązku przyznam, iż goszczą u siebie wielu reklamodawców, do tego kiedyś stosowali własny zamknięty format i zachęcali do swojego instalatora; potem to na szczęście zmienili.

Dla niektórych ryzyk-fizyk, reputacja strony wystarczy. Ale dla mnie gra toczyła się o dość wysoką stawkę, więc poszedłem z weryfikacją o krok dalej: sprawdziłem cyfrowy podpis, jakim oznaczony był plik z apką.

Wyjaśnienie (minimalnie bardziej techniczne)

W świecie cyfrowym da się porównywać wszystko z dokładnością co do „atomów” – pojedynczych zer i jedynek. Gdybym postawił obok siebie dwa pliki-apki, to mógłbym łatwo ustalić, czy są tym samym.
…W praktyce jednak porównywanie setek milionów zer i jedynek byłoby żmudne, choćby dla komputera. Dlatego zamiast pełnowymiarowych plików porównuje się ich skróty (hasze).

Można sobie wyobrazić, iż funkcja haszująca to taka maszynka, która ściska dowolnie duży plik do postaci malutkiego ciągu zer i jedynek – hasza. Ta sama funkcja użyta na tym samym pliku daje zawsze ten sam hasz.

Istnieje wiele rodzajów funkcji haszujących. Niektóre z nich – MD5 i SHA-1 – zostały niestety rozpracowane i nie są już wiarygodnym sposobem porównywania, jeżeli uwzględnimy ryzyko działania hakerów. Można się nadziać na podróbę szlifowaną przez hakera do momentu, aż uzyskała taki sam hasz jak oficjalna apka.
Natomiast funkcja SHA-256 pozostaje póki co niezłamana. Kiedy dwie rzeczy mają ten sam hasz SHA-256 – to możemy zakładać, iż są dokładnie tym samym.

O krok dalej od hasza idzie cyfrowy podpis, bo ujawnia dodatkowo, iż daną rzecz (tu: apkę) oznaczyła konkretna organizacja.

Gdybym patrzył tylko na hasze, to ktoś teoretycznie mógłby umieścić tę samą złą apkę w dwóch różnych miejscach, na przykład w serwisach APK Mirror i APK Pure. Jej pliki miałyby te same hasze, byłyby tym samym… Ale apka byłaby zła.
Gdybym natomiast porównał hasze SHA-256 podpisów cyfrowych (a adekwatnie certyfikatów), to miałbym pewność, iż za różne pliki ręczy ten sam podmiot. Tu: Ministerstwo Cyfryzacji, któremu ufam.

Certyfikaty są niestety zaszyte w plikach i potrzeba sposobu, żeby się do nich dorwać. W praktyce, zgodnie z poradami:

  • pobrałem na swój komputer program apksigner (oficjalny, od Google’a, do pracy z cyfrowymi podpisami),
  • kliknąłem plik APKM z APK Mirrora prawym przyciskiem myszy i wybrałem Rozpakuj tutaj.

    To dlatego, iż to tak naprawdę archiwum, jak pliki ZIP. Po rozpakowaniu ukazały się różne pliki APK – główny i poboczne – które same w sobie też są archiwami.

Ciekawostka

Choć pliki APK są ogólnie archiwami, w ich nowszej wersji Google upycha certyfikaty, przez co stają się niestandardowe.
Być może to dlatego na Linuksie dawne pliki APK można rozpakować w niektórych programach bez zmiany końcówki pliku, zaś w przypadku nowszych muszę ją najpierw zmienić z .apk na .zip.

  • użyłem polecenia apksigner verify --verbose --print-certs PLIK.apk zarówno na głównym pliku z apką (w moim przypadku base.apk), jak i na pobocznych.

W ten sposób poznałem hasz SHA-256 certyfikatu. Teraz powinienem go z czymś porównać.

…I tu trafiłem na przeszkodę, bo Ministerstwo Cyfryzacji (według mojej wiedzy) niestety nie udostępnia publicznie ani haszy plików, ani wzorca swojego certyfikatu (mimo iż jego udostępnienie nie ułatwiłoby hakerom roboty).

Chcąc mieć pewność, musiałbym pobrać choć jedną wersję mObywatela z oficjalnego, namaszczonego Play Store’a i odczytać, jaki certyfikat jest do niego przypięty. jeżeli ten sam co do pliku z APK Mirrora, to byłbym spokojny.
Ale, nie chcąc choćby kijem ruszać Play Store’a, mogłem zastąpić pewne źródło kilkoma kilka mniej pewnymi:

  • pobrać tę samą wersję apki z innego źródła (na przykład z APK Pure, również mającego względnie dobrą reputację) i porównać certyfikaty.

    Pobiera się jako plik XAPK, bo ta strona ma inny format. Również rozpakowuję go jak archiwum, sprawdzam główny plik APK apksignerem. Ten sam hasz certyfikatu, czyli podpisali ci sami twórcy.

  • znaleźć starszą wersję apki z APK Mirrora na zaufanej stronie archiwizującej, jak archive.org.

    Wybrałem najstarszą dostępną wersję, wszedłem w jej opis i zobaczyłem (nawet bez pobierania, w zakładce Verified safe to install), iż certyfikat jest ten sam, co parę lat później przy nowej wersji. Raczej nie podróba, ktoś by przez te lata wyłapał.

Widząc zgodność certyfikatu między różnymi źródłami, zaufałem mu. Dla potomności – oto hasz (oczywiście niepodrabialny SHA-256) certyfikatu, jaki pokazał mi apksigner. Taki sam dla dwóch różnych źródeł z tego roku oraz zarchiwizowanej wersji sprzed dwóch lat.

cb4f1ea4f0be4a91ea803497dda69f31845c9a98f43903c56017cf4ab877d89f

Kolejna sprawa to krok 4, przedostatni, czyli wyodrębnienie plików. Pobranego pliku APKM z mObywatelem nie da się niestety tak po prostu zainstalować kliknięciem. Potrzeba jakiegoś instalatora.

Ciekawostka

Dawniej czasy były prostsze, a każda aplikacja w istocie była pojedynczym plikiem APK, który instalowało się kliknięciem.
…Ale potem Google zmienił swój podstawowy format przyjmowany przez Play Store’a na „zestawy APK-owe” (ang. APK bundles). Jednocześnie nie dodali do systemu opcji ich łatwego instalowania, choć mogli.
Wygląda to jak kolejna kłoda pod nogi osób chcących odejść od Play Store’a – on pozwala jednym kliknięciem, a w innym wypadku się namęczysz. Ale mało kto dostrzeże winnych tego stanu rzeczy.

Osobiście postawiłem na instalatory o otwartym kodzie źródłowym. W tym celu:

  • zainstalowałem F-Droida (źródło otwartych apek),
  • przez F-Droida zainstalowałem sobie aplikację SAI (Split APKs Installer),
  • przez nią zainstalowałem wspomniany wyżej plik APKM.

…I już, miałem działającego mObywatela. Ale tylko dlatego, iż mój telefon był mimo wszystko standardowym Androidem, tyle iż z powyłączanymi bzdetami od Google’a. Osoby z całkiem niezależnymi systemami telefonowymi dopiero zaczynałyby przygodę.

Przyczyny odejścia

Skoro mObywatel działał, to czemu przestałem go używać? Ano dlatego, iż musiałbym na własną rękę co pewien czas aktualizować aplikację – każdorazowo pobierać nową wersję z alternatywnego źródła, dla pewności sprawdzając certyfikaty. Elektronicznych dokumentów używałem na tyle rzadko, iż nie chciało mi się robić choćby takiej rutynowej aktualizacji i odpuściłem.

Co mogłoby poprawić Ministerstwo Cyfryzacji

Przede wszystkim: mogliby opublikować apkę na swojej stronie. W ten sposób osoby z tego czy innego względu niezwiązane z Google’em mogłyby ją łatwo zdobyć.

Nie wydaje się to jakimśtam odejściem od misji i uleganiem zrzędliwym blogerom :wink:
Ekipa tworząca mObywatela wprost pisze na stronie, iż planują kiedyś upublicznić kod źródłowy apki, a to dużo większe przedsięwzięcie niż zwykłe umieszczenie na widoku gotowego produktu.

Gdyby z jakiegoś powodu nie chcieli opublikować pliku (obawy, iż ludzie się przyzwyczają do pobierania z sieci albo coś), to mogliby chociaż publikować skróty plików zawartych w apce oraz certyfikat używany do składania cyfrowych podpisów.

W ten sposób ludzie pobierający pliki z zewnątrz mogliby przynajmniej pobieżnie weryfikować, czy zgadzają się one z oryginałem. Ministerstwo nie musiałoby reklamować tej funkcji – wystarczyłaby jakaś niepozorna zakładka, np. Historia wersji, w której chętni znaleźliby potrzebne rzeczy.

Ciekawy przypadek Huaweia

Patrząc po moim przykładzie, można uznać ludzi bez Play Store’a za jakiś promil społeczeństwa. W rzeczywistości to grono jest większe niż się zdaje, do tego wrzucone w obecną sytuację przez polityczne turbulencje. To osoby używające smartfonów firmy Huawei, która oberwała sankcjami.

Mamy tu kaskadę zdarzeń – najpierw Stany Zjednoczone nałożyły na Huaweia sankcje (co ciekawe, nie uderzyły w inne chińskie firmy, jak Xiaomi). Wskutek sankcji Google przestał udostępniać chińskiemu koncernowi swoje aplikacje, w tym Play Store’a. W efekcie polscy obywatele, kupując legalnie sprzedawany i działający telefon, nie mają dostępu do cyfrowego oblicza swojego państwa.

Huawei jakoś przetrwał, tworząc własną niezależną bazę apek, App Gallery. Ale twórcy mObywatela celowo go tam nie umieścili, nie podając powodów. A przecież pliki APK już mają stworzone i to tylko kwestia załadowania ich nie do dwóch, a do trzech baz.

Jakieś obawy przed chińskimi ingerencjami?
Ale taki na przykład bank PKO BP jakoś nie ma z tym problemów i trzymają swoją aplikację w App Gallery (zakładka „Gdzie można pobrać aplikację IKO?”).

Nie udostępniają, bo apka i tak by nie działała bez Usług Google’a?
Możliwe, choć u mnie, również z wyłączonymi usługami, jakoś działała; poza tym według paru dyskusji na forach jedyną przeszkodą jest pobranie z innego źródła, a potem działa normalnie.

Dla jasności: nie darzę Huaweia sentymentem, uważam ich za kolejne drapieżne korpo. Niedawno ujawniono chociażby, iż ich lobbyści przekupywali europarlamentarzystów. Sposób, w jaki zostali potraktowani, pokazuje natomiast nieoczekiwany wpływ przepychanek amerykańsko-chińskich na Polaków.

„Nie protestowałem, gdy przyszli po Huaweia”… Ale kiedyś mogą wykluczyć kolejne chińskie telefony, jak Xiaomi, Realme, Vivo, Oppo, OnePlus, Motorola (własność Lenovo)… I co wtedy, (m-)obywatelami Polski pozostaną tylko ludzie mający Samsunga, Pixela lub jabłkofona?

Twórcy mObywatela nie muszą w sumie specjalnie się fatygować do App Gallery; umieszczenie apki na własnej stronie byłoby jeszcze lepsze, bo rozwiązałoby problemy wszystkich, którzy z tego czy innego powodu nie mają lub kiedyś stracą Play Store’a.

…Ale wciąż pozostanie grono najbardziej wykluczone. Ludzie, którzy postanowili zamienić standardowego Androida na coś innego. Takie niestandardowe systemy choćby po pomyślnym zainstalowaniu mObywatela są przez niego odrzucane.

Blokowanie alternatywnych systemów

Czy mogę korzystać z aplikacji, kiedy na moim urządzeniu mam włączone uprawnienia root?
Nie, wówczas nie ma możliwości korzystania z aplikacji.

Takie coś piszą na oficjalnej stronie twórcy mObywatela. Nie musicie znać pojęcia „uprawnienia root” – wystarczy wiedzieć, iż to rodzaj modyfikacji systemu dający na nim więcej możliwości, na przykład w sferze prywatności. Innym rodzajem modyfikacji jest np. wymiana Androida na inny system.

Dokładniejsze wyjaśnienia (luźna analogia)

Wyobraźmy sobie, iż system Android jest jak roślina. Ma swoją część nadziemną, do której mamy dostęp – łodygę lub pień, owoce, kwiaty i tak dalej. Ale jest też część podziemna, niewidoczna i niedostępna – korzenie.

Słowo root może oznaczać po angielsku właśnie „korzeń”. Wprawdzie geneza słowa jest całkiem inna, ale skoro już mają identyczne brzmienie, to można się pobawić.

Rootowanie oznacza dobranie się do tej podziemnej części i odkrycie nowych możliwości interakcji z naszym systemem-rośliną:

  • możemy wykopać skarby spod ziemi (dostęp do plików wewnętrznych);
  • możemy całkowicie usunąć korzenie, które nam się nie podobają (apki systemowe);
  • możemy oglądać pod mikroskopem dokładny przepływ cieczy w korzeniach (przechwytywać i analizować ruch sieciowy).

Ogranicza nas tylko wyobraźnia. Mając dostęp do fundamentów i znając zasadę ich działania, możemy choćby podmienić „domyślne” korzenie własnymi. Może sztucznymi, może działającymi wydajniej niż podstawowe. Póki system-pień dostaje od spodu dokładnie taką samą wodę i składniki mineralne (w świecie cyfrowym: zera i jedynki), to działa dokładnie tak samo.

Żeby dostać się do korzeni, trzeba zrobić podkop. Wyobraźmy sobie, iż ziemia wokół naszej rośliny to tzw. bootloader. jeżeli jest miękka i można kopać, to bootloader jest otwarty. jeżeli wokół rośliny mamy wylany beton, który najpierw by trzeba usunąć – to bootloader jest zamknięty.

Taką kompletną „podmianą korzeni i łodygi” jest zainstalowanie alternatywnego systemu, zwanego custom ROM. Przykłady alternatyw to na przykład Lineage OS albo Calyx OS. Często bardziej dbają o prywatność niż domyślny (tzw. stockowy) Android; pozwalają też wydłużyć żywotność urządzenia.

Nie są to rzeczy tylko dla majsterkowiczów – można na przykład kupić telefon-gotowca, na którym alternatywny system już jest zainstalowany. I wszystko byłoby super, gdyby niektórzy twórcy apek nie wywierali presji na to, żeby mieć domyślne korzenie.

Wszystkie wspomniane modyfikacje łączy to, iż mObywatel pyta system o wprowadzone zmiany, a jeżeli o jakichś się dowie, to celowo odmówi działania.

Istnieją sposoby, żeby ukrywać ślady po zmianach i symulować pierwotny stan. Magisk, Play Integrity Fix, Zygisk… Czasem różni telefonowi majsterkowicze stają na głowie, żeby ukryć swoje modyfikacje i korzystać z aplikacji.

Na wypadek, gdyby to miało kogoś odstraszyć od rootowania – to dość szczególny przypadek, bo piszący chcą uruchomić u siebie kilka różnych aplikacji, być może o sprzecznych zakresach tolerancji. Samo ukrywanie zmian jest natomiast częstym motywem.

Majsterkowicze nieraz podchodzą do tego jak do wyzwania i czasem coś ugrają. Ale mam wrażenie, iż to walka z wiatrakami. Oni się starają, może choćby sam mObywatel przymyka oko… Ale potem nagle Google wprowadza w Androidzie ostrzejsze mechanizmy weryfikacji (nówka sprzed kilku dni) i coś, co działało, nagle działać przestaje.

Pewniejszym rozwiązaniem, zamiast ciągłego prześlizgiwania się pod przeszkodami, wydaje mi się głośne protestowanie. Nie powinno tak być, iż ktoś jest wykluczany ze społeczeństwa przez niestandardowy system!
Rozumiem jeszcze wykrywanie zmian i ostrzeganie ludzi, ale powinna być możliwość potwierdzenia, iż owszem, chcę użyć obywatelskiej aplikacji na nietypowym systemie.

„Ale po co się wychylać dla jakiegoś promila ludzi?”, mógłby ktoś zapytać.

Ano po to, żeby wyrwać się z zaklętego kręgu. Być może więcej osób spróbowałoby alternatyw, gdyby nie słyszeli przed próbą ich instalacji: „tylko pamiętaj, iż ci aplikacje bankowe i mObywatel nie zadziałają”.

Banki to trudny przypadek, bo raczej za bardzo chcą mieć dupochron i możliwość przesunięcia odpowiedzialności na Google’a w razie hakerskiego ataku.
Ale państwo, zwłaszcza w kwestii apki dla ogółu społeczeństwa, powinno zachować elastyczność. Wychodzić naprzeciw obywatelom, a nie monopolistom.

Po wykryciu roota lub innych zmian twórcy mObywatela mogliby na przykład, w zależności od awersji do ryzyka:

  • wyświetlić ostrzeżenie, które wystarczy przeklikać;
  • wymagać kliknięcia przycisku „Akceptuję ryzyko” przed załadowaniem apki;
  • wymagać dodatkowego zweryfikowania, iż osoba chcąca włączyć apkę to faktycznie jej posiadacz.

    Pomysł: na ekranie mógłby pojawić się kod odpowiadający apce. Ten kod dałoby się pokazać w urzędzie razem ze swoją twarzą i fizycznym dokumentem. Gdyby wszystko się zgadzało, to dostałoby się jednorazowe hasło aktywacyjne. Po wpisaniu hasła zyskałoby się apkę na zmodyfikowanym systemie. Oczywiście najfajniej, gdyby dało się to zrobić bez ujawniania w urzędzie, po co chcemy kod – prywatność górą.

    Można też podejrzeć rozwiązanie z Danii – MitID. To sposob na uwierzytelnienie, ale oprócz apki dostępnych jest kilka innych metod, w tym fizyczny generator kodów, wręczany na własność przez państwo.
    Telefon wykrywa zmiany? To prosi o wpisanie kodu. Założenie jest takie, iż generator ma przy sobie tylko jego właściciel. Generuje kod, wpisuje, odtąd ma mObywatela na swoim nietypowym systemie. Da się? Da się.

Podsumowanie

Aplikacja mObywatel jest oczkiem w głowie niektórych polityków. Chwalą się 9 milionami użytkowników, a portale piszą górnolotnie o cyfrowej transformacji.

Ale w obecnej postaci ta cyfrowa strona kraju jest ściśle zależna od korpo. Korzystając z apki na Androidzie, czuję się jak produkt Polak™ firmy Google – ściśle zrośnięty z ich ekosystemem, karmiony narracją o ograniczeniach dla mojego bezpieczeństwa, wolno drepczący w stronę cmentarzyska – jak setki innych ich projektów.

Ta zależność od korposów jest też czystym ryzykiem. Co by było, gdyby kiedyś automat Google’a przez losowy błąd zablokował naraz wszystkie mObywatele, jak kiedyś Portfel Samsunga? Co by było, gdyby nowe sankcje USA ubiły Play Store’a na innych telefonach chińskiej produkcji?
Dostępność apki poza bazą Google’a poprawiłaby odporność na takie sytuacje.

Niektórzy mogą się łudzić, iż apka państwowa, z godłem Polski, byłaby specjalnie traktowana… Ale obstawiałbym, iż z punktu widzenia korpo ten orzeł jest wart mniej niż zielona sowa z ikony Duolingo. W końcu te 9 milionów użytkowników, którymi tak się chwali rząd, blednie wobec ponad 500 mln posiadaczy Duo.

Teraz mogą być ostatnie lata na zadbanie o fundamenty i dostępność aplikacji dla wszystkich. Przypomnę rzeczy, które bardzo bym docenił ze strony twórców mObywatela (szczegóły wyżej, we wpisie):

  • usunięcie słów o „jedynym legalnym źródle” – niesłusznie demonizują alternatywy;
  • umieszczenie na swojej stronie tych samych wersji aplikacji, które trafiają do Play Store’a, żeby dało się je pobrać na własną rękę…
  • …albo przynajmniej umieszczenie na stronie haszy plików oraz informacji o stosowanym certyfikacie – żeby dało się samodzielnie zweryfikować bezpieczeństwo apek ze źródeł zewnętrznych;
  • dopuszczanie urządzeń z rootem i alternatywnych systemów.

    Forma dowolna; jak dla mnie może to być proste kliknięcie „Akceptuję ryzyko”, może być wymóg podania dodatkowego kodu – albo z urządzenia, na wzór duński, albo z urzędniczego okienka. Byle nie wykluczać alternatyw.

Zachęcam, żeby przedstawiać te postulaty twórcom mObywatela i zachęcać do ich wprowadzenia. Z ich punktu widzenia to na pewno łatwiejsze niż pełna publikacja kodu źródłowego, ale pokazałoby dobrą wolę i aktywne działanie. A ludzie nie musieliby się czuć wykluczeni i zdani na niepewne stronki.
Obustronna korzyść, coraz rzadsza na tym świecie!

Mam nadzieję, iż coś się w kwestii mObywatela zmieni, a cyfryzacja stanie się faktycznie ogólnodostępna. A tymczasem – do kolejnego wpisu! :smile:

Idź do oryginalnego materiału