عكس بروتوكول تفعيل الهندسة ياندكس



Yandex.Station هي سماعة ذكية مع مساعد صوت أليس. لتنشيطه ، تحتاج إلى إحضار الهاتف وتشغيل الصوت من تطبيق Yandex. تحت القصاصة ، سوف أخبرك كيف تعمل هذه الإشارة ، حول كلمة مرور WiFi في شكل مفتوح ومحاولة تطوير فكرة نقل البيانات عبر الصوت.

مقدمة


تخرجت من كلية الهندسة الراديوية في MIPT ، درست وتطوير أنظمة الاتصالات من بروتوكولات الطبقة المادية إلى الشبكات الفيدرالية. لذلك ، عندما قدم الأصدقاء Yandex.Station ، تساءلت على الفور عن كيفية تنظيم نقل البيانات للتفعيل من خلال الرمز المميز للصوت.

عملية التنشيط


عند تشغيل عمود جديد ، فإنك تحتاج بطريقة ما إلى نقل المعلومات إليه للاتصال بشبكة WiFi والترخيص في خدمات Yandex. في المحطة ، يتم ذلك من خلال الصوت ويبدو أن الفيديو أدناه (7:34).



"... يتم نقل المعلومات ، حسناً ، ليس عن طريق الصوت ، بالطبع ..." - يقول فالنتين. كان يعلم أنه في تلك اللحظة دخلت كلمة مرور WiFi الخاصة به في الفيديو بشكل شبه مفتوح! ولكن أكثر على ذلك في وقت لاحق.

في غضون ذلك ، فكر في ما يحدث. يأخذ الهاتف البيانات على شبكة WiFi (ssid من النظام ، يقوم المستخدم بإدخال كلمة المرور) والبيانات للحصول على إذن في Yandex. يتم ترميزها بطريقة ما ، وتعديلها ومنبعثها بواسطة مكبر صوت الهاتف. تقوم المحطة بإزالة تشكيل الإشارة من الميكروفونات وفك تشفير البيانات واستخدامها للاتصال بالشبكة والترخيص.

في هذه العملية ، نحن مهتمون بكيفية تشفير البيانات وتعديلها .

إزالة التشكيل البصري


للحصول على عينة إشارة ، ليست هناك حاجة إلى المحطة نفسها. من الضروري فقط أن يكون الهاتف متصلاً بشبكة WiFi مع الإنترنت. قررت إنشاء نقاط وصول مع مختلف ssid وكلمات المرور لمعرفة كيف تتغير الإشارة. للراحة ، بدأت في تسجيل الصوت في الملفات والعمل معهم.

أولاً ، قمت بإنشاء نقطة وصول بكلمة مرور عشوائية "012345678" وقمت بتوصيل الهاتف به. لقد قمت بالنقر فوق "تشغيل الصوت" وسجلت الإشارة الناتجة. دعونا نلقي نظرة على الطيف مع مرور الوقت (الشلال). هنا ، يمثل المحور العمودي التردد ، ويمثل المحور الأفقي الوقت ، ويتم تحديد اللون حسب السعة.


لذلك ، يمكن ملاحظة أن تعديل التردد يستخدم ، ويتم إرسال البيانات بأحرف 40 مللي ثانية. يمكنك أيضا تسليط الضوء على زيادة التالية:



توقف عن ذلك! يبدو أن لدينا كلمة مرور متنامية. "012345678". كيف تبدو هذه الأرقام في ترميزات ascii أو utf-8؟ " 30 31 32 33 34 35 36 37 38. " نجاح باهر! لم يكن لدي حتى لتغيير كلمة المرور! ومن هنا:



حاولت تغيير كلمة المرور وتأكدت من تحديد موقعها في الإشارة بشكل صحيح.

اتضح أن البيانات مشفرة بأحرف 4 بت. في الواقع ، يتم تشفير سلسلة سداسية عشرية ، حيث يكون لكل قيمة 0 - F ترددها الخاص من 1 كيلو هرتز إلى 4.6 كيلو هرتز في خطوات من 240 هرتز. في الوقت نفسه ، في بداية ونهاية الإرسال ، يوجد إشعاع على ترددات أعلى من kHz 5 - يتم فصل علامات البداية والنهاية عن الجزء الرئيسي على المستوى المادي.

فك


من أجل عدم إعادة كتابة الرموز في كل مرة ، بالنظر إلى الطيف ، قمت برسم مستقبل بيثون بسيط يحول الملف الصوتي إلى سلسلة سداسية عشرية بشكل ثابت للغاية. لقد بدأت في تغيير ssid لنقطة الوصول وتحليل ما يؤثر هذا البايت. نتيجة لذلك ، اتضح أنه يتم تخزين المعلومات حول ssid في وحدتي بايت قبل كلمة المرور. طول هذه الكتلة لا يعتمد على طول ssid. كيف ذلك؟

