Қауіпсіздік туралы түсіндірме

Meari бала бақылау камерасының қауіпсіздік осалдығы: Timmy нені басқаша істейді

Meari жағдайы жақсы безендірілген кіру жүйесінің өзі жеткіліксіз екенін көрсетеді. Бала бақылау жүйесінің қауіпсіздігі архитектураға, рұқсаттарды басқаруға және кілттерді басқаруға байланысты.

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 мекенжайлары көпшілікке жабық па, қысқа мерзімге ғана жарамды ма және әр құрылғы бойынша бөлек рұқсатпен қорғалған ба?
  • Кілттер қолданбаның ішіндегі тұрақты кілттер түрінде сақталмай, әр құрылғыға немесе әр жұптастыруға бөлек жасала ма?
  • Брокер тек өзіңізге тиесілі құрылғының хабарларын ғана жеткізе ме?
  • Жұптастыру пайдаланушыға «ортадағы адам» шабуылын байқауға мүмкіндік бере ме?

Кодты қараңыз

Дереккөздер