ข้อกำหนดของอุปกรณ์เสริมเครือข่ายศูนย์การค้นหา

v1.3

ข้อกำหนดอุปกรณ์เสริมของเครือข่ายศูนย์การค้นหา (FHN) จะกำหนดแนวทางที่เข้ารหัสจากต้นทางถึงปลายทาง สำหรับการติดตามอุปกรณ์บลูทูธพลังงานต่ำ (BLE) ที่ส่งสัญญาณบีคอน หน้านี้อธิบาย FHN เป็นส่วนขยายของข้อกำหนด Fast Pair ผู้ให้บริการควรเปิดใช้ส่วนขยายนี้หากมีอุปกรณ์ที่เข้ากันได้กับ FHN และยินดีที่จะเปิดใช้การติดตามตำแหน่งสำหรับอุปกรณ์เหล่านั้น

การจับคู่ด่วนแทน

ข้อกำหนด GATT

ควรเพิ่มลักษณะแอตทริบิวต์ทั่วไป (GATT) ลงใน บริการ Fast Pair โดยมีความหมายดังนี้

ลักษณะของบริการจับคู่ด่วน มีการเข้ารหัส สิทธิ์ UUID
การดำเนินการของ Beacon ไม่ อ่าน เขียน และแจ้งเตือน FE2C1238-8366-4814-8EB0-01DE32100BEA

ตารางที่ 1: ลักษณะของบริการการจับคู่ด่วนสำหรับ FHN

การตรวจสอบสิทธิ์

การดำเนินการที่ส่วนขยายนี้ต้องการจะดำเนินการเป็นการดำเนินการเขียน ซึ่งได้รับการรักษาความปลอดภัยด้วยกลไกการท้าทาย-การตอบกลับ ก่อนที่จะดำเนินการใดๆ ผู้ค้นหาควรดำเนินการอ่านจากลักษณะใน ตารางที่ 1 ซึ่งจะส่งผลให้เกิดบัฟเฟอร์ในรูปแบบต่อไปนี้

Octet ประเภทข้อมูล คำอธิบาย ค่า
0 uint8 หมายเลขเวอร์ชันหลักของโปรโตคอล 0x01
1 - 8 อาร์เรย์ไบต์ หมายเลขแบบใช้ครั้งเดียวที่สุ่ม แตกต่างกันไป

การอ่านแต่ละครั้งควรส่งผลให้ได้ค่า Nonce ที่แตกต่างกัน และค่า Nonce เดียวควรใช้ได้กับการดำเนินการเดียวเท่านั้น ต้องทำให้หมายเลขครั้งใช้ไม่ได้แม้ว่าการดำเนินการจะล้มเหลวก็ตาม

จากนั้น Seeker จะคำนวณคีย์การตรวจสอบสิทธิ์แบบครั้งเดียวเพื่อใช้ในคำขอเขียนที่ตามมา คีย์การตรวจสอบสิทธิ์จะคำนวณตามที่อธิบายไว้ใน ตารางที่ 2 ถึง 5 Seeker ต้องพิสูจน์ความรู้เกี่ยวกับคีย์ต่อไปนี้อย่างน้อย 1 รายการ ทั้งนี้ขึ้นอยู่กับการดำเนินการที่ขอ

การดำเนินการ

รูปแบบของข้อมูลที่เขียนลงในลักษณะจะอยู่ในตารางที่ 2 ถึง 5 เราจะอธิบายรายละเอียดเพิ่มเติมเกี่ยวกับการดำเนินการแต่ละอย่างในส่วนนี้ในภายหลัง

Octet ประเภทข้อมูล คำอธิบาย ค่า
0 uint8 รหัสข้อมูล
  • 0x00: อ่านพารามิเตอร์ของบีคอน
  • 0x01: อ่านสถานะการจัดสรร
  • 0x02: ตั้งค่าคีย์ข้อมูลประจำตัวชั่วคราว
  • 0x03: ล้างคีย์ระบุตัวตนชั่วคราว
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 อาร์เรย์ไบต์ ข้อมูลเพิ่มเติม
  • 0x00: ไม่มี
  • 0x01: ไม่มี
  • 0x02: 32 ไบต์ที่เป็นคีย์ข้อมูลประจำตัวชั่วคราว, AES-ECB-128 เข้ารหัสด้วยคีย์บัญชี หากผู้ให้บริการมีชุดคีย์ข้อมูลประจำตัวชั่วคราวอยู่แล้ว ให้ส่งไบต์แรก 8 ไบต์ของ SHA256(current ephemeral identity key || the last nonce read from the characteristic) ด้วย
  • 0x03: 8 ไบต์แรกของ SHA256(ephemeral identity key || the last nonce read from the characteristic)

ตารางที่ 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 รหัสข้อมูล
  • 0x05: Ring
  • 0x06: อ่านสถานะการโทร
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 อาร์เรย์ไบต์ ข้อมูลเพิ่มเติม
  • 0x05: 4 ไบต์ที่ระบุ สถานะการสั่น ระยะเวลาการสั่น และระดับเสียงการสั่น
  • 0x06: n/a

ตารางที่ 4: คำขอการโทร

Octet ประเภทข้อมูล คำอธิบาย ค่า
0 uint8 รหัสข้อมูล
  • 0x07: เปิดใช้งานโหมดการป้องกันการติดตามที่ไม่พึงประสงค์
  • 0x08: ปิดใช้งานโหมดการป้องกันการติดตามที่ไม่ต้องการ
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 อาร์เรย์ไบต์ ข้อมูลเพิ่มเติม
  • 0x07: 1 ไบต์ของแฟล็กควบคุม (ไม่บังคับ)
  • 0x08: 8 ไบต์แรกของ SHA256(ephemeral identity key || the last nonce read from the characteristic)

ตารางที่ 5: คำขอการป้องกันการติดตามที่ไม่พึงประสงค์

การเขียนที่สำเร็จจะทริกเกอร์การแจ้งเตือนตามที่ระบุไว้ในตารางที่ 6

การแจ้งเตือนที่มีรหัสข้อมูลอื่นนอกเหนือจาก 0x05: การเปลี่ยนแปลงสถานะการโทร ควรส่งก่อนที่ธุรกรรมการเขียนที่ทริกเกอร์การแจ้งเตือนจะเสร็จสมบูรณ์ นั่นคือ ก่อนที่จะส่ง PDU การตอบกลับสำหรับคำขอเขียน

Octet ประเภทข้อมูล คำอธิบาย ค่า
0 uint8 รหัสข้อมูล
  • 0x00: อ่านพารามิเตอร์ของบีคอน
  • 0x01: อ่านสถานะการจัดสรร
  • 0x02: ตั้งค่าคีย์ข้อมูลประจำตัวชั่วคราว
  • 0x03: ล้างคีย์ระบุตัวตนชั่วคราว
  • 0x04: อ่านคีย์ระบุตัวตนชั่วคราวโดยได้รับความยินยอมจากผู้ใช้
  • 0x05: การเปลี่ยนสถานะการโทร
  • 0x06: อ่านสถานะการโทร
  • 0x07: เปิดใช้งานโหมดการป้องกันการติดตามที่ไม่พึงประสงค์
  • 0x08: ปิดใช้งานโหมดการป้องกันการติดตามที่ไม่ต้องการ
1 uint8 ความยาวข้อมูล แตกต่างกันไป
2 - 9 อาร์เรย์ไบต์ การตรวจสอบสิทธิ์ โดยละเอียดต่อการดำเนินการ
10 - var อาร์เรย์ไบต์ ข้อมูลเพิ่มเติม
  • 0x00: 8 ไบต์ที่ระบุ กำลังส่ง ค่านาฬิกา วิธีการเข้ารหัส และความสามารถในการ ส่งเสียงเรียกเข้า เข้ารหัส AES-ECB-128 ด้วยคีย์บัญชี (มีค่า 0)
  • 0x01: 1 ไบต์ที่ระบุสถานะการจัดสรร ตามด้วย รหัสชั่วคราวปัจจุบัน (20 หรือ 32 ไบต์) หากมี
  • 0x04: 32 ไบต์ที่เป็นคีย์ระบุตัวตนชั่วคราว, AES-ECB-128 เข้ารหัสด้วยคีย์บัญชี
  • 0x05: 4 ไบต์ที่ระบุสถานะใหม่และทริกเกอร์สำหรับการเปลี่ยนแปลง
  • 0x06: 3 ไบต์ที่ระบุคอมโพเนนต์ที่กำลังส่งเสียงเรียกเข้าและจำนวน เดซิวินาทีที่เหลือสำหรับการส่งเสียงเรียกเข้า
  • รหัสข้อมูลอื่นๆ ใช้ข้อมูลเพิ่มเติมที่ว่างเปล่า

ตารางที่ 6: การตอบกลับของบริการ Beacon

ตารางที่ 7 แสดงรหัสข้อผิดพลาด GATT ที่การดำเนินการอาจแสดง

รหัส คำอธิบาย หมายเหตุ
0x80 ไม่ได้ตรวจสอบสิทธิ์ แสดงผลในการตอบกลับคำขอเขียนเมื่อการตรวจสอบสิทธิ์ ไม่สำเร็จ (รวมถึงกรณีที่ใช้ Nonce เก่า)
0x81 ค่าไม่ถูกต้อง แสดงผลเมื่อมีการระบุค่าที่ไม่ถูกต้องหรือข้อมูลที่ได้รับมีจำนวนไบต์ที่ไม่คาดคิด
0x82 ไม่มีความยินยอมของผู้ใช้ แสดงผลเพื่อตอบสนองต่อคำขอเขียนที่มีรหัสข้อมูล 0x04: อ่านคีย์ระบุตัวตนชั่วคราวโดยได้รับความยินยอมจากผู้ใช้เมื่ออุปกรณ์ไม่ได้อยู่ในโหมดจับคู่

ตารางที่ 7: รหัสข้อผิดพลาดของ GATT

อ่านพารามิเตอร์ของบีคอน

