Problem: Kor-koranə etibar
Körpə monitoru tətbiqi quraşdıranda ona çox şəxsi bir məkana — körpənizin otağına — giriş verirsiniz. Tətbiq dinləyir, bəzən də izləyir. Eyni zamanda, valideynlər çox vaxt arxa planda nə baş verdiyini görə bilmirlər: yayım üçüncü tərəf serverlərindən keçir, istifadə məlumatları toplanır, texniki baxımdan kim nəyəsə giriş edə bilər?
Dürüst cavab budur: bir çox tətbiqdə bunu bilmirsiniz. Kod qapalıdır, arxitektura isə sadəcə bir iddia olaraq qalır. Sonda provayderə inanmağınız gözlənilir.
Qapalı kod, açıq boşluqlar
Son illərdə sındırılmış körpə monitorları barədə kifayət qədər xəbər olub. Yad adamlar dinləyə, kameraları hərəkət etdirə və ya dinamiklərdən danışa biliblər. Çox vaxt bunlar qeyri-adi hücumlar deyil, ciddi çatışmazlıqlar idi: şifrələnməmiş bağlantılar, standart parollar, çatışmayan autentifikasiya.
Mülkiyyətli proqram təminatında kənar şəxslər bu zəiflikləri çox vaxt yalnız nəsə baş verəndən sonra görürlər. Təhlükəsizlik tədqiqatçıları, müstəqil tərtibatçılar və valideynlər hazır məhsula kənardan baxırlar. Körpə otağındakı cihaz üçün bu, zəif yanaşmadır.
Təhlükəsizlik prinsipi kimi şəffaflıq
İnformasiya təhlükəsizliyində köhnə, faydalı bir qayda var: Kerckhoffs prinsipi. Təhlükəsizlik dizaynın gizli qalmasından asılı olmamalıdır. Kimsə onun necə qurulduğunu bilsə belə, sistem təhlükəsiz qalmalıdır.
Açıq şəkildə sənədləşdirilmiş kod proqramı öz-özünə təhlükəsiz etmir. Amma iddiaları yoxlamağa imkan verir. Sahəni bilən şəxslər marketinq mətnini oxumaq əvəzinə məlumat axınlarını, açarların yaradılmasını və qaydaları araşdıra bilirlər.
Timmy-nin yanaşması: Ayrı təhlükəsizlik nüvəsi
Timmy-də indi hansı hissələrin həqiqətən təhlükəsizlik baxımından kritik olduğunu çox aydın şəkildə ayırıram. İnterfeysdəki hər sətir məhsulun etibara layiq olub-olmadığını müəyyən etmir. Həlledici hissələr backend məntiqi, siqnallaşma müqavilələri, qoşalaşdırma kriptoqrafiyası və hansı məlumatların serverə çatması məsələsidir.
Buna görə təhlükəsizlik nüvəsi indi açıq baby-monitor-timmy-core repozitoriyasında. Hazırda tətbiqin tam kodu açıq deyil. Təhlükəsizlik baxımından kritik qurucu bloklar interfeys və məhsul məntiqindən ayrılır ki, ayrıca sənədləşdirilə və nəzərdən keçirilə bilsin.
Bu, konkret olaraq nə deməkdir?
- Aydın sərhədlər: təhlükəsizlik qurucu blokları interfeys və məhsul məntiqindən ayrıdır.
- Yoxlanıla bilən məlumat axınları: qoşalaşdırma, siqnallaşma və backend interfeysləri ayrıca sənədləşdirilə bilər.
- Gizli izləyicilər yoxdur: kritik axınlarda yalnız texniki baxımdan zəruri olanlar var.
- Uzunmüddətli dəstəklənmə: ayrı nüvəni yoxlamaq nizamsız monolitdən daha asandır.
Nəticə: Valideynlər şəffaflığa layiqdir
Tətbiqin körpə otağına girişi varsa, əsas suallar barədə konkret olmalıdır: Hansı məlumat yaradılır? Hara gedir? Onu kim oxuya bilər? Valideynlər səhifənin altındakı məxfilik nişanından daha artığına layiqdirlər.
Baby Monitor Timmy göstərməlidir ki, yaxşı məhsul ilə yoxlanıla bilən təhlükəsizlik birlikdə mümkündür. Mənim üçün bu, tətbiqin hər küncünü açıq etmək demək deyil. Bu, cütləşdirmə, siqnallaşdırma, backend girişi və məlumat axınlarını müəyyən edən hissələri açmaq deməkdir.