Perangkat Bluetooth Hemat Energi (BLE)

Implementasi Layanan Sambungan Cepat Google (GFPS) untuk perangkat BLE kompatibel dengan Bluetooth Core Specification v4.2 atau yang lebih baru.

Adendum berikut untuk spesifikasi Sambungan Cepat akan memungkinkan dukungan untuk perangkat khusus Hemat Energi (LE) dan Audio Hemat Energi (LEA) di GFPS.

Tingkat Kepatuhan

Kata kunci “shall”, “must”, “will”, “should”, “may”, dan “can” yang disebutkan dalam spesifikasi dijelaskan di bawah:

Istilah Deskripsi
shall diperlukan untuk - digunakan untuk menentukan persyaratan.
harus digunakan untuk menyatakan:
konsekuensi alami dari persyaratan wajib yang dinyatakan sebelumnya
ATAU
pernyataan fakta yang tidak dapat disangkal (yang selalu benar terlepas dari situasinya).
oleh benar bahwa - hanya digunakan dalam pernyataan fakta.
harus sebaiknya - digunakan untuk menunjukkan bahwa di antara beberapa kemungkinan, salah satunya direkomendasikan karena sangat sesuai, tetapi tidak wajib.
Mei diizinkan untuk - digunakan untuk mengizinkan opsi.
dapat dapat - digunakan untuk mengaitkan pernyataan secara kausal.

Karakteristik Penyambungan Berbasis Kunci

Pesan dari Pencari ke Penyedia

Permintaan Mentah type 0x00 dari karakteristik Penyambungan Berbasis Kunci menggunakan Bit 4 untuk menunjukkan apakah Pencari Kerja mendukung Spesifikasi Perangkat BLE, dan menggunakan Bit 5 untuk menunjukkan apakah Pencari mendukung Audio LE.

Oktet Jenis data Deskripsi Nilai Wajib?
0 uint8 Jenis pesan 0x00 = Permintaan Penyambungan Berbasis Kunci Wajib
1 uint8 Flag
  • Bit 0 (MSB): tidak digunakan lagi dan diabaikan oleh Pencari.
  • Bit 1: 1 jika Pencari meminta Penyedia untuk memulai pengikatan, dan permintaan ini berisi alamat BR/EDR Pencari. 0 sebaliknya.
  • Bit 2: 1 jika Pencari meminta agar Penyedia memberi tahu nama yang ada. 0 sebaliknya.
  • Bit 3: 1 jika ini untuk Menulis kunci akun secara retroaktif. 0 sebaliknya.
  • Bit 4: 1 jika Pencari Kerja mendukung Spesifikasi Perangkat BLE. 0 sebaliknya.
  • Bit 5: 1 jika Pencari mendukung LE Audio. 0 sebaliknya.
  • Bit 6 - 7 dicadangkan untuk penggunaan di masa mendatang, dan akan diabaikan.
bervariasi Wajib
2 - 7 uint48 Salah satu:
  • Alamat BLE penyedia saat ini
  • Alamat Identitas Penyedia
bervariasi Wajib
8 - 13 uint48 Alamat BR/EDR Pencari bervariasi Hanya ada jika Flag Bit 1 atau 3 disetel
n - 15 Nilai acak (salt) bervariasi Wajib

Pesan dari Penyedia ke Pencari Kerja

Saat Bit 4 permintaan ditetapkan, pesan respons baru type 0x02 untuk karakteristik Penyambungan Berbasis Kunci dapat digunakan untuk memberikan opsi pengikatan tambahan kepada Pencari.

Oktet Jenis data Deskripsi Nilai
0 uint8 Jenis pesan 0x02 = Respons yang Diteruskan Penyambungan Berbasis Kunci
1 uint8 Flag
  • Bit 0 (MSB): 1 jika Penyedia adalah perangkat khusus LE, 0 jika tidak. Jika bit 0 diatur ke 1, Pencari akan menganggap bahwa Bit 1 diatur ke 1.
  • Bit 1: 1 jika Penyedia lebih memilih pengikatan LE, 0 jika tidak.
  • Bit 2: 1 jika jenis alamat alamat kedua adalah Acak, 0 jika Publik.
  • Bit 3 - 7 dicadangkan untuk penggunaan di masa mendatang, dan akan diabaikan.
