مواصفات ملحق شبكة "مركز العثور"

v1.3

يحدّد مواصفات ملحق شبكة "مركز العثور" (FHN) طريقة مشفّرة تمامًا لتتبُّع أجهزة البلوتوث المنخفض الطاقة (BLE) التي تبث إشارات. توضّح هذه الصفحة أنّ ميزة "البحث عن الأجهزة المفقودة" هي إضافة إلى مواصفات Fast Pair. على مقدّمي الخدمات تفعيل هذا الامتداد إذا كانت لديهم أجهزة متوافقة مع FHN ويريدون تفعيل ميزة تتبُّع الموقع الجغرافي لهذه الأجهزة.

مواصفات GATT

يجب إضافة سمة عامة إضافية (GATT) إلى خدمة Fast Pair مع الدلالات التالية:

سمة خدمة "الإقران السريع" مشفَّر الأذونات معرِّف فريد عالمي (UUID)
إجراءات Beacon لا القراءة والكتابة وإرسال الإشعارات FE2C1238-8366-4814-8EB0-01DE32100BEA

الجدول 1: خصائص خدمة "الإقران السريع" لشبكة FHN

المصادقة

يتم تنفيذ العمليات التي يتطلبها هذا الامتداد كعملية كتابة، ويتم تأمينها من خلال آلية طلب-استجابة. قبل تنفيذ أي عملية، من المتوقّع أن ينفّذ Seeker عملية قراءة من السمة في الجدول 1، ما يؤدي إلى إنشاء مخزن مؤقت بالتنسيق التالي:

Octet نوع البيانات الوصف القيمة
0 uint8 رقم الإصدار الرئيسي للبروتوكول 0x01
1 - 8 مصفوفة بايت رقم عشوائي يُستخدَم لمرة واحدة يختلف

يجب أن تؤدي كل عملية قراءة إلى رقم عشوائي مختلف، ويجب أن يكون الرقم العشوائي الواحد صالحًا لعملية واحدة فقط. يجب إبطال الرقم العشوائي حتى إذا تعذّر إتمام العملية.

بعد ذلك، يحسب الباحث مفتاح مصادقة صالحًا لمرة واحدة لاستخدامه في طلب كتابة لاحق. يتم احتساب مفتاح المصادقة كما هو موضّح في الجداول من 2 إلى 5. استنادًا إلى العملية المطلوبة، يثبت "طالب الوصول" معرفته بمفتاح واحد أو أكثر من المفاتيح التالية:

العمليات

يتم عرض تنسيق البيانات التي يتم كتابتها إلى السمة في الجداول من 2 إلى 5. سيتم تناول كل عملية من العمليات بالتفصيل لاحقًا في هذا القسم.

Octet نوع البيانات الوصف القيمة
0 uint8 معرّف البيانات
  • ‫0x00: قراءة مَعلمات إشارة التتبّع
  • ‫0x01: قراءة حالة توفير المتطلبات اللازمة
  • ‫0x02: ضبط مفتاح الهوية المؤقتة
  • ‫0x03: محو مفتاح الهوية المؤقتة
1 uint8 طول البيانات يختلف
‫2 - 9 مصفوفة بايت مفتاح المصادقة لمرة واحدة أول 8 بايتات من HMAC-SHA256(account key, protocol major version number || the last nonce read from the characteristic || data ID || data length || additional data)
‫10 - var مصفوفة بايت البيانات الإضافية
  • 0x00: غير متوفر
  • ‫0x01: غير متوفر
  • 0x02: 32 بايت تمثّل مفتاح هوية مؤقتة، AES-ECB-128 مشفر باستخدام مفتاح الحساب. إذا كان مقدّم الخدمة لديه مجموعة مفاتيح هوية مؤقتة، أرسِل أيضًا أول 8 بايت من SHA256(current ephemeral identity key || the last nonce read from the characteristic).
  • ‫0x03: أول 8 بايتات من SHA256(ephemeral identity key || the last nonce read from the characteristic)

الجدول 2: طلب توفير إشارات Beacon

Octet نوع البيانات الوصف القيمة
0 uint8 معرّف البيانات ‫0x04: قراءة مفتاح الهوية المؤقتة بموافقة المستخدم
1 uint8 طول البيانات 0x08
‫2 - 9 مصفوفة بايت مفتاح المصادقة لمرة واحدة أول 8 بايتات من HMAC-SHA256(recovery key, protocol major version number || the last nonce read from the characteristic || data ID || data length)

الجدول 3: طلب استرداد مفتاح توفير Beacon

Octet نوع البيانات الوصف القيمة
0 uint8 معرّف البيانات
  • ‫0x05: رنين
  • ‫0x06: قراءة حالة الرنين
1 uint8 طول البيانات يختلف
‫2 - 9 مصفوفة بايت مفتاح المصادقة لمرة واحدة أول 8 بايتات من HMAC-SHA256(ring key, protocol major version number || the last nonce read from the characteristic || data ID || data length || additional data)
‫10 - var مصفوفة بايت البيانات الإضافية
  • 0x05: 4 بايت تشير إلى حالة الرنين ومدته ومستوى صوته.
  • ‫0x06: غير متوفر

الجدول 4: طلب الرنين

Octet نوع البيانات الوصف القيمة
0 uint8 معرّف البيانات
  • ‫0x07: تفعيل وضع الحماية من التتبُّع غير المرغوب فيه
  • ‫0x08: إيقاف وضع "الحماية من التتبّع غير المرغوب فيه"
1 uint8 طول البيانات يختلف
‫2 - 9 مصفوفة بايت مفتاح المصادقة لمرة واحدة أول 8 بايتات من HMAC-SHA256(unwanted tracking protection key, protocol major version number || the last nonce read from the characteristic || data ID || data length || additional data)
‫10 - var مصفوفة بايت البيانات الإضافية
  • 0x07: بايت واحد من علامات التحكّم (اختياري)
  • 0x08: أول 8 بايتات من SHA256(ephemeral identity key || the last nonce read from the characteristic)

الجدول 5: طلب الحماية من التتبّع غير المرغوب فيه

تؤدي عمليات الكتابة الناجحة إلى إطلاق الإشعارات المُدرَجة في الجدول 6.

يجب إرسال الإشعارات التي تتضمّن رقم تعريف بيانات غير 0x05: تغيير حالة الرنين قبل إكمال عملية الكتابة التي تؤدي إلى ظهور الإشعار، أي قبل إرسال وحدة بيانات البروتوكول (PDU) الخاصة بالرد على طلب الكتابة.

