sifrovanie-android-ios

Šifrovanie komunikácie na Android a iOS

V dobe, keď väčšina ľudí využíva na komunikáciu možnosti, ktoré im prináša smartfón s mobilným internetom, je na mieste otázka, ktorú si skôr či neskôr položí asi každý používateľ. Nie, nemyslíme „Dá sa to lacnejšie?“, ale tú druhú „Do akej miery je moja komunikácia bezpečná?“ Pozrime sa preto najprv na to aká je situácia s bezpečnosťou pri tých najznámejších aplikáciách, a následne si ukážeme ako komunikovať bezpečnejšie.

Otázky, ktoré si ohľadne bezpečnosti môžeme položiť, sú nasledovné:

  • Sú moje dáta na mobilnom zariadení bezpečne uchovávané?
  • Sú bezpečne prenášané cez Internet?
  • Kto je schopný moju komunikáciu sledovať?
  • Môže ju niekto pozmeňovať?
  • Je ten, s kým komunikujem naozaj ten, za koho ho považujem?
  • Som v prípade kompromitácie schopný komunikáciu poprieť?

Populárne aplikácie a ilúzia bezpečnosti Populárne služby sú zo svojej podstaty zamerané na používateľský dojem a prívetivosť a nie na bezpečnosť samotnú. Z toho vyplýva aj ich zameranie sa prevažne na prvé dve otázky, aj to poväčšinou dosť laxne. Pri prenose správ sa častokrát spoliehajú iba na SSL/TLS ako jediný spôsob zabezpečenia dôvernosti prenášaných správ, čo však nepredstavuje reálnu end-to-end dôvernosť prenášaných správ medzi koncovými používateľmi.

Pozrime sa teda na stav bezpečnosti dvoch najpoužívanejších z nich a ich histórie bezpečnostných incidentov.

Snapchat

Celkový prístup autorov aplikácie asi najlepšie vystihuje ich reakcia na januárové zverejnenie databázy 4.6 milióna používateľských mien a telefónnych čisel o ktorom spoločnosť vedela už dlhší čas, avšak ako uviedla vo svojom vyhlásení nejedná sa o nič závažné a v podstate sa nejedná o chybu ale vylepšenie (It’s not a bug, it’s a feature!)

Celý princíp fungovania aplikácie je založený na fakte že správa ktorú obdržite (údajne) nieje ukladaná na serveroch prevádzkovateľa a po prečítaní príjemcom sa sama zničí za 10 sekúnd. Netrvalo dlho a výrobca pridal do popisu svojej aplikácie nasledovné varovanie: Please note: even though Snaps, Chats, and Stories are deleted from our servers after they expire, we cannot prevent recipient(s) from capturing and saving the message by taking a screenshot or using an image capture device.

Dôvod je aj technicky menej zdatným používateľom jasný už na prvý pohľad. Ak si viem niečo pozrieť, viem si to aj uložiť. Ako prvé prišli používatelia na jednoduchý trik s uložením snímky obrazovky (O ktorom teraz aplikácia síce notifikuje odosielateľa, ale zabrániť mu nedokáže). Nasledovali „pomocné aplikácie“ ktoré pri zobrazovaní obrázkov rovno ukladali aj ich kópiu. Autori však očividne zabudli na fakt že samotné zmazanie súboru na disku súbor v skutočnosti naozaj neodstráni, odstráni sa iba referencia naň. Aby to bolo ešte horšie, aplikácia v skutočnosti súbory ani priamo nemaže ale iba ich skryje a spolieha sa proces čistenia dočasnej pamäte.

Ďalším krokom autorov aplikácie bolo implementovanie šifrovania, pre podporenie ilúzie o bezpečnosti. Pre čitateľov orientujúcich sa v bezpečnosti a kryptografii môžeme celú situáciu popísať jednoducho : AES-128-ECB s kľúčom zakomponovaným v aplikácii.

Pre čitateľov bez znalostí kryptografie situáciu skúsime demonštrovať na príkladoch. Použitie šifry v ECB móde na takýto druh obsahu je veľmi zlou voľbou ktorú žiaľ začiatočníci bez znalostí kryptografie robia často. Šifrované dáta pri použití tohto módu totižto obsahujú vzory, vďaka ktorým je aj v šifrovanej podobe ľahko identifikovateľný obsah. Na obrázku nižšie môžete vidieť (zľava doprava) pôvodný obrázok, obrázok zašifrovaný v ECB móde a obrázok šifrovaný iným módom (CBC).