bervariasi
2 uint8 Jumlah alamat Penyedia
(dalam versi saat ini, jumlahnya adalah 1 atau 2, karena kita perlu mengubah mode block cipher menjadi AES-CTR jika jumlahnya >= 3)
bervariasi
3 - 8 atau
3 - 14
  • Alamat pertama harus berupa alamat Identitas dari alamat utama, dan dapat di-bonding jika Anda lebih memilih bonding BR/EDR
  • Alamat kedua harus berupa alamat sekunder yang dapat di-bond jika sekunder tersedia
bervariasi
9 - 15 atau 15 Nilai acak (salt) bervariasi

Penyedia yang mendukung Spesifikasi Perangkat BLE harus membaca Bit 4 dan Bit 5 untuk memahami kemampuan Pencari

  • Jika Bit 4 adalah 0, Penyedia harus mengabaikan Bit 5 dan merespons dengan format type 0x01
  • Jika Bit 4 adalah 1,
    • Untuk Penyedia khusus LE, penyedia tersebut harus merespons dengan type 0x02 untuk menunjukkan preferensi ikatan LE.
    • Untuk Penyedia mode ganda, Penyedia dapat merespons dengan type 0x02 untuk menunjukkan preferensi pengikatan BR/EDR atau LE.
  • Untuk kasus Penyedia mode ganda LE Audio (LEA), lihat Contoh: Menyambungkan dengan Penyedia mode ganda LEA untuk referensi

Karakteristik PSM (Multipleks Layanan Protokol) Aliran Pesan

Untuk mendukung Aliran pesan untuk perangkat BLE, Sambungan Cepat akan membuat dan mempertahankan saluran BLE L2CAP untuk mengirim dan menerima pesan. Server L2CAP Sambungan Cepat akan menerapkan kontrol alur berbasis kredit LE.

Karakteristik ini memungkinkan Pencari membaca nilai PSM, lalu membuat koneksi L2CAP yang aman berdasarkan nilai PSM.

Karakteristik Layanan Sambungan Cepat Dienkripsi Izin UUID
PSM Message Stream Ya Baca FE2C1239-8366-4814-8EB0-01DE32100BEA
Octet Jenis data Deskripsi Nilai
0 uint8 Status
  • 0x00 = Tidak diketahui. FP Seeker akan mencoba lagi beberapa kali
  • 0x01 = Siap untuk tersambung
  • 0x02 = Tidak tersedia. FP Seeker tidak akan menggunakan komponen ini untuk terhubung kali ini
bervariasi
1 - 2 uint16 Nilai PSM harus dalam rentang antara 0x80 dan 0xFF bervariasi

Catatan: Untuk TWS, ada dua komponen: primer dan sekunder. Peran untuk komponen ini dapat dipertukarkan dalam kondisi tertentu. Dengan asumsi A adalah komponen utama dan B adalah komponen sekunder, karena baterai terkuras pada komponen A , komponen B perlu mengambil peran komponen utama dan skenario ini disebut role switch.

Setelah role switch, jika penyedia tidak dapat menangani streaming pesan Sambungan Cepat, penyedia akan secara proaktif memutuskan koneksi L2CAP yang ada. Pencari Sambungan Cepat kemudian dapat membuat ulang koneksi streaming pesan L2CAP dengan komponen utama yang baru.

Karakteristik Kunci Sandi Tambahan

Karakteristik ini adalah untuk memberikan perlindungan MITM pada komponen tambahan.

Perlindungan MITM Anggota Palsu CSIS

Sambungan Cepat memerlukan perlindungan MITM sebagai bagian dari prosedur penyambungan. Karena CSIS tidak memberikan perlindungan MITM, desain saat ini untuk FP untuk beberapa komponen perlu diperluas untuk memberikan perlindungan MITM pada komponen tambahan.

Definisi Karakteristik

Karakteristik Layanan Sambungan Cepat Dienkripsi Izin UUID
Kunci Sandi Tambahan Ya Read,write,notify FE2C123A-8366-4814-8EB0-01DE32100BEA

