Cum poți avea convorbiri telefonice criptate?

(însemnare scrisă de Bogdan – http://www.m-sec.net/)

Dacă în prima parte scriam despre modul în care putem să ne protejăm de informațiile cerute de aplicațiile instalate pe smatphone, acum subiectul este cel al convorbirilor telefonice (deci voce).

Viața privată nu se referă la faptul că nu ai nimic de ascuns, ci la faptul că e decizia fiecăruia dacă dorește sau nu să facă publice anumite lucruri. Și cum cel mai des comunicăm cu cei de departe prin telefon, iată și necesitatea unei modalități de comunicare ce nu poate fi descifrată chiar dacă ar fi cineva pe fir. Sunt suficiente motive legale în care chiar legea acceptă sau impune anonimitatea comunicațiilor (relația medic-pacient, psiholog-client, cazul avertizorilor de integritate, raportarea infracțiunilor de corupție, relația jurnalist-sursă etc.)

Detaliile practice prezentate mai jos pot fi aplicate pentru orice sistem de operare, atât pentru smartphone cât și pentru PC, astfel încât poate fi utilizat foarte ușor inclusiv de persoanele care nu au cunoștințe tehnice solide.

Cum merge criptarea pe telefon – să începem cu o poveste.

Cum pot două persoane să comunice prin voce astfel încât doar cele două persoane pot înțelege conversația? Deci chiar dacă o a treia persoană ascultă, aceasta nu va înțelege nimic. În zona de IT sunt mai multe metode ce presupun în general existența unor certificate digitale, lucru costisitor și care nu e la îndemâna oricui. Iar aici vine în ajutor un protocol denumit ZRTP, care se bazează pe un schimb de chei prin metoda Diffie–Hellman.

Știu că v-am amețit puțin, dar veți vedea că e foarte simplu de înțeles. Să revenim la cele 2 persoane care doresc să comunice într-un mod doar de ele știut. Iar cel mai simplu de explicat acest lucru este prin… culori.

Astfel, dacă amestecăm două sau mai multe culori vom obține la final o altă culoare. Plecând de la culoarea obținută, este dificil să deduci exact combinațiile utilizate pentru a o obține. Să presupunem că două persoane, Alina și Bogdan, vor să comunice fără a fi înțelese de o a3a persoană, Elena, care doar ascultă orice discută Alina și Bogdan. Inițial ei aleg o culoare – galben de exemplu – culoare ce o va ști și Elena. Apoi, atât Alina cât și Bogdan aleg o culoare la întâmplare pe care doar ei o știu. Alina alege roșu iar Bogdan albastru, după care fiecare amestecă galbenul cu ce au ales ei. Rezultatul amestecului este schimbat între cei doi și deci îl va ști și Elena.

Acum lucrurile stau așa:

  • Alina – culoarea privată aleasă e roșu, neștiută de nimeni. Amestecul dintre galben și roșu a rezultat un portocaliu
  • Bogdan – culoarea privată aleasă e albastru, neștiută de nimeni. Amestecul dintre galben și albastru a rezultat un verde
  • Elena știe de galben, portocaliu și verde
  • după schimbul de culori, Alina are verde, iar Bogdan portocaliu

Odată făcut schimbul, Alina și Bogdan adaugă culoarea privată folosită, rezultând de ambele părți aceeași culoare maro (galben + roșu + albastru, respectiv galben + albastru + roșu). Astfel cele 2 persoane au ajuns la aceeași culoare, iar Elena nu știe care e culoarea lipsă pentru a descifra conversația dintre cei 2. Urmăriți prezentarea de mai jos pentru a vedea exact cum decurg lucrurile:

Puține explicații tehnice – despre ZRTP

Acum că ne-am lămurit cum comunică cele 2 persoane, să explicam puțin despre protocolul ZRTP. Spre deosebire de clasicul VoIP (Voice over Internet Protocol – Voce prin Internet), cheile de criptare sunt generate individual de către fiecare aplicație în parte. La fel ca în cazul culorilor, cheile sunt schimbate direct între cei doi participanți, fără a fi necesară prezența unui alt server care să intermedieze acest schimb.

Singurul loc în care e necesar acest server se află în procesul de conectare inițială și apelare. Faceți analogia cu serviciul clasic de telefonie: mai întâi trebuie să primiți un număr de telefon de la operator, după care puteți apela alte numere (persoane) ale acestui operator.

La fel de simplu e și în cazul ZRTP: vă faceți cont pe un site ce oferă posibilitatea de a trimite vocea prin intermediul rețelei Internet (VoIP), iar la final primiți un nume de utilizator sau un număr alocat de site. Pentru a discuta cu alte persoane este necesar ca și ele să aibă cont la același serviciu, iar apelarea se face scriind numele lor de utilizator sau chiar un numărul de telefon asociat contului.

Cel mai mare avantaj al ZRTP este acela că securizarea conversației are loc între cei doi participanți în mod direct și independent, atâta timp cât aceștia folosesc o aplicație ce suportă acest protocol. Așadar nu contează ce serviciu de VoIP alegeți; atâta timp cât discuțiile au loc folosind aplicații compatibile, totul e criptat. Cu alte cuvinte, dacă apelați spre exemplu un număr standard de telefon mobil, această conversație nu mai este criptată la același nivel înalt întrucât cealaltă jumătate a apelului se duce prin rețeaua clasică de telefonie mobilă.

Câteva servicii VoIP care acceptă criptarea

Sunt mai multe servicii VoIP disponibile, dar vom menționa doar două.

1. Ostel.

Pe site vă faceți un cont iar la înregistrare vă cere numele de utilizator dorit, o adresă de email și parola. Asta e tot!

ostel

Modul de apelare se bazează pe numele de utilizator, astfel încât va trebui să formați “ioanradu” spre exemplu, ceea ce e puțin mai complicat. În plus, folosind aceste serviciu doar cei care sunt utilizatori ai Ostel vă pot apela deoarece nu primiți un număr de telefon.

2. Un alt serviciu de unde primiți și un număr fix VoIP apelabil de pe alte rețele de telefonie și unde bineînțeles că puteți apela orice alt număr din lume este oferit de CallRomania și Alonia. Desigur sunt și alții în România însă pe ei i-am încercat și au servicii bune.

Pe site-ul lor vă faceți un cont – aici vă cer mai multe detalii precum nume, prenume, număr de telefon existent, adresa – iar la final vi se oferă un număr de telefon fix din județul dorit. De acum puteți primi apeluri, iar pentru a suna în afara rețelei CallRomania sau Alonia va trebui să plătiți.

Aplicații de folosit pe calculator sau telefon

Indiferent de sistemul de operare folosit există astfel de aplicații:

  • pentru Android există CSipSimple
  • pentru iOS – Linphone
  • pentru Windows, MacOS, Linux – Jitsi
  • pe Blackberry versiunile mai vechi e disponibil PrivateGSM însă e cu plată, sau pentru versiunile mai noi ce permit instalarea de aplicații Android puteți folosi CSipSimple

Un tutorial foarte bun de configurare a CSipSimple găsiți pe site-ul CallRomania de unde alegeți ca modalitate de conectare la CallRomania zona Smartphone, iar apoi din listă Android. Oricum, în principiu, pe site-ul oricărui furnizor de servicii VoIP găsiți intrucțiuni generale de configurare a aplicațiilor.

Partea cea mai importantă pe care nu trebuie să o uitați este că după ce vă setați contul VoIP pe telefon, din aplicație trebuie să activați ZRTP. În cazul Jitsi acest mod e activ implicit, însă pentru CSipSimple e necesar să faceți următori pași:

1) apăsați pe butonul de configurare (cele trei puncte verticale) după care alegeți Settings

