Explicaziun da la segirezza

Vulnerabilitad da segirezza da cameras per pops Meari: tge che Timmy fa autramain

Il cas Meari mussa ch’in login bain concepì na basta betg. La segirezza d’in babyfon dependa da l’architectura, da l’autorisaziun e da la gestiun da las clavs.

Galaxus ha rapportà registraziuns da cameras per pops ch’eran accessiblas libramain; The Verge ha rapportà circa 1,1 milliuns d’apparats Meari pertutgads. Per mai è la conclusiun clera: in login na protegia betg la stanza dal pop, sche la plattafurma davostiers na separa betg correctamain ils messadis, ils maletgs u las clavs da mintga apparat. Timmy na schlia betg tut ils problems da segirezza dal mund. Ma ils secrets decisivs per las medias e l’accuplament da Timmy na sa chattan betg entaifer ina plattafurma da cameras en il cloud.

Tge che para d’avair fatg naufragi en il cas Meari

Ils rapports publics descrivan ina plattafurma white-label. Numerusas marcas vendevan cameras che sa basavan sin la medema infrastructura Meari/CloudEdge. Perquai è l’incident impurtant: sch’ina plattafurma utilisada communablamain fixescha mal in cunfin d’autorisaziun, n’è il resultat betg mo ina camera vulnerabla, mabain ina exposiziun che pertutga l’entira flotta.

Il muster rapportà na sa limitescha betg a pleds-clav da standard flaivels. Las funtaunas descrivan messadis MQTT senza controllas d’access suffizientas per ils abunaments da mintga apparat, URLs da maletgs accessiblas publicamain, ina mascradaziun insuffizienta dals maletgs e clavs staticas u clavs che pon vegnir extratgas da l’app. Quai è in problem da la plattafurma: l’infrastructura pudeva revelar datas che na dastgavan mai esser accessiblas ad in auter conto.

Ristga da cameras en il cloudLa concepziun alternativa da Timmy
Il backend memorisescha u distribuescha eveniments cun maletgs.Timmy n’ha nagin archiv en il cloud per maletgs da la stanza dal pop; las medias vegnan transmessas live cun WebRTC.
In broker u in bucket sto autorisar correctamain mintga apparat.Firestore cuntegna mo datas d’accuplament e da signalisaziun; SDP ed ICE vegnan criptads avant che vegnir scrits.
Clavs staticas pon pertutgar ina flotta entira.Mintga accuplament generescha sin ils apparats sia atgna clav derivada cun ECDH P-256.
Ina via sur in server da relay po vegnir confundida cun in access a las medias.TURN retransmetta pachets SRTP criptads, ma na survegn betg las clavs da medias.

Co che Timmy generescha il secret

Il code Timmy da quatter caracters n’è intenziunadamain betg il secret. En il code è el mo in punct da rendezvous: l’app deriva ina meetingKey da quel, uschia ch’omadus apparats pon chattar il medem barat da clavs publicas en Firestore. Las clavs privatas ECDH na bandunan mai ils apparats.

Omadus apparats calculeschan alura il medem secret communabel cun ECDH P-256. La clav d’accuplament vegn derivada localmain. Il SAS da duas cifras vegn derivà dal secret communabel e da las duas clavs publicas ordinadas. Sche quest barat da clavs vegn manipulà, mussan ils apparats dus numers differents. Quai avertescha las utilisadras ed ils utilisaders da betg confermar l’accuplament.

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
        

Chadaina da segirezza simplifitgada da Timmy: Firestore serva sco punct da rendezvous e transport da signalisaziun; TURN è mo in relay; las medias restan criptadas cun WebRTC.

Pertge che las medias WebRTC na pon betg vegnir spiadas senza vegnir remartgadas

WebRTC na vul betg mo dir «trametter video». Avant che las medias vegnan transmessas, fan ils apparats in handshake DTLS. Las clavs SRTP per audio e video vegnan derivadas da quest transport segir. Ils pachets da medias vegnan alura criptads cun SRTP. In server TURN po retransmetter quests pachets, ma el na survegn betg las clavs necessarias per decriptar l’audio u il video.

Timmy agiunta avant quai in ulteriur nivel: datas da signalisaziun sco offertas SDP, respostas SDP e candidats ICE vegnan criptadas cun AES-256-GCM avant che cuntanscher Firestore. Firestore gida ils apparats a negoziar; video, audio e signalisaziun en text cler na duain betg vegnir memorisads là.

Tge che Timmy tuttina na pretenda betg

Nagin babyfon serius duess pretender d’esser impossibel da hackar. Sch’in telefon è cumpromess, po mintga app vegnir attatgada. Ina versiun maliziusa da l’app mida il model da ristga. La configuraziun dal server sto restar correcta. La pretensiun pli limitada da Timmy pertutga l’architectura: Timmy evitescha artefacts da medias da la stanza dal pop che pon vegnir legids dal backend e renda inspectabla la logica d’accuplament decisiva per la segirezza en il project central public.

Dumondas da far davart mintga camera per pops

  • Memorisescha il furnitur maletgs u clips?
  • Èn las URLs da medias privatas, da curta durada ed autorisadas per mintga apparat?
  • Vegnan las clavs generadas per mintga apparat u accuplament, enstagl d’esser staticas en in’app?
  • Po in broker furnir mo ils messadis destinads a l’apparat che Vus possedais propi?
  • Permetta l’accuplament ad ina persuna da remarcar ina emprova d’attatga man-in-the-middle?

Leger il code

Funtaunas