Sorun: Körü körüne güven
Bir bebek telsizi uygulaması yüklediğinizde, ona çok özel bir yere erişim vermiş olursunuz: bebeğinizin odası. Uygulama dinler, bazen de izler. Ancak ebeveynler arka planda ne olduğunu çoğu zaman göremez: yayınlar üçüncü taraf sunucular üzerinden mi geçiyor, kullanım verileri toplanıyor mu, teknik olarak kimler bir şeye erişebilir?
Dürüst cevap şu: birçok uygulamada bunu bilmiyorsunuz. Kod kapalıdır ve mimari sadece bir iddia olarak kalır. Sonuçta sağlayıcıya inanmanız istenir.
Kapalı kod, açıkta kalan noktalar
Son yıllarda bebek telsizlerinin hacklenmesiyle ilgili yeterince haber çıktı. Yabancılar dinleyebildi, kameraları hareket ettirebildi veya hoparlörlerden konuşabildi. Bunlar çoğu zaman sıra dışı saldırılar değil, ciddi eksikliklerdi: şifrelenmemiş bağlantılar, varsayılan parolalar, eksik kimlik doğrulama.
Tescilli yazılımlarda dışarıdan bakanlar bu zayıflıkları çoğu zaman ancak bir şey olduktan sonra fark eder. Güvenlik araştırmacıları, bağımsız geliştiriciler ve ebeveynler bitmiş ürüne dışarıdan bakar. Bebek odasındaki bir cihaz için bu zayıf bir yaklaşımdır.
Bir güvenlik ilkesi olarak şeffaflık
Bilgi güvenliğinde eski ama faydalı bir kural vardır: Kerckhoffs ilkesi. Güvenlik, tasarımın gizli kalmasına bağlı olmamalıdır. Bir sistem, nasıl kurulduğu bilinse bile güvenli kalmalıdır.
Açıkça belgelenmiş kod, yazılımı tek başına güvenli hâle getirmez. Ancak iddiaların kontrol edilebilmesini sağlar. Konuya hâkim kişiler, pazarlama metinlerini okumak yerine veri akışlarını, anahtar türetmeyi ve kuralları inceleyebilir.
Timmy'nin yaklaşımı: Ayrı bir güvenlik çekirdeği
Timmy'de artık gerçekten güvenlik açısından kritik olan bölümleri çok net biçimde ayırıyorum. Arayüzdeki her satır, ürünün güveni hak edip etmediğini belirlemez. Belirleyici unsurlar arka uç mantığı, sinyalleşme sözleşmeleri, eşleştirme kriptografisi ve hangi verilerin bir sunucuya ulaştığıdır.
Bu nedenle güvenlik çekirdeği artık herkese açık baby-monitor-timmy-core deposunda. Uygulamanın tüm kodu şu anda açık değil. Güvenlik açısından kritik yapı taşları, arayüz ve ürün mantığından ayrılarak kendi başlarına belgelenip incelenebilmeleri sağlanıyor.
Bu somut olarak ne anlama geliyor?
- Net sınırlar: güvenlik yapı taşları arayüzden ve ürün mantığından ayrılır.
- Denetlenebilir veri akışları: eşleştirme, sinyalleşme ve arka uç arayüzleri ayrı ayrı belgelenebilir.
- Gizli takip araçları yok: kritik akışlar yalnızca teknik olarak gerekli olanları içerir.
- Uzun vadede sürdürülebilirlik: ayrı bir çekirdeği incelemek, düzensiz bir monolitten daha kolaydır.
Sonuç: Ebeveynler şeffaflığı hak ediyor
Bir uygulama bebek odasına erişiyorsa, kritik sorularda net olmalıdır: Hangi veriler oluşturuluyor? Nereye gidiyor? Kim okuyabiliyor? Ebeveynler, sayfanın altındaki bir gizlilik rozetinden daha fazlasını hak ediyor.
Baby Monitor Timmy, iyi bir ürün ile denetlenebilir güvenliğin bir arada olabileceğini göstermeli. Benim için bu, uygulamanın her köşesini herkese açmak demek değil. Eşleştirme, sinyalleşme, arka uç erişimi ve veri akışlarını belirleyen bölümleri açmak demek.