Öryggisskýring

Öryggisveikleiki í Meari-barnamyndavélum: hvað Timmy gerir öðruvísi

Meari-málið sýnir að vönduð innskráning dugar ekki ein og sér. Öryggi barnapíu ræðst af kerfishönnun, aðgangsstýringu og lyklastjórnun.

Galaxus greindi frá upptökum úr barnamyndavélum sem voru öllum aðgengilegar; The Verge greindi frá því að um 1,1 milljón Meari-tækja hefði orðið fyrir áhrifum. Fyrir mér er lærdómurinn einfaldur: innskráning verndar ekki barnaherbergið ef vettvangurinn á bak við hana heldur ekki skilaboðum, myndum og lyklum tryggilega aðgreindum milli tækja. Timmy leysir ekki öll öryggisvandamál heimsins. En mikilvæg leyndargögn Timmy fyrir flutning hljóðs og myndar og fyrir pörun eru ekki geymd á skýjavettvangi fyrir myndavélar.

Hvað virðist hafa brugðist í Meari-málinu

Opinberar heimildir lýsa sameiginlegum vettvangi sem var seldur undir mörgum vörumerkjum. Mörg ólík vörumerki seldu myndavélar sem reiddu sig á sömu Meari/CloudEdge-innviðina. Þess vegna skiptir atvikið máli: þegar sameiginlegur vettvangur afmarkar aðgangsheimildir rangt verður afleiðingin ekki aðeins ein veik myndavél heldur berskjöldun alls tækjaflotans.

Mynstrið sem greint var frá nær lengra en veik sjálfgefin lykilorð. Heimildir lýsa MQTT-skilaboðum án fullnægjandi áskriftarstýringar fyrir hvert tæki, myndaslóðum sem voru aðgengilegar öllum, veikri dulun myndgagna og lyklum sem voru annaðhvort fastir eða hægt var að sækja úr forritinu. Þetta er bilun í vettvanginum: innviðirnir gátu afhjúpað gögn sem hefðu aldrei átt að vera aðgengileg öðrum notendareikningi.

Áhætta við skýjamyndavélarHvernig hönnun Timmy bregst við
Bakendakerfið geymir eða dreifir myndum sem verða til við atburði.Timmy er ekki með skýjasafn fyrir myndir úr barnaherberginu; hljóð og mynd berast í beinni með WebRTC.
Skilaboðamiðlari eða gagnageymsla þarf að framfylgja aðgangsheimildum rétt fyrir hvert einasta tæki.Firestore flytur aðeins pörunar- og merkjasamskiptagögn; SDP- og ICE-gögn eru dulkóðuð áður en þau eru skrifuð þangað.
Fastir lyklar geta haft áhrif á allan tækjaflotann.Við hverja pörun er búinn til sérstakur lykill í tækjunum með P-256 ECDH.
Ranglega má halda að framsending hljóðs og myndar veiti aðgang að efninu.TURN framsendir dulkóðaða SRTP-pakka en fær ekki dulritunarlyklana fyrir hljóð og mynd.

Hvernig Timmy býr til leyndarmálið

Fjögurra tákna Timmy-kóðinn er vísvitandi ekki leyndarmálið. Í forritskóðanum er hann aðeins tengipunktur: forritið leiðir meetingKey hann af kóðanum svo bæði tækin geti fundið sömu dreifilyklaskiptin í Firestore. ECDH-einkalyklarnir fara aldrei úr tækjunum.

Bæði tækin reikna síðan út sama sameiginlega leyndargildið með P-256 ECDH. Pörunarlykillinn er leiddur af því í hvoru tæki fyrir sig. Tveggja stafa SAS-kóðinn er reiknaður út frá sameiginlega leyndargildinu og báðum dreifilyklunum, sem eru settir í sömu röð í báðum tækjum. Ef átt er við lyklaskiptin sýna tækin mismunandi tölur og notendur vita þá að þeir eiga ekki að staðfesta pörunina.

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
        

Einfölduð öryggiskeðja Timmy: Firestore er tengipunktur og flutningsleið merkjasamskipta; TURN er aðeins framsendingarþjónn; hljóð og mynd haldast dulkóðuð með WebRTC.

Hvers vegna ekki er hægt að fylgjast leynilega með WebRTC-hljóði og -mynd

WebRTC felst ekki bara í því að „senda myndband“. Áður en flutningur hljóðs og myndar hefst gera tækin DTLS-handaband. SRTP-lyklarnir fyrir hljóð og mynd eru leiddir af þessari öruggu flutningstengingu. Pakkarnir eru síðan dulkóðaðir með SRTP. TURN-þjónn getur framsent pakkana en fær ekki lyklana sem þarf til að lesa hljóðið eða myndbandið.

Timmy bætir öryggislagi við á undan þessu: merkjasamskiptagögn á borð við SDP-tilboð, SDP-svör og ICE-tengimöguleika eru dulkóðuð með AES-256-GCM áður en þau berast Firestore. Firestore hjálpar tækjunum að semja um tengingu; þar eiga hvorki ódulkóðað myndband og hljóð né ódulkóðuð merkjasamskipti að vera.

Hvað Timmy fullyrðir ekki

Engin barnapía sem tekur öryggi alvarlega ætti að segjast vera óhakkandi. Ef öryggi síma hefur verið rofið er hægt að ráðast á hvaða forrit sem er. Illgjörn smíðaútgáfa forrits breytir áhættumyndinni. Stillingar netþjóna þurfa einnig alltaf að vera réttar. Fullyrðing Timmy er afmarkaðri og snýr að kerfishönnun: Timmy forðast að skilja eftir gögn úr barnaherberginu sem bakendakerfið getur lesið og gerir mikilvæga pörunarvirkni öryggisins sýnilega til skoðunar í opinbera kjarnaverkefninu.

Spurningar sem gott er að spyrja um hvaða barnamyndavél sem er

  • Geymir framleiðandinn myndir eða myndskeið?
  • Eru slóðir að hljóð- og myndefni lokaðar, skammlífar og aðgangsstýrðar fyrir hvert tæki?
  • Eru lyklar búnir til fyrir hvert tæki eða hverja pörun, í stað þess að vera fastir inni í forriti?
  • Getur skilaboðamiðlari aðeins afhent skilaboð fyrir tækið sem þú átt í raun?
  • Gerir pörunin notanda kleift að taka eftir tilraun til milliliðaárásar?

Lesa kóðann

Heimildir