Objavljeno:

Šifriranje hipnih sporočil (mala šola informacijske varnosti, 11. del)

Hipno sporočanje (ang. instant messaging) je posebna oblika komunikacije preko interneta, ki omogoča hitro izmenjavo tekstovnih sporočil preko omrežja. Tako je hipno sporočanje pravzaprav analogno SMS sporočilom, le da poteka preko interneta. Ker pa so odjemalci za hipno sporočanje na voljo tako za osebne računalnike, kot tudi za tablice in pametne mobilne telefone, je hipno sporočanje mogoče uporabljati tudi kot nadomestek SMS sporočil (seveda pa morata oba komunikacijska partnerja imeti nameščen ustrezen IM odjemalec).

Zametki hipnega sporočanja segajo v 1960-ta leta v začetku 1990-tih pa so se razvile tim. klepetalnice (ang. chat rooms), ki jim je novembra 1996 sledil IM protokol ICQ, ki je povzročil pravo malo revolucijo v uporabi in prepoznavnosti hipnega sporočanja. Kasneje so se razvile še druge storitve in danes poznamo več storitev oziroma protokolov za izmenjavo hipnih sporočil. Če omenimo le nekatere najbolj znane, so to AIM, ICQ, Google Talk, Jabber/XMPP, MSN Messenger (ki ga bo počasi nadomestil Skype), Yahoo!, Bonjour, Gadu-Gadu, IRC, Novell GroupWise Messenger, Lotus Sametime, SILC, SIMPLE, MXit, MySpaceIM, Zephyr, itd.

Sodobni IM odjemalci pa seveda ne znajo prenašati le besedil, pač pa tudi datoteke, zvočna in video sporočila ter še marsikaj. V zadnjih letih so bili razviti tudi odjemalci, ki omogočajo uporabo več IM storitev oz. več IM protokolov hkrati. Seveda se moramo v vsako IM storitev prijaviti s svojim uporabniškim imenom, vendar pa nato kontakte iz različnih storitev vidimo v skupnem in enotnem vmesniku.

Ker se IM sporočila po intenetu praviloma prenašajo v nešifrirani obliki, je skupina razvijalcev pod vodstvom kriptologa Iana Goldberga leta 2004 pričela z razvojem posebnega protokola oziroma dodatka, ki omogoča šifriranje hipnih sporočil. Gre za OTR oz. Off-the-Record, ki “na vrhu” kateregakoli podprtega IM protokola (na voljo je tudi OTR dodatek za IRC protokol in sicer za odjemalec XChat ter še nekatere druge) omogoča šifriranje, avtentikacijo, zanikanje in tim. poudarjeno zaupnost (ang. perfect forward secrecy).

To pomeni, da so šifrirana sporočila avtenticirana (overjena), avtentikacija pa je mogoča samo ko je sporočilo poslano, kasneje pa ne več, protokol omogoča tudi zanikanje vsebine sporočila (potem, ko je bilo sporočilo uspešno poslano, oziroma tudi v primeru, če je bilo sporočilo prestreženo), v primeru, da napadalec prestreže šifrirne ključe, pa lahko prisluškuje samo prihodnjim pogovorom, preteklih sporočil pa to ne more ogroziti.

Naj omenimo, da večina sodobnih IM omrežij sicer omogoča šifriranje, vendar omogoča samo šifriranje med odjemalcem in strežnikom (s pomočjo TLS ali SSL šifriranja), ta zaščita pa žal ni odporna na tim. napade s posrednikom. Za razliko od tega šifriranja pa OTR omogoča tim. end-to-end šifriranje, torej šifriranje sporočil od enega odjemalca do drugega, kar pomeni, da vsebine izmenjanih sporočil ni mogoče videti niti na IM strežniku.

V nadaljevanju si bomo pogledali kako uporabiti storitev hipnega sporočanja z OTR šifriranjem na računalniku in mobilnem telefonu. Kot rečeno, je prvi korak vzpostavitev ustreznih povezav. Uporabimo lahko katerikoli obstoječ in preizkušen IM protokol, testiranje pa je pokazalo, da – zlasti na mobilnih telefonih – najbolje deluje Google Talk, ki v bistvu temelji na odprti XMMP tehnologiji. Prvi korak je torej registracija novega uporabnika in s tem pridobitev Google Talk računa. Sledi pa namestitev ustreznih odjemalcev.

Na spletni strani OTR projekta je opisanih nekaj IM odjemalcev, ki imajo vgrajeno OTR podporo. V nadaljevanju si bomo ogledali namestitev in uporabo odjemalca Pidgin, ki je na voljo za okolje Linux in Windows, pa tudi za Mac OS, čeprav na spletni strani projekta za to okolje priporočajo Adium. Za Android je na voljo brezplačni Gibberbot ali plačljivi IM+, za iPhone pa (ravno tako brezplačni) ChatSecure. Žal za platformi Windows Phone in BlackBerry OTR odjemalca (še) ni na voljo, bo pa verjetno prvi odjemalec, ki bo to funkcionalost ponudil na teh dveh platformah plačljivi IM+ (v osnovni različici z oglasi je IM+ sicer brezplačen OTR dodatek za šifriranje pa je potrebno kupiti).

