Galaxusek edonork eskura zitzakeen haurtxo-kameretako grabazioen berri eman zuen; The Verge-k jakinarazi zuen Meariren 1,1 milioi gailu ingururi eragin ziela. Niretzat, ikasgaia argia da: saio-hasiera batek ez du haurraren gela babesten, atzean dagoen plataformak mezuak, irudiak edo gakoak gailu bakoitzerako behar bezala bereizten ez baditu. Timmyk ez ditu munduko segurtasun-arazo guztiak konpontzen. Baina Timmyren multimedia- eta parekatze-sekretu kritikoak ez daude hodeiko kamera-plataforma baten barruan.
Meariren kasuan huts egin omen zuena
Txosten publikoek marka zuriko plataforma bat deskribatzen dute. Kontsumitzaileek ikusten dituzten marka askok Meari/CloudEdge azpiegitura beraren mende zeuden kamerak saldu zituzten. Horregatik da garrantzitsua gertakaria: partekatutako plataforma batek baimen-muga gaizki ezartzen duenean, emaitza ez da kamera ahul bakar bat, flota osoari eragiten dion esposizioa baizik.
Jakinarazitako eredua pasahitz lehenetsi ahuletatik harago doa. Iturriek gailu bakoitzerako harpidetza-kontrol nahikorik gabeko MQTT mezuak, publikoki eskuragarri zeuden irudi-URLak, irudiak ezkutatzeko mekanismo ahulak eta gako estatikoak edo aplikaziotik atera zitezkeen gakoak deskribatzen dituzte. Plataforma-hutsegite bat da: azpiegiturak beste kontu baten esku jar zitzakeen inoiz kontu horren eskura egon behar ez zuten datuak.
| Hodeiko kameren arriskua | Timmyren diseinu alternatiboa |
|---|---|
| Backendak irudi-gertaerak gordetzen edo banatzen ditu. | Timmyk ez du haurraren gelako irudientzako hodeiko artxiborik; multimedia zuzenean WebRTC bidez doa. |
| Broker edo bucket batek gailu bakoitza ezin hobeto baimendu behar du. | Firestorek parekatze- eta seinaleztapen-datuak baino ez ditu garraiatzen; SDP/ICE datuak idatzi aurretik enkriptatzen dira. |
| Gako estatikoek flota oso bati eragin diezaiokete. | Parekatze bakoitzak bere P-256 ECDH bidez eratorritako gakoa sortzen du gailuetan. |
| Errele-bide bat multimedia-sarbidearekin nahas daiteke. | TURNek enkriptatutako SRTP paketeak birbidaltzen ditu, baina ez ditu multimedia-gakoak jasotzen. |
Nola sortzen duen Timmyk sekretua
Timmyren lau karaktereko kodea, nahita, ez da sekretua. Kodean, elkargune bat baino ez da: aplikazioak kode horretatik meetingKey bat eratortzen du, bi gailuek Firestoreko gako publikoen truke bera aurki dezaten. ECDH gako pribatuak ez dira inoiz gailuetatik ateratzen.
Ondoren, bi gailuek P-256 ECDH sekretu partekatu bera kalkulatzen dute. Parekatze-gakoa gailuetan bertan eratortzen da. Bi digituko SASa sekretu partekatutik eta ordenatutako bi gako publikoetatik eratortzen da. Gako-trukea manipulatzen bada, gailuek zenbaki desberdinak erakusten dituzte; hala, erabiltzaileek badakite parekatzea ez dutela baieztatu behar.
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
Timmyren segurtasun-kate sinplifikatua: Firestore elkartzeko puntua eta seinaleztapena garraiatzeko bidea da; TURN errelea baino ez da; multimedia WebRTC bidez enkriptatuta geratzen da.
Zergatik ezin den WebRTC multimedia isilpean ikusi
WebRTC ez da soilik "bidali bideoa". Multimedia bidaltzen hasi aurretik, gailuek DTLS esku-ematea egiten dute. Audioaren eta bideoaren SRTP gakoak garraio seguru horretatik eratorriak dira. Gero, multimedia-paketeak SRTP bidez enkriptatzen dira. TURN zerbitzari batek pakete horiek birbidal ditzake, baina ez ditu audioa edo bideoa irekitzeko behar diren gakoak jasotzen.
Timmyk aurretiko beste geruza bat gehitzen du: seinaleztapen-datuak, hala nola SDP eskaintzak, SDP erantzunak eta ICE hautagaiak, AES-256-GCM bidez enkriptatzen dira Firestorera iritsi aurretik. Firestorek gailuei negoziatzen laguntzen die; ez da bideoa, audioa edo seinaleztapen-datuak testu arruntean gordetzeko lekua.
Timmyk aldarrikatzen ez duena
Haurtxoak zaintzeko gailu serio batek ere ez luke erasoezina dela aldarrikatu behar. Telefono bat konprometituta badago, edozein aplikaziori eraso egin dakioke. Aplikazioaren bertsio maltzur batek arrisku-eredua aldatzen du. Zerbitzariaren konfigurazioak zuzena izaten jarraitu behar du. Timmyren baieztapena mugatuagoa da, eta arkitekturari dagokio: backendak irakur ditzakeen haurraren gelako multimedia-aztarnak saihesten ditu, eta segurtasunerako kritikoa den parekatze-logika Core proiektu publikoan ikuskatzeko aukera ematen du.
Edozein haurtxo-kamerari egin beharreko galderak
- Saltzaileak irudiak edo klipak gordetzen al ditu?
- Multimedia-URLak pribatuak, iraupen laburrekoak eta gailu bakoitzerako baimenduak al dira?
- Gakoak gailu edo parekatze bakoitzerako sortzen al dira, aplikazio baten barruan estatikoak izan beharrean?
- Broker batek zuk benetan duzun gailurako mezuak baino ezin al ditu banatu?
- Parekatzeak aukera ematen al dio erabiltzaileari bitarteko eraso bat (man-in-the-middle) antzemateko?
Irakurri kodea
- ECDH eta SAS Timmy Coren
- Bileraren gakoa, dokumentu-gakoa eta AES-GCM
- Firestore arauak saioetarako eta parekatzerako
- Segurtasun-dokumentazioa core proiektuan
Iturriak
- Haurtxo-kameretako grabazioak libreki eskuragarri · Galaxus
- Milioi bat haurtxo-monitore eta segurtasun-kamera erraz ikus zitzaketen hackerrek · The Verge
- inork ez du haurra txoko batean jartzen · Sammy Azdoufal
- Gertakari berari buruzko gurasoentzako gida · Baby Monitor Timmy