Unified Attestation – Europejski odpowiednik Play Integrity.

Ostatnimi czasy w wolnym (as speech, not as turtle 😉 ) internecie dość mocno wrze, głównie za sprawą działań, które śmiało możemy nazwać zamachami na naszą prywatność. Najgłośniejszym echem odbijają się tematy domykania Androida przez Google, czy powracający jak bumerang Chat Control. W całym tym zgiełku mógł nam umknąć pomysł stworzenia europejskiego odpowiednika Play Integrity. Unified Attestation, bo o nim będzie mowa, to inicjatywa europejskiej firmy Volla we współpracy z Murena (/e/os) oraz iodé.

Czym tak właściwie jest Play Integrity?

Jest to system bezpieczeństwa stworzony przez Google. Jego zadanie polega w pewnym uproszczeniu na sprawdzeniu, czy zainstalowany system operacyjny (w tym przypadku Android) jest bezpieczny, czyli czy nie jest w żaden sposób zmodyfikowany ani zhakowany. Z założenia jest to słuszna idea, ponieważ użytkownik nie musi się przejmować, czy urządzenie, które trzyma w ręku, jest bezpieczne i czy może bez obaw korzystać ze swojej aplikacji bankowej czy np. mObywatela. W końcu Google zrobi to za nas, a taka poważna firma na pewno wie co robi. W praktyce oznacza to jednak, że system nie tyle ocenia bezpieczeństwo, co „zgodność z standardami Google”.

Mechanizm działania Play Integrity polega na analizie różnych elementów systemu – takich jak stan urządzenia, integralność aplikacji czy sposób jej instalacji. Na podstawie tych danych generowany jest specjalny token, który trafia na serwery i pozwala ocenić, czy użytkownik może bezpiecznie korzystać z danej usługi. Ma to na celu (z założenia) upewnienie się, że aplikacje działają na bezpiecznym urządzeniu, a użytkownikowi nie grozi wyciek poufnych danych. Z tego rozwiązania najchętniej korzystają deweloperzy aplikacji bankowych czy rządowych, ale nie tylko.

W omawianym temacie istotne jest to, że urządzenia z Androidem posiadają już wbudowany sprzętowy system atestacji, który z powodzeniem może być wykorzystywany do sprawdzania integralności oprogramowania. Play Integrity jest tylko nakładką na wymieniony system atestacji. Kluczowe w tym przypadku jest jednak to, że decyzja nie zapada na urządzeniu użytkownika, lecz na serwerach Google.

Czym jest Unified Attestation

Unified Attestation (w skrócie UA) to europejska odpowiedź na Play Integrity od Google (dawniej SafetyNet). Nie wchodząc w szczegóły można uznać, że zasada działania UA jest podobna do Play Integrity – system ten również korzysta ze sprzętowej atestacji jako podstawy i komunikuje się z serwerami, w tym przypadku należącymi do Volla. Oznacza to, że mimo zmiany dostawcy systemu atestacji schemat działania pozostaje identyczny: użytkownik musi zaufać podmiotowi trzeciemu, który na podstawie własnych kryteriów decyduje o tym, czy nasz smartfon jest wystarczająco „zaufany”.

Głównym argumentem przemawiającym za stworzeniem europejskiego odpowiednika Play Integrity jest chęć uniezależnienia się od giganta technologicznego zza oceanu. Tak przynajmniej Volla motywuje swoje działania. Problem w tym, że zmiana kontrolującego nie zmienia samej natury mechanizmu.

Unified Attestation ~ Play Integrity

Mimo szczytnego celu, jaki postawili sobie twórcy UA – czyli uniezależnienie się od Google – jest to w praktyce próba stworzenia alternatywnego, ale jednak łudząco podobnego systemu kontroli. W kwestii technicznej niewiele się zmienia – nadal mamy centralny serwer i decyzję podejmowaną poza urządzeniem użytkownika. Z punktu widzenia użytkownika różnica sprowadza się więc głównie do tego, kto sprawuje kontrolę – nie do tego, czy ta kontrola w ogóle istnieje.

