Galaxus, serbestçe erişilebilen bebek kamerası kayıtlarını haberleştirdi; The Verge ise yaklaşık 1,1 milyon Meari cihazının etkilendiğini bildirdi. Benim için çıkarılacak ders açık: Arka plandaki platform mesajları, görüntüleri veya anahtarları her cihaz için düzgün biçimde ayırmıyorsa, giriş yapmak çocuk odasını korumaz. Timmy dünyadaki her güvenlik sorununu çözmez. Ancak Timmy'nin kritik medya ve eşleştirme sırları, bulut kamera platformunun içinde tutulmaz.
Meari vakasında neyin başarısız olmuş olabileceği
Kamuya açık haberlerde beyaz etiketli bir platform anlatılıyor. Görünürde farklı birçok marka, aynı Meari/CloudEdge altyapısına bağlı kameralar sattı. Olayın önemi de burada: Ortak bir platform yetkilendirme sınırını yanlış çizerse sonuç tek bir zayıf kamera değil, çok sayıda cihazı etkileyen bir ifşa olur.
Bildirilen sorun, zayıf varsayılan parolaların ötesine geçiyor. Kaynaklar; cihaz başına yeterli abonelik denetimi uygulanmayan MQTT mesajlarını, herkese açık görüntü URL'lerini, zayıf görüntü gizleme yöntemlerini ve sabit ya da uygulamadan çıkarılabilen anahtarları anlatıyor. Bu bir platform hatasıdır: Altyapı, başka bir hesabın asla erişememesi gereken verileri açığa çıkarabilmiştir.
| Bulut kamera riski | Timmy'nin buna karşı geliştirdiği tasarım |
|---|---|
| Arka uç, olaylara ait görüntüleri depolar veya dağıtır. | Timmy'de çocuk odası görüntüleri için bulut arşivi yoktur; medya canlı WebRTC üzerinden aktarılır. |
| Bir aracı ya da depolama alanı, her cihazı kusursuz biçimde yetkilendirmek zorundadır. | Firestore yalnızca eşleştirme ve sinyalleşme verilerini taşır; SDP/ICE yazılmadan önce şifrelenir. |
| Sabit anahtarlar tüm cihazları etkileyebilir. | Her eşleştirme, cihazlarda P-256 ECDH'den türetilmiş kendi anahtarını oluşturur. |
| Bir aktarma yolunun medya erişimi sağladığı sanılabilir. | TURN şifrelenmiş SRTP paketlerini iletir, ancak medya anahtarlarını almaz. |
Timmy sırrı nasıl oluşturur?
Dört karakterli Timmy kodu bilinçli olarak gizli tutulması gereken bir sır değildir. Yazılımda yalnızca bir buluşma noktası görevi görür: uygulama bu koddan bir meetingKey buluşma anahtarı türetir; böylece iki cihaz aynı Firestore açık anahtar değişimini bulabilir. Özel ECDH anahtarları cihazlardan asla ayrılmaz.
Ardından iki cihaz aynı P-256 ECDH ortak sırrını hesaplar. Eşleştirme anahtarı yerel olarak türetilir. İki haneli SAS, ortak sırdan ve sıralanmış iki açık anahtardan türetilir. Bu anahtar değişimine müdahale edilirse cihazlar farklı sayılar gösterir; bu da kullanıcılara eşleştirmeyi onaylamamaları gerektiğini anlatır.
sequenceDiagram
participant Baby as Baby device
participant Firestore as Firestore meeting point
participant Parent as Parent device
participant Turn as TURN relay
Baby->>Baby: Generate P-256 ECDH keypair
Parent->>Parent: Generate P-256 ECDH keypair
Baby->>Firestore: Write public key only under meetingKey
Parent->>Firestore: Write public key only under meetingKey
Firestore-->>Baby: Parent public key
Firestore-->>Parent: Baby public key
Baby->>Baby: Compute sharedSecret + SAS
Parent->>Parent: Compute sharedSecret + SAS
Baby-->>Parent: Humans compare SAS on both screens
Baby->>Firestore: Write SDP/ICE encrypted with AES-256-GCM
Parent->>Firestore: Write SDP/ICE encrypted with AES-256-GCM
Baby-)Turn: WebRTC media as DTLS/SRTP packets
Turn-)Parent: Relay forwards encrypted packets
Note over Turn: TURN sees network metadata, not media keys
Basitleştirilmiş Timmy güvenlik zinciri: Firestore buluşma noktası ve sinyalleşme iletim kanalıdır; TURN yalnızca aktarıcıdır; medya WebRTC ile şifrelenmiş olarak kalır.
WebRTC medyası neden gizlice izlenemez?
WebRTC yalnızca "video gönder" demek değildir. Medya akmaya başlamadan önce cihazlar bir DTLS el sıkışması gerçekleştirir. Ses ve video için SRTP anahtarları bu güvenli aktarımdan türetilir. Ardından medya paketleri SRTP olarak şifrelenir. Bir TURN sunucusu bu paketleri iletebilir, ancak ses veya videoyu açmak için gereken anahtarları almaz.
Timmy bundan önce bir katman daha ekler: SDP teklifleri, SDP yanıtları ve ICE adayları gibi sinyalleşme verileri Firestore'a ulaşmadan önce AES-256-GCM ile şifrelenir. Firestore cihazların bağlantıyı kurmasına yardımcı olur; şifrelenmemiş video, ses veya sinyalleşme verilerinin tutulması amaçlanan bir yer değildir.
Timmy'nin hâlâ iddia etmediği şeyler
Hiçbir ciddi bebek monitörü, saldırıya uğramasının imkânsız olduğunu iddia etmemelidir. Bir telefon ele geçirilirse telefondaki her uygulama saldırıya açık hâle gelebilir. Kötü niyetli bir uygulama derlemesi risk modelini değiştirir. Sunucu yapılandırmasının doğru kalması gerekir. Timmy'nin daha sınırlı iddiası mimarisiyle ilgilidir: Arka uç tarafından okunabilen, çocuk odasına ait medya öğeleri bırakmaz ve güvenlik açısından kritik eşleştirme mantığının herkese açık çekirdek projede incelenebilmesini sağlar.
Herhangi bir bebek kamerası hakkında sorulacak sorular
- Sağlayıcı görüntüleri veya klipleri depoluyor mu?
- Medya URL'leri gizli, kısa ömürlü ve cihaz başına yetkilendirilmiş mi?
- Anahtarlar, uygulama içindeki sabit anahtarlar yerine cihaz veya eşleştirme başına mı oluşturuluyor?
- Bir aracı, yalnızca gerçekten size ait olan cihazın mesajlarını mı iletebiliyor?
- Eşleştirme işlemi, kullanıcının araya girme saldırısını fark etmesini sağlıyor mu?
Kodu inceleyin
- Timmy Core'da ECDH ve SAS
- Buluşma anahtarı, belge anahtarı ve AES-GCM
- Oturumlar ve eşleştirme için Firestore kuralları
- Çekirdek projedeki güvenlik dokümantasyonu
Kaynaklar
- Bebek kameralarından alınan kayıtlara serbestçe erişilebiliyordu · Galaxus
- Bir milyon bebek monitörü ve güvenlik kamerası bilgisayar korsanları tarafından kolayca izlenebiliyordu · The Verge
- Kimse bebeği bir köşeye koymaz · Sammy Azdoufal
- Aynı olay için ebeveyn rehberi · Baby Monitor Timmy