sifrovaniesifrovaniesifrovanie

Tento fakt poukazuje na neodbornosť autorov, nepredstavuje jadro problému. Tým je použitie symetrickej šifry AES, s kľúčom zakomponovaným v aplikácii, na zabezpečenie vašich dát a to nielen pri ukladaní, ale aj pri prenose. Problém spočíva v tom že na to aby vedeli obe strany správu dešifrovať musia vedieť kľúč. Z tohto dôvodu je kľúč zakomponovaný v aplikácii a všeobecne známy všetkým používateľom aj prevádzkovateľovi. Jeho aktuálna hodnota je M02cnQ51Ji97vwT4 . Je to ako keby ste si list zašifrovali heslom a každému ho na požiadanie povedali a napísali ho aj na obálku. Ak ste si teraz položili otázku „Aký to má teda význam?“ , odpoveď je jasná – žiadny. Jediný dôvod je podpora tvrdenia „Vaše dáta sú šifrované“, žiaľ iba na oko.

Vaše „bezpečne uložené“ dáta sú teda jednoducho dešifrovateľné nasledovným kratučkým skriptom.

require 'openssl'
ARGV.each do|a, index|
    data = File.open(a, 'r:ASCII-8BIT').read
    c = OpenSSL::Cipher.new('AES-128-ECB')
    c.decrypt
    c.key = 'M02cnQ51Ji97vwT4'
    o = ''.force_encoding('ASCII-8BIT')
    data.bytes.each_slice(16) { |s| o += c.update(s.map(&:chr).join) }
    o += c.final
    File.open('decyphered_' + a , 'w') { |f| f.write(o) }
end

.

WhatsApp

Ak ste používateľom aplikácie WhatsApp a myslíte si že ste na tom lepšie, máme pre vás veľmi zlú správu. Ste na tom rovnako ako používatelia Snapchat alebo iných „trendy“ aplikácii. WhatsApp totižto podobne ako Snapchat používa AES-192-ECB s kľúčom zakomponovaným do aplikácie. Hoci taktiež môžete použiť krátky skriptík na dešifrovanie vašich správ, dá sa to aj jednoducho z príkazového riadku pomocou programu openssl:

openssl aes-192-ecb -d -in msgstore.db.crypt -out msgstore.db \<br />-K 346a23652a46392b4d73257c67317e352e3372482177652c

Pre používateľov Androidu je taktiež dôležité si uvedomiť, že zlovoľné aplikácie s dostatočnými právami (ktoré im väčšinou používatelia ľahkovážne udelia) môžu čítať vaše správy a jednoducho ich dešifrovať.

Je až neuveriteľné koľko chýb sa dá urobiť v tak jednoduchej aplikácii ako je WhatsApp, a ako ľahkovážne sa dá pristupovať k bezpečnosti a súkromiu svojich používateľov. Smutná história bezpečnostných incidentov a prešľapov sa pritom s WhatsApp tiahne už od jej začiatku a vo veľkom počte, a s veľkou pravdepodobnosťou bude ešte dlho pokračovať aj pod taktovkou nového vlastníka, spoločnosti Facebook.

Dodatok: Minulý týžďeň spoločnosť WhatsApp oznámila rozhodnutie o integrovaní end-to-end šifrovania, založeného na šifrovaní aplikácie TextSecure, do svojej aplikácie. Hoci mnohí tento krok vítajú pozitívne, už teraz sa ozývajú hlasy vyzývajúce na opatrnosť. Či už z dôvodu možnej chybnej implementácie alebo priamej integrácii zadných vrátok, napríklad vzhľadom na Sekciu 215 zákona US Patriot Act .

Bezpečnejšie alternatívy

Nižšie uvedené aplikácie bezpečnejšie alternatívy k populárnym aplikáciam. Využívajú prostriedky kryptografie na zabezpečenie takzvaného end-to-end šifrovania. Jedná sa o systém kedy sú šifrovacie kľúče plne pod kontrolou vlastníka zariadenia a nie sú známe nikomu inému. Vzhľadom na tento systém nie je možné správy posielané medzi dvoma (alebo viacerými) používateľmi dešifrovať nikým iným ako prijímateľom. Obsah správ nepozná ani sám prevádzkovateľ služby. Taktiež vzhľadom na spôsob výmeny a overovania kľúčov je zaručená identita odosielateľa a prijímateľa správ.

TextSecure

