Co se týče soukromí a mobilních telefonů, není situace úplně růžová. Nejenže po vašich datech prahne kdejaká aplikace „zdarma“, ale obrovské množství dat posílají domů také samotné systémové služby. Na trhu s mobilními operačními systémy panuje oligopol dvou hráčů. Jeden data sbírá ve velkém, aby je nabídl inzerentům, druhý tenhle byznys model nepoužívá, což je ta lepší varianta, ale přes veškerou reklamu o soukromí s ním vaše zařízení stále sdílí velké množství dat, u kterých si nemůžete být nikdy 100% jistí, jestli se přes všechny sliby k někomu nedostanou.
Jistotu budete mít jen u dat, které s nikým nenasdílíte. Existuje ale u mobilních telefonů dnes taková varianta? Před dvěma lety jsem si pořídil zánovní OnePlus 6, na který jsem si nainstaloval PostmarketOS. Jedná se o klasickou linuxovou distribuci, kde o vás tvůrce systému nesbírá prakticky žádná data.
Na mobilu dnes funguje překvapivě dobře. Prostředí a aplikace se dokážou přizpůsobit malé obrazovce a poskytnout základní funkcionalitu. Strčíte do mobilu simku a můžete s ním bez jakéhokoliv nastavování volat a posílat SMS. Je fajn se k telefonu ssháčknout a zaktualizovat si ho z desktopu. Ale rychle narazíte na limity. Klasický Linux prostě nemá k dispozici stovky tisíc mobilních aplikací jako Android. Část můžete vyřešit Waydroidem, ale poté narazíte na aplikace, které s ním nejsou úplně kompatibilní. Navíc máte velmi omezený výběr zařízení. Většinou se jedná o starší zařízení původně s Androidem. OnePlus 6, který je mezi uživateli PostmarketOS velmi populární, je už sedm let starý telefon, a pořád patří k tomu výkonnějšímu.
U Androidu není situace „nadmíru výtečná“ ani, co se týče bezpečnosti. Doteď jsem jako telefon používal Samsung Galaxy S22. Marketingové oddělení Samsungu má plná ústa toho, jak mají Knox a vše je výborně zabezpečené… a pak přijde další ročník Pwn2Own a člověk zjistí, že jeho telefon prolomili za méně než minutu.
Proto mě zaujalo, když jsem od několika lidí ve svém okolí slyšel pozitivní reference na systém GrapheneOS, který je variantou Androidu zaměřující se na bezpečnost a soukromí, ale kde i přesto funguje téměř vše, co na Androidu od Googlu. A řekl jsem si, že ho musím taky vyzkoušet.
Hardware
Na rozdíl od LineageOS a jeho odnoží GrapheneOS podporuje pouze telefony Pixel od Googlu. Jedná se dlouhodobě o nejotevřenější zařízení s Androidem, kde jde jednoduše odemknout zavaděč. Paradoxně jsou tak telefony od Googlu nejjednodušší cestou, jak používat Android bez Googlu.
Dalším důvodem je to, že vývojáři GrapheneOS se chtějí raději zaměřit na menší množství podporovaných zařízení, ale podporovat je pořádně. U LineageOS má řada zařízení k dispozici pouze komunitní buildy často sestavované jedním člověkem. U GrapheneOS jsou všechny Pixely od verze 4 oficiálně podporovány samotným projektem. U těchto zařízení také umožňuje zpětně zamknout zavaděč, což nejenže zvyšuje bezpečnost, ale také to systému umožňuje projít kontrolami integrity systému, které některé aplikace dělají.
Já osobně jsem se rozhodl si pořídit Pixel 6a. Z druhé ruky ho lze pořídit už za tři tisíce. Přitom se pořád jedná o slušně vybavený telefon, který má ještě více než dva roky oficiální podpory a vývojáři GrapheneOS ho budou v režimu částečné podpory udržovat ještě několik let poté. Navíc se mi podařilo dostat kus, který měl minimální známky opotřebení a jen 70 cyklů baterie, která je pořád ve výborném stavu. Za tu cenu opravdu skvělý poměr cena/výkon.
Instalace
Instalace GrapheneOS je celkem jednoduchá. Nepřekvapí nikoho, kdo už někdy na telefon flashoval neoficiální ROM. Nejdříve musíte povolit odemknutí zavaděče tak, že v původním systému půjdete do Nastavení->Informace o systému a budete klepat na Číslo sestavení, dokud se neodemkne vývojářský režim. Poté v Nastavení->Systém->Pro vývojáře povolíte Odemknutí OEM.
Zařízení máte připravené k odemknutí zavaděče a nahrání nového systému. Nejdříve se musíte dostat do rozhraní zavaděče, čehož dosáhnete restartováním telefonu a držením tlačítka na ztlumení zvuku při bootování. V rozhraní zavaděče byste se měli dostat na obrazovku s červeným „Fastboot Mode“. Pak máte na výběr ze dvou možností: buď využijete webový instalátor, který ale vyžaduje nastavené pravidlo udev, nebo instalaci provedete z příkazové řádky a použijete fastboot s právy roota.
Posledním krokem instalace je opětovné uzamknutí zavaděče, což u alternativních ROM stále není úplně běžné. Poté jen restartujete telefon do nového systému.
Bezpečnostní funkce
GrapheneOS je zaměřený na bezpečnost a soukromí. Funkcí, které tyhle dva aspekty systému vylepšují, je celá řada a prorůstají celým systémem, popsat je všechny by asi vydalo na několik článků. Pokusím se tedy zmínit jen ty nejzajímavější:
- Rychlejší opravy – GrapheneOS docela agresivně sleduje vydávání Generic Kernel Image a rychle tak zahrnuje opravy v něm obsažené. Podle vývojářů tak obsahuje až stovky relevantních oprav včetně bezpečnostních, které oficiální systém pořád neobsahuje. Rychlost, s jakou vydávají pravidelné měsíční bezpečnostní opravy, je bezkonkurenční. I když projekt nepatří mezi oficiální OEM partnery a nemá tak přístup k opravám před zveřejněním, dokáže je vydávat pořád rychleji než Google v oficiálním systému pro Pixely. Např. březnový balík oprav dorazil na mobily už 3.3.
- Vypnutí přístupu k síti a senzorům – přístup k síti a datům ze senzorů jsou v Androidu povinná oprávnění, takže je standardně nemůžete žádné aplikaci odepřít. V GrapheneOS můžete. Aby to aplikace nerozbíjelo, protože s tím počítají, systém oprávnění neodepře, ale efektivně přístup znemožní. V případě sítě aplikaci řekne, že síť není momentálně dostupná, a v případě senzorů posílá nulové hodnoty. Na standardním Androidu existují aplikace, které umožňují odepřít přístup k síti, ale fungují na bázi VPN, takže zároveň s nimi nemůžete používat jinou VPN. To tady problém není.
- Prostory úložiště a kontaktů – scopes neboli prostory vám umožňují podstatně podrobněji nastavovat, k čemu má aplikace přístup. V případě úložiště si může myslet, že má přístup ke všem souborům uživatele, ale ve skutečnosti má přístup pouze do jedné vámi nastavené složky. V případě kontaktů pak nemusíte aplikaci umožnit přístup k celému seznamu kontaktů, ale udělit přístup jen ke konkrétním kontaktům nebo skupinám kontaktů.
- PIN/heslo pro smazání obsahu telefonu – můžete si nastavit PIN nebo heslo, po jehož zadání se telefon neodemkne, ale naopak se nenávratně vymaže veškerý obsah.
- Režim pouze s LTE – GrapheneOS umožňuje zapnout režim, v kterém se telefon bude připojovat k mobilní síti pouze skrze LTE, které vývojáři z dostupných technologií považují za nejbezpečnější. 2G a 3G jsou zastaralé protokoly, jejichž implementace mají řadu bezpečnostních problémů, a 5G zase vývojáři GrapheneOS nepovažují za dostatečně prověřený.
- Vylepšená ochrana USB-C portu – standardní Android nijak neomezuje spojení přes USB-C port na hardwarové úrovni, pouze zablokuje obsluhu USB na vyšší úrovni v systému. GrapheneOS jde v tomto mnohem dál a nabízí hned několik režimů. Ve výchozím stavu povoluje při zamknuté obrazovce pouze nabíjení, můžete ale přepnout do režimu, který umožňuje pouze nabíjení vždy, případně můžete USB-C port zcela vypnout.
- Automatický restart při nečinnosti – GrapheneOS se automaticky restartuje, pokud po určitou dobu nedojde k úspěšnému odemknutí obrazovky. Restartovaný telefon je odolnější proti útokům a tahle funkce dává útočníkovi podstatně kratší čas toho využít, pokud se mu telefon dostane do rukou. Výchozí hodnota je nastavená na 18 hodin.
- Posílené zabezpečení proti exploitům – vývojáři se snaží předcházet exploitům napříč celým systémem. Začíná to už zapnutými bezpečnějšími volbami při sestavování. GrapheneOS má ale také vylepšený sandboxing nebo libc a alokátor paměti upravené pro vyšší bezpečnost. Alokátor paměti jak v kernelu, tak userspace je nastavený na nulování uvolněné paměti, to z paměti odstraňuje potenciálně citlivá data hned, jak je to možné.
- Perzistentní VPN – VPN dokáže posloužit jako nástroj proti sledování toho, jak se pohybujete po Internetu, ze strany poskytovatele připojení. Pro některé může být i malý únik provozu mimo VPN problém. Proto GrapheneOS umožňuje nastavit perzistentní VPN (nejde vypnout jinak než v systémovém nastavení, nedovolí to ani aplikaci dané VPN) a blokování připojení bez VPN (dojde-li k výpadku VPN, připojení prostě není k dispozici). Standardní Android také umožňuje aplikacím obcházet VPN přes multicast. GrapheneOS přidává dodatečná pravidla pro eBPF, která tomuhle efektivně zamezují.
- Audit zařízení – projekt poskytuje aplikaci a službu, díky kterým můžete i vzdáleně ověřovat integritu softwaru a firmwaru na zařízení.
- Google Play Store and Google Play Services v izolovaném prostředí – GrapheneOS jde na kompatibilitu s aplikačním ekosystémem Googlu jinak než ostatní alternativní varianty Androidu. Místo nasazení reimplementace systémových služeb Googlu, jakou je třeba MicroG, používá původní implementaci od Googlu, ale nechá ji běžet v izolovaném prostředí s minimálním přístupem do zbytku systému, což je velký rozdíl oproti standardnímu Androidu, kde jsou tyto služby integrované do systému a mají do něj rozsáhlý přístup.
- Šifrované zálohy – GrapheneOS má integrované zálohování mobilu pomocí nástroje Seedvault, který vznikl v rámci stejného projektu. Zálohují se také aplikace včetně jejich dat. Ne všechny to podporují, ale většina dle mých zkušeností ano. Zálohovat můžete lokálně nebo do cloudu, ale vždy je záloha silně šifrovaná a dostupná pouze vám. Dá se použít i na přechod mezi mobily.
Systém a aplikace
Systém, do kterého po instalaci nabootujete, má velmi spartánskou podobu. Přispívá k tomu už výchozí vzhled, který má černé pozadí a černobílé ikony aplikací. Jinak se ale rozhraní GrapheneOS neliší od standardního Androidu. Někde má přidané vlastní nastavení, někdy se zobrazí bezpečnostní upozornění navíc, ale pokud je uživatel zvyklý na standardní Android, zorientuje se okamžitě. Dojem spartánského systému dokresluje i počet předinstalovaných aplikací, kterých je jenom dvanáct. To je záměrné, protože vývojáři nechtějí systém napěchovat příliš mnoho aplikacemi, u kterých by museli garantovat bezpečnost a integritu.

