Thông số kỹ thuật của phụ kiện mạng Tìm thiết bị của tôi

v1.3

Thông số kỹ thuật của phụ kiện Mạng Tìm thiết bị của tôi (FMDN) xác định một phương pháp mã hoá đầu cuối để theo dõi các thiết bị Bluetooth năng lượng thấp (BLE) phát tín hiệu. Trang này mô tả FMDN là một phần mở rộng của quy cách ghép nối nhanh. Nhà cung cấp nên bật tiện ích này nếu họ có các thiết bị tương thích với FMDN và sẵn sàng bật tính năng theo dõi vị trí cho các thiết bị đó.

Quy cách GATT

Bạn nên thêm một thuộc tính chung (GATT) bổ sung vào Dịch vụ ghép nối nhanh với ngữ nghĩa sau:

Đặc điểm của Dịch vụ ghép nối nhanh Đã mã hóa Quyền mã nhận dạng duy nhất (UUID)
Hành động của beacon Không Đọc, ghi và thông báo FE2C1238-8366-4814-8EB0-01DE32100BEA

Bảng 1: Đặc điểm của Dịch vụ ghép nối nhanh của FMDN.

Xác thực

Các thao tác mà tiện ích này yêu cầu được thực hiện dưới dạng thao tác ghi, được bảo mật bằng cơ chế thách thức-phản hồi. Trước khi thực hiện bất kỳ thao tác nào, Trình tìm kiếm dự kiến sẽ thực hiện thao tác đọc từ đặc điểm trong bảng 1, dẫn đến một vùng đệm ở định dạng sau:

Octet Loại dữ liệu Mô tả Giá trị
0 uint8 Số phiên bản lớn của giao thức 0x01
1–8 mảng byte Số chỉ dùng một lần ngẫu nhiên thay đổi

Mỗi thao tác đọc sẽ dẫn đến một số chỉ dùng một lần khác và một số chỉ dùng một lần chỉ hợp lệ với một thao tác. Số chỉ dùng một lần phải có hiệu lực ngay cả khi thao tác không thành công.

Sau đó, Trình tìm kiếm sẽ tính toán khoá xác thực một lần để dùng trong yêu cầu ghi tiếp theo. Khoá xác thực được tính như mô tả trong bảng 2 đến 5. Tuỳ thuộc vào thao tác được yêu cầu, Trình tìm kiếm sẽ chứng minh kiến thức về một hoặc nhiều khoá sau:

Hoạt động tính toán

Định dạng của dữ liệu được ghi vào đặc điểm được đưa ra trong bảng 2 đến bảng 5. Mỗi thao tác sẽ được thảo luận chi tiết hơn ở phần sau của phần này.

Octet Loại dữ liệu Mô tả Giá trị
0 uint8 Mã dữ liệu
  • 0x00: Đọc tham số beacon
  • 0x01: Đọc trạng thái cấp phép
  • 0x02: Đặt khoá nhận dạng tạm thời
  • 0x03: Xoá khoá danh tính tạm thời
1 uint8 Độ dài dữ liệu thay đổi
2 đến 9 mảng byte Khoá xác thực một lần 8 byte đầu tiên của HMAC-SHA256(account key, protocol major version number || the last nonce read from the characteristic || data ID || data length || additional data)
10 – var mảng byte Dữ liệu bổ sung
  • 0x00: không áp dụng
  • 0x01: không áp dụng
  • 0x02: 32 byte là khoá nhận dạng tạm thời, AES-ECB-128 được mã hoá bằng khoá tài khoản. Nếu Nhà cung cấp đã có một khoá nhận dạng tạm thời, hãy gửi cả 8 byte đầu tiên của SHA256(current ephemeral identity key || the last nonce read from the characteristic)
  • 0x03: 8 byte đầu tiên của SHA256(ephemeral identity key || the last nonce read from the characteristic)

Bảng 2: Yêu cầu cấp phép báo hiệu.

Octet Loại dữ liệu Mô tả Giá trị
0 uint8 Mã dữ liệu 0x04: Đọc khoá nhận dạng tạm thời khi có sự đồng ý của người dùng
1 uint8 Độ dài dữ liệu 0x08
2 đến 9 mảng byte Khoá xác thực một lần 8 byte đầu tiên của HMAC-SHA256(recovery key, protocol major version number || the last nonce read from the characteristic || data ID || data length)

Bảng 3: Báo hiệu yêu cầu khôi phục khoá cấp phép.

Octet Loại dữ liệu Mô tả Giá trị
0 uint8 Mã dữ liệu
  • 0x05: Nhẫn
  • 0x06: Đọc trạng thái chuông
1 uint8 Độ dài dữ liệu thay đổi
2 đến 9 mảng byte Khoá xác thực một lần 8 byte đầu tiên của HMAC-SHA256(ring key, protocol major version number || the last nonce read from the characteristic || data ID || data length || additional data)
10 – var mảng byte Dữ liệu bổ sung
  • 0x05: 4 byte cho biết trạng thái chuông, thời lượng chuông và âm lượng chuông.
  • 0x06: không áp dụng

Bảng 4: Yêu cầu chuông.

Octet Loại dữ liệu Mô tả Giá trị
0 uint8 Mã dữ liệu
  • 0x07: Kích hoạt chế độ chống theo dõi không mong muốn
  • 0x08: Huỷ kích hoạt chế độ bảo vệ khỏi hoạt động theo dõi không mong muốn
1 uint8 Độ dài dữ liệu thay đổi
2–9 mảng byte Khoá xác thực một lần 8 byte đầu tiên của 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 mảng byte Dữ liệu bổ sung
  • 0x07: 1 byte cờ điều khiển (không bắt buộc)
  • 0x08: 8 byte đầu tiên của SHA256(ephemeral identity key || the last nonce read from the characteristic)

Bảng 5: Yêu cầu chống theo dõi không mong muốn.

Các lượt ghi thành công sẽ kích hoạt thông báo như được liệt kê trong bảng 6.

Bạn nên gửi thông báo có mã nhận dạng dữ liệu khác với 0x05: Thay đổi trạng thái chuông trước khi giao dịch ghi kích hoạt thông báo hoàn tất, tức là trước khi gửi PDU phản hồi cho yêu cầu ghi.

Octet Loại dữ liệu Mô tả Giá trị
0 uint8 Mã dữ liệu
  • 0x00: Đọc tham số beacon
  • 0x01: Đọc trạng thái cấp phép
  • 0x02: Đặt khoá nhận dạng tạm thời
  • 0x03: Xoá khoá nhận dạng tạm thời
  • 0x04: Đọc khoá nhận dạng tạm thời khi có sự đồng ý của người dùng
  • 0x05: Thay đổi trạng thái chuông
  • 0x06: Đọc trạng thái chuông
  • 0x07: Kích hoạt chế độ bảo vệ khỏi hoạt động theo dõi không mong muốn
  • 0x08: Huỷ kích hoạt chế độ bảo vệ khỏi hoạt động theo dõi không mong muốn
