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. استنادًا إلى العملية المطلوبة، يثبت "طالب الوصول" معرفته بمفتاح واحد أو أكثر من المفاتيح التالية:
مفتاح الحساب: هو مفتاح حساب "الإقران السريع" الذي يتألف من 16 بايت، كما هو محدّد في مواصفات "الإقران السريع".
مفتاح حساب المالك: يختار مقدّم الخدمة أحد مفاتيح الحساب الحالية كمفتاح حساب المالك في المرة الأولى التي يصل فيها الباحث إلى سمة "إجراءات Beacon". لا يمكن تغيير مفتاح حساب المالك المحدّد إلا بعد إعادة ضبط الجهاز على الإعدادات الأصلية. يجب ألا يزيل مقدّم الخدمة مفتاح حساب المالك عندما تنتهي خانات مفاتيح الحساب المجانية.
تختار الأجهزة التي تتوافق مع ميزة "العثور على الأجهزة غير المتصلة بالإنترنت" عند إقرانها للمرة الأولى (أو تتوافق معها عند إقرانها بعد إعادة ضبط المصنع) مفتاح الحساب الأول، لأنّ هذا المفتاح هو مفتاح الحساب الوحيد المتوفّر عندما يقرأ جهاز Seeker حالة الإعداد أثناء عملية الإقران.
يمكن لمقدّمي الخدمات الذين يتيحون استخدام ميزة "الشبكة المنزلية الذكية" بعد إقران الأجهزة (على سبيل المثال، من خلال تحديث البرامج الثابتة) اختيار أي مفتاح حساب حالي. من المنطقي اختيار مفتاح الحساب الأول الذي يُستخدم لقراءة حالة التوفير من سمة إجراءات جهاز التتبّع بعد تعديل البرامج الثابتة، على افتراض أنّ المستخدم الذي أجرى التعديل هو المالك الحالي لجهاز التتبّع.
مفتاح الهوية المؤقتة (EIK): هو مفتاح يتألف من 32 بايت يختاره "الباحث" عشوائيًا عند تنفيذ عملية توفير المتطلبات اللازمة في ميزة "العثور على الأجهزة القريبة". يُستخدَم هذا المفتاح لاشتقاق مفاتيح تشفيرية تُستخدَم في التشفير التام بين الأطراف لتقارير المواقع الجغرافية. ولا يكشف عنها مطلقًا لنظام الخلفية.
مفتاح الاسترداد: يتم تعريفه على أنّه
SHA256(ephemeral identity key || 0x01)
، يتم اقتطاعه إلى أول 8 بايت. يتم تخزين المفتاح في الواجهة الخلفية، ويمكن لجهاز التتبّع استخدامه لاسترداد مفتاح التشفير، شرط أن يوافق المستخدم على ذلك من خلال الضغط على زر على الجهاز.مفتاح الرنين: يتم تعريفه على أنّه
SHA256(ephemeral identity key || 0x02)
، ويتم اقتطاعه إلى أول 8 بايت. يتم تخزين المفتاح في الخلفية ويمكن لـ "الباحث" استخدامه لإصدار رنين على الجهاز فقط.مفتاح الحماية من التتبّع غير المرغوب فيه: يُعرَّف على أنّه
SHA256(ephemeral identity key || 0x03)
، ويتم اقتطاعه إلى أول 8 بايت. يتم تخزين المفتاح في الخلفية، ولا يمكن لمستخدم Seeker استخدامه إلا لتفعيل وضع الحماية من التتبُّع غير المرغوب فيه.
العمليات
يتم عرض تنسيق البيانات التي يتم كتابتها إلى السمة في الجداول من 2 إلى 5. سيتم تناول كل عملية من العمليات بالتفصيل لاحقًا في هذا القسم.
Octet | نوع البيانات | الوصف | القيمة |
---|---|---|---|
0 | uint8 | معرّف البيانات |
|
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 | مصفوفة بايت | البيانات الإضافية |
|
الجدول 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 | معرّف البيانات |
|
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 | مصفوفة بايت | البيانات الإضافية |
|
الجدول 4: طلب الرنين
Octet | نوع البيانات | الوصف | القيمة |
---|---|---|---|
0 | uint8 | معرّف البيانات |
|
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 | مصفوفة بايت | البيانات الإضافية |
|
الجدول 5: طلب الحماية من التتبّع غير المرغوب فيه
تؤدي عمليات الكتابة الناجحة إلى إطلاق الإشعارات المُدرَجة في الجدول 6.
يجب إرسال الإشعارات التي تتضمّن رقم تعريف بيانات غير 0x05: تغيير حالة الرنين قبل إكمال عملية الكتابة التي تؤدي إلى ظهور الإشعار، أي قبل إرسال وحدة بيانات البروتوكول (PDU) الخاصة بالرد على طلب الكتابة.
Octet | نوع البيانات | الوصف | القيمة |
---|---|---|---|
0 | uint8 | معرّف البيانات |
|
1 | uint8 | طول البيانات | يختلف |
2 - 9 | مصفوفة بايت | المصادقة | تفاصيل كل عملية |
10 - var | مصفوفة بايت | البيانات الإضافية |
|
الجدول 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 | اختيار المنحنى | المنحنى الإهليلجي المستخدَم للتشفير:
|
6 | uint8 | المكونات | عدد المكوّنات التي يمكنها إصدار رنين:
|
7 | uint8 | إمكانات الرنين | في ما يلي الخيارات المتاحة:
|
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 - 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 - 2 | uint16 | عملية استبعاد للقناة لمهلة معيّنة | المهلة بالديسي ثانية يجب ألا تكون القيمة صفرًا وألا تزيد عن 10 دقائق. يستخدم الموفّر هذه القيمة لتحديد المدة التي يجب أن يرنّ خلالها الجهاز قبل أن يتم إسكاته. يحلّ المهلة محلّ المهلة السارية إذا كان أي جزء من الجهاز يرنّ. إذا تم ضبط عملية الرنين على 0x00، سيتم تجاهل المهلة. |
3 | uint8 | مستوى الصوت |
|
عند تلقّي الطلب، يتحقّق مقدّم الخدمة مما يلي:
- يتطابق مفتاح المصادقة لمرة واحدة المقدَّم مع مفتاح الرنين.
- تتطابق الحالة المطلوبة مع المكوّنات التي يمكنها الرنين.
إذا لم يتم توفير "مقدّم الخدمة" كإشارة FHN أو تعذّر إثبات الملكية، سيتم عرض خطأ "لم تتم المصادقة". ومع ذلك، إذا كان لدى مقدّم الخدمة ميزة "الحماية من التتبُّع غير المرغوب فيه" مفعّلة، وكان طلب تفعيل ميزة "الحماية من التتبُّع غير المرغوب فيه" يتضمّن علامة مصادقة "تخطّي الرنين" مفعّلة، على مقدّم الخدمة تخطّي هذا التحقّق. سيظل من المتوقّع أن يقدّم طالب البحث بيانات المصادقة، ولكن يمكن ضبطها على قيمة عشوائية.
عندما يبدأ الرنين أو ينتهي، يتم إرسال إشعار كما هو موضّح في الجدول 6 مع معرّف البيانات 0x05. يتم تحديد محتوى الإشعار على النحو التالي:
Octet | نوع البيانات | الوصف | القيمة |
---|---|---|---|
0 | uint8 | الحالة "جارٍ طلب استصدار رنين" |
|
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 | علامات التحكّم |
لا تكون العلامات سارية المفعول إلا إلى أن يتم إيقاف وضع الحماية من التتبُّع غير المرغوب فيه. |
يتأكّد مقدّم الخدمة من أنّ مفتاح المصادقة لمرة واحدة الذي تم تقديمه يتطابق مع مفتاح ميزة "الحماية من التتبّع غير المرغوب فيه". إذا لم يتم توفير "مقدّم الخدمة" كإشارة 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
من جهاز الإرسال) اتّباع الخطوات التالية:
- اختَر رقمًا عشوائيًا
s
فيFp
، كما هو محدّد في قسم احتساب المعرّف EID. - الكمبيوتر
S = s * G
- احسب
R = (Rx, Ry)
بالتعويض في معادلة المنحنى واختيار قيمةRy
عشوائية من النتائج المحتملة. - احسب مفتاح AES ذو 256 بت
k = HKDF-SHA256((s * R)x)
حيث(s * R)x
هو إحداثيx
لنتيجة ضرب المنحنى. لم يتم تحديد قيمة Salt. - لنفترض أنّ
URx
وLRx
هما 80 بت العلوية والسفلية منRx
على التوالي، بتنسيق big-endian. وبطريقة مماثلة، حدِّدUSx
وLSx
لـS
. - الكمبيوتر
nonce = LRx || LSx
- الكمبيوتر
(m’, tag) = AES-EAX-256-ENC(k, nonce, m)
- إرسال
(URx, Sx, m’, tag)
إلى المالك، ربما من خلال خدمة بعيدة غير موثوق بها
فك تشفير القيم المشفّرة باستخدام معرّف EID
يتم فك تشفير الرسالة من خلال برنامج العميل الخاص بالمالك، والذي يتضمّن مفتاح التشفير EIK وأُس فترة التدوير، وذلك على النحو التالي:
- بالنظر إلى
URx
، احصل على قيمة عدّاد وقت إشارة التتبّع التي يستند إليهاURx
. ويمكن إجراء ذلك من خلال حساب قيمRx
الخاصة بعدّاد وقت الإشارة لدى جهاز العميل التابع للمالك، وذلك بالنسبة إلى الماضي القريب والمستقبل القريب. - بافتراض قيمة عدّاد وقت إشارة التتبّع التي تستند إليها
URx
، احسب القيمة المتوقّعة لـr
كما هو محدّد في قسم احتساب المعرّف EID. - احتسِب
R = r * G
، وتأكَّد من تطابقها مع قيمةURx
التي قدّمها المراقب. - احسب
S = (Sx, Sy)
بالتعويض في معادلة المنحنى واختيار قيمةSy
عشوائية من النتائج المحتملة. - احسب
k = HKDF-SHA256((r * S)x)
حيث(r * S)x
هو إحداثيx
لنتيجة ضرب المنحنى. - الكمبيوتر
nonce = LRx || LSx
- الكمبيوتر
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 على هذا المسار.
تحديثات البرامج الثابتة
يجب أن يدير الشريك عملية توزيع التحديثات عبر الأثير باستخدام سير عمل التطبيق المتوافق مع الأجهزة الجوّالة أو تطبيق الويب الخاص به.
تتيح ميزة "الإقران السريع" إرسال إشعارات إلى المستخدم لإعلامه بتوفّر تحديثات عبر الأثير. لاستخدام هذه الآلية، يجب اتّباع ما يلي:
- يجب تعديل أحدث إصدار من البرامج الثابتة في "وحدة تحكّم الأجهزة المجاورة".
- يجب ضبط تطبيق مصاحب في "وحدة تحكّم الأجهزة المجاورة". يجب أن يتوافق مع غرض تحديث البرامج الثابتة.
- على مقدّم الخدمة تنفيذ سمة GATT مراجعة البرامج الثابتة.
لمنع التتبُّع، يجب حظر الوصول إلى سمة مراجعة البرامج الثابتة. سيقرأ Seeker أولاً حالة التوفير ويقدّم مفتاح مصادقة، كما هو محدّد في هذه المواصفات، ولن يقرأ مراجعة البرامج الثابتة إلا بعد ذلك. وسيتم ذلك عبر الاتصال نفسه. إذا تمت محاولة قراءة مراجعة البرامج الثابتة، ولم يتم ربط مقدّم الخدمة أو لم يتم إكمال عملية مصادقة بنجاح عبر الاتصال نفسه، يجب أن يعرض مقدّم الخدمة خطأ غير مصادق عليه.
التوافق
تتطلّب شبكة "مركز العثور" تفعيل خدمات الموقع الجغرافي والبلوتوث. ويجب توفُّر اتصال شبكة جوّال أو اتصال إنترنت. التطبيق متاح لأجهزة Android 9 والإصدارات الأحدث وفي بُلدان محدَّدة وللمستخدمين المؤهلين حسب الفئة العمرية.
سجلّ التغييرات
إصدار FHN | التاريخ | تعليق |
---|---|---|
v1 | الإصدار الأولي من مواصفات FHN لاستخدامها قبل إطلاقها | |
v1.1 | Feb 2023 |
|
v1.2 | أبريل 2023 |
|
v1.3 | ديسمبر 2023 |
|