دستگاه کم مصرف بلوتوث (BLE).
اجرای سرویس جفت سریع Google (GFPS) برای دستگاه های BLE با مشخصات هسته بلوتوث نسخه 4.2 یا جدیدتر سازگار است.
ضمیمه زیر به مشخصات جفت سریع امکان پشتیبانی از دستگاههای کم انرژی (LE) و صدای کم انرژی (LEA) را در GFPS فراهم میکند.
سطوح انطباق
کلیدواژه های «باید»، «باید»، «اراده»، «باید»، «ممکن است» و «می تواند» ذکر شده در مشخصات در زیر توضیح داده شده است:
مدت | توضیحات |
---|---|
باید | مورد نیاز است - برای تعریف الزامات استفاده می شود. |
باید | برای بیان استفاده می شود: نتیجه طبیعی الزام اجباری قبلاً اعلام شده است یا یک بیانیه غیرقابل انکار واقعیت (که همیشه بدون توجه به شرایط صادق است). |
خواهد شد | درست است که - فقط در اظهارات واقعیت استفاده می شود. |
باید | توصیه می شود که - برای نشان دادن اینکه از بین چندین احتمال، یکی به عنوان ویژه مناسب است، اما لازم نیست، استفاده می شود. |
می | مجاز است - برای اجازه دادن به گزینه ها استفاده می شود. |
می تواند | قادر به - برای ربط دادن گزاره به شیوه علی استفاده می شود. |
ویژگی جفت شدن مبتنی بر کلید
پیام جستجوگر به ارائه دهنده
type 0x00
مشخصه جفتسازی مبتنی بر کلید از بیت 4 برای نشان دادن اینکه جستجوگر از مشخصات دستگاه BLE پشتیبانی میکند و از بیت 5 برای نشان دادن اینکه جستجوگر از LE Audio پشتیبانی میکند استفاده میکند.
اکتت | نوع داده | توضیحات | ارزش | اجباری؟ |
---|---|---|---|---|
0 | uint8 | نوع پیام | 0x00 = درخواست جفت شدن مبتنی بر کلید | اجباری |
1 | uint8 | پرچم ها
| متفاوت است | اجباری |
2 - 7 | uint48 | یا:
| متفاوت است | اجباری |
8 - 13 | uint48 | آدرس BR/EDR جستجوگر | متفاوت است | تنها در صورتی ارائه شود که Flags Bit 1 یا 3 تنظیم شده باشد |
n - 15 | مقدار تصادفی (نمک) | متفاوت است | اجباری |
پیام ارائه دهنده به جستجوگر
هنگامی که بیت 4 درخواست تنظیم می شود، پیام پاسخ جدید type 0x02
برای مشخصه جفت سازی مبتنی بر کلید می تواند برای ارائه گزینه های پیوند اضافی به جستجوگر استفاده شود.
اکتت | نوع داده | توضیحات | ارزش |
---|---|---|---|
0 | uint8 | نوع پیام | 0x02 = پاسخ گسترده جفت سازی مبتنی بر کلید |
1 | uint8 | پرچم ها
| متفاوت است |
2 | uint8 | تعداد آدرس های ارائه دهنده (در نسخه فعلی، عدد 1 یا 2 است، زیرا اگر عدد >= 3 باشد، باید حالت رمزگذاری بلوک را به AES-CTR تغییر دهیم) | متفاوت است |
3 - 8 یا 3 - 14 |
| متفاوت است | |
9 - 15 یا 15 | مقدار تصادفی (نمک) | متفاوت است |
ارائه دهنده ای که از مشخصات دستگاه BLE پشتیبانی می کند باید بیت 4 و بیت 5 را بخواند تا توانایی های جستجوگر را درک کند.
- وقتی بیت 4 0 باشد، ارائه دهنده باید بیت 5 را نادیده بگیرد و با فرمت
type 0x01
پاسخ دهد. - وقتی بیت 4 1 است،
- برای ارائه دهنده فقط LE، باید با
type 0x02
پاسخ دهد تا اولویت پیوند LE را نشان دهد. - برای ارائه دهنده حالت دوگانه، می تواند با
type 0x02
پاسخ دهد تا اولویت پیوند BR/EDR یا LE را نشان دهد.
- برای ارائه دهنده فقط LE، باید با
- برای موارد ارائه دهنده حالت دوگانه LE Audio (LEA)، به مثال مراجعه کنید: جفت شدن با ارائه دهنده حالت دوگانه LEA برای مرجع
مشخصه جریان پیام PSM (مولتی پلکسور سرویس پروتکل).
برای پشتیبانی از جریان پیام برای دستگاههای BLE، Fast Pair یک کانال BLE L2CAP برای ارسال و دریافت پیام ایجاد و نگهداری میکند. سرور L2CAP جفت سریع باید کنترل جریان مبتنی بر اعتبار LE را اجرا کند.
این مشخصه به جستجوگر اجازه می دهد تا مقدار PSM را بخواند و سپس اتصال L2CAP ایمن را توسط مقدار PSM برقرار کند.
ویژگی Fast Pair Service | رمزگذاری شده است | مجوزها | UUID |
---|---|---|---|
پیام جریان PSM | بله | بخوانید | FE2C1239-8366-4814-8EB0-01DE32100BEA |
اکتت | نوع داده | توضیحات | ارزش |
---|---|---|---|
0 | uint8 | ایالت
| متفاوت است |
1 - 2 | uint16 | مقدار PSM باید در محدوده بین 0x80 و 0xFF باشد | متفاوت است |
نکته: برای TWS دو جزء اصلی و ثانویه وجود دارد. نقش این اجزا در شرایط خاصی قابل تعویض است. با فرض اینکه A جزء اولیه و B جزء ثانویه است، به دلیل تخلیه باتری در قطعه A، جزء B باید نقش جزء اصلی را به عهده بگیرد و این سناریو role switch
نامیده می شود.
پس از role switch
، اگر ارائه دهنده نتواند جریان پیام جفت سریع را مدیریت کند، باید به طور فعال اتصال L2CAP موجود را قطع کند. جستجوگر جفت سریع میتواند اتصال جریان پیام L2CAP را با مؤلفه اصلی جدید دوباره برقرار کند.
مشخصه کلید عبور اضافی
این ویژگی برای ایجاد حفاظت MITM بر روی اجزای اضافی است.
CSIS Fake Member MITM Protection
جفت سریع به محافظت MITM به عنوان بخشی از روند جفت شدن نیاز دارد. از آنجایی که CSIS حفاظت MITM را ارائه نمی دهد، طراحی فعلی FP برای چندین مؤلفه باید گسترش یابد تا حفاظت MITM در اجزای اضافی ارائه شود.
تعریف مشخصه
ویژگی سرویس جفت سریع | رمزگذاری شده است | اجازه | UUID |
---|---|---|---|
رمز عبور اضافی | بله | بخوانید، بنویسید، اطلاع دهید | FE2C123A-8366-4814-8EB0-01DE32100BEA |
پیام ها
قالب پیام برای خواندن، نوشتن و اطلاع رسانی عملیات اعمال می شود.
فرمت داده های رمزگذاری شده
داده های رمزگذاری شده با استفاده از اتصال سریع جفت GATT ارسال می شود.
اکتت | نوع داده | توضیحات | ارزش |
---|---|---|---|
0-15 | uint128 | بلوک رمز عبور اضافی رمزگذاری شده | متفاوت است |
فرمت داده های خام
پس از رمزگشایی داده های رمزگذاری شده با استفاده از مخفی مشترک، قالب به شرح زیر است
اکتت | نوع داده | توضیحات | ارزش |
---|---|---|---|
0 | uint8 | نوع پیام | یکی از
|
1-3 | uint24 | رمز عبور 6 رقمی | متفاوت است |
4-9 | uint48 | آدرس جزء پیوند هدف | متفاوت است |
10 | uint8 | کد وضعیت، این فقط با عملیات خواندن استفاده می شود | یکی از
|
11-15 | مقدار تصادفی (نمک) | متفاوت است |
اولیه (اولین جزء متصل) پل بین جفت جستجوگر سریع و اجزای پیوند اضافی است. مشخصه باید از دستورالعمل ها پیروی کند:
- هنگام دریافت درخواست نوشتن از Fast Pair Seker، ارائه دهنده باید
- آدرس قطعه ای را که در حال اتصال است تنظیم کنید
- رمز عبور را به جزء در حال پیوند ارسال کنید
- کد وضعیت را در حالت انتظار، 0x01 تنظیم کنید
- هنگام دریافت هرگونه درخواست خواندن قبل از دریافت کلید عبور از جزء در حال پیوند، ارائه دهنده باید پیامی را با آن برگرداند
- رمز عبور، هر مقدار
- آدرس جزء در حال اتصال
- کد وضعیت معلق، 0x01
- قبل از اینکه ارائهدهنده اعلان به جستجوگر جفت سریع بفرستد، نتیجه را برای درخواست خواندن تنظیم میکند
- کلید عبور از جزء در حال پیوند
- آدرس جزء در حال اتصال
- کد وضعیت موفقیت، 0x00
- اگر خطای غیرقابل جبرانی در سمت ارائه دهنده وجود دارد، نتیجه را تنظیم کنید
- رمز عبور، هر مقدار
- آدرس جزء در حال اتصال
- کد وضعیت خرابی، 0x02
برای جزئیات بیشتر به نمودار MITM 1 و نمودار MITM 2 مراجعه کنید.
الزامات دستگاه LE
LE تبلیغات
برای حالت قابل کشف یا غیرقابل کشف، ارائه دهنده باید از RPA برای تبلیغ داده های FastPair استفاده کند.
قابلیت اتصال
برای دستگاههای دارای قابلیت LE، جستجوگر باید با اتصال LE موجود پیوند ایجاد کند. پس از گذراندن راستیآزمایی جفتسازی مبتنی بر جفت کلید سریع، ارائهدهنده اجازه اتصال با RPA را میدهد و قابلیت IO را برای تأیید رمز عبور جفت سریع روی DisplayYesNo تنظیم میکند.
الزامات دستگاه LEA
تبلیغات LEA
برای دستگاههای حالت دوگانه: برای حالت قابل شناسایی، ارائهدهنده باید دادههای جفت سریع را با آدرس هویت تبلیغ کند. برای حالت غیرقابل کشف، ارائه دهنده باید داده های جفت سریع را با RPA تبلیغ کند. استفاده از تبلیغات قدیمی (BT 4.2) برای پشتیبانی از دستگاه های قدیمی برای سازگاری با عقب به شدت توصیه می شود. هر زمان که دستگاه به حالت کارخانه بازنشانی میشود، باید IRK را تغییر دهید.
برای دستگاههای غیر دو حالته: برای حالت قابل کشف یا غیرقابل کشف، ارائهدهنده باید از تبلیغات گسترده (BT 5.0) با RPA برای تبلیغ دادههای FastPair استفاده کند.
آگهی قابل اتصال LE حاوی داده های سرویس FP باید شامل CAS UUID مطابق با نمایه آداپتور بلوتوث (BAP 1.0.1) و الزامات نمایه صوتی مشترک باشد. برای تبلیغات غیرقابل کشف، اگر فضای کافی در تبلیغات قدیمی به دلیل درج دادههای باتری و SASS در دسترس نباشد، در آن حالت CAS UUID در پاسخ اسکن گنجانده شود.
قابلیت اتصال LEA
جستجوگر باید با اتصال LE موجود پیوند ایجاد کند. پس از گذراندن راستیآزمایی جفتسازی مبتنی بر جفت کلید سریع، ارائهدهنده حالت دوگانه باید اتصال با آدرس هویت و RPA را مجاز کند، در حالی که ارائهدهنده حالت غیردوگانه باید اتصال با RPA را مجاز کند، و قابلیت IO را برای تأیید رمز عبور جفت سریع روی DisplayYesNo تنظیم میکند.
کانال ارتباطی داخلی بین قطعات
اتصال GATT موجود برای انجام حفاظت MITM بر روی اجزای اضافی حفظ می شود. جزء پیوندی اولیه باید تحویل پیام بین جفت جستجوگر سریع و اجزای باقیمانده آن را مدیریت کند.
ارتباط داخلی برای Initial Pair
و Subsequent Pair
استفاده می شود
- هنگامی که رویه جفتسازی مبتنی بر کلید بر روی مؤلفه اصلی انجام میشود، مؤلفه اصلی باید پیامی برای تغییر قابلیت IO اجزای باقیمانده خود ارسال کند.
- وقتی جفت سریع انجام شد، مؤلفه اصلی باید پیامی برای بازنشانی قابلیت IO اجزای باقیمانده خود ارسال کند.
- هنگام اجرای رویه کلید رمز اضافی، مولفه اصلی باید تحویل کلید رمز را بین جفت جستجوگر سریع و اجزای باقیمانده آن مدیریت کند.
زمان تغییر قابلیت IO است
- وقتی رویه جفتسازی مبتنی بر کلید انجام شد، قابلیت IO را به DisplayYesNo تغییر دهید
- اگر دستگاه دارای چندین جزء باشد، همه اجزا باید روی DisplayYesNo تنظیم شوند
- یکی از استثناهایی که ارائه دهنده نباید قابلیت IO را به DisplayYesNo تغییر دهد،
Retroactive Pair
است که بیت 3 درخواست جفت سازی مبتنی بر کلید روی 1 تنظیم شده است، به پیام جستجوگر به ارائه دهنده مراجعه کنید.
- قابلیت IO را به تنظیمات پیش فرض تغییر دهید
- جفت شدن اولیه
- اگر اتصال LE قطع شد، جلسه جفت سریع را پایان دهید
- پس از اتصال اولیه، اگر در 15 ثانیه درخواست نوشتن کلید عبور اضافی وجود نداشت، جلسه جفت سریع را پایان دهید.
- پس از دریافت درخواست نوشتن کلید عبور اضافی، اگر کامپوننت در حال اتصال در عرض 15 ثانیه متصل نشد، جلسه جفت سریع را پایان دهید.
- پس از اتصال همه اجزا، اگر در عرض 15 ثانیه درخواست نوشتن کلید حساب وجود نداشت، جلسه جفت سریع را پایان دهید.
- پس از دریافت درخواست نوشتن کلید حساب، برای پایان جلسه جفت سریع، 15 ثانیه فاصله زمانی تعیین کنید
- جفت شدن بعدی
- اگر اتصال LE قطع شد، جلسه جفت سریع را پایان دهید
- پس از اتصال اولیه، اگر در عرض 15 ثانیه درخواست نوشتن کلید عبور اضافی وجود نداشت، جلسه جفت سریع را پایان دهید.
- پس از دریافت درخواست نوشتن کلید عبور اضافی، اگر کامپوننت در حال اتصال در عرض 15 ثانیه متصل نشد، جلسه جفت سریع را پایان دهید.
- وقتی همه اجزا به هم متصل شدند، جلسه جفت سریع را پایان دهید
- جفت شدن اولیه
پنهان کردن نشانگر رابط کاربری
وقتی هدست برای جفتسازی آماده نیست، ارائهدهنده باید type 0b0010
برای تنظیم نشانگر پنهان UI برای دادههای کلید حساب استفاده کند تا به جستجوگر بگوید رابط کاربری جفتسازی بعدی را نشان ندهد (به بار تبلیغاتی: دادههای حساب جفت سریع مراجعه کنید).
الزامات دستگاه صوتی LE
الزامات بلوتوث
توصیههای هدست صوتی Android، LE Audio را ببینید.
پشتیبانی CTKD
برای دستگاه دو حالته، CTKD از LE تا BR/EDR اجباری است و در راستای الزامات BAP است.
اعلام هدف
یک دستگاه جانبی باید از اعلان هدفمند برای درخواست اتصال از یک دستگاه مرکزی جفت شده استفاده کند. اعلامیه های هدفمند در BAP و CAP برای مدیریت اتصال طبق CAP 1.0 جدول 8.4 (p48/58) تعریف شده است.
پشتیبانی از سرور GATT EATT
EATT به دستگاه مرکزی اجازه می دهد تا چندین تراکنش GATT را به صورت موازی در هنگام اتصال دستگاه ارسال کند. برای دستگاهی که از CSIP پشتیبانی می کند، عملکرد اتصال پروفیل را افزایش می دهد و سپس به زودی روند اتصال CSIP را برای جوانه های دیگر آغاز می کند.
ذخیره سازی قوی گات (به شدت توصیه می شود)
اگر ارائهدهنده یک دستگاه واحد نیست بلکه مجموعهای هماهنگ با اجرای CSIP است، برای کاهش تعداد دفعات کشف سرویس و افزایش سرعت اتصال، ارائهدهنده باید GATT Caching تعریفشده در بلوتوث 5.1 را پیادهسازی کند.
الزامات جفت سریع
LE تبلیغات
برای حالت قابل کشف یا غیرقابل کشف، اگر دستگاه دارای چندین مؤلفه باشد، داده های جفت سریع باید توسط مؤلفه اصلی تبلیغ شود. اگر دستگاه برای جفت شدن بعدی آماده نباشد، جزء ثانویه می تواند داده های جفت سریع را برای ویژگی های توسعه یافته تبلیغ کند. به Hide UI Indication مراجعه کنید.
قابلیت مشاهده سرویس گات
پایگاه داده GATT باید برای همه اتصالات GATT حمل و نقل LE یکسان باشد. سرویس صوتی LE (0x184E) باید در پایگاه داده GATT اتصال جفت سریع گنجانده شود.
مثال: جفت شدن با ارائه دهنده حالت دوگانه LEA
سناریو 1 - زمانی که جستجوگر از LEA پشتیبانی نمی کند
ارائهدهنده باید با جستجوگری که از LEA پشتیبانی نمیکند سازگاری عقبافتاده داشته باشد.
اجزاء
- ارائه دهنده: A2DP/HFP/LEA
- جستجوگر: A2DP/HFP
رفتار مورد انتظار برای جفت اولیه / جفت بعدی
- ارائه دهنده داده های سرویس جفت سریع (0xFE2C) را با آدرس هویت (اولیه) یا RPA (بعدی) تبلیغ می کند.
- از تبلیغات قدیمی استفاده کنید
- جستجوگر آگهی ارائه دهنده را با آدرس هویت برای اولیه یا RPA برای جفت شدن بعدی دریافت می کند.
- جستجوگر درخواست جفتسازی مبتنی بر کلید را ارسال میکند
- پرچم بیت 5 درخواست جفت سازی مبتنی بر کلید روی 0 تنظیم شده است
- ارائهدهنده پاسخ جفتسازی مبتنی بر کلید را با آدرس عمومی در یکی از موارد زیر ارسال میکند:
- اگر از نوع پیام 0x01 استفاده شود، آدرس باید آدرس عمومی باشد
- اگر از نوع پیام 0x02 استفاده شده است
- بیت 0 باید 0 باشد
- بیت 1 باید 0 باشد
- آدرس باید آدرس عمومی باشد
- جستجوگر با حمل و نقل BR/EDR پیوند ایجاد می کند
- قابلیت IO برای BR/EDR روی DisplayYesNo تنظیم شده است
- جستجوگر و ارائهدهنده رویه تأیید رمز عبور جفت سریع را انجام میدهند
سناریو 2 - زمانی که جستجوگر از LEA پشتیبانی می کند
اجزاء
- ارائه دهنده
- پشتیبانی از A2DP/HFP/LEA
- تک جزء
- جوینده
- پشتیبانی A2DP/HFP/LEA
رفتار مورد انتظار برای جفت اولیه / جفت بعدی
- ارائه دهنده داده های سرویس جفت سریع (0xFE2C) را با آدرس هویت (اولیه) یا RPA (بعدی) تبلیغ می کند.
- از تبلیغات قدیمی استفاده کنید
- جستجوگر درخواست جفتسازی مبتنی بر کلید را ارسال میکند
- پرچم بیت 5 درخواست جفت سازی مبتنی بر کلید روی 1 تنظیم شده است
- ارائه دهنده پاسخ جفت سازی مبتنی بر کلید را با نوع پیام 0x02 ارسال می کند
- بیت 0 باید 0 باشد
- بیت 1 باید 1 باشد
- آدرس آدرس هویت است
- جستجوگر با اتصال LE موجود در حمل و نقل LE پیوند ایجاد می کند
- جهت CTKD از LE به BR/EDR است
- قابلیت IO روی DisplayYesNo برای LE تنظیم شده است
- جستجوگر و ارائهدهنده رویه تأیید رمز عبور جفت سریع را انجام میدهند
سناریوی 3 - زمانی که جستجوگر از LEA و CSIP درگیر پشتیبانی می کند
اجزاء
- ارائه دهنده
- پشتیبانی از A2DP/HFP/LEA
- اجزای متعدد
- جزء اصلی BR/EDR/LE است
- جزء ثانویه فقط LE است
- جوینده
- پشتیبانی از A2DP/HFP/LEA
رفتار مورد انتظار برای جفت اولیه / جفت بعدی
- مؤلفه اصلی داده های سرویس جفت سریع (0xFE2C) را با آدرس هویت (اولیه) یا RPA (بعدی) تبلیغ می کند.
- از تبلیغات قدیمی استفاده کنید
- جستجوگر درخواست جفتسازی مبتنی بر کلید را به مؤلفه اصلی ارسال میکند
- پرچم بیت 5 درخواست جفت سازی مبتنی بر کلید روی 1 تنظیم شده است
- مؤلفه اصلی پاسخ جفتسازی مبتنی بر کلید را با نوع پیام 0x02 ارسال میکند
- بیت 0 باید 0 باشد
- بیت 1 باید 1 باشد
- آدرس به شرح زیر است:
- آدرس اول آدرس هویت مولفه اصلی است
- آدرس دوم آدرس قابل اتصال برای جزء ثانویه است، جزء دوم نیز از این آدرس برای انجام تبلیغات CSIP استفاده می کند.
- جستجوگر با مولفه اصلی در اتصال LE موجود پیوند ایجاد می کند
- جهت CTKD از LE به BR/EDR است
- قابلیت IO روی DisplayYesNo برای LE تنظیم شده است
- جستجوگر با مؤلفه ثانویه پیوند ایجاد می کند که آدرس آن از پاسخ گسترده جفت سازی مبتنی بر کلید است.
- قابلیت IO باید DisplayYesNo باشد، در غیر این صورت درخواست جفت شدن را رد کنید
- جستجوگر و ارائهدهنده رویه حفاظتی MITM را برای جفت کردن مؤلفه ثانویه انجام میدهند، ارائهدهنده باید هر دو سناریو را اجرا کند.
- سالک منتظر می ماند تا با جزء ثانویه پیوند بخورد
نمودار ترتیبی برای MITM
این جلسه برای توصیف توالی روش حفاظت MITM است.
کلید عبور را از مؤلفه ای که با اعلان متصل می شود، دریافت کنید
کلید عبور را از مؤلفهای که با خواندن متصل میشود، دریافت کنید
موضوع شناخته شده
FP برای LEA برای کار با Android V (Android 15) بهینه شده است.
برعکس، ما با مشکلات متعددی در مورد هدستهایی مواجه شدهایم که از LEA پشتیبانی میکنند، اما فاقد جفت سریع صحیح نسبت به پیادهسازی LEA هستند (یعنی فقط جفت سریع نسبت به کلاسیک). به طور خاص و برای مثال، زمانی که RPA ارائهدهنده توسط کلید حل هویت (IRK) درست ایجاد نمیشود و آدرس را نمیتوان حل کرد. در حالی که ما نتوانستیم لیست جامعی از پیکربندیهای هدست را آزمایش کنیم، آزمایش محدود ما مشکلات مختلفی را نشان داد، از جمله عدم نمایش اعلانهای باتری هدفون، فقدان عملکرد تعویض صدا (SASS)، خرابیهای گسترده اولیه و بعدی جفتسازی و موارد دیگر.
بنابراین، ما قویاً به شرکا توصیه میکنیم که مشخصات Fast Pair-LEA را هم برای دستگاههای جدید و هم برای دستگاههای موجود در این زمینه (از طریق بهروزرسانیهای هوایی) که از حالتهای دوگانه پشتیبانی میکنند، پیادهسازی کنند.
،دستگاه کم مصرف بلوتوث (BLE).
اجرای سرویس جفت سریع Google (GFPS) برای دستگاه های BLE با مشخصات هسته بلوتوث نسخه 4.2 یا جدیدتر سازگار است.
ضمیمه زیر به مشخصات جفت سریع امکان پشتیبانی از دستگاههای کم انرژی (LE) و صدای کم انرژی (LEA) را در GFPS فراهم میکند.
سطوح انطباق
کلیدواژه های «باید»، «باید»، «اراده»، «باید»، «ممکن است» و «می تواند» ذکر شده در مشخصات در زیر توضیح داده شده است:
مدت | توضیحات |
---|---|
باید | مورد نیاز است - برای تعریف الزامات استفاده می شود. |
باید | برای بیان استفاده می شود: نتیجه طبیعی الزام اجباری قبلاً اعلام شده است یا یک بیانیه غیرقابل انکار واقعیت (که همیشه بدون توجه به شرایط صادق است). |
خواهد شد | درست است که - فقط در اظهارات واقعیت استفاده می شود. |
باید | توصیه می شود که - برای نشان دادن اینکه از بین چندین احتمال، یکی به عنوان ویژه مناسب است، اما لازم نیست، استفاده می شود. |
می | مجاز است - برای اجازه دادن به گزینه ها استفاده می شود. |
می تواند | قادر به - برای ربط دادن گزاره به شیوه علی استفاده می شود. |
ویژگی جفت شدن مبتنی بر کلید
پیام جستجوگر به ارائه دهنده
type 0x00
مشخصه جفتسازی مبتنی بر کلید از بیت 4 برای نشان دادن اینکه جستجوگر از مشخصات دستگاه BLE پشتیبانی میکند و از بیت 5 برای نشان دادن اینکه جستجوگر از LE Audio پشتیبانی میکند استفاده میکند.
اکتت | نوع داده | توضیحات | ارزش | اجباری؟ |
---|---|---|---|---|
0 | uint8 | نوع پیام | 0x00 = درخواست جفت شدن مبتنی بر کلید | اجباری |
1 | uint8 | پرچم ها
| متفاوت است | اجباری |
2 - 7 | uint48 | یا:
| متفاوت است | اجباری |
8 - 13 | uint48 | آدرس BR/EDR جستجوگر | متفاوت است | تنها در صورتی ارائه شود که Flags Bit 1 یا 3 تنظیم شده باشد |
n - 15 | مقدار تصادفی (نمک) | متفاوت است | اجباری |
پیام ارائه دهنده به جستجوگر
هنگامی که بیت 4 درخواست تنظیم می شود، پیام پاسخ جدید type 0x02
برای مشخصه جفت سازی مبتنی بر کلید می تواند برای ارائه گزینه های پیوند اضافی به جستجوگر استفاده شود.
اکتت | نوع داده | توضیحات | ارزش |
---|---|---|---|
0 | uint8 | نوع پیام | 0x02 = پاسخ گسترده جفت سازی مبتنی بر کلید |
1 | uint8 | پرچم ها
| متفاوت است |
2 | uint8 | تعداد آدرس های ارائه دهنده (در نسخه فعلی، عدد 1 یا 2 است، زیرا اگر عدد >= 3 باشد، باید حالت رمزگذاری بلوک را به AES-CTR تغییر دهیم) | متفاوت است |
3 - 8 یا 3 - 14 |
| متفاوت است | |
9 - 15 یا 15 | مقدار تصادفی (نمک) | متفاوت است |
ارائه دهنده ای که از مشخصات دستگاه BLE پشتیبانی می کند باید بیت 4 و بیت 5 را بخواند تا توانایی های جستجوگر را درک کند.
- وقتی بیت 4 0 باشد، ارائه دهنده باید بیت 5 را نادیده بگیرد و با فرمت
type 0x01
پاسخ دهد. - وقتی بیت 4 1 است،
- برای ارائه دهنده فقط LE، باید با
type 0x02
پاسخ دهد تا اولویت پیوند LE را نشان دهد. - برای ارائه دهنده حالت دوگانه، می تواند با
type 0x02
پاسخ دهد تا اولویت پیوند BR/EDR یا LE را نشان دهد.
- برای ارائه دهنده فقط LE، باید با
- برای موارد ارائه دهنده حالت دوگانه LE Audio (LEA)، به مثال مراجعه کنید: جفت شدن با ارائه دهنده حالت دوگانه LEA برای مرجع
مشخصه جریان پیام PSM (مولتی پلکسور سرویس پروتکل).
برای پشتیبانی از جریان پیام برای دستگاههای BLE، Fast Pair یک کانال BLE L2CAP برای ارسال و دریافت پیام ایجاد و نگهداری میکند. سرور L2CAP جفت سریع باید کنترل جریان مبتنی بر اعتبار LE را اجرا کند.
این مشخصه به جستجوگر اجازه می دهد تا مقدار PSM را بخواند و سپس اتصال L2CAP ایمن را توسط مقدار PSM برقرار کند.
ویژگی Fast Pair Service | رمزگذاری شده است | مجوزها | UUID |
---|---|---|---|
پیام جریان PSM | بله | بخوانید | FE2C1239-8366-4814-8EB0-01DE32100BEA |
اکتت | نوع داده | توضیحات | ارزش |
---|---|---|---|
0 | uint8 | ایالت
| متفاوت است |
1 - 2 | uint16 | مقدار PSM باید در محدوده بین 0x80 و 0xFF باشد | متفاوت است |
نکته: برای TWS دو جزء اصلی و ثانویه وجود دارد. نقش این اجزا در شرایط خاصی قابل تعویض است. با فرض اینکه A جزء اولیه و B جزء ثانویه است، به دلیل تخلیه باتری در قطعه A، جزء B باید نقش جزء اصلی را به عهده بگیرد و این سناریو role switch
نامیده می شود.
پس از role switch
، اگر ارائه دهنده نتواند جریان پیام جفت سریع را مدیریت کند، باید به طور فعال اتصال L2CAP موجود را قطع کند. جستجوگر جفت سریع میتواند اتصال جریان پیام L2CAP را با مؤلفه اصلی جدید دوباره برقرار کند.
مشخصه کلید عبور اضافی
این ویژگی برای ایجاد حفاظت MITM بر روی اجزای اضافی است.
CSIS Fake Member MITM Protection
جفت سریع به محافظت MITM به عنوان بخشی از روند جفت شدن نیاز دارد. از آنجایی که CSIS حفاظت MITM را ارائه نمی دهد، طراحی فعلی FP برای چندین مؤلفه باید گسترش یابد تا حفاظت MITM در اجزای اضافی ارائه شود.
تعریف مشخصه
ویژگی سرویس جفت سریع | رمزگذاری شده است | اجازه | UUID |
---|---|---|---|
رمز عبور اضافی | بله | بخوانید، بنویسید، اطلاع دهید | FE2C123A-8366-4814-8EB0-01DE32100BEA |
پیام ها
قالب پیام برای خواندن، نوشتن و اطلاع رسانی عملیات اعمال می شود.
فرمت داده های رمزگذاری شده
داده های رمزگذاری شده با استفاده از اتصال سریع جفت GATT ارسال می شود.
اکتت | نوع داده | توضیحات | ارزش |
---|---|---|---|
0-15 | uint128 | بلوک رمز عبور اضافی رمزگذاری شده | متفاوت است |
فرمت داده های خام
پس از رمزگشایی داده های رمزگذاری شده با استفاده از مخفی مشترک، قالب به شرح زیر است
اکتت | نوع داده | توضیحات | ارزش |
---|---|---|---|
0 | uint8 | نوع پیام | یکی از
|
1-3 | uint24 | رمز عبور 6 رقمی | متفاوت است |
4-9 | uint48 | آدرس جزء پیوند هدف | متفاوت است |
10 | uint8 | کد وضعیت، این فقط با عملیات خواندن استفاده می شود | یکی از
|
11-15 | مقدار تصادفی (نمک) | متفاوت است |
اولیه (اولین جزء متصل) پل بین جفت جستجوگر سریع و اجزای پیوند اضافی است. مشخصه باید از دستورالعمل ها پیروی کند:
- هنگام دریافت درخواست نوشتن از Fast Pair Seker، ارائه دهنده باید
- آدرس قطعه ای را که در حال اتصال است تنظیم کنید
- رمز عبور را به جزء در حال پیوند ارسال کنید
- کد وضعیت را در حالت انتظار، 0x01 تنظیم کنید
- هنگام دریافت هرگونه درخواست خواندن قبل از دریافت کلید عبور از جزء در حال پیوند، ارائه دهنده باید پیامی را با آن برگرداند
- رمز عبور، هر مقدار
- آدرس جزء در حال اتصال
- کد وضعیت معلق، 0x01
- قبل از اینکه ارائهدهنده اعلان به جستجوگر جفت سریع بفرستد، نتیجه را برای درخواست خواندن تنظیم میکند
- کلید عبور از جزء در حال پیوند
- آدرس جزء در حال اتصال
- کد وضعیت موفقیت، 0x00
- اگر خطای غیرقابل جبرانی در سمت ارائه دهنده وجود دارد، نتیجه را تنظیم کنید
- رمز عبور، هر مقدار
- آدرس جزء در حال اتصال
- کد وضعیت خرابی، 0x02
برای جزئیات بیشتر به نمودار MITM 1 و نمودار MITM 2 مراجعه کنید.
الزامات دستگاه LE
LE تبلیغات
برای حالت قابل کشف یا غیرقابل کشف، ارائه دهنده باید از RPA برای تبلیغ داده های FastPair استفاده کند.
قابلیت اتصال
برای دستگاههای دارای قابلیت LE، جستجوگر باید با اتصال LE موجود پیوند ایجاد کند. پس از گذراندن راستیآزمایی جفتسازی مبتنی بر جفت کلید سریع، ارائهدهنده اجازه اتصال با RPA را میدهد و قابلیت IO را برای تأیید رمز عبور جفت سریع روی DisplayYesNo تنظیم میکند.
الزامات دستگاه LEA
تبلیغات LEA
برای دستگاههای حالت دوگانه: برای حالت قابل شناسایی، ارائهدهنده باید دادههای جفت سریع را با آدرس هویت تبلیغ کند. برای حالت غیرقابل کشف، ارائه دهنده باید داده های جفت سریع را با RPA تبلیغ کند. استفاده از تبلیغات قدیمی (BT 4.2) برای پشتیبانی از دستگاه های قدیمی برای سازگاری با عقب به شدت توصیه می شود. هر زمان که دستگاه به حالت کارخانه بازنشانی میشود، باید IRK را تغییر دهید.
برای دستگاههای غیر دو حالته: برای حالت قابل کشف یا غیرقابل کشف، ارائهدهنده باید از تبلیغات گسترده (BT 5.0) با RPA برای تبلیغ دادههای FastPair استفاده کند.
آگهی قابل اتصال LE حاوی داده های سرویس FP باید شامل CAS UUID مطابق با نمایه آداپتور بلوتوث (BAP 1.0.1) و الزامات نمایه صوتی مشترک باشد. برای تبلیغات غیرقابل کشف، اگر فضای کافی در تبلیغات قدیمی به دلیل درج دادههای باتری و SASS در دسترس نباشد، در آن حالت CAS UUID در پاسخ اسکن گنجانده شود.
قابلیت اتصال LEA
جستجوگر باید با اتصال LE موجود پیوند ایجاد کند. پس از گذراندن راستیآزمایی جفتسازی مبتنی بر جفت کلید سریع، ارائهدهنده حالت دوگانه باید اتصال با آدرس هویت و RPA را مجاز کند، در حالی که ارائهدهنده حالت غیردوگانه باید اتصال با RPA را مجاز کند، و قابلیت IO را برای تأیید رمز عبور جفت سریع روی DisplayYesNo تنظیم میکند.
کانال ارتباطی داخلی بین قطعات
اتصال GATT موجود برای انجام حفاظت MITM بر روی اجزای اضافی حفظ می شود. جزء پیوندی اولیه باید تحویل پیام بین جفت جستجوگر سریع و اجزای باقیمانده آن را مدیریت کند.
ارتباط داخلی برای Initial Pair
و Subsequent Pair
استفاده می شود
- هنگامی که رویه جفتسازی مبتنی بر کلید بر روی مؤلفه اصلی انجام میشود، مؤلفه اصلی باید پیامی برای تغییر قابلیت IO اجزای باقیمانده خود ارسال کند.
- وقتی جفت سریع انجام شد، مؤلفه اصلی باید پیامی برای بازنشانی قابلیت IO اجزای باقیمانده خود ارسال کند.
- هنگام اجرای رویه کلید رمز اضافی، مولفه اصلی باید تحویل کلید رمز را بین جفت جستجوگر سریع و اجزای باقیمانده آن مدیریت کند.
زمان تغییر قابلیت IO است
- وقتی رویه جفتسازی مبتنی بر کلید انجام شد، قابلیت IO را به DisplayYesNo تغییر دهید
- اگر دستگاه دارای چندین جزء باشد، همه اجزا باید روی DisplayYesNo تنظیم شوند
- یکی از استثناهایی که ارائه دهنده نباید قابلیت IO را به DisplayYesNo تغییر دهد،
Retroactive Pair
است که بیت 3 درخواست جفت سازی مبتنی بر کلید روی 1 تنظیم شده است، به پیام جستجوگر به ارائه دهنده مراجعه کنید.
- قابلیت IO را به تنظیمات پیش فرض تغییر دهید
- جفت شدن اولیه
- اگر اتصال LE قطع شد، جلسه جفت سریع را پایان دهید
- پس از اتصال اولیه، اگر در 15 ثانیه درخواست نوشتن کلید عبور اضافی وجود نداشت، جلسه جفت سریع را پایان دهید.
- پس از دریافت درخواست نوشتن کلید عبور اضافی، اگر کامپوننت در حال اتصال در عرض 15 ثانیه متصل نشد، جلسه جفت سریع را پایان دهید.
- پس از اتصال همه اجزا، اگر در عرض 15 ثانیه درخواست نوشتن کلید حساب وجود نداشت، جلسه جفت سریع را پایان دهید.
- پس از دریافت درخواست نوشتن کلید حساب، برای پایان جلسه جفت سریع، 15 ثانیه فاصله زمانی تعیین کنید
- جفت شدن بعدی
- اگر اتصال LE قطع شد، جلسه جفت سریع را پایان دهید
- پس از اتصال اولیه، اگر در عرض 15 ثانیه درخواست نوشتن کلید عبور اضافی وجود نداشت، جلسه جفت سریع را پایان دهید.
- پس از دریافت درخواست نوشتن کلید عبور اضافی، اگر کامپوننت در حال اتصال در عرض 15 ثانیه متصل نشد، جلسه جفت سریع را پایان دهید.
- وقتی همه اجزا به هم متصل شدند، جلسه جفت سریع را پایان دهید
- جفت شدن اولیه
پنهان کردن نشانگر رابط کاربری
وقتی هدست برای جفتسازی آماده نیست، ارائهدهنده باید type 0b0010
برای تنظیم نشانگر پنهان UI برای دادههای کلید حساب استفاده کند تا به جستجوگر بگوید رابط کاربری جفتسازی بعدی را نشان ندهد (به بار تبلیغاتی: دادههای حساب جفت سریع مراجعه کنید).
الزامات دستگاه صوتی LE
الزامات بلوتوث
توصیههای هدست صوتی Android، LE Audio را ببینید.
پشتیبانی CTKD
برای دستگاه دو حالته، CTKD از LE تا BR/EDR اجباری است و در راستای الزامات BAP است.
اعلام هدف
یک دستگاه جانبی باید از اعلان هدفمند برای درخواست اتصال از یک دستگاه مرکزی جفت شده استفاده کند. اعلامیه های هدفمند در BAP و CAP برای مدیریت اتصال طبق CAP 1.0 جدول 8.4 (p48/58) تعریف شده است.
پشتیبانی از سرور GATT EATT
EATT به دستگاه مرکزی اجازه می دهد تا چندین تراکنش GATT را به صورت موازی در هنگام اتصال دستگاه ارسال کند. برای دستگاهی که از CSIP پشتیبانی می کند، عملکرد اتصال پروفیل را افزایش می دهد و سپس به زودی روند اتصال CSIP را برای جوانه های دیگر آغاز می کند.
ذخیره سازی قوی گات (به شدت توصیه می شود)
اگر ارائهدهنده یک دستگاه واحد نیست بلکه مجموعهای هماهنگ با اجرای CSIP است، برای کاهش تعداد دفعات کشف سرویس و افزایش سرعت اتصال، ارائهدهنده باید GATT Caching تعریفشده در بلوتوث 5.1 را پیادهسازی کند.
الزامات جفت سریع
LE تبلیغات
برای حالت قابل کشف یا غیرقابل کشف، اگر دستگاه دارای چندین مؤلفه باشد، داده های جفت سریع باید توسط مؤلفه اصلی تبلیغ شود. اگر دستگاه برای جفت شدن بعدی آماده نباشد، جزء ثانویه می تواند داده های جفت سریع را برای ویژگی های توسعه یافته تبلیغ کند. به Hide UI Indication مراجعه کنید.
قابلیت مشاهده سرویس گات
پایگاه داده GATT باید برای همه اتصالات GATT حمل و نقل LE یکسان باشد. سرویس صوتی LE (0x184E) باید در پایگاه داده GATT اتصال جفت سریع گنجانده شود.
مثال: جفت شدن با ارائه دهنده حالت دوگانه LEA
سناریو 1 - زمانی که جستجوگر از LEA پشتیبانی نمی کند
ارائهدهنده باید با جستجوگری که از LEA پشتیبانی نمیکند سازگاری عقبافتاده داشته باشد.
اجزاء
- ارائه دهنده: A2DP/HFP/LEA
- جستجوگر: A2DP/HFP
رفتار مورد انتظار برای جفت اولیه / جفت بعدی
- ارائه دهنده داده های سرویس جفت سریع (0xFE2C) را با آدرس هویت (اولیه) یا RPA (بعدی) تبلیغ می کند.
- از تبلیغات قدیمی استفاده کنید
- جستجوگر آگهی ارائه دهنده را با آدرس هویت برای اولیه یا RPA برای جفت شدن بعدی دریافت می کند.
- جستجوگر درخواست جفتسازی مبتنی بر کلید را ارسال میکند
- پرچم بیت 5 درخواست جفت سازی مبتنی بر کلید روی 0 تنظیم شده است
- ارائهدهنده پاسخ جفتسازی مبتنی بر کلید را با آدرس عمومی در یکی از موارد زیر ارسال میکند:
- اگر از نوع پیام 0x01 استفاده شود، آدرس باید آدرس عمومی باشد
- اگر از نوع پیام 0x02 استفاده شده است
- بیت 0 باید 0 باشد
- بیت 1 باید 0 باشد
- آدرس باید آدرس عمومی باشد
- جستجوگر با حمل و نقل BR/EDR پیوند ایجاد می کند
- قابلیت IO برای BR/EDR روی DisplayYesNo تنظیم شده است
- جستجوگر و ارائهدهنده رویه تأیید رمز عبور جفت سریع را انجام میدهند
سناریو 2 - زمانی که جستجوگر از LEA پشتیبانی می کند
اجزاء
- ارائه دهنده
- پشتیبانی از A2DP/HFP/LEA
- تک جزء
- جوینده
- پشتیبانی A2DP/HFP/LEA
رفتار مورد انتظار برای جفت اولیه / جفت بعدی
- ارائه دهنده داده های سرویس جفت سریع (0xFE2C) را با آدرس هویت (اولیه) یا RPA (بعدی) تبلیغ می کند.
- از تبلیغات قدیمی استفاده کنید
- جستجوگر درخواست جفتسازی مبتنی بر کلید را ارسال میکند
- پرچم بیت 5 درخواست جفت سازی مبتنی بر کلید روی 1 تنظیم شده است
- ارائه دهنده پاسخ جفت سازی مبتنی بر کلید را با نوع پیام 0x02 ارسال می کند
- بیت 0 باید 0 باشد
- بیت 1 باید 1 باشد
- آدرس آدرس هویت است
- جستجوگر با اتصال LE موجود در حمل و نقل LE پیوند ایجاد می کند
- جهت CTKD از LE به BR/EDR است
- قابلیت IO روی DisplayYesNo برای LE تنظیم شده است
- جستجوگر و ارائهدهنده رویه تأیید رمز عبور جفت سریع را انجام میدهند
سناریوی 3 - زمانی که جستجوگر از LEA و CSIP درگیر پشتیبانی می کند
اجزاء
- ارائه دهنده
- پشتیبانی از A2DP/HFP/LEA
- اجزای متعدد
- جزء اصلی BR/EDR/LE است
- جزء ثانویه فقط LE است
- جوینده
- پشتیبانی از A2DP/HFP/LEA
رفتار مورد انتظار برای جفت اولیه / جفت بعدی
- مؤلفه اصلی داده های سرویس جفت سریع (0xFE2C) را با آدرس هویت (اولیه) یا RPA (بعدی) تبلیغ می کند.
- از تبلیغات قدیمی استفاده کنید
- جستجوگر درخواست جفتسازی مبتنی بر کلید را به مؤلفه اصلی ارسال میکند
- پرچم بیت 5 درخواست جفت سازی مبتنی بر کلید روی 1 تنظیم شده است
- مؤلفه اصلی پاسخ جفتسازی مبتنی بر کلید را با نوع پیام 0x02 ارسال میکند
- بیت 0 باید 0 باشد
- بیت 1 باید 1 باشد
- آدرس به شرح زیر است:
- آدرس اول آدرس هویت مولفه اصلی است
- آدرس دوم آدرس قابل اتصال برای جزء ثانویه است، جزء دوم نیز از این آدرس برای انجام تبلیغات CSIP استفاده می کند.
- جستجوگر با مولفه اصلی در اتصال LE موجود پیوند ایجاد می کند
- جهت CTKD از LE به BR/EDR است
- قابلیت IO روی DisplayYesNo برای LE تنظیم شده است
- جستجوگر با مؤلفه ثانویه پیوند ایجاد می کند که آدرس آن از پاسخ گسترده جفت سازی مبتنی بر کلید است.
- قابلیت IO باید DisplayYesNo باشد، در غیر این صورت درخواست جفت شدن را رد کنید
- جستجوگر و ارائهدهنده رویه حفاظتی MITM را برای جفت کردن مؤلفه ثانویه انجام میدهند، ارائهدهنده باید هر دو سناریو را اجرا کند.
- سالک منتظر می ماند تا با جزء ثانویه پیوند بخورد
نمودار ترتیبی برای MITM
این جلسه برای توصیف توالی روش حفاظت MITM است.
کلید عبور را از مؤلفه ای که با اعلان متصل می شود، دریافت کنید
کلید عبور را از مؤلفهای که با خواندن متصل میشود، دریافت کنید
موضوع شناخته شده
FP برای LEA برای کار با Android V (Android 15) بهینه شده است.
برعکس، ما با مشکلات متعددی در مورد هدستهایی مواجه شدهایم که از LEA پشتیبانی میکنند، اما فاقد جفت سریع صحیح نسبت به پیادهسازی LEA هستند (یعنی فقط جفت سریع نسبت به کلاسیک). به طور خاص و برای مثال، زمانی که RPA ارائهدهنده توسط کلید حل هویت (IRK) درست ایجاد نمیشود و آدرس را نمیتوان حل کرد. در حالی که ما نتوانستیم لیست جامعی از پیکربندیهای هدست را آزمایش کنیم، آزمایش محدود ما مشکلات مختلفی را نشان داد، از جمله عدم نمایش اعلانهای باتری هدفون، فقدان عملکرد تعویض صدا (SASS)، خرابیهای گسترده اولیه و بعدی جفتسازی و موارد دیگر.
بنابراین، ما قویاً به شرکا توصیه میکنیم که مشخصات Fast Pair-LEA را هم برای دستگاههای جدید و هم برای دستگاههای موجود در این زمینه (از طریق بهروزرسانیهای هوایی) که از حالتهای دوگانه پشتیبانی میکنند، پیادهسازی کنند.