Ako si maximálne zabezpečiť smartfón - Nethemba

BLOG

Ako si maximálne zabezpečiť smartfón

Ako si vybrať vysoko bezpečný Android telefón a najbezpečnejší Android systém

 

Úvod

Tento článok je prirodzeným pokračovaním a istým spôsobom vyvrcholení mojich starších článkov Ako si maximálne zabezpečiť laptop (na Purism Librem s Qubes OS) a Chráňte svoje dáta: Odstrihnite sa od Google, ktoré odporúčam prečítať predtým, ako sa rozhodnete zakúpiť bezpečný Android telefón a nainštalovať naň najbezpečnejšiu variantu Androidu.

Cieľom článku je teda predstaviť podľa môjho názoru jeden z najbezpečnejších dostupných Android telefónov (Google Pixel 2 a vyššie) a pravdepodobne najbezpečnejšiu verziu modifikovaného Android systému (GrapheneOS), na ktorom budú nainštalované 100% open-source dôveryhodné aplikácie z F-Droid repozitára s cieľom zabezpečiť maximálnu ochranu súkromia. Aj napriek tomu, že z hľadiska ochrany súkromia, ide zrejme o ekvivalentné riešenie ako Lineage OS, najväčšia pridaná hodnota nižšie uvedeného riešenia spočíva vo vyššej bezpečnosti a to vďaka použitiu bezpečného hardvéru telefónu a špeciálne zabezpečeného GrapheneOS.

Prečo Google telefón, ale bez Google služieb?

Google telefóny sú vysoko bezpečné

Google zamestnáva najlepších bezpečnostných expertov na svete, takže Google telefóny či iné Google produkty alebo služby sú obvykle veľmi bezpečné.  Google Pixel telefóny implementujú TEE (Trusted Execution Environment), kedy hlavný procesor a operačný Android systém sú pokladané za nedôveryhodné a teda nemôžu pristupovať k niektorým častiam RAM (“Protected Hardware Resources”), hardvérovým registrom a citlivým dátam (ako kryptografické kľúče). Naopak TEE procesor je oddelený od zvyšku systému využitím rôznych mechanizmov a má prístup k všetkým citlivým dátam a aplikáciám.

V GrapheneOS sa nachádza priamo špeciálny auditovací nástroj Auditor app, ktorý umožňuje vytvoriť tzv. atestačné prepojenie medzi tzv. Audítorom (zariadenie, ktoré vykonáva audit) a Auditovaným (zariadenie, ktoré je predmetom auditu). Použitím TEE (Trusted Execution Environment) alebo hardvérového bezpečnostného modulu (HSM) je potom možné na 100% overiť integritu daného operačného systému a prípadne odhaliť akékoľvek potenciálne zadné vrátka (“backdoors”), ktoré sa defacto nedajú skryť oproti originálnemu “stock” Android OS. Niektoré Android zariadenia (vyššie ako 9) majú implementáciu StrongBox Keymaster, ktorá umožňuje auditorskej aplikácie držať kľúče používané daným atestačným protokolom v dedikovanom bezpečnom hardvérovom module (HSM) (Pixel telefóny na to používajú Titan M) namiesto použitia TEE, čo výrazne znižuje potenciálny dopad útokov. Vďaka tomu nie je možné realizovať žiadne hardvérové útoky ako napríklad Rowhammer, Spectre, Meltdown a iné.

Problém Google nie je “security”, ale “privacy”

