Коопсуздук боюнча түшүндүрмө

Meari ымыркай камерасынын коопсуздук алсыздыгы: Timmy эмнеси менен айырмаланат

Meari окуясы кооз жасалган кирүү экраны жетишсиз экенин көрсөтөт. Ымыркай көзөмөлүнүн коопсуздугу архитектурага, уруксаттарды башкарууга жана ачкычтарды башкарууга көз каранды.

Galaxus эркин жеткиликтүү болгон ымыркай камераларынын жаздыруулары тууралуу жазган; The Verge болжол менен 1,1 миллион Meari түзмөгү жабыркаганын билдирген. Мен үчүн мындан алынчу сабак жөнөкөй: артындагы платформа билдирүүлөрдү, сүрөттөрдү же ачкычтарды ар бир түзмөк боюнча так бөлбөсө, кирүү экраны баланын бөлмөсүн коргобойт. Timmy дүйнөдөгү бардык коопсуздук көйгөйлөрүн чечпейт. Бирок Timmy'нин маанилүү медиа жана жупташтыруу сырлары булуттагы камера платформасынын ичинде сакталбайт.

Meari окуясында эмне иштебей калган окшойт

Ачык булактардагы билдирүүлөр white-label платформаны сүрөттөйт. Көптөгөн көрүнүктүү бренддер ошол эле Meari/CloudEdge инфраструктурасына көз каранды камераларды сатышкан. Ошондуктан бул окуя маанилүү: жалпы платформа уруксат чегин туура эмес аныктаса, натыйжада бир эле алсыз камера эмес, бүтүндөй түзмөктөр паркы ачыкка чыгат.

Билдирилген көрүнүш жөн гана алсыз демейки сырсөздөрдөн да кеңири. Булактарда ар бир түзмөк үчүн жазылууну жетиштүү чектебеген MQTT билдирүүлөрү, жалпыга жеткиликтүү сүрөт URL даректери, сүрөттөрдү начар жашыруу жана туруктуу же колдонмодон чыгарып алууга боло турган ачкычтар айтылат. Бул платформадагы мүчүлүштүк: инфраструктура башка аккаунтка эч качан жеткиликтүү болбошу керек болгон маалыматты ачып коюшу мүмкүн.

Булут камерасынын коркунучуTimmy'нин буга каршы архитектуралык чечими
Бэкенд сүрөт окуяларын сактайт же таратып берет.Timmy'де баланын бөлмөсүндөгү сүрөттөр үчүн булут архиви жок; медиа түз эфирдеги WebRTC аркылуу берилет.
Брокер же сактагыч ар бир түзмөк үчүн уруксаттарды кынтыксыз текшериши керек.Firestore жупташтыруу жана сигналдаштыруу маалыматтарын гана өткөрөт; SDP/ICE жазылардан мурун шифрленет.
Туруктуу ачкычтар бүтүндөй түзмөктөр паркына таасир этиши мүмкүн.Ар бир жупташтыруу түзмөктөрдө өзүнүн 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 даректери жеке, кыска мөөнөттүү жана ар бир түзмөк үчүн уруксат берилгенби?
  • Ачкычтар колдонмодогу туруктуу ачкычтардын ордуна ар бир түзмөк же жупташтыруу үчүн жаратылабы?
  • Брокер билдирүүлөрдү чындап өзүңүз ээлик кылган түзмөк үчүн гана жеткире алабы?
  • Жупташтыруу адамга ортодогу адам чабуулун байкоого мүмкүндүк береби?

Кодду окуу

Булактар