Séchert Push Notifikatiounen: vun Theorie bis Praxis

Hey Habr!

Haut soen ech Iech iwwer dat wat meng Kollegen an ech zënter e puer Méint maachen: iwwer Push Notifikatiounen fir mobil Messenger. Wéi gesot, an eiser Demande läit den Haaptaccent op Sécherheet. Dofir hu mir erausfonnt ob Push Notifikatiounen "Schwäch Punkten" hunn a wa jo, wéi mir se kënne Niveauen fir dës nëtzlech Optioun un eise Service ze addéieren.

Ech publizéieren eng Iwwersetzung vun eisem Artikelen aus Medium mat e puer Ergänzunge vu mir selwer. Et enthält d'Resultater vun der "Enquête" an eng Geschicht iwwer wéi de Problem geléist gouf.

Materiel entdecken

Am klassesche Modell maachen Push Notifikatiounen Messenger vulnérabel fir MITM (Man-in-the-middle) Attacken. Zum Beispill, bei Google, Microsoft, an an der aler Versioun vun iMessage, schéckt d'Applikatioun Verschlësselungsschlësselen op Apple Serveren - d'Benotzer ginn um Server authentifizéiert an de Message Header (oder säin Inhalt) gëtt entschlësselt.

Séchert Push Notifikatiounen: vun Theorie bis Praxis

Als Resultat gëtt et eng Chance fir d'Korrespondenz ze liesen andeems Dir Zougang zum Push Notifikatiounsserver kritt. An dëst bedeit datt all Verschlësselung vun der Korrespondenz nëtzlos ass: Push Notifikatioune loossen nach ëmmer d'Méiglechkeet fir vun Drëttubidder ze liesen. Dës Méiglechkeet gouf méi detailléiert vun den Auteuren vum Artikel diskutéiert. "Smart verschlësselen" op Xaker.ru, fir Message Verschlësselung Methoden gewidmet.

Wann et Iech schéngt datt Apple a Google Serveren 100% verhënneren datt d'Verschlësselungsschlësselen vun de Benotzer auslecken, betruecht datt hir Mataarbechter Zougang zu hinnen hunn. A Mataarbechter si Leit.
Mat all de Schwachstelle vu Push Notifikatiounen, vill "sécher" Messenger, dorënner Signal an Telegram, benotzen se. No allem, soss mussen d'Benotzer nei Messagen "manuell" iwwerwaachen, stänneg an d'Applikatioun aginn. Wat ganz onbequem ass, a konkurréiere Messenger kréien e Virdeel.

Paranoia a gesonde Mënscheverstand


An eisem Projet si mir virun e puer Méint mat deem Thema an de Grëff komm. Mir brauche eng Push Notifikatiounsoptioun fir kompetitiv ze sinn. Awer dëst mécht kee Sécherheetsloch op, well all Datelekage d'Kredibilitéit vum Projet ënnergruewen.

Mir hunn awer schonn e wichtege Virdeel: eise Messenger ass dezentraliséiert (Daten ginn op der Blockchain gespäichert), während d'Mataarbechter keen Zougang zu Konten hunn. Nëmme Benotzer hunn Verschlësselungsschlësselen, während d'ëffentlech Schlëssele vun de Gespréichspartner op der Blockchain verfügbar sinn fir géint MITM Attacken ze schützen.

An der éischter Versioun vu Push Notifikatiounen hu mir beschloss et sou vill wéi méiglech sécher ze spillen an guer net den Text vun der Noriicht ze schécken. De Push Service krut vum Node net den Text vun der Noriicht, awer nëmmen e Signal iwwer d'Tatsaach vu senger Empfang. Dofir huet de Benotzer d'Notifikatioun "En neie Message ass ukomm." Et war méiglech nëmmen am Messenger ze liesen.

Séchert Push Notifikatiounen: vun Theorie bis Praxis
Wéi et geschafft huet: Video.

Duerno hu mir geléiert datt déi lescht Versioun vun Notifikatiounen vun Apple nei Sécherheetsfeatures huet. Si entlooss UNNotificationServiceExtension déi Entwéckler erlaabt voll verschlësselte Notifikatiounsdaten iwwer APNS ze schécken. D'Applikatioun um Apparat vum Endbenutzer mécht dann d'Entschlësselung aus (oder luet zousätzlech Daten erof) a weist eng Notifikatioun. Mir hunn et als Basis fir déi zweet Versioun vu Push Notifikatiounen geholl.

Mir hunn elo déi zweet Versioun vu Push Notifikatiounen fir iOS entwéckelt, déi Iech erlaabt den Text vun der Noriicht ouni Sécherheetsrisiken ze weisen. Am neie Konzept gesäit d'Logik esou aus:

  • De Push-Service schéckt eng Push Notifikatioun mat der Transaktiounsnummer (verschlësselte Message ka ganz grouss sinn, an d'Gréisst vun den Notifikatiounen ass ganz limitéiert)
  • Wann en Apparat eng Notifikatioun kritt, lancéiert et eis NotificationServiceExtension - eng Mikro-Applikatioun déi eng Transaktioun vum Node duerch ID freet, entschlësselt se mat der gespäicherter Passphrase an schéckt eng nei Notifikatioun un de System. De Passphrase gëtt a sécherer Späichere gespäichert.
  • De System weist eng Notifikatioun mat der dekodéierter Noriicht oder Iwwersetzung.
  • D'Schlëssele ginn néierens, grad wéi eng einfach SMS. De Push-Service huet kee Wee fir de Message ze entschlësselen.

Séchert Push Notifikatiounen: vun Theorie bis Praxis

Mir hunn dës Versioun als eng funktionéierend Versioun geholl an se an der leschter Update vun der iOS App ëmgesat.
Déi, déi un der technescher Säit interesséiert sinn, kënnen de Quellcode gesinn: github.com/adamant-im/adamant-notificationService.

Source: will.com

Setzt e Commentaire