Խնդիրը․ կույր վստահություն
Երբ տեղադրում եք մանկական մոնիտորի հավելված, այն մուտք է ստանում շատ անձնական մի վայր՝ ձեր փոքրիկի սենյակ։ Հավելվածը լսում է, իսկ երբեմն նաև դիտում։ Միևնույն ժամանակ ծնողները հաճախ չեն տեսնում, թե ինչ է կատարվում հետին պլանում․ արդյոք հոսքերը անցնո՞ւմ են երրորդ կողմի սերվերներով, հավաքվո՞ւմ են օգտագործման տվյալներ, և տեխնիկապես ովքե՞ր կարող են մուտք ունենալ։
Ազնիվ պատասխանը սա է․ շատ հավելվածների դեպքում դուք դա չգիտեք։ Կոդը փակ է, իսկ ճարտարապետությունը մնում է պարզապես պնդում։ Ի վերջո ձեզանից պահանջվում է հավատալ մատակարարին։
Փակ կոդ, բաց խոցելիություններ
Վերջին տարիներին մանկական մոնիտորների կոտրման մասին բազմաթիվ հաղորդումներ են եղել։ Անծանոթ մարդիկ կարողացել են գաղտնի լսել, շարժել տեսախցիկները կամ խոսել բարձրախոսների միջոցով։ Շատ դեպքերում դրանք բարդ հարձակումներ չէին, այլ լուրջ ձախողումներ՝ չգաղտնագրված կապեր, լռելյայն գաղտնաբառեր, բացակայող նույնականացում։
Սեփականատիրական ծրագրային ապահովման դեպքում արտաքին մարդիկ հաճախ այդ թուլությունները տեսնում են միայն այն բանից հետո, երբ ինչ-որ բան արդեն տեղի է ունեցել։ Անվտանգության հետազոտողները, անկախ մշակողները և ծնողները պատրաստի արտադրանքին նայում են դրսից։ Մանկական սենյակում օգտագործվող սարքի համար սա թույլ մոտեցում է։
Թափանցիկությունը՝ որպես անվտանգության սկզբունք
Տեղեկատվական անվտանգությունն ունի հին, օգտակար կանոն․ Կերկհոֆսի սկզբունքը։ Անվտանգությունը չպետք է կախված լինի նրանից, որ համակարգի կառուցվածքը գաղտնի է մնում։ Համակարգը պետք է անվտանգ մնա, նույնիսկ երբ հայտնի է, թե ինչպես է այն կառուցված։
Հրապարակայնորեն փաստագրված կոդն ինքնին ծրագրային ապահովումը անվտանգ չի դարձնում։ Սակայն այն հնարավորություն է տալիս ստուգել պնդումները։ Ոլորտին ծանոթ մարդիկ կարող են ուսումնասիրել տվյալների հոսքերը, գաղտնագրային բանալիների ածանցումը և կանոնները՝ պարզապես մարքեթինգային տեքստ կարդալու փոխարեն։
Timmy-ի մոտեցումը․ առանձնացված անվտանգության միջուկ
Timmy-ում ես այժմ շատ հստակ առանձնացնում եմ այն մասերը, որոնք իսկապես կարևոր են անվտանգության համար։ Ինտերֆեյսի յուրաքանչյուր տող չէ, որ որոշում է՝ արդյոք արտադրանքն արժանի է վստահության։ Որոշիչ մասերն են սերվերային տրամաբանությունը, ազդանշանավորման պայմանագրերը, զուգակցման գաղտնագրությունը և այն հարցը, թե որ տվյալներն են հասնում սերվերին։
Ահա թե ինչու անվտանգության միջուկն այժմ գտնվում է հանրային baby-monitor-timmy-core պահոցում. Հավելվածի ամբողջ կոդն այս պահին հանրային չէ։ Անվտանգության համար կարևոր բաղադրիչները առանձնացված են ինտերֆեյսից և արտադրանքի տրամաբանությունից, որպեսզի հնարավոր լինի դրանք առանձին փաստագրել և վերանայել։
Ի՞նչ է սա նշանակում գործնականում։
- Հստակ սահմաններ․ անվտանգության բաղադրիչները առանձնացված են ինտերֆեյսից և արտադրանքի տրամաբանությունից։
- Ստուգելի տվյալների հոսքեր․ զուգակցումը, ազդանշանավորումը և սերվերային միջերեսները կարող են առանձին փաստագրվել։
- Թաքնված հետևողներ չկան․ կարևոր ուղիները պարունակում են միայն այն, ինչ տեխնիկապես անհրաժեշտ է այնտեղ։
- Երկարաժամկետ սպասարկելիություն․ առանձին միջուկը ստուգելն ավելի հեշտ է, քան հստակ կառուցվածք չունեցող միաձույլ համակարգը։
Եզրակացություն․ ծնողները թափանցիկության արժանի են
Երբ հավելվածը մուտք ունի մանկական սենյակ, այն պետք է հստակ պատասխանի կարևոր հարցերին․ ի՞նչ տվյալներ են ստեղծվում, ո՞ւր են դրանք գնում, ո՞վ կարող է կարդալ դրանք։ Ծնողներն արժանի են ավելին, քան էջի ներքևում տեղադրված գաղտնիության նշան։
Baby Monitor Timmy-ն պետք է ցույց տա, որ լավ արտադրանքն ու ստուգելի անվտանգությունը կարող են համատեղվել։ Ինձ համար դա չի նշանակում հավելվածի յուրաքանչյուր հատված հանրային դարձնել։ Դա նշանակում է բացել այն մասերը, որոնք որոշում են զուգակցումը, ազդանշանավորումը, սերվերային հասանելիությունը և տվյալների հոսքերը։