Problém Google služieb a produktov teda nie je ich bezpečnosť (ako som spomínal vyššie, Google zamestnáva najlepších ľudí na IT bezpečnosť), ale “privacy”, teda to, že sa vzdávate svojho súkromia v prospech služieb, ktoré Vám Google poskytuje “zadarmo” . Ak si u Google nekupujete jeho služby ako reklamu, tak ste potom vždy jeho produkt, nie zákazník. To sa týka prakticky všetkých jeho služieb, ktoré poskytuje zadarmo. Gmail by ste nemali používať nie preto, že hrozí, že ho niekto vyhackuje (je zrejme chránený lepšie ako všetky mailové servery na Slovensku – hackerské útoky na Gmail prebiehajú nonstop). Ale preto, že k všetkým vašim emailom má prístup nielen Google, ale všetky svetové štátne inštitúcie, ktoré ho o to súdnym príkazom môžu požiadať a bohužiaľ to aj často robia. Google sa snaží byť ale v zverejňovaní toho, koľkým inštitúciám tieto informácie poskytuje, transparentný (viac Google Transparency Project). Google logicky preto vaše emaily, či iné vzorce vášho správania nikdy nebude šifrovať (aj keď technicky to nie je pre neho žiadny problém), keďže predstavujú kľúčové informácie pre jeho biznis.

GrapheneOS

Chceme teda kvalitné bezpečné telefóny od Google (na Alze si dokážete svoj telefón zakúpiť úplne anonymne, ak zvolíte platbu kryptomenami) , ale bez ich špehovacej proprietárnej funkcionality. Ideálne výhradne s 100% open-source operačným systémom, knižnicami a aplikáciami, ktoré sú všetky auditovateľné.

A o tom je presne projekt GrapheneOS

Bezpečnostné prvky GrapheneOS

Jadro a knižnice:

  • Špeciálne zabezpečený kernel a libc knižnice (“hardenovaná” funkcia malloc)

  • Veľa “low-level” vylepšení “compiler toolchainu”

  • Výrazné zlepšenia SELinux politík na “sandboxing” aplikácií (a to tak, aby to negatívne nezasahovalo do používateľského rozhrania)

  • Nové “Network/Sensors” oprávnenia

  • Nové obmedzenia, keď je zariadenia “zalockované” (špeciálne sa týka USB zariadení, kamery apod)

Aplikácie:

  • Špeciálne zabezpečená verzia Chromium prehliadača “Vanadium” vytvorená pre GrapheneOS.

  • Auditor app na lokálne a vzdialené overovanie integrity (atestáciu) zariadení využitím dedikovaného hardvéru (TEE/HSM)

  • Šifrovaný backup Seedvault, ktorý umožňuje triviálnu integráciu na Nextcloud

Žiadne Google Play a iné Google služby (ako napríklad microG):

  • GrapheneOS je v tomto nekompromisný – znamená to, že v GrapheneOS pobežia akékoľvek Android aplikácie, ktoré nevyžadujú prítomnosť Google služieb alebo aplikácií

Inštalácia GrapheneOS

Ak ste niekedy inštalovali alternatívny Android firmvér, tak inštalácia GrapheneOS bude pre vás triviálna záležitosť. Detailný postup inštalácie je popísaný priamo na webe projektu.

Ja som GrapheneOS inštaloval na môj Google Pixel 4XL z laptopu, na ktorom mi beží Ubuntu 20.04LTS.

Pred inštaláciou na vašom telefóne:

  • Zapnite “developer” režim, v “Settings / About phone” kliknite veľa krát na “build number” a “developer mode” sa následne aktivuje

  • Choďte do “Settings / System / Advanced / Developer options” a zapnite “Enable OEM unlocking” a následne telefón reštartnite

Na svojom laptope:

Stiahnite si GrapheneOS pre telefón, ktorý chcete preflashovať (ak nie ste experti, tak odporúčam použiť stabilný kanál, nie beta).

Nainštalujte si nástroj na overovanie integrity samotných imidžov:

apt-get install signify-openbsd

Následne stiahnite verejný kľúč zo stránky GrapheneOS, ktorý je potrebný na overovanie pravosti samotných imidžov.

curl -O https://releases.grapheneos.org/factory.pub

Ak by ste neverili webu GraphenOS, tak tento kľúč bol publikovaný aj na @GrapheneOS oficiálnom Twitteri, či /u/GrapheneOS Reddite ako aj GitHube. Ak by sa v budúcnosti použil akýkoľvek nový kľúč, tak bude samozrejme podpísaný týmto starým.