Pesan

Format pesan diterapkan ke operasi baca, tulis, dan notifikasi.

Format Data Terenkripsi

Data terenkripsi dikirim menggunakan koneksi GATT Sambungan Cepat.

Octet Jenis data Deskripsi Nilai
0-15 uint128 Blok kunci sandi tambahan terenkripsi di waktu/bulan/tempat/tanggal tertentu
Format Data Mentah

Setelah mendekripsi data terenkripsi menggunakan secret bersama, formatnya adalah sebagai berikut

Octet Jenis data Deskripsi Nilai
0 uint8 Jenis pesan salah satu dari
  • 0x00 = Kunci sandi pencari
  • 0x01 = Kunci sandi penyedia
1-3 uint24 Kunci sandi 6 digit di waktu/bulan/tempat/tanggal tertentu
4-9 uint48 Alamat komponen bonding target di waktu/bulan/tempat/tanggal tertentu
10 uint8 Kode status, ini hanya digunakan oleh operasi baca Salah satu dari
  • 0x00 = Berhasil
  • 0x01 = Tertunda. Percobaan ulang Pencari FP hingga waktu habis
  • 0x02 = Kegagalan. FP Seeker berhenti mencoba lagi
11-15 Nilai acak (garam) di waktu/bulan/tempat/tanggal tertentu

Utama (komponen yang terikat pertama) adalah jembatan antara Pencari Sambungan Cepat dan komponen pengikatan tambahan. Karakteristik harus mengikuti panduan:

  • Saat menerima permintaan tulis dari Pencari Sambungan Cepat, Penyedia harus
    • Menetapkan alamat komponen yang sedang di-bonding
    • Mengirim kunci sandi ke komponen yang diikat
    • Setel kode status ke Tertunda, 0x01
  • Saat menerima permintaan baca apa pun sebelum menerima kunci sandi dari komponen yang diikat, Penyedia harus menampilkan pesan dengan
    • Kunci sandi, nilai apa pun
    • Alamat komponen yang di-bonding
    • Kode status tertunda, 0x01
  • Sebelum Penyedia mengirim notifikasi ke Pencari Sambungan Cepat, tetapkan hasil untuk permintaan baca dengan
    • Kunci sandi dari komponen yang di-bonding
    • Alamat komponen yang diikat
    • Kode status berhasil, 0x00
  • Jika ada error yang tidak dapat dipulihkan di sisi Penyedia, tetapkan hasilnya
    • Kunci sandi, nilai apa pun
    • Alamat komponen yang di-bonding
    • Kode status kegagalan, 0x02

Lihat diagram MITM 1 dan diagram MITM 2 untuk detail selengkapnya.

Persyaratan Perangkat LE

LE Advertising

Untuk mode yang dapat ditemukan atau mode yang tidak dapat ditemukan, Penyedia harus menggunakan RPA untuk mengumumkan data FastPair.

Kemampuan Pengikatan

Untuk perangkat yang kompatibel dengan LE, Pencari harus membuat ikatan dengan koneksi LE yang ada. Setelah lulus verifikasi Penyambungan berbasis Kunci Sambungan Cepat, Penyedia akan mengizinkan pengikatan dengan RPA, dan menetapkan kemampuan IO ke DisplayYesNo untuk verifikasi Kunci Sambungan Cepat.

Persyaratan Perangkat LEA

LEA Advertising

Untuk perangkat mode ganda: Untuk mode yang dapat ditemukan, Penyedia harus mengiklankan data Sambungan Cepat dengan alamat Identitas. Untuk mode yang tidak dapat ditemukan, Penyedia harus mengiklankan data Sambungan Cepat dengan RPA. Sebaiknya gunakan iklan lama (BT 4.2) untuk mendukung perangkat lama untuk kompatibilitas mundur. IRK harus diubah setiap kali perangkat direset ke setelan pabrik.

Untuk perangkat non-mode ganda: Untuk mode yang dapat ditemukan atau mode yang tidak dapat ditemukan, Penyedia harus menggunakan iklan yang diperluas (BT 5.0) dengan RPA untuk mengiklankan data FastPair.