Octet نوع البيانات الوصف القيمة
0 uint8 معرّف البيانات
  • ‫0x00: قراءة مَعلمات إشارة التتبّع
  • ‫0x01: قراءة حالة توفير المتطلبات اللازمة
  • ‫0x02: ضبط مفتاح الهوية المؤقتة
  • ‫0x03: محو مفتاح الهوية المؤقتة
  • ‫0x04: قراءة مفتاح الهوية المؤقتة بموافقة المستخدم
  • ‫0x05: تغيير حالة الرنين
  • ‫0x06: قراءة حالة الرنين
  • ‫0x07: تفعيل وضع الحماية من التتبُّع غير المرغوب فيه
  • ‫0x08: إيقاف وضع "الحماية من التتبّع غير المرغوب فيه"
1 uint8 طول البيانات يختلف
‫2 - 9 مصفوفة بايت المصادقة تفاصيل كل عملية
‫10 - var مصفوفة بايت البيانات الإضافية
  • 0x00: 8 بايت تشير إلى طاقة الإرسال وقيمة الساعة وطريقة التشفير وإمكانات الرنين ، ويتم تشفيرها باستخدام AES-ECB-128 مع مفتاح الحساب (مع إضافة أصفار)
  • ‫0x01: بايت واحد يشير إلى حالة التوفير، يليه المعرّف المؤقت الحالي (20 أو 32 بايت) إذا كان ذلك منطبقًا
  • 0x04: 32 بايت تمثّل مفتاح هوية مؤقتة، AES-ECB-128 مشفر باستخدام مفتاح الحساب
  • ‫0x05: 4 بايت تشير إلى الحالة الجديدة وسبب التغيير
  • ‫0x06: 3 بايت تشير إلى المكوّنات التي تصدر رنينًا بشكل نشط وعدد أجزاء الثانية المتبقية للرنين
  • تستخدم معرّفات البيانات الأخرى بيانات إضافية فارغة

الجدول 6: استجابة خدمة Beacon

يسرد الجدول 7 رموز أخطاء GATT المحتملة التي تعرضها العمليات.

الرمز الوصف ملاحظات
0x80 عدم الحصول على المصادقة يتم عرض هذا الخطأ استجابةً لطلب كتابة عند تعذُّر المصادقة (بما في ذلك الحالة التي تم فيها استخدام قيمة عشوائية قديمة).
0x81 قيمة غير صالحة يتم عرض هذا الخطأ عند تقديم أي قيمة غير صالحة أو إذا كان عدد البايتات التي تم تلقّيها غير متوقّع.
0x82 عدم توفّر موافقة المستخدم يتم عرض هذا الرمز استجابةً لطلب كتابة يتضمّن معرّف البيانات 0x04: قراءة مفتاح الهوية المؤقتة بموافقة المستخدم عندما لا يكون الجهاز في وضع الاقتران.

الجدول 7: رموز الخطأ في GATT

قراءة مَعلمة الإشارة

يمكن لجهاز Seeker أن يطلب من جهاز Provider معلَمات إشارة Beacon من خلال تنفيذ عملية كتابة للخاصية التي تتضمّن طلبًا من الجدول 2 مع رقم تعريف البيانات 0x00. يتأكّد الموفّر من أنّ مفتاح المصادقة لمرة واحدة الذي تم تقديمه يتطابق مع أي من مفاتيح الحسابات المخزّنة على الجهاز.

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

عند النجاح، يرسل "موفّر الخدمة" إشعارًا يتضمّن استجابة من الجدول 6 مع معرّف البيانات 0x00. ينشئ الموفّر مقطع البيانات على النحو التالي:

Octet نوع البيانات الوصف القيمة
0 uint8 الطاقة المعايرة تمثّل هذه السمة قوة الإشارة التي تم ضبطها كما تم استلامها على مسافة 0 متر (قيمة ضمن النطاق [-100, 20]). يتم تمثيله كعدد صحيح يحمل علامة، بدقة 1 ديسيبل ميلي واط.
1 - 4 uint32 قيمة الساعة قيمة الساعة الحالية بالثواني (big endian).
5 uint8 اختيار المنحنى المنحنى الإهليلجي المستخدَم للتشفير:
  • ‫0x00 (تلقائي): SECP160R1
  • ‫0x01: SECP256R1 (يتطلّب إعلانات موسّعة)
6 uint8 المكونات عدد المكوّنات التي يمكنها إصدار رنين:
  • ‫0x00: يشير إلى أنّ الجهاز غير قادر على إصدار رنين.
  • ‫0x01: يشير إلى أنّ مكوّنًا واحدًا فقط يمكنه إصدار صوت رنين.
  • ‫0x02: يشير إلى أنّ مكوّنَين، هما سمّاعتَي الأذن اليمنى واليسرى، يمكنهما إصدار رنين بشكل مستقل.
  • ‫0x03: يشير إلى أنّ ثلاثة مكونات، وهي سمّاعات الأذن اليمنى واليسرى وعلبة الشحن، يمكنها إصدار رنين بشكل مستقل.
7 uint8 إمكانات الرنين في ما يلي الخيارات المتاحة:
  • ‫0x00: لا يتوفّر خيار تحديد مستوى صوت الرنين.
  • ‫0x01: يتوفّر خيار تحديد مستوى صوت الرنين. في حال ضبط هذا الخيار، على مقدّم الخدمة قبول 3 مستويات صوت والتعامل معها كما هو موضّح في عملية الرنين.
8-15 مصفوفة بايت مساحة متروكة تعبئة الأصفار لتشفير AES

يجب أن تكون البيانات مشفَّرة باستخدام معيار التشفير المتقدّم AES-ECB-128 مع مفتاح الحساب المستخدَم في مصادقة الطلب.

يتم تعريف جزء المصادقة على أنّه أول 8 بايتات من HMAC-SHA256(account key, protocol major version number || the last nonce read from the characteristic || data ID || data length || additional data after encryption || 0x01).

قراءة حالة توفير المنارة

يمكن لجهاز Seeker أن يطلب من جهاز Provider معرفة حالة توفير إشارة Beacon من خلال تنفيذ عملية كتابة للخاصية التي تتضمّن طلبًا من الجدول 2 مع معرّف البيانات 0x01. يتأكّد مقدّم الخدمة من أنّ مفتاح المصادقة لمرة واحدة المقدَّم يتطابق مع أي من مفاتيح الحساب المخزّنة على الجهاز.

في حال فشل عملية التحقّق، يعرض موفّر الخدمة خطأً غير مصادَق عليه.