Seeker สามารถค้นหาพารามิเตอร์ของ Beacon จาก Provider ได้โดยการดำเนินการ เขียนไปยังลักษณะที่ประกอบด้วยคำขอจากตารางที่ 2 ที่มี รหัสข้อมูล 0x00 ผู้ให้บริการจะยืนยันว่าคีย์การตรวจสอบสิทธิ์แบบใช้ครั้งเดียวที่ระบุตรงกับคีย์บัญชีที่จัดเก็บไว้ในอุปกรณ์หรือไม่

หากยืนยันไม่สำเร็จ ผู้ให้บริการจะแสดงข้อผิดพลาดที่ไม่ได้ตรวจสอบสิทธิ์

เมื่อดำเนินการสำเร็จ ผู้ให้บริการจะแจ้งให้ทราบด้วยการตอบกลับจากตารางที่ 6 พร้อมรหัสข้อมูล 0x00 ผู้ให้บริการสร้างกลุ่มข้อมูลดังนี้

Octet ประเภทข้อมูล คำอธิบาย ค่า
0 uint8 กำลังที่ปรับแล้ว กำลังที่ปรับเทียบแล้วตามที่ได้รับที่ 0 ม. (ค่าในช่วง [-100, 20]) แสดงเป็นจำนวนเต็มแบบมีเครื่องหมาย โดยมีความละเอียด 1 dBm
1 - 4 uint32 ค่านาฬิกา ค่านาฬิกาปัจจุบันเป็นวินาที (Big Endian)
5 uint8 การเลือกเส้นโค้ง เส้นโค้งวงรีที่ใช้สำหรับการเข้ารหัส
  • 0x00 (ค่าเริ่มต้น): SECP160R1
  • 0x01: SECP256R1 (ต้องใช้การโฆษณาแบบขยาย)
6 uint8 คอมโพเนนต์ จำนวนคอมโพเนนต์ที่สามารถส่งเสียงเรียกได้:
  • 0x00: ระบุว่าอุปกรณ์ไม่สามารถส่งเสียงได้
  • 0x01: ระบุว่ามีคอมโพเนนต์เดียวเท่านั้นที่สามารถ ส่งเสียงเรียกเข้าได้
  • 0x02: ระบุว่าส่วนประกอบ 2 อย่าง ได้แก่ หูฟังข้างซ้ายและขวา สามารถ ส่งเสียงเรียกเข้าแยกกันได้
  • 0x03: ระบุว่าส่วนประกอบ 3 อย่าง ได้แก่ หูฟังข้างซ้ายและขวา รวมถึงเคส สามารถส่งเสียงเรียกเข้าได้โดยอิสระ
7 uint8 ความสามารถในการโทรเข้า ตัวเลือกที่รองรับมีดังนี้
  • 0x00: การเลือกเสียงเรียกเข้าไม่พร้อมใช้งาน
  • 0x01: มีการเลือกเสียงเรียกเข้า หากตั้งค่าไว้ ผู้ให้บริการต้อง ยอมรับและจัดการระดับเสียง 3 ระดับตามที่ระบุไว้ใน การทำงานของเสียงเรียกเข้า
8-15 อาร์เรย์ไบต์ Padding การเพิ่มค่า 0 สำหรับการเข้ารหัส 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)

อ่านสถานะการจัดสรรของบีคอน

ผู้ค้นหาสามารถค้นหาสถานะการจัดสรรของบีคอนจากผู้ให้บริการได้โดย ทำการเขียนไปยังลักษณะที่ประกอบด้วยคำขอจาก ตารางที่ 2 ที่มีรหัสข้อมูล 0x01 ผู้ให้บริการจะยืนยันว่าคีย์การตรวจสอบสิทธิ์แบบใช้ครั้งเดียวที่ระบุตรงกับคีย์บัญชีที่จัดเก็บไว้ในอุปกรณ์หรือไม่

หากยืนยันไม่สำเร็จ ผู้ให้บริการจะแสดงข้อผิดพลาดว่าไม่มีการตรวจสอบสิทธิ์

เมื่อสำเร็จแล้ว ผู้ให้บริการจะแจ้งให้ทราบด้วยการตอบกลับจากตารางที่ 6 พร้อมรหัสข้อมูล 0x01 ผู้ให้บริการสร้างกลุ่มข้อมูลดังนี้

Octet ประเภทข้อมูล คำอธิบาย ค่า
0 uint8 สถานะการจัดสรร บิตมาสก์ที่มีค่าต่อไปนี้
  • บิต 1 (0x01): ตั้งค่าหากมีการตั้งค่าคีย์ข้อมูลประจำตัวชั่วคราวสำหรับ อุปกรณ์
  • บิต 2 (0x02): ตั้งค่าหากคีย์การตรวจสอบสิทธิ์แบบครั้งเดียวที่ระบุตรงกับคีย์บัญชีเจ้าของ
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 ที่มีข้อมูล ID 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 เอง

หากต้องการอ่าน 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)

การทำงานของ Ring

ผู้ค้นหาขอให้ผู้ให้บริการเล่นเสียงได้โดยดำเนินการเขียน ไปยังลักษณะ ซึ่งประกอบด้วยคำขอจากตารางที่ 4 ที่มีรหัสข้อมูล 0x05 ผู้ให้บริการสร้างกลุ่มข้อมูลดังนี้

Octet ประเภทข้อมูล คำอธิบาย ค่า
0 uint8 การทำงานของ Ring บิตมาสก์ที่มีค่าต่อไปนี้
  • บิตที่ 1 (0x01): ทำให้หูฟังข้างขวาส่งเสียง
  • บิตที่ 2 (0x02): ทำให้หูฟังข้างซ้ายส่งเสียง
  • บิตที่ 3 (0x04): เคสสำหรับ Ring
  • 0xFF: ส่งเสียงเรียกเข้าในคอมโพเนนต์ทั้งหมด
  • 0x00: หยุดการส่งเสียง
1 - 2 uint16 หมดเวลา ระยะหมดเวลาในหน่วยเดซิเซคันด์ ต้องไม่เป็น 0 และต้องไม่ เกิน 10 นาที
ผู้ให้บริการใช้ค่านี้เพื่อกำหนดระยะเวลาที่ควรส่งเสียงเรียกเข้าก่อน ปิดเสียง การหมดเวลาจะลบล้างการหมดเวลาที่มีผลอยู่แล้วหาก คอมโพเนนต์ของอุปกรณ์ดังอยู่

หากตั้งค่าการดำเนินการเรียกเป็น 0x00 ระบบจะไม่สนใจการหมดเวลา
3 uint8 ระดับเสียง
  • 0x00: ค่าเริ่มต้น
  • 0x01: ต่ำ
  • 0x02: ปานกลาง
  • 0x03: สูง
ความหมายที่แน่นอนของค่าเหล่านี้ขึ้นอยู่กับการติดตั้งใช้งาน

เมื่อได้รับคำขอ ผู้ให้บริการจะยืนยันว่า

  • คีย์การตรวจสอบสิทธิ์แบบครั้งเดียวที่ระบุตรงกับคีย์วงแหวน
  • สถานะที่ขอตรงกับคอมโพเนนต์ที่ส่งเสียงได้

หากไม่ได้จัดสรรผู้ให้บริการเป็นบีคอน FHN หรือการยืนยันไม่สำเร็จ ระบบจะแสดงข้อผิดพลาดที่ไม่ได้ตรวจสอบสิทธิ์ อย่างไรก็ตาม หากผู้ให้บริการเปิดใช้การป้องกันการติดตามที่ไม่ต้องการ และคำขอการป้องกันการติดตามที่ไม่ต้องการที่ทริกเกอร์มีการเปิดใช้แฟล็กการตรวจสอบสิทธิ์การข้ามการโทร ผู้ให้บริการควรข้ามการตรวจสอบนั้น ระบบยังคงคาดหวังให้ผู้ค้นหาเป็นผู้ระบุข้อมูลการตรวจสอบสิทธิ์ แต่สามารถตั้งค่าเป็นค่าใดก็ได้

เมื่อการเรียกเข้าเริ่มหรือสิ้นสุด ระบบจะส่งการแจ้งเตือนตามที่ระบุไว้ในตารางที่ 6 พร้อมรหัสข้อมูล 0x05 เนื้อหาของการแจ้งเตือนมีการกำหนดดังนี้

Octet ประเภทข้อมูล คำอธิบาย ค่า
0 uint8 สถานะการโทร
  • 0x00: เริ่มต้น
  • 0x01: เริ่มหรือหยุดไม่สำเร็จ (คอมโพเนนต์ที่ขอทั้งหมดอยู่นอก ช่วง)
  • 0x02: หยุด (หมดเวลา)
  • 0x03: หยุด (กดปุ่ม)
  • 0x04: หยุดแล้ว (คำขอ GATT)
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) ตามลำดับ คำขอนี้จะลบล้างพารามิเตอร์ของสถานะที่มีอยู่ เพื่อให้ขยาย ระยะเวลาการโทรได้

หากผู้ให้บริการมีปุ่มจริง (หรือเปิดใช้การสัมผัส) ปุ่มนั้น ควรหยุดฟังก์ชันการโทรหากกดขณะที่การโทรทำงานอยู่

รับสถานะการส่งเสียงของบีคอน

หากต้องการรับสถานะการส่งเสียงของบีคอน Seeker จะดำเนินการเขียนไปยังลักษณะที่ประกอบด้วยคำขอจากตารางที่ 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 แบบคงที่ชั่วคราว ซึ่งจะช่วยให้ไคลเอ็นต์ตรวจหาอุปกรณ์และเตือนผู้ใช้เกี่ยวกับการติดตามที่ไม่พึงประสงค์ที่อาจเกิดขึ้นได้

หากต้องการเปิดใช้งานหรือปิดใช้งานโหมดการป้องกันการติดตามที่ไม่ต้องการของบีคอน ผู้ค้นหาจะดำเนินการเขียนไปยังลักษณะ ซึ่งประกอบด้วย คำขอจากตารางที่ 5 ที่มีรหัสข้อมูล 0x07 หรือ 0x08 ตามลำดับ