Iklan LE yang dapat dihubungkan yang berisi data layanan FP harus menyertakan CAS UUID sesuai dengan persyaratan Profil Adaptor Bluetooth (BAP 1.0.1) dan Profil Audio Umum. Untuk iklan yang tidak dapat ditemukan, jika tidak ada cukup ruang dalam iklan lama karena penyertaan data baterai dan SASS, Anda wajib menyertakan CAS UUID dalam respons pemindaian dalam kasus tersebut.

Kemampuan Bonding LEA

Pencari harus membuat ikatan dengan koneksi LE yang ada. Setelah lulus verifikasi Penyambungan berbasis Kunci Sambungan Cepat, Penyedia mode ganda akan mengizinkan pengikatan dengan alamat Identitas dan RPA, sedangkan Penyedia mode non-ganda akan mengizinkan pengikatan dengan RPA, dan menetapkan kemampuan IO ke DisplayYesNo untuk verifikasi Kunci Sandi Sambungan Cepat.

Saluran komunikasi internal antar komponen

Koneksi GATT yang ada dipertahankan untuk melakukan perlindungan MITM pada komponen tambahan. Komponen terikat utama akan menangani pengiriman pesan antara Pencari Sambungan Cepat dan komponen lainnya.

Komunikasi internal digunakan untuk Initial Pair dan Subsequent Pair

  • Saat prosedur Penyambungan Berbasis Kunci meneruskan komponen utama, komponen utama akan mengirim pesan untuk mengubah kemampuan IO dari komponen yang tersisa
  • Saat Sambungan Cepat selesai, komponen utama harus mengirim pesan untuk mereset kemampuan IO komponen yang tersisa
  • Saat menjalankan prosedur Kunci Sandi Tambahan, komponen utama akan menangani pengiriman kunci sandi antara Pencari Sambungan Cepat dan komponen lainnya

Waktu untuk mengubah kemampuan IO

  • Mengubah kemampuan IO menjadi DisplayYesNo saat prosedur Penyambungan Berbasis Kunci diteruskan
    • Jika perangkat memiliki beberapa komponen, semua komponen akan disetel ke DisplayYesNo
    • Satu pengecualian bahwa Penyedia tidak boleh mengubah kemampuan IO menjadi DisplayYesNo adalah Retroactive Pair, yang Bit 3 dari Permintaan Penyambungan Berbasis Kunci ditetapkan ke 1, lihat Pesan dari Pencari ke Penyedia
  • Mengubah kemampuan IO ke setelan default
    • Penyambungan awal
      • Jika koneksi LE terputus, akhiri sesi Sambungan Cepat
      • Setelah primer terikat, jika tidak ada permintaan penulisan kunci sandi tambahan dalam 15 detik, akhiri sesi Sambungan Cepat
      • Setelah permintaan tulis kunci sandi tambahan diterima, jika komponen yang diikat tidak diikat dalam waktu 15 detik, akhiri sesi Sambungan Cepat
      • Setelah semua komponen terikat, jika tidak ada permintaan tulis kunci akun dalam waktu 15 detik, akhiri sesi Sambungan Cepat
      • Setelah permintaan penulisan kunci akun diterima, tetapkan waktu tunggu 15 detik untuk mengakhiri sesi Sambungan Cepat
    • Penyambungan berikutnya
      • Jika koneksi LE terputus, akhiri sesi Sambungan Cepat
      • Setelah utama terikat, jika tidak ada permintaan tulis kunci sandi tambahan dalam waktu 15 detik, akhiri sesi Sambungan Cepat
      • Setelah permintaan tulis kunci sandi tambahan diterima, jika komponen yang terikat tidak terikat dalam 15 detik, akhiri sesi Sambungan Cepat
      • Saat semua komponen terikat, akhiri sesi Sambungan Cepat

Menyembunyikan Indikasi UI

Jika headset belum siap untuk disambungkan, Penyedia harus menggunakan type 0b0010 untuk menetapkan indikasi UI sembunyikan untuk Data Kunci Akun guna memberi tahu Pencari agar tidak menampilkan UI penyambungan berikutnya (lihat Payload iklan: Data Akun Penyambungan Cepat).

