Varnost pred vsem!

Objavljeno: 13.6.2017 | Avtor: Matej Huš | Kategorija: Fokus | Revija: Posebna 2017

Minili so časi, ko so šifriranje uporabljali samo tisti, ki so domnevno imeli kaj skriti. Danes je šifriranje podatkov pri prenosu podatkov po internetu nuja, če ne želimo, da po njih brskajo nepridipravi ter tri- in veččrkovne vladne agencije različnih držav. Zapisano je še toliko pomembneje pri orodjih za izmenjavo sporočil in pogovarjanje. Vsa podpirajo šifriranje v neki obliki, a so izvedbe in varnost različne.

Številne aplikacije ne dovoljujejo zajema zaslonske slike šifriranih pogovorov.

Še pred letom ali dvema v aplikacijah za komuniciranje šifriranje ni bilo samoumevno. Nekatere, zlasti specializirane so ga uporabljale in so to oglaševale kot svojo glavno prednost, Viber pa je šifriranje na celotni poti (end-to-end, E2E) dobil šele lani. Razkritja, kako CIA in NSA prestrezata internetni promet in aktivno prisluškujeta ter razvijata orodja za razbitje ali obvod šifriranja, so poskrbela za bistveno večje zavedanje, da moramo svojo komunikacijo varovati. Odzvali so se tudi ponudniki orodij za pošiljanje sporočil in opravljanje klicev, ki so jim dodali šifriranje.

Čeprav šifriranje na deklarativni ravni podpirajo praktično vsi, to še ne pomeni, da so vsi enako dobri. Pregled je prikazan v tabeli. Med prenosom sporočil po internetu so podatki že šifrirani, a to ne zadostuje. Dobrodošlo je tudi, če komunikacije niti ponudnik storitve ne more brati. Če nima kopij šifrirnih ključev, je imun tudi za morebitne sodne odredbe in vdore, saj preprosto nima podatkov.

Pri komunikaciji je pomembno, da smo prepričani o identiteti človeka, s katerim se pogovarjamo. Še tako dobro šifriranje je popolnoma nepomembno, če se pogovarjamo z napadalcem, in ne s tistim, s katerim se želimo. Nekatere aplikacije imajo vgrajene metode za preverjanje istovetnosti stikov in integritete komunikacijskega kanala, druge pa ne.

Še en pomemben dejavnik je poudarjena zaupnost (perfect forward secrecy). Algoritmi, ki jo uporabljajo, so odporni tudi proti kraji šifrirnih ključev, kar zadeva pretekle komunikacije. Poenostavljeno povedano, poudarjena zaupnost pomeni, da četudi nam napadalec izmakne ključ, ne more prebrati, kaj smo se pogovarjali dotlej. Vpogled bo imel le v prihodnje pogovore, dokler ključa ne obnovimo.

Na koncu je pomembno, da so vse te želene funkcije tudi pravilno implementirane. Nič ne pomagajo dobri nameni, če v kodi tičijo hrošči in ranljivosti, ki jih je mogoče izrabiti. Nekatere aplikacije odpirajo kodo za pregled in imajo ustrezno dokumentirano šifriranje. Seveda pa mora nekdo kodo dejansko pregledati, drugače odprtost bolj malo pomaga. Nekatere aplikacije so prestale neodvisen temeljit pregled (audit) kode.

Aplikacija, ki izpolnjuje vsa navedena merila, je resnično varna in primerna za komuniciranje brez prisluškovanja. Najbolj priljubljene aplikacije (Skype, Viber, WhatsApp, Facebook, iMessage) nimajo vseh kljukic. Kljub temu jih pogosto uporabljamo, ker so pač zelo priljubljene in jih ima skoraj vsak. Precej teže pa bomo našli sogovornika, ki uporablja na primer Signal. In v resnici za vse vsakdanje banalnosti, ki si jih izmenjamo, najbolj neprebojno šifriranje niti ni pomembno.