เมื่อเปิดใช้โหมดการป้องกันการติดตามที่ไม่ต้องการ

ผู้ให้บริการสร้างกลุ่มข้อมูลดังนี้

Octet ประเภทข้อมูล คำอธิบาย ค่า
0 uint8 Control Flags
  • 0x01: ข้ามการตรวจสอบสิทธิ์ด้วยการโทร เมื่อตั้งค่าไว้ ระบบจะไม่ตรวจสอบสิทธิ์คำขอการโทรขณะอยู่ในโหมดการป้องกันการติดตามที่ไม่ต้องการ
หากไม่ได้ตั้งค่าสถานะ (ไบต์เป็น 0 ทั้งหมด) คุณจะละเว้นส่วนข้อมูล ทั้งหมดและส่งส่วนข้อมูลที่ว่างเปล่าได้
โดยแฟล็กจะมีผลจนกว่าจะปิดใช้โหมดการป้องกันการติดตามที่ไม่ต้องการ เท่านั้น

ผู้ให้บริการจะยืนยันว่าคีย์การตรวจสอบสิทธิ์แบบครั้งเดียวที่ระบุตรงกับ คีย์การป้องกันการติดตามที่ไม่ต้องการ หากไม่ได้จัดสรรผู้ให้บริการเป็นบีคอน FHN หรือการยืนยันไม่สำเร็จ ระบบจะแสดงข้อผิดพลาดที่ไม่ได้ตรวจสอบสิทธิ์

เมื่อเปิดใช้งานโหมดการป้องกันการติดตามที่ไม่ต้องการ บีคอนควรลด ความถี่ในการหมุนเวียนที่อยู่ส่วนตัวของ MAC เป็น 1 ครั้งต่อ 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)

การค้นหาที่แม่นยำ

ส่วนนี้จะอธิบายรายละเอียดโฟลว์และการดำเนินการเพิ่มเติมที่จำเป็นสำหรับ การค้นหาที่แม่นยำ กฎเดียวกันสำหรับลักษณะ GATT และการตรวจสอบสิทธิ์จะใช้ที่นี่ตามที่กำหนดไว้ในส่วนข้อกำหนดเฉพาะของ GATT การค้นหาที่แม่นยำเป็นฟีเจอร์ที่ไม่บังคับ

ประเภทของการค้นหาที่แม่นยำจะขึ้นอยู่กับประเภทของเทคโนโลยีการวัดระยะ ที่รองรับในอุปกรณ์ที่ใช้การค้นหาที่แม่นยำ ดูเทคโนโลยีการวัดระยะที่รองรับได้ในข้อกําหนดการวัดระยะ: ลําดับข้อความนอกแบนด์และ เพย์โหลด ส่วนต่อๆ ไปจะอธิบายถึงประสบการณ์การค้นหาที่แม่นยำ ซึ่งคาดว่าจะได้รับตามเทคโนโลยีการวัดระยะที่ใช้

ขั้นตอนการค้นหาที่แม่นยำ

ส่วนนี้จะอธิบายโฟลว์ข้อความ FHNA สำหรับการค้นหาที่แม่นยำ รูปที่ 1 แสดงโฟลว์ของข้อความ และย่อหน้าจะอธิบายข้อความแต่ละรายการโดยละเอียด

ขั้นตอนการส่งข้อความการค้นหาที่แม่นยำ

รูปที่ 1 ขั้นตอนการส่งข้อความการค้นหาตำแหน่งที่มีความแม่นยำโดยทั่วไป

อุปกรณ์ผู้เริ่มคืออุปกรณ์ที่มีแอปศูนย์การค้นหาและเป็นอุปกรณ์ที่ใช้ฟีเจอร์การค้นหาที่แม่นยำ ผู้เริ่มคืออุปกรณ์ที่ พยายามค้นหาอุปกรณ์อื่น

อุปกรณ์ตอบกลับคืออุปกรณ์ที่อุปกรณ์เริ่มต้นพยายามค้นหา

อุปกรณ์ Initiator จะส่งข้อความคำขอความสามารถในการวัดระยะไปยังอุปกรณ์ Responder ซึ่งจะแสดงรายการเทคโนโลยีการวัดระยะที่ต้องการ เรียนรู้จากอุปกรณ์ Responder อุปกรณ์ที่ตอบกลับจะตอบกลับ พร้อมการแจ้งเตือนการตอบกลับความสามารถในการวัดระยะ ซึ่งมีข้อมูลเกี่ยวกับ เทคโนโลยีการวัดระยะที่รองรับและความสามารถของเทคโนโลยีเหล่านั้น ผู้ตอบจะระบุเฉพาะข้อมูลที่ผู้เริ่มร้องขอเท่านั้น ระบบจะจัดเรียงรายการความสามารถตามลำดับความสำคัญของเทคโนโลยีการวัดระยะที่อุปกรณ์ตอบรับต้องการ โดยรายการแรกในรายการจะมีลำดับความสำคัญสูงสุด

จากนั้นอุปกรณ์ที่เริ่มจะส่งข้อความการกำหนดค่าการวัดระยะ ซึ่งจะกำหนดค่าสำหรับการวัดระยะแต่ละเทคโนโลยีที่ต้องการ วัดระยะด้วย เมื่อได้รับข้อความนี้ อุปกรณ์ตอบกลับต้องเริ่มวัดระยะ สำหรับเทคโนโลยีที่เกี่ยวข้องโดยใช้การกำหนดค่าที่ระบุ อุปกรณ์ที่ตอบกลับ จะส่งการแจ้งเตือนการตอบกลับการกำหนดค่าการวัดระยะกลับมา ซึ่ง มีการระบุผลลัพธ์ว่าเทคโนโลยีการวัดระยะแต่ละอย่างเริ่มทำงาน สำเร็จหรือไม่ เทคโนโลยีการวัดระยะบางอย่างต้องเริ่มต้นในทั้งอุปกรณ์ Initiator และ Responder เพื่อให้เซสชันการวัดระยะสำเร็จ ในขณะที่ เทคโนโลยีอื่นๆ จำเป็นต้องเริ่มต้นในอุปกรณ์ Initiator เท่านั้น อย่างไรก็ตาม อุปกรณ์ Responder ต้องตอบกลับด้วยผลลัพธ์ที่สำเร็จสำหรับเทคโนโลยีดังกล่าว ดูข้อมูลเพิ่มเติมเกี่ยวกับลักษณะการทำงานของเทคโนโลยีการวัดระยะที่เฉพาะเจาะจงได้ในส่วนถัดไป

เมื่ออุปกรณ์ที่เริ่มพร้อมที่จะหยุดเซสชันการค้นหาที่แม่นยำแล้ว อุปกรณ์จะส่งข้อความหยุดการวัดระยะไปยังอุปกรณ์ที่ตอบกลับ ซึ่งจะระบุเทคโนโลยีการวัดระยะที่ต้องหยุดการวัดระยะ อุปกรณ์ตอบกลับจะตอบกลับด้วยการแจ้งเตือนการตอบกลับการหยุดการวัดระยะ ซึ่งบ่งชี้ว่าหยุดการวัดระยะ ด้วยเทคโนโลยีการวัดระยะที่ขอเรียบร้อยแล้ว

ในกรณีที่ช่องทางการสื่อสาร FHNA BLE GATT ตัดการเชื่อมต่อกลางเซสชันการค้นหาที่แม่นยำ แต่ในขณะที่เทคโนโลยีการวัดระยะบางอย่างยังคงวัดระยะอยู่ อุปกรณ์ตอบกลับจะใช้กลไกการหมดเวลาเพื่อให้แน่ใจว่าอุปกรณ์จะไม่วัดระยะอย่างไม่มีกำหนด รายละเอียดจะขึ้นอยู่กับกรณีการใช้งานแต่ละกรณี

โปรดทราบว่าอุปกรณ์ที่ตอบกลับต้องไม่ถือว่าลำดับการดำเนินการจะเหมือนกันเสมอ เช่น อุปกรณ์ตอบกลับต้องสามารถจัดการการดำเนินการคำขอความสามารถในการวัดระยะหลายรายการติดต่อกัน หรือแม้แต่การดำเนินการกำหนดค่าการวัดระยะโดยตรงโดยไม่มีคำขอความสามารถก่อนหน้า

การดำเนินการค้นหาที่แม่นยำ

ตารางที่ 8 แสดงการดำเนินการ FHNA ที่กำหนดโดยเอกสารนี้ซึ่งจำเป็นสำหรับ การค้นหาที่แม่นยำ ส่วนย่อยแต่ละส่วนจะกำหนดข้อความ FHNA สำหรับการดำเนินการแต่ละอย่าง ขณะที่เนื้อหาของฟิลด์ข้อมูลเพิ่มเติมจะอ้างอิงถึงข้อกำหนดการวัดระยะ: ลำดับข้อความนอกแบนด์และ เพย์โหลด

