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 pada spesifikasi Sambungan Cepat akan memungkinkan dukungan untuk perangkat Hemat Energi (LE) saja dan Audio Hemat Energi (LEA) di GFPS.

Tingkat Kesesuaian

Kata kunci “harus”, “wajib”, “akan”, “sebaiknya”, “dapat”, dan “bisa” yang disebutkan dalam spesifikasi dijelaskan di bawah:

Istilah Deskripsi
akan 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 keadaannya).
akan benar bahwa - hanya digunakan dalam pernyataan fakta.
seharusnya direkomendasikan agar - digunakan untuk menunjukkan bahwa di antara beberapa kemungkinan, salah satunya direkomendasikan sebagai yang paling sesuai, tetapi tidak wajib.
dapat diizinkan untuk - digunakan untuk mengizinkan opsi.
dapat dapat - digunakan untuk menghubungkan pernyataan secara kausal.

Karakteristik Penyambungan Berbasis Kunci

Pesan dari Pencari ke Penyedia

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

Octet Jenis data Deskripsi Nilai Wajib?
0 uint8 Jenis pesan 0x00 = Permintaan Penyambungan Berbasis Kunci Wajib
1 uint8 Bendera
  • Bit 0 (MSB): tidak digunakan lagi dan diabaikan oleh Seeker.
  • Bit 1: 1 jika Seeker meminta agar Penyedia memulai penggabungan, dan permintaan ini berisi alamat BR/EDR Seeker. 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 Seeker mendukung Spesifikasi Perangkat BLE. 0 sebaliknya.
  • Bit 5: 1 jika Seeker mendukung LE Audio. 0 sebaliknya.
  • Bit 6 - 7 dicadangkan untuk penggunaan pada masa mendatang, dan akan diabaikan.
berbeda-beda Wajib
2 - 7 uint48 Salah satu dari:
  • Alamat BLE penyedia saat ini
  • Alamat Identitas penyedia
berbeda-beda Wajib
8 - 13 uint48 Alamat BR/EDR Pencari berbeda-beda Hanya ada jika Bit 1 atau 3 Flag ditetapkan
n - 15 Nilai acak (salt) berbeda-beda Wajib

Pesan dari Penyedia ke Pencari

Jika Bit 4 permintaan disetel, pesan respons baru type 0x02 untuk karakteristik Penyandingan Berbasis Kunci dapat digunakan untuk memberikan opsi penggabungan tambahan kepada Pencari.

Octet Jenis data Deskripsi Nilai
0 uint8 Jenis pesan 0x02 = Respons Panjang Penyambungan Berbasis Kunci
1 uint8 Bendera
  • Bit 0 (MSB): 1 jika Penyedia adalah perangkat khusus LE, 0 jika tidak. Jika bit 0 disetel ke 1, Seeker akan mengasumsikan bahwa Bit 1 disetel ke 1.
  • Bit 1: 1 jika Penyedia lebih memilih penggabungan LE, 0 jika tidak.
  • Bit 2: 1 jika jenis alamat kedua adalah Acak, 0 jika Publik.
  • Bit 3 - 7 dicadangkan untuk penggunaan pada masa mendatang, dan akan diabaikan.
berbeda-beda
2 uint8 Jumlah alamat Penyedia
(dalam versi saat ini, jumlahnya adalah 1 atau 2, karena kita perlu mengubah mode cipher blok ke AES-CTR jika jumlahnya >= 3)
berbeda-beda
3 - 8 atau
3 - 14
  • Alamat pertama harus berupa alamat Identitas utama, dan dapat di-pairing jika pairing BR/EDR lebih disukai
  • Alamat kedua harus berupa alamat yang dapat diikat dari alamat sekunder jika alamat sekunder tersedia
berbeda-beda
9 - 15 atau 15 Nilai acak (salt) berbeda-beda

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

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

Karakteristik PSM (Protocol Service Multiplexor) Aliran Pesan

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

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

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

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 pengurasan baterai pada komponen A , komponen B perlu mengambil peran komponen utama dan skenario ini disebut role switch.

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

