Zapisi in dokumenti iz področja prava, človekovih pravic in tehnologije.

Izračunana uspešna kolizija nad SHA-1

Zgostitveni algoritmi (ang. hash algorithms, včasih tudi hash values, hash codes, hash sums, checksums, message digests ali fingerprints) so matematični algoritmi, ki poljubno dolg niz znakov preslikajo v število fiksne dolžine. S tem zgostitveni algoritmi izračunajo tim. prstni odtis (ang. fingerprint) oz. kontrolno vsoto (ang. hash) tega niza znakov (na primer datoteke), kar je osnova za digitalni podpis oziroma za zagotovilo, da so podatki ohranili integriteto.

Zaradi njihove funkcije je pomembno, da so zgostitveni algoritmi enosmerni (iz kontrolne vsote ni mogoče nazaj izračunati originalnih podatkov) ter zlasti, da v praksi ne sme priti do kolizije. Slednje pomeni, v praksi da ne smeta obstajati dva različna niza podatkov, ki bi vrnila isto kontrolno vsoto (to je sicer odvisno tudi od tim. bitnosti kontrolne vsote).

Dobri zgostitveni algoritmi imajo tim. efekt plazu (avalanche efekt) – če se vhodni podatki malenkost spremenijo, se bo njihova kontrolna vsota spremenila drastično.

Zgostitveni algoritmi danes tvorijo osnovo varnosti na internetu. Uporabljajo se za zaščito gesel (hramba v obliki kontrolne vsote), kot pseudonaključni generator števil, pri generiranju naključnih imen datotek, za preverjanje integritete pri prenosu datotek (npr. v P2P omrežjih), za preverjanje integritete arhivskih datotek (tim. checksum), pri implementaciji digitalnega podpisa, časovnega žigosanja, overovitvi digitalnih potrdil, za digitalno podpisovanje datotek, gonilnikov ter seveda pri digitalni forenziki.

Iz vsega tega je jasno, da morajo biti algoritmi za izračun kontrolnih vsot karseda varni.

Kolizija nad MD5 v praksi

Kot rečeno je največja grožnja varnosti algoritmom za izračun kontrolnih vsot kolizija. Eden bolj odmevnih primerov kolizije je bila kolizija v algoritmu MD5. MD5, ki so ga razvili leta 1991, se je namreč v preteklosti uporabljal pri overjanju digitalnih potrdil precej razširjen pa je bil tudi pri zagotavljanju integritete podatkov v digitalni forenziki. Več o zgostitvenih algoritmih in napadih na MD5 si je mogoče prebrati na mojih prosojnicah iz leta 2012 (Zagotavljanje integritete digitalnih dokazov).

Prvo kolizijo (pravzaprav psevdo-kolizijo) v MD5 so našli leta 1993. Matematične raziskave so šle naprej in skupina raziskovalcev je leta 2004 pokazala, da je uspešen napad na MD5 na tedanji strojni opremi mogoče izvesti v eni uri. Leta 2006 je bilo to mogoče v le eni minuti.

Kot alternativa MD5 se je nato priporočala uporaba algoritma SHA-1 oziroma njegovih kasnejših izvedenk. Raziskovalci so tudi v SHA-1 leta 2005 našli način za izračun uspešne kolizije, teoretični napadi na SHA-1 pa so se nato le še izboljševali, zato je ameriški NIST leta 2011 SHA-1 upokojil.

A v praksi se algoritem danes še vedno marsikje uporablja.

Kolizija nad SHA-1 v praksi

Temu bo zdaj potrebno narediti konec. Skupina raziskovalcev iz CWI Amsterdam in Google Research je namreč te dni objavila rezultate svoje raziskave, ki je pokazala, da je SHA-1 mogoče zlomiti tudi v praksi.

Dve različni PDF datoteki z enakim SHA-1 digitalnim prstnim odtisom.

Dve različni PDF datoteki z enakim SHA-1 digitalnim prstnim odtisom.

Konkretno, raziskovalci so objavili dve PDF datoteki (prva in druga) z različno vsebino, a istim SHA-1 digitalnim podpisom.

