رمز مصادقة الرسالة

تُستخدم بث الرسائل لضبط تبديل الصوت، ويمكنك الاطّلاع على رسائل تبديل الصوت: بالنسبة إلى هذه الإعدادات المهمة، يحتاج موفّر الخدمة للتأكُّد من إرسال الرسالة من خلال وحدة "الإقران السريع" (GMSCore) وليس من خلال تطبيق آخر على Seeker.

إنشاء رمز مصادقة الرسائل (MAC)

يضيف FP Seeker رمز مصادقة الرسائل إلى رسائل إعداد الجهاز باستخدام HMAC-SHA256. يتكون عنوان MAC للرسالة من أول 8 بايت من:

 sha256(concat((K ^ opad), sha256(concat((K ^ ipad), concat(nonce, message)))))

أين

  1. يتم إنشاء K بواسطة concat(account key, 48-byte ZEROs).
  2. message هي البيانات الإضافية لمصدر الرسائل.
  3. يتم إنشاء nonce بواسطة concat(session_nonce, message_nonce); جلسة يتم تعريف nonce وmessage nonce في القسم التالي.
  4. opad هي 64 بايت من المساحة المتروكة الخارجية، وهي تتكون من وحدات بايت متكررة يتم تقديرها 0x5C
  5. ipad عبارة عن 64 بايت من المساحة المتروكة الداخلية، وهي تتكون من وحدات بايت متكررة يتم تقديرها 0x36

نسبة عدم تسجيل الجلسة والرسالة

لمنع هجوم إعادة التشغيل، يحتاج موفّر الخدمة إلى التأكد من عدم حدوث متكررة. نظرًا للحفاظ على مزامنة الساعة أو العدّاد في كلٍ من موفّر الخدمة وكانت أداة البحث سهلة الاستخدام، ينشئ الموفر الجلسة بدون (لكل اتصال)، التي تتم مشاركتها مع جميع الرسائل أثناء الاتصال، بينما يقوم الباحث بإنشاء الرسالة nonce (لكل رسالة)، والتي يتم إجراؤها بشكل عشوائي يتم إنشاؤه لكل رسالة. الجزء الخاص بإنشاء عنوان MAC لكل رسالة هو الجمع بين رقم الجلسة وعدم الاتصال، أي concat(session_nonce, message_nonce).

أضفنا جلسة تلقائية إلى مجموعة حدث "معلومات الجهاز":

اسم مجموعة الرسائل القيمة
حدث معلومات الجهاز 0x03
اسم رمز الرسالة القيمة
عدد مرات الجلسة 0×0 أمبير

يجب إنشاء رقم جلسة المراجعة وإرساله إلى الباحث عند إدخال بروتوكول RFCOMM. الربط:

ثُمانِي واحد نوع البيانات الوصف القيمة
0 uint8 حدث معلومات الجهاز 0x03
1 uint8 عدد مرات الجلسة 0×0 أمبير
2 - 3 uint16 طول البيانات الإضافية 0×0008
من 4 إلى 11 رقم الجلسة تختلف

لإرسال رسالة عندما يكون عنوان MAC مطلوبًا، سيرسل الباحث رسالة بدون وعنوان MAC مع الرسالة.

ثُمانِي واحد نوع البيانات الوصف القيمة
0 uint8 مجموعة الرسائل تختلف
1 uint8 رمز الرسالة تختلف
2 - 3 uint16 طول البيانات الإضافية(طول البيانات الإضافية + 16) تختلف
4 - n البيانات الإضافية تختلف
n + 1 - n + 8 رسالة رقم تختلف
n + 9 - n + 16 رمز مصادقة الرسائل تختلف

التحقق من رمز MAC (رمز مصادقة الرسائل)

عند استلام رسالة تحتوي على رمز مصادقة الرسالة، موفّر الخدمة التحقق منه باستخدام نفس الدالة مثل دالة الإنشاء. أي، يجب أن يكون عنوان MAC الذي تم استلامه مساوية لأول 8 بايت من

 sha256(concat((K ^ opad), sha256(concat((K ^ ipad), concat(section_nonce, message_nonce, message)))))

حيث:

  1. تم إنشاء K بواسطة concat(account key, 48-byte ZEROs)، وموفّر الخدمة يجتاز جميع مفاتيح الحساب المخزنة للتحقق من عنوان MAC.
  2. message هي البيانات الإضافية (باستثناء رقم الرسالة وعنوان MAC) الخاص ساحة مشاركات الرسائل.

إذا كان عنوان MAC صحيحًا، فسيتبع الموفر تعليمات . وبخلاف ذلك، سيرسل الموفر NAK مع سبب الخطأ، 0x3 - غير مسموح به بسبب وجود رمز غير صحيح لمصادقة الرسالة.