Przejście z objęć jednej amerykańskiej korporacji decydującej o tym, co jest słuszne, a co nie, do kilku mniejszych europejskich firm nie jest zmianą na lepsze. To tylko rebranding tego samego mechanizmu. To, co jest w tym przypadku najbardziej niebezpieczne, to złudzenie, że przechodząc pod europejskie skrzydła, będziemy bezpieczniejsi i bardziej niezależni. W rzeczywistości jedynie zmieniamy zależność zamiast się jej pozbywać.

Czy Play Integrity/Unified Attestation są niebezpieczne?

Same mechanizmy nie są z natury „złe”, jednak sposób ich implementacji i użycia powinien budzić nasz niepokój. Kluczowy problem polega na tym, że atestacja nie ocenia realnego poziomu bezpieczeństwa urządzenia, ale jego zgodność ze standardami zarządzającego systemem certyfikacji. W praktyce oznacza to, że nie są brane pod uwagę takie czynniki jak np.: aktualność łatek bezpieczeństwa, aktualne wsparcie dla jądra systemu czy sprzętowe zabezpieczenia. Liczy się przede wszystkim to, czy urządzenie nie zostało zmodyfikowane w sposób nieakceptowany przez dostawcę rozwiązania.

Jak zatem wygląda rzeczywistość? Stary, 9-letni (!) smartfon z Androidem 8, pomimo licznych powszechnie znanych i udokumentowanych luk bezpieczeństwa i nieaktualizowanych komponentów systemowych może bez problemu przejść atestację, jeśli działa na fabrycznym systemie od producenta. Z kolei aktualizowany na bieżąco, utwardzony system jak GrapheneOS może zostać odrzucony tylko dlatego, że nie spełnia wymogów stawianych przez Google.

Dochodzimy więc do paradoksu: nieaktualny i pełen dziur system może być uznany za „zaufany”, a system skupiony stricte na bezpieczeństwie jako „niebezpieczny”. Gdzie tutaj miejsce na logikę?

Jakie zatem mamy alternatywy?

Jedną z alternatyw mogłaby być atestacja oparta na rzeczywistych kryteriach bezpieczeństwa, takich jak aktualność łatek bezpieczeństwa, zabezpieczenia systemu operacyjnego czy sprzętowe zabezpieczenia. Problem polega jednak na tym, że większość urządzeń obecnych na rynku nie spełniałaby takich wymagań. Wdrożenie takiego modelu teoretycznie uderzyłoby z jednej strony w producentów, ponieważ uświadomiłoby użytkowników o skali braku wsparcia dla istniejących urządzeń. Z drugiej strony oberwaliby sami użytkownicy, ponieważ nagle przestałyby im działać np. aplikacje bankowe.

Rozwiązaniem mogłoby być pozostawienie decyzji użytkownikowi. Zamiast blokować działanie aplikacji, system mógłby wyświetlać ostrzeżenie o potencjalnym ryzyku i pozwalać na kontynuację działania przy ewentualnym zwolnieniu producenta aplikacji z odpowiedzialności. Tym samym wzrosłaby nieco świadomość użytkowników w kwestii bezpieczeństwa.

Pinning-based attestation

Jednym z ciekawszych podejść do atestacji jest tzw. pinning-based attestation, wykorzystywany m.in. przez twórców GrapheneOS. W przeciwieństwie do Play Integrity czy Unified Attestation, mechanizm ten nie jest zależny od centralnych serwerów. Jego zasada działania polega na komunikacji bezpośredniej pomiędzy aplikacją/serwisem a konkretnym urządzeniem. Decyzja o zaufaniu (bądź nie) odbywa się lokanie na naszym urządzeniu. Dzięki temu otrzymujemy zupełnie odmienny (zdecentralizowany) model zaufania: zamiast ufać centralnemu serwerowi, ufamy konkretnemu urządzeniu, które zostało wcześniej zweryfikowane.

Co istotne, podejście to nie jest niczym egzotycznym – opiera się na oficjalnych metodach sprzętowej atestacji dostępnych w urządzeniach z Androidem. Problem w tym, że zostało ono skutecznie przyćmione przez Google poprzez wprowadzenie i promowanie Play Integrity.