Pidgin

Namestitev odjelamca Pidgin je v Ubuntu Linuxu enostavna. Potrebno je namestiti programski paket pidgin ter OTR vtičnik pidgin-otr. Ko program zaženemo (preveden je tudi v slovenščino), najprej preko menija Računi – Upravljaj z računi – Dodaj dodamo nov XMMP protokol. Kot uporabniško ime v primeru uporabe Google Talk storitve vpišemo naše Gmail uporabniško ime, kot domeno pa gmail.com. V zavihku Napredno nastavimo XMMP strežnik talk.google.com (vrata pustimo privzata 5222, varnost povezave pa tudi na privzeti vrednosti “zahtevaj šifriranje“). S tem je uporabniški račun vnešen v aplikacijo in lahko se povežemo na Google Talk strežnik. Naj omenimo, da uporaba Google Talka zahteva prost dostop do izhodnih vrat 5222, torej morajo biti na požarnem zidu (npr. v poslovnih okoljih) le-ta odprta.

Da bi se izognili prejemanju neželenih sporočil s strani uporabnikov, ki jih ne poznamo, je preko menija Orodja – Zasebnost smiselno nastaviti, da naš status vidijo le uporabniki na našem seznamu prijateljev, prav tako bomo sporočila prejemali le od teh uporabnikov. To nastavitev je sicer potrebno nastaviti za vsak IM račun posebej (če jih uporabljamo več).

Preko menija Prijatelji – Dodaj prijatelja nato lahko na seznam svojih kontaktov dodajamo osebe s katerimi bi želeli komunicirati. S tem je osnovno nastavljanje samega odjemalca na strani računalnika končano. V nadaljevanju si bomo ogledali še kako nastavimo odjemalca na mobilnem telefonu, na koncu pa kako med njima vzpostavimo šifrirano izmenjavo sporočil.

Gibberbot

Gibberbot je na voljo za okolje Android (preiskušali smo ga na nekoliko starejšem Androidu 2.1) in je v Googlovi tržnici na voljo brezplačno. Po namestitvi (namestiveni paket je velik okrog 3,3 Mb) najprej ustvarimo nov račun. Naj omenimo, da je do nastavitev mogoče priti s pomočjo tipke za nastavitve ali pa z daljšim klikom na posamezni element v programu. Za nastavitev Google Talk računa ustvarimo nov XMMP račun, kjer najprej vnesemo uporabniško ime in geslo, nato pa pod napredne nastavitve računa (Advanced Account Settings) nastavimo strežnik (Connect Server) talk.google.com. Ostale nastavitve lahko pustimo privzete. Naj omenimo, da se je v IM omrežje preko Gibberbota mogoče povezovati tudi preko anonimizacijskega omrežja Tor, vendar v tem primeru potrebujemo nameščeno (brezplačno) aplikacijo Orbot, ki je ravno tako kot Gibberbot del The Guardian Projecta.

Med nastavitvami naj omenimo možnost vklopa možnosti “Use foreground priority“, ki zmanjša možnosti, da bi Android ponovno zagnal našo povezavo, hkrati pa vklop te možnosti tudi prikaže obvestilo o zagonu Gibberbota v obvestilni vrstici. Z možnostjo “Chat encryption” pa lahko nastavimo ali se bodo pogovori obvezno šifrirali, ali bo Gibberbot samodejno skušal vključiti šifriranje pogovorov, ali se šifriranje vključi samo na zahtevo, ali pa naj bo popolnoma izključeno.

Ko se mobilni telefon oziroma Orbot poveže v IM omrežje, lahko med nastavitvami izberemo možnost Add Contact in začnemo z dodajanjem kontaktov. S tem je osnovna namestitev odjemalca končana.

Pidgin.

Pidgin.

Mimogrede, Gibberbotu žal manjka nekoliko več uporabniške prijaznosti. Tako recimo kontaktom na našem seznamu ni mogoče nastavljati vzdevkov (to možnost recimo Pidgin ima, prav tako plačljivi IM+), prav tako pogrešamo kakšne bolj sporočilne ikone v obvestilni vrstici (npr. ali smo povezani v Im omrežje ali ne), prav pa bi prišla tudi možnost izklopa beleženja pogovorov ter morda tudi kakšna zaščita aplikacije z geslom – morda celo šifriranje nastavitev in vsebine pogovorov z geslom. Naj omenimo, da večino teh možnosti plačkjivi IM+ ima.

OTR šifriranje med odjemalcema