Karakteristik Kunci Sandi Tambahan

Karakteristik ini adalah untuk memberikan perlindungan MITM pada komponen tambahan.

Perlindungan Serangan MITM Anggota Palsu CSIS

Sambungan Cepat memerlukan perlindungan MITM sebagai bagian dari prosedur penyambungan. Karena CSIS tidak memberikan perlindungan MITM, desain FP saat ini 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 untuk 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 rahasia 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 pengikatan target di waktu/bulan/tempat/tanggal tertentu
10 uint8 Kode status, ini hanya digunakan oleh operasi baca Salah satu dari
  • 0x00 = Berhasil
  • 0x01 = Tertunda. FP Seeker mencoba lagi hingga waktu tunggu habis
  • 0x02 = Gagal. FP Seeker menghentikan percobaan ulang
11-15 Nilai acak (salt) di waktu/bulan/tempat/tanggal tertentu

Komponen utama (komponen yang pertama kali disambungkan) adalah jembatan antara Pencari Sambungan Cepat dan komponen sambungan tambahan. Karakteristik harus mengikuti panduan:

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

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

Persyaratan Perangkat LE

LE Advertising

Untuk mode dapat ditemukan atau mode tidak dapat ditemukan, Penyedia akan menggunakan RPA untuk mengiklankan data FastPair.

Kemampuan Penggabungan

Untuk perangkat yang kompatibel dengan LE, Seeker harus membuat sesi pairing dengan koneksi LE yang ada. Setelah lulus verifikasi Penyambungan Berbasis Kunci Sambungan Cepat, Penyedia akan mengizinkan pengikatan dengan RPA, dan menyetel kemampuan IO ke DisplayYesNo untuk verifikasi Kode Sandi Sambungan Cepat.

Persyaratan Perangkat LEA

LEA Advertising

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

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

Iklan yang dapat terhubung LE yang berisi data layanan FP harus menyertakan UUID CAS sesuai dengan persyaratan Bluetooth Adapter Profile (BAP 1.0.1) dan Common Audio Profile.

Penyedia dapat menunjukkan kemampuan LEA dengan menyertakan UUID CAS (0x1853) dalam Data Layanan (Jenis Iklan 0x16) atau UUID Kelas Layanan 16-bit (Jenis Iklan 0x02 atau 0x03), terlepas dari mode yang dapat ditemukan.

Untuk iklan yang tidak dapat ditemukan, jika ruang yang tersedia tidak cukup dalam iklan lama karena penyertaan data baterai dan SASS, maka CAS UUID harus disertakan dalam respons pemindaian.

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 pengaitan dengan alamat Identitas dan RPA, sedangkan Penyedia non-mode ganda akan mengizinkan pengaitan dengan RPA, dan menetapkan kemampuan IO ke DisplayYesNo untuk verifikasi Kunci Sandi Sambungan Cepat.

Saluran komunikasi internal antar-komponen

Koneksi GATT yang ada tetap 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

  • Jika prosedur Penyandingan Berbasis Kunci berhasil pada komponen utama, komponen utama akan mengirim pesan untuk mengubah kemampuan IO komponen yang tersisa
  • Setelah Sambungan Cepat selesai, komponen utama akan mengirim pesan untuk mereset kemampuan IO komponen lainnya
  • Saat menjalankan prosedur Kunci Sandi Tambahan, komponen utama akan menangani pengiriman kunci sandi antara Pencari Sambungan Cepat dan komponen yang tersisa