Předinstalované tak jsou jenom: App Store, Auditor, Camera, Info, Messaging, PDF Viewer a Vanadium (a dále systémové Volání, Kontakty, Kalkulačka). Všechny jsou vytvářené s důrazem na bezpečnost a soukromí. Aplikace pro kameru tak k fotkám a videím přidává minimum EXIF metadat, prohlížeč PDF otevírá dokumenty v izolovaném prostředí a Vanadium je fork Chromia s řadou bezpečnostních vylepšení. I když budete používat jiný prohlížeč, pořád se to hodí, protože používá pro zobrazování webového obsahu přímo v aplikacích.

Na správu svých aplikací a několika dalších položek jako Android Auto nebo Google Play Services GrapheneOS používá svůj „App Store“. Žádný další zdroj softwaru předinstalovaný nenajdete. V App Storu je k dispozici ještě Accrescent, což je zdroj aplikací pro Android se zaměřením na bezpečnost a soukromí. Je to jediný zdroj softwaru, který jsou vývojáři GrapheneOS ochotní takto schválit. Ten nabízí o něco více softwaru jako např. Organic Maps, Molly (fork Signalu), IronFox (fork Firefoxu), ale pořád to je zhruba jen 30 aplikací.

Já jsem doinstaloval ještě F-Droid, který tu nabídku aplikací rozšíří na stovky. Zajímavým zdrojem je Obtainium, které vám umožní instalovat aplikace přímo od zdroje. Pokud nějaký projekt zveřejňuje APK třeba na Githubu nebo Gitlabu, je možné v Obtainiu tento projekt přidat, bude vám poté hlídat nové vydání a získávat je přímo od zdroje.
Pokud ale chcete populární aplikace, musíte na Google Play. Pokud nechcete Google Play instalovat do mobilu, můžete použít Aurora Store, což je open-source klient pro Google Play. Umožňuje instalovat aplikace i bez přihlášení k účtu u Googlu, nicméně občas člověk narazí na problémy, kdy se nějaká aplikace odmítne stáhnout, protože tyhle anonymní dotazy mají očividně nějaké limity. Pokud se přihlásíte, Aurora Store funguje stejně spolehlivě jako originál.
Možností je samozřejmě použít přímo originál, tedy Google Play. Nainstalujete ho jedním kliknutím ve výchozím App Storu a GrapheneOS ho potom pouští v izolovaném prostředí s minimálním přístupem do zbytku systému. Navzdory tomu funguje téměř vše včetně modulárních komponent jako Google Play Games. Instalování aplikací ze zdrojů popsaných výše vyžaduje uživatele, který ví, co dělá. Pro toho, který to neví, nebo se tím nechce zatěžovat, je pořád nejbezpečnější instalovat aplikace z Google Pay.
Co (ne)funguje v běžném provozu
První týdny s GrapheneOS jsem vzal jako experiment, jestli je možné rozumně fungovat bez uzavřeného softwaru od Googlu běžícího v mobilu. Neměl jsem tedy v sandboxu nainstalovaný Google Play Services and Google Play Store, aplikace jsem instaloval přes Aurora Store. Kompatibilitou s aplikacemi jsem byl příjemně překvapený. Dlouho jsem neměl s ničím problém včetně aplikací pěti bank, které kontrolují integritu systému a s alternativními ROM mají většinou problém. Tady určitě hraje stěžejní roli to, že GrapheneOS umožňuje zavaděč opět zamknout, ale vývojáři museli udělat na poli kompatibility dobrou práci i jinde.
Narazil jsem až u aplikací eDoklady a Netflix. Ty totiž nepoužívají hardware attestation API v Androidu, ale Google Play Integrity API. A k tomu už jsou potřeba Google Play Services. Po jejich instalaci už fungují, jak mají. Vývojáři GrapheneOS vydali článek, kde popisují, proč si myslí, že hardware attestation API poskytuje mnohem silnější ověření integrity zařízení než Google Integrity API. Naštěstí velká většina aplikací je s tímto názorem v souladu a u té menšiny, která používá Google Integrity API, GrapheneOS projde, když jsou nainstalované Google Play Services. Existuje jen velmi krátký seznam aplikací, u kterých GrapheneOS testem integrity neprojde (najdete v článku zmiňovaném výše).

