Objavljeno:

Šifriranje SMS sporočil (mala šola informacijske varnosti, 12. del)

V prejšnjem delu smo si pogledali kako je na računalniku in mobilnem telefonu mogoče šifrirati tim. hipna sporočila (IM – ang. instant mesaging), tokrat pa si bomo ogledali kako v mobilnem omrežju pošiljati šifrirana SMS sporočila. En ali drug pristop ima sicer različne prednosti in slabosti, zato je včasih bolje uporabiti komuniciranje preko hipnih sporočil, včasih pa komunikacijo preko SMS sporočil.

Glavna prednost uporabe hipnih sporočil je, da z njihovo pomočjo lahko pošiljamo sporočila tudi med mobilnim telefonom in računalnikom, poleg tega je z njimi mogoče komunicirati veliko bolj prikrito kot v primeru komunikacije z SMS sporočili (ob uporabi Tor omrežja oz. mobilne aplikacije Orbot). Vendar pa za to potrebujemo stalno internetno (podatkovno) povezavo (zaradi česar je tudi poraba energije večja), uporabiti pa je potrebno tudi ustrezno infrastrukturo (XMMP strežnik preko katerega poteka posredovanje IM sporočil), vsi uporabniki, ki želijo med seboj komunicirati na tak način pa morajo biti registrirani in prijavljeni na dani XMMP strežnik.

Po drugi strani pa za pošiljanje SMS sporočil ni potrebna kakšna posebna infrastruktura, saj pošiljanje in sprejemanje SMS sporočil podpirajo vsi mobilni telefoni (za pošiljanje in sprejemanje šifriranih SMS sporočil pa je seveda potrebna ustrezna aplikacija). Komuniciranje preko SMS sporočil je tudi veliko bolj robustno, saj ni potrebno, da je uporabnik mobilnega telefona v času pošiljanja prijavljen v omrežje, pač pa ga poslana SMS sporočila v primeru nedosegljivosti nekaj časa počakajo in so mu dostavljena ko se ponovno prijavi v omrežje. Pošiljanje SMS sporočil pa seveda deluje tudi preko 2G omrežja oziroma (ravno zaradi prej omenjene robustnosti) na področjih, ki so slabo pokrita z GSM signalom.

SMS sporočila sicer obstajajo že od leta 1985, ko so bila definirana v GSM standardu, v osnovi omogočajo prenos do 160 znakov na sporočilo, vendar se je tehnologija kasneje razširila in danes z MMS sporočili lahko prenašamo tudi multimedijske elemente. Žal pa se tehnologija SMS sporočil v varnostnem smislu ni kaj dosti nadgrajevala, zato je SMS sporočila v 2G omrežju v primeru neustrezne zaščite omrežja (šifriranje z algoritmom A5/1 ali slabšim) mogoče razmeroma enostavno prestrezati, o čemer smo že podrobneje pisali. To je mogoče tudi v 3G ali 4G omrežjih – le da mora napadalec v tem primeru uporabiti motenje 3G ali LTE signala, mobilni aparat pa nato samodejno preklopi na 2G omrežje, kjer je prestrezanje z razmeroma ceneno opremo dokaj enostavno. V nadaljevanju si bomo zato pogledali kako SMS sporočila šifrirati.

Primer prestreženega SMS sporočila

Primer prestreženega SMS sporočila (za prestrezanje je bila uporabljena Osmocom oprema).

Šifriranje SMS sporočil z aplikacijo TextSecure

Za šifriranje SMS sporočil je seveda potrebno uporabiti ustrezno aplikacijo, ki jo morata imeti oba komunikacijska partnerja. Za mobilne telefone je na voljo več takšnih aplikacij, nekatere so brezplačne, nekatere plačljive, med bolj znanimi in zanesljivimi pa je aplikacija Text Secure (ki je bila varnostno revidirana tudi s strani razvijalcev The Guardian Project-a, ki se ukvarja z razvojem varnostnih aplikacij za Androidne mobilne telefone). Preiskusili smo tudi odprtokodno in brezplačno aplikacijo Gentian, ki je plod slovenskega znanja, vendar iz strani uporabniške prijaznosti žal precej zaostaja za Text Secure (treba pa je priznati, da ima zelo dober varnostni model).

