Salama arifa za kushinikiza: kutoka kwa nadharia hadi mazoezi

Habari Habr!

Leo nitazungumza kuhusu kile ambacho mimi na wenzangu tumekuwa tukifanya kwa miezi kadhaa sasa: arifa zinazotumwa na programu kwa watumiaji wa simu za papo hapo. Kama nilivyosema tayari, katika maombi yetu mkazo kuu ni juu ya usalama. Kwa hivyo, tuligundua ikiwa arifa zinazotumwa na programu huibiwa zina "alama dhaifu" na, ikiwa ni hivyo, jinsi tunavyoweza kuziweka sawa ili kuongeza chaguo hili muhimu kwenye huduma yetu.

Ninachapisha tafsiri yetu makala kutoka Medium na nyongeza ndogo kutoka kwangu. Ina matokeo ya "uchunguzi" na hadithi kuhusu jinsi tatizo lilitatuliwa.

Tunachunguza nyenzo

Katika muundo wa kawaida, arifa zinazotumwa na programu hata wakati huitumii huwafanya wajumbe kuathiriwa na mashambulizi ya MITM (Man-in-the-katikati). Kwa mfano, na Google, Microsoft, na toleo la zamani la iMessage, programu hutuma funguo za usimbuaji kwa seva za Apple - kwenye seva, watumiaji wamethibitishwa na kichwa cha ujumbe (au yaliyomo) yamefutwa.

Salama arifa za kushinikiza: kutoka kwa nadharia hadi mazoezi

Kama matokeo, kuna nafasi ya kusoma mawasiliano kwa kupata ufikiaji wa seva ya arifa ya kushinikiza. Hii inamaanisha kuwa usimbaji fiche wowote wa mawasiliano hauna maana: arifa za kushinikiza bado zitaacha uwezekano wa kusomwa na wahusika wengine. Waandishi wa makala walijadili uwezekano huu kwa undani zaidi. "Simba kwa njia sahihi" kwenye Xaker.ru, iliyojitolea kwa njia za kusimba ujumbe.

Iwapo unafikiri seva za Apple na Google ziko salama 100% dhidi ya funguo za usimbaji fiche zinazovuja, zingatia ukweli kwamba wafanyakazi wao wanaweza kuzifikia. Na wafanyakazi ni watu.
Licha ya udhaifu wote wa arifa za kushinikiza, wajumbe wengi wa "salama" wa papo hapo, ikiwa ni pamoja na Signal na Telegram, wanazitumia. Vinginevyo, watumiaji watalazimika "kwa mikono" kufuatilia ujumbe mpya kwa kuingia kila mara kwenye programu. Ambayo ni ngumu sana, na wajumbe wanaoshindana watapata faida.

Paranoia na akili ya kawaida


Katika mradi wetu, tulishughulikia suala hili kwa karibu miezi kadhaa iliyopita. Tulihitaji kuongeza chaguo la arifa kutoka kwa programu ili tushindane. Lakini wakati huo huo, usifungue shimo la usalama, kwa sababu uvujaji wowote wa data utadhoofisha imani katika mradi huo.

Walakini, tayari tunayo faida muhimu: mjumbe wetu amegawanywa (data imehifadhiwa kwenye blockchain), na wafanyikazi hawana ufikiaji wa akaunti. Watumiaji pekee ndio walio na funguo za usimbaji fiche, na funguo za umma za interlocutors zinapatikana kwenye blockchain ili kulinda dhidi ya mashambulizi ya MITM.

Katika toleo la kwanza la arifa zinazotumwa na programu hata wakati huitumii, tuliamua kulicheza kwa usalama iwezekanavyo na kutosambaza maandishi ya ujumbe hata kidogo. Huduma ya kushinikiza haikupokea maandishi ya ujumbe kutoka kwa node, lakini ni ishara tu kuhusu ukweli wa kupokea kwake. Kwa hiyo, mtumiaji aliona arifa ya "Ujumbe Mpya umefika". Iliwezekana kuisoma tu katika mjumbe.

Salama arifa za kushinikiza: kutoka kwa nadharia hadi mazoezi
Jinsi ilifanya kazi: video.

Baada ya hapo, tulijifunza kwamba toleo la hivi punde la arifa za Apple lina vipengele vipya vya usalama. Wao iliyotolewa UNNotificationServiceExtension, ambayo huruhusu wasanidi programu kutuma data ya arifa iliyosimbwa kwa njia fiche kikamilifu kupitia APNS. Programu kwenye kifaa cha mtumiaji wa mwisho kisha hufanya usimbuaji (au kupakua data ya ziada) na kuonyesha arifa. Tuliichukulia kama msingi wa toleo la pili la arifa zinazotumwa na programu hata wakati huitumii.

Sasa tumeunda toleo la pili la arifa zinazotumwa na programu kwa iOS, ambalo hukuruhusu kuonyesha maandishi ya ujumbe bila hatari ya usalama. Katika dhana mpya, mantiki inaonekana kama hii:

  • Huduma ya programu hutuma arifa ya kushinikiza na nambari ya muamala (ujumbe uliosimbwa unaweza kuwa mkubwa sana, na saizi ya arifa ni ndogo sana)
  • Kifaa kinapopokea arifa, huzindua NotificationServiceExtension yetu - programu ndogo ambayo huomba muamala kutoka kwa nodi kwa kitambulisho, kuiondoa kwa njia fiche kwa kutumia kaulisiri iliyohifadhiwa, na kutuma arifa mpya kwa mfumo. Nenosiri limehifadhiwa katika hifadhi salama.
  • Mfumo unaonyesha arifa iliyo na ujumbe uliosimbwa au tafsiri.
  • Vifunguo haviendi popote, kama vile ujumbe wa maandishi wazi. Huduma ya kusukuma haina njia ya kusimbua ujumbe.

Salama arifa za kushinikiza: kutoka kwa nadharia hadi mazoezi

Tulikubali toleo hili kama linafanya kazi na kulitekeleza katika sasisho la hivi punde la programu ya iOS.
Wale wanaovutiwa na upande wa kiufundi wanaweza kutazama msimbo wa chanzo: github.com/Adamant-im/adamant-notificationService.

Chanzo: mapenzi.com

Kuongeza maoni