Zajímavé je, že aplikace zpravidla provádí ověření integrity jen při prvním přihlášení. Pokud k tomu jsou potřeba Google Play Services, stačí je zapnout jen na první přihlášení a pak opět vypnout. Budou pak bez problémů fungovat dál. Týká se to i zmíněných eDokladů a Netflixu.
Jako největší problém provozu GrapheneOS bez uzavřeného softwaru od Googlu se ukázaly notifikace, konkrétně push notifikace. Na ty totiž drtivá většina aplikací používá právě služby Googlu. Pokud je nemají, tak u většiny aplikací push notifikace přestanou úplně fungovat. Některé aplikace se to snaží řešit tím, že nabídnou běh na pozadí, ale to má neblahý vliv na výdrž baterie.
Malý počet open-source aplikací pak podporuje UnifiedPush a na mobilu stačí rozjet třeba Ntfy, které bude push notifikace daným aplikacím doručovat. Problém je, že se jedná o opravdu malý počet aplikací, které to umí. A člověk je pak odkázaný na různé forky populárních aplikací, aby mu push notifikace fungovaly (Molly místo Signalu, Momogram místo Telegramu apod). Používání těchto méně známých forků má svá bezpečnostní rizika a je otázkou, jestli stojí za tu trochu soukromí navíc, kdy vám chodí notifikace mimo servery Googlu.
Důležitou vlastností mobilního telefonu je pro mnoho lidí včetně mě foťák. Výrobci většinu know-how schovávají do samotné aplikace, takže pokud použijete nějakou open-source, výsledky často nejsou tak dobré. Dobrou zprávou je, že si originální aplikaci pro kamery Pixel můžete jednoduše nainstalovat z Google Play. Další dobrou zprávou je, že výchozí aplikace foťáku udělá velmi podobnou službu. Podání barev je velmi podobné, fotografie vypadají téměř identicky (minimálně na mém Pixel 6a). Jen při velkém přiblížení jde vidět, že aplikace od Googlu aplikuje agresivnější postprocessing a detaily více vyostřuje. Má také více možností, co se týče nastavení rozlišení a snímků za sekundu.
Co v GrapheneOS opravdu nefunguje, je Google Pay. To totiž vyžaduje OEM certifikaci ze strany Googlu, kterou projekt nemá a vzhledem k tomu, jak systém upravuje, asi ani nikdy mít nebude. Existují návrhy, jak kontrolou projít a podporu Google Pay zprovoznit, ale vývojáři je odmítli implementovat. Jinak s podporou bezkontaktního placení obecně nemá GrapheneOS problém, ale bank, které nabízejí vlastní řešení a nespoléhají se na Google Pay, je dnes jako šafránu. Vzhledem k tomu, že primárně platím hodinkami a Garmin Pay, pro mě toto nepředstavuje větší problém.
Více mě mrzí to, že nefunguje přihlášení k pracovnímu Google účtu v pracovním profilu. Respektive k účtu se přihlásím, ale registrace zařízení v případě naší firmy závisí na proprietárním API Googlu, které v GrapheneOS není, takže aplikace následně nedostanou přístup. Alespoň k některým lze přistupovat z prohlížeče, ale např. takový Google Meet se tomu silně brání.
Pro koho?
Kromě Google Pay a přihlášení k firemnímu účtu jsem nenarazil na žádné další věci, které potřebuju a v GrapheneOS by nešly. Systém je velmi stabilní, nevšiml jsem si žádných problémů s funkčností softwaru od vývojářů projektu. Mají rychlý a transparentní proces opravování chyb a aktualizací. Celý projekt funguje velmi profesionálně.
Nicméně bych jej asi nenainstaloval svým rodičům. Už kvůli tomu, že ve výchozím stavu je systém opravdu spartánský a člověk si musí vše doinstalovat a nastavit. Pro ně bych vybral spíš /e/OS, o kterém jsem psal před pěti lety. Ten se zaměřuje na jednoduchost a nabízí už v základu řadu uživatelsky přívětivých alternativ k aplikacím Googlu. U některých telefonů podporuje uzamknutí zavaděče taky.
Pokročilému uživateli ale dává GrapheneOS bezkonkurenční kombinaci bezpečnosti, soukromí a kontroly nad systémem. Vyloženě doporučit ho potom lze třeba novinářům, občanským aktivistům, či opozičním politikům, kteří potřebují bezpečné zařízení. A nemusí se jednat pouze o lidi ze zemí s vyloženě autoritářským režimem. Jak ukazují kauzy kolem spyware Pegasus, cílené útoky na mobilní zařízení novinářů a politických protivníků se týkaly i našich sousedů.
GrapheneOS si v tomto vede velmi dobře. Společnost Cellebrite, která se specializuje na extrakci a forenzní analýzu dat z mobilních zařízení, byla schopná loni otevřít Android libovolného výrobce. Jedinou výjimkou byl GrapheneOS.
Napsat komentář