Zato si bomo najprej ogledali aplikacije, ki so bile razvite posebej z mislijo na šifriranje: Signal, Silent Phone, Telegram in Wickr. Potem pa si bomo ogledali še, kako je šifriranje urejeno v poprej omenjeni priljubljeni peterici, ki ni a priori bistveno slabša.

Signal

Signal je aplikacija izdelovalca Open Whisper Systems, ki je na voljo uporabnikom Androida in iOS. Po prenosu in namestitvi jo zaženemo in vpišemo želeno telefonsko številko. Stiki se namreč v Signalu identificirajo s telefonsko številko. To je lahko številka aparata, na katerem ga imamo nameščenega, in tedaj Signal sam prebere prejeto elektronsko sporočilo in se aktivira. Lahko pa vpišemo katero drugo številko, do katere imamo dostop, in tedaj moramo prek SMSa prejeto kodo seveda vtipkati sami.

Šifrirano pogovarjanje v Signalu

Signal izpolnjuje vse pogoje za varno sporočanje, aplikacija pa je preprosta za uporabo. Lahko jo uporabljamo kot privzet odjemalec za smse, ki seveda niso šifrirani, lahko pa tudi za šifrirano komuniciranje. Pošiljamo besedilna, slikovna, glasovna in video sporočila, prav tako lahko opravljamo tudi telefonske klice. Šifrirana je tudi lokalna zbirka, ki vsebuje sporočila, niso pa šifrirani imenik in časovni žigi sporočil. Dostop do aplikacije lahko zaklenemo tudi z geslom (pass­phrase).

Vmesnik je preprost in intuitiven, varno pa seveda komuniciramo le s stiki, ki imajo prav tako nameščen Signal. Podpira tudi skupinska sporočila in sporočila, ki po preteku nastavljenega časa nepovratno izginejo. Edini pomemben manko te aplikacije je odsotnost podpore drugim sistemom, razen Androida in iOSa.

Za šifriranje uporablja Signal Protocol, ki je bil prvikrat predstavljen v aplikaciji TextSecure, ki se je kasneje razvila v Signal. Dandanes implementacijo tega protokola uporabljajo tudi številne druge aplikacije, denimo WhatsApp, Facebook Messenger in za zdaj še nerazširjeni Google Allo. Tudi številni drugi protokoli se zgledujejo po Signalu, denimo lasten Viberjev ali pa Wirov Proteus. Signal Protocol velja za zgled dobre prakse.

Telegram

Telegram je naslednja aplikacija za šifrirano komuniciranje, ki sicer ne izpolnjuje vseh strogih meril, ima pa nekaj drugih prednosti. Glavna je seveda obstoj odjemalcev za paleto platform, in sicer Android, iOS, Windows Phone, Windows, Linux in macOS.

Nastavitve v Telegramu.

Raziskovalci so že pred meseci opozorili, da šifriranje v Telegramu ni izvedeno v skladu z najboljšimi praksami. Dodatno nelagodje povzroča koda, ki je na strani odjemalcev sicer odprta, a vsebuje zaprtokodne prevedene segmente (binary blob), koda na strežniški strani pa je lastniška in zaprta. Zaradi tega o resnični anonimnosti Telegrama ne moremo biti prepričani.

Telegram določa identiteto stika na podlagi telefonske številke, ki jo potrdimo s kodo v prejetem SMSu, mogoča pa je tudi dodatna nastavitev psevdonima za komuniciranje brez razkritja telefonske številke. Namestimo ga lahko na več naprav in sporočila beremo na katerikoli.

Na splošno ponuja Telegram enake možnosti kakor Signal in še nekaj dodatnih. Obveščevalne službe trdijo, da ga uporabljajo tudi teroristi, ker vsebuje funkcijo kanali. Gre za javne ali zasebne (dostop le s točno povezavo) kanale, na katerih je mogoče objavljati sporočila, posnetke in videe.