1 uint8 Độ dài dữ liệu thay đổi
2 đến 9 mảng byte Xác thực Chi tiết theo hoạt động
10 – var mảng byte Dữ liệu bổ sung
  • 0x00: 8 byte cho biết cường độ truyền, giá trị xung nhịp, phương thức mã hoá và chức năng chuông, AES-ECB-128 được mã hoá bằng khoá tài khoản (được thêm số 0 vào cuối)
  • 0x01: 1 byte cho biết trạng thái cấp phép, theo sau là mã nhận dạng tạm thời hiện tại (20 hoặc 32 byte) nếu có
  • 0x04: 32 byte là khoá nhận dạng tạm thời, AES-ECB-128 được mã hoá bằng khoá tài khoản
  • 0x05: 4 byte cho biết trạng thái mới và kích hoạt thay đổi
  • 0x06: 3 byte cho biết các thành phần đang đổ chuông và số thập phân giây còn lại để đổ chuông
  • Mã nhận dạng dữ liệu khác sử dụng dữ liệu bổ sung trống

Bảng 6: Phản hồi dịch vụ beacon.

Bảng 7 liệt kê các mã lỗi GATT có thể xảy ra do các thao tác trả về.

Mô tả Ghi chú
0x80 Chưa được xác thực Được trả về để phản hồi yêu cầu ghi khi xác thực không thành công (bao gồm cả trường hợp sử dụng số chỉ dùng một lần cũ).
0x81 Giá trị không hợp lệ Được trả về khi bạn cung cấp bất kỳ giá trị không hợp lệ nào hoặc dữ liệu nhận được có số byte ngoài dự kiến.
0x82 Không có sự đồng ý của người dùng Được trả về để phản hồi yêu cầu ghi có mã nhận dạng dữ liệu 0x04: Đọc khoá nhận dạng tạm thời khi có sự đồng ý của người dùng khi thiết bị không ở chế độ ghép nối.

Bảng 7: Mã lỗi GATT.

Đọc thông số của beacon

Trình tìm kiếm có thể truy vấn Trình cung cấp về các tham số của beacon bằng cách thực hiện thao tác ghi vào đặc điểm bao gồm một yêu cầu từ bảng 2 với mã nhận dạng dữ liệu là 0x00. Nhà cung cấp xác minh rằng khoá xác thực một lần đã cung cấp khớp với bất kỳ khoá tài khoản nào được lưu trữ trên thiết bị.

Nếu không xác minh được, Nhà cung cấp sẽ trả về lỗi không xác thực.

Khi thành công, Nhà cung cấp thông báo bằng một phản hồi từ bảng 6 với mã nhận dạng dữ liệu 0x00. Nhà cung cấp tạo phân khúc dữ liệu như sau:

Octet Loại dữ liệu Mô tả Giá trị
0 uint8 Công suất đã hiệu chỉnh Công suất được hiệu chỉnh như đã nhận được ở 0m (một giá trị trong phạm vi [-100, 20]). Được biểu thị dưới dạng số nguyên có dấu, với độ phân giải 1 dBm.
1 – 4 uint32 Giá trị đồng hồ Giá trị đồng hồ hiện tại tính bằng giây (bigian).
5 uint8 Chọn đường cong Đường cong elip đang được dùng để mã hoá:
  • 0x00 (mặc định): SECP160R1
  • 0x01: SECP256R1 (yêu cầu quảng cáo mở rộng)
6 uint8 Thành phần Số lượng thành phần có khả năng đổ chuông:
  • 0x00: Cho biết thiết bị không thể đổ chuông.
  • 0x01: Cho biết rằng chỉ có một thành phần đơn lẻ có khả năng đổ chuông.
  • 0x02: Cho biết hai thành phần, tai nghe bên trái và bên phải, có thể rung độc lập.
  • 0x03: Cho biết 3 thành phần (tai nghe bên trái, tai nghe bên phải và hộp đựng) có thể đổ chuông độc lập.
7 uint8 Khả năng chuông Các tuỳ chọn được hỗ trợ bao gồm:
  • 0x00: Không có lựa chọn âm lượng chuông.
  • 0x01: Có lựa chọn âm lượng chuông. Nếu được đặt, Nhà cung cấp phải chấp nhận và xử lý 3 mức âm lượng như được chỉ định trong phần Thao tác chuông.
8-15 mảng byte Khoảng đệm Thêm số 0 vào cuối dữ liệu để mã hoá AES.

Dữ liệu phải được mã hoá AES-ECB-128 bằng khoá tài khoản dùng để xác thực yêu cầu.

Phân đoạn xác thực được định nghĩa là 8 byte đầu tiên của HMAC-SHA256(account key, protocol major version number || the last nonce read from the characteristic || data ID || data length || additional data after encryption || 0x01).

Đọc trạng thái cấp phép của beacon

Trình tìm kiếm có thể truy vấn Nhà cung cấp về trạng thái cấp phép của beacon bằng cách thực hiện thao tác ghi vào đặc điểm bao gồm một yêu cầu từ bảng 2 có mã nhận dạng dữ liệu 0x01. Nhà cung cấp xác minh rằng khoá xác thực một lần được cung cấp khớp với bất kỳ khoá tài khoản nào được lưu trữ trên thiết bị.

Nếu xác minh không thành công, Nhà cung cấp sẽ trả về lỗi chưa được xác thực.

Khi thành công, Nhà cung cấp sẽ thông báo bằng một phản hồi từ bảng 6 với mã nhận dạng dữ liệu 0x01. Nhà cung cấp tạo phân đoạn dữ liệu như sau:

Octet Loại dữ liệu Mô tả Giá trị
0 uint8 Trạng thái cấp phép Một mặt nạ bit có các giá trị sau:
  • Bit 1 (0x01): Đặt nếu bạn đặt khoá nhận dạng tạm thời cho thiết bị.
  • Bit 2 (0x02): Đặt nếu khoá xác thực một lần được cung cấp khớp với khoá tài khoản chủ sở hữu.
1 – 20 hoặc 32 mảng byte Giá trị nhận dạng tạm thời hiện tại 20 hoặc 32 byte (tuỳ thuộc vào phương thức mã hoá đang được sử dụng) cho biết mã tạm thời hiện tại do beacon quảng cáo, nếu được đặt cho thiết bị.

Phân đoạn xác thực được định nghĩa là 8 byte đầu tiên của HMAC-SHA256(account key, protocol major version number || the last nonce read from the characteristic || data ID || data length || additional data || 0x01).

Đặt khoá nhận dạng tạm thời