[ android | iOS | homepage | cena: zdarma ]

TextSecure sa integruje do vášho telefónu ako alternatívny SMS klient a ponúka vám možnosť šifrovať nielen vaše SMS správy ale posielať aj „dátové“ správy. Ak však chcete nadalej používať svoj pôvodný SMS klient, môžete, v takom prípade môžete na bezpečné správy používať TextSecure a na SMS pôvodnú. Podporuje skupinové konverzácie, aj posielanie obrázkov. Jej inštalácia aj používanie je jednoduché aj pre laikov. Po jej inštalácii aplikácia sama deteguje (na základe napárovania identity s telefónnym číslom) ktorým používateľom môže zasieľat šifrované správy ako SMS alebo dátové správy. Používatelia CyanogenMod taktiež ocenia natívnu podporu. Ďalšou výhodou je jej otvorený kód, dostupný na Github-e, ako aj detailne popísaný kumunikačný protokol, podobný OTR. Popis protokolu taktiež zahŕňa popis spôsobu lokálneho šifrovania správ. Aktuálne autori pracujú aj na TextSecure rozšírení pre prehliadač Chrome.

Medzi negatíva aktuálnej verzie treba spomenúť používateľsky nie práve prívetivý spôsob overovania kľúčov používateľmi, a momentálna absencia možnosti zmazať konkrétny kľúč z databázy identít. Taktiež nepotešíme používateľov iných platforiem ako Android, momentálne nie sú podporované. Drobnou nevýhodou je naviazanie na telefónne číslo – čo sťažuje používanie napríklad na tabletoch bez SIM karty.

Threema

[ android | iOS | homepage | cena: 1,60 Eur, CHF 2.00 / 0.0038 BTC ]

Theema, hoci nieje zadarmo, je pravdepodobne najpopulárnejšou aplikáciou našej kolekcie. Výhodou je možnosť zakúpiť si Android verziu aplikácie priamo od výrobcu, ako aj možnosť platiť prostredníctvom Bitcoinu.

Oproti TextSecure aplikácia prináša lepšie overovanie kontaktov, prostredníctvom QR kódu pri osobnom stretnutí. Taktiež nevyžaduje spárovanie kontaktu s telefónnym číslom, aj keď túto možnosť podporuje ako pre telefónne čísla tak aj pre e-maily. V zozname kontaktov vám aplikácia zobrazí ktorý používateľov z vašeho telefónneho zoznamu ktorý zverejnili svoje telefónne číslo, prípadne e-mail. Ďalších používateľov si môžete pri osobnom stretnutí jednoducho pridať výmenou ich verejných kľúčov tak, že oskenujete QR kód z ich telefónu.

Aplikácia žiaľ umožňuje zasielateť iba dátové správy a nepodporuje SMS, čo je však len malým nedostatkom. Podporované je samozrejme posielanie obrázkov, hlasových správ, videa (aj keď iba do veľkosti 20MB, čo je na tretie tisícročie už naozaj málo) aj polohy. Hoci sa jedná o proprietárnu aplikáciu popis implementácie šifrovanie nájdete tu. Vzhľadom na svoju popularitu je aplikácia často podrobovaná auditom z radov dobrovoľníkov ale aj bezpečnostných firiem.

ChatSecure

[ android | iOS | homepage | cena: zdarma ]

ChatSecure je aplikácia donedávna známa ako GibberBot. Jedná sa o univerzálny klient ktorý vám umožní komunikovať prostredníctvom veľkého množstva protokolov vrátane Facebook Chat, Google Talk, Hangouts, Jabber, Dukgo atď. Môžete tak komunikovať s vašimi priateľmi medzi rôznymi bez rozdielu druhu zariadenia alebo platformy.

Dôvod prečo ho uvádzame v našom zozname je jeho natívna podpora Off-The-Record (OTR) šifrovania. Nevýhodou Off-The-Record šifrovania je to, že na začatie konverzácie musia byť obidve strany naraz online.

RedPhone

[ android | iOS | homepage | cena: zdarma ]