Privzeto so pogovori med odjemalcema nešifrirani (razen, če med nastavitvami izrecno zahtevamo obvezno šifriranje).

V primeru, da je komunikacija nešifrirana, Gibberbot to jasno označi z napisom na rdeči podlagi: “Warning: This chat is NOT encrypted.” Pidgin pa v spodnjem desnem kotu z rdečimi črkami izpiše gumb “Not private“.

Ko si odjemalca prvič izmenjata šifrirne ključe, se bo samodejno vključila šifrirana povezava, vendar pa povezava še n varna, saj morata oba komunikacijska partnerja pred tem preveriti veljavnost šifrirnih ključev. Gre za tim. postopek verifikacije, s katerim si prejemnik in pošiljatelj zagotovita, da ključ, ki sta ga dobila od nasprotne strani res pripada tej osebi – ne pa na primer napadalcu, ki bi bil skrit nekje med njima in bi prevzel identiteto nasprotnega komunikacijskega partnerja.

Če šifrirni ključi niso vedificirani, oba programa to jasno označita. Gibberbot izpiše obvestilo na rumeni podlagi: “This chat is secure, but the identities of the participants have NOT been verified.”, obvestilo s podobno vsebino izpiše tudi Pidgin.

Gibberbot.

Gibberbot.

Da bi preprečili napade s posrednikom je torej zelo pomembno, da verificiramo šifrirne ključe. To najlažje storimo tako, da po varnem kanalu ali osebno pri drugem komunikacijskem partnerju preverimo zgoščene vrednosti šifrirnih ključev (ang. hash). Tako torej prejemnik preveri ali se zgoščena vrednost ključa, ki jo je dobil od pošiljatelja ujema z zgoščeno vrednostjo ključa na pošiljateljevi napravi, in obratno. Gibberbot in Pidgin omogočata tudi preverjanje s vprašanja in odgovora (prejemniku pošljemo vprašanje, na katerega pozna odgovor samo on; če pravilno odgovori, se njegov ključ verificira) ter preverjanje s pomočjo tim. skupne skrivnosti. Ko sta oba ključa verificirana, Gibberbot izpiše obvestilo na zeleni podlagi “This chat is secured and verified.“, Pidgin pa v spodnjem levem kotu z zelenimi črkami izpiše gumb “Private“.

Verifikacija ključev v Gibberbotu.

Verifikacija ključev v Gibberbotu.

Zaključek

Kar se je pred nekaj leti še zdelo kot znanstvena fantastika – (mobilna) izmenjava šifriranih sporočil med običajnimi posamezniki – je danes že mogoče za relativno malo denarja ali celo popolnoma brezplačno. S sodobno tehnologijo in odprtimi standardi, ki omogočajo izmenjavo podatkov med različnimi odjemalci ter različnimi operacijskimi sistemi, je varno tekstovno komuniciranje postalo dostopno tudi običajnim posameznikom in ni več le v domeni vojske, diplomacije ali podobnih organizacij z visokimi proračuni.

OTR šifrirano sporočilo med prenosom.

OTR šifrirano sporočilo med prenosom.

Tehnologija je torej postala dostopna, seveda pa uporaba šifriranja prinaša tudi določene stroške. Prvi strošek je seveda nakup tim. pametnega telefona. Ker izmenjava hipnih sporočil poteka preko podatkovne povezave, moramo imeti naročniški paket, ki vključuje prenos podatkov. Prenosa sicer ni veliko – od precej intenzivni uporabi do nekaj 10 Mb mesečno, je pa seveda potrebna previdnost pri prenosu podatkov v tujini. A to ob razširjenosti uporabe pametnih telefonov in naročniških paketov, ki vključujejo prenos podatkov načeloma niso preveč pereče težave. Še največjo težavo pravzaprav predstavlja dejstvo, da poganjanje IM aplikacije precej poveča porabo baterije (če seveda prej nismo uporabljali prenosa podatkov oziroma smo mobilni telefon uporabljali izključno za telefoniranje in v 2G omrežju). Hkrati pa ne smemo pozabiti tudi na strošek nastavljanja IM aplikacije, verifikacije ključev in privajanja uporabnikov na uporabo šifriranega tekstovnega komuniciranja.

A po drugi strani so vsi ti stroški pravzaprav razmeroma majhni (na osebnem računalniku pa jih praktično ni), v zameno zanje pa dobimo zasebnost komuniciranja, o kateri pred nekaj leti ni bilo mogoče niti sanjati. Kljub temu pa se je potrebno zavedati, da omenjena tehnologija ščiti le komunikacije med prenosom. Za zaščito pred kompromitiranim ali ukradenim mobilnim telefonom ali osebnim računalnikom pa so potrebne drugačne tehnologije in drugačni prijemi o katerih smo na teh straneh že pisali.

Kategorije: Človekove pravice, Informacijska varnost, Odprta koda
Ključne besede: IM, šifriranje