Galaxus iliripoti rekodi za kamera za watoto zilizoweza kufikiwa bila kizuizi; The Verge iliripoti kuwa takriban vifaa milioni 1.1 vya Meari viliathirika. Kwangu, funzo la msingi ni hili: kuingia kwenye akaunti hakulindi chumba cha mtoto ikiwa jukwaa lililo nyuma yake halitenganishi ipasavyo ujumbe, picha na funguo za kila kifaa. Timmy haisuluhishi kila tatizo la usalama duniani. Lakini siri muhimu za maudhui na uoanishaji za Timmy hazihifadhiwi katika jukwaa la kamera za wingu.
Kinachoonekana kushindikana katika kisa cha Meari
Ripoti za umma zinaeleza jukwaa linalotumiwa na kuuzwa chini ya chapa mbalimbali. Chapa nyingi zilizouzwa kwa watumiaji zilikuwa na kamera zilizotegemea miundombinu ileile ya Meari/CloudEdge. Ndiyo maana tukio hili ni muhimu: jukwaa la pamoja linapoweka vibaya mipaka ya uidhinishaji, matokeo si udhaifu wa kamera moja tu, bali kufichuka kwa kundi zima la vifaa.
Tatizo lililoripotiwa linaenda mbali zaidi ya nywila dhaifu za chaguomsingi. Vyanzo vinaeleza ujumbe wa MQTT usio na udhibiti wa kutosha wa usajili kwa kila kifaa, URL za picha zinazofikika hadharani, ufichaji dhaifu wa picha, na funguo zisizobadilika au zinazoweza kutolewa kutoka kwenye programu. Huku ni kushindwa kwa jukwaa: miundombinu iliweza kufichua data ambayo haikupaswa kamwe kupatikana kwa akaunti nyingine.
| Hatari ya kamera za wingu | Muundo mbadala wa Timmy |
|---|---|
| Mfumo wa nyuma huhifadhi au kusambaza matukio ya picha. | Timmy haina hifadhi ya wingu ya picha za chumba cha mtoto; sauti na video hutumwa moja kwa moja kupitia WebRTC. |
| Mfumo wa kupitisha ujumbe au hifadhi lazima iidhinishe kila kifaa kwa usahihi kabisa. | Firestore hubeba tu data ya uoanishaji na uashiriaji; SDP/ICE husimbwa kwa njia fiche kabla ya kuandikwa. |
| Funguo za kudumu zinaweza kuathiri kundi zima la vifaa. | Kila uoanishaji hutengeneza ufunguo wake unaotokana na P-256 ECDH kwenye vifaa. |
| Njia ya seva ya kupitishia data inaweza kudhaniwa kimakosa kuwa inaruhusu kufikia sauti au video. | TURN hupitisha pakiti za SRTP zilizosimbwa kwa njia fiche, lakini haipokei funguo za sauti na video. |
Jinsi Timmy hutengeneza siri
Kwa makusudi, msimbo wa Timmy wenye herufi nne si siri. Katika programu, ni sehemu tu ya vifaa kukutana: programu hutengeneza meetingKey kutokana nao ili vifaa vyote viwili viweze kupata ubadilishanaji uleule wa funguo za umma kupitia Firestore. Funguo binafsi za ECDH haziondoki kamwe kwenye vifaa.
Kisha vifaa vyote viwili hukokotoa siri ileile ya pamoja ya P-256 ECDH. Ufunguo wa uoanishaji hutengenezwa kwenye vifaa vyenyewe. Nambari ya SAS yenye tarakimu mbili hutokana na siri hiyo ya pamoja pamoja na funguo zote mbili za umma baada ya kupangwa. Mtu akivuruga ubadilishanaji huo wa funguo, vifaa huonyesha nambari tofauti, jambo linalowaonya watumiaji wasithibitishe uoanishaji.
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
Mnyororo uliorahisishwa wa usalama wa Timmy: Firestore hutumiwa kukutanisha vifaa na kusafirisha data ya uashiriaji; TURN hupitisha data tu; sauti na video hubaki zimesimbwa kwa njia fiche na WebRTC.
Kwa nini sauti na video za WebRTC haziwezi kutazamwa au kusikilizwa kisiri
WebRTC haifanyi tu kazi ya “kutuma video.” Kabla sauti au video haijaanza kutiririka, vifaa hupitia mchakato wa DTLS wa kuanzisha muunganisho salama. Funguo za SRTP za sauti na video hutokana na muunganisho huo salama. Kisha pakiti za sauti na video husimbwa kwa njia fiche kama SRTP. Seva ya TURN inaweza kupitisha pakiti hizo, lakini haipokei funguo zinazohitajika kufungua sauti au video.
Timmy huongeza safu nyingine ya ulinzi kabla ya hapo: data ya uashiriaji, kama vile ofa za SDP, majibu ya SDP na watahiniwa wa ICE, husimbwa kwa AES-256-GCM kabla haijafika Firestore. Firestore husaidia vifaa kuanzisha mawasiliano; haikusudiwi kuhifadhi video, sauti au data ya uashiriaji isiyosimbwa kwa njia fiche.
Mambo ambayo Timmy haidai
Hakuna kifuatiliaji cha mtoto kinachochukulia usalama kwa uzito kinachopaswa kudai kuwa hakiwezi kudukuliwa. Simu ikivamiwa, programu yoyote inaweza kushambuliwa. Toleo hasidi la programu hubadilisha aina ya hatari inayokabiliwa. Usanidi wa seva lazima uendelee kuwa sahihi. Dai la Timmy ni finyu na linahusu usanifu wake: Timmy huepuka kuhifadhi katika mfumo wa nyuma mabaki ya sauti au video kutoka chumba cha mtoto yanayoweza kusomwa, na huruhusu mantiki muhimu ya usalama ya uoanishaji ikaguliwe katika mradi wake wa msingi ulio wazi kwa umma.
Maswali ya kuuliza kuhusu kamera yoyote ya mtoto
- Je, muuzaji huhifadhi picha au klipu?
- Je, URL za media ni za faragha, za muda mfupi na zimeidhinishwa kwa kila kifaa?
- Je, funguo hutengenezwa kwa kila kifaa au uoanishaji badala ya kuwa za kudumu ndani ya programu?
- Je, mfumo wa kupitisha ujumbe unaweza kuwasilisha ujumbe kwa kifaa unachomiliki pekee?
- Je, uoanishaji humwezesha mtu kugundua jaribio la mshambuliaji kujiingiza katikati ya mawasiliano (man-in-the-middle)?
Soma msimbo
- ECDH na SAS katika Timmy Core
- Ufunguo wa mkutano, ufunguo wa hati na AES-GCM
- Sheria za Firestore za vipindi na uoanishaji
- Nyaraka za usalama katika mradi wa msingi
Vyanzo
- Rekodi kutoka kamera za watoto zilifikiwa bila kizuizi · Galaxus
- Kamera milioni moja za kufuatilia watoto na za usalama zingeweza kutazamwa kwa urahisi na wadukuzi · The Verge
- hakuna anayemweka mtoto pembeni · Sammy Azdoufal
- Mwongozo wa wazazi kuhusu tukio hilohilo · Baby Monitor Timmy