عند النجاح، يرسل مقدّم الخدمة إشعارًا يتضمّن استجابة من الجدول 6 مع معرّف البيانات 0x01. ينشئ الموفّر مقطع البيانات على النحو التالي:

Octet نوع البيانات الوصف القيمة
0 uint8 حالة توفير المتطلبات اللازمة قناع بت يحتوي على القيم التالية:
  • وحدة البت 1 (0x01): يتم ضبطها إذا تم ضبط مفتاح هوية مؤقت للجهاز.
  • وحدة البت 2 (0x02): يتم ضبطها إذا كان مفتاح المصادقة لمرة واحدة المقدَّم مطابقًا لمفتاح حساب المالك.
‫1 - 20 أو 32 مصفوفة بايت المعرّف المؤقت الحالي تمثّل هذه السمة 20 أو 32 بايت (حسب طريقة التشفير المستخدَمة) وتشير إلى المعرّف المؤقت الحالي الذي يعلِن عنه جهاز الإرسال، إذا تم ضبط معرّف للجهاز.

يتم تعريف جزء المصادقة على أنّه أول 8 بايتات من HMAC-SHA256(account key, protocol major version number || the last nonce read from the characteristic || data ID || data length || additional data || 0x01).

ضبط مفتاح هوية مؤقت

لتوفير موفّر لم يتم توفيره من قبل كإشارة FHN، أو لتغيير مفتاح الهوية المؤقتة لموفّر تم توفيره من قبل، ينفّذ الباحث عملية كتابة للخاصية التي تتضمّن طلبًا من الجدول 2 مع معرّف البيانات 0x02. يتحقّق موفّر الخدمة مما يلي:

  • يتطابق مفتاح المصادقة لمرة واحدة المقدَّم مع مفتاح حساب المالك.
  • إذا تم تقديم تجزئة لمفتاح هوية مؤقت، يجب أن تتطابق تجزئة مفتاح الهوية المؤقت مع مفتاح الهوية المؤقت الحالي.
  • إذا لم يتم تقديم تجزئة لمفتاح هوية مؤقت، تحقَّق من أنّ "مقدّم الخدمة" لم يتم توفيره مسبقًا كإشارة FHN.

في حال فشل عملية التحقّق، يعرض موفّر الخدمة خطأً غير مصادَق عليه.

في حال النجاح، يتم استرداد مفتاح الهوية المؤقتة من خلال فك تشفيره باستخدام AES-ECB-128 باستخدام مفتاح الحساب المطابق. يجب أن يتم تخزين المفتاح على الجهاز، ومن تلك النقطة فصاعدًا، يجب أن يبدأ "مزوّد الخدمة" في عرض إطارات FHN. يسري مفتاح الهوية المؤقت الجديد فور انتهاء اتصال البلوتوث المنخفض الطاقة (BLE). يُرسل مقدّم الخدمة إشعارًا يتضمّن استجابة من الجدول 6 مع معرّف البيانات 0x02.

يتم تعريف جزء المصادقة على أنّه أول 8 بايتات من HMAC-SHA256(account key, protocol major version number || the last nonce read from the characteristic || data ID || data length || 0x01).

محو مفتاح الهوية المؤقتة

لإلغاء توفير جزء الإشارة من مقدّم الخدمة، ينفّذ الباحث عملية كتابة للخاصية، تتألف من طلب من الجدول 2 يتضمّن معرّف البيانات 0x03. يتحقّق موفّر الخدمة مما يلي:

  • يتطابق مفتاح المصادقة لمرة واحدة المقدَّم مع مفتاح حساب المالك.
  • يتطابق مفتاح الهوية المؤقتة المجزّأ مع مفتاح الهوية المؤقتة الحالي.

إذا لم يتم توفير "مقدّم الخدمة" كإشارة FHN أو تعذّر إثبات الملكية، سيتم عرض خطأ "لم تتم المصادقة".

عند النجاح، ينسى مقدّم الخدمة المفتاح ويتوقّف عن عرض إطارات FHN. يُرسل "موفّر الخدمة" إشعارًا يتضمّن استجابة من الجدول 6 مع معرّف البيانات 0x03. يتم تعريف جزء المصادقة على أنّه أول 8 بايتات من HMAC-SHA256(account key, protocol major version number || the last nonce read from the characteristic || data ID || data length || 0x01).

قراءة مفتاح الهوية المؤقتة بموافقة المستخدم

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

على Seeker تخزين مفتاح الاسترداد في الخلفية ليتمكّن من استرداد مفتاح النص العادي، ولكنّه لا يخزّن EIK نفسه.

لقراءة مفتاح التشفير، ينفّذ جهاز التتبّع عملية كتابة للخاصية، تتألف من طلب من الجدول 3 مع رقم تعريف البيانات 0x04. يتحقّق موفّر الخدمة مما يلي:

  • يتطابق مفتاح الاسترداد المجزّأ مع مفتاح الاسترداد المتوقّع.
  • الجهاز في وضع استرداد مفتاح التشفير المضمّن (EIK).

في حال فشل عملية التحقّق، يعرض موفّر الخدمة خطأً غير مصادَق عليه.

إذا لم يكن الجهاز في وضع الاقتران، سيعرض موفّر الخدمة الخطأ No User Consent.

عند النجاح، يرسل مقدّم الخدمة إشعارًا يتضمّن استجابة من الجدول 6 مع معرّف البيانات 0x04.

يتم تعريف جزء المصادقة على أنّه أول 8 بايتات من HMAC-SHA256(recovery key, protocol major version number || the last nonce read from the characteristic || data ID || data length || additional data || 0x01).

عملية الرنين

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

Octet نوع البيانات الوصف القيمة
0 uint8 عملية الرنين قناع بت يحتوي على القيم التالية:
  • وحدة البت 1 (0x01): استصدار رنين من السماعة اليمنى
  • وحدة البت 2 (0x02): الرنين في الأذن اليسرى
  • وحدة البت 3 (0x04): حالة الرنين
  • 0xFF: رنين جميع المكوّنات
  • ‫0x00: إيقاف الرنين
1 - 2 uint16 عملية استبعاد للقناة لمهلة معيّنة المهلة بالديسي ثانية يجب ألا تكون القيمة صفرًا وألا تزيد عن 10 دقائق.
يستخدم الموفّر هذه القيمة لتحديد المدة التي يجب أن يرنّ خلالها الجهاز قبل أن يتم إسكاته. يحلّ المهلة محلّ المهلة السارية إذا كان أي جزء من الجهاز يرنّ.

