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