Ongelma: sokea luottamus
Kun asennat vauvanvalvontasovelluksen, annat sille pääsyn hyvin yksityiseen paikkaan: vauvasi huoneeseen. Sovellus kuuntelee ja joskus myös katsoo. Samalla vanhemmat eivät useinkaan näe, mitä taustalla tapahtuu: kulkevatko lähetykset kolmansien osapuolten palvelimien kautta, kerätäänkö käyttötietoja, kenellä on teknisesti pääsy mihinkin?
Rehellinen vastaus on, että monien sovellusten kohdalla et tiedä. Koodi on suljettua, ja arkkitehtuuri jää pelkäksi väitteeksi. Lopulta sinun pyydetään luottamaan palveluntarjoajaan.
Suljettu koodi, avoimet haavoittuvuudet
Viime vuosina on raportoitu riittävästi murretuista vauvanvalvontalaitteista. Vieraat saattoivat kuunnella, liikuttaa kameroita tai puhua kaiuttimien kautta. Useimmiten kyse ei ollut erikoisista hyökkäyksistä, vaan vakavista perusvirheistä: salaamattomista yhteyksistä, oletussalasanoista tai puuttuvasta tunnistautumisesta.
Omisteisissa ohjelmistoissa ulkopuoliset näkevät tällaiset heikkoudet usein vasta, kun jotain on jo tapahtunut. Tietoturvatutkijat, riippumattomat kehittäjät ja vanhemmat tarkastelevat valmista tuotetta ulkopuolelta. Lastenhuoneessa käytettävälle laitteelle se on heikko toimintamalli.
Läpinäkyvyys tietoturvaperiaatteena
Tietoturvassa on vanha ja hyödyllinen sääntö: Kerckhoffsin periaate. Tietoturva ei saa perustua siihen, että toteutus pidetään salassa. Järjestelmän on pysyttävä turvallisena, vaikka joku tietäisi, miten se on rakennettu.
Avoimesti dokumentoitu koodi ei yksin tee ohjelmistosta turvallista. Se tekee väitteistä tarkistettavia. Alan osaajat voivat tutkia datavirtoja, avainten johdantoa ja sääntöjä markkinointitekstien lukemisen sijaan.
Timmyn lähestymistapa: eriytetty tietoturvaydin
Timmyssä erotan nyt hyvin selkeästi ne osat, jotka ovat aidosti tietoturvakriittisiä. Jokainen käyttöliittymärivi ei ratkaise, ansaitseeko tuote luottamuksen. Ratkaisevia ovat taustajärjestelmän logiikka, signalointisopimukset, pariliitoksen salaus sekä se, mitä tietoa päätyy palvelimelle.
Siksi tietoturvaydin sijaitsee nyt julkisessa baby-monitor-timmy-core-tietovarastossa. Koko sovelluksen koodi ei ole tällä hetkellä julkinen. Tietoturvakriittiset rakennusosat on erotettu käyttöliittymästä ja tuotelogiikasta, jotta ne voidaan dokumentoida ja tarkastaa omana kokonaisuutenaan.
Mitä tämä tarkoittaa käytännössä?
- Selkeät rajat: tietoturvan rakennusosat on erotettu käyttöliittymästä ja tuotelogiikasta.
- Auditoitavat datavirrat: pariliitos, signalointi ja taustajärjestelmän rajapinnat voidaan dokumentoida erikseen.
- Ei piilotettuja seurantatyökaluja: kriittisillä poluilla on vain se, mikä niihin teknisesti kuuluu.
- Pitkäaikainen ylläpidettävyys: erillinen ydin on helpompi tarkastaa kuin jäsentymätön monoliitti.
Johtopäätös: vanhemmat ansaitsevat läpinäkyvyyttä
Kun sovelluksella on pääsy lastenhuoneeseen, sen pitäisi vastata tärkeisiin kysymyksiin konkreettisesti: Mitä tietoa syntyy? Minne se menee? Kuka voi lukea sitä? Vanhemmat ansaitsevat enemmän kuin sivun alalaidassa olevan tietosuojamerkin.
Baby Monitor Timmyn tavoitteena on osoittaa, että hyvä tuote ja auditoitava tietoturva sopivat yhteen. Minulle se ei tarkoita sovelluksen jokaisen osan julkaisemista. Se tarkoittaa niiden osien avaamista, jotka määrittävät pariliitoksen, signaloinnin, taustajärjestelmän käyttöoikeudet ja tietovirrat.