إذا تم ضبط عملية الرنين على 0x00، سيتم تجاهل المهلة.
3 uint8 مستوى الصوت
  • ‫0x00: تلقائي
  • ‫0x01: منخفض
  • ‫0x02: متوسط
  • ‫0x03: مرتفع
يختلف المعنى الدقيق لهذه القيم حسب التنفيذ.

عند تلقّي الطلب، يتحقّق مقدّم الخدمة مما يلي:

  • يتطابق مفتاح المصادقة لمرة واحدة المقدَّم مع مفتاح الرنين.
  • تتطابق الحالة المطلوبة مع المكوّنات التي يمكنها الرنين.

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

عندما يبدأ الرنين أو ينتهي، يتم إرسال إشعار كما هو موضّح في الجدول 6 مع معرّف البيانات 0x05. يتم تحديد محتوى الإشعار على النحو التالي:

Octet نوع البيانات الوصف القيمة
0 uint8 الحالة "جارٍ طلب استصدار رنين"
  • 0x00: تم البدء
  • ‫0x01: تعذّر البدء أو الإيقاف (جميع المكوّنات المطلوبة خارج النطاق)
  • ‫0x02: تم إيقاف التنفيذ (انتهت المهلة)
  • ‫0x03: تم الإيقاف (الضغط على الزر)
  • ‫0x04: متوقف (طلب GATT)
1 uint8 مكوّنات الرنين قناع بتي للمكوّنات التي تصدر رنينًا بشكل نشط، كما هو محدّد في الطلب
2 - 3 uint16 عملية استبعاد للقناة لمهلة معيّنة الوقت المتبقي للرنين بالثواني العشرية إذا توقَّف الجهاز عن إصدار رنين، يجب عرض القيمة 0x0000.

يتم تعريف جزء المصادقة على أنّه أول 8 بايتات من HMAC-SHA256(ring key, protocol major version number || the nonce used to initiate the ringing command || data ID || data length || additional data || 0x01).

إذا كان الجهاز في حالة الرنين المطلوبة عند تلقّي طلب إصدار رنين أو إيقافه، على مقدّم الخدمة إرسال إشعار يتضمّن حالة الرنين أو إما 0x00: بدأ أو 0x04: توقّف (طلب GATT)، على التوالي. يلغي هذا الطلب مَعلمات الحالة الحالية، ما يتيح تمديد مدة الرنين.

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

الحصول على حالة رنين جهاز التتبُّع

للحصول على حالة الرنين الخاصة بجهاز الإرسال، ينفّذ جهاز الاستقبال عملية كتابة إلى السمة، تتألف من طلب من الجدول 4 مع معرّف البيانات 0x06. يتأكّد مقدّم الخدمة من أنّ مفتاح المصادقة لمرة واحدة المقدَّم يتطابق مع مفتاح الخاتم.

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

عند النجاح، يرسل مقدّم الخدمة إشعارًا يتضمّن استجابة من الجدول 6 مع معرّف البيانات 0x06. ينشئ الموفّر مقطع البيانات على النحو التالي:

Octet نوع البيانات الوصف القيمة
0 uint8 مكوّنات الرنين تمثّل هذه السمة المكوّنات التي تصدر رنينًا بشكل نشط، كما هو محدّد في طلب الرنين.
1 - 2 uint16 عملية استبعاد للقناة لمهلة معيّنة الوقت المتبقي للرنين بالثواني العشرية يُرجى العِلم أنّه في حال عدم رنين الجهاز، يجب عرض القيمة 0x0000.

يتم تعريف جزء المصادقة على أنّه أول 8 بايتات من HMAC-SHA256 (ring key, protocol major version number || the last nonce read from the characteristic || data ID || data length || additional data || 0x01).

وضع الحماية من التتبّع غير المرغوب فيه

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

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

عند تفعيل وضع الحماية من التتبّع غير المرغوب فيه

ينشئ الموفّر مقطع البيانات على النحو التالي:

Octet نوع البيانات الوصف القيمة
0 uint8 علامات التحكّم
  • ‫0x01: تخطّي مصادقة الرنين. عند ضبط هذا الخيار، لن تتم مصادقة طلبات الرنين أثناء تفعيل وضع "الحماية من التتبّع غير المرغوب فيه".
إذا لم يتم ضبط أي علامة (كانت البايت كلها أصفارًا)، يمكن حذف قسم البيانات بالكامل وإرسال قسم بيانات فارغ.
لا تكون العلامات سارية المفعول إلا إلى أن يتم إيقاف وضع الحماية من التتبُّع غير المرغوب فيه.

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

عند تفعيل وضع الحماية من التتبّع غير المرغوب فيه، يجب أن يخفّض جهاز الإرسال معدّل تكرار تغيير عنوان MAC الخاص إلى مرة واحدة كل 24 ساعة. يجب أن يستمر المعرّف المؤقت المعلَن عنه في التغيير كالمعتاد. يجب ضبط نوع الإطار على 0x41. تظهر الحالة أيضًا في قسم العلامات المجزأة.

عند إيقاف وضع "الحماية من التتبّع غير المرغوب فيه"

يتحقّق موفّر الخدمة مما يلي:

  • يتطابق مفتاح المصادقة لمرة واحدة المقدَّم مع مفتاح الحماية من محاولات التتبُّع غير المرغوب فيها.
  • يتطابق مفتاح الهوية المؤقتة المجزّأ مع مفتاح الهوية المؤقتة الحالي.

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

عند إيقاف وضع "الحماية من التتبّع غير المرغوب فيه"، من المفترض أن يبدأ المنارة في تدوير عنوان MAC بمعدّل عادي مرة أخرى، مع مزامنته مع تدوير المعرّف المؤقت. يجب إعادة ضبط نوع الإطار على 0x40. تظهر الحالة أيضًا في قسم العلامات المجزّأة.

عند النجاح، يرسل "مقدّم الخدمة" إشعارًا يتضمّن استجابة من الجدول 6 مع رقم تعريف البيانات 0x07 أو 0x08.

يتم تعريف جزء المصادقة على أنّه أول 8 بايتات من HMAC-SHA256(unwanted tracking protection key, protocol major version number || the last nonce read from the characteristic || data ID || data length || 0x01).

اللقطات التي تتضمّن إعلانات

بعد توفير الإطار، من المتوقّع أن يعلن "مقدّم الخدمة" عن إطارات FHN مرة واحدة على الأقل كل ثانيتَين. في حال الإعلان عن إطارات Fast Pair، على مقدّم الخدمة أن يدمج إطارات FHN ضمن إعلانات Fast Pair العادية. على سبيل المثال، يجب أن يعرض مقدّم الخدمة سبعة إعلانات Fast Pair وإعلان FHN واحدًا كل ثانيتَين.

