Pojasnilo o varnosti

Varnostna ranljivost kamere Meari za dojenčke: kako Timmy ravna drugače

Primer Meari kaže, da izpopolnjena prijava ni dovolj. Varnost otroške varuške je odvisna od arhitekture, avtorizacije in upravljanja ključev.

Galaxus je poročal o prosto dostopnih posnetkih otroških kamer; The Verge pa o približno 1,1 milijona prizadetih naprav Meari. Zame je nauk preprost: prijava ne zaščiti otroške sobe, če platforma v ozadju sporočil, slik in ključev ne ločuje ustrezno za vsako napravo. Timmy ne rešuje vseh varnostnih težav na svetu. Toda Timmyjeve varnostno pomembne skrivnosti za prenos medijev in seznanjanje niso shranjene v platformi za kamere v oblaku.

Kaj je po vsej verjetnosti odpovedalo v primeru Meari

Javna poročila opisujejo platformo, ki se prodaja pod različnimi blagovnimi znamkami. Številne prepoznavne blagovne znamke so prodajale kamere, odvisne od iste infrastrukture Meari/CloudEdge. Prav zato je incident pomemben: kadar skupna platforma napačno določi mejo avtorizacije, posledica ni le ena slabo zaščitena kamera, temveč izpostavljenost celotnega nabora naprav.

Opisani vzorec presega šibka privzeta gesla. Viri navajajo sporočila MQTT brez zadostnega nadzora naročnin za posamezne naprave, javno dosegljive URL-je slik, šibko prikrivanje slik ter statične ključe ali ključe, ki jih je mogoče pridobiti iz aplikacije. To je napaka platforme: infrastruktura je lahko razkrila podatke, ki drugemu računu nikoli ne bi smeli biti na voljo.

Tveganja kamer v oblakuTimmyjeva varnostna zasnova
Zaledni sistem shranjuje ali razpošilja dogodke s slikami.Timmy nima arhiva slik iz otroške sobe v oblaku; mediji se prenašajo v živo prek WebRTC.
Posrednik ali objektna shramba mora brezhibno preverjati dovoljenja za vsako napravo.Firestore prenaša le podatke za seznanjanje in signalizacijo; SDP/ICE je šifriran, preden se zapiše.
Statični ključi lahko vplivajo na celoten nabor naprav.Vsako seznanjanje v napravah ustvari svoj ključ, izpeljan z algoritmom P-256 ECDH.
Relejna pot se lahko zmotno razume kot dostop do medijev.TURN posreduje šifrirane pakete SRTP, vendar ne prejme ključev za medije.

Kako Timmy ustvari skrivnost

Timmyjeva štiriznakovna koda namenoma ni skrivnost. V programski kodi je zgolj stičišče: aplikacija iz nje izpelje meetingKey , da lahko obe napravi najdeta isto izmenjavo javnih ključev v storitvi Firestore. Zasebni ključi ECDH nikoli ne zapustijo naprav.

Obe napravi nato izračunata isto skupno skrivnost P-256 ECDH. Ključ za seznanjanje se izpelje lokalno. Dvomestni SAS se izpelje iz skupne skrivnosti in obeh razvrščenih javnih ključev. Če kdo poseže v to izmenjavo ključev, napravi prikažeta različni številki, kar uporabnikom pove, naj seznanjanja ne potrdijo.

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
        

Poenostavljena Timmyjeva varnostna veriga: Firestore je stičišče in prenaša signalizacijo; TURN je le rele; mediji ostanejo šifrirani s tehnologijo WebRTC.

Zakaj medijskih tokov WebRTC ni mogoče neopazno prestrezati

WebRTC ni le »pošiljanje videa«. Pred začetkom prenosa medijev napravi izvedeta rokovanje DTLS. Ključi SRTP za zvok in video se izpeljejo iz tega varnega prenosa, medijski paketi pa se nato šifrirajo s protokolom SRTP. Strežnik TURN lahko te pakete posreduje, vendar ne prejme ključev, potrebnih za dešifriranje zvoka ali videa.

Timmy pred tem doda še eno zaščitno plast: signalizacijski podatki, kot so ponudbe SDP, odgovori SDP in kandidati ICE, se šifrirajo z AES-256-GCM, preden dosežejo Firestore. Firestore napravama pomaga vzpostaviti povezavo; ni namenjen hrambi nešifriranega videa, zvoka ali signalizacije.

Česa Timmy še vedno ne trdi

Nobena resna otroška varuška ne bi smela biti predstavljena kot nevdrljiva. Če je telefon kompromitiran, je lahko tarča napada katera koli aplikacija. Zlonamerna različica aplikacije spremeni model tveganja. Tudi konfiguracija strežnika mora ostati pravilna. Timmyjeva ožja trditev se nanaša na arhitekturo: izogiba se medijskim artefaktom iz otroške sobe, ki bi jih lahko prebral zaledni sistem, varnostno ključno logiko seznanjanja pa je mogoče pregledati v javno dostopnem projektu jedra.

Vprašanja, ki jih je treba zastaviti o vsaki otroški kameri

  • Ali ponudnik shranjuje slike ali videoposnetke?
  • Ali so URL-ji medijev zasebni, kratkotrajni in avtorizirani za posamezno napravo?
  • Ali se ključi ustvarijo za vsako napravo ali seznanjanje, namesto da so statični v aplikaciji?
  • Ali lahko posrednik dostavlja samo sporočila za napravo, ki jo dejansko posedujete?
  • Ali seznanjanje uporabniku omogoča, da opazi poskus napada s posrednikom (man-in-the-middle)?

Preberite kodo

Viri