شرح أمني

ثغرة أمان كاميرا الأطفال Meari: ما الذي يفعله Timmy بشكل مختلف

تُظهر حالة Meari أن واجهة تسجيل دخول أنيقة لا تكفي. يعتمد أمان أجهزة مراقبة الأطفال على البنية المعمارية والتفويض وإدارة المفاتيح.

أفادت Galaxus بأن تسجيلات كاميرات الأطفال كانت متاحة للجميع دون قيود، كما ذكرت The Verge أن المشكلة طالت نحو 1.1 مليون جهاز من Meari. بالنسبة إليّ، الدرس واقعي وواضح: لا يحمي تسجيل الدخول غرفة الطفل إذا أخفقت المنصة التي تقف وراءه في عزل الرسائل والصور والمفاتيح بوضوح لكل جهاز. لا يحل Timmy جميع مشكلات الأمان في العالم، لكن أسراره الحساسة الخاصة بالوسائط والاقتران لا توجد داخل منصة كاميرات سحابية.

ما الذي يبدو أنه أخفق في حالة Meari

تصف التقارير العامة منصة ذات علامة بيضاء؛ فقد باعت علامات تجارية عديدة كاميرات تعتمد على البنية التحتية نفسها من Meari/CloudEdge. ولهذا تهم الحادثة: عندما ترسم منصة مشتركة حدود التفويض على نحو خاطئ، لا تكون النتيجة كاميرا واحدة ضعيفة، بل انكشافًا يطال أسطولًا كاملًا من الأجهزة.

يتجاوز النمط المُبلّغ عنه مجرد كلمات المرور الافتراضية الضعيفة. تصف المصادر رسائل MQTT من دون ضوابط اشتراك كافية خاصة بكل جهاز، وروابط صور متاحة للعامة، وتمويهًا ضعيفًا للصور، ومفاتيح ثابتة أو قابلة للاستخراج من التطبيق. هذا فشل على مستوى المنصة؛ إذ استطاعت البنية التحتية كشف بيانات ما كان ينبغي مطلقًا أن تتاح لحساب آخر.

مخاطر الكاميرات السحابيةالتصميم المقابل في 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، باستخدام AES-256-GCM قبل وصولها إلى Firestore. يساعد Firestore الجهازين على التفاوض؛ وليس مكانًا يُفترض أن توجد فيه بيانات فيديو أو صوت أو إشارات غير مشفّرة.

ما الذي لا يدّعيه Timmy أيضًا

لا ينبغي لأي جهاز جاد لمراقبة الأطفال أن يدّعي أنه غير قابل للاختراق. إذا تعرّض هاتف للاختراق، فقد يتعرض أي تطبيق للهجوم. كما أن وجود إصدار خبيث من التطبيق يغيّر طبيعة المخاطر، ويجب أن تظل إعدادات الخادم صحيحة. ادعاء Timmy الأضيق نطاقًا معماري: فهو يتجنب وجود مواد وسائط من غرفة الطفل تستطيع أنظمة الواجهة الخلفية قراءتها، ويتيح فحص منطق الاقتران الحساس أمنيًا في المشروع الأساسي المتاح للعامة.

أسئلة ينبغي طرحها عن أي كاميرا أطفال

  • هل يخزن المورّد الصور أو المقاطع؟
  • هل روابط الوسائط خاصة وقصيرة الأجل ومحمية بتفويض خاص بكل جهاز؟
  • هل تُنشأ المفاتيح لكل جهاز أو اقتران بدلًا من أن تكون ثابتة داخل التطبيق؟
  • هل يقتصر الوسيط على تسليم رسائل الجهاز الذي تملكه فعلًا؟
  • هل يتيح الاقتران للمستخدم ملاحظة محاولة هجوم وسيط؟

اقرأ الكود

المصادر