In ko se takole preklikamo skozi možnosti v Telegramu, najdemo še možnost Nov skrivni pogovor (New Secret Chat). Kaj pa je zdaj to? Brskanje po dokumentaciji in pogostih vprašanjih odkrije, da Telegram privzeto uporablja šifriranje sporočil od uporabnika do strežnika in potem od strežnika do uporabnika. Sporočila v strežniku so sicer šifrirana, a izdelovalec ključe pozna. To omogoča nekaj priročnih možnosti, kot je izdelava varnostnih kopij in sinhronizacija sporočil na več naprav, ni pa prav nič varneje od Facebooka.

Skrivni pogovori te težave odpravljajo. Pri teh pomenkih se sporočila šifrirajo od pošiljatelja do prejemnika (end-to-end), kar sicer pomeni, da se ne sinhronizirajo med napravami, so pa varna, kolikor je varen (neodprt) Telegramov protokol. Mimogrede, po šestih mesecih neaktivnosti vam bo Telegram zbrisal račun.

Silent Phone

Podjetje Silent Circle je poleg aplikacije za varno komunikacije Silent Phone naredilo kar celoten telefon, in sicer Blackphone, ki je izšel davnega leta 2014. Zgodba ni imela srečnega konca, saj so jih prodali zelo malo, proizvodna partnerja Silent Circle in Geeksphone pa se zaradi izgube tožita. Aplikacije Silent Phone ima svetlejšo prihodnost.

Ameriška vlada je namreč pred poldrugim letom Silent Phone certificirala kot dovolj varen za državno rabo. Za uporabo Silent Phone moramo ustvariti račun na njihovi spletni strani, to pa ni zastonj. Uporaba stane 10 dolarjev na mesec, kar je ob poplavi aplikacij, ki ponujajo brezplačno šifrirano komunikacijo in imajo celo odprto kodo, preveč.

Wickr Me

Tudi Wickr za identiteto ne uporablja telefonske številke, temveč moramo ob zagonu bodisi izbrati novo uporabniško ime in geslo bodisi se vpisati z obstoječima. Wickr je na voljo za iOS, Android, macOS, Windows in Linux. Možno je dodati tudi telefonsko številko oziroma elektronski naslov, ni pa to nujno za uporabo. Stike lahko dodamo iz imenika, če aplikaciji dovolimo dostop do njega, ali pa ročno, z vpisom njihovega uporabniškega imena.

Wickr zahteva uporabniško ime in geslo.

Potem aplikacijo uporabljamo kot vsako drugo. Pošiljamo sporočila, slike, videoposnetke in zvočne posnetke, ki jim vsem lahko nastavimo čas veljavnosti pred samouničenjem. Pravzaprav je glavni očitek, da je aplikacija nekoliko manj preprosta od, recimo, Signala, ker se moramo ukvarjati z izbiro uporabniškega imena in z geslom. To ga po drugi strani dela tudi varnejšega – saj se lahko registriramo tudi na telefonu brez kartice SIM. Drugi problem pa je število uporabnikov – teh je malo in dokler nimamo svojih prijateljev na Wickrju, nam vse šifriranje bolj malo pomaga.

Wickr je februarja letos odprl svojo kodo za neodvisen pregled na GitHubu. Res gre za kodo v poslovni plačljivi različici (Wickr Professional), a v podjetju pravijo, da bo isto kodo sčasoma dobila tudi brezplačna različica Wickr Messenger, ki jo ljudje uporabljajo.

Častne omembe

Poleg opisanih velja omeniti še FrozenChat in ChatSecure, ki sta zelo dobri aplikaciji za šifrirano komunikacijo. Obe uporabljata protokol OTR (Off the Record), ki poleg šifriranja prinaša še možnost zanikanja. Ker je sporočila po koncu pogovora preprosto mogoče ponarediti, nam nihče ne more dokazati, da smo sporočila dejansko pošiljali mi. FrozenChat je odprtokodna aplikacija, ki teče na tisoč strežnikih, a je na voljo le za Android. ChatSecure je po drugi strani na voljo le še za iOS, saj so inačico za Android opustili.