Waktunya mengubah kemampuan IO

  • Mengubah kemampuan IO menjadi DisplayYesNo saat prosedur Penyandingan berbasis Kunci berhasil
    • Jika perangkat memiliki beberapa komponen, semua komponen harus disetel ke DisplayYesNo
    • Satu pengecualian yang tidak boleh diubah oleh Penyedia adalah kemampuan IO ke DisplayYesNo adalah Retroactive Pair, yang Bit 3 Permintaan Penyandingan Berbasis Kuncinya disetel 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 perangkat utama terikat, jika tidak ada permintaan penulisan kunci sandi tambahan dalam 15 detik, akhiri sesi Sambungan Cepat
      • Setelah permintaan penulisan 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 penulisan kunci akun dalam waktu 15 detik, akhiri sesi Sambungan Cepat
      • Setelah permintaan penulisan kunci akun diterima, setel waktu tunggu 15 detik untuk mengakhiri sesi Sambungan Cepat
    • Penyambungan berikutnya
      • Jika koneksi LE terputus, akhiri sesi Sambungan Cepat
      • Setelah perangkat utama terikat, jika tidak ada permintaan penulisan kunci sandi tambahan dalam waktu 15 detik, akhiri sesi Sambungan Cepat
      • Setelah permintaan penulisan kunci sandi tambahan diterima, jika komponen yang diikat tidak diikat dalam waktu 15 detik, akhiri sesi Sambungan Cepat
      • Setelah semua komponen terikat, akhiri sesi Sambungan Cepat

Menyembunyikan Indikasi UI

Jika headset belum siap untuk penyambungan, Penyedia akan menggunakan type 0b0010 untuk menyetel indikasi UI sembunyikan untuk Data Kunci Akun guna memberi tahu Pencari agar tidak menampilkan UI penyambungan berikutnya (lihat Payload iklan: Data Akun Fast Pair).

Persyaratan Perangkat LE Audio

Persyaratan Bluetooth

Lihat Rekomendasi headset LE Audio untuk Android.

Dukungan CTKD

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

Pengumuman Target

Perangkat periferal akan menggunakan Pengumuman Bertarget untuk meminta koneksi dari perangkat pusat yang disambungkan. Pengumuman Bertarget ditentukan dalam BAP dan CAP untuk pengelolaan koneksi sesuai dengan Tabel 8.4 CAP 1.0 (halaman 48/58).

Dukungan Server EATT GATT

EATT memungkinkan perangkat pusat mengirim beberapa transaksi GATT secara paralel saat perangkat disambungkan. Untuk perangkat yang mendukung CSIP, performa koneksi profil akan meningkat, lalu segera memulai prosedur penggabungan CSIP untuk earbud lainnya.

Jika Penyedia bukan satu perangkat, tetapi sekumpulan perangkat yang terkoordinasi dengan penerapan CSIP, untuk mengurangi jumlah waktu penemuan layanan dan mempercepat koneksi, Penyedia harus menerapkan GATT Caching yang ditentukan dalam Bluetooth 5.1.

Persyaratan Sambungan Cepat

LE Advertising

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

Visibilitas Layanan GATT

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

Contoh: Penyandingan dengan Penyedia mode ganda LEA

Skenario 1 - Saat Seeker tidak mendukung LEA

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

Komponen
  • Penyedia: A2DP/HFP/LEA
  • Pencari: A2DP/HFP
Perilaku yang Diharapkan untuk Penyambungan Awal / Penyambungan Berikutnya
  • Penyedia mengiklankan data layanan Sambungan Cepat (0xFE2C) dengan alamat Identitas (awal) atau RPA (berikutnya).
    • Menggunakan Iklan lama
  • Pencari menerima iklan Penyedia dengan alamat Identitas untuk penyambungan awal atau RPA untuk penyambungan berikutnya
  • Pencari mengirimkan permintaan Penyandingan berbasis Kunci
    • Bit-5 flag permintaan Penyandingan Berbasis Kunci disetel ke 0
  • Penyedia mengirimkan respons Penyandingan berbasis Kunci dengan alamat publik dalam salah satu berikut:
    • Jika jenis pesan 0x01 digunakan, alamat 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 koneksi dengan transportasi BR/EDR
    • Kemampuan IO ditetapkan ke DisplayYesNo untuk BR/EDR
  • Pencari dan Penyedia melakukan prosedur verifikasi kunci sandi Sambungan Cepat

