Проблемот: слепа доверба
Кога инсталирате апликација за бебефон, ѝ давате пристап до многу приватно место: собата на вашето бебе. Апликацијата слуша, а понекогаш и гледа. Во исто време, родителите често не можат да видат што се случува во заднина: дали преносите минуваат низ сервери на трети страни, дали се собираат податоци за користењето и кој воопшто има техничка можност за пристап?
Искрениот одговор е: кај многу апликации, не знаете. Кодот е затворен, а архитектурата останува само тврдење. На крај, од вас се бара да му верувате на давателот.
Затворен код, отворени слабости
Во последните години имаше доволно извештаи за хакирани бебефони. Непознати лица можеа да прислушуваат, да поместуваат камери или да зборуваат преку звучниците. Најчесто не стануваше збор за необични напади, туку за сериозни пропусти: нешифрирани врски, стандардни лозинки, недостиг од автентикација.
Кај сопственичкиот софтвер, надворешните лица често ги забележуваат тие слабости дури откако ќе се случи нешто. Безбедносните истражувачи, независните програмери и родителите гледаат готов производ однадвор. За уред во собата на бебето, тоа е слаб пристап.
Транспарентноста како безбедносен принцип
Информатичката безбедност има едно старо, корисно правило: Принципот на Керкхофс. Безбедноста не смее да зависи од тоа дизајнот да остане таен. Системот треба да остане безбеден дури и кога некој знае како е изграден.
Јавно документираниот код сам по себе не го прави софтверот безбеден. Но, ги прави тврдењата проверливи. Луѓето што ја разбираат оваа област можат да ги проверат тековите на податоци, изведувањето на клучеви и правилата, наместо да читаат маркетиншки текстови.
Пристапот на Timmy: одвоено безбедносно јадро
Во Timmy, сега многу јасно разграничувам кои делови навистина се клучни за безбедноста. Дали производот заслужува доверба не зависи од секој ред во корисничкиот интерфејс. Пресудни се логиката на заднинскиот систем, договорите за сигнализација, криптографијата за спарување и прашањето кои податоци стигнуваат до сервер.
Затоа безбедносното јадро сега се наоѓа во јавниот репозиториум baby-monitor-timmy-core. Целиот код на апликацијата во моментов не е јавен. Градежните блокови критични за безбедноста се издвоени од корисничкиот интерфејс и логиката на производот, за да можат самостојно да се документираат и проверуваат.
Што значи ова конкретно?
- Јасни граници: безбедносните градбени блокови се одвоени од корисничкиот интерфејс и логиката на производот.
- Проверливи текови на податоци: спарувањето, сигнализацијата и интерфејсите на заднинскиот систем може одделно да се документираат.
- Без скриени тракери: критичните патеки го содржат само она што технички припаѓа таму.
- Долгорочно одржување: одвоеното јадро е полесно за проверка од неструктуриран монолит.
Заклучок: Родителите заслужуваат транспарентност
Кога апликацијата има пристап до собата на бебето, треба јасно да одговори на клучните прашања: Кои податоци се создаваат? Каде одат? Кој може да ги прочита? Родителите заслужуваат повеќе од ознака за приватност во подножјето на страницата.
Baby Monitor Timmy треба да покаже дека добар производ и безбедност што може да се провери можат да одат заедно. За мене, тоа не значи секој дел од апликацијата да биде јавен. Тоа значи да се отворат деловите што ги определуваат спарувањето, сигнализацијата, пристапот до заднинскиот систем и тековите на податоци.