การดำเนินการ รหัสข้อมูล คำอธิบาย
คำขอความสามารถในการวัดระยะ 0x0A การดำเนินการคำขอความสามารถที่จะส่งจากอุปกรณ์ Initiator ไปยังอุปกรณ์ Responder เนื้อหาข้อมูลของการดำเนินการนี้จะแสดงเทคโนโลยีการวัดระยะทั้งหมดที่ผู้เริ่มต้องการทราบจากอุปกรณ์ผู้ตอบ
การตอบกลับความสามารถในการวัดระยะ 0x0A นี่คือการตอบกลับการแจ้งเตือนสำหรับการดำเนินการคำขอความสามารถในการวัดระยะ มีข้อมูลเกี่ยวกับความสามารถของเทคโนโลยีการวัดระยะที่รองรับแต่ละรายการซึ่งผู้เริ่มขอ
การกำหนดค่าการวัดระยะ 0x0B การดำเนินการกำหนดค่าการวัดระยะประกอบด้วยการกำหนดค่าสำหรับเทคโนโลยีการวัดระยะที่อุปกรณ์ Initiator ต้องการเริ่มการวัดระยะกับอุปกรณ์ Responder
การตอบกลับการกำหนดค่าการวัดระยะ 0x0B นี่คือการตอบกลับการแจ้งเตือนสำหรับการดำเนินการกำหนดค่าการวัดระยะ ซึ่งมีข้อมูลว่าอุปกรณ์ตอบกลับเริ่มการวัดระยะด้วยเทคโนโลยีการวัดระยะที่ขอตามการกำหนดค่าที่ระบุได้สำเร็จหรือไม่
RFU 0x0C ระบบจะไม่ใช้การดำเนินการที่มีรหัสข้อมูลนี้และจะสงวนไว้สำหรับการใช้งานในอนาคต
หยุดการวัดระยะ 0x0D การดำเนินการหยุดการวัดระยะที่อุปกรณ์ Initiator ส่งจะมีข้อมูลเกี่ยวกับเทคโนโลยีการวัดระยะที่อุปกรณ์ Responder ต้องหยุดการวัดระยะด้วย
หยุดการตอบสนองการวัดระยะ 0x0D นี่คือการตอบกลับการแจ้งเตือนสำหรับการดำเนินการหยุดการวัดระยะ ซึ่งมีข้อมูลว่าการดำเนินการหยุดเทคโนโลยีการวัดระยะที่เฉพาะเจาะจงสำเร็จหรือไม่

ตารางที่ 8: การดำเนินการค้นหาที่แม่นยำ

การดำเนินการคำขอความสามารถในการวัดระยะ

ตารางที่ 9 กำหนดข้อความคำขอความสามารถในการวัดระยะ

Octet ประเภทข้อมูล คำอธิบาย ค่า
0 uint8 รหัสข้อมูล 0x0A - การดำเนินการคำขอความสามารถในการวัดระยะ
1 uint8 ความยาวข้อมูล แปรเปลี่ยน
2 อาร์เรย์ไบต์ คีย์การตรวจสอบสิทธิ์แบบครั้งเดียว ไบต์ 8 ตัวแรกของ HMAC-SHA256(คีย์บัญชี, หมายเลขเวอร์ชันหลักของโปรโตคอล || Nonce สุดท้ายที่อ่านจากลักษณะ || รหัสข้อมูล || ความยาวข้อมูล || ข้อมูลเพิ่มเติม)
10 อาร์เรย์ไบต์ ข้อมูลเพิ่มเติม ข้อความคำขอความสามารถในการวัดระยะตามที่กำหนดไว้ในข้อกำหนดการวัดระยะ: ลำดับข้อความและเพย์โหลดนอกแบนด์ (ทั้งส่วนหัวและเพย์โหลด)

ตารางที่ 9: คำขอความสามารถในการวัดระยะ

การดำเนินการตอบกลับความสามารถในการวัดระยะ

ตารางที่ 10 กำหนดข้อความตอบกลับความสามารถในการวัดระยะ

Octet ประเภทข้อมูล คำอธิบาย ค่า
0 uint8 รหัสข้อมูล 0x0A: การตอบกลับความสามารถในการวัดระยะ
1 uint8 ความยาวข้อมูล แปรเปลี่ยน
2 อาร์เรย์ไบต์ คีย์การตรวจสอบสิทธิ์แบบครั้งเดียว ไบต์ 8 ตัวแรกของ HMAC-SHA256(คีย์บัญชี, หมายเลขเวอร์ชันหลักของโปรโตคอล || Nonce ล่าสุดที่อ่านจากลักษณะ || รหัสข้อมูล || ความยาวข้อมูล || ข้อมูลเพิ่มเติม || 0x01)
10 อาร์เรย์ไบต์ ข้อมูลเพิ่มเติม ข้อความการตอบกลับความสามารถในการวัดระยะตามที่กำหนดไว้ในข้อกำหนดการวัดระยะ: ลำดับข้อความและเพย์โหลดนอกแบนด์ (ทั้งส่วนหัวและเพย์โหลด)

ตารางที่ 10: การตอบสนองความสามารถในการวัดระยะ

การดำเนินการกำหนดค่าการวัดระยะ

ตารางที่ 11 กำหนดข้อความการกำหนดค่าการวัดระยะ

Octet ประเภทข้อมูล คำอธิบาย ค่า
0 uint8 รหัสข้อมูล 0x0B - ตั้งค่าการวัดระยะ
1 uint8 ความยาวข้อมูล แปรเปลี่ยน
2 อาร์เรย์ไบต์ คีย์การตรวจสอบสิทธิ์แบบครั้งเดียว ไบต์ 8 ตัวแรกของ HMAC-SHA256(คีย์บัญชี, หมายเลขเวอร์ชันหลักของโปรโตคอล || Nonce สุดท้ายที่อ่านจากลักษณะ || รหัสข้อมูล || ความยาวข้อมูล || ข้อมูลเพิ่มเติม)
10 อาร์เรย์ไบต์ ข้อมูลเพิ่มเติม ข้อความการกำหนดค่าการวัดระยะตามที่กำหนดไว้ในข้อกำหนดการวัดระยะ: ลำดับข้อความและเพย์โหลดนอกแบนด์ (ทั้งส่วนหัวและเพย์โหลด)

ตารางที่ 11: การกำหนดค่าการวัดระยะ

การดำเนินการตอบกลับการกำหนดค่าการวัดระยะ

ตารางที่ 12 กำหนดข้อความตอบกลับการกำหนดค่าการวัดระยะ

Octet ประเภทข้อมูล คำอธิบาย ค่า
0 uint8 รหัสข้อมูล 0x0B - ตั้งค่าการตอบกลับการกำหนดค่าการวัดระยะ
1 uint8 ความยาวข้อมูล แปรเปลี่ยน
2 อาร์เรย์ไบต์ คีย์การตรวจสอบสิทธิ์แบบครั้งเดียว ไบต์ 8 ตัวแรกของ HMAC-SHA256(คีย์บัญชี, หมายเลขเวอร์ชันหลักของโปรโตคอล || Nonce ล่าสุดที่อ่านจากลักษณะ || รหัสข้อมูล || ความยาวข้อมูล || ข้อมูลเพิ่มเติม || 0x01)
10 อาร์เรย์ไบต์ ข้อมูลเพิ่มเติม ข้อความการตอบกลับการกำหนดค่าการวัดระยะตามที่กำหนดไว้ในข้อกำหนดการวัดระยะ: ลำดับข้อความและเพย์โหลดนอกแบนด์ (ทั้งส่วนหัวและเพย์โหลด)

ตารางที่ 12: การตอบกลับการกำหนดค่าการวัดระยะ

หยุดการดำเนินการวัดระยะ

ตารางที่ 13 อธิบายข้อความหยุดการวัดระยะ

Octet ประเภทข้อมูล คำอธิบาย ค่า
0 uint8 รหัสข้อมูล 0x0D - หยุดการวัดระยะ
1 uint8 ความยาวข้อมูล แปรเปลี่ยน
2 อาร์เรย์ไบต์ คีย์การตรวจสอบสิทธิ์แบบครั้งเดียว ไบต์ 8 ตัวแรกของ HMAC-SHA256(คีย์บัญชี, หมายเลขเวอร์ชันหลักของโปรโตคอล || Nonce สุดท้ายที่อ่านจากลักษณะ || รหัสข้อมูล || ความยาวข้อมูล)
10 อาร์เรย์ไบต์ ข้อมูลเพิ่มเติม ข้อความหยุดการวัดระยะตามที่กำหนดไว้ในข้อกำหนดการวัดระยะ: ลำดับข้อความและเพย์โหลดนอกแบนด์ (ทั้งส่วนหัวและเพย์โหลด)

ตารางที่ 13: หยุดการวัดระยะ

หยุดการดำเนินการตอบกลับการวัดระยะ

ตารางที่ 14 กำหนดข้อความการตอบกลับการหยุดการวัดระยะ

Octet ประเภทข้อมูล คำอธิบาย ค่า
0 uint8 รหัสข้อมูล 0x0D - การตอบกลับการหยุดการวัดระยะ
1 uint8 ความยาวข้อมูล แปรเปลี่ยน
2 อาร์เรย์ไบต์ คีย์การตรวจสอบสิทธิ์แบบครั้งเดียว ไบต์ 8 ตัวแรกของ HMAC-SHA256(คีย์บัญชี, หมายเลขเวอร์ชันหลักของโปรโตคอล || Nonce ล่าสุดที่อ่านจากลักษณะ || รหัสข้อมูล || ความยาวข้อมูล || ข้อมูลเพิ่มเติม || 0x01)
10 อาร์เรย์ไบต์ ข้อมูลเพิ่มเติม ข้อความหยุดการตอบกลับการวัดระยะตามที่กำหนดไว้ในข้อกำหนดการวัดระยะ: ลำดับข้อความและเพย์โหลดนอกแบนด์ (ทั้งส่วนหัวและเพย์โหลด)

ตารางที่ 14: การตอบสนองเมื่อหยุดการวัดระยะ

การป้องกันการติดตามที่ไม่พึงประสงค์ด้วยการค้นหาที่แม่นยำ

เมื่อเปิดใช้งานโหมดการป้องกันการติดตามที่ไม่ต้องการตามที่อธิบายไว้ใน ส่วนการป้องกันการติดตามที่ไม่ต้องการ โฟลว์เดียวกันที่ใช้กับการข้าม การตรวจสอบสิทธิ์สำหรับข้อความที่ทำให้เกิดเสียงเรียกเข้าจะใช้กับข้อความการหาตำแหน่งที่แม่นยำทั้งหมดที่กำหนดไว้ในเอกสารนี้สำหรับอุปกรณ์ที่ต้องการรองรับ ฟีเจอร์นี้ด้วย

รายละเอียดเทคโนโลยีการวัดระยะสำหรับการค้นหาที่แม่นยำ

ส่วนนี้มีรายละเอียดที่เกี่ยวข้องกับเทคโนโลยีการวัดระยะ