Skenario 2 - Jika Seeker mendukung LEA

Komponen
  • Penyedia
    • Mendukung A2DP/HFP/LEA
    • Komponen tunggal
  • Pencari
    • Mendukung A2DP/HFP/LEA
Perilaku yang Diharapkan untuk Penyambungan Awal / Penyambungan Berikutnya
  • Penyedia mengiklankan data layanan Sambungan Cepat (0xFE2C) dengan alamat Identitas (awal) atau RPA (berikutnya).
    • Menggunakan Iklan lama
  • Pencari mengirimkan permintaan Penyandingan berbasis Kunci
    • Bit-5 flag permintaan Penyandingan Berbasis Kunci disetel ke 1
  • Penyedia mengirim respons Penyandingan Berbasis Kunci dengan jenis pesan 0x02
    • Bit-0 harus 0
    • Bit-1 harus 1
    • Alamatnya adalah Alamat identitas
  • Pencari membuat koneksi dengan koneksi LE yang ada di transport LE
    • Arah CTKD adalah dari LE ke BR/EDR
    • Kemampuan IO ditetapkan ke DisplayYesNo untuk LE
  • Pencari dan Penyedia melakukan prosedur verifikasi kunci sandi Sambungan Cepat

Skenario 3 - saat Seeker mendukung LEA dan CSIP terlibat

Komponen
  • Penyedia
    • Mendukung A2DP/HFP/LEA
    • Beberapa komponen
      • Komponen utama adalah BR/EDR/LE
      • Komponen sekunder hanya tersedia di LE
  • Pencari
    • Mendukung A2DP/HFP/LEA
Perilaku yang Diharapkan untuk Penyambungan Awal / Penyambungan Berikutnya
  • Komponen utama mengiklankan data layanan Sambungan Cepat (0xFE2C) dengan alamat Identity (awal) atau RPA (berikutnya).
    • Menggunakan Iklan lama
  • Pencari mengirimkan permintaan Penyandingan berbasis Kunci ke komponen utama
    • Bit-5 flag permintaan Penyandingan Berbasis Kunci disetel ke 1
  • Komponen utama mengirim respons Penyandingan 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 yang dapat diikat untuk komponen sekunder, komponen kedua juga menggunakan alamat ini untuk melakukan pengumuman CSIP
  • Pencari membuat koneksi dengan komponen utama pada koneksi LE yang ada
    • Arah CTKD adalah dari LE ke BR/EDR
    • Kemampuan IO ditetapkan ke DisplayYesNo untuk LE
  • Pencari membuat koneksi dengan komponen sekunder yang alamatnya berasal dari Respons yang Diperluas untuk Penyandingan Berbasis Kunci
    • Kemampuan IO harus DisplayYesNo, jika tidak, tolak permintaan penyambungan
  • Pencari dan Penyedia melakukan prosedur perlindungan MITM untuk menyambungkan komponen sekunder, Penyedia harus menerapkan kedua skenario
  • Pencari menunggu hingga terikat dengan komponen sekunder

Diagram Berurutan 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 diikat oleh baca

Masalah Umum

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

Sebaliknya, kami telah menemukan banyak masalah dengan headset yang mendukung LEA tetapi tidak memiliki penerapan Sambungan Cepat yang benar melalui LEA (yaitu hanya Sambungan Cepat melalui Classic). Secara khusus dan misalnya, saat RPA penyedia tidak dibuat oleh Kunci Penyelesaian Identitas (IRK) yang benar, dan alamat tidak dapat diselesaikan. Meskipun kami belum dapat menguji daftar lengkap konfigurasi headset, pengujian terbatas kami mengungkapkan berbagai masalah, termasuk kegagalan menampilkan notifikasi baterai earbud, kurangnya fungsi Pengalihan Audio (SASS), kegagalan pemasangan awal dan berikutnya yang meluas, dan banyak lagi.

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