Để cấp phát một Nhà cung cấp chưa được cấp phát làm beacon FMDN hoặc thay đổi khoá nhận dạng tạm thời của Nhà cung cấp đã được cấp phát, Trình tìm kiếm sẽ thực hiện thao tác ghi vào đặc điểm bao gồm một yêu cầu từ bảng 2 có mã nhận dạng dữ liệu 0x02. Nhà cung cấp xác minh rằng:

  • Khoá xác thực một lần được cung cấp khớp với khoá tài khoản chủ sở hữu.
  • Nếu bạn cung cấp hàm băm của khoá nhận dạng tạm thời tạm thời, thì khoá nhận dạng tạm thời đã băm sẽ khớp với khoá nhận dạng tạm thời hiện tại.
  • Nếu bạn chưa cung cấp hàm băm của khoá nhận dạng tạm thời, hãy xác minh rằng Nhà cung cấp chưa được cấp phép dưới dạng beacon FMDN.

Nếu không xác minh được, Nhà cung cấp sẽ trả về lỗi chưa xác thực.

Nếu thành công, khoá nhận dạng tạm thời sẽ được khôi phục bằng cách AES-ECB-128 giải mã khoá đó bằng khoá tài khoản đã so khớp. Khoá phải được duy trì trên thiết bị và từ thời điểm đó Trình cung cấp sẽ bắt đầu quảng cáo các khung FMDN. Khoá nhận dạng tạm thời mới sẽ có hiệu lực ngay sau khi kết nối BLE bị chấm dứt. Nhà cung cấp thông báo bằng một phản hồi từ bảng 6 có mã nhận dạng dữ liệu 0x02.

Phân đoạn xác thực được xác định là 8 byte đầu tiên của HMAC-SHA256(account key, protocol major version number || the last nonce read from the characteristic || data ID || data length || 0x01).

Xoá khoá nhận dạng tạm thời

Để huỷ cấp phép phần beacon của Nhà cung cấp, Trình tìm kiếm sẽ thực hiện thao tác ghi vào đặc điểm, bao gồm một yêu cầu từ bảng 2 có mã nhận dạng dữ liệu 0x03. Nhà cung cấp xác minh rằng:

  • Khoá xác thực một lần được cung cấp khớp với khoá tài khoản chủ sở hữu.
  • Khoá nhận dạng tạm thời đã băm khớp với khoá nhận dạng tạm thời hiện tại.

Nếu Trình cung cấp không được cấp phép làm beacon hoặc xác minh FMDN không thành công, thì nó sẽ trả về lỗi chưa được xác thực.

Nếu thành công, Nhà cung cấp sẽ quên khoá và ngừng quảng cáo khung FMDN. Nhà cung cấp thông báo bằng phản hồi từ bảng 6 với mã nhận dạng dữ liệu 0x03. Phân đoạn xác thực được xác định là 8 byte đầu tiên của HMAC-SHA256(account key, protocol major version number || the last nonce read from the characteristic || data ID || data length || 0x01).

Đọc khoá nhận dạng tạm thời khi có sự đồng ý của người dùng

Bạn chỉ có thể sử dụng tuỳ chọn này để khôi phục khoá đã mất, vì khoá chỉ được Trình tìm kiếm lưu trữ cục bộ. Do đó, tính năng này chỉ hoạt động khi thiết bị ở chế độ ghép nối hoặc trong một khoảng thời gian giới hạn sau khi người dùng nhấn nút vật lý trên thiết bị (điều này cấu thành sự đồng ý của người dùng).

Trình tìm kiếm phải lưu trữ khoá khôi phục trên phần phụ trợ để có thể khôi phục khoá văn bản thô, nhưng khoá này không tự lưu trữ EIK.

Để đọc EIK, trình tìm kiếm thực hiện thao tác ghi vào đặc điểm này, bao gồm yêu cầu từ bảng 3 với mã nhận dạng dữ liệu là 0x04. Nhà cung cấp xác minh rằng:

  • Khoá khôi phục đã băm khớp với khoá khôi phục dự kiến.
  • Thiết bị đang ở chế độ khôi phục EIK.

Nếu không xác minh được, Nhà cung cấp sẽ trả về lỗi chưa xác thực.

Nếu thiết bị không ở chế độ ghép nối, Nhà cung cấp sẽ trả về lỗi Không có sự đồng ý của người dùng.

Khi thành công, Nhà cung cấp sẽ thông báo bằng một phản hồi từ bảng 6 với mã nhận dạng dữ liệu 0x04.

Phân đoạn xác thực được xác định là 8 byte đầu tiên của HMAC-SHA256(recovery key, protocol major version number || the last nonce read from the characteristic || data ID || data length || additional data || 0x01).

Thao tác đổ chuông

Trình tìm kiếm có thể yêu cầu Nhà cung cấp phát một âm thanh bằng cách thực hiện thao tác ghi vào đặc điểm, bao gồm một yêu cầu từ bảng 4 với mã nhận dạng dữ liệu là 0x05. Nhà cung cấp tạo phân khúc dữ liệu như sau:

Octet Loại dữ liệu Mô tả Giá trị
0 uint8 Thao tác đổ chuông Mặt nạ bit có các giá trị sau:
  • Bit 1 (0x01): Nhẫn phải
  • Bit 2 (0x02): Nhẫn còn lại
  • Bit 3 (0x04): Ring case
  • 0xFF: Đổ chuông tất cả thành phần
  • 0x00: Dừng đổ chuông
1 – 2 uint16 Hết giờ Thời gian chờ tính bằng deci giây. Không được bằng 0 và không được lớn hơn 10 phút.
Nhà cung cấp sử dụng giá trị này để xác định thời lượng chuông báo trước khi tự tắt tiếng. Thời gian chờ sẽ ghi đè thời gian chờ đã có hiệu lực nếu bất kỳ thành phần nào của thiết bị đang đổ chuông.

Nếu bạn đặt ring operation (thao tác chuông) thành 0x00, thì thời gian chờ sẽ bị bỏ qua.
3 uint8 Âm lượng
  • 0x00: Mặc định
  • 0x01: Thấp
  • 0x02: Trung bình
  • 0x03: Cao
Ý nghĩa chính xác của các giá trị này phụ thuộc vào cách triển khai.

Sau khi nhận được yêu cầu, Nhà cung cấp sẽ xác minh rằng:

  • Khoá xác thực một lần mà bạn cung cấp khớp với khoá đổ chuông.
  • Trạng thái được yêu cầu khớp với các thành phần có thể đổ chuông.

Nếu Trình cung cấp không được cấp phép làm beacon hoặc xác minh FMDN không thành công, thì nó sẽ trả về lỗi chưa được xác thực. Tuy nhiên, nếu Trình cung cấp đang bật tính năng bảo vệ khỏi hoạt động theo dõi không mong muốn và yêu cầu kích hoạt tính năng bảo vệ khỏi hoạt động theo dõi không mong muốn đã bật cờ xác thực bỏ qua chuông, thì Trình cung cấp sẽ bỏ qua bước kiểm tra đó. Dữ liệu xác thực vẫn được dự kiến là do Trình tìm kiếm cung cấp, nhưng có thể được đặt thành một giá trị tuỳ ý.