รายละเอียดเกี่ยวกับแถบความถี่กว้างยิ่งยวด (UWB)

รายละเอียดเฉพาะของ UWB

ระดับการค้นหาที่แม่นยำ

เซสชันการค้นหาที่แม่นยำซึ่งใช้ UWB เป็นเทคโนโลยีการวัดระยะทางจะแสดงข้อมูลทั้งระยะทางและทิศทาง ช่วงการวัดต้องมีระยะเวลาอย่างน้อย 240 มิลลิวินาที โดยแนะนำให้ใช้ 96 มิลลิวินาทีเพื่อให้คำแนะนำที่ดีที่สุด

รหัสการกำหนดค่า

ข้อมูลการกำหนดค่าแบบ Out-of-Band ที่แลกเปลี่ยนสำหรับ UWB ไม่มีชุดพารามิเตอร์ที่กำหนดค่าได้ทั้งหมดซึ่ง UWB ต้องใช้เพื่อเริ่มเซสชันการวัดระยะ UWB ระบบจะเลือกพารามิเตอร์บางอย่างโดยนัยตามรหัสการกำหนดค่าที่เลือก

รหัสการกำหนดค่าแต่ละรายการคือชุดพารามิเตอร์การกำหนดค่า UWB ที่กำหนดไว้ล่วงหน้า ซึ่งมีเอกสารแบบสาธารณะ สำหรับกรณีการใช้งานการค้นหาที่แม่นยำ อุปกรณ์ตอบกลับต้องรองรับ config Id 6 และอาจรองรับ config Id 3

ผู้เริ่มและผู้ตอบ UWB

สำหรับกรณีการใช้งานการค้นหาที่แม่นยำ อุปกรณ์ที่ระบุว่าเป็นอุปกรณ์เริ่มต้นในเอกสารนี้จะเป็นอุปกรณ์ตอบกลับ UWB และอุปกรณ์ที่ระบุว่าเป็นอุปกรณ์ตอบกลับในเอกสารนี้จะเป็นอุปกรณ์เริ่มต้น UWB เนื่องจากอุปกรณ์ที่เริ่มการสื่อสาร UWB จะใช้พลังงานน้อยกว่าอุปกรณ์ที่ตอบสนอง UWB และในกรณีส่วนใหญ่ อุปกรณ์ที่ตอบสนองจะเป็นอุปกรณ์ต่อพ่วงที่มีแบตเตอรี่จำกัด

ซึ่งหมายความว่าอุปกรณ์ตอบกลับต้องระบุว่ารองรับบทบาทผู้เริ่ม UWB ในข้อความการตอบกลับความสามารถในการวัดระยะ

  • ต้องรองรับ Channel 9
  • เราขอแนะนำให้ใช้ช่วงการวัดระยะ 96 มิลลิวินาทีเพื่อให้คำแนะนำที่ดีที่สุด ไม่เช่นนั้นจะต้องรองรับ 240 มิลลิวินาที
  • เราขอแนะนำให้ใช้ระยะเวลาสล็อต 1 มิลลิวินาทีเพื่อประหยัดแบตเตอรี่ แต่ระบบก็รองรับ 2 มิลลิวินาทีด้วย
  • ชิป UWB ต้องเป็นไปตามข้อกำหนดของ FIRA v1.2 + P-STS เป็นอย่างน้อย
  • ต้องใช้ BPRF แต่ขอแนะนำให้ใช้ HPRF แต่ไม่บังคับ โหมดที่รองรับหรือเลือกจะกำหนดโดยดัชนี Preamble ที่รองรับหรือเลือก
  • ประเภทความปลอดภัยของเซสชัน: P-STS
รายละเอียดการตรวจหาช่องสัญญาณ BLE (CS)

รายละเอียดเฉพาะของ BLE CS

ระดับการค้นหาที่แม่นยำ

เซสชันการค้นหาที่แม่นยำที่ใช้ CS เป็นเทคโนโลยีการวัดระยะจะทำให้เกิด การวัดระยะทางเท่านั้น และระบบจะไม่ระบุทิศทางในขณะนี้

การจับคู่อุปกรณ์ที่จำเป็น

เซสชันการค้นหาที่แม่นยำโดยใช้การตรวจหาช่องสัญญาณจะใช้งานไม่ได้หากอุปกรณ์ไม่ได้จับคู่กัน ต้องมีการเชื่อมต่อที่มีอยู่ระหว่างอุปกรณ์ที่เริ่มและอุปกรณ์ที่ตอบ ข้อกำหนดนี้ไม่ได้ระบุวิธีสร้างการเชื่อมต่อระหว่างอุปกรณ์ แต่จะเป็นหน้าที่ของนักพัฒนา Use Case ในการสร้าง การเชื่อมต่อระหว่างอุปกรณ์

การดำเนินการที่ฝั่งผู้ตอบต้องทำสำหรับ CS

ต่างจาก UWB ที่ต้องใช้อุปกรณ์ทั้ง 2 เครื่องเพื่อเรียกใช้ API สำหรับการเริ่มการวัดระยะ UWB และการหยุดการวัดระยะอย่างชัดเจน สำหรับ CS นั้น จำเป็นต้องใช้อุปกรณ์เริ่มต้นเพียงเครื่องเดียวเพื่อเริ่มการวัดระยะ CS โดยการเรียกใช้สแต็กบลูทูธ ส่วนการเริ่มต้นที่เหลือในฝั่งอุปกรณ์ตอบกลับจะเกิดขึ้นในแบนด์โดยใช้บลูทูธ (BT) ซึ่งหมายความว่าเมื่อได้รับข้อความการกำหนดค่าการวัดระยะหรือข้อความหยุดการวัดระยะสำหรับ CS ฝั่งผู้ตอบไม่ต้องดำเนินการใดๆ หากเปิดใช้ BT ไว้ นอกเหนือจาก การตอบกลับด้วยการแจ้งเตือนข้อความการตอบกลับการกำหนดค่าการวัดระยะ อุปกรณ์ตอบกลับอาจใช้ข้อความเหล่านั้นเป็นทริกเกอร์เพื่ออัปเดต UI ในกรณีที่มีหน้าจอ หรือไม่ว่าจะมีหน้าจอหรือไม่ก็ตาม ก็อาจใช้ เพื่อแสดงผลภาพเกี่ยวกับสถานะของอุปกรณ์ได้ เช่น กะพริบไฟ LED ของอุปกรณ์

RTT ของ Wi-Fi NAN

รายละเอียดเฉพาะของ RTT สำหรับ Wi-Fi NAN

ระดับการค้นหาที่แม่นยำ

เซสชันการค้นหาที่แม่นยำซึ่งใช้ Wi-Fi NAN RTT เป็นเทคโนโลยีการวัดระยะจะ ทำให้มีการวัดเฉพาะระยะทางเท่านั้น และระบบจะไม่ระบุทิศทางในขณะนี้

RSSI ของ BLE

รายละเอียดเฉพาะของ BLE RSSI

ระดับการค้นหาที่แม่นยำ

เซสชันการค้นหาที่แม่นยำซึ่งใช้เฉพาะ BLE RSSI เป็นเทคโนโลยีการวัดระยะจะไม่สามารถรับข้อมูลระยะทางหรือทิศทางได้ เนื่องจาก BLE RSSI ไม่ใช่เทคโนโลยีการวัดระยะที่แม่นยำ แต่ผู้ใช้จะเห็นคำแนะนำ ที่ระบุว่าอุปกรณ์อยู่ใกล้หรืออยู่ไกล

เฟรมที่โฆษณา

หลังจากจัดสรรแล้ว ผู้ให้บริการควรโฆษณาเฟรม FHN อย่างน้อย ทุกๆ 2 วินาที หากมีการโฆษณาเฟรมการจับคู่ด่วน ผู้ให้บริการควร สอดแทรกเฟรม FHN ไว้ในการโฆษณาการจับคู่ด่วนปกติ เช่น ทุกๆ 2 วินาที ผู้ให้บริการควรแสดงโฆษณา Fast Pair 7 รายการและโฆษณา FHN 1 รายการ

ควรตั้งค่ากำลังส่งบลูทูธที่ดำเนินการสำหรับการโฆษณา FHN เป็นอย่างน้อย 0 dBm

เฟรม FHN มีคีย์สาธารณะที่ใช้ในการเข้ารหัสรายงานตำแหน่งโดยไคลเอ็นต์ที่รองรับซึ่งมีส่วนร่วมในเครือข่ายการรวบรวมข้อมูล คีย์เส้นโค้งวงรีมี 2 ประเภท ได้แก่ คีย์ 160 บิตที่เหมาะกับเฟรม BLE 4 รุ่นเดิม หรือคีย์ 256 บิตที่ต้องใช้ BLE 5 ที่มีความสามารถในการโฆษณาแบบขยาย การติดตั้งใช้งานของผู้ให้บริการจะเป็นตัวกำหนดว่าจะใช้เส้นโค้งใด

เฟรม FHN มีโครงสร้างดังนี้

Octet ค่า คำอธิบาย
0 0x02 ความยาว
1 0x01 ค่าประเภทข้อมูลของ Flags
2 0x06 ข้อมูลธง
3 0x18 หรือ 0x19 ความยาว
4 0x16 ค่าประเภทข้อมูลของข้อมูลบริการ
5 0xAA UUID ของบริการ 16 บิต
6 0xFE ...
7 0x40 หรือ 0x41 ประเภทเฟรม FHN ที่มีข้อบ่งชี้โหมดการป้องกันการติดตามที่ไม่พึงประสงค์
8..27 ตัวระบุชั่วคราว 20 ไบต์
28 แฟล็กที่แฮช

ตารางที่ 15: เฟรม FHN ที่รองรับเส้นโค้ง 160 บิต

ตารางที่ 16 แสดงออฟเซ็ตไบต์และค่าสำหรับเส้นโค้ง 256 บิต