Persyaratan Perangkat Audio LE

Persyaratan Bluetooth

Lihat rekomendasi headset Android dan LE Audio.

Dukungan CTKD

Untuk perangkat mode ganda, CTKD dari LE ke BR/EDR bersifat wajib dan sesuai dengan persyaratan BAP.

Pengumuman Target

Perangkat periferal harus menggunakan Pengumuman yang Ditargetkan untuk meminta koneksi dari perangkat pusat yang disambungkan. Pengumuman Bertarget didefinisikan dalam BAP dan CAP untuk pengelolaan koneksi menurut CAP 1.0 Tabel 8.4 (p48/58).

Dukungan Server GATT EATT

EATT memungkinkan perangkat pusat mengirim beberapa transaksi GATT secara paralel saat perangkat terikat. Untuk perangkat yang mendukung CSIP, perangkat akan meningkatkan performa koneksi profil, lalu segera memulai prosedur pengikatan CSIP untuk bud lainnya.

Jika Penyedia bukan perangkat tunggal, melainkan set terkoordinasi dengan implementasi CSIP, untuk mengurangi jumlah waktu melakukan penemuan layanan dan mempercepat koneksi, Penyedia harus mengimplementasikan Cache GATT yang ditentukan dalam Bluetooth 5.1.

Persyaratan Sambungan Cepat

Periklanan LE

Untuk mode dapat ditemukan atau mode yang tidak dapat ditemukan, jika perangkat memiliki beberapa komponen, data Sambungan Cepat harus diiklankan oleh komponen utama. Jika perangkat tidak siap untuk penyambungan berikutnya, komponen sekunder dapat mengumumkan data Sambungan Cepat untuk fitur yang diperluas. lihat Menyembunyikan Indikasi UI.

Visibilitas Layanan GATT

Database GATT harus sama untuk semua koneksi GATT transpor LE. Layanan LE Audio (0x184E) harus disertakan dalam database GATT koneksi Sambungan Cepat.

Contoh: Menyambungkan dengan Penyedia mode ganda LEA

Skenario 1 - Saat Pencari Kerja tidak mendukung LEA

Penyedia harus memiliki kompatibilitas mundur dengan Pencari Kerja yang tidak mendukung LEA.

Komponen
  • Penyedia: A2DP/HFP/LEA
  • Pencari: A2DP/HFP
Perilaku yang Diharapkan untuk Penyambungan Awal / Penyambungan Berikutnya
  • Penyedia mengiklankan data layanan Fast Pair (0xFE2C) dengan alamat Identitas (awal) atau RPA (berikutnya).
    • Menggunakan Iklan lama
  • Pencari menerima iklan Penyedia dengan alamat Identitas untuk awal atau RPA untuk penyambungan berikutnya
  • Pencari mengirimkan permintaan Penyandingan berbasis Kunci
    • Bit-5 flag pada permintaan Pasangan Berbasis Kunci diatur ke 0
  • Penyedia mengirimkan respons Penyambungan Berbasis Kunci dengan alamat publik dalam salah satu hal berikut:
    • Jika jenis pesan 0x01 digunakan, alamatnya harus berupa alamat publik
    • Jika jenis pesan 0x02 digunakan
      • Bit-0 harus 0
      • Bit-1 harus 0
      • Alamat tersebut harus berupa alamat publik
  • Pencari membuat ikatan dengan transpor BR/EDR
    • Kemampuan IO ditetapkan ke DisplayYesNo untuk BR/EDR
  • Pencari dan Penyedia melakukan prosedur verifikasi kunci sandi Sambungan Cepat

Skenario 2 - Ketika Pencari Kerja mendukung LEA

Komponen
  • Penyedia
    • Mendukung A2DP/HFP/LEA
    • Satu komponen
  • Pencari
    • MendukungA2DP/HFP/LEA