Khi đổ chuông bắt đầu hoặc chấm dứt, một thông báo sẽ được gửi như nêu trong bảng 6 với mã nhận dạng dữ liệu là 0x05. Nội dung của thông báo được xác định như sau:

Octet Loại dữ liệu Mô tả Giá trị
0 uint8 Trạng thái đổ chuông
  • 0x00: Đã bắt đầu
  • 0x01: Không bắt đầu hoặc dừng được (tất cả các thành phần được yêu cầu đều nằm ngoài phạm vi)
  • 0x02: Đã dừng (hết thời gian chờ)
  • 0x03: Đã dừng (nhấn nút)
  • 0x04: Đã dừng (yêu cầu GATT)
1 uint8 Thành phần chuông Mặt nạ bit của các thành phần đang tích cực đổ chuông, như được xác định trong yêu cầu.
2 – 3 uint16 Hết giờ Thời gian còn lại để đổ chuông tính bằng deci giây. Nếu thiết bị đã ngừng đổ chuông, thì hệ thống sẽ trả về 0x0000.

Phân đoạn xác thực được xác định là 8 byte đầu tiên của HMAC-SHA256(ring key, protocol major version number || the nonce used to initiate the ringing command || data ID || data length || additional data || 0x01).

Nếu thiết bị đã ở trạng thái chuông theo yêu cầu khi nhận được yêu cầu đổ chuông hoặc ngừng đổ chuông, thì Nhà cung cấp phải gửi thông báo có trạng thái chuông hoặc 0x00: Bắt đầu hoặc 0x04: Dừng (yêu cầu GATT) tương ứng. Yêu cầu này ghi đè các tham số của trạng thái hiện tại để có thể kéo dài thời lượng chuông.

Nếu Nhà cung cấp có nút vật lý (hoặc cảm ứng chạm được bật), thì nút đó sẽ dừng chức năng chuông nếu được nhấn trong khi chuông đang hoạt động.

Nhận trạng thái đổ chuông của beacon

Để có trạng thái đổ chuông của beacon, Trình tìm kiếm thực hiện thao tác ghi vào đặc tính, bao gồm một yêu cầu từ bảng 4 với mã nhận dạng dữ liệu là 0x06. Nhà cung cấp xác minh rằng khoá xác thực một lần đã cung cấp khớp với khoá đổ chuông.

Nếu Nhà cung cấp không được cấp phép dưới dạng beacon FMDN hoặc nếu không xác minh được, thì Nhà cung cấp sẽ trả về lỗi không xác thực.

Nếu thành công, Nhà cung cấp sẽ thông báo bằng một phản hồi từ bảng 6 với mã nhận dạng dữ liệu là 0x06. Nhà cung cấp tạo phân khúc dữ liệu như sau:

Octet Loại dữ liệu Mô tả Giá trị
0 uint8 Thành phần chuông Các thành phần đang tích cực đổ chuông, như được xác định trong yêu cầu đổ chuông.
1 – 2 uint16 Hết giờ Thời gian còn lại để đổ chuông tính bằng deci giây. Xin lưu ý rằng nếu thiết bị không đổ chuông, bạn nên trả về giá trị 0x0000.

Phân đoạn xác thực được xác định là 8 byte đầu tiên của HMAC-SHA256 (ring key, protocol major version number || the last nonce read from the characteristic || data ID || data length || additional data || 0x01).

Chế độ chống theo dõi không mong muốn

Chế độ bảo vệ chống theo dõi không mong muốn nhằm giúp mọi ứng dụng xác định được các thiết bị có hành vi sai trái mà không cần giao tiếp với máy chủ. Theo mặc định, Nhà cung cấp phải xoay tất cả giá trị nhận dạng như mô tả trong phần Xoay mã nhận dạng. Dịch vụ Tìm thiết bị của tôi có thể chuyển tiếp yêu cầu kích hoạt chế độ chống theo dõi không mong muốn thông qua mạng Tìm thiết bị của tôi. Bằng cách đó, dịch vụ sẽ khiến Nhà cung cấp tạm thời sử dụng một địa chỉ MAC cố định, cho phép ứng dụng khách phát hiện thiết bị và cảnh báo người dùng về khả năng bị theo dõi không mong muốn.

Để kích hoạt hoặc huỷ kích hoạt chế độ bảo vệ chống theo dõi không mong muốn của beacon, trình Tìm kiếm sẽ thực hiện thao tác ghi vào đặc điểm này, bao gồm một yêu cầu từ bảng 5 với mã nhận dạng dữ liệu tương ứng là 0x07 hoặc 0x08.

Khi nào bật chế độ chống theo dõi không mong muốn

Nhà cung cấp tạo phân khúc dữ liệu như sau:

Octet Loại dữ liệu Mô tả Giá trị
0 uint8 Cờ kiểm soát
  • 0x01: Bỏ qua xác thực chuông. Khi được đặt, các yêu cầu đổ chuông sẽ không được xác thực khi ở chế độ bảo vệ khỏi hoạt động theo dõi không mong muốn.
Nếu không có cờ nào được đặt (byte toàn số 0), bạn có thể bỏ qua hoàn toàn phần dữ liệu và gửi một phần dữ liệu trống.
Các cờ này chỉ có hiệu lực cho đến khi chế độ bảo vệ khỏi hoạt động theo dõi không mong muốn bị vô hiệu hoá.

Nhà cung cấp xác minh rằng khoá xác thực một lần được cung cấp khớp với khoá bảo vệ khỏi hoạt động theo dõi không mong muốn. Nếu Nhà cung cấp không được cấp phép dưới dạng beacon FMDN hoặc không xác minh được, thì nhà cung cấp sẽ trả về lỗi không xác thực.

Khi chế độ chống theo dõi không mong muốn được kích hoạt, beacon sẽ giảm tần suất xoay địa chỉ riêng tư MAC xuống một lần mỗi 24 giờ. Mã nhận dạng tạm thời được quảng cáo sẽ tiếp tục xoay vòng như bình thường. Bạn nên đặt loại khung thành 0x41. Trạng thái này cũng được phản ánh trong phần cờ đã băm.

Khi tắt chế độ chống theo dõi không mong muốn

Nhà cung cấp xác minh rằng:

  • Khoá xác thực một lần được cung cấp khớp với khoá bảo vệ khỏi hành vi theo dõi không mong muốn.
  • Khoá nhận dạng tạm thời đã băm khớp với khoá nhận dạng tạm thời hiện tại.

Nếu Trình cung cấp không được cấp phép làm beacon hoặc xác minh FMDN không thành công, thì Trình cung cấp sẽ trả về lỗi chưa được xác thực.

