Hæ Habr!
Í dag mun ég tala um það sem ég og samstarfsmenn mínir höfum verið að gera í nokkra mánuði núna: ýta tilkynningar fyrir farsíma spjallforrit. Eins og ég sagði þegar, í umsókn okkar er megináherslan lögð á öryggi. Þess vegna komumst við að því hvort ýta tilkynningar hafi „veika punkta“ og, ef svo er, hvernig við getum jafnað þær út til að bæta þessum gagnlega valkosti við þjónustu okkar.
Ég er að gefa út þýðingu á okkar
Við skoðum efnið
Í klassísku líkaninu gera ýttutilkynningar boðbera viðkvæma fyrir MITM (Man-in-the-middle) árásum. Til dæmis, með Google, Microsoft og gömlu útgáfunni af iMessage, sendir forritið dulkóðunarlykla til Apple netþjóna - á þjóninum eru notendur auðkenndir og skilaboðahausinn (eða innihald hans) afkóðaður.
Fyrir vikið er möguleiki á að lesa bréfaskiptin með því að fá aðgang að tilkynningaþjóninum. Þetta þýðir að öll dulkóðun bréfaskipta er gagnslaus: ýttu tilkynningar munu samt leyfa þriðja aðila að lesa þær. Greinarhöfundar ræddu þennan möguleika nánar.
Ef þú heldur að Apple og Google netþjónar séu 100% öruggir gegn leka dulkóðunarlykla notenda skaltu íhuga þá staðreynd að starfsmenn þeirra hafa aðgang að þeim. Og starfsmenn eru fólk.
Þrátt fyrir alla veikleika ýtatilkynninga nota margir „öruggir“ spjallforrit, þar á meðal Signal og Telegram. Annars verða notendur að „handvirkt“ fylgjast með nýjum skilaboðum með því að skrá sig stöðugt inn í forritið. Sem er mjög óþægilegt og boðberar sem keppa munu fá forskot.
Paranoja og skynsemi
Í verkefninu okkar tókum við þetta mál vel upp fyrir nokkrum mánuðum. Við þurftum að bæta við valmöguleika fyrir ýtt tilkynningar til að vera samkeppnishæf. En á sama tíma skaltu ekki opna öryggisgat, því hvers kyns gagnaleki mun grafa undan trausti á verkefninu.
Hins vegar höfum við nú þegar mikilvægan kost: boðberinn okkar er dreifður (gögn eru geymd á blockchain) og starfsmenn hafa ekki aðgang að reikningum. Aðeins notendur hafa dulkóðunarlykla og opinberir lyklar viðmælenda eru fáanlegir á blockchain til að vernda gegn MITM árásum.
Í fyrstu útgáfunni af ýttutilkynningum ákváðum við að spila það öruggt eins mikið og mögulegt var og alls ekki senda skilaboðatextann. Þrýstiþjónustan fékk ekki texta skilaboðanna frá hnútnum, heldur aðeins merki um móttöku þess. Þess vegna sá notandinn tilkynninguna „Ný skilaboð eru komin“. Það var aðeins hægt að lesa það í messenger.
Eftir það komumst við að því að nýjasta útgáfa Apple af tilkynningum hefur nýja öryggiseiginleika. Þeir
Við höfum nú þróað aðra útgáfu af ýttu tilkynningum fyrir iOS, sem gerir þér kleift að birta texta skilaboðanna án öryggisáhættu. Í nýju hugtakinu lítur rökfræðin svona út:
- Þrýstiþjónustan sendir ýta tilkynningu með færslunúmerinu (dulkóðuðu skilaboðin geta verið mjög stór og stærð tilkynninga er mjög takmörkuð)
- Þegar tækið fær tilkynningu ræsir það NotificationServiceExtension okkar - örforrit sem biður um færslu frá hnútnum með auðkenni, afkóðar það með vistaða lykilorðinu og sendir nýja tilkynningu til kerfisins. Aðgangsorðið er geymt í öruggri geymslu.
- Kerfið birtir tilkynningu með afkóðaðri skilaboðum eða þýðingu.
- Lyklarnir fara ekki neitt, rétt eins og látlaus textaskilaboð. Þrýstiþjónustan hefur enga leið til að afkóða skilaboðin.
Við samþykktum þessa útgáfu sem virka og innleiddum hana í nýjustu uppfærslu iOS forritsins.
Þeir sem hafa áhuga á tæknilegu hliðinni geta skoðað frumkóðann:
Heimild: www.habr.com