V mojom prípade (Google Pixel 4XL):

curl -O https://releases.grapheneos.org/coral-factory-2020.10.23.04.zip
curl -O https://releases.grapheneos.org/coral-factory-2020.10.23.04.zip.sig

Cez signify-openbsd som overil, či sedí digitálny podpis:

signify-openbsd -Cqp factory.pub -x coral-factory-2020.10.23.04.zip.sig && echo verified

Ak je všetko v poriadku, tak by vám to malo vrátiť hlášku „verified“.

“fastboot” na mojom Ubuntu bol starý, takže som ho odinštaloval a nainštaloval rovno posledný:

curl -O https://dl.google.com/android/repository/platform-tools_r30.0.4-linux.zip
echo '5be24ed897c7e061ba800bfa7b9ebb4b0f8958cc062f4b2202701e02f2725891  platform-tools_r30.0.4-linux.zip' | sha256sum -c
unzip platform-tools_r30.0.4-linux.zip

nastavil cestu na inštalovanie:

export PATH="$PWD/platform-tools:$PATH"

Na svojom telefóne odblokujte bootloader cez „fastboot“ – najskôr nabootujte do rozhrania bootloadera (vypnite telefón, následne ho zapnite a držte naraz tlačidlo “Volume Down” a “Power button”):

fastboot flashing unlock

Tento príkaz musíte explicitne vpravo hore potvrdiť a následne všetko na telefóne bude zmazané.

A dostávame sa do finále – spustite samotnú flashovaciu procedúru:

unzip coral-factory-2020.10.23.04.zip
cd coral-factory-2020.10.23.04
./flash-all.sh

A trpezlivo čakajte, kým to celé nedobehne (dbajte na to, aby ste na laptope mali aspoň 2GB RAM, čo je potrebné na inštaláciu).

Následne je potrebné preflashovaný telefón opäť “zalockovať”, čo je dôležité, aby ste zapli pôvodný „trusted chain“ a plne overené bootovanie telefónu:

fastboot flashing lock

Po nabootovaní GrapheneOS môžete v telefóne voliteľne vypnúť “OEM Unlocking” a “Developer mode”.

Inštalácia bezpečných „open-source“ aplikácií

Samozrejme na svoj nový bezpečný telefón s Graphene OS si môžete nainštalovať ľubovoľné proprietárne aplikácie (vrátane Google Play), ale z hľadiska zachovania digitálneho súkromia to nedáva zmysel. Na telefón budeme preto ďalej inštalovať len overené a auditovateľné aplikácie (musia byť open-source).

Štandardný predinštalovaný prehliadač GrapheneOS je Vanadium. Ten použite na inštalovanie open-source repozitára F-Droid. Najskôr mu musíte povoliť inštalovať ďalšie aplikácie – v Settings / Apps and notifications / Advanced / Special app access / Install unknown apps po kliknutí na aplikáciu Vanadium zapnete “Allow from this source“. Toto isté musíte spraviť aj pre aplikácie F-Droid a Aurora Droid, z ktorých budete inštalovať všetky ďalšie aplikácie.

F-Droid nainštalujete jednoducho – vo Vanadium prehliadači otvoríte https://f-droid.org/F-Droid.apk (paranoikom odporúčam predtým overiť jeho PGP digitálny podpis). V F-Droide zase následne nainštalujete aplikáciu Aurora Store, ktorá predstavuje použiteľnú alternatívu ku Google Play.

Bezpečné a anonymné pripojenie do Internetu

Veľmi paranoidní používatelia zrejme odmietnu používanie GSM/3G/LTE dátových spojení kvôli potenciálnym (0-day?) zraniteľnostiam v mobilnom basebande. Pre týchto len wifi. Na Pixel telefónoch SIM slot nejde úplne vypnúť (ako to niektoré telefóny umožňujú), keď tam máte vloženú SIM kartu. Je ale možné sa spárovať s nedovolenou GSM sieťou, vďaka čomu GSM konektivita na telefóne úplne vypadne (a verím, že mobilný operátor tým pádom stratí informáciu o vašej polohe).