Khi chế độ bảo vệ chống theo dõi không mong muốn bị vô hiệu hoá, beacon sẽ bắt đầu xoay địa chỉ MAC trở lại ở tốc độ bình thường, đồng bộ hoá với việc xoay giá trị nhận dạng tạm thời. Bạn nên đặt lại loại khung thành 0x40. Trạng thái này cũng được phản ánh trong phần cờ băm.

Nếu thành công, Nhà cung cấp sẽ thông báo bằng phản hồi từ bảng 6 với mã nhận dạng dữ liệu 0x07 hoặc 0x08.

Phân đoạn xác thực được định nghĩa là 8 byte đầu tiên của HMAC-SHA256(unwanted tracking protection key, protocol major version number || the last nonce read from the characteristic || data ID || data length || 0x01).

Khung được quảng cáo

Sau khi cấp phép, Nhà cung cấp dự kiến sẽ quảng cáo khung FMDN ít nhất một lần mỗi 2 giây. Nếu khung Ghép nối nhanh được quảng cáo, Nhà cung cấp phải xen kẽ các khung FMDN trong các quảng cáo Ghép nối nhanh thông thường. Ví dụ: mỗi 2 giây, Nhà cung cấp phải quảng cáo 7 quảng cáo ghép nối nhanh và 1 quảng cáo FMDN.

Khung FMDN chứa một khoá công khai dùng để mã hoá báo cáo vị trí của mọi ứng dụng hỗ trợ đóng góp cho mạng cộng đồng. Có hai loại khoá hình elip: khoá 160 bit phù hợp với các khung BLE 4 cũ hoặc khoá 256 bit yêu cầu BLE 5 có khả năng quảng cáo mở rộng. Việc triển khai của Trình cung cấp xác định đường cong nào được sử dụng.

Khung FMDN có cấu trúc như sau.

Octet Giá trị Mô tả
0 0x02 Chiều dài
1 0x01 Giá trị loại dữ liệu cờ
2 0x06 Dữ liệu cờ
3 0x18 hoặc 0x19 Chiều dài
4 0x16 Giá trị loại dữ liệu dịch vụ
5 0xAA Mã nhận dạng duy nhất (UUID) dịch vụ 16 bit
6 0xFE ...
7 0x40 hoặc 0x41 Loại khung FMDN có chỉ báo chế độ bảo vệ chống theo dõi không mong muốn
8..27 Mã nhận dạng tạm thời 20 byte
28 Cờ đã băm

Bảng 8: Khung FMDN hỗ trợ đường cong 160 bit.

Bảng 9 cho thấy các giá trị và độ lệch byte của đường cong 256 bit.

Octet Giá trị Mô tả
0 0x02 Chiều dài
1 0x01 Giá trị loại dữ liệu cờ
2 0x06 Dữ liệu cờ
3 0x24 hoặc 0x25 Chiều dài
4 0x16 Giá trị loại dữ liệu dịch vụ
5 0xAA Mã nhận dạng duy nhất (UUID) dịch vụ 16 bit
6 0xFE ...
7 0x40 hoặc 0x41 Loại khung FMDN có chỉ báo chế độ bảo vệ chống theo dõi không mong muốn
8..39 Giá trị nhận dạng tạm thời 32 byte
40 Cờ băm

Bảng 9: Khung FMDN hỗ trợ đường cong 256 bit.

Tính toán giá trị nhận dạng tạm thời (EID)

AES-ECB-256 tạo một số ngẫu nhiên bằng cách mã hoá cấu trúc dữ liệu sau đây bằng khoá nhận dạng tạm thời:

Octet Trường Mô tả
0 – 10 Khoảng đệm Giá trị = 0xFF
11 nghìn Số mũ của chu kỳ xoay
12 – 15 TS[0]...TS[3] Bộ đếm thời gian của beacon, ở định dạng big-endian 32 bit. Các bit K thấp nhất sẽ bị xoá.
16–26 Khoảng đệm Giá trị = 0x00
27 nghìn Số mũ của chu kỳ xoay
28 - 31 TS[0]...TS[3] Bộ đếm thời gian báo hiệu, ở định dạng cuối cùng 32 bit. Các bit thấp nhất của K sẽ bị xoá.

Bảng 10: Xây dựng số ngẫu nhiên giả.

Kết quả của phép tính này là một số 256 bit, được biểu thị là r'.

Đối với phần còn lại của phép tính, SECP160R1 hoặc SECP256R1 được dùng cho các phép toán mật mã trên đường cong elip. Xem định nghĩa về đường cong trong PHẦN 2: Tham số miền đường cong elip được đề xuất. Phần này xác định Fp, nG được tham chiếu tiếp theo.

r' hiện được chiếu vào trường hữu hạn Fp bằng cách tính toán r = r' mod n. Cuối cùng, hãy tính toán R = r * G, đây là một điểm trên đường cong đại diện cho khoá công khai đang được sử dụng. Beacon quảng cáo Rx, là toạ độ x của R, làm giá trị nhận dạng tạm thời.

Cờ băm

Trường cờ băm được tính như sau (các bit được tham chiếu từ quan trọng nhất đến ít quan trọng nhất):

  • Bit 0-4: Đã đặt trước (đặt thành 0).
  • Bit 5-6 cho biết mức pin của thiết bị như sau:
    • 00: Không hỗ trợ chỉ báo mức pin
    • 01: Mức pin bình thường
    • 10: Mức pin yếu
    • 11: Pin sắp hết (cần thay pin)
  • Bit 7 được đặt thành 1 nếu beacon ở chế độ chống theo dõi không mong muốn và 0 nếu không.

Để tạo giá trị cuối cùng của byte này, nó sẽ được xor-ed với byte SHA256(r) nhỏ nhất.

Lưu ý rằng r phải được căn chỉnh theo kích thước của đường cong. Thêm số 0 làm bit có ý nghĩa nhất nếu cách biểu diễn của số này ngắn hơn 160 hoặc 256 bit, hoặc bit có ý nghĩa nhất sẽ bị cắt bớt nếu cách biểu diễn của số này lớn hơn 160 hoặc 256 bit.

Nếu beacon không hỗ trợ chỉ báo mức pin và không ở chế độ bảo vệ khỏi hoạt động theo dõi không mong muốn, thì bạn có thể bỏ qua hoàn toàn byte này khỏi quảng cáo.

Mã hoá bằng EID

Để mã hoá thông báo m, trình hiển thị (đã đọc Rx từ beacon) sẽ thực hiện như sau:

  1. Chọn một số ngẫu nhiên s trong Fp, như được xác định trong phần Tính toán EID.
  2. Tính toán S = s * G.
  3. Tính toán R = (Rx, Ry) bằng cách thay thế trong phương trình đường cong và chọn một giá trị Ry tuỳ ý trong số các kết quả có thể có.
  4. Tính toán khoá AES 256 bit k = HKDF-SHA256((s * R)x), trong đó (s * R)x là toạ độ x của kết quả nhân đường cong. Chưa chỉ định muối.
  5. Giả sử URxLRx lần lượt là 80 bit trên và dưới của Rx ở định dạng big-endian. Tương tự, hãy xác định USxLSx cho S.
  6. Tính toán nonce = LRx || LSx.
  7. Tính toán (m’, tag) = AES-EAX-256-ENC(k, nonce, m).
  8. Gửi (URx, Sx, m’, tag) cho chủ sở hữu, có thể qua một dịch vụ từ xa không đáng tin cậy.

