Problema: aklas pasitikėjimas
Įdiegę kūdikio stebėjimo programėlę, suteikiate jai prieigą prie labai privačios erdvės – savo kūdikio kambario. Programėlė fiksuoja garsą, o kartais ir vaizdą. Tuo pat metu tėvai dažnai nemato, kas vyksta fone: ar duomenų srautai perduodami per trečiųjų šalių serverius, ar renkami naudojimo duomenys, kas techniškai gali gauti prieigą prie šių duomenų?
Sąžiningas atsakymas: naudodami daugelį programėlių to nežinote. Kodas uždaras, o architektūra tėra teikėjo teiginys. Galiausiai jūsų prašoma pasitikėti paslaugos teikėju.
Uždaras kodas, atviri pažeidžiamumai
Pastaraisiais metais buvo nemažai pranešimų apie įsilaužimus į kūdikių stebėjimo įrenginius. Svetimi žmonės galėjo klausytis, valdyti kameras ar kalbėti per garsiakalbius. Dažniausiai tai nebuvo egzotiškos atakos, o rimtos spragos: nešifruoti ryšiai, numatytieji slaptažodžiai, trūkstamas tapatybės patvirtinimas.
Kai programinė įranga yra nuosavybinė, kiti žmonės tokias silpnybes dažnai pamato tik tada, kai jau kas nors nutinka. Saugumo tyrėjai, nepriklausomi kūrėjai ir tėvai baigtą produktą gali vertinti tik iš išorės. Įrenginiui kūdikio kambaryje tai yra silpnas modelis.
Skaidrumas kaip saugumo principas
Informacijos saugume galioja sena, naudinga taisyklė: Kerckhoffso principas. Saugumas neturi priklausyti nuo sistemos sandaros slaptumo. Sistema turi išlikti saugi net tada, kai žinoma, kaip ji sukurta.
Viešai dokumentuotas kodas savaime nepadaro programinės įrangos saugios. Tačiau jis leidžia patikrinti teiginius. Šią sritį išmanantys žmonės gali nagrinėti duomenų srautus, raktų išvedimą ir taisykles, užuot skaitę rinkodaros tekstus.
Timmy požiūris: atskirtas saugumo branduolys
„Timmy“ programėlėje dabar labai aiškiai atskiriu tas dalis, kurios iš tiesų yra kritiškai svarbios saugumui. Ne kiekviena naudotojo sąsajos eilutė lemia, ar produktas vertas pasitikėjimo. Lemiamą reikšmę turi serverio dalies logika, signalizavimo sąsajų specifikacijos, susiejimo kriptografija ir tai, kokie duomenys pasiekia serverį.
Todėl saugumo branduolys dabar yra viešoje baby-monitor-timmy-core saugykloje. Visas programėlės kodas šiuo metu nėra viešas. Saugumui kritiškai svarbūs blokai atskirti nuo naudotojo sąsajos ir produkto logikos, kad juos būtų galima dokumentuoti ir peržiūrėti atskirai.
Ką tai konkrečiai reiškia?
- Aiškios ribos: saugumo blokai atskirti nuo naudotojo sąsajos ir produkto logikos.
- Patikrinami duomenų srautai: susiejimą, signalizavimą ir serverio dalies sąsajas galima dokumentuoti atskirai.
- Jokių paslėptų sekiklių: kritiniuose procesuose yra tik tai, kas techniškai būtina.
- Ilgalaikis prižiūrimumas: atskirą branduolį lengviau peržiūrėti nei netvarkingą monolitą.
Išvada: tėvai nusipelno skaidrumo
Kai programėlė turi prieigą prie kūdikio kambario, ji turėtų konkrečiai atsakyti į svarbiausius klausimus: kokie duomenys sukuriami? Kur jie keliauja? Kas gali juos perskaityti? Tėvai nusipelno daugiau nei privatumo ženklelio puslapio poraštėje.
Baby Monitor Timmy turėtų parodyti, kad geras produktas ir patikrinamas saugumas gali derėti. Man tai nereiškia, kad reikia viešinti kiekvieną programėlės kampelį. Tai reiškia atverti dalis, kurios lemia susiejimą, signalizavimą, serverio prieigą ir duomenų srautus.