يجب ضبط طاقة الإرسال عبر البلوتوث لإعلانات FHN على 0 ديسيبل ميلي واط على الأقل.

يحمل إطار FHN مفتاحًا عامًا يُستخدَم لتشفير تقارير الموقع الجغرافي من خلال أي جهاز عميل متوافق يساهم في شبكة التعهيد الجماعي. يتوفّر نوعان من مفاتيح المنحنى البيضاوي: مفتاح 160 بت يتوافق مع إطارات BLE 4 القديمة، أو مفتاح 256 بت يتطلّب BLE 5 مع إمكانات إعلانية موسّعة. يحدّد التنفيذ الذي يجريه مقدّم الخدمة المنحنى الذي سيتم استخدامه.

يتم تنظيم إطار FHN على النحو التالي.

Octet القيمة الوصف
0 0x02 الطول
1 0x01 قيمة نوع بيانات العلامات
2 0x06 بيانات العلامات
3 0x18 أو 0x19 الطول
4 0x16 قيمة نوع بيانات بيانات الخدمة
5 0xAA المعرّف الفريد العالمي (UUID) للخدمة المكوّن من 16 بت
6 0xFE ...
7 0x40 أو 0x41 نوع إطار FHN مع إشارة إلى وضع الحماية من التتبُّع غير المرغوب فيه
‫8..27 معرّف مؤقت مكوّن من 20 بايت
28 العلامات المجزّأة

الجدول 8: إطار FHN يتوافق مع منحنى 160 بت.

يعرض الجدول 9 إزاحات البايت وقيمها لمنحنى 256 بت.

Octet القيمة الوصف
0 0x02 الطول
1 0x01 قيمة نوع بيانات العلامات
2 0x06 بيانات العلامات
3 0x24 أو 0x25 الطول
4 0x16 قيمة نوع بيانات بيانات الخدمة
5 0xAA المعرّف الفريد العالمي (UUID) للخدمة المكوّن من 16 بت
6 0xFE ...
7 0x40 أو 0x41 نوع إطار FHN مع إشارة إلى وضع الحماية من التتبُّع غير المرغوب فيه
8..39 معرّف مؤقت بحجم 32 بايت
40 العلامات المجزّأة

الجدول 9: إطار FHN يتوافق مع منحنى 256 بت.

احتساب المعرّف المؤقت (EID)

يتم إنشاء رقم عشوائي من خلال تشفير بنية البيانات التالية باستخدام AES-ECB-256 باستخدام مفتاح التعريف المؤقت:

Octet الحقل الوصف
0 - 10 مساحة متروكة القيمة = 0xFF
11 K أُس فترة التبديل
‫12 - 15 TS[0]...TS[3] عداد وقت الإشارة، بتنسيق 32 بت big-endian يتم محو K أدنى بتات.
16 - 26 مساحة متروكة القيمة = 0x00
27 K أُس فترة التبديل
بين 28 و31 عامًا TS[0]...TS[3] عداد وقت الإشارة، بتنسيق 32 بت big-endian يتم محو K أدنى بتات.

الجدول 10: إنشاء رقم عشوائي زائف

نتيجة هذه العملية الحسابية هي رقم مكوّن من 256 بت، ويُشار إليه بالرمز r'.

بالنسبة إلى بقية العمليات الحسابية، يتم استخدام SECP160R1 أو SECP256R1 لعمليات التشفير باستخدام المنحنى البيضاوي. يمكنك الاطّلاع على تعريفات المنحنى في SEC 2: Recommended Elliptic Curve Domain Parameters، الذي يحدّد Fp وn وG المشار إليها لاحقًا.

يتم الآن إسقاط r' على الحقل المحدود Fp من خلال حساب r = r' mod n. أخيرًا، احسب R = r * G، وهو نقطة على المنحنى تمثّل المفتاح العام المستخدَم. يُعلن جهاز الإرسال عن Rx، وهو إحداثي x الخاص بـ R، باعتباره المعرّف المؤقت.

العلامات المجزّأة

يتم احتساب حقل العلامات المجزّأة على النحو التالي (يتم الرجوع إلى البتات من الأكثر أهمية إلى الأقل أهمية):

  • وحدات البت من 0 إلى 4: محجوزة (يتم ضبطها على أصفار).
  • تشير البتات من 5 إلى 6 إلى مستوى البطارية بالجهاز على النحو التالي:
    • ‫00: لا تتوفّر إشارة لمستوى البطارية
    • ‫01: مستوى البطارية العادي
    • ‫10: مستوى شحن البطارية منخفض
    • ‫11: مستوى شحن البطارية منخفض للغاية (يجب استبدال البطارية قريبًا)
  • يتم ضبط البت 7 على 1 إذا كان جهاز التتبُّع في وضع الحماية من التتبُّع غير المرغوب فيه، وعلى 0 في الحالات الأخرى.

لإنتاج القيمة النهائية لهذا البايت، يتم إجراء عملية XOR مع البايت الأقل أهمية في SHA256(r).

يُرجى العِلم أنّه يجب محاذاة r مع حجم المنحنى. أضِف أصفارًا كبتات أكثر أهمية إذا كان التمثيل أقصر من 160 أو 256 بتًا، أو يجب اقتطاع البتات الأكثر أهمية إذا كان التمثيل أكبر من 160 أو 256 بتًا.

إذا كان جهاز الإرسال لا يتيح عرض مستوى البطارية، ولم يكن في وضع الحماية من التتبُّع غير المرغوب فيه، يمكن حذف هذا البايت بالكامل من الإعلان.

التشفير باستخدام EID

لتشفير رسالة m، على الشخص الذي رصد الجهاز (بعد قراءة Rx من جهاز الإرسال) اتّباع الخطوات التالية:

  1. اختَر رقمًا عشوائيًا s في Fp، كما هو محدّد في قسم احتساب المعرّف EID.
  2. الكمبيوتر S = s * G
  3. احسب R = (Rx, Ry) بالتعويض في معادلة المنحنى واختيار قيمة Ry عشوائية من النتائج المحتملة.
  4. احسب مفتاح AES ذو 256 بت k = HKDF-SHA256((s * R)x) حيث (s * R)x هو إحداثي x لنتيجة ضرب المنحنى. لم يتم تحديد قيمة Salt.
  5. لنفترض أنّ URx وLRx هما 80 بت العلوية والسفلية من Rx على التوالي، بتنسيق big-endian. وبطريقة مماثلة، حدِّد USx وLSx لـ S.
  6. الكمبيوتر nonce = LRx || LSx
  7. الكمبيوتر (m’, tag) = AES-EAX-256-ENC(k, nonce, m)
  8. إرسال (URx, Sx, m’, tag) إلى المالك، ربما من خلال خدمة بعيدة غير موثوق بها