Octet ค่า คำอธิบาย
0 0x02 ความยาว
1 0x01 ค่าประเภทข้อมูลของ Flags
2 0x06 ข้อมูลธง
3 0x24 หรือ 0x25 ความยาว
4 0x16 ค่าประเภทข้อมูลของข้อมูลบริการ
5 0xAA UUID ของบริการ 16 บิต
6 0xFE ...
7 0x40 หรือ 0x41 ประเภทเฟรม FHN ที่มีข้อบ่งชี้โหมดการป้องกันการติดตามที่ไม่พึงประสงค์
8..39 ตัวระบุชั่วคราวขนาด 32 ไบต์
40 แฟล็กที่แฮช

ตารางที่ 16: เฟรม FHN ที่รองรับเส้นโค้ง 256 บิต

การคำนวณตัวระบุชั่วคราว (EID)

ระบบจะสร้างค่าแบบสุ่มโดยการเข้ารหัส AES-ECB-256 ของโครงสร้างข้อมูลต่อไปนี้ ด้วยคีย์ระบุตัวตนชั่วคราว

Octet ช่อง คำอธิบาย
0 - 10 Padding Value = 0xFF
11 K เลขชี้กำลังของระยะเวลาการหมุนเวียน
12 - 15 TS[0]...TS[3] ตัวนับเวลาของบีคอนในรูปแบบ 32 บิตแบบ Big-Endian ระบบจะล้างบิตที่ต่ำที่สุด K
16 - 26 Padding ค่า = 0x00
27 K เลขชี้กำลังของระยะเวลาการหมุนเวียน
28 - 31 TS[0]...TS[3] ตัวนับเวลาของบีคอนในรูปแบบ 32 บิตแบบ Big-Endian ระบบจะล้างบิตที่ต่ำที่สุด K

ตารางที่ 17: การสร้างตัวเลขสุ่มเทียม

ผลลัพธ์ของการคำนวณนี้คือตัวเลข 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: สงวนไว้ (ตั้งค่าเป็น 0)
  • บิตที่ 5-6 แสดงระดับแบตเตอรี่ของอุปกรณ์ดังนี้
    • 00: ไม่รองรับสัญญาณบอกระดับแบตเตอรี่
    • 01: ระดับแบตเตอรี่ปกติ
    • 10: ระดับแบตเตอรี่ต่ำ
    • 11: ระดับแบตเตอรี่เหลือน้อยมาก (ต้องเปลี่ยนแบตเตอรี่ในเร็วๆ นี้)
  • บิต 7 จะตั้งค่าเป็น 1 หากบีคอนอยู่ในโหมดการป้องกันการติดตามที่ไม่พึงประสงค์ และตั้งค่าเป็น 0 ในกรณีอื่นๆ

หากต้องการสร้างค่าสุดท้ายของไบต์นี้ ระบบจะใช้การดำเนินการ XOR กับไบต์ที่มีนัยสำคัญน้อยที่สุด ของ SHA256(r)

โปรดทราบว่า r ควรปรับให้สอดคล้องกับขนาดของเส้นโค้ง เพิ่มเลขศูนย์เป็นบิตที่สำคัญที่สุด หากการแสดงผลสั้นกว่า 160 หรือ 256 บิต หรือควรตัดบิตที่สำคัญที่สุด หากการแสดงผลยาวกว่า 160 หรือ 256 บิต

หากบีคอนไม่รองรับการระบุระดับแบตเตอรี่และไม่ได้อยู่ในโหมดการป้องกันการติดตามที่ไม่พึงประสงค์ ระบบจะอนุญาตให้ละเว้นไบต์นี้ทั้งหมดจากการโฆษณา

การเข้ารหัสด้วย EID

หากต้องการเข้ารหัสข้อความ m ผู้ที่เห็น (อ่าน Rx จากบีคอน) จะต้องทำดังนี้

  1. เลือกหมายเลขสุ่ม s ใน Fp ตามที่กำหนดไว้ในส่วนการคำนวณ EID
  2. Compute S = s * G
  3. คำนวณ R = (Rx, Ry) โดยการแทนค่าในสมการเส้นโค้งและเลือกค่า Ry ที่กำหนดเองจากผลลัพธ์ที่เป็นไปได้
  4. คำนวณคีย์ AES 256 บิต k = HKDF-SHA256((s * R)x) โดยที่ (s * R)x คือ พิกัด x ของผลลัพธ์การคูณเส้นโค้ง ไม่ได้ระบุเกลือ
  5. ให้ URx และ LRx เป็น 80 บิตบนและล่างของ Rx ตามลำดับในรูปแบบ บิ๊กเอนเดียน ในทำนองเดียวกัน ให้กำหนด USx และ LSx สำหรับ S
  6. Compute nonce = LRx || LSx
  7. Compute (m’, tag) = AES-EAX-256-ENC(k, nonce, m)
  8. ส่ง (URx, Sx, m’, tag) ไปยังเจ้าของ ซึ่งอาจผ่านบริการระยะไกลที่ไม่น่าเชื่อถือ

การถอดรหัสค่าที่เข้ารหัสด้วย EID

ไคลเอ็นต์ของเจ้าของซึ่งมี EIK และเลขชี้กำลังของระยะเวลาการหมุนเวียน จะถอดรหัสข้อความดังนี้

  1. เมื่อพิจารณา URx แล้ว ให้รับค่าตัวนับเวลาของบีคอนที่ URx อิงตาม ซึ่งทำได้โดยไคลเอ็นต์ของเจ้าของจะคำนวณค่า Rx สำหรับเวลาของบีคอน ค่าตัวนับสำหรับอดีตที่ผ่านมาและอนาคตอันใกล้
  2. เมื่อพิจารณาค่าตัวนับเวลาของบีคอนที่ URx อิงอยู่ ให้คํานวณค่าที่คาดการณ์ไว้ของ r ตามที่กําหนดไว้ในส่วนการคํานวณ EID
  3. คำนวณ R = r * G และตรวจสอบว่าตรงกับค่าของ URx ที่ผู้พบเห็นระบุหรือไม่
  4. คำนวณ S = (Sx, Sy) โดยการแทนค่าในสมการเส้นโค้งและเลือกค่า Sy ที่กำหนดเองจากผลลัพธ์ที่เป็นไปได้
  5. คำนวณ k = HKDF-SHA256((r * S)x) โดยที่ (r * S)x คือพิกัด x ของ ผลลัพธ์การคูณเส้นโค้ง
  6. Compute nonce = LRx || LSx
  7. Compute m = AES-EAX-256-DEC(k, nonce, m’, tag)

การหมุนเวียนรหัส

ต้องใช้ที่อยู่ BLE ที่แก้ไขได้ (RPA) หรือแก้ไขไม่ได้ (NRPA) สำหรับ การโฆษณาเฟรม FHN ต้องใช้ RPA สำหรับอุปกรณ์ LE Audio (LEA) และ แนะนำให้ใช้กับอุปกรณ์อื่นๆ ยกเว้นแท็กระบุตำแหน่งที่ไม่ได้ ใช้การเชื่อมต่อ

การโฆษณาการจับคู่ด่วน การโฆษณา FHN และที่อยู่ BLE ที่เกี่ยวข้อง ควรหมุนเวียนพร้อมกัน การหมุนเวียนควรเกิดขึ้นทุกๆ 1,024 วินาทีโดยเฉลี่ย จุดที่แน่นอนซึ่งบีคอนเริ่มโฆษณาตัวระบุใหม่ ต้องสุ่มภายในหน้าต่าง

แนวทางที่แนะนำในการสุ่มเวลาการหมุนเวียนคือการตั้งค่าเป็นเวลาการหมุนเวียนที่คาดการณ์ไว้ถัดไป (หากไม่ได้ใช้การสุ่ม) บวกกับปัจจัยเวลาแบบสุ่มที่เป็นบวกในช่วง 1 ถึง 204 วินาที

เมื่ออุปกรณ์อยู่ในโหมดการปกป้องจากการติดตามที่ไม่พึงประสงค์ ที่อยู่ BLE ของโฆษณา FHN ควรได้รับการแก้ไข แต่ RPA สำหรับโฆษณา FP ที่ค้นหาไม่พบ (เช่น Fast Pair) ต้องหมุนเวียนต่อไป คุณใช้ ที่อยู่ที่แตกต่างกันสำหรับโปรโตคอลต่างๆ ได้

การกู้คืนจากไฟดับ

การแก้ไขตัวระบุชั่วคราวจะเชื่อมโยงอย่างใกล้ชิดกับค่าเวลาเมื่อมีการโฆษณา ดังนั้นผู้ให้บริการจึงควรสามารถกู้คืนค่าเวลาได้หากไฟดับ เราขอแนะนำให้ผู้ให้บริการเขียนค่านาฬิกาปัจจุบันลงในหน่วยความจำแบบไม่ลบเลือนอย่างน้อยวันละครั้ง และเมื่อถึงเวลาบูต ผู้ให้บริการควรตรวจสอบ NVM เพื่อดูว่ามีค่าที่ใช้เริ่มต้นหรือไม่ ตัวแก้ไขของตัวระบุชั่วคราวจะใช้การแก้ไขในช่วงเวลาที่เพียงพอเพื่อให้ทั้งการเลื่อนเวลาที่สมเหตุสมผลและการกู้คืนการสูญเสียพลังงานประเภทนี้

ผู้ให้บริการควรพยายามอย่างเต็มที่เพื่อลดความคลาดเคลื่อนของเวลา เนื่องจาก กรอบเวลาในการแก้ไขมีจำกัด ควรใช้วิธีการซิงค์นาฬิกาเพิ่มเติมอย่างน้อย 1 วิธี (เฟรม Fast Pair ที่ค้นหาไม่ได้สำหรับการโฆษณา หรือการใช้สตรีมข้อความ)

หลักเกณฑ์การใช้งานการจับคู่ด่วน

ส่วนนี้อธิบายลักษณะพิเศษของการติดตั้งใช้งานฟีเจอร์จับคู่ด่วนใน ผู้ให้บริการที่รองรับ FHN