Giải mã các giá trị được mã hoá bằng EID

Ứng dụng của chủ sở hữu (sở hữu EIK và số mũ của chu kỳ xoay) sẽ giải mã thông báo như sau:

  1. Với URx, hãy lấy giá trị bộ đếm thời gian beacon mà URx dựa vào. Ứng dụng của chủ sở hữu có thể thực hiện việc này bằng cách tính toán các giá trị Rx cho giá trị bộ đếm thời gian của beacon trong quá khứ gần đây và tương lai gần.
  2. Với giá trị bộ đếm thời gian beacon mà URx dựa vào, hãy tính giá trị dự kiến của r như được xác định trong phần tính toán EID.
  3. Tính toán R = r * G và xác minh giá trị khớp với URx do trình quan sát cung cấp.
  4. Tính S = (Sx, Sy) bằng cách thay thế trong phương trình đường cong và chọn một giá trị Sy tuỳ ý trong số các kết quả có thể có.
  5. Tính toán k = HKDF-SHA256((r * S)x), trong đó (r * S)x là toạ độ x của kết quả nhân đường cong.
  6. Tính toán nonce = LRx || LSx.
  7. Tính toán m = AES-EAX-256-DEC(k, nonce, m’, tag).

Xoay vòng mã nhận dạng

Bạn phải sử dụng địa chỉ BLE có thể phân giải (RPA) hoặc không thể phân giải (NRPA) cho khung FMDN quảng cáo. RPA là bắt buộc đối với các thiết bị LE Audio (LEA) và bạn nên sử dụng RPA cho các thiết bị khác, ngoại trừ các thẻ định vị không sử dụng tính năng liên kết.

Quảng cáo Ghép nối nhanh, quảng cáo FMDN và(các) địa chỉ BLE tương ứng phải xoay vòng cùng một lúc. Việc xoay phải diễn ra trung bình sau mỗi 1024 giây. Thời điểm chính xác mà beacon bắt đầu quảng cáo giá trị nhận dạng mới phải được chọn ngẫu nhiên trong cửa sổ.

Phương pháp đề xuất để sắp xếp ngẫu nhiên thời gian xoay là đặt thời gian xoay dự kiến tiếp theo (nếu không áp dụng ngẫu nhiên) cộng với hệ số thời gian ngẫu nhiên dương trong khoảng từ 1 đến 204 giây.

Khi thiết bị ở chế độ bảo vệ chống theo dõi không mong muốn, địa chỉ BLE của quảng cáo FMDN phải được cố định, nhưng RPA cho quảng cáo không phát hiện được FP (chẳng hạn như tính năng Ghép nối nhanh) phải tiếp tục xoay vòng. Bạn có thể sử dụng các địa chỉ khác nhau cho các giao thức khác nhau.

Khôi phục sau khi mất điện

Việc phân giải giá trị nhận dạng tạm thời liên quan chặt chẽ đến giá trị đồng hồ tại thời điểm quảng cáo, vì vậy, điều quan trọng là Nhà cung cấp có thể khôi phục giá trị đồng hồ nếu bị mất nguồn. Nhà cung cấp nên ghi giá trị xung nhịp hiện tại vào bộ nhớ không bay hơi ít nhất một lần mỗi ngày và tại thời điểm khởi động, Nhà cung cấp sẽ kiểm tra NVM để xem có giá trị nào cần khởi chạy hay không. Trình phân giải của giá trị nhận dạng tạm thời sẽ triển khai độ phân giải trong một khoảng thời gian đủ để cho phép cả độ trễ đồng hồ hợp lý và loại hình khôi phục mất nguồn này.

Nhà cung cấp vẫn phải nỗ lực hết sức để giảm thiểu độ trễ đồng hồ, vì thời lượng phân giải bị giới hạn. Bạn nên triển khai thêm ít nhất một phương thức đồng bộ hoá đồng hồ (quảng cáo các khung Ghép nối nhanh không phát hiện được hoặc triển khai luồng thông báo).

Nguyên tắc triển khai tính năng Ghép nối nhanh

Phần này mô tả các khía cạnh đặc biệt của việc triển khai tính năng Ghép nối nhanh trên các Nhà cung cấp hỗ trợ FMDN.

Nguyên tắc cụ thể về thẻ định vị

  • Nếu Nhà cung cấp đã được ghép nối nhưng FMDN không được cấp phép trong vòng 5 phút (hoặc nếu bản cập nhật OTA được áp dụng khi thiết bị được ghép nối nhưng không được hỗ trợ bởi FMDN), thì Nhà cung cấp phải quay về cấu hình ban đầu và xoá các khoá tài khoản đã lưu trữ.
  • Sau khi được ghép nối, Nhà cung cấp không được thay đổi địa chỉ MAC cho đến khi FMDN được cấp hoặc cho đến khi 5 phút trôi qua.
  • Nếu khoá nhận dạng tạm thời bị xoá khỏi thiết bị, thì thiết bị đó sẽ đặt lại về trạng thái ban đầu và xoá cả khoá tài khoản đã lưu trữ.
  • Nhà cung cấp sẽ từ chối các lần ghép nối Bluetooth thông thường và chỉ chấp nhận tính năng Ghép nối nhanh.
  • Nhà cung cấp phải có một cơ chế cho phép người dùng tạm thời dừng quảng cáo mà không cần đặt lại thiết bị về trạng thái ban đầu (ví dụ: nhấn một tổ hợp các nút).
  • Sau khi mất điện, thiết bị sẽ quảng cáo các khung Ghép nối nhanh không phát hiện được cho đến lần gọi đọc tham số beacon tiếp theo. Điều này cho phép Trình tìm kiếm phát hiện thiết bị và đồng bộ hoá đồng hồ ngay cả khi xảy ra sự cố trễ đồng hồ đáng kể.
  • Khi quảng cáo các khung Ghép nối nhanh không thể phát hiện được, bạn không nên bật các chỉ báo trên giao diện người dùng.
  • Bạn không được quảng cáo các khung Ghép nối nhanh có thể phát hiện trong khi Trình cung cấp được cung cấp cho FMDN.
  • Nhà cung cấp không được tiết lộ bất kỳ thông tin nhận dạng nào theo cách chưa được xác thực (ví dụ: tên hoặc giá trị nhận dạng).

Nguyên tắc dành riêng cho thiết bị Bluetooth cũ

