Comprendre la sécurité

Faille de sécurité des caméras pour bébé Meari : ce que Timmy fait différemment

Le cas Meari montre qu’un écran de connexion soigné ne suffit pas. La sécurité d’un babyphone dépend de son architecture, de ses mécanismes d’autorisation et de la gestion de ses clés.

Galaxus a signalé des enregistrements de caméras pour bébé librement accessibles ; The Verge a rapporté qu’environ 1,1 million d’appareils Meari étaient concernés. Pour moi, le constat est simple : un système de connexion ne protège pas la chambre de bébé si la plateforme qui le sous-tend ne sépare pas correctement, pour chaque appareil, les messages, les images et les clés. Timmy ne résout pas tous les problèmes de sécurité du monde. Mais les secrets essentiels de Timmy pour les flux multimédias et l’appairage ne résident pas dans une plateforme de caméras connectées au cloud.

Ce qui semble avoir échoué dans le cas Meari

Les rapports publics décrivent une plateforme en marque blanche. De nombreuses marques présentes sur le marché vendaient des caméras reposant sur la même infrastructure Meari/CloudEdge. C’est pourquoi cet incident est important : lorsqu’une plateforme partagée définit mal les périmètres d’autorisation, ce n’est pas une seule caméra qui est exposée, mais tout un parc d’appareils.

Le problème signalé va au-delà de mots de passe par défaut trop faibles. Les sources décrivent des messages MQTT sans contrôle suffisant des abonnements pour chaque appareil, des URL d’images accessibles publiquement, un masquage rudimentaire des images ainsi que des clés statiques ou extractibles de l’application. C’est une défaillance de la plateforme : l’infrastructure pouvait révéler des données qui n’auraient jamais dû être accessibles à un autre compte.

Risques des caméras connectées au cloudL’approche de Timmy
Le backend stocke ou distribue des événements d’image.Timmy n’a pas d’archive cloud des images de la chambre de bébé ; les médias passent en direct par WebRTC.
Un broker de messages ou un espace de stockage doit gérer parfaitement les autorisations de chaque appareil.Firestore ne transporte que les données d’appairage et de signalisation ; les données SDP et ICE sont chiffrées avant d’y être écrites.
Des clés statiques peuvent affecter tout un parc d’appareils.Chaque appairage crée sur les appareils sa propre clé dérivée par ECDH P-256.
Le fait que les médias passent par un relais peut être pris à tort pour un accès à leur contenu.TURN transmet des paquets SRTP chiffrés, mais ne reçoit pas les clés média.

Comment Timmy crée le secret

Le code Timmy à quatre caractères n’est volontairement pas le secret. Dans le code, il sert uniquement de point de rendez-vous : l’appli en dérive une meetingKey à partir de celui-ci, afin que les deux appareils puissent retrouver le même échange de clés publiques dans Firestore. Les clés privées ECDH ne quittent jamais les appareils.

Les deux appareils calculent ensuite le même secret partagé par ECDH P-256. La clé d’appairage est dérivée localement. Le SAS à deux chiffres est dérivé du secret partagé et des deux clés publiques triées. Si cet échange de clés est altéré, les appareils affichent deux nombres différents, ce qui indique aux utilisateurs de ne pas confirmer l’appairage.

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
        

Chaîne de sécurité Timmy simplifiée : Firestore sert de point de rendez-vous et de transport de signalisation ; TURN n’est qu’un relais ; les médias restent chiffrés avec WebRTC.

Pourquoi les flux WebRTC ne peuvent pas être visionnés à l’insu des utilisateurs

WebRTC ne se limite pas à « envoyer de la vidéo ». Avant que les flux ne circulent, les appareils établissent une connexion sécurisée DTLS. Les clés SRTP de l’audio et de la vidéo sont dérivées de ce transport sécurisé. Les paquets multimédias sont ensuite chiffrés en SRTP. Un serveur TURN peut transmettre ces paquets, mais il ne reçoit pas les clés nécessaires pour déchiffrer l’audio ou la vidéo.

Timmy ajoute une couche avant cela : les données de signalisation telles que les offres SDP, les réponses SDP et les candidats ICE sont chiffrées avec AES-256-GCM avant d’arriver dans Firestore. Firestore aide les appareils à négocier ; ce n’est pas l’endroit où la vidéo, l’audio ou la signalisation en clair doivent se trouver.

Ce que Timmy ne prétend toujours pas faire

Aucun babyphone sérieux ne devrait prétendre être inviolable. Si un téléphone est compromis, n’importe quelle application peut être attaquée. Une version malveillante de l’application change le modèle de risque. La configuration du serveur doit rester correcte. L’affirmation plus limitée de Timmy porte sur son architecture : celle-ci évite de créer des contenus multimédias de la chambre de bébé lisibles par le backend et permet d’examiner la logique d’appairage essentielle à la sécurité dans le projet public Timmy Core.

Questions à poser pour toute caméra bébé

  • Le fournisseur stocke-t-il des images ou des clips ?
  • Les URL des médias sont-elles privées, de courte durée et soumises à une autorisation propre à chaque appareil ?
  • Les clés sont-elles générées par appareil ou par appairage, plutôt que statiques dans une appli ?
  • Un broker de messages ne peut-il transmettre que les messages destinés à l’appareil qui vous appartient réellement ?
  • L’appairage permet-il à une personne de repérer une tentative d’attaque de l’homme du milieu ?

Consulter le code source

Sources