Oczywiście każde rozwiązanie ma swoje zady i walety. Tak jest zarówno w przypadku atestacji Play Integrity jak i Pinning-based. To drugie naturalnie nie rozwiązuje wszystkich problemów – nie zapewnia np. globalnego systemu reputacji urządzeń. Tym samym przerzuca część obowiązków dotyczących bezpieczeństwa na deweloperów aplikacji. Ma jednak kluczową zaletę: eliminuje potrzebę istnienia centralnego organu decydującego o tym, czy urządzenie użytkownika jest „wystarczająco zaufane”. Ta zaleta powinna przykryć wszystkie inne zalety Play Integrity czy jego potencjalnych konkurentów.

Cała władza w rękach Google. Volla też chce kawałek tortu.

Dlaczego deweloperzy aplikacji tak chętnie korzystają z Play Integrity? Ponieważ jest łatwe do wdrożenia, dobrze udokumentowane i szeroko promowane przez Google. Dodatkowo działa już jako pewien standard, a odchodzenie od działających standardów jest problematyczne i wymaga np. dodatkowych środków i czasu. W efekcie powstaje samonapędzający się mechanizm: im więcej aplikacji korzysta z Play Integrity, tym trudniej jest go porzucić. To wszystko prowadzi do koncentracji władzy w jednych rękach – jedna korporacja posiada realny wpływ na to, jakie urządzenia mają dostęp do kluczowych usług.

Play Integrity to w rzeczywistości kolejne narzędzie Google do umacniania pozycji monopolisty i kontroli rynku urządzeń mobilnych. Jest to niezdrowe z punktu widzenia konkurencyjności. Uderza to zarówno w forki AOSP (Androida) jak i inne mobilne systemy operacyjne. Takie praktyki powinno się piętnować i zwalczać i tego moglibyśmy się spodziewać po stosunkowo niewielkich europejskich firmach „walczących” z monopolistą. Tymczasem Volla, Murena czy iodé budujące swój kapitał wizerunkowy na hasłach typu ochrona prywatności, bezpieczeństwo czy niezależność od wielkich korporacji robią dokładnie to samo, co robiło Google dekady temu zanim zdjęło maskę pt. „Don’t be evil”.

Podsumowanie

Play Integrity oraz Unified Attestation to systemy, które w założeniu mają zwiększać bezpieczeństwo użytkowników, jednak w praktyce opierają się na tym samym modelu – centralnej kontroli. Różnica między nimi sprowadza się głównie do tego, kto sprawuje nad nimi władzę, a nie do tego, jak działają.

Kluczowy problem polega na tym, że atestacja nie mierzy rzeczywistego bezpieczeństwa urządzenia, ale jego zgodność z narzuconym przez firmę standardem. Standard ten niekoniecznie musi być zbieżny z pojęciem bezpieczeństwa i w rzeczywistości rzadko się z nim pokrywa. Prowadzi to do paradoksów, w których przestarzałe, podatne na ataki urządzenia są uznawane za „bezpieczne”, a urządzenia pracujące pod kontrolą systemów stworzonych z myślą o bezpieczeństwie i prywatności są blokowane.

Unified Attestation, mimo europejskiego rodowodu, nie rozwiązuje problemu utworzonego przez Google – kontynuuje ten sam schemat, zmieniając centrum decyzyjne, ale nie sam mechanizm. W efekcie użytkownik nadal pozostaje zależny od arbitralnych decyzji jednej (lub trzech) firm.

Dzięki kontroli Google (lub Volla) nad naszymi urządzeniami otrzymujemy złudne poczucie bezpieczeństwa. Dlaczego ten system (czyt. oszustwo) działa tak dobrze? Ponieważ wolimy słyszeć słodkie kłamstwa niż brutalną prawdę.

2 komentarze

  1. Scanner Diciest

    @wolnoscwkieszeni https://grapheneos.social/@GrapheneOS/116287040736213258

  2. Kris

    @wolnoscwkieszeni Oczywiście każde rozwiązanie ma swoje zady i walety. 😆 😉

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *