Shpjegim për sigurinë

Dobësia e sigurisë te kamera e bebeve Meari: çfarë bën ndryshe Timmy

Rasti Meari tregon se një hyrje e bukur në aplikacion nuk mjafton. Siguria e një monitori për bebe varet nga arkitektura, autorizimi dhe menaxhimi i çelësave.

Galaxus raportoi regjistrime nga kamera bebesh të aksesueshme lirisht; The Verge raportoi rreth 1,1 milion pajisje Meari të prekura. Për mua, mësimi është i qartë: një hyrje në aplikacion nuk e mbron dhomën e bebes nëse platforma pas saj nuk i ndan pastër mesazhet, imazhet ose çelësat për secilën pajisje. Timmy nuk zgjidh çdo problem sigurie në botë. Por sekretet kritike të medias dhe çiftimit të Timmy nuk ruhen brenda një platforme cloud për kamera.

Çfarë duket se dështoi në rastin Meari

Raportimet publike përshkruajnë një platformë të ofruar nën emrat e markave të ndryshme. Shumë marka të njohura shisnin kamera që mbështeteshin në të njëjtën infrastrukturë Meari/CloudEdge. Prandaj ky incident ka rëndësi: kur një platformë e përbashkët e përcakton gabim kufirin e autorizimit, rezultati nuk është vetëm një kamerë e cenueshme, por ekspozimi i një flote të tërë pajisjesh.

Modeli i raportuar shkon përtej fjalëkalimeve të dobëta të parazgjedhura. Burimet përshkruajnë mesazhe MQTT pa kontrolle të mjaftueshme abonimi për çdo pajisje, URL imazhesh të arritshme publikisht, fshehje të dobët të imazheve dhe çelësa statikë ose çelësa që mund të nxirren nga aplikacioni. Ky është dështim i platformës: infrastruktura mund të zbulonte të dhëna që nuk duhej të ishin kurrë të disponueshme për një llogari tjetër.

Rreziku i kamerave cloudDizajni mbrojtës i Timmy
Infrastruktura e serverit ruan ose shpërndan ngjarje që përmbajnë imazhe.Timmy nuk ka arkiv cloud për imazhet e dhomës së bebes; media transmetohet drejtpërdrejt me WebRTC.
Një ndërmjetës ose hapësirë ruajtjeje duhet të autorizojë saktë çdo pajisje.Firestore mbart vetëm të dhëna çiftimi dhe sinjalizimi; SDP/ICE enkriptohet përpara se të shkruhet.
Çelësat statikë mund të prekin një flotë të tërë.Çdo çiftim krijon në pajisje çelësin e vet të nxjerrë nga P-256 ECDH.
Një rrugë releje mund të ngatërrohet me aksesin te media.TURN përcjell paketat e enkriptuara SRTP, por nuk merr çelësat e medias.

Si e krijon Timmy sekretin

Kodi Timmy me katër karaktere qëllimisht nuk është sekreti. Në kod, ai është vetëm një pikë takimi: aplikacioni nxjerr një meetingKey prej tij, në mënyrë që të dyja pajisjet të gjejnë të njëjtin shkëmbim të çelësave publikë në Firestore. Çelësat privatë ECDH nuk largohen kurrë nga pajisjet.

Më pas, të dyja pajisjet llogarisin të njëjtin sekret të përbashkët P-256 ECDH. Çelësi i çiftimit nxirret lokalisht. SAS me dy shifra nxirret nga sekreti i përbashkët plus të dy çelësat publikë të renditur. Nëse ky shkëmbim çelësash manipulohet, pajisjet shfaqin numra të ndryshëm, çka u tregon përdoruesve të mos e konfirmojnë çiftimin.

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
        

Zinxhiri i thjeshtuar i sigurisë së Timmy: Firestore shërben për takimin dhe transportin e sinjalizimit; TURN është vetëm rele; media mbetet e enkriptuar me WebRTC.

Pse media WebRTC nuk mund të shikohet fshehurazi

WebRTC nuk do të thotë thjesht “dërgo videon”. Para se të nisë transmetimi i medias, pajisjet kryejnë procesin e vendosjes së lidhjes DTLS. Çelësat SRTP për audion dhe videon nxirren nga kjo lidhje e sigurt. Më pas, paketat e medias enkriptohen me SRTP. Një server TURN mund t’i përcjellë këto paketa, por nuk merr çelësat e nevojshëm për të deshifruar audion ose videon.

Timmy shton një shtresë para kësaj: të dhënat e sinjalizimit si ofertat SDP, përgjigjet SDP dhe kandidatët ICE enkriptohen me AES-256-GCM përpara se të mbërrijnë në Firestore. Firestore i ndihmon pajisjet të negociojnë; nuk është vendi ku synohet të ruhen video, audio ose sinjalizim në tekst të hapur.

Çfarë nuk pretendon Timmy

Asnjë monitor serioz për bebe nuk duhet të pretendojë se është i paprekshëm nga sulmet kibernetike. Nëse një telefon komprometohet, çdo aplikacion në të mund të sulmohet. Një variant keqdashës i aplikacionit e ndryshon modelin e rrezikut. Konfigurimi i serverit duhet të mbetet i saktë. Pretendimi më i kufizuar i Timmy lidhet me arkitekturën: ai shmang ruajtjen e materialeve nga dhoma e bebes që mund të lexohen nga infrastruktura e serverit dhe mundëson kontrollimin e logjikës kritike të çiftimit në projektin bazë publik.

Pyetje për t’i bërë për çdo kamerë për bebe

  • A ruan shitësi imazhe ose klipe?
  • A janë URL-të e medias private, jetëshkurtra dhe të autorizuara për secilën pajisje?
  • A krijohen çelësat për secilën pajisje ose çiftim, në vend që të jenë statikë brenda një aplikacioni?
  • A mundet një ndërmjetës të dërgojë mesazhe vetëm për pajisjen që zotëroni vërtet?
  • A u mundëson çiftimi përdoruesve të dallojnë një përpjekje sulmi “ndërmjetës”, ku dikush futet fshehurazi mes dy pajisjeve?

Lexoni kodin

Burimet