Za izračun kolizije je sicer na običajnem enoprocesorskem računalniku potrebnih 110 let, a z uporabo 110 grafičnih procesorjev (GPU) je ta čas mogoče zmanjšati na eno leto. Z uporabo dodatnih GPU procesorjev pa seveda še na manj.

Podrobnosti o napadu so objavljene na spletni strani shattered.it, rešitev pa je uporaba novejših zgostitvenih algoritmov, na primer SHA-256 ali SHA-3.

Ker se SHA-1 marsikje še vedno uporablja pri HTTPS digitalnih potrdilih, brskalnik Google Chrome od različice 56 (izdana januarja 2017) spletne strani zaščitene z digitalnimi potrdili, ki za digitalno podpisovanje uporabljajo samo SHA-1 obravnava kot ne-varne. Brskalnik Firefox bo podobno funkcionalnost uvedel v bližnji prihodnosti. Na voljo je tudi orodje sha1collisiondetection, ki skuša zaznati kolizijski napad na SHA-1 v datotekah, in s katerim je mogoče preveriti integriteto datotek.

Velik problem pa predstavlja GIT, ki za preverjanje integritete podatkov na veliko uporablja SHA-1. Zato bi napadalec lahko teoretično postavil zlonamerno različico GIT skladišča, ki bi vsebovala programsko kodo z vgrajenimi stranskimi vrati, ta zlonamerna programska koda pa bi imela enako kontrolno vsoto kot neokužena različica.

Mimogrede, digitalno potrdilo tega spletnega mesta za digitalno podpisovanje uporablja SHA-256.

Pomembne novosti za uporabnike Signala

Tokratna posodobitev aplikacije Signal na različico 3.29.6 za uporabnike prinaša kar nekaj pomembnih novosti.

Ena najpomembnejših je testna (beta) podpora za video klice. S pomočjo Signala je odslej mogoče opravljati tudi video klice, a najpomembnejše je, da podpora za video klice vsebuje tudi nove kodeke za kompresijo zvoka, zaradi česar je zvok pri Signal klicih bistveno bolj kvaliteten kot je bil prej.

Sodobne aplikacije za zvočno komunikacijo namreč pri prenosu zvoka preko omrežja le-tega kompresirajo (stisnejo). S tem prihranijo na pasovni širini ter omogočajo komunikacijo tudi takrat, ko hitrost podatkov preko omrežja ni velika. Kompresijo zvoka izvajajo kodeki. Signal je do sedaj uporabljal Speex kodek, z vklopom beta podpore za video klice pa kompresija zvoka poteka s pomočjo Opus CBR kodeka.

Hitro testiranje je pokazalo, da je zvok pri pogovorih z uporabo Opus kodeka bistveno bolj kvaliteten. Ob dobrih omrežnih pogojih je zvok kristalno čist, ob slabših pa prihaja do bistveno manj prekinitev in zastojev pri komunikaciji. Poleg tega Signal sedaj ob vklopu video klicev beta ob vzpostavitvi in ob prekinitvi klica rahlo zapiska, tako da uporabnik točno ve kdaj se je varna zveza vzpostavila in kdaj se je prekinila.

Možnost video klicev beta sicer (še) ni privzeto vključena. Vključiti jo moramo v meniju Nastavitve – Napredno – Video klici beta (Settings – Advanced – Video calling beta). Le če imata oba uporabnika vključeno podporo za video klice beta, se bo klic vzpostavil po novem sistemu, sicer pa bo klicanje še vedno potekalo starem. Zato si morajo uporabniki, ki želijo preskusiti nove funkcionalnosti, podporo za video klice beta ročno vključiti.

Mimogrede, vklop video klicev beta ne pomeni, da se bodo sedaj vsi klici vzpostavljali v video načinu – prenos videa mora uporabnik ročno vključiti s pritiskom na ustrezno ikono. Morda ni odveč omeniti, da prenos videa seveda pomeni večjo porabo pasovne širine.

Signal klici po starem in Signal klici po novem...

Signal klici po starem in Signal klici po novem…

