Galaxus хүүхдийн камерын бичлэгүүдэд хэн ч чөлөөтэй хандаж болохоор байсныг мэдээлсэн; The Verge ойролцоогоор 1.1 сая Meari төхөөрөмж өртсөн гэж мэдээлсэн. Миний хувьд эндээс авах сургамж энгийн: арын платформ нь мессеж, зураг болон түлхүүрийг төхөөрөмж тус бүрээр найдвартай тусгаарлаж чадахгүй бол нэвтрэх систем хүүхдийн өрөөг хамгаалж чадахгүй. Timmy дэлхийн бүх аюулгүй байдлын асуудлыг шийддэг гэж амлахгүй. Харин Timmy-ийн медиа болон төхөөрөмж хослуулахад ашигладаг нэн чухал нууцууд үүлэн камерын платформ дотор хадгалагддаггүй.
Meari-ийн хэрэгт юу доголдсон бололтой вэ
Олон нийтэд гарсан мэдээллүүдэд бусад брэнд өөрийн нэрээр борлуулдаг нэг ижил платформын тухай өгүүлсэн. Олон брэндийн камер ижил Meari/CloudEdge дэд бүтцэд тулгуурлаж байжээ. Тиймээс энэ хэрэг чухал: дундын платформ хандалтын эрхийн заагийг буруу тогтоовол ганц эмзэг камер бус, бүхэл бүтэн төхөөрөмжийн парк өртөнө.
Мэдээлэгдсэн доголдлууд нь анхдагч сул нууц үгийн асуудлаас хавьгүй өргөн хүрээтэй. Эх сурвалжууд төхөөрөмж тус бүрийн захиалгыг хангалттай хязгаарлаагүй MQTT мессежүүд, нийтэд нээлттэй зургийн URL-ууд, зургийг сул аргаар далдалсан байдал, мөн тогтмол эсвэл аппыг задлан шинжилж гаргаж авч болох түлхүүрүүдийн талаар дурдсан. Энэ бол платформын доголдол: дэд бүтэц нь өөр бүртгэлд хэзээ ч харагдах ёсгүй өгөгдлийг ил болгож байжээ.
| Үүлэн камерын эрсдэл | Timmy-ийн үүний эсрэг зохион байгуулсан шийдэл |
|---|---|
| Арын систем зураг агуулсан үйл явдлын өгөгдлийг хадгалдаг эсвэл түгээдэг. | Timmy хүүхдийн өрөөний зургийг үүлэн архивт хадгалдаггүй; медиа WebRTC-ээр шууд дамжина. |
| Мессежийн брокер эсвэл хадгалалтын сан төхөөрөмж бүрийн хандалтын эрхийг алдаагүй шалгах ёстой. | Firestore зөвхөн төхөөрөмж хослуулах болон сигнал солилцох өгөгдлийг дамжуулдаг; SDP/ICE өгөгдлийг Firestore-д бичихээс өмнө шифрлэдэг. |
| Тогтмол түлхүүрүүд бүхэл бүтэн төхөөрөмжийн паркт нөлөөлж болно. | Төхөөрөмжүүдийг хослуулах бүрд тухайн төхөөрөмжүүд дээр P-256 ECDH-оос гаргасан тусдаа түлхүүр үүснэ. |
| Релей замыг медиа руу нэвтрэх боломж гэж андуурч болзошгүй. | TURN нь шифрлэгдсэн SRTP пакетуудыг дамжуулдаг ч медиа түлхүүрүүдийг хүлээн авдаггүй. |
Timmy нууцыг хэрхэн үүсгэдэг вэ
Timmy-ийн дөрвөн тэмдэгттэй код нь зориуд нууц биш. Програмын кодод энэ нь зөвхөн уулзвар цэгийн үүрэгтэй: апп түүнээс meetingKey гарган авснаар хоёр төхөөрөмж Firestore дахь ижил нийтийн түлхүүр солилцоог олно. Хувийн ECDH түлхүүрүүд төхөөрөмжөөс хэзээ ч гардаггүй.
Дараа нь хоёр төхөөрөмж ижил P-256 ECDH дундын нууцыг тооцоолно. Хослуулах түлхүүрийг төхөөрөмж тус бүр дээр дотооддоо гарган авна. Хоёр оронтой SAS кодыг дундын нууц болон эрэмбэлсэн хоёр нийтийн түлхүүрээс гарган авдаг. Хэрэв хэн нэгэн түлхүүр солилцоонд хөндлөнгөөс оролцвол төхөөрөмжүүд өөр өөр тоо харуулна. Энэ нь хослолыг баталгаажуулж болохгүйг хэрэглэгчдэд мэдэгдэнэ.
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
Timmy-ийн аюулгүй байдлын хялбаршуулсан хэлхээ: Firestore нь төхөөрөмжүүдийн уулзвар цэг бөгөөд сигнал солилцох өгөгдлийг дамжуулна; TURN зөвхөн релей болж ажиллана; медиа WebRTC-ийн шифрлэлттэй хэвээр байна.
WebRTC медиаг яагаад мэдэгдэлгүйгээр үзэх боломжгүй вэ
WebRTC нь зүгээр л “видео илгээх” ажиллагаа биш. Медиа дамжиж эхлэхээс өмнө төхөөрөмжүүд DTLS гар барилт хийдэг. Аудио, видеоны SRTP түлхүүрүүдийг энэ хамгаалалттай холболтоос гарган авна. Дараа нь медиа пакетуудыг SRTP-ээр шифрлэнэ. TURN сервер эдгээр пакетыг дамжуулж болох ч аудио, видеоны агуулгыг тайлахад хэрэгтэй түлхүүрүүдийг хүлээн авдаггүй.
Timmy үүнээс өмнө хамгаалалтын бас нэг давхарга нэмдэг: SDP санал, SDP хариу болон ICE нэр дэвшигч зэрэг сигнал солилцооны өгөгдлийг Firestore-д хүрэхээс нь өмнө AES-256-GCM-ээр шифрлэнэ. Firestore төхөөрөмжүүдэд холболтоо тохиролцоход тусалдаг; шифрлээгүй видео, аудио эсвэл сигнал солилцооны өгөгдлийг тэнд хадгалах ёсгүй.
Timmy юуг одоо ч амладаггүй вэ
Аюулгүй байдлыг нухацтай авч үздэг ямар ч хүүхэд хянах систем өөрийгөө хакердах боломжгүй гэж амлах ёсгүй. Утасны хамгаалалт алдагдвал түүн дээрх ямар ч апп халдлагад өртөж болно. Аппын хортой хувилбар ашиглагдвал эрсдэлийн нөхцөл өөрчлөгдөнө. Серверийн тохиргоог мөн үргэлж зөв байлгах шаардлагатай. Timmy-ийн амлалт илүү нарийн бөгөөд архитектуртаа төвлөрдөг: арын систем унших боломжтой хүүхдийн өрөөний медиа өгөгдөл үүсгэхээс зайлсхийж, аюулгүй байдалд нэн чухал төхөөрөмж хослуулах логикийг нийтэд нээлттэй үндсэн төслөөс шалгах боломж олгодог.
Ямар ч хүүхдийн камерын талаар асуух асуултууд
- Үйлдвэрлэгч зураг эсвэл бичлэг хадгалдаг уу?
- Медиа URL-ууд нь нийтэд нээлттэй бус, богино настай бөгөөд төхөөрөмж тус бүрээр хандалтыг зөвшөөрдөг үү?
- Түлхүүрүүдийг апп дотор тогтмолоор суулгахын оронд төхөөрөмж эсвэл хослол бүрд шинээр үүсгэдэг үү?
- Брокер зөвхөн таны эзэмшдэг төхөөрөмжийн мессежийг хүргэж чадах уу?
- Төхөөрөмж хослуулах үед дундаас нь халдах оролдлогыг хэрэглэгч анзаарах боломжтой юу?
Кодыг унших
- Timmy Core дахь ECDH ба SAS
- Уулзварын түлхүүр, баримтын түлхүүр болон AES-GCM
- Сесс болон төхөөрөмж хослуулахад зориулсан Firestore-ийн дүрмүүд
- Үндсэн төслийн аюулгүй байдлын баримтжуулалт
Эх сурвалж
- Хүүхдийн камерын бичлэгүүд чөлөөтэй нээлттэй байсан · Galaxus
- Нэг сая хүүхэд хянах төхөөрөмж, хамгаалалтын камерыг хакерууд амархан үзэх боломжтой байсан · The Verge
- nobody puts baby in a corner · Sammy Azdoufal
- Тухайн хэрэгтэй холбоотой эцэг эхчүүдэд зориулсан заавар · Baby Monitor Timmy