Problém: slepá dôvera
Keď si nainštalujete aplikáciu na monitorovanie bábätka, dáte jej prístup k veľmi súkromnému miestu: k detskej izbe vášho dieťaťa. Aplikácia počúva a niekedy aj sleduje obraz. Rodičia pritom často nevidia, čo sa deje na pozadí: prechádza prenos cez servery tretích strán, zbierajú sa údaje o používaní, kto k čomukoľvek technicky môže pristupovať?
Úprimná odpoveď znie: pri mnohých aplikáciách to neviete. Kód je uzavretý a architektúra je len tvrdením. Napokon máte jednoducho veriť poskytovateľovi.
Uzavretý kód, otvorené slabiny
V posledných rokoch sa objavilo dosť správ o napadnutých detských pestúnkach. Cudzí ľudia mohli odpočúvať, ovládať kamery alebo hovoriť cez reproduktory. Väčšinou nešlo o exotické útoky, ale o vážne zlyhania: nešifrované pripojenia, predvolené heslá, chýbajúce overenie totožnosti.
Pri proprietárnom softvéri ľudia zvonka často uvidia tieto slabiny až po tom, čo sa niečo stane. Bezpečnostní výskumníci, nezávislí vývojári aj rodičia sa na hotový produkt pozerajú zvonka. Pri zariadení v detskej izbe je to slabý model.
Transparentnosť ako bezpečnostný princíp
Informačná bezpečnosť má staré a užitočné pravidlo: Kerckhoffsov princíp. Bezpečnosť nesmie závisieť od toho, že návrh zostane tajný. Systém má zostať bezpečný aj vtedy, keď niekto vie, ako je vytvorený.
Verejne zdokumentovaný kód sám osebe softvér neochráni. Umožňuje však overiť tvrdenia. Ľudia, ktorí sa v tejto oblasti vyznajú, môžu skúmať toky dát, odvodenie kľúčov a pravidlá namiesto čítania marketingových textov.
Timmyho prístup: oddelené bezpečnostné jadro
V Timmy teraz veľmi jasne oddeľujem časti, ktoré sú skutočne kritické z hľadiska bezpečnosti. Nie každý riadok používateľského rozhrania rozhoduje o tom, či si produkt zaslúži dôveru. Rozhodujúce sú logika backendu, signalizačné zmluvy, kryptografia párovania a otázka, ktoré dáta sa dostanú na server.
Preto je bezpečnostné jadro teraz vo verejnom repozitári baby-monitor-timmy-core. Celý kód aplikácie momentálne nie je verejný. Bezpečnostne kritické stavebné prvky sú vyčlenené z používateľského rozhrania a logiky produktu, aby sa dali samostatne dokumentovať a kontrolovať.
Čo to konkrétne znamená?
- Jasné hranice: bezpečnostné stavebné prvky sú oddelené od používateľského rozhrania a logiky produktu.
- Overiteľné toky dát: párovanie, signalizácia a backendové rozhrania sa dajú dokumentovať samostatne.
- Žiadne skryté sledovanie: kritické cesty obsahujú len to, čo tam z technického hľadiska patrí.
- Dlhodobá udržiavateľnosť: samostatné jadro sa kontroluje ľahšie než neusporiadaný monolit.
Záver: Rodičia si zaslúžia transparentnosť
Keď má aplikácia prístup do detskej izby, mala by pri kľúčových otázkach hovoriť jasne: Aké údaje vznikajú? Kam idú? Kto ich môže čítať? Rodičia si zaslúžia viac než len odznak o súkromí v pätičke.
Baby Monitor Timmy má ukázať, že dobrý produkt a overiteľné zabezpečenie môžu fungovať spolu. Pre mňa to neznamená zverejniť každý kút aplikácie. Znamená to otvoriť časti, ktoré rozhodujú o párovaní, signalizácii, prístupe k backendu a tokoch dát.