Nov sistem klicanja prinaša tudi nekaj sprememb v ozadju. Tako se po novem za signalizacijo ne uporablja več ZRTP protokola, pač pa se signalni podatki potrebni za vzpostavitev klica prenašajo po Signal protokolu. Iz tega razloga tudi ni več potrebno preverjanje istovetnosti šifrirnih ključev s pomočjo SAS metode, ki jo uporabniki Signala poznamo kot izpisani dve unikatni besedi tekom Signal klica, ki ju morata komunikacijska partnerja preveriti ob začetku pogovora. Po novem je torej varnost klica med dvema osebama vezana na varnost varnega kanala med tema dvema osebama. SAS avtentikacijskih besed tako ni več, kar tudi pomeni izboljšavo pri uporabniški izkušnji pri klicanju.

Uporabniki telefonov iPhone z iOS 10 pa se bodo verjetno razveselili možnosti odgovarjanja na Signal klice z enim klikom, tudi ob zaklenjenem zaslonu. To je mogoče zaradi nove funkcionalnosti iOS 10, poimenovane CallKit. Hkrati bodo sedaj Signal klici na iPhonu shranjeni tudi v sistemski zgodovini klicev, kar je za nekatere uporabnike dobrodošlo, drugim pa morda ne bo všeč, saj se zgodovina klicev shranjuje tudi v Applov iCloud.

Kakorkoli, novosti, ki jih prinaša zadnja posodobitev Signala so pomembne, saj s tem aplikacija postaja bistveno bolj uporabna pri govorni komunikaciji, za marsikoga pa bo dobrodošla tudi možnost video komunikacije.

Izboljšana kvaliteta zvoka bo gotovo dobrodošla tudi za slovensko policijo, saj je govorna komunikacija pri operativnem delu enako pomembna kot prenos sporočil.

Slovenska policija in blokade vsebin na socialnih omrežjih

13. februarja letos sta dva moška, stara 20 in 29 let, pri Krškem hudo pretepla 26-letnika, ki je kasneje umrl. Dogajanje sta s pomočjo mobilnega telefona prenašala v živo na Facebooku preko storitve Facebook Live.

Posnetek pretepanja, objavljen na Facebooku, oziroma njegovo predvajanje v živo je policiji pomagalo, da je bila o dogodku hitro obveščena in je storilca nato precej hitro izsledila in prijela. A pojavil se je problem, saj si je posnetek do odstranitve ogledalo veliko uporabnikov spleta, po nekaterih podatkih kar okrog 250 tisoč. Facebook je potreboval približno trinajst ur, da je posnetek umaknil s svoje platforme. Vmes se je posnetek viralno širil med slovenskimi uporabniki spleta. Nad tem so se nekoliko zgražali tudi nekateri slovenski mediji, ki pa so pred tem večinoma tudi sami objavili posnetek oziroma povezavo nanj na svojih spletnih straneh in s tem nekritično »pomagali« pri širjenju tega posnetka. Vse za večji doseg, seveda.
Jasno je, da takšni posnetki ne sodijo na splet, zato je razumljivo, da so novomeški kriminalisti že kmalu po dogodku na Facebook podali pobudo za odstranitev posnetka.

Dodatna pooblastila policije?

Ker je do odstranitve preteklo kar nekaj časa, je mag. Boštjan Lindav, pomočnik direktorja uprave kriminalistične policije na generalni policijski upravi, med tiskovno konferenco naslednji dan poudaril, da so pooblastila policije glede tega zelo omejena: »Poudariti želimo, da policija vsakršno nasilje kakor tudi njegovo objavo in širjenje na spletu obsoja. V zvezi z objavami nasilnih dejanj na spletu smo v preteklosti podali že več pobud za pravno ureditev, vendar smo bili pri tem vedno deležni neutemeljenih očitkov tako državnih institucij kakor tudi dela širše javnosti, da želimo uvesti cenzuro interneta. Vendar pa je ravno ob zadnjem dogodku na območju Novega mesta policija prejela več zahtev oziroma zaprosil posameznikov za blokiranje objave posnetka.«

Res je, policija si že dlje časa prizadeva, da bi dobila zakonsko pooblastilo, da lahko ponudnikom dostopa do interneta mimo sodišča odredi blokado spletnih domen.

