Galaxus еркін қолжетімді болған бала камераларының жазбалары туралы хабарлады; The Verge Meari-дің шамамен 1,1 миллион құрылғысы зардап шеккенін жазды. Мен үшін бұдан шығатын байыпты қорытынды мынау: егер оның артындағы платформа хабарларды, суреттерді немесе кілттерді әр құрылғы бойынша нақты оқшауламаса, кіру жүйесі баланың бөлмесін қорғай алмайды. Timmy әлемдегі барлық қауіпсіздік мәселесін шешпейді. Бірақ Timmy-дің қауіпсіздік үшін аса маңызды медиа және жұптастыру құпиялары бұлтты камера платформасының ішінде сақталмайды.
Meari жағдайында не сәтсіз болған сияқты
Ашық дереккөздерде басқа брендтердің атауымен сатылатын ортақ платформа сипатталады. Көптеген әртүрлі бренд бір 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 мекенжайлары көпшілікке жабық па, қысқа мерзімге ғана жарамды ма және әр құрылғы бойынша бөлек рұқсатпен қорғалған ба?
- Кілттер қолданбаның ішіндегі тұрақты кілттер түрінде сақталмай, әр құрылғыға немесе әр жұптастыруға бөлек жасала ма?
- Брокер тек өзіңізге тиесілі құрылғының хабарларын ғана жеткізе ме?
- Жұптастыру пайдаланушыға «ортадағы адам» шабуылын байқауға мүмкіндік бере ме?
Кодты қараңыз
- Timmy Core ішіндегі ECDH және SAS
- Кездесу кілті, құжат кілті және AES-GCM
- Сеанстар мен жұптастыруға арналған Firestore ережелері
- Негізгі жобадағы қауіпсіздік құжаттамасы
Дереккөздер
- Бала камераларынан алынған жазбалар еркін қолжетімді болды · Galaxus
- Хакерлер бір миллион бала мониторы мен қауіпсіздік камерасын оңай көре алды · The Verge
- ешкім сәбиді бұрышқа қоймайды · Sammy Azdoufal
- Осы оқиғаға арналған ата-аналар нұсқаулығы · Baby Monitor Timmy