Ak radšej telefonujete než píšete, istotne uvítate aplikáciu RedPhone, ktorá vám poskytne možnosti end-to-end šifrovania pre hovory. RedPhone je vyvíjaný rovnakou spoločnosťou ako TextSecure, je preto samozrejmé, že je voľne šíriteľný a je dostupný jeho zdrojový kód. Aplikácia pre hovory využíva dáta nie samotné hlasové služby operátora. Podporovaný je ako mobilný internet tak aj wifi. Pri použití 3G je hovor bezproblémový a plynulý, pri nižších prenosových rýchlostiach sa môže vyskytnúť mierne sekanie hlasu. Aplikácia sa jednoducho integruje v telefóne s vašim telefónnym zoznamom a ak voláte inému používateľovi RedPhone, dá vám možnosť uskutočniť klasický hovor prostredníctvom hlasových služieb alebo šifrovaný hovor prostredníctvom RedPhone. Pri prichádzajúcom hovore sa vám zobrazí na obrazovke dvojica slov, ktorá slúži na overenie identity volajúceho. Ten by vám mal po nadviazaní hovoru prečítať zo svojej obrazovky identickú dvojicu slov. Inštalácia je podobne ako pro TextSecure jednoduchá aj pre laika, po nainštalovaní sa aplikácia jednoducho spáruje s vaším telefónnym číslom a nevyžaduje žiadnu dodatočnú konfiguráciu.

Po dlhej dobe sa konečne dočkali aj používatelia iOS, keďže ani nie pred mesiacom bola vydaná verzia aplikácie aj pre túto platformu. Nenájdete ho však pod názvom RedPhone ako pre android, ale pod novým názvom Signal. Pre nový názov sa autori rozhodli vzhľadom na svoj zámer zlúčiť obe aplikácie, RedPhone aj TextSecure do jednej aplikácie. Verzia Signal pre iOS tak už snáď čoskoro bude aktualizovaná aj o funkcionalitu TextSecure a následne dôjde k avizovanému zlúčeniu aj pre android verziu.

Nevýhodou podobne ako pri TextSecure je spárovanie vašej identity s telefónnym číslom, čo zvyšuje používateľskú prívetivosť, ale znemožňuje použitie aplikácie napríklad na tabletoch bez SIM karty.

Záver

V ére po zverejnení dokumentov, ktoré vyniesol z NSA Edward Snowden je už každému jasné, že kto chce na Internete alebo aj v mobilnej sieti či v banke súkromie, musí pre to niečo urobiť. Ak máte Android, odporúčame vám nainštalovať si TextSecure a RedPhone – sú to príjemné aplikácie, ktorých použitie vás nič nestojí a šifrujete aspoň s ľuďmi, ktoré tieto aplikácie majú.

Ak vám na súkromí aspoň trochu záleží a prípadne nemáte iPhone alebo iné iOS zariadenie alebo komunikujete často s ľuďmi, ktorí majú iba takéto zariadenia, porozmýšľajte, či vám nestoja necelé dve eurá za zvýšenie vášho súkromia.

My v Citadelo si neposielame nešifrovane ani nákupný zoznam do potravín s partnerkami. Prečo to robíme? Pretože máme právo na súkromie. A toto právo máte aj vy!

About the author

Citadelo
Citadelo je dom plný etických hackerov na vašej strane. Pomáhame otestovať ich informačnú bezpečnosť. Podrobte svoje IT prostredie výzve a odhaľte, do akej miery sú vaše citlivé dáta chránené.
Zobraziť viac od autora

Related posts

Citadelo Security Evening - jeseň 2017

Blog | | Citadelo
Hackerské tipy, odhalenie zraniteľnosti s medzinárodným dopadom a ako ukradnúť milióny. Nie, to nie sú názvy filmov, ale témy prednášok, ktoré odzneli na Citadelo Security Evening (CSE)
Zobraziť

WPA2 prelomená. Viete ako ochrániť svoje dáta?

Blog | | Citadelo
Bezpečnostný analytik Mathy Vanhoef zverejnil širokej verejnosti vážnu bezpečnostnú chybu vo WPA2 protokole. WPA2 protokol sa bežne používa na šifrovanie komunikácie pri použití Wi-Fi, jeho predchodcovia sú WPA a WEP.
Zobraziť

Odhalili sme zraniteľnosť CMS Made Simple

Blog | | Citadelo
CMS Made Simple je voľne dostupný, open source CMS. Pozreli sme sa bližšie na zraniteľnosť CMS Made Simple a o výsledok sme sa s vami podelili.
Zobraziť

Úspešne sme absolvovali certifikáciu OSCP

Blog | | Citadelo
OSCP je skúška, ktorá preverí teoretické aj praktické znalosti. Narozdiel od iných skúšok, OSCP a jej úspešné absolvovanie hovorí o určitej znalosti držitela certifikátu.
Zobraziť