Ker so takšni zakonski predlogi večkrat naleteli na nasprotovanje dela javnosti, policija ob podobnih priložnostih vedno rada poudari, da so bili deležni očitkov, da želijo uvesti cenzuro interneta. Hkrati pa javnosti namignejo, da so predlagana pooblastila nujna, če želimo hitro in učinkovito onemogočiti dostop do nezakonitih vsebin.

Seveda pri tem zamolčijo, da ima Slovenija že zdaj mehanizme za odstranitev ali blokado nezakonitih vsebin. Takšno odstranitev ali blokado lahko po veljavni zakonski ureditvi odredi sodišče, tudi na predlog pristojnih organov pregona. In sodišča v nujnih primerih odločajo hitro. V praksi lahko dežurni sodnik o dobro utemeljenem predlogu odloči že v nekaj urah, nato pa lahko izda celo ustno odredbo, tej pa seveda mora najpozneje v dvanajstih urah slediti tudi pisna odredba.

Izbira med možnostma

A vrnimo se k tokratnemu primeru. Za odstranitev vsebine s Facebooka sta v resnici tehnično na voljo samo dve možnosti. Prva je, da vsebino odstrani Facebook. Ta je tokrat za reakcijo potreboval trinajst ur.

Druga možnost pa je blokada celotnega Facebooka. Facebook namreč za posredovanje vsebine svojega spletišča uporablja obvezno HTTPS šifriranje. Če boste do Facebooka skušali dostopati po navadni HTTP povezavi, vas bo njihov strežnik samodejno preusmeril na šifrirano, HTTPS povezavo. Do Facebooka tako po navadni, nešifrirani povezavi sploh ni mogoče dostopati.

Facebook: preusmeritev na HTTPS.

Facebook: preusmeritev na HTTPS.

Ko vaš spletni brskalnik začne vzpostavljati povezavo s Facebookom, se med brskalnikom in strežnikom najprej vzpostavi šifrirana povezava. Šele nato pa vaš brskalnik strežniku po tej šifrirani povezavi pošlje URL naslov spletnega mesta, do katerega želi dostopati.

V praksi to pomeni, da razen Facebooka (ali nekoga, ki bi mu uspelo zlomiti ali obiti HTTP šifriranje) nihče ne more videti, katero vsebino, posnetek ali uporabniški profil na Facebooku si želite ogledati. Ob tem je seveda treba povedati, da kriptoanaliza oz. zlomljenje HTTPS povezav niti slučajno ni tako preprosto opravilo, da bi ga ponudniki dostopa do interneta ali slovenski državni organi lahko množično in v realnem času tudi izvajali.

Ponudniki dostopa do interneta torej ne bi mogli blokirati zgolj povezave do določenega posnetka ali uporabniškega profila na Facebooku. Edina možnost, ki jo ponudniki dostopa do interneta imajo, je torej blokada celotnega Facebooka.

Če policija namiguje, da bi z omenjenim zakonskim pooblastilom posnetek s Facebooka odstranili prej kot v trinajstih urah, se je treba zavedati, da za to tehnično obstaja samo ena možnost. In sicer ta, da bi policija z blokado slovenske uporabnike spleta (za določen čas) preprosto odrezala od celotnega Facebooka.

Glede na to, da bi tak drastičen ukrep zaradi »kolateralne škode« verjetno sprožil precej negodovanja in kritik policije, je precej verjetnejše, da bi policija posegla po prvi možnosti. Facebooku bi podala pobudo, naj sporno vsebino sami odstranijo. Nato pa bi vsi skupaj počakali, da Facebookov oddelek, ki se ukvarja z obravnavo spornih vsebin, reagira in vsebino odstrani.

Torej bi ravnali natanko tako, kot so zdaj.

Za odstranjevanje nezakonitih vsebin s socialnih omrežij torej policija ne potrebuje novih pooblastil. Razen seveda, če bi kdo želel blokirati socialna omrežja v celoti. To pa je ukrep, ki ga izvajajo države, v katerih družbi si Slovenija verjetno ne želi biti.

 

Članek je bil 18. februarja 2017 objavljen v Sobotni prilogi DELA pod naslovom Blokade vsebin na socialnih omrežjih.