หลักเกณฑ์เฉพาะสำหรับแท็กระบุตำแหน่ง

  • หากจับคู่ผู้ให้บริการแล้ว แต่ไม่ได้จัดสรร FHN ภายใน 5 นาที (หรือหากมีการอัปเดต OTA ขณะที่อุปกรณ์จับคู่แล้วแต่ไม่ได้จัดสรร FHN) ผู้ให้บริการควรกลับไปใช้การกำหนดค่าจากโรงงานและล้างคีย์บัญชีที่จัดเก็บไว้
  • หลังจากจับคู่ผู้ให้บริการแล้ว ผู้ให้บริการไม่ควรเปลี่ยนที่อยู่ MAC จนกว่าจะมีการจัดสรร FHN หรือจนกว่าจะผ่านไป 5 นาที
  • หากล้างคีย์ระบุตัวตนชั่วคราวออกจากอุปกรณ์ อุปกรณ์ควร รีเซ็ตเป็นค่าเริ่มต้นและล้างคีย์บัญชีที่จัดเก็บไว้ด้วย
  • ผู้ให้บริการควรปฏิเสธความพยายามในการจับคู่บลูทูธปกติและยอมรับเฉพาะการจับคู่ Fast Pair
  • ผู้ให้บริการต้องมีกลไกที่ช่วยให้ผู้ใช้หยุด การโฆษณาชั่วคราวได้โดยไม่ต้องรีเซ็ตอุปกรณ์เป็นค่าเริ่มต้น (เช่น การกดปุ่ม หลายปุ่มพร้อมกัน)
  • หลังจากไฟดับ อุปกรณ์ควรประกาศเฟรม Fast Pair ที่ค้นหาไม่ได้ จนกว่าจะมีการเรียกใช้อ่านพารามิเตอร์ของบีคอนครั้งถัดไป ซึ่งจะช่วยให้ Seeker ตรวจหาอุปกรณ์และซิงค์ นาฬิกาได้แม้ว่านาฬิกาจะคลาดเคลื่อนอย่างมากก็ตาม
  • เมื่อโฆษณาเฟรมการจับคู่ด่วนที่ค้นหาไม่ได้ คุณไม่ควรเปิดใช้ข้อบ่งชี้ UI
  • ไม่ควรโฆษณาเฟรมการจับคู่ด่วนที่ค้นพบได้ในขณะที่ผู้ให้บริการ ได้รับการจัดสรรสำหรับ FHN
  • ผู้ให้บริการไม่ควรเปิดเผยข้อมูลที่ระบุตัวตนในลักษณะที่ไม่ได้ตรวจสอบสิทธิ์ (เช่น ชื่อหรือตัวระบุ)

หลักเกณฑ์เฉพาะสำหรับอุปกรณ์บลูทูธคลาสสิก

ส่วนนี้อธิบายลักษณะพิเศษของอุปกรณ์บลูทูธคลาสสิกที่รองรับ FHN

การจัดสรร FHN ของอุปกรณ์ที่จับคู่แล้ว

ผู้ให้บริการไม่ได้จัดสรร FHN เสมอไปเมื่อจับคู่กับผู้ค้นหา แต่จะจัดสรรหลังจากนั้นสักพัก ในกรณีดังกล่าว ผู้ให้บริการอาจไม่มีที่อยู่ BLE MAC ที่อัปเดตแล้วซึ่งจำเป็นต่อการสร้างการเชื่อมต่อ GATT ผู้ให้บริการต้อง รองรับวิธีต่อไปนี้อย่างน้อย 1 วิธีเพื่อให้ผู้ค้นหาได้รับที่อยู่ BLE ขณะที่จับคู่แล้ว

  • ผู้ให้บริการสามารถโฆษณาข้อมูลบัญชี Fast Pair เป็นระยะๆ ซึ่งจะช่วยให้ผู้ค้นหาพบที่อยู่ BLE ผ่านการสแกน BLE
    แนวทางนี้เหมาะสำหรับผู้ให้บริการที่ไม่ได้ใช้สตรีมข้อความ
  • ผู้ให้บริการสามารถให้ข้อมูลนี้ผ่านสตรีมข้อความการจับคู่ด่วนผ่านบลูทูธคลาสสิกได้
    วิธีนี้เหมาะสำหรับผู้ให้บริการที่ไม่โฆษณาเฟรมการจับคู่ด่วนขณะ เชื่อมต่อกับผู้ค้นหาผ่านบลูทูธ

การรองรับทั้ง 2 วิธีจะช่วยเพิ่มโอกาสที่ผู้ใช้จะจัดสรรอุปกรณ์สำหรับ FHN ได้

สตรีมข้อความการจับคู่ด่วน

ผู้ให้บริการสามารถใช้สตรีมข้อความการจับคู่ด่วนและใช้เพื่อแจ้งให้ ผู้ค้นหาทราบเกี่ยวกับข้อมูลอุปกรณ์ การใช้สตรีมข้อความจะช่วยให้ ฟีเจอร์บางอย่างทำงานได้ตามที่อธิบายไว้ในส่วนนี้

ผู้ให้บริการควรส่งข้อความข้อมูลอุปกรณ์ทุกครั้งที่สร้างช่อง RFCOMM ของสตรีมข้อความ

เวอร์ชันเฟิร์มแวร์ (รหัสข้อมูลอุปกรณ์ 0x09) และความสามารถในการติดตาม

เมื่อการอัปเดตเฟิร์มแวร์เพิ่มการรองรับ FHN ให้กับผู้ให้บริการ Seeker ที่เชื่อมต่อจะ แจ้งให้ผู้ใช้ทราบและเสนอการจัดสรร มิฉะนั้น ผู้ใช้จะต้อง ไปที่รายการอุปกรณ์บลูทูธด้วยตนเองเพื่อเริ่มการจัดสรร FHN

หากต้องการอนุญาตดังกล่าว ผู้ให้บริการควรใช้พร็อพเพอร์ตี้เวอร์ชันเฟิร์มแวร์ (รหัส 0x09) เพื่อรายงานค่าสตริงที่แสดงเวอร์ชันเฟิร์มแวร์ นอกจากนี้ ผู้ให้บริการควรสนับสนุนโปรโตคอลที่ช่วยให้ผู้ค้นหารับทราบการเปลี่ยนแปลงความสามารถเนื่องจากการอัปเดตเฟิร์มแวร์

Octet ประเภทข้อมูล คำอธิบาย ค่า
0 uint8 เหตุการณ์ข้อมูลอุปกรณ์ 0x03
1 uint8 เวอร์ชันเฟิร์มแวร์ 0x09
2 - 3 uint16 ความยาวข้อมูลเพิ่มเติม แตกต่างกันไป
var อาร์เรย์ไบต์ สตริงเวอร์ชัน แตกต่างกันไป

ตารางที่ 18: เหตุการณ์ข้อมูลอุปกรณ์: อัปเดตเวอร์ชันเฟิร์มแวร์

เมื่อได้รับคำขออัปเดตความสามารถ (0x0601) หากผู้ให้บริการเปิดใช้ การรองรับการติดตาม FHN ผู้ให้บริการควรตอบกลับตามที่แสดงในตารางที่ 12

Octet ประเภทข้อมูล คำอธิบาย ค่า
0 uint8 เหตุการณ์การซิงค์ความสามารถของอุปกรณ์ 0x06
1 uint8 การติดตาม FHN 0x03
2 - 3 uint16 ความยาวข้อมูลเพิ่มเติม 0x0007
4 uint8 สถานะการจัดสรร FHN 0x00 หากไม่ได้จัดสรร 0x01 หากจัดสรรโดยบัญชีใดก็ตาม
5 - 10 อาร์เรย์ไบต์ ที่อยู่ MAC ของ BLE ปัจจุบันของอุปกรณ์ แตกต่างกันไป

ตารางที่ 19: เหตุการณ์การซิงค์ความสามารถของอุปกรณ์: เพิ่มความสามารถในการติดตาม

ตัวระบุชั่วคราวปัจจุบัน (รหัสข้อมูลอุปกรณ์ 0x0B)

ผู้ให้บริการสามารถใช้ตัวระบุชั่วคราวปัจจุบัน (รหัส 0x0B) เพื่อรายงาน ค่า EID และค่านาฬิกาปัจจุบันเมื่อมีการจัดสรรผู้ให้บริการสำหรับ FHN เพื่อ ซิงค์ Seeker ในกรณีที่นาฬิกาคลาดเคลื่อน (เช่น แบตเตอรี่หมด) ไม่เช่นนั้น Seeker จะเริ่มการเชื่อมต่อที่มีราคาแพงกว่าและเชื่อถือได้น้อยกว่า เพื่อจุดประสงค์นี้

Octet ประเภทข้อมูล คำอธิบาย ค่า
0 uint8 เหตุการณ์ข้อมูลอุปกรณ์ 0x03
1 uint8 ตัวระบุชั่วคราวปัจจุบัน 0x0B
2 - 3 uint16 ความยาวข้อมูลเพิ่มเติม 0x0018 หรือ 0x0024
4 - 7 อาร์เรย์ไบต์ ค่านาฬิกา ตัวอย่าง: 0x13F9EA80
8 - 19 หรือ 31 อาร์เรย์ไบต์ EID ปัจจุบัน ตัวอย่าง: 0x1122334455667788990011223344556677889900

ตารางที่ 20: เหตุการณ์ข้อมูลอุปกรณ์: การซิงค์นาฬิกา

รีเซ็ตเป็นค่าเริ่มต้น

สำหรับอุปกรณ์ที่รองรับการรีเซ็ตเป็นค่าเริ่มต้น หากมีการรีเซ็ตเป็นค่าเริ่มต้น ผู้ให้บริการต้องหยุดการส่งสัญญาณบีคอนและล้างคีย์ข้อมูลประจำตัวชั่วคราวและคีย์บัญชีทั้งหมดที่จัดเก็บ รวมถึงคีย์บัญชีของเจ้าของ