Phần này mô tả các khía cạnh đặc biệt của các thiết bị Bluetooth cổ điển hỗ trợ FMDN.

Cấp phép FMDN cho các thiết bị đã ghép nối

Nhà cung cấp không phải lúc nào cũng được cấp quyền cho FMDN khi ghép nối với Trình tìm kiếm, mà là một lúc sau đó. Trong trường hợp đó, Nhà cung cấp có thể không có địa chỉ MAC BLE mới nhất cần thiết để thiết lập kết nối GATT. Trình cung cấp phải hỗ trợ ít nhất một trong những cách sau để Trình tìm kiếm nhận được địa chỉ BLE khi đã ghép nối:

  • Trình cung cấp có thể định kỳ quảng cáo dữ liệu tài khoản Fast Pair để cho phép Trình tìm kiếm tìm thấy địa chỉ BLE thông qua tính năng quét BLE.
    Phương pháp này phù hợp với những Nhà cung cấp không triển khai luồng thông báo.
  • Nhà cung cấp có thể cung cấp dữ liệu này thông qua luồng tin nhắn Ghép nối nhanh qua Bluetooth cổ điển.
    Phương pháp này phù hợp với những Nhà cung cấp không quảng cáo khung Ghép nối nhanh trong khi kết nối với Trình tìm kiếm qua Bluetooth.

Việc hỗ trợ cả hai phương pháp này sẽ làm tăng khả năng người dùng có thể cấp phép thiết bị cho FMDN.

Luồng tin nhắn Ghép nối nhanh

Nhà cung cấp có thể triển khai luồng thông báo Ghép nối nhanh và sử dụng luồng này để thông báo cho Trình tìm kiếm về Thông tin thiết bị. Việc triển khai luồng thông báo sẽ bật một số tính năng như mô tả trong phần này.

Nhà cung cấp phải gửi thông báo thông tin thiết bị một lần mỗi khi thiết lập kênh RFCOMM luồng thông báo.

Phiên bản phần mềm cơ sở (mã thông tin thiết bị 0x09) và khả năng theo dõi

Khi một bản cập nhật chương trình cơ sở sẽ thêm tính năng hỗ trợ FMDN cho Trình cung cấp, Trình tìm kiếm được kết nối có thể thông báo cho người dùng về điều đó và đề nghị cấp phép. Nếu không, người dùng phải chuyển đến danh sách thiết bị Bluetooth theo cách thủ công để bắt đầu cấp phép FMDN.

Để cho phép việc đó, Nhà cung cấp phải sử dụng thuộc tính phiên bản chương trình cơ sở (mã 0x09) để báo cáo một giá trị chuỗi đại diện cho phiên bản chương trình cơ sở. Ngoài ra, Nhà cung cấp phải hỗ trợ giao thức cho phép Trình tìm kiếm biết về Thay đổi về chức năng do các bản cập nhật phần mềm.

Octet Loại dữ liệu Mô tả Giá trị
0 uint8 Sự kiện thông tin thiết bị 0x03
1 uint8 Phiên bản chương trình cơ sở 0x09
2 – 3 uint16 Độ dài dữ liệu bổ sung thay đổi
var mảng byte Chuỗi phiên bản khác nhau

Bảng 11: Sự kiện thông tin thiết bị: phiên bản phần mềm cơ sở đã cập nhật.

Khi nhận được yêu cầu cập nhật chức năng (0x0601), nếu đã bật tính năng hỗ trợ theo dõi FMDN, thì Nhà cung cấp sẽ phản hồi như trong bảng 12.

Octet Loại dữ liệu Mô tả Giá trị
0 uint8 Sự kiện đồng bộ hoá chức năng của thiết bị 0x06
1 uint8 Theo dõi FMDN 0x03
2–3 uint16 Độ dài dữ liệu bổ sung 0x0007
4 uint8 Trạng thái cấp phép FMDN 0x00 nếu chưa được cấp phép; 0x01 nếu được cấp phép bởi bất kỳ tài khoản nào
5 - 10 mảng byte Địa chỉ MAC BLE hiện tại của thiết bị thay đổi

Bảng 12: Sự kiện đồng bộ hoá chức năng của thiết bị: bổ sung khả năng theo dõi.

Giá trị nhận dạng tạm thời hiện tại (mã thông tin thiết bị 0x0B)

Trình cung cấp có thể sử dụng giá trị nhận dạng tạm thời hiện tại (mã 0x0B) để báo cáo EID hiện tại và giá trị xung nhịp khi Trình cung cấp được cấp phép cho FMDN, để đồng bộ hoá Trình tìm kiếm trong trường hợp đồng hồ bị trôi (ví dụ: do hết pin). Nếu không, Trình tìm kiếm sẽ bắt đầu một kết nối đắt đỏ và kém tin cậy hơn cho mục đích này.

Bộ tám Loại dữ liệu Mô tả Giá trị
0 uint8 Sự kiện thông tin thiết bị 0x03
1 uint8 Giá trị nhận dạng tạm thời hiện tại 0x0 tỷ
2 – 3 uint16 Độ dài dữ liệu bổ sung 0x0018 hoặc 0x0024
4–7 mảng byte Giá trị đồng hồ Ví dụ: 0x13F9EA80
8 – 19 hoặc 31 mảng byte EID hiện tại Ví dụ: 0x1122334455667788990011223344556677889900

Bảng 13: Sự kiện thông tin thiết bị: đồng bộ hoá đồng hồ.

Đặt lại về trạng thái ban đầu

Đối với các thiết bị hỗ trợ tính năng đặt lại về trạng thái ban đầu: nếu bạn đặt lại thiết bị về trạng thái ban đầu, thì Nhà cung cấp phải ngừng phát đi tín hiệu và xoá khoá nhận dạng tạm thời cũng như tất cả khoá tài khoản đã lưu trữ, bao gồm cả khoá tài khoản của chủ sở hữu.

Sau khi đặt lại về trạng thái ban đầu (theo cách thủ công hoặc có lập trình), Nhà cung cấp không nên bắt đầu quảng cáo tính năng Ghép nối nhanh ngay lập tức, để ngăn quy trình ghép nối bắt đầu ngay sau khi người dùng xoá thiết bị.

Ngăn chặn hoạt động theo dõi không mong muốn

Thiết bị FMDN được chứng nhận cũng phải đáp ứng các yêu cầu trong phiên bản triển khai của thông số kỹ thuật nhiều nền tảng về tính năng Phát hiện trình theo dõi vị trí không mong muốn (DULT).