فك تشفير القيم المشفّرة باستخدام معرّف EID

يتم فك تشفير الرسالة من خلال برنامج العميل الخاص بالمالك، والذي يتضمّن مفتاح التشفير EIK وأُس فترة التدوير، وذلك على النحو التالي:

  1. بالنظر إلى URx، احصل على قيمة عدّاد وقت إشارة التتبّع التي يستند إليها URx. ويمكن إجراء ذلك من خلال حساب قيم Rx الخاصة بعدّاد وقت الإشارة لدى جهاز العميل التابع للمالك، وذلك بالنسبة إلى الماضي القريب والمستقبل القريب.
  2. بافتراض قيمة عدّاد وقت إشارة التتبّع التي تستند إليها URx، احسب القيمة المتوقّعة لـ r كما هو محدّد في قسم احتساب المعرّف EID.
  3. احتسِب R = r * G، وتأكَّد من تطابقها مع قيمة URx التي قدّمها المراقب.
  4. احسب S = (Sx, Sy) بالتعويض في معادلة المنحنى واختيار قيمة Sy عشوائية من النتائج المحتملة.
  5. احسب k = HKDF-SHA256((r * S)x) حيث (r * S)x هو إحداثي x لنتيجة ضرب المنحنى.
  6. الكمبيوتر nonce = LRx || LSx
  7. الكمبيوتر m = AES-EAX-256-DEC(k, nonce, m’, tag)

تدوير المعرّف

يجب استخدام عنوان BLE قابل للحل (RPA) أو غير قابل للحل (NRPA) للإعلان عن إطارات FHN. يجب توفُّر ميزة RPA في أجهزة LE Audio (LEA)، ويُنصح باستخدامها في الأجهزة الأخرى، باستثناء أجهزة التتبُّع التي لا تستخدم الربط.

يجب أن يتم بالتزامن تدوير إعلان "الإقران السريع" وإعلان FHN وعناوين BLE المقابلة. يجب أن يحدث الدوران كل 1024 ثانية في المتوسط. يجب أن يتم تحديد النقطة الدقيقة التي يبدأ فيها جهاز الإرسال بعرض المعرّف الجديد بشكل عشوائي ضمن النافذة.

الطريقة المقترَحة لتحديد وقت التدوير بشكل عشوائي هي ضبطه على وقت التدوير المتوقّع التالي (في حال عدم تطبيق التحديد العشوائي) بالإضافة إلى عامل وقت عشوائي موجب في النطاق من ثانية واحدة إلى 204 ثانية.

عندما يكون الجهاز في وضع الحماية من التتبّع غير المرغوب فيه، يجب أن يكون عنوان BLE لإعلان FHN ثابتًا، ولكن يجب أن يستمر تدوير RPA لإعلان FP غير القابل للاكتشاف (مثل Fast Pair). يمكن استخدام عناوين مختلفة للبروتوكولات المختلفة.

الاسترداد بعد انقطاع الكهرباء

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

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

إرشادات تنفيذ ميزة "الإقران السريع"

يوضّح هذا القسم الجوانب الخاصة بتنفيذ ميزة Fast Pair على موفّري الخدمات الذين يتيحون استخدام FHN.

الإرشادات الخاصة بأجهزة تتبُّع الموقع الجغرافي

  • إذا تم إقران مقدّم الخدمة، ولكن لم يتم توفير FHN في غضون 5 دقائق (أو إذا تم تطبيق تحديث عبر الأثير أثناء إقران الجهاز ولكن لم يتم توفير FHN)، يجب أن يعود مقدّم الخدمة إلى إعدادات المصنع وأن يمحو مفاتيح الحساب المخزّنة.
  • بعد إقران جهاز مقدّم الخدمة، يجب ألا يغيّر عنوان MAC الخاص به إلى أن يتم توفير FHN أو إلى أن تمر 5 دقائق.
  • في حال محو مفتاح الهوية المؤقتة من الجهاز، يجب إعادة ضبط الجهاز على الإعدادات الأصلية ومحو مفاتيح الحساب المخزّنة أيضًا.
  • على مقدّم الخدمة رفض محاولات الإقران العادية عبر البلوتوث وقبول الإقران باستخدام Fast Pair فقط.
  • يجب أن يوفّر مقدّم الخدمة آلية تتيح للمستخدمين إيقاف الإعلانات مؤقتًا بدون إعادة ضبط الجهاز على الإعدادات الأصلية (على سبيل المثال، الضغط على مجموعة من الأزرار).
  • بعد انقطاع الطاقة، يجب أن يعلن الجهاز عن إطارات "الإقران السريع" غير القابلة للاكتشاف إلى أن يتم استدعاء قراءة مَعلمات إشارة تحديد الموقع في المرة التالية. يسمح ذلك لجهاز الباحث برصد الجهاز ومزامنة الساعة حتى إذا حدث انحراف كبير في الساعة.
  • عند الإعلان عن إطارات "الإقران السريع" غير القابلة للاكتشاف، يجب عدم تفعيل مؤشرات واجهة المستخدم.
  • يجب عدم الإعلان عن إطارات "الإقران السريع" القابلة للاكتشاف أثناء توفير "مزوّد" لشبكة FHN.
  • يجب ألا يعرض الموفّر أي معلومات تحدِّد الهوية بطريقة غير مصادَق عليها (مثل الأسماء أو المعرّفات).

الإرشادات الخاصة بالأجهزة التي تتضمّن بلوتوث كلاسيكي

يوضّح هذا القسم الجوانب الخاصة بأجهزة البلوتوث الكلاسيكية التي تتوافق مع FHN.

توفير المتطلبات اللازمة للأجهزة المقترنة مسبقًا في شبكة منزلية

