أفادت 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 الأضيق نطاقًا معماري: فهو يتجنب وجود مواد وسائط من غرفة الطفل تستطيع أنظمة الواجهة الخلفية قراءتها، ويتيح فحص منطق الاقتران الحساس أمنيًا في المشروع الأساسي المتاح للعامة.
أسئلة ينبغي طرحها عن أي كاميرا أطفال
- هل يخزن المورّد الصور أو المقاطع؟
- هل روابط الوسائط خاصة وقصيرة الأجل ومحمية بتفويض خاص بكل جهاز؟
- هل تُنشأ المفاتيح لكل جهاز أو اقتران بدلًا من أن تكون ثابتة داخل التطبيق؟
- هل يقتصر الوسيط على تسليم رسائل الجهاز الذي تملكه فعلًا؟
- هل يتيح الاقتران للمستخدم ملاحظة محاولة هجوم وسيط؟
اقرأ الكود
- ECDH وSAS في Timmy Core
- مفتاح الاجتماع ومفتاح المستند وAES-GCM
- قواعد Firestore للجلسات والاقتران
- توثيق الأمان في المشروع الأساسي
المصادر
- تسجيلات كاميرات الأطفال متاحة بحرية · Galaxus
- كان بإمكان المخترقين مشاهدة مليون جهاز مراقبة أطفال وكاميرا أمنية بسهولة · The Verge
- لا أحد يضع الطفل في الزاوية · Sammy Azdoufal
- دليل للوالدين حول الحادثة نفسها · Baby Monitor Timmy