Hey Habr!
Dina iki aku bakal ngomong babagan apa sing wis ditindakake lan kanca-kancaku nganti pirang-pirang wulan saiki: kabar push kanggo utusan cepet seluler. Kaya sing wis dakkandhakake, ing aplikasi kita, penekanan utama yaiku keamanan. Mulane, kita nemokake manawa kabar push duwe "titik lemah" lan, yen mangkono, kepiye carane bisa nambah supaya bisa nambah pilihan sing migunani kanggo layanan kita.
Aku nerbitake terjemahan saka kita
Kita mriksa materi
Ing model klasik, kabar push nggawe utusan rentan marang serangan MITM (Man-in-the-middle). Contone, karo Google, Microsoft, lan versi lawas saka iMessage, aplikasi ngirim kunci enkripsi menyang server Apple - ing server, pangguna wis dikonfirmasi lan header pesen (utawa isine) decrypted.
AkibatΓ©, ana kesempatan kanggo maca korespondensi kanthi entuk akses menyang server kabar push. Iki tegese enkripsi apa wae korespondensi ora ana gunane: kabar push isih bakal ninggalake kemungkinan diwaca dening pihak katelu. Penulis artikel kasebut mbahas kemungkinan kasebut kanthi luwih rinci.
Yen sampeyan mikir server Apple lan Google 100% aman nglawan kunci enkripsi pangguna sing bocor, nimbang kasunyatan manawa karyawan duwe akses menyang dheweke. Lan karyawan iku wong.
Senadyan kabeh kerentanan kabar push, akeh utusan cepet sing "aman", kalebu Sinyal lan Telegram, nggunakake. Yen ora, pangguna kudu "manual" ngawasi pesen anyar kanthi terus-terusan mlebu ing aplikasi kasebut. Kang banget ora trep, lan utusan saingan bakal entuk kauntungan.
Paranoia lan akal sehat
Ing proyek kita, kita ngrampungake masalah iki sawetara wulan kepungkur. Kita kudu nambah opsi kabar push supaya bisa kompetitif. Nanging ing wektu sing padha, aja mbukak bolongan keamanan, amarga bocor data bakal ngrusak kapercayan ing proyek kasebut.
Nanging, kita wis duwe kauntungan penting: utusan kita desentralisasi (data disimpen ing pamblokiran), lan karyawan ora duwe akses menyang akun. Mung pangguna sing duwe kunci enkripsi, lan kunci umum interlocutors kasedhiya ing blockchain kanggo nglindhungi saka serangan MITM.
Ing versi pisanan saka kabar push, kita mutusakΓ© kanggo muter aman sabisa lan ora ngirim pesen teks ing kabeh. Layanan push ora nampa teks pesen saka simpul, nanging mung sinyal babagan kasunyatan panrimo. Mulane, pangguna ndeleng kabar "Pesen anyar wis teka". Sampeyan bisa maca mung ing utusan.
Sawise iku, kita ngerti manawa kabar versi paling anyar saka Apple duwe fitur keamanan anyar. padha
Saiki kita wis ngembangake versi kapindho kabar push kanggo iOS, sing ngidini sampeyan nampilake teks pesen tanpa risiko keamanan. Ing konsep anyar, logika katon kaya iki:
- Layanan push ngirim kabar push kanthi nomer transaksi (pesen sing dienkripsi bisa dadi gedhe banget, lan ukuran kabar winates banget)
- Nalika piranti nampa kabar, bakal mbukak NotificationServiceExtension - aplikasi mikro sing njaluk transaksi saka simpul kanthi id, dekripsi nggunakake frasa sandhi sing disimpen, lan ngirim kabar anyar menyang sistem. Tembung sandhi disimpen ing panyimpenan sing aman.
- Sistem nampilake kabar kanthi pesen utawa terjemahan sing didekripsi.
- Tombol ora menyang ngendi wae, kaya pesen teks biasa. Layanan push ora duwe cara kanggo dekripsi pesen kasebut.
Kita nampa versi iki minangka digunakake lan dileksanakake ing nganyari paling anyar saka aplikasi iOS.
Sing kasengsem ing sisih teknis bisa ndeleng kode sumber:
Source: www.habr.com