Menej paranoidní používatelia si môžu kúpiť anonymnú globálnu eSIM kartu (ktorú Pixel telefón od verzie 2 podporuje) anonymne za Bitcoin. Tejto možnosti som viac venoval v článku How to Achieve Mobile Anonymity During Pandemic Police State.

Všetci ale ocenia bezpečnú a kvalitnú VPN. Osobne používam ProtonVPN, ktorá je open-source a dostupná v samotnom F-Droide. V tomto open-source repozitári sa okrem iného nachádzajú open-source klienti aj iných populárnych VPN – za zmienku stojí napríklad Mullvad VPN dostupná v F-Droide. Cena tejto VPN je fixná – 5 EUR mesačne (ProtonVPN dokáže byť pri viazanosti na rok ešte lacnejšia). Veľa VPN (vrátane ProtonVPN) ide zaplatiť aj anonymne kryptomenami. Stojí za zmienku si pripomenúť, prečo v roku 2020, keď väčšina vašich spojení je už šifrovaných (obvykle využitím https protokolu) používať VPNky. V prvom rade ide o ochranu vašich metadát. Váš mobilný či internetový poskytovateľ (a sprostredkovane štát) totiž stále vidí na aké služby a kedy presne pristupujete. Ak sa chcete vyhnúť zbieraniu metadát o vašom digitálnom chovaní, tak používať VPN je nevyhnutné.

Mnoho ľudí ocení anonymné pripojenie cez Tor, v tomto prípade si nainštalujte aplikáciu Orbot dostupnú cez Guardian Project. Orbot umožňuje ako kompletnú torifikáciu vášho telefónu (ako VPN služba), tak selektívne vybrať, ktoré vaše Android aplikácie majú anonymne pristupovať do Internetu . Napríklad si pomocou klonovacej aplikácie Shelter môžete vytvoriť anonymný klon vášho obľúbeného messengera, kde sa zaregistrujete svojim anonymným mobilným číslom, ktoré si za bitcoiny anonymne kúpite napríklad cez službu hushed.com. V Orbot aplikácii si následne nastavíte, aby váš anonymný messenger (vyklonovaný cez Shelter) pristupoval do Internetu anonymne výhradne cez Tor.

Stiahnite si tiež zrejme najlepší open-source Android firewall NetGuard dostupný v F-Droide. NetGuard funguje ako VPN služba, čo znamená, že nepotrebuje root prístup na danom Androide. Filtrovacie sieťové pravidlá dokáže vynucovať na úrovni každej aplikácie. Nevýhoda je, že kedže ide o VPN službu, tak nejde skombinovať potom s ďalšími VPN službami (toto sa dá vyhackovať čiastočne použitím SOCKS5 proxy).

Filtrovanie reklamy je možné vyriešiť dvomi spôsobmi – na úrovni DNS (napríklad použitím DNS servera dns.adguard.com) alebo na aplikačnej úrovni. Osobne odporúčam druhú možnosť, kedy nemusíte tretej strane posielať žiadne informácie o vašich prezeraných a používaných adresách. V tomto prípade odporúčam nainštalovať mobilný prehliadač Bromite dostupný v F-Droide, ktorý okrem množstva zaujímavých bezpečnostných vlastností veľmi slušne blokuje nevyžiadanú reklamu.

Šifrované komunikátory

Súčasný „slovenský“ štandard je používať Signal a Threema aplikáciu. Obe už našťastie fungujú bez viazanosti na Google služby. Signal stiahnete tu (sekcia „Danger zone“, kedy je nutné overiť jeho SHA256 fingerprint). Threemu po zakúpení stiahnete tu.

Na šifrované bezpečné video hovory použite Jitsi, ktorý je dostupný v F-Droid. Vo všeobecnosti, ak vám záleží na súkromí, tak odporúčam nepoužívať akékoľvek komerčné konferenčné platformy a vždy preferovať Jitsi, ktorý zvládne rádovo desiatky simultánnych používateľov a dokážete ho prevádzkovať na vlastnom serveri.