Šifriranje v priljubljenih aplikacijah

Drugi sklop aplikacij pa bomo obravnavali kar skupaj, saj ne potrebujejo posebnega opisa, kaj zmorejo. Govorimo seveda o nadvse priljubljenih programih Apple iMessage, Facebook Messenger, Skype, Viber in WhatsApp, ki so šifriranje dobili kot odgovor na povpraševanje uporabnikov in priljubljene trende.

Apple iMessage uporablja šifriranje od pošiljatelja do prejemnika (end-to-end, E2E), kar bi ob primerni implementaciji moralo biti zelo varno. Apple se je precej časa hvalil, da gre za prvo izmed priljubljenih aplikacij, ki to omogoča. Toda raziskava, ki so jo lani izvedli na Univerzi John Hopkins, je pokazala, da to ne drži. Šifriranje je Apple izvedel tako, da ni nič boljše od klasičnega TLS. Z drugimi besedami, šifriranje v iMessage so razglasili za v osnovi pokvarjeno, ker je bilo ranljivo za napade (ciphertext attack) in ni imelo poudarjene zaupnosti.

Apple je odtlej omenjene ranljivost popravil, a ena velikanska razpoka ostaja. Kot smo videli pri streljanju v San Bernardinu (Monitor 05/16, Kako je FBI ugnal Apple v kozji rog), kjer so se mučili z odklepanjem iPhona, je obvoz storitev iCloud za varnostno kopiranje. Podatke (tudi prejeta sporočila), ki jih shranimo v iCloud, Apple sicer šifrira, a z lastnimi ključi. To, kar torej shranite v iCloudu, lahko Apple s sodno odredbo prebere.

Facebookov Messenger je oktobra lani dobil šifriranje od pošiljatelja do prejemnika, a ga moramo posebej vključiti. Ko odpremo pogovor, moramo klikniti Pojdi na skrivni pogovor (Go to Secret Conversation), s čimer vzpostavimo varen kanal. Facebook zagotavlja, da tega pogovora ne more brati nihče drug, niti Facebook. Seveda to pomeni tudi, da ga ne moremo nadaljevati (ali sploh videti) na kateri drugi napravi. Šifrirane pogovore (telefoniranje ni mogoče) podpira le na telefonih z iOS ali Androidom, ne pa v drugih odjemalcih in prek spleta. Privzeto pa nobeni pogovori prek Facebooka niso šifrirani, če ga ne vključimo sami. Facebook za šifriranje uporablja Signalov protokol, v katerem ni znanih razpok.

Facebooku moramo šifriranje E2E posebej zahtevati. Barvna podoba se spremeni v črno.

Skype za šifriranje uporablja AES in TLS za hipna sporočila. Toda Skype šifrira sporočila zgolj na poti med uporabnikom in strežniki, ne pa E2E. To pomeni, da Skype kot podjetje (oz. njegov lastnik – Microsoft) lahko posluša in bere, kaj se pomenkujemo. In če lahko Skype, lahko tudi vsi drugi, ki ga v to prisilijo (denimo FBI). S tem je Skype eden zadnjih programov, ki takega šifriranja še nimajo. Precej časa mu je delal družbo Google Hangouts, a je vmes dobil naslednika z E2E (Google Duo, Allo). Sam Google Hangouts E2E šifriranja še vedno nima.