settings

2) în fereastra următoare alegeți Network

network

3) selectați Secure transport, ZRTP mode

secure transport

tls

4) alegeți Create ZRTP

create zrtp

Interesant la CSipSimple e că se integrează cu aplicația Android de apelare, astfel încât atunci când efectuați un apel aveți posibilitatea de a alege cum sunați: prin intermediul operatorului de telefonie sau cu CSipSimple.

Așa cum menționam anterior, convorbirile sunt criptate doar dacă ambii participanți la convorbire au o aplicație compatibilă ZRTP. Acest aspect vă este indicat de îndată ce cealaltă persoană răspunde. Odată stabilită legătura între participanți, ZRTP vă furnizează un cod unic ce trebuie comparat de către voi prima dată, atât prin apăsarea unui buton, cât și verbal.

Screenshot_2015-01-31-21-35-01

Screenshot_2015-01-31-21-35-34

zrtp-windows

Mai tineți minte exemplul cu schimbul de culori? În acel exemplu cea de-a 3a persoană doar asculta, însă dacă ar fi putut să și intervină între cei 2 participanți și să furnizeze alte culori spre exemplu? Tocmai acesta e scopul acestui cod, pentru a verifica dacă nu a intervenit altcineva și a făcut modificări. Confirmarea este făcută verbal, în sensul că oricând pe parcursul conversației se poate spune „apropo, codul meu e 1d59, la fel e și la tine?”. Consider că acest aspect este unul foarte important întrucât nu se poate automatiza confirmarea de către un alt ascultător de pe fir. Pur și simplu nu știi când unul dintre cei 2 aleg să confirme codul, iar vocea oricaruia dintre cei 2 e unică, nu poți falsifica timbrul vocal al oricăruia dintre ei.

Acum că a fost confirmat codul, puteți fi siguri că oricine ar asculta nu va putea decripta, înțelege ceea ce discutați voi. În cel mai rău caz vă poate doar întrerupe conversația prin întreruperea accesului la Internet. La viitoarele apeluri către aceeași persoană, softul nu vă mai cere o confirmare prin apăsarea unui buton de confirmare, însă oricând ambii participanți văd codul afișat și, dacă doresc, fac o confirmare vocală a noului cod.

Screenshot_2015-01-31-21-36-05

Dacă observați că după inițierea apelului nu este indicată prezența protocolului ZRPT, atunci fiți siguri că acea convorbire nu este una securizată și ca oricine ar putea teoretic să asculte și să înțeleagă ce discutați.

În concluzie, sper că v-am învățat cum să comunicați fără ca alții să vă asculte convorbirile. Întrebări, neclarități?

3 Comments

  1. Pingback: O Scurtă Istorie A Interceptării Telefoanelor Și Cum Le Putem Evita |

  2. eee

    Lasati prostiile!! si mai invatati , odata ce trece prin centrala lor ei vor face cum vor !!

    Reply
    1. bogdan

      Daca citit cu atentie, o sa vedeti ca este vorba exclusiv de convorbiri VoIP, deci nu trec prin nicio centrala telefonica.

      Reply

Leave a Comment

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>