ربما يتم نقل تجزئة ssid فقط إلى المحطة. في هذه الحالة ، على الأرجح ، تقوم المحطة بعد التشغيل بحساب تجزئة أسماء جميع الشبكات المتاحة. ثم يختار الشبكة ، ومقارنة القيم المستلمة مع القيم المقبولة. على الأرجح ، تم ذلك لتقليل طول الحزمة. (ولكن كيف يتم إذن الاتصال بالشبكات المخفية؟)

وينظر أيضًا إلى أنه مع بعض الفترة ، يوجد إدراج مكون من 4 أحرف. على الطيف يمكن رؤيتها مرتين داخل كلمة المرور. ربما هذا هو نوع من الترميز المقاوم للضوضاء ، أو رموز التزامن.



لم أتمكن من تخصيص بيانات للترخيص في ياندكس. ومع ذلك ، فإن طول الحزمة صغير جدًا ، لذلك يمكننا القول بالتأكيد أنه لا يوجد رمز مميز لبرنامج OAuth في الحزمة. أفترض أن تطبيق Yandex يتلقى رابطًا مؤقتًا ، يتم إرسال جزء منه إلى المحطة. وهي بدورها تتلقى معلومات المصادقة الكاملة من خلال هذا الرابط. أعتقد أن هذا تم أيضًا لتقليل طول الحزمة.

نشر في ياندكس؟


نعم ، 8 مايو ، 2019. تلقيت ردًا تلقائيًا:



مرت 4 أشهر - ولم تتصل. وفقًا لقواعد ياندكس ، يمكنك الآن الكشف عن المعلومات ، وهذا ما أقوم به في الواقع.

هل هذه مشكلة على الإطلاق؟


ربما لا يعتبر موظفو Yandex هذه مشكلة. في الواقع ، لا يمكن أن يُطلق عليه اسم الثغرة الأمنية ، لأن تنشيط المحطة نادراً ما يحدث أكثر من مرة واحدة. علاوة على ذلك ، غالبًا ما تكون في غرفة "موثوق بها". في المنزل أو في المكتب ، يمكنك نطق كلمة مرور WiFi بصوت عالٍ ، وهو نفس الشيء تقريبًا. خبراء أمن المعلومات ، ما رأيك؟

بالإضافة إلى ذلك ، تم بالفعل توصيل خوارزمية التنشيط إلى المحطات المصنعة ، لذلك من غير المحتمل أن تكون قادرًا على التخلص من مشكلة عدم الحصانة هذه في الإصدار الحالي.

ومع ذلك ، أعتقد أن هذا ليس سببًا لتجاهل الرسائل في bugbounty. على الأقل ، ليس مهذبا أن نعد بالإجابة وليس القيام بذلك. حسنًا ، دعنا نفترض أن نداءي قد فقد في مكان ما. إذا كان أي شيء ، رقم التذكرة: 19050804473488035.

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


وأريد أيضًا تذكير Wylsacom و Rozetked وغيرهم من المدونين بضرورة إجراء تغييرات منتظمة في كلمة المرور. على الأقل أعرف ما كان لديك وقت مراجعة Yandex.Station)

ما هي النتيجة؟


قام المطورون من Yandex بعمل رائع. أنها زينت عملية تفعيل المحطة ، وجعلها غير عادية. المشكلة الوحيدة ، في رأيي ، هي كلمة مرور مفتوحة.

ولكن يمكن جعل العملية نفسها أكثر أمانًا باستخدام تقنية Bluetooth. هذا جعلني أعتقد أنه في هذه الحالة ، الأمن أو السرعة ليست مهمة للغاية. عرض مهم. التنشيط من خلال الأصوات التي تذكر R2-D2 من Star Wars مثير للإعجاب ويبدو غير عادي.

ألهمني هذا الموقف لتطوير فكرة مطوري ياندكس وصنع بروتوكول موجه للانطباع. ماذا لو تم استخدام ترددات الملاحظة لتعديل أحرف سداسية عشرية؟ لماذا لا نقل البيانات في C الكبرى؟ اتضح أنها مثيرة للاهتمام للغاية ، ولكن المزيد عن ذلك في المقال التالي .

شكرا للقراءة ، النجاح!

محدث: استجابة ياندكس
من خدمة أمن المعلومات ، ردوا في التعليقات ، وأرسلوا أيضًا خطابًا:

Source: https://habr.com/ru/post/ar469435/


All Articles