Pošiljanje šifriranih SMS sporočil s TextSecure

Pošiljanje šifriranih SMS sporočil s TextSecure.

Aplikacija Text Secure je brezplačna in odprtokodna, na voljo pa samo za operacijski sistem Android (različica 2.2 in kasnejše). Ob prvem zagonu je potrebno nastaviti geslo za dostop do šifrirnih ključev uporabljenih za šifriranje SMS sporočil in dostop do šifrirane shrambe SMS sporočil na telefonu. Text Secure namreč vsa SMS sporočila shranjena na mobilnem telefonu shrani v posebno šifrirano shrambo, kjer so brez gesla nedostopna (do njihove vsebine ni mogoče dostopati niti s pomočjo forenzične analize – nešifrirani pa ostanejo prometni podatki (pošiljatelj oz. prejemnik), kar pa v resnici ni tako velik problem, saj se ti podatki tako ali tako beležijo v okviru hrambe prometih podatkov). Ker bi bilo razmeroma nepraktično vsakič ko bi hoteli prebrati ali poslati SMS sporočilo ponovno vpisovati geslo, ga Text Secure shrani v predpomnilnik za čas svojega delovanja (nastavimo lahko tudi za določeno časovno obdobje). Če geslo pozabimo, SMS sporočila v shrambi niso več dostopna.

Vsebina prestreženih SMS sporočil

Vsebina prestreženih SMS sporočil šifriranih z aplikacijo Text Secure.

Text Secure nato v svojo šifrirano shrambo prenese vsa obstoječa SMS sporočila in ko na mobilni telefon prispe novo SMS sporočilo, ga Text Secure samodejno “prevzame” in prikaže. Na ta način torej nadomesti standardno androidno aplikacijo za delo z SMS sporočili.

Verifikacija šifrirnih ključev

Pri kriptografiji javnih ključev ima vsak od komunikacijskih udeležencev svoj par ključev – javnega in zasebnega. Šifriranje sporočila šifriranje poteka s pomočjo zasebnega ključa pošiljatelja in javnega ključa prejemnika, dešifriranje sporočila pa je mogoče z javnim ključem pošiljatelja in  zasebnim ključem prejemnika. Pošiljatelj in prejemnik si morata zato predhodno izmenjati svoja javna šifrirna ključa (zasebna ključa pa ohranita vsak zase).

Zelo pomemben del vsake izmenjave šifriranih sporočil, ki temelji na kriptografiji javnih ključev, je torej izmenjava šifrirnih ključev. Ker le-ta pogosto poteka preko nezavarovanega kanala, je zelo pomembno, da oba komunikacijska partnerja šifrirne ključe verificirata oz. izvedeta avtentikacijo (overitev) imetnikov (javnih) ključev. S tem namreč preprečita napad s posrednikom (tim. man-in-the-middle napad), kjer bi se napadalec enemu in drugemu komunikacijskemu partnerju lažno predstavljal in na ta način izvajal prestrezanje njunih komunikacij

Napad s posrednikom

Napad s posrednikom.

Povedano drugače. Ko v aplikaciji Text Secure zaženemo izmenjavo (javnih) šifrirnih ključev (tim. key exchange), si aplikaciji pri prejemniku in pošiljatelju preko SMS sporočil izmenjata svoje (javne) šifrirne ključe. Od te točke dalje, se SMS sporočila med pošiljateljem in prejemnikom šifrirajo. Težava pa je, da prejemnik ne ve, ali je ključ, ki ga je prejel po SMS sporočilu res ključ pošiljatelja, ali pa je sporočilo vmes prestregel napadalec in prave šifrirne ključe zamenjal s svojimi.

Napad s posrednikom na izmenjavo javnih šifrirnih ključev

Napad s posrednikom na izmenjavo javnih šifrirnih ključev.

Zato je takoj po izmenjavi ključev potrebo izvesti verifikacijo šifrirnih ključev oz. identitete pošiljatelja. Text Secure omogoča verifikacijo s pomočjo kontrolne vsote pošiljateljevega šifrirnega ključa (izbrati je potrebno možnost Secure Session Options – Verify Recipient Identity) – le-to lahko preverimo ročno ali pa s pomočjo QR kode. Ko se pošiljatelj in prejemnik vzajemno verificirata, je izmenjava SMS sporočil med njima varna (sporočila so v osnovi šifrirana s 128-bitnim AES šifriranjem).