Perilaku yang Diharapkan untuk Penyambungan Awal / Penyambungan Berikutnya
  • Penyedia mengiklankan data layanan Fast Pair (0xFE2C) dengan alamat Identitas (awal) atau RPA (berikutnya).
    • Gunakan Iklan lama
  • Pencari mengirimkan permintaan Penyandingan berbasis Kunci
    • Bit-5 flag pada permintaan Pasangan Berbasis Kunci diatur ke 1
  • Penyedia mengirimkan respons Penyambungan Berbasis Kunci dengan jenis pesan 0x02
    • Bit-0 harus 0
    • Bit-1 harus 1
    • Alamatnya adalah Alamat identitas
  • Seeker menciptakan ikatan dengan koneksi LE yang ada di transpor LE
    • Arah CTKD adalah dari LE ke BR/EDR
    • Kemampuan IO disetel ke DisplayYesNo untuk LE
  • Pencari dan Penyedia melakukan prosedur verifikasi kunci sandi Sambungan Cepat

Skenario 3 - saat Pencari mendukung LEA dan CSIP yang terlibat

Komponen
  • Penyedia
    • Mendukung A2DP/HFP/LEA
    • Beberapa komponen
      • Komponen utama adalah BR/EDR/LE
      • Komponen sekunder khusus LE
  • Pencari
    • Mendukung A2DP/HFP/LEA
Perilaku yang Diharapkan untuk Penyambungan Awal / Penyambungan Berikutnya
  • Komponen utama mengiklankan data layanan Sambungan Cepat (0xFE2C) dengan alamat Identitas (awal) atau RPA (berikutnya).
    • Gunakan Iklan lama
  • Pencari mengirimkan permintaan Penyandingan berbasis Kunci ke komponen utama
    • Bit flag 5 dari permintaan Penyandingan berbasis Kunci ditetapkan ke 1
  • Komponen utama mengirim respons Penyambungan Berbasis Kunci dengan jenis pesan 0x02
    • Bit-0 harus 0
    • Bit-1 harus 1
    • Alamatnya adalah sebagai berikut:
      • Alamat pertama adalah alamat Identitas komponen utama
      • Alamat kedua adalah alamat ikatan untuk komponen sekunder, komponen kedua juga menggunakan alamat ini untuk melakukan iklan CSIP
  • Pencari membuat ikatan dengan komponen utama pada koneksi LE yang ada
    • Arah CTKD adalah dari LE ke BR/EDR
    • Kemampuan IO disetel ke DisplayYesNo untuk LE
  • Pencari membuat ikatan dengan komponen sekunder yang alamatnya berasal dari Respons Perluasan Penyambungan berbasis Kunci
    • Kemampuan IO harus DisplayYesNo, jika tidak, tolak permintaan penyambungan
  • Pencari dan Penyedia melakukan prosedur perlindungan MITM untuk menyambungkan komponen sekunder, Penyedia akan menerapkan kedua skenario tersebut
  • Pencari menunggu hingga terikat dengan komponen sekunder

Diagram Urutan untuk MITM

Sesi ini bertujuan untuk menjelaskan urutan prosedur perlindungan MITM.

Mendapatkan kunci sandi dari komponen yang diikat oleh notifikasi

Mendapatkan kunci sandi dari komponen yang terikat dengan operasi baca

Masalah Umum

FP untuk LEA telah dioptimalkan agar berfungsi dengan Android V(Android 15).

Sebaliknya, kami telah mengalami banyak masalah dengan headset yang mendukung LEA tetapi tidak memiliki implementasi Sambungan Cepat melalui LEA yang benar (yaitu hanya Sambungan Cepat melalui Klasik). Secara khusus dan misalnya, saat RPA penyedia tidak dihasilkan oleh Kunci Penyelesaian Identitas (IRK) yang benar, dan alamat tidak dapat di-resolve. Meskipun kami belum dapat menguji daftar lengkap konfigurasi headset, pengujian terbatas kami mengungkapkan berbagai masalah, termasuk kegagalan untuk menampilkan notifikasi baterai earbud, kurangnya fungsi Audio Switching (SASS), kegagalan penyambungan awal dan berikutnya yang meluas, dan lainnya.

Oleh karena itu, sebaiknya mitra menerapkan spesifikasi Fast Pair-LEA untuk perangkat baru dan perangkat yang ada di lapangan (melalui update over-the-air) yang mendukung mode ganda.