لا يتم توفير ميزة "العثور على هاتفي" دائمًا عند إقران الهاتف بجهاز التتبّع، ولكن بعد فترة. في هذه الحالة، قد لا يكون لدى "المزوّد" عنوان MAC حديث لبروتوكول البلوتوث المنخفض الطاقة (BLE) المطلوب لإنشاء اتصال GATT. يجب أن يتيح "مقدّم الخدمة" طريقة واحدة على الأقل من الطرق التالية التي يمكن من خلالها أن يحصل "الباحث" على عنوان BLE الخاص به أثناء إقرانه:

  • يمكن للموفّر أن يعلن بشكل دوري عن بيانات حساب Fast Pair التي تتيح لجهاز الباحث العثور على عنوان BLE من خلال عملية فحص BLE.
    يناسب هذا الأسلوب مقدّمي الخدمات الذين لا ينفّذون بث الرسائل.
  • يمكن للموفّر تقديم هذه البيانات من خلال دفق رسائل ميزة "الإقران السريع" عبر البلوتوث الكلاسيكي.
    هذا الأسلوب مناسب لمقدّمي الخدمات الذين لا يعرضون إطارات "الإقران السريع" أثناء الاتصال بجهاز الباحث عبر البلوتوث.

يؤدي توفير كلا الطريقتين إلى زيادة فرص إمكانية المستخدم توفير الجهاز لاستخدام ميزة "البحث عن الأجهزة القريبة".

سلسلة رسائل ميزة "الإقران السريع"

يمكن للموفّر تنفيذ بث رسائل "الإقران السريع" واستخدامه لإعلام الباحث بمعلومات الجهاز. يتيح تنفيذ ساحة مشاركات الرسائل استخدام ميزات معيّنة كما هو موضّح في هذا القسم.

على الموفّر إرسال رسائل معلومات الجهاز مرة واحدة في كل مرة يتم فيها إنشاء قناة RFCOMM لتدفق الرسائل.

إصدار البرنامج الثابت (رمز معلومات الجهاز 0x09) وإمكانية التتبُّع

عندما يضيف تحديث البرنامج الثابت ميزة "العثور على الأجهزة المفقودة" إلى "موفّر الخدمة"، يمكن لجهاز "الباحث" المتصل إعلام المستخدم بذلك واقتراح توفيرها. وبخلاف ذلك، على المستخدم الانتقال إلى قائمة أجهزة Bluetooth يدويًا لبدء عملية إعداد ميزة "العثور على هاتفي".

للسماح بذلك، على مقدّم الخدمة استخدام السمة "إصدار البرامج الثابتة" (الرمز 0x09) للإبلاغ عن قيمة سلسلة تمثّل إصدار البرامج الثابتة. بالإضافة إلى ذلك، يجب أن يتيح مقدّم الخدمة استخدام البروتوكول الذي يتيح للمستخدِم معرفة التغييرات في الإمكانات الناتجة عن تحديثات البرامج الثابتة.

Octet نوع البيانات الوصف القيمة
0 uint8 حدث معلومات الجهاز 0x03
1 uint8 إصدار البرامج الثابتة 0x09
2 - 3 uint16 طول البيانات الإضافية يختلف
var مصفوفة بايت سلسلة الإصدار يختلف

الجدول 11: حدث معلومات الجهاز: إصدار البرنامج الثابت المعدَّل.

عند تلقّي طلب تعديل الإمكانية (0x0601)، إذا كان مقدّم الخدمة قد فعّل إمكانية تتبُّع FHN، عليه الردّ كما هو موضّح في الجدول 12.

Octet نوع البيانات الوصف القيمة
0 uint8 حدث مزامنة إمكانات الجهاز 0x06
1 uint8 تتبُّع FHN 0x03
2 - 3 uint16 طول البيانات الإضافية 0x0007
4 uint8 حالة توفير المتطلبات اللازمة لميزة "البحث عن شبكات مفتوحة" ‫0x00 إذا لم يتم توفيرها، و0x01 إذا تم توفيرها من خلال أي حساب
5 - 10 مصفوفة بايت عنوان MAC الحالي للجهاز على شبكة البلوتوث المنخفض الطاقة (BLE) يختلف

الجدول 12: حدث مزامنة إمكانات الجهاز: تمت إضافة إمكانية التتبُّع.

المعرّف المؤقت الحالي (رمز معلومات الجهاز 0x0B)

يمكن لموفّر الخدمة استخدام المعرّف المؤقت الحالي (الرمز 0x0B) لإرسال قيمة المعرّف المؤقت الحالي والساعة عند إعداد موفّر الخدمة لاستخدام FHN، وذلك لمزامنة جهاز الباحث في حال حدوث اختلاف في الساعة (على سبيل المثال، بسبب استنزاف البطارية). بخلاف ذلك، يبدأ جهاز الباحث عملية ربط أكثر تكلفة وأقل موثوقية لهذا الغرض.

Octet نوع البيانات الوصف القيمة
0 uint8 حدث معلومات الجهاز 0x03
1 uint8 المعرّف المؤقت الحالي 0x0B
2 - 3 uint16 طول البيانات الإضافية 0x0018 أو 0x0024
‫4 - 7 مصفوفة بايت قيمة الساعة مثال: 0x13F9EA80
‫8 أو 19 أو 31 مصفوفة بايت معرّف شريحة SIM المضمّنة الحالي مثال: 0x1122334455667788990011223344556677889900

الجدول 13: حدث معلومات الجهاز: مزامنة الساعة

إعادة الضبط على الإعدادات الأصلية

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

بعد إعادة الضبط على الإعدادات الأصلية (إما يدويًا أو آليًا)، يجب ألا يبدأ مقدّم الخدمة في عرض إعلانات Fast Pair على الفور، وذلك لمنع بدء عملية الإقران مباشرةً بعد أن يحذف المستخدم الجهاز.

منع التتبُّع غير المرغوب فيه

يجب أن تستوفي أجهزة FHN المعتمَدة أيضًا المتطلبات الواردة في الإصدار التنفيذي من المواصفات المتوافقة مع عدة منصات بشأن اكتشاف أجهزة التتبّع غير المرغوب فيها (DULT).

