Objašnjenje bezbednosti

Bezbednosni propust Meari kamera za bebe: šta Timmy radi drugačije

Slučaj Meari pokazuje da doteran sistem za prijavljivanje nije dovoljan. Bezbednost uređaja za nadzor bebe zavisi od arhitekture, kontrole pristupa i upravljanja ključevima.

Galaxus je objavio da su snimci kamera za bebe bili slobodno dostupni; The Verge je izvestio o približno 1,1 milion pogođenih Meari uređaja. Moj zaključak je jednostavan: prijava ne štiti dečju sobu ako platforma iza nje ne razdvaja jasno poruke, slike i ključeve za svaki uređaj. Timmy ne rešava svaki bezbednosni problem na svetu. Međutim, Timmyjeve ključne tajne za medijski prenos i uparivanje ne nalaze se unutar platforme za kamere u oblaku.

Šta je, po svemu sudeći, pošlo po zlu u slučaju Meari

Javni izveštaji opisuju platformu koju su različiti proizvođači nudili pod sopstvenim robnim markama. Mnogi poznati brendovi prodavali su kamere koje su zavisile od iste Meari/CloudEdge infrastrukture. Zato je ovaj incident važan: kada zajednička platforma pogrešno postavi granicu ovlašćenja, rezultat nije jedna slabo zaštićena kamera, već izloženost čitave flote uređaja.

Opisani obrazac prevazilazi problem slabih podrazumevanih lozinki. Izvori navode MQTT poruke bez dovoljne kontrole pretplate za svaki uređaj, javno dostupne URL-ove slika, slabo prikrivanje slika i statične ključeve ili ključeve koji se mogu izvući iz aplikacije. To je propust platforme: infrastruktura je mogla da otkrije podatke koji nikada nisu smeli da budu dostupni drugom nalogu.

Rizici kamera u oblakuTimmyjev drugačiji pristup
Pozadinski sistem čuva ili distribuira događaje koji sadrže slike.Timmy nema arhivu slika iz dečje sobe u oblaku; mediji se prenose uživo preko WebRTC-a.
Posrednik ili skladišni prostor moraju besprekorno da proveravaju ovlašćenja za svaki uređaj.Firestore prenosi samo podatke za uparivanje i signalizaciju; SDP/ICE podaci šifruju se pre upisivanja.
Statični ključevi mogu ugroziti čitavu flotu uređaja.Za svako uparivanje uređaji stvaraju zaseban ključ izveden pomoću P-256 ECDH-a.
Put preko releja može se pogrešno smatrati pristupom medijima.TURN prosleđuje šifrovane SRTP pakete, ali ne dobija medijske ključeve.

Kako Timmy stvara tajnu

Timmy kod od četiri znaka namerno nije tajna. U programskom kodu on služi samo kao mesto susreta: aplikacija iz njega izvodi vrednost meetingKey pomoću koje oba uređaja pronalaze istu razmenu javnih ključeva u Firestore-u. Privatni ECDH ključevi nikada ne napuštaju uređaje.

Zatim oba uređaja izračunavaju istu P-256 ECDH zajedničku tajnu. Ključ za uparivanje izvodi se lokalno. Dvocifreni SAS izvodi se iz zajedničke tajne i oba sortirana javna ključa. Ako neko izmeni tu razmenu ključeva, uređaji prikazuju različite brojeve, što korisnicima ukazuje da ne treba da potvrde uparivanje.

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
        

Pojednostavljeni Timmyjev bezbednosni lanac: Firestore služi kao mesto susreta i prenos za signalizaciju; TURN je samo relej; medijski prenos ostaje zaštićen WebRTC šifrovanjem.

Zašto WebRTC medijski prenos ne može neprimetno da se nadzire

WebRTC nije samo „slanje videa“. Pre nego što počne medijski prenos, uređaji uspostavljaju bezbednu DTLS vezu. Iz tog bezbednog prenosa izvode se SRTP ključevi za zvuk i video. Medijski paketi se zatim šifruju kao SRTP. TURN server može da prosleđuje te pakete, ali ne dobija ključeve potrebne za dešifrovanje zvuka ili videa.

Timmy pre toga dodaje još jedan sloj zaštite: podaci za signalizaciju, kao što su SDP ponude, SDP odgovori i ICE kandidati, šifruju se pomoću AES-256-GCM-a pre nego što stignu do Firestore-a. Firestore pomaže uređajima da uspostave vezu; nije predviđen za čuvanje nešifrovanog videa, zvuka ili signalizacionih podataka.

Šta Timmy ipak ne tvrdi

Nijedan ozbiljan uređaj za nadzor bebe ne bi trebalo da tvrdi da ga je nemoguće hakovati. Ako je telefon kompromitovan, napadač može ugroziti bilo koju aplikaciju. Zlonamerna verzija aplikacije menja model rizika. Konfiguracija servera mora ostati ispravna. Timmyjeva uža tvrdnja odnosi se na arhitekturu: izbegava medijske zapise iz dečje sobe koje pozadinski sistem može da čita i omogućava pregled bezbednosno kritične logike uparivanja u javno dostupnom osnovnom projektu.

Pitanja koja treba postaviti o svakoj kameri za bebe

  • Da li proizvođač čuva slike ili snimke?
  • Da li su URL-ovi medija privatni i kratkotrajni i da li se pristup odobrava posebno za svaki uređaj?
  • Da li se ključevi stvaraju za svaki uređaj ili svako uparivanje, umesto da budu statički ugrađeni u aplikaciju?
  • Može li posrednik da isporuči poruke samo za uređaj koji zaista posedujete?
  • Da li uparivanje omogućava korisniku da primeti napad posrednika („čovek u sredini“)?

Pogledajte kod

Izvori