Problém: slepá důvěra
Když si nainstalujete aplikaci dětské chůvičky, dáte jí přístup do velmi soukromého místa: do dětského pokoje. Aplikace poslouchá a někdy i sleduje obraz. Rodiče přitom často nevidí, co se děje na pozadí: prochází přenos přes servery třetích stran, sbírají se údaje o používání, kdo má k čemukoli technicky přístup?
Upřímná odpověď zní: u mnoha aplikací to nevíte. Kód je uzavřený a architektura zůstává jen tvrzením. Nakonec máte věřit poskytovateli.
Uzavřený kód, otevřená slabá místa
V posledních letech se objevilo dost zpráv o napadených dětských chůvičkách. Cizí lidé mohli odposlouchávat, ovládat kamery nebo mluvit přes reproduktory. Většinou nešlo o exotické útoky, ale o závažná selhání: nešifrovaná připojení, výchozí hesla, chybějící ověřování.
U proprietárního softwaru si lidé zvenčí těchto slabin často všimnou až poté, co se něco stane. Bezpečnostní výzkumníci, nezávislí vývojáři i rodiče vidí hotový produkt jen zvenčí. Pro zařízení v dětském pokoji je to slabý model.
Transparentnost jako princip bezpečnosti
Informační bezpečnost má jedno staré a užitečné pravidlo: Kerckhoffsův princip. Bezpečnost nesmí záviset na tom, že návrh zůstane tajný. Systém by měl zůstat bezpečný, i když někdo ví, jak je postavený.
Otevřeně zdokumentovaný kód sám o sobě software bezpečným neudělá. Umožňuje však ověřit jednotlivá tvrzení. Lidé, kteří se v oboru vyznají, mohou kontrolovat toky dat, odvozování klíčů a pravidla místo čtení marketingových textů.
Přístup Timmy: oddělené bezpečnostní jádro
V Timmy teď velmi jasně odděluji části, které jsou skutečně kritické pro bezpečnost. Ne každý řádek rozhraní rozhoduje o tom, zda si produkt zaslouží důvěru. Rozhodující jsou logika backendu, signalizační rozhraní, kryptografie párování a otázka, jaká data se dostanou na server.
Proto nyní bezpečnostní jádro najdete ve veřejném repozitáři baby-monitor-timmy-core. Kompletní kód aplikace teď veřejný není. Části kritické pro bezpečnost jsou vyčleněné z rozhraní a produktové logiky, aby je bylo možné samostatně dokumentovat a kontrolovat.
Co to konkrétně znamená?
- Jasné hranice: bezpečnostní stavební bloky jsou oddělené od rozhraní a produktové logiky.
- Auditovatelné toky dat: párování, signalizaci a rozhraní backendu lze samostatně dokumentovat.
- Žádné skryté sledování: kritické části obsahují jen to, co tam z technického hlediska patří.
- Dlouhodobá udržovatelnost: samostatné jádro se kontroluje snáz než neuspořádaný monolit.
Závěr: rodiče si zaslouží transparentnost
Když má aplikace přístup do dětského pokoje, měla by konkrétně odpovídat na zásadní otázky: Jaká data vznikají? Kam jdou? Kdo je může číst? Rodiče si zaslouží víc než jen odznak o soukromí v patičce.
Baby Monitor Timmy má ukázat, že kvalitní produkt a auditovatelné zabezpečení mohou jít ruku v ruce. Pro mě to neznamená zveřejnit každý kout aplikace. Znamená to otevřít části, které rozhodují o párování, signalizaci, přístupu k backendu a tocích dat.