Các nguyên tắc liên quan dành riêng cho FMDN để tuân thủ quy cách DULT:

  • Mọi thiết bị tương thích với FMDN đều phải được đăng ký trong Bảng điều khiển thiết bị lân cận và kích hoạt tính năng "Tìm thiết bị của tôi".
  • Thiết bị phải triển khai dịch vụ và đặc điểm Không phải chủ sở hữu phụ kiện được xác định trong phiên bản triển khai của thông số kỹ thuật DULT, bao gồm cả các thao tác Thông tin về phụ kiệnChế độ điều khiển không phải chủ sở hữu.
  • Trong thời gian tương thích ngược, như được xác định trong thông số kỹ thuật DULT, không có thay đổi nào đối với khung được quảng cáo như được xác định trong tài liệu này.
  • "Chế độ chống theo dõi không mong muốn" xác định trong tài liệu này liên kết với "trạng thái phân tách" được xác định theo quy cách của DULT.
  • Nguyên tắc triển khai mã hoạt động Thông tin phụ kiện:
    • Get_Product_Data sẽ trả về mã kiểu máy do bảng điều khiển cung cấp. Giá trị này sẽ được đệm 0 để phù hợp với yêu cầu 8 byte. Ví dụ: mã mô hình 0xFFFFFF được trả về là 0x0000000000FFFFFF.
    • Get_Manufacturer_Name và Get_Model_Name phải khớp với các giá trị được cung cấp trong bảng điều khiển.
    • Get_Accessory_Category có thể trả về giá trị "Trình theo dõi vị trí" chung nếu không có danh mục nào khác phù hợp hơn với loại thiết bị.
    • Get_Accessory_Capabilities phải cho biết khả năng hỗ trợ chuông cũng như chức năng tra cứu giá trị nhận dạng BLE.
    • Get_Network_ID sẽ trả về giá trị nhận dạng của Google (0x02).
  • Nguyên tắc triển khai mã hoạt động Get_Identifier:
    • Thao tác này chỉ trả về phản hồi hợp lệ trong 5 phút sau khi người dùng kích hoạt chế độ "nhận dạng", chế độ này yêu cầu kết hợp các thao tác nhấn nút. Tín hiệu hình ảnh hoặc âm thanh phải cho người dùng biết rằng nhà cung cấp đã chuyển sang chế độ đó. Bạn phải cung cấp cho Google hướng dẫn dành riêng cho từng mẫu để kích hoạt chế độ đó theo yêu cầu để được chứng nhận và ít nhất 10 ngày trước khi cập nhật hoặc sửa đổi hướng dẫn.
    • Phản hồi được tạo là: 10 byte đầu tiên của giá trị nhận dạng tạm thời hiện tại, tiếp theo là 8 byte đầu tiên của HMAC-SHA256(recovery key, the truncated current ephemeral identifier).
  • Nguyên tắc triển khai Giá trị nhận dạng qua NFC:
    • Dùng find-my.googleapis.com/lookup làm URL.
    • Là tham số e, hãy sử dụng cùng một phản hồi được tạo cho Get_Identifier, được mã hoá theo hệ thập lục phân.
    • Giống như tham số pid, hãy sử dụng phản hồi tương tự như được tạo cho Get_Product_Data, được mã hoá theo hệ thập lục phân.
  • Nguyên tắc triển khai toán tử Sound_Start:
    • Lệnh này sẽ kích hoạt chuông trong tất cả các thành phần có sẵn.
    • Bạn nên sử dụng dung lượng tối đa được hỗ trợ.
    • Thời lượng đổ chuông được đề xuất là 12 giây.
  • Thẻ định vị phải bao gồm một cơ chế cho phép người dùng tạm thời dừng quảng cáo mà không cần đặt lại thiết bị về trạng thái ban đầu (ví dụ: nhấn một tổ hợp các nút).
    • Hướng dẫn tắt phải được ghi lại trong một URL công khai và được cung cấp cho Google theo yêu cầu để được chứng nhận, đồng thời phải được cung cấp ít nhất 10 ngày trước khi có bất kỳ nội dung cập nhật hoặc sửa đổi nào đối với hướng dẫn.
    • URL phải hỗ trợ bản địa hoá. Tuỳ thuộc vào ứng dụng, ngôn ngữ sẽ được cung cấp dưới dạng tham số truy vấn ("hl=vi") hoặc sử dụng tiêu đề HTTP "accept-language".

Nguyên tắc về giao thức có thể chuyển đổi

  • Mỗi lần chỉ nên sử dụng một giao thức. Đảm bảo rằng không có nhiều mạng có thể hoạt động đồng thời trên thiết bị. Yêu cầu này là cần thiết để đảm bảo không có sự kết hợp giữa dữ liệu người dùng nhạy cảm giữa các giao thức khác nhau.
  • Bạn nên tích hợp quy trình đặt lại hoàn toàn vào thiết bị để cho phép người dùng thiết lập lại thiết bị bằng một mạng khác.
  • Quá trình cập nhật thiết bị lên mạng phải thân thiện với người dùng và công bằng giữa các mạng. Người dùng phải chọn được mạng họ muốn sử dụng mà không cần ưu tiên một mạng trong số các mạng đó. Quy trình này cần được nhóm Google phê duyệt.

Các bản cập nhật chương trình cơ sở

Đối tác phải quản lý quy trình và việc phân phối bản cập nhật OTA bằng quy trình làm việc của riêng họ đối với ứng dụng Di động hoặc Web.

Khả năng tương thích

Cần phải bật dịch vụ vị trí và Bluetooth để sử dụng mạng lưới Tìm thiết bị của tôi. Cần phải có dịch vụ di động hoặc kết nối Internet. Hoạt động trên hệ điều hành Android 9 trở lên tại một số quốc gia nhất định và dành cho người dùng đủ tuổi.

Nhật ký thay đổi

Phiên bản FMDN Ngày Bình luận
v1 Bản phát hành ban đầu của quy cách FMDN cho chương trình tiếp cận sớm.
v1.1 Feb 2023
  • Thêm chỉ báo văn bản thô về chế độ bảo vệ khỏi hành vi theo dõi không mong muốn.
  • Thêm tuỳ chọn để bỏ qua việc xác thực các yêu cầu đổ chuông khi ở chế độ chống theo dõi ngoài ý muốn.
v1.2 Tháng 4 năm 2023
  • Cập nhật định nghĩa về AK của một chủ sở hữu.
  • Thêm đề xuất để khôi phục sau khi mất nguồn trong thẻ trình định vị.
  • Thêm nội dung giải thích về việc tạo địa chỉ MAC ngẫu nhiên.
  • Thêm nội dung giải thích về việc xoay địa chỉ MAC khi ở chế độ bảo vệ khỏi hoạt động theo dõi không mong muốn.
  • Thêm hướng dẫn về cách huỷ kích hoạt thẻ định vị.
v1.3 Tháng 12 năm 2023
  • Thêm phần làm rõ về thông tin nhận dạng do thẻ định vị hiển thị.
  • Thêm yêu cầu triển khai quy cách ngăn chặn hoạt động theo dõi không mong muốn.
  • Thêm nguyên tắc cho các thiết bị giao thức có thể chuyển đổi.