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:
Khoá tài khoản: Khoá tài khoản Ghép nối nhanh 16 byte, như xác định trong thông số kỹ thuật về tính năng Ghép nối nhanh.
Khoá tài khoản chủ sở hữu: Nhà cung cấp chọn một trong các khoá tài khoản hiện có làm khoá tài khoản chủ sở hữu trong lần đầu tiên Trình tìm kiếm truy cập vào đặc điểm Hành động của beacon. Bạn không thể thay đổi khoá tài khoản chủ sở hữu đã chọn cho đến khi Nhà cung cấp đặt lại về trạng thái ban đầu. Nhà cung cấp không được xoá khoá tài khoản chủ sở hữu khi hết chỗ chứa khoá tài khoản miễn phí.
Các nhà cung cấp đã hỗ trợ FMDN khi được ghép nối lần đầu tiên (hoặc hỗ trợ FMDN khi được ghép nối sau khi đặt lại về trạng thái ban đầu) chọn khoá tài khoản đầu tiên, vì đây là khoá tài khoản duy nhất hiện có khi Trình tìm kiếm đọc trạng thái cấp phép trong quá trình ghép nối.
Những nhà cung cấp có được tính năng hỗ trợ FMDN sau khi đã ghép nối (ví dụ: thông qua bản cập nhật phần mềm) có thể chọn bất kỳ khoá tài khoản hiện có nào. Bạn nên chọn khoá tài khoản đầu tiên dùng để đọc trạng thái cấp phép từ đặc điểm hành động của beacon sau khi cập nhật phần mềm, giả sử người dùng thực hiện cập nhật là chủ sở hữu hiện tại của Nhà cung cấp.
Khoá nhận dạng tạm thời (EIK): Khoá 32 byte do Trình tìm kiếm chọn ngẫu nhiên khi thực hiện quy trình cấp phép FMDN. Khoá này được dùng để lấy khoá mã hoá dùng cho việc mã hoá hai đầu các báo cáo vị trí. Trình tìm kiếm không bao giờ tiết lộ thông tin này cho phần phụ trợ.
Khoá khôi phục: Được xác định là
SHA256(ephemeral identity key || 0x01)
, bị cắt bớt thành 8 byte đầu tiên. Khoá này được lưu trữ trên phần phụ trợ và Trình tìm kiếm có thể sử dụng khoá này để khôi phục EIK, miễn là người dùng thể hiện sự đồng ý bằng cách nhấn nút trên thiết bị.Khoá đổ chuông: Được xác định là
SHA256(ephemeral identity key || 0x02)
, được cắt bớt thành 8 byte đầu tiên. Khoá này được lưu trữ trên phần phụ trợ và Trình tìm kiếm chỉ có thể sử dụng khoá này để rung thiết bị.Khoá bảo vệ hoạt động theo dõi không mong muốn: Được xác định bằng
SHA256(ephemeral identity key || 0x03)
, được cắt bớt đến 8 byte đầu tiên. Khoá này được lưu trữ trên phần phụ trợ và Trình tìm kiếm chỉ có thể sử dụng khoá này để kích hoạt chế độ bảo vệ chống theo dõi không mong muốn.
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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ã | 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á:
|
6 | uint8 | Thành phần | Số lượng thành phần có khả năng đổ chuông:
|
7 | uint8 | Khả năng chuông | Các tuỳ chọn được hỗ trợ bao gồm:
|
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:
|
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:
|
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 |
|
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 |
|
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 |
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
, n
và G
đượ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:
- Chọn một số ngẫu nhiên
s
trongFp
, như được xác định trong phần Tính toán EID. - Tính toán
S = s * G
. - 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ó. - 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. - Giả sử
URx
vàLRx
lần lượt là 80 bit trên và dưới củaRx
ở định dạng big-endian. Tương tự, hãy xác địnhUSx
vàLSx
choS
. - Tính toán
nonce = LRx || LSx
. - Tính toán
(m’, tag) = AES-EAX-256-ENC(k, nonce, m)
. - 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:
- 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. - 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ủar
như được xác định trong phần tính toán EID. - Tính toán
R = r * G
và xác minh giá trị khớp vớiURx
do trình quan sát cung cấp. - 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ó. - 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. - Tính toán
nonce = LRx || LSx
. - 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ện và Chế độ đ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.
- Dùng
- 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 |
|
v1.2 | Tháng 4 năm 2023 |
|
v1.3 | Tháng 12 năm 2023 |
|