WhatsApp ima eno najtrših šifriranj med priljubljenimi aplikacijami, s katero ima težave tudi CIA. Uporablja Signalovo implementacijo, ki je za zdaj dokazano varna. Druga velika prednost je avtomatika. Facebook in Viber terjata ročen vklop šifriranja za posamezen pogovor, v WhatsAppu pa so tako šifrirani vsi pogovori in tega ne moremo izklopiti. Identiteto stika lahko preverimo tako, da kliknemo nanj in na ključavnico. To nam izpiše kodo, ki si jo lahko nekako izmenjamo s stikom. Na ta način lahko zagotovimo, da res govorimo s »pravim« sogovornikom.

So pa letos v WhatsAppu odkrili manjšo ranljivost, ki omogoča prisluškovanje vnaprej. Whats­App lahko uporabnika prisili v generacijo novih šifrirnih ključev. Aplikacija nam pokaže obvestilo, da so se ključi prejemnika spremenili, potem pa znova pošlje vsa sporočila, ki še niso bila dostavljena (starih ne). V praksi je namen tega, da se sporočila ne izgubijo, če si prejemnik spet namesti WhatsApp, ker je na primer zamenjal telefon ali kartico SIM. V teoriji pa to WhatsAppu omogoča, da po sodni odredbi začne prisluškovati pogovorom za naprej, nikakor pa ne za nazaj. Gre torej za zavestno odstopanje od stoodstotne varnosti, kjer so dali prednost uporabnosti.

Viber je šifriranje od pošiljatelja do prejemnika dobil lani aprila, zatem ko je to uvedla konkurenca, tu mislimo zlasti na WhatsApp. Toda do Viberjeve implementacije so bili strokovnjaki precej bolj kritični, tudi zato, ker je Viber ni popolnoma razkril. Sprva se je govorilo celo, da Viber uporablja stari in ne-varni MD5, a so to zanikali. Viber uporablja isto logiko kakor Signal, a je vso kodo napisal na novo in je zato zaprtokodna. To pomeni, da moramo Viberju verjeti na besedo. Tu ne mislimo, da Viber laže, temveč moramo verjeti, da niso naredili kakšne napake ali pridelali kakšnega hrošča, zaradi česar bi bilo šifriranje zlomljivo.

Če želimo uporabiti šifriranje, moramo v Viberju na iOS, Androidu ali Windows 10 klikniti Nov skrivni pogovor (New Secret Chat). Barvna preobleka bo iz vijolične postala črna, pogovor pa bo imel narisano ključavnico. To pomeni, da je pogovor šifriran, torej ga ne more brati nihče razen obeh naprav, med katerima poteka (tudi mi sami z Viberjem na drugi napravi, razen če je istočasno v internetu in se E2E izvaja vzporedno z dvema ključema). Viber v varnem načinu omogoča nastavitev štoparice (timer), kdaj se poslano sporočilo uniči, opozorila ob zajemu zaslonske slike in zaščito pred posredovanjem. Pošiljamo lahko vse vrste sporočil in opravljamo klice. Seveda morata za šifrirano komunikacijo oba stika uporabljati dovolj sodobno inačico aplikacije, drugače nas Viber na to opozori. To pomeni, da so skupinski pogovori lahko šifrirani le, če vsi sodelujoči uporabljajo Viber 6.0 ali novejši. Viber omogoča tudi preverjanje istovetnosti stikov. To storimo tako, da kliknemo ime stika, izberemo ustrezno funkcijo in ga pokličemo. Potem drug drugemu preberemo kodo, ki jo izpiše Viber, s čimer se prepričamo, da gre res za pravega človeka, kar potrdimo v aplikaciji.

Pazite na naprave

Vse šifriranje in vsi neprebojni protokoli nam popolnoma nič ne pomagajo, če dobimo nesnago v svoj računalnik ali telefon. V resnici je to tudi pot, ki jo ubirata CIA in NSA, verjetno pa še kdo drug. Če šifriranja ne morejo zlomiti, ga pa lahko poizkusijo obiti. Zato razvijajo zlonamerne programe, ki se ugnezdijo v naše naprave in komunikacijo posnamejo neposredno na njih, še preden se ima možnost zašifrirati.

