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
|
berbeda-beda | Wajib |
| 2 - 7 | uint48 |
Salah satu dari:
|
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
|
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 |
|
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 0x02untuk menunjukkan preferensi penggabungan LE. - Untuk Penyedia mode ganda, Penyedia dapat merespons dengan
type 0x02untuk menunjukkan preferensi penyambungan BR/EDR atau LE.
- Untuk Penyedia khusus LE, responsnya adalah
- 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
|
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
|
| 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
|
| 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
- Penyambungan awal
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.
Penyimpanan dalam Cache yang Andal GATT (Sangat Direkomendasikan)
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.