Güvenlik açıklaması

Meari bebek kamerası güvenlik açığı: Timmy neyi farklı yapıyor?

Meari vakası, şık görünen bir giriş ekranının yeterli olmadığını gösteriyor. Bebek monitörü güvenliği; mimariye, yetkilendirmeye ve anahtar yönetimine bağlıdır.

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 riskiTimmy'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

Kaynaklar