Zelo veliko aplikacij podpira šifriranje od pošiljatelja do prejemnika, da do vsebine ne more niti ponudnik ali policija. Žalostne izjeme so Skype, BlackBerry Messenger, Google Hangouts, Snapchat in Yahoo Messenger, ki se jim je bolje ogniti.

Zlasti Signal pa je aplikacija, ki omogoča resnično anonimno komuniciranje (glej okvir). A dokler ne počnete nič nezakonitega, bo čisto vsaka zadostovala.

Kako komunicirati popolnoma anonimno

plikacije za anonimno komuniciranje so nerešljiv problem tudi za organizacije, kot sta NSA in CIA. Že leta 2012 je bil RedPhone, iz katerega se je kasneje razvil Signal, pretrd oreh za NSA. Zdaj ni nič drugače. Ko je FBI lani izročil sodno odredbo Whisper Systems, naj mu razkrije vse podatke o dveh uporabnikih Signala, je FBI dobil točno dva podatka: datum registracije računa pri Signalu in čas zadnje povezave s Signalovimi strežniki. Drugih podatkov ni bilo.

Ali je mogoče Signal uporabljati, ne da bi razkrili svojo telefonsko številko? Čeprav je mogoče pridobiti kakšno predplačniško številko, v resnici nakup teh kartic ni tako anonimen, kot bi si mislili. Matej Kovačič je v blogu Pravokator pokazal, da gre tudi brez številke.

Potrebujemo zgolj dostop do neke javne telefonske številke, ki je ni mogoče povezati z nami. To je lahko kar telefonska govorilnica. Signal bo poskusil nanjo poslati sms, kar seveda ne bo uspelo. Zato bo ponudil klic na to številko. Oglasimo se in sintetiziran glas nam bo povedal kodo, ki jo vpišemo v aplikacijo. S tem smo Signal registrirali na telefonsko številko telefonske govorilnice.

Seveda moramo poskrbeti, da v pametnem telefonu nimamo vstavljene kartice SIM, ko registriramo Signal na številko telefonske govorilnice. Najbolje je, da smo v internet povezani na neki javni točki Wi-Fi. Kdor želi pri nadaljnji komunikaciji zakriti še naslov IP, pa lahko v odklenjen (root) telefon namesti, recimo, Orbot (če ima Android), ki ves internetni promet preusmeri skozi omrežje Tor. Zaradi počasnosti resda ne bomo mogli klicati, bomo pa pošiljali sporočila tako anonimno, da bosta NSA in CIA zgolj nemočno opazovala, kaj šele slovenska policija.

Pri tem seveda izdatno pomaga, če nas prejemniki sporočil nimajo shranjene v imeniku pod pravim imenom ..

Šifriranje in terorizem

Znano je, da teroristi uporabljajo aplikacije za šifrirano komuniciranje. Islamska država je na primer znana po uporabi aplikacije Telegram, v preteklosti pa smo že videli aretacije teroristov, ki so jih odkrili zaradi uporabe WhatsAppa, preden je ta v celoti podpiral šifriranje.

Toda to ne pomeni, da bi morali šifriranje prepovedati. Gre za tehnologijo, ki jo je mogoče kot vsako drugo uporabiti za dobro ali slabo. Šifriranje omogoča žvižgačem, da razkrivajo nepravilnosti, in komunikacijo ljudem v nedemokratičnih državah, kjer jim zaradi nazorov grozijo zapor, mučenje ali smrt. Prepovedati šifriranje bi bilo podobno, kot če bi prepovedali uporabo gnojil, letal ali tovornjakov, ker so tudi te teroristi že uporabljali v napadih.

Tabela [PDF]

Naroči se na redna tedenska ali mesečna obvestila o novih prispevkih na naši spletni strani!
Prijava

ph

Komentirajo lahko le prijavljeni uporabniki