Secure dis notificationes: de doctrina ad praxim

Heus Habr!

Hodie de his quae collegae mei sunt et aliquot menses nunc egi: notificationes movebo nuntiorum mobilium instantium. Ut iam dixi, in applicatione nostra principale momentum in securitate est. Investigamus ergo an notificationes impulsus "puncta infirma" habeant et, si ita, quomodo eas exaequare possumus, ut hanc optionem utilem servitio nostro adiungamus.

Ego translationem publici iuris nostri facio vasa de medio cum nonnullis accessionibus a me ipso. Eventus "investigationis" continet et fabulam quomodo problema solvitur.

Materiel examinamus

In classicis exemplaribus notificationes impulsus nuntios MITM (Man-in-medii) vulnerabiles faciunt. Exempli gratia, cum Google, Microsoft et in veteri versione iMessage, applicatio claves encryptionis Apple servientibus mittit - in calculonis usoribus authenticis et nuntius capitis (vel eius contentus) decrypta est.

Secure dis notificationes: de doctrina ad praxim

Quam ob rem, facultas est legendi correspondentiam per accessum ad notificationem dis server. Hoc significat quodvis encryption correspondentiae inutilis est: notificationes impulsus adhuc facultatem legendi per partes tertias relinquet. De hac possibilitate fusius auctores articuli disputaverunt. "Encrypt recte" in Xaker.ru, methodis encrypting nuntia.

Si Apple et Google servers C% secure contra claves encryption usoris portasse censes, id considera quod accessum ad eas conductos habeant. Sunt et elit populus.
Quamvis omnes vulnerabiles notificationes impulsus, multi nuncii "securi" instant, inter signum et Telegram, illis utuntur. Alioquin, usores debebunt "manually" monitor novas nuntios assidue colligationem in applicatione. Quod valde incommodum est, et nuncii certatim commodum obtinebunt.

Paranoia et sensus communis


In nostro proposito hanc quaestionem ante aliquot menses proxime suscepimus. Nobis opus est optioni notificationis impulsum addere ut competitive esse. Sed simul, ne foramen securitatis aperias, quia notitia quaevis effluo in rei fiduciam labefaciet.

Tamen iam magnum commodum habemus: nuntius noster decentralized (data in claustro reposita est), et operarii aditus ad rationes non habent. Tantum utentes claves encryptionum habent, et claves publicae interlocutorum praesto sunt in claustro ad tuendum contra impetus MITM.

In prima notificationum versione dis, eam quam maxime tutam agere decrevimus nec nuntium textum omnino transmittere. Ministerium impulsus textum nuntii e nodo non recipiebat, sed tantum signum de facto acceptionis suae. Ideo utens vidit notificationem "Novus nuntius advenit". Potuit hoc solum in nuntio legere.

Secure dis notificationes: de doctrina ad praxim
Quomodo laboravit: video.

Post hoc cognovimus novissimam versionem notificationum Apple novas lineas securitatis habere. They dimisit UNNotificationServiceExtension, quae tincidunt ut notificationes notificationes plene encryptas mitteret super APNS. App in fine machinae usoris decryption tunc agit (vel notitia additae downloads) et notificationem ostendit. Id ut fundamentum cepimus in notificationes secundae versionis dis.

Nunc alteram versionem notificationum dis notificationum pro iOS elaboravimus, quae te permittit ut textus nuntii sine periculo securitatis exhibeas. In novo notione logica sic se habet:

  • Dis ministerium mittit impulsum notificationem cum negotio numero (nuntius encrypted potest esse amplissimus, et magnitudo notificationum valde limitata)
  • Cum machina notificationem accipit, nostram NotificationServiceExtensionem - microapplicationem movet quae transactionem a nodo per id petit, decryptas servatas passphrases utens, novamque notificationem ad systema mittit. The passphrase is stored in secure storage.
  • Systema notificationem exhibet decrypted nuntium vel translationem.
  • Claves non alicubi eunt, sicut nuntius textus plani. Dis ministerium nullum habet nuntium ad minuendum.

Secure dis notificationes: de doctrina ad praxim

Hanc versionem accepimus ut operantes et perficiamus eam in recentissima renovatione applicationis iOS.
Ii, quorum interest in parte technica, fontem codicem videre possunt: github.com/Adamant-im/adamant-notificationService.

Source: www.habr.com