หลังจากรีเซ็ตเป็นค่าเริ่มต้น (ด้วยตนเองหรือแบบเป็นโปรแกรม) ผู้ให้บริการไม่ควร เริ่มโฆษณา Fast Pair ทันที เพื่อป้องกันไม่ให้ขั้นตอนการจับคู่เริ่ม ทันทีหลังจากที่ผู้ใช้ลบอุปกรณ์

การป้องกันการติดตามที่ไม่พึงประสงค์

อุปกรณ์ FHN ที่ได้รับการรับรองต้องเป็นไปตามข้อกำหนดในเวอร์ชันการใช้งานของข้อกำหนดข้ามแพลตฟอร์มสำหรับ การตรวจหาอุปกรณ์ติดตามที่ไม่พึงประสงค์ (DULT) ด้วย

หลักเกณฑ์ที่เกี่ยวข้องซึ่งเฉพาะเจาะจงสำหรับ FHN เพื่อให้เป็นไปตามข้อกำหนดของ DULT

  • อุปกรณ์ที่รองรับ FHN ต้องลงทะเบียนใน Nearby Device Console และเปิดใช้ความสามารถ "ค้นหาฮับ"
  • อุปกรณ์ต้องใช้บริการและลักษณะของอุปกรณ์เสริมที่ไม่ใช่เจ้าของ ที่กำหนดไว้ในเวอร์ชันการใช้งานของข้อกำหนด DULT ซึ่งรวมถึง การดำเนินการข้อมูลอุปกรณ์เสริมและการควบคุมสำหรับผู้ที่ไม่ใช่เจ้าของ
  • ในช่วงที่เข้ากันได้แบบย้อนหลังตามที่ระบุไว้ในข้อกำหนด DULT จะไม่มีการเปลี่ยนแปลงเฟรมที่โฆษณาตามที่ระบุไว้ในเอกสารนี้
  • "โหมดการป้องกันการติดตามที่ไม่ต้องการ" ที่กำหนดไว้ในเอกสารนี้จะสอดคล้องกับ "สถานะแยก" ที่กำหนดไว้ในข้อกำหนดของ DULT
  • หลักเกณฑ์ในการใช้ Opcode Accessory Information มีดังนี้
    • Get_Product_Data ควรแสดงรหัสโมเดลที่คอนโซลระบุ โดยมีค่าเป็น 0 เพื่อรองรับข้อกำหนด 8 ไบต์ เช่น รหัสโมเดล 0xFFFFFF จะ แสดงเป็น 0x0000000000FFFFFF
    • Get_Manufacturer_Name และ Get_Model_Name ควรตรงกับค่าที่ระบุไว้ใน คอนโซล
    • Get_Accessory_Category สามารถแสดงค่า "อุปกรณ์ติดตามตำแหน่ง" ทั่วไปได้หากไม่มีหมวดหมู่อื่นที่เหมาะกับประเภทของอุปกรณ์มากกว่า
    • Get_Accessory_Capabilities ต้องระบุการรองรับการส่งเสียงรวมถึง การค้นหารหัส BLE
    • Get_Network_ID ควรแสดงตัวระบุของ Google (0x02)
  • หลักเกณฑ์ในการใช้ Opcode 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 ซึ่งเข้ารหัสฐาน 16 เป็นพารามิเตอร์ e
    • ในฐานะพารามิเตอร์ pid ให้ใช้การตอบกลับเดียวกันกับที่สร้างขึ้นสำหรับ Get_Product_Data ที่เข้ารหัสฐาน 16
  • อุปกรณ์ต้องมีตัวสร้างเสียงและรองรับ ฟังก์ชันการโทร ตามข้อกำหนดของ DULT ผู้ส่งเสียงต้องส่งเสียงที่มีความดังสูงสุดอย่างน้อย 60 โฟนตามที่กำหนดโดย ISO 532-1:2017
  • หลักเกณฑ์ในการใช้ Opcode Sound_Start
    • คำสั่งควรทำให้คอมโพเนนต์ที่พร้อมใช้งานทั้งหมดส่งเสียงเรียก
    • ควรใช้ระดับเสียงสูงสุดที่รองรับ
    • ระยะเวลาการสั่นที่แนะนำคือ 12 วินาที
  • แท็กระบุตำแหน่งต้องมีกลไกที่ช่วยให้ผู้ใช้หยุด การโฆษณาชั่วคราวได้โดยไม่ต้องรีเซ็ตอุปกรณ์เป็นค่าเริ่มต้น (เช่น การกดปุ่ม หลายปุ่มพร้อมกัน)
    • ต้องบันทึกวิธีการปิดใช้ใน URL ที่เผยแพร่ต่อสาธารณะ และส่งให้ Google เป็นข้อกำหนดสำหรับการรับรอง และอย่างน้อย 10 วันก่อนการอัปเดตหรือแก้ไขวิธีการ
    • URL ควรจะรองรับการแปล ระบบจะระบุภาษาเป็นพารามิเตอร์การค้นหา ("hl=en") หรือใช้ส่วนหัว HTTP "accept-language" โดยขึ้นอยู่กับไคลเอ็นต์

หลักเกณฑ์ของโปรโตคอลที่สลับได้

  • ควรใช้โปรโตคอลเพียง 1 รายการในแต่ละครั้ง ตรวจสอบว่ามีเครือข่ายไม่เกิน 1 เครือข่ายที่ทำงานบนอุปกรณ์พร้อมกันได้ ข้อกำหนดนี้จำเป็น เพื่อให้มั่นใจว่าไม่มีการผสมข้อมูลผู้ใช้ที่ละเอียดอ่อนระหว่างโปรโตคอลต่างๆ
  • ขอแนะนำให้รวมเวิร์กโฟลว์การฮาร์ดรีเซ็ตไว้ในอุปกรณ์ ซึ่งจะช่วยให้ผู้ใช้ตั้งค่าอุปกรณ์อีกครั้งด้วยเครือข่ายอื่นได้
  • กระบวนการอัปเดตอุปกรณ์เป็นเครือข่ายควรใช้งานง่ายและ เป็นธรรมระหว่างเครือข่าย ผู้ใช้ต้องเลือกเครือข่ายที่ต้องการใช้ได้โดยไม่ต้องให้ความสำคัญกับเครือข่ายใดเครือข่ายหนึ่ง เวิร์กโฟลว์นี้ต้องได้รับการอนุมัติจากทีม Google

การอัปเดตเฟิร์มแวร์

พาร์ทเนอร์ควรจัดการกระบวนการและการเผยแพร่การอัปเดต OTA โดยใช้เวิร์กโฟลว์แอปบนอุปกรณ์เคลื่อนที่หรือเว็บของตนเอง

การจับคู่ด่วนรองรับการส่งการแจ้งเตือนให้ผู้ใช้ทราบเกี่ยวกับการอัปเดต OTA ที่พร้อมใช้งาน หากต้องการใช้กลไกนี้ ให้ทำดังนี้

หากต้องการป้องกันการติดตาม ควรจำกัดการเข้าถึงลักษณะการแก้ไขเฟิร์มแวร์ Seeker จะอ่านสถานะการจัดสรรและระบุคีย์การตรวจสอบสิทธิ์ก่อนตามที่กำหนดไว้ในข้อกำหนดนี้ แล้วจึงอ่านการแก้ไขเฟิร์มแวร์ ซึ่งจะดำเนินการผ่านการเชื่อมต่อเดียวกัน หากมีการพยายามอ่านการแก้ไขเฟิร์มแวร์ และไม่ได้เชื่อมต่อผู้ให้บริการหรือการดำเนินการที่ผ่านการตรวจสอบสิทธิ์ไม่สำเร็จผ่านการเชื่อมต่อเดียวกันนั้น ผู้ให้บริการควรแสดงข้อผิดพลาดที่ไม่ได้ตรวจสอบสิทธิ์

ความเข้ากันได้

ต้องเปิดบริการตำแหน่งและบลูทูธจึงจะใช้เครือข่ายศูนย์การค้นหาได้ ต้องมีบริการเครือข่ายมือถือหรือการเชื่อมต่ออินเทอร์เน็ต ใช้งานได้บน Android 9 ขึ้นไปและสำหรับผู้ใช้ที่อายุถึงเกณฑ์ในบางประเทศ

บันทึกการเปลี่ยนแปลง

เวอร์ชัน FHN วันที่ ความคิดเห็น
v1 การเปิดตัวข้อกำหนด FHN ครั้งแรกสำหรับการทดลองใช้ก่อนเปิดตัว
v1.1 Feb 2023
  • เพิ่มข้อบ่งชี้ข้อความธรรมดาของโหมดการปกป้องการติดตามที่ไม่พึงประสงค์
  • เพิ่มตัวเลือกเพื่อข้ามการตรวจสอบสิทธิ์ของคำขอการโทรขณะอยู่ในโหมด การป้องกันการติดตามที่ไม่ต้องการ
v1.2 เม.ย. 2023
  • อัปเดตคำจำกัดความของ AK ของเจ้าของ
  • เพิ่มคำแนะนำสำหรับการกู้คืนจากไฟฟ้าดับในแท็กตัวระบุตำแหน่ง
  • เพิ่มคำอธิบายเกี่ยวกับการสุ่มที่อยู่ MAC
  • เพิ่มคำชี้แจงเกี่ยวกับการหมุนเวียนที่อยู่ MAC ขณะอยู่ในโหมดการป้องกันการติดตามที่ไม่พึงประสงค์
  • เพิ่มหลักเกณฑ์เกี่ยวกับการมีวิธีปิดใช้งานแท็กตัวระบุตำแหน่ง
v1.3 ธ.ค. 2023
  • เพิ่มคำชี้แจงเกี่ยวกับการระบุข้อมูลที่เปิดเผย โดยแท็กระบุตำแหน่ง
  • เพิ่มข้อกำหนดในการใช้ข้อกำหนดการป้องกันการติดตามที่ไม่ต้องการ
  • เพิ่มหลักเกณฑ์สำหรับอุปกรณ์ที่เปลี่ยนโปรโตคอลได้