Notificazioni push sicure: da a teoria à a pratica

Ehi Habr!

Oghje vi dicu ciò chì i mo culleghi è eiu facemu dapoi parechji mesi : nantu à e notificazioni push per i messageri mobili. Cumu l'aghju dettu, in a nostra applicazione, l'enfasi principale hè nantu à a sicurità. Dunque, avemu scupertu se e notificazioni push anu "punti debuli" è, in casu, cumu pudemu livellà per aghjunghje sta opzione utile à u nostru serviziu.

Publicu una traduzzione di u nostru articuli da Medium cù uni pochi di aghjunte da mè stessu. Contene i risultati di a "inchiesta" è una storia nantu à cumu si risolve u prublema.

Esplora u materiale

In u mudellu classicu, e notificazioni push facenu i messageri vulnerabili à l'attacchi MITM (Man-in-the-middle). Per esempiu, in Google, Microsoft, è in a versione antica di iMessage, l'applicazione manda chjavi di criptografia à i servitori Apple - l'utilizatori sò autentificati in u servitore è l'intestazione di u messagiu (o u so cuntenutu) hè decriptatu.

Notificazioni push sicure: da a teoria à a pratica

In u risultatu, ci hè una chance di leghje a currispundenza per accede à u servitore di notificazione push. È questu significa chì ogni criptografia di currispundenza hè inutile: e notificazioni push lasciaranu sempre a pussibilità di leghje da terze parti. Sta pussibilità hè statu discutitu in più detail da l'autori di l'articulu. "Criptatura intelligente" nantu à Xaker.ru, dedicatu à i metudi di criptografia di missaghju.

Se vi pare chì i servitori Apple è Google impediscenu à u 100% i chjavi di criptografia di l'utilizatori da a fuga, cunzidira chì i so impiegati anu accessu à elli. È l'impiegati sò persone.
Cù tutte e vulnerabilità di e notificazioni push, parechji messageri "sicuri", cumpresi Signal è Telegram, l'utilizanu. Dopu tuttu, altrimente l'utilizatori anu da monitorà "manualmente" i novi missaghji, entrandu constantemente in l'applicazione. Chì hè assai inconveniente, è i messageri cuncurrenti utteneranu un vantaghju.

Paranoia è sensu cumunu


In u nostru prughjettu, avemu ghjuntu à affruntà stu prublema uni pochi di mesi fà. Avemu bisognu di una opzione di notificazione push per esse cumpetitiva. Ma questu ùn apre micca un burato di sicurezza, perchè ogni fuga di dati minà a credibilità di u prugettu.

In ogni casu, avemu digià un vantaghju impurtante: u nostru messenger hè decentralizatu (a dati hè guardatu nantu à u blockchain), mentri l'impiegati ùn anu micca accessu à i cunti. Solu l'utilizatori anu chjavi di criptografia, mentre chì i chjavi publichi di l'interlocutori sò dispunibuli nantu à u blockchain per pruteggiri contra l'attacchi MITM.

In a prima versione di notificazioni push, avemu decisu di ghjucà in modu sicuru quant'è pussibule è ùn mandà micca u testu di u messagiu in tuttu. U serviziu push ricivutu da u node micca u testu di u missaghju, ma solu un signalu nantu à u fattu di u so ricivutu. Dunque, l'utilizatore hà vistu a notificazione "Un novu messagiu hè ghjuntu". Era pussibule di leghje solu in u messenger.

Notificazioni push sicure: da a teoria à a pratica
Cumu hà travagliatu: video.

Dopu quì, avemu amparatu chì l'ultima versione di notificazioni da Apple hà novi funziunalità di sicurità. Iddi liberatu UNNotificationServiceExtension chì permette à i sviluppatori di mandà dati di notificazione cumplettamente criptati via APNS. L'applicazione nantu à u dispositivu di l'utilizatore finale esegue poi a decifrazione (o scarica dati supplementari) è mostra una notificazione. Avemu pigliatu cum'è a basa per a seconda versione di notificazioni push.

Avemu avà sviluppatu a seconda versione di notificazioni push per iOS, chì permette di vede u testu di u messagiu senza risichi di sicurità. In u novu cuncettu, a logica pare cusì:

  • U serviziu push manda una notificazione push cù u numeru di transazzione (u messagiu criptatu pò esse assai grande, è a dimensione di e notificazioni hè assai limitata)
  • Quandu un dispositivu riceve una notificazione, lancia a nostra NotificationServiceExtension - una micro-applicazione chì dumanda una transazzione da u node per id, decripta cù a frase di password salvata, è manda una nova notificazione à u sistema. A passphrase hè guardata in un almacenamentu sicuru.
  • U sistema mostra una notificazione cù u missaghju decodificatu o traduzzione.
  • I chjavi ùn vanu in ogni locu, cum'è un missaghju di testu chjaru. U serviziu push ùn hà micca manera di decrypt u messagiu.

Notificazioni push sicure: da a teoria à a pratica

Avemu pigliatu sta versione cum'è una versione di travagliu è implementatu in l'ultima aghjurnazione di l'app iOS.
Quelli chì anu interessatu in u latu tecnicu ponu vede u codice fonte: github.com/adamant-im/adamant-notificationService.

Source: www.habr.com

Add a comment