Offline mapy

OsmAnd predstavuje najsofistikovanejšiu open-source aplikáciu na offline mapy OpenStreetMap a navigáciu. Kedysi som odporúčal aplikáciu MAPS.ME, ale OsmAnd sa za posledné roky výrazne zlepšil – aj čo sa týka novej funkčnosti aj použiteľnosti. OsmAnd je dostupný priamo v F-Droid repozitári.

Špeciálne na Slovensku sú OpenStreetMap mapy veľmi detailné a výborne sú zmapované napríklad cyklistické alebo horské chodníky.

Open-source alternatívy pre sociálne siete, YouTube

Na to, aby ste mohli používať populárne sociálne siete, tak nepotrebujete ich proprietárne aplikácie, ale môžete skúsiť ich open-source alternatívy, ktoré blokujú reklamu a neobsahujú potenciálne zadné vrátka:

Ďalšie užitočné open-source Android aplikácie

Opustite Apple/Google/Microsoft a získajte plnú kontrolu nad cloudovými službami

Ak ste si mysleli, že to bez Google, Apple, Microsoftu, čo sa týka vášho osobného/firemného kalendára, zoznamu kontaktov či inej „cloud“ funkcionality, nejde, tak budete milo prekvapený. Pred rokom som napísal dlhší článok o Nextcloude – ako sa kompletne odstrihnúť od Google služieb. Ak máte vlastný Nextcloud server alebo ste sa rozhodli nejaký používať zadarmo alebo zakúpiť, tak máte šťastie, pretože GrapheneOS jednoducho zintegrujete so svojim Nextcloudom. Najskôr si nainštalujte Nextcloud aplikáciu z F-Droidu (môžete voliteľne aj aplikácie NextcloudPasswords, Nextcloud Notes, Nextcloud Bookmarks, Nextcloud Cookbook, Nextcloud Deck, Nextcloud Talk, Nextcloud SMS, ak ich používate). Následne si nainštalujte DAVx⁵, ktorý vám umožní synchronizáciu vášho Nextcloud kalendára a zoznamu kontaktov.

Spustite aplikáciu Nextcloud klient a pripojte sa na váš Nextcloud server. Na Nextcloud serveri odporúčam zapnúť dvojfaktorovú autentifikáciu (tú mimochodom odporúčam zapnúť všade). Zvoľte „Settings“, voľbu „Sync calendar & contacts“ a prepojte samotné kalendáre. Podobne spustite aplikáciu DAVx⁵ a vytvorte si CardDAV a CalDAV účet a vyberte, ktoré kalendáre a zoznamy kontaktovať chcete synchronizovať.

Na telefóne si nainštalujte zrejme najlepší open-source kalendár Etar.

Odteraz všetky udalosti, ktoré pridáte do kalendára alebo do svojho zoznamu kontaktov sa automaticky uložia na váš Nextcloud server. Odtiaľ to dokážete mať jednoducho zosynchronizované s ďalšími Android či iPhone zariadeniami.

GrapheneOS podporuje aj zálohu do Nextcloud – zvoľte Settings / System / Backup, odpíšte si unikátny kód, ktorým sú šifrované všetky vaše zálohy (musíte ho zadať na overenie ešte raz). Ako „Backup location“ zvoľte „Nextcloud“ a vyberte adresár, kam sa má celý váš telefón zálohovať.

Záver

Prevádzkovať GrapheneOS s F-Droid/Aurora Store na Google Pixel telefóne predstavuje momentálne top riešenie z hľadiska bezpečnosti a ochrany súkromia, ktoré si dokážete plne vo vlastnej réžii skonfigurovať a prevádzkovať. Svet open-source Android aplikácii je momentálne už tak rozvinutý, že na bezpečnú komunikáciu či bezpečné prehliadanie Internetu, vám vyššie popísaná konfigurácia bude určite postačovať.