Cum să faci o aplicație de mesagerie foarte sigură similară cu Signal?
Publicat: 2021-10-05Confidențialitatea și securitatea comunicării online sunt subiecte fierbinți în aceste zile și dintr-un motiv. Deoarece știm cum să creăm o aplicație criptată , am dori să împărtășim experiența noastră și să oferim sfaturi în acest articol. Vom vorbi despre starea actuală a industriei, metodele de criptare și posibilele riscuri. Pentru o estimare a prețului, derulați până la sfârșitul articolului.
Ce s-a întâmplat?
La începutul anului 2021, WhatsApp, cea mai populară aplicație de mesagerie din lume, și-a lansat noile condiții de serviciu. Au provocat o destulă revoltă, parțial din cauza confuziei. După aceea, CEO-ul Tesla, Elon Musk, care este un cunoscut critic al Facebook (WhatsApp este deținut de Facebook), a sugerat ca 42,5 milioane de adepți ai săi Twitter să treacă la Signal, un mesager anterior nu foarte cunoscut.
Utilizați semnalul
- Elon Musk (@elonmusk) 7 ianuarie 2021
În urma acestui tweet, Signal - al cărui sistem de criptare pe care WhatsApp îl folosește , de altfel - a văzut o creștere a numărului de utilizatori. Această creștere a fost atât de mare încât serverele au avut dificultăți în a face față. Dezvoltatorii Signal au reușit să facă față situației, dar au arătat că cererea pentru sisteme de mesagerie securizate este în creștere. Acum, toată lumea vrea să știe cum să creeze o aplicație precum Signal. Ceea ce ne aduce la acest articol.
Ce înseamnă să ai un messenger instant securizat?
Majoritatea aplicațiilor de mesagerie instant utilizează astăzi criptarea end-to-end. Ce este? Iată o diagramă a unei arhitecturi de aplicații de chat ca exemplu:
Pur și simplu, un mesager tipic are trei părți principale interconectate:
Dispozitivul expeditorului
Un server
Dispozitivul destinatarului
Un mesaj este trimis de un expeditor către un destinatar prin intermediul unui server. Fără criptare, acest mesaj va fi transmis ca text simplu și, prin urmare, poate fi citit de oricine are acces la el în orice moment de-a lungul drumului. Cu criptarea, mesajul este transformat din text simplu în text criptat - criptat cu o cheie - pentru transfer și apoi transformat înapoi (decriptat) pe dispozitivul destinatarului , cu o cheie asociată.
Criptarea end-to-end înseamnă că cheile de criptare sunt stocate la capete, adică pe dispozitivele utilizatorilor, în loc de pe server. Acest lucru face ca nimeni, cu excepția expeditorului și receptorului, să nu poată citi mesajele . Nici măcar furnizorul de servicii care deține serverul nu are acces la acestea. Pentru a hack aceste mesaje, un hacker trebuie să acceseze dispozitivele utilizatorilor, deoarece hacking-ul serverului furnizorului de servicii este de puțin folos.
Punctul slab al criptării end-to-end este susceptibilitatea sa la așa-numitul atac om-în-mijloc (MITM) . Hackerii MITM calificați pot să pirateze cheia publică stocată pe un server și să configureze sistemul pentru a recunoaște hackerul ca destinatar de drept, permițându-i hackerului să treacă cu urechea la o conversație și chiar să participe la ea în locul destinatarului dorit.
Pentru a lupta împotriva atacurilor MITM , dezvoltatorii de Signal au îmbunătățit în continuare criptarea de la capăt la capăt a protocolului lor cu un algoritm cu dublu clichet. Acest algoritm creează chei de sesiune pe lângă cheile publice și private create atunci când utilizatorii instalează aplicația. Cheile de sesiune sunt create pentru fiecare mesaj trimis și se autodistrug la finalizarea sesiunii (adică la primirea mesajului), ceea ce face imposibil pentru un hacker să decripteze toate mesajele dacă reușesc să obțină cheia pentru o sesiune.
WhatsApp utilizează criptarea end-to-end pentru toate mesajele sale. De fapt, folosește propriul protocol de criptare al Signal. Deci, care este problema cu el acum?
Diferite abordări ale criptării end-to-end
Este adevărat că WhatsApp nu poate asculta conținutul mesajelor dvs. și nu poate asculta apelurile dvs. în aplicație. Cu toate acestea, versiunea protocolului de criptare a Signal pe care WhatsApp o folosește criptează numai conținutul mesajelor . Aceasta înseamnă că WhatsApp - și, prin extensie, Facebook și oricine decide să împărtășească informațiile - pot vedea cu cine vorbiți, când și de unde. Aceste metadate pot dezvălui informații foarte personale despre toți participanții la o conversație.
În același timp, aplicația Signal utilizează un protocol actualizat care codifică și metadatele și nimeni - nici măcar proprietarii aplicației - nu o poate decoda fără acces direct la dispozitivele utilizatorilor .
În plus, conform Politicii de confidențialitate a Signal, aproape nici o metadată nu este stocată permanent pe serverele lor - doar atâta timp cât este nevoie pentru a primi un mesaj. Apoi totul, cu excepția datei ultimei date de conectare a utilizatorului, este șters.
Singura altă aplicație de mesagerie care face acest lucru este Telegram. Cu toate acestea, în Telegram, criptarea end-to-end este aplicată numai în modul secret și nu tuturor chat-urilor în mod implicit. Mesajele generale nu sunt bine criptate pe Telegram. Cel puțin Telegram refuză să împărtășească astfel de informații cu oricine, fie că sunt guverne sau agenți de publicitate.
Astăzi, securitatea aplicațiilor de mesagerie este un subiect uriaș - incapacitatea sau lipsa de dorință a mesagerului de a partaja informațiile utilizatorilor cu guvernele este adesea întâmpinată cu limitări și interdicții. Telegrama, de exemplu, a fost interzisă în Rusia, patria creatorului său; Emiratele Arabe Unite au interzis toate serviciile VoIP nestatale. Ca răspuns, oamenii de pretutindeni cer mijloace de comunicare mai sigure, iar piața aplicațiilor de mesagerie mobilă în siguranță este în creștere .
Deci, cum să faci un mesager securizat?
Majoritatea oamenilor folosesc cel puțin un messenger, probabil mai mulți, iar setul de funcții de bază pentru o aplicație de messenger nu te va surprinde cu greu. Așa că vom fi scurți în această secțiune. Iată un tabel de caracteristici pentru o soluție de chat sigură :
Caracteristici | Descriere |
---|---|
La imbarcare | Introduceți pe scurt aplicația dvs.; cu cât este mai scurt, cu atât mai bine, dar îl face ușor de înțeles. |
Înregistrează - te Autentificare | Un cont de messenger este de obicei legat de un număr de telefon. |
Profilurile utilizatorilor | Un profil stochează informațiile personale ale utilizatorului și link-uri către caracteristici importante precum contacte, setări și întrebări frecvente. |
Setări | Permiteți utilizatorilor să ajusteze messengerul pentru confortul lor. |
Notificări | Într-o aplicație de messenger, este esențial să aveți un sistem fiabil pentru notificări instantanee. |
Chaturi text | Este necesară o aplicație modernă de mesagerie pentru a susține atât chat-urile individuale, cât și cele de grup. |
Transfer de fișier | Utilizatorii trebuie să poată schimba mesaje text, precum și să partajeze imagini și documente. |
Chaturi / apeluri vocale | O funcție VoIP este la fel de importantă astăzi ca trimiterea de mesaje text. Sunetul de calitate necesită o conexiune stabilă chiar și cu viteze reduse de internet. ![]() |
Mesaje autodistructive | Chiar și cu protocolul Signal, dacă cineva primește telefonul unui utilizator, poate vedea toate mesajele anterioare, cu excepția cazului în care utilizatorii le-au șters. S-ar putea să adăugați o opțiune pentru ca utilizatorii să seteze un temporizator pentru a distruge mesajele și / sau fișierele media. |
Sincronizare | Majoritatea oamenilor au mai multe dispozitive cu aplicații de comunicare instalate. Pentru ca utilizatorii să poată comuta fără probleme între dispozitive după cum consideră potrivit, va trebui să oferiți o funcție de sincronizare. |
Autentificare în doi pași | Pentru a proteja mai bine datele utilizatorilor în cazul în care un dispozitiv este furat, oferiți autentificare în doi pași prin amprentă digitală, parolă, cod PIN sau cod de verificare sau link. |
Dacă doriți să creați o aplicație de mesagerie peer-to-peer care să iasă din mulțime, luați în considerare aceste caracteristici:
Autocolante și GIF-uri. Fiecare alt mesager de astăzi integrează popularul serviciu GIF Giphy în interfața sa pentru a completa emoticoanele. Autocolantele au devenit populare când Telegram a început să le ofere gratuit (spre deosebire de Viber, de exemplu, unde doar unele autocolante sunt gratuite).
Chaturi secrete / private. Indiferent dacă criptați sau nu metadatele utilizatorilor dvs., în realitatea furtunoasă de astăzi, ar putea deveni punctul de vânzare al aplicației dvs. să aveți chaturi care dispar sau care pot fi blocate. De exemplu, Telegram oferă chat-uri secrete care dispar automat dacă vă deconectați de la Telegram de pe dispozitiv. Aceste chat-uri nu sunt stocate pe serverele cloud ale Telegram și, prin urmare, nu pot fi salvate sau sincronizate chiar dacă sunteți conectat pe mai multe dispozitive.
Chat video. În 2020, cu un număr copleșitor de oameni forțați să lucreze de la distanță din cauza pandemiei, instrumentele de videoconferință au cunoscut o creștere imensă a popularității. Și mulți s-au plâns de lipsa apelurilor video - apeluri individuale și de grup - în mesagerii populari existenți. Nu este în niciun caz o caracteristică obligatorie, dar cu siguranță va fi populară printre utilizatori.
Cum să securizezi o aplicație de mesagerie
Partea din spate este locul în care magia se întâmplă în mesageri. Specialiștii în backend sunt responsabili pentru securitatea și fiabilitatea aplicației dvs. de chat, deoarece aceștia știu cum să cripteze mesajele.
Există mai multe moduri de a implementa criptarea end-to-end și de a asigura o aplicație de comunicație sigură . De obicei, mesajele criptate sunt stocate pe serverele unui mesager - serverele cloud sunt mai sigure și astfel recomandate în acest scop - și cheile de decriptare sunt disponibile numai de pe dispozitivele utilizatorilor pentru a evita o încălcare a datelor în cazul în care serverele sunt sparte.
De asemenea, este posibil să renunțați la stocarea completă a mesajelor pe serverele dvs. și să le stocați pe dispozitivele utilizatorilor. Dar asta înseamnă că utilizatorii dvs. nu vor putea restabili istoricul mesajelor în cazul în care dispozitivele pe care s-au conectat sunt pierdute sau șterg aplicația. Sincronizarea mesajelor între dispozitive va fi, de asemenea, imposibilă.
Pentru a crea o aplicație de mesagerie sigură, cum ar fi Signal, puteți utiliza de fapt API-ul de mesagerie criptat de la Signal în sine . Protocolul de criptare open-source al Signal este cel mai popular în rândul dezvoltatorilor care construiesc mesaje, întrucât este revizuit și auditat în mod constant. În momentul scrierii, următorii mesageri folosesc protocolul Signal pentru a cripta conținutul mesajelor lor:
- Facebook Messenger (numai chat-uri secrete)
- Skype (numai conversații private)
- Mesaje Google pentru Android (SMS)
Telegram folosește propriul algoritm de criptare AES simetric pe 256 de biți numit MTProto pentru chat-uri secrete. Totuși, acest algoritm este o sursă închisă, pentru care Telegram a fost criticat pe scară largă.
Costul realizării unei aplicații de mesagerie securizate
Costul pentru realizarea oricărei aplicații depinde în mare măsură de timpul necesar dezvoltării . În ceea ce privește numărul de funcții, mesagerii nu par prea complexi; cu toate acestea, back-end-ul singur pentru o aplicație de mesagerie bine criptată poate dura aproximativ 520 de ore pentru a fi construit .
Opțiunile obișnuite de limbaj de programare pentru un back-end de mesagerie sunt Elixir sau Erlang - Ruby on Rails nu este o alegere bună pentru o cantitate mare de date sub formă de mesaje text, mass-media și apeluri audio / video. WhatsApp folosește Erlang, în timp ce Elixir este angajat de Discord.
La Mind Studios , am dezvoltat o aplicație de messenger cu un back-end bazat pe Elixir. Cu toate acestea, Elixir în sine se bazează pe Erlang, cu ceva Ruby amestecat, astfel încât un dezvoltator experimentat Elixir poate scrie cod și în Erlang.
Iată cum ne luăm timpul necesar dezvoltării unei aplicații de mesagerie securizate :
Analiza afacerii și crearea unei specificații - peste 96 de ore
Design UI / UX - peste 168 ore
Aplicație mobilă iOS pentru client - peste 450 de ore pentru un MVP cu cele mai esențiale funcții
Dezvoltare backend - peste 520 de ore
Testarea aplicației iOS - ~ 240 de ore
Dezvoltarea Android durează puțin mai puțin decât dezvoltarea iOS, dar testarea durează mai mult datorită varietății mai largi de dispozitive.
Cu această estimare de timp dur, costul pentru construirea unei aplicații de chat cu adevărat sigure va începe de la 51.590 USD și va crește cu funcții suplimentare.
Concluzie
Mesagerii securizați sunt extrem de importanți, iar cererea pentru ei este mare astăzi și va fi mai mare mâine. Dar la fel este și competiția. Nu fiecare companie poate crea aplicații de mesagerie criptate. Pentru a dezvolta o aplicație de mesagerie instantanee sigură, cum ar fi Signal, veți avea nevoie de dezvoltatori cu experiență în această nișă .
De asemenea, va trebui să țineți pasul cu liderii din industrie atunci când vine vorba de proiectare. Aplicația Signal este simplă și nu este renumită pentru intuitivitatea sa, dar câștigă peste utilizatorii cărora le pasă de intimitatea lor mai mult decât de clopotele și fluiere. WhatsApp și Telegram, pe de altă parte, arată elegant și sunt extrem de intuitive, pe lângă faptul că sunt sigure (în timp ce securitatea lor ar putea să nu fie la același nivel cu Signal, este totuși impresionant). Deci, pentru a străluci puternic în această nișă, aplicația dvs. personalizată va trebui să fie atât sigură, cât și ușor de utilizat . Echilibrarea acestor cerințe nu este o problemă minunată. Dar cu echipa potrivită, este posibil.