الإرشادات ذات الصلة الخاصة بـ FHN للامتثال لمواصفات DULT:

  • يجب تسجيل أي جهاز متوافق مع ميزة "العثور على الجهاز" في "وحدة تحكّم الأجهزة المجاورة"، وتفعيل ميزة "العثور على الجهاز" عليه.
  • يجب أن يوفّر الجهاز خدمة وسمة "الجهاز الملحق غير المملوك" المحدّدتَين في إصدار التنفيذ من مواصفات DULT، بما في ذلك عمليات معلومات الجهاز الملحق وعناصر التحكّم غير المملوكة.
  • خلال فترة التوافق مع الإصدارات السابقة، كما هو محدّد في مواصفات DULT، لن يتم إجراء أي تغييرات على الإطار المُعلن عنه كما هو محدّد في هذا المستند.
  • يتوافق "وضع الحماية من التتبّع غير المرغوب فيه" المحدّد في هذا المستند مع "الحالة المنفصلة" المحدّدة في مواصفات DULT.
  • إرشادات تنفيذ رموز العمليات معلومات الملحقات:
    • يجب أن تعرض الدالة Get_Product_Data معرّف الطراز الذي توفّره وحدة التحكّم، مع إضافة أصفار إلى اليسار ليتوافق مع متطلبات 8 بايت. على سبيل المثال، يتم عرض المعرّف 0xFFFFFF للطراز على النحو التالي: 0x0000000000FFFFFF.
    • يجب أن تتطابق قيمتا Get_Manufacturer_Name وGet_Model_Name مع القيم المقدَّمة في وحدة التحكّم.
    • يمكن أن تعرض Get_Accessory_Category القيمة العامة "جهاز تتبُّع الموقع الجغرافي" إذا لم تتطابق أي فئة أخرى بشكل أفضل مع نوع الجهاز.
    • يجب أن تشير Get_Accessory_Capabilities إلى إمكانية الرنين بالإضافة إلى البحث عن معرّف BLE.
    • يجب أن تعرض الدالة Get_Network_ID معرّف Google (0x02).
  • إرشادات تنفيذ رمز العملية Get_Identifier:
    • يجب أن تعرض العملية ردًا صالحًا لمدة 5 دقائق فقط بعد أن يفعّل المستخدم وضع "التعرّف" الذي يتطلّب الضغط على مجموعة من الأزرار. يجب أن يشير تنبيه مرئي أو صوتي إلى المستخدم بأنّ مقدّم الخدمة قد دخل في هذا الوضع. يجب تقديم التعليمات الخاصة بطراز معيّن لتفعيل هذا الوضع إلى Google كشرط للحصول على شهادة الاعتماد، وذلك قبل 10 أيام على الأقل من أي تعديل أو تغيير على التعليمات.
    • يتم إنشاء الرد على النحو التالي: أول 10 بايت من المعرّف المؤقت الحالي، يليه أول 8 بايت من HMAC-SHA256(recovery key, the truncated current ephemeral identifier).
  • إرشادات تنفيذ المعرّف عبر تقنية الاتصال القريب المدى (NFC):
    • استخدِم find-my.googleapis.com/lookup كعنوان URL.
    • استخدِم الردّ نفسه الذي تم إنشاؤه من أجل Get_Identifier، مع ترميزه بنظام الستة عشر، كقيمة للمَعلمة e.
    • استخدِم الردّ نفسه الذي تم إنشاؤه للدالة Get_Product_Data، مع ترميزه بنظام الستة عشر، كقيمة للمَعلمة pid.
  • ويجب أن يتضمّن الجهاز أداة لإصدار الصوت وأن يتيح وظيفة الرنين. وفقًا لمواصفات DULT، يجب أن يصدر صانع الصوت صوتًا بمستوى صوت يبلغ 60 Phon كحد أدنى وفقًا للمعيار ISO 532-1:2017.
  • إرشادات تنفيذ رمز العملية Sound_Start:
    • يجب أن يؤدي الأمر إلى إصدار رنين في جميع المكوّنات المتاحة.
    • يجب استخدام الحد الأقصى لمستوى الصوت المتاح.
    • المدة المقترَحة للرنين هي 12 ثانية.
  • يجب أن تتضمّن أجهزة التتبّع آلية تتيح للمستخدمين إيقاف الإعلانات مؤقتًا بدون إعادة ضبط الجهاز على الإعدادات الأصلية (على سبيل المثال، الضغط على مجموعة من الأزرار).
    • يجب توثيق تعليمات إيقاف التطبيق في عنوان URL متاح للجميع وتقديمها إلى Google كشرط للحصول على شهادة الاعتماد، وذلك قبل 10 أيام على الأقل من أي تحديث أو تعديل على التعليمات.
    • يجب أن يتيح عنوان URL إمكانية الأقلمة. استنادًا إلى العميل، سيتم توفير اللغة إما كمعلَمة طلب بحث ("hl=en") أو باستخدام عنوان HTTP "accept-language".

إرشادات البروتوكول القابل للتبديل

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

تحديثات البرامج الثابتة

يجب أن يدير الشريك عملية توزيع التحديثات عبر الأثير باستخدام سير عمل التطبيق المتوافق مع الأجهزة الجوّالة أو تطبيق الويب الخاص به.

تتيح ميزة "الإقران السريع" إرسال إشعارات إلى المستخدم لإعلامه بتوفّر تحديثات عبر الأثير. لاستخدام هذه الآلية، يجب اتّباع ما يلي:

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

التوافق

تتطلّب شبكة "مركز العثور" تفعيل خدمات الموقع الجغرافي والبلوتوث. ويجب توفُّر اتصال شبكة جوّال أو اتصال إنترنت. التطبيق متاح لأجهزة Android 9 والإصدارات الأحدث وفي بُلدان محدَّدة وللمستخدمين المؤهلين حسب الفئة العمرية.

سجلّ التغييرات

إصدار FHN التاريخ تعليق
v1 الإصدار الأولي من مواصفات FHN لاستخدامها قبل إطلاقها
v1.1 Feb 2023
  • تمت إضافة إشارة نصية واضحة إلى وضع الحماية من التتبّع غير المرغوب فيه.
  • تمت إضافة خيار لتخطّي مصادقة طلبات الرنين أثناء تفعيل وضع الحماية من التتبُّع غير المرغوب فيه.
v1.2 أبريل 2023
  • تم تعديل تعريف مفتاح الوصول الخاص بالمالك.
  • تمت إضافة اقتراح بشأن كيفية استرداد البيانات بعد انقطاع الطاقة في علامات تحديد الموقع الجغرافي.
  • تمت إضافة توضيح بشأن عشوائية عنوان MAC.
  • تمت إضافة توضيح بشأن تدوير عنوان MAC أثناء تفعيل وضع الحماية من التتبُّع غير المرغوب فيه.
  • تمت إضافة إرشادات حول توفير طريقة لإيقاف علامة تحديد الموقع الجغرافي.
v1.3 ديسمبر 2023
  • أضفنا توضيحًا بشأن معلومات التعريف التي تكشف عنها علامات تحديد الموقع الجغرافي.
  • تمت إضافة شرط لتنفيذ مواصفات ميزة "منع التتبُّع غير المرغوب فيه".
  • تمت إضافة إرشادات للأجهزة التي يمكن تبديل البروتوكول فيها.