Verifikacija ključev

Verifikacija ključev.

Vsa SMS sporočila, ki jih nato prejmemo ali pošljemo v šifrirani obliki so na zaslonu mobilnega telefona ustrezno označena (z ikonico ključavnice), zato lahko takoj vidimo katera SMS sporočila so bila preko omrežja operaterja posredovana v šifrirani in katera v nešifrirani obliki. Od tu dalje pošiljanje in sprejemanje SMS sporočil poteka tako kot smo ga navajeni.

Zaključek

S pojavom tim. pametnih mobilnih telefonov je postalo močno šifriranje SMS sporočil enostavno dostopno širokemu krogu običajnih uporabnikov mobilne telefonije. Žal na tem področju še vedno manjkajo poenoteni standardi oziroma med seboj kompatibilne aplikacije pogosto niso na voljo za različne mobilne operacijske sisteme.

Po drugi strani pa je uporaba aplikacij kot je npr. Text Secure izredno enostavna, saj sledi logiki “set and forget” (nastavi in pozabi). Po izmenjavi ter verifikaciji ključev, ki zahteva minimalno časa ter pozornosti uporabnika, aplikacija deluje kot običajna aplikacija za pošiljanje SMS sporočil. A s pomembno razliko – vsebina naših šifriranih SMS sporočil napadalcu ni več dostopna.

Je pa kljub temu potrebno opozoriti, da šifriranje SMS sporočil pred prestrezanjem varuje samo vsebino sporočil. Napadalec sicer ne more videti o čem se dve osebi pogovarjata preko SMS sporočil, lahko pa vidi prometne podatke – kdo komunicira s kom, kdaj in kako pogosto.

Če oba komunikacijska partnerja vestno preverita istovetnost izmenjanih javnih šifrirnih ključev, napadalec ne bo mogel izvesti napada s posrednikom in mu vsebina šifriranih SMS sporočil ne bo dostopna. A napadalec ima na voljo še eno možnost, s katero lahko skuša razkriti vsebino sporočil. Prične lahko z motenjem šifriranih prenosov in s tem prisli komunikacijska partnerja, da prenehata uporabljati šifriranje. To je lepo vidno iz naslednjega zaslonskega posnetka.

Bad encrypted message

Eno izmed sporočil je bilo med prenosom okvarjeno, zato ga ni bilo mogoče dešifrirati (“bad encrypted message”). Naslednje SMS sporočilo je zato pošiljatelj poslal v nešifrirani obliki (sporočilo ni označeno s ključavnico).

Kot je razvidno iz slike, je med prenosom šifriranih SMS sporočil po mobilnem omrežju pričelo prihajati do napak, zato SMS sporočil aplikacija Text Secure ni mogla dešifrirati in je javila sporočilo “Bad encrypted message” (slo. neustrezno šifrirano sporočilo). Ker pošiljatelj prejemniku ni mogel poslati šifriranega SMS sporočila, je naslednje sporočilo poslal v nešifrirani obliki (poleg sporočila ni sličice ključavnice). To sporočilo pa napadalec lahko prestreže in si brez težav ogleda njegovo vsebino.

Proti takšnim napadom, kjer nam napadalec skuša onemogočiti pošiljanje šifriranih sporočil se je seveda težko boriti – popolno prenehanje komuniciranja pa seveda tudi ni rešitev. Na srečo je mogoča obramba tudi proti opisanim napadom – prikrito komuniciranje (npr. s pomočjo steganografije) ter anonimizacija (npr. s pomočjo omrežja Tor). To pa je področje, kjer se bolje odreže komuniciranje s pomočjo hipnih sporočil. Kar je še en dokaz, da se šifriranje SMS in IM sporočil dopolnjujeta.

Kategorije: Informacijska tehnologija, Informacijska varnost, Odprta koda, Zasebnost
Ključne besede: GSM, mala šola informacijske varnosti, šifriranje, SMS