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á hai đầu để theo dõi các thiết bị Bluetooth năng lượng thấp (BLE). Trang này mô tả FMDN là phần mở rộng cho quy cách Ghép nối nhanh. Nhà cung cấp nên bật tiện ích này nếu 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 của GATT

Bạn nên thêm đặc điểm 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ã hoá Quyền mã nhận dạng duy nhất (UUID)
Hành động báo hiệu Không Đọc, viết và thông báo FE2C1238-8366-4814-8EB0-01DE32100BEA

Bảng 1: Các đặc điểm của Dịch vụ ghép nối nhanh cho 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 theo cơ chế phản hồi thử thách. 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 tính trong bảng 1, dẫn đến một vùng đệm ở định dạng sau:

Hình bát giác Loại dữ liệu Nội dung 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 không cố định

Mỗi thao tác đọc phải dẫn đến một số chỉ dùng một lần khác nhau và một số chỉ dùng một lần chỉ hợp lệ cho một hoạt động. Số chỉ dùng một lần phải bị vô hiệu hoá 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 toán như mô tả trong bảng từ 2 đến 5. Tuỳ thuộc vào thao tác được yêu cầu, Trình tìm kiếm chứng minh rằng bạn biết 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 này được cho trong các bảng từ 2 đến 5. Mỗi hoạt động sẽ được thảo luận chi tiết hơn ở phần sau của phần này.

Hình bát giác Loại dữ liệu Nội dung mô tả Giá trị
0 uint8 Mã dữ liệu
  • 0x00: Đọc các thông 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
1 uint8 Thời lượng dữ liệu không cố định
2 – 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 có
  • 0x01: không có
  • 0x02: 32 byte là khoá nhận dạng tạm thời, được mã hoá AES-ECB-128 bằng khoá tài khoản. Nếu Nhà cung cấp đã có bộ khoá nhận dạng tạm thời, hãy gửi 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.

Hình bát giác Loại dữ liệu Nội dung 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 Thời lượng dữ liệu 0x08
2 – 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: Yêu cầu khôi phục khoá cấp phép báo hiệu.

Hình bát giác Loại dữ liệu Nội dung mô tả Giá trị
0 uint8 Mã dữ liệu
  • 0x05: Nhẫn
  • 0x06: Đọc trạng thái đổ chuông
1 uint8 Thời lượng dữ liệu không cố định
2 – 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 có

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

Hình bát giác Loại dữ liệu Nội dung 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: Tắt chế độ chống theo dõi không mong muốn
1 uint8 Thời lượng dữ liệu không cố định
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.

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

Bạn nên gửi thông báo có mã dữ liệu khác 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.

Hình bát giác Loại dữ liệu Nội dung mô tả Giá trị
0 uint8 Mã dữ liệu
  • 0x00: Đọc các thông 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ế độ chống theo dõi không mong muốn
  • 0x08: Tắt chế độ chống theo dõi không mong muốn
1 uint8 Thời lượng dữ liệu không cố định
2 – 9 mảng byte Xác thực Thông tin chi tiết trong mỗi thao tác
10 – var mảng byte Dữ liệu bổ sung
  • 0x00: 8 byte cho biết công suất truyền, giá trị xung nhịp, phương thức mã hoá và khả năng đổ chuông, AES-ECB-128 được mã hoá bằng khoá tài khoản (không có khoảng đệm)
  • 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à điều kiện kích hoạt cho thay đổi
  • 0x06: 3 byte cho biết các thành phần đang đổ chuông và số deci giây còn lại để đổ chuông
  • Các mã dữ liệu khác sử dụng dữ liệu bổ sung trống

Bảng 6: Phản hồi của dịch vụ báo hiệu.

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

Nội dung 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 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ố lượng 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ã 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 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 tính bao gồm yêu cầu từ bảng 2 với mã dữ liệu 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 mọi khoá tài khoản đượ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 phản hồi từ bảng 6 với mã dữ liệu 0x00. Nhà cung cấp tạo phân đoạn dữ liệu như sau:

Hình bát giác Loại dữ liệu Nội dung mô tả Giá trị
0 uint8 Nguồn đã hiệu chỉnh Công suất đã hiệu chỉnh khi nhận được ở khoảng cách 0m (giá trị trong khoảng [-100, 20]). Được biểu thị dưới dạng số nguyên đã ký, có độ 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 (dấu tận cùng lớn).
5 uint8 Chọn đường cong Đường cong elip đượ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ó thể đổ chuông:
  • 0x00: Cho biết thiết bị không có khả năng đổ chuông.
  • 0x01: Cho biết rằng chỉ một thành phần duy nhất có khả năng đổ chuông.
  • 0x02: Cho biết 2 thành phần, tai nghe trái và phải, có khả năng đổ chuông một cách độc lập.
  • 0x03: Cho biết 3 thành phần, tai nghe trái, phải và hộp đựng có khả năng đổ chuông một cách độ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ư nêu trong phần Thao tác đổ chuông.
8-15 mảng byte Khoảng đệm Không có khoảng đệm khi 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 tính này, bao gồm một yêu cầu từ bảng 2 với mã dữ liệu 0x01. 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 mọi khoá tài khoản đượ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 phản hồi từ bảng 6 với mã dữ liệu 0x01. Nhà cung cấp tạo phân đoạn dữ liệu như sau:

Hình bát giác Loại dữ liệu Nội dung mô tả Giá trị
0 uint8 Trạng thái cấp phép Một bitmask có các giá trị sau:
  • Bit 1 (0x01): Đặt nếu khoá nhận dạng tạm thời được đặt cho thiết bị.
  • Bit 2 (0x02): Đặt nếu khoá xác thực một lần đã cung cấp khớp với khoá tài khoản của 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 sử dụng) cho biết mã nhận dạng tạm thời hiện tại mà beacon quảng cáo, nếu một mã đượ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ép cho một Nhà cung cấp không được cấp phép dưới dạng 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ép, Trình tìm kiếm 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ã dữ liệu 0x02. 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á tài khoản của chủ sở hữu.
  • Nếu bạn cung cấp một hàm băm của khoá nhận dạng 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 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, khoá nhận dạng tạm thời sẽ được khôi phục bằng phương thức giải mã AES-ECB-128 bằng khoá tài khoản đã khớp. Khoá phải được duy trì trên thiết bị và từ thời điểm đó trên 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 bạn chấm dứt kết nối BLE. Bên cung cấp thông báo bằng phản hồi từ bảng 6 với ID dữ liệu 0x02.

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 || 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 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ã dữ liệu là 0x03. 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á tài khoản của 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 Nhà cung cấp không được cấp phép dưới dạng beacon FMDN hoặc quá trình xác minh không thành công, thì 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 quên khoá và ngừng quảng cáo các khung FMDN. Trình cung cấp thông báo bằng phản hồi từ bảng 6 với ID dữ liệu 0x03. 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 || 0x01).

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

Tuỳ chọn này chỉ có sẵn để khôi phục khoá bị 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ị đang ở chế độ ghép nối hoặc trong một khoảng thời gian giới hạn nào đó sau khi người dùng nhấn nút vật lý trên thiết bị (tạo 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 không lưu trữ chính 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ã dữ liệu 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 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.

Nếu thiết bị không ở chế độ ghép nối, thì 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 phản hồi từ bảng 6 với mã dữ liệu 0x04.

Phân đoạn xác thực được định nghĩa 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).

Hoạt động đổ chuông

Trình tìm kiếm có thể yêu cầu Nhà cung cấp phá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 có mã dữ liệu là 0x05. Nhà cung cấp tạo phân đoạn dữ liệu như sau:

Hình bát giác Loại dữ liệu Nội dung mô tả Giá trị
0 uint8 Hoạt động đổ chuông Một bitmask có các giá trị sau:
  • Bit 1 (0x01): Nhẫn phải
  • Bit 2 (0x02): Nhẫn trái
  • Bit 3 (0x04): Trường hợp của Ring
  • 0xFF: Đổ chuông tất cả các thành phần
  • 0x00: Dừng đổ chuông
1 – 2 uint16 Lần bị tạm ngừng 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 tương đương với 10 phút.
Trình cung cấp sử dụng giá trị này để xác định thời lượng sẽ đổ chuông trước khi 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 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.

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

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

Hình bát giác Loại dữ liệu Nội dung 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: Đã ngừng (hết giờ)
  • 0x03: Đã dừng (nhấn nút)
  • 0x04: Đã dừng (yêu cầu GATT)
1 uint8 Các thành phần đổ chuông Mặt nạ bit của các thành phần đang đổ chuông, như được xác định trong yêu cầu.
2 – 3 uint16 Lần bị tạm ngừng 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, hàm sẽ trả về 0x0000.

Phân đoạn xác thực được định nghĩa 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).

Khi nhận được yêu cầu đổ chuông hoặc dừng đổ chuông, nếu thiết bị đã ở trạng thái đổ chuông theo yêu cầu, Nhà cung cấp sẽ gửi một thông báo có trạng thái đổ chuông hoặc 0x00: Started (Bắt đầu) hoặc 0x04: Paused (Đã dừng) (yêu cầu GATT). Yêu cầu này sẽ ghi đè các thông số của trạng thái hiện có để 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 giác chạm đang bật), thì nút đó sẽ dừng chức năng đổ chuông nếu được nhấn trong khi tính năng đổ chuông đang hoạt động.

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

Để biết 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 điểm này, bao gồm một yêu cầu từ bảng 4 với mã dữ liệu là 0x06. Trì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 xác minh không thành công, thì 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 phản hồi từ bảng 6 với mã dữ liệu 0x06. Nhà cung cấp tạo phân đoạn dữ liệu như sau:

Hình bát giác Loại dữ liệu Nội dung mô tả Giá trị
0 uint8 Các thành phần đổ chuông Các thành phần sẽ chủ động đổ chuông, như xác định trong yêu cầu đổ chuông.
1 – 2 uint16 Lần bị tạm ngừng Thời gian còn lại để đổ chuông tính bằng deci giây. Lưu ý rằng nếu thiết bị không đổ chuông, thì hàm sẽ trả về 0x0000.

Phân đoạn xác thực được định nghĩa 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ế độ chống theo dõi không mong muốn được dùng để cho phép mọi ứng dụng xác định những thiết bị vi phạm mà không có giao tiếp với máy chủ. Theo mặc định, Nhà cung cấp phải xoay vòng tất cả các giá trị nhận dạng như mô tả trong bài viết Xoay vòng 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ế độ bảo vệ theo dõi không mong muốn thông qua mạng lưới Tìm thiết bị của tôi. Bằng cách làm như vậy, dịch vụ 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 phát hiện thiết bị và cảnh báo người dùng về hoạt động theo dõi không mong muốn có thể xảy ra.

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

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

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

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

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á bảo vệ 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 quá trình xác minh không thành công, thì 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 đượ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ờ. Giá trị 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 cũng được phản ánh trong phần cờ đã băm.

Khi tắt chế độ bảo vệ 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ệ chống 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 Nhà cung cấp không được cấp phép dưới dạng beacon FMDN hoặc quá trình xác minh không thành công, thì Nhà cung cấp sẽ trả về lỗi chưa được xác thực.

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

Khi thành công, Trình cung cấp sẽ thông báo bằng phản hồi từ bảng 6 với mã dữ liệu là 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 đã quảng cáo

Sau khi cấp phép, Nhà cung cấp dự kiến sẽ quảng cáo các khung FMDN ít nhất 2 giây một lần. Nếu bạn quảng cáo khung Ghép nối nhanh, thì 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ụ: Cứ 2 giây, Nhà cung cấp nên 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á các báo cáo vị trí của mọi ứng dụng hỗ trợ góp phần vào mạng lưới sử dụng nguồn lực cộng đồng. Có 2 loại khoá đường cong 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 với khả năng quảng cáo mở rộng. Phương thức triển khai của Trình cung cấp sẽ xác định đường cong được sử dụng.

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

Hình bát giác Giá trị Nội dung mô tả
0 0x02 Chiều dài
1 0x01 Giá trị loại dữ liệu gắn cờ
2 0x06 Dữ liệu về 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 cho dịch vụ 16 bit
6 0xFE ...
7 0x40 hoặc 0x41 Loại khung FMDN có chỉ báo chế độ bảo vệ theo dõi không mong muốn
8..27 Giá trị 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 độ lệch byte và giá trị của đường cong 256 bit.

Hình bát giác Giá trị Nội dung mô tả
0 0x02 Chiều dài
1 0x01 Giá trị loại dữ liệu gắn cờ
2 0x06 Dữ liệu về 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 cho dịch vụ 16 bit
6 0xFE ...
7 0x40 hoặc 0x41 Loại khung FMDN có chỉ báo chế độ bảo vệ 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)

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

Hình bát giác Kỹ thuật Nội dung 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 báo hiệu, ở định dạng Big-endian 32 bit. Các bit thấp nhất của K 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 Big-endian 32 bit. Các bit thấp nhất của K sẽ bị xoá.

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

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

Trong phép tính còn lại, SECP160R1 hoặc SECP256R1 được dùng cho các thao tác mã hoá đường cong elip. Xem định nghĩa đường cong trong SEC 2: Tham số miền đường cong elip được đề xuất. Tham số này sẽ 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 r = r' mod n. Cuối cùng, hãy tính toán R = r * G, 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 toán 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 (được đặt thành 0).
  • Bit 5-6 cho biết mức pin của thiết bị như sau:
    • 00: Chỉ báo mức pin không được hỗ trợ
    • 01: Mức pin bình thường
    • 10: Mức pin thấp
    • 11: Mức pin quá yếu (cần sớm thay pin)
  • Bit 7 được đặt thành 1 nếu beacon ở chế độ bảo vệ theo dõi không mong muốn và là 0 nếu không.

Để tạo giá trị cuối cùng của byte này, byte này được xor-ed với byte SHA256(r) ít quan trọng 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 giá trị biểu diễn ngắn hơn 160 hoặc 256 bit, hoặc cần cắt bớt các bit quan trọng nhất nếu giá trị biểu diễn 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ệ hoạt động theo dõi không mong muốn, thì beacon được phép bỏ qua hoàn toàn byte này khỏi quảng cáo.

Mã hoá bằng EID

Để mã hoá tin nhắn m, người nhìn (đã đọc Rx từ beacon) sẽ làm như sau:

  1. Chọn một số ngẫu nhiên s trong Fp, như xác định trong phần Tính toán EID.
  2. Tính toán S = s * G.
  3. Tính 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ể xảy ra.
  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. Muối không được chỉ định.
  5. Đặt URxLRx lần lượt là 80 bit trên và dưới của Rx ở định dạng lớn (big-endian). Tương tự như vậy, 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ể thông 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 thời gian 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 trên. Điều này có thể được thực hiện bằng máy khách của chủ sở hữu tính toán các giá trị Rx cho các giá trị bộ đếm thời gian beacon trong quá khứ gần đây và tương lai gần.
  2. Với giá trị bộ đếm thời gian beacon làm cơ sở cho URx, hãy tính toán giá trị dự kiến của r như xác định trong phần tính toán EID.
  3. Tính toán R = r * G và xác minh rằng kết quả khớp với giá trị của URx do trình theo dõi 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ể xảy ra.
  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 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) để quảng cáo khung FMDN. RPA là bắt buộc đối với các thiết bị LE Audio (LEA) và nên dùng cho các thiết bị khác, ngoại trừ những thẻ định vị không dù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 lúc. Quá trình xoay sẽ diễn ra trung bình 1024 giây một lần. Đ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 đó thành thời gian xoay dự kiến tiếp theo (nếu không áp dụng sắp xếp ngẫu nhiên) cùng với hệ số thời gian được sắp xếp ngẫu nhiên dương trong khoảng từ 1 đến 204 giây.

Khi thiết bị ở chế độ bảo vệ theo dõi không mong muốn, bạn phải khắc phục địa chỉ BLE của quảng cáo FMDN, nhưng RPA cho các 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ể dùng địa chỉ khác nhau cho các giao thức khác nhau.

Phục hồi sau khi mất điện

Việc phân giải giá trị nhận dạng tạm thời có 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 điện năng. Nhà cung cấp nên ghi giá trị xung nhịp hiện tại vào bộ nhớ bất biến í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. Các 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 xảy ra tình trạng trôi dạt xung nhịp hợp lý và kiểu khôi phục mất điện này.

Nhà cung cấp vẫn phải cố gắng hết sức để giảm thiểu tình trạng trôi xung nhịp vì khoảng thời gian phân giải bị giới hạn. Bạn phải triển khai ít nhất một phương thức đồng bộ hoá đồng hồ bổ sung (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 dành riêng cho 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 trong khi thiết bị được ghép nối nhưng không được FMDN cấp phép), thì Nhà cung cấp phải hoàn nguyên về cấu hình ban đầu và xoá các khoá tài khoản đã lưu.
  • Sau khi Nhà cung cấp được ghép nối, không nên thay đổi địa chỉ MAC của mình cho đến khi FMDN được cấp phé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ị cũng phải đặt lại về trạng thái ban đầu và xoá các khoá tài khoản đã lưu trữ.
  • Nhà cung cấp nên từ chối các nỗ lực ghép nối Bluetooth thông thường và chỉ chấp nhận ghép nối 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 khi lệnh 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 đồng hồ bị trôi đáng kể.
  • Khi quảng cáo các khung Ghép nối nhanh không phát hiện được, bạn không nên bật chỉ báo 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 được trong khi Trình cung cấp được cấp phép cho FMDN.
  • Trình cung cấp không được hiển thị 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ổ điển

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

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

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

  • Nhà cung cấp có thể định kỳ quảng cáo dữ liệu tài khoản Ghép nối nhanh để cho phép Trình tìm kiếm tìm thấy địa chỉ BLE thông qua quá trình 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 tin nhắn.
  • Nhà cung cấp có thể cung cấp dữ liệu này thông qua luồng thông báo Ghép nối nhanh qua Bluetooth cũ.
    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ể cung cấ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à dùng luồng này để thông báo cho Người 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ất định 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 truyền thông báo.

Phiên bản chương trình 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ở bổ sung tính năng hỗ trợ FMDN cho Nhà cung cấp, một Trình tìm kiếm đã kết nối có thể thông báo cho người dùng về điều đó và đề nghị cung cấp dịch vụ đó. 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 biểu thị 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ề Các thay đổi về Tính năng do bản cập nhật chương trình cơ sở.

Hình bát giác Loại dữ liệu Nội dung 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 Thời lượng dữ liệu bổ sung không cố định
var mảng byte Chuỗi phiên bản không cố định

Bảng 11: Sự kiện thông tin thiết bị: phiên bản chương trình 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 Nhà cung cấp đã 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.

Hình bát giác Loại dữ liệu Nội dung 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 Thời lượng dữ liệu bổ sung 0x0007
4 uint8 Trạng thái cấp phép FMDN 0x00 nếu không được cấp phép; 0x01 nếu được bất kỳ tài khoản nào cấp phép
5 - 10 mảng byte Địa chỉ BLE MAC hiện tại của thiết bị không cố định

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

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

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 và giá trị xung nhịp hiện tại khi 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 xảy ra sự cố trôi xung nhịp (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ốn kém hơn và kém tin cậy hơn cho mục đích này.

Hình bát giác Loại dữ liệu Nội dung 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 Thời lượng 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 lại về trạng thái ban đầu: nếu thực hiện đặt lại về trạng thái ban đầu, thì Nhà cung cấp phải ngừng phát tín hiệu và xoá khoá nhận dạng tạm thời cũng như mọi khoá tài khoản được 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 để 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

Các 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 trên nhiều nền tảng cho 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 của 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ị ở gầ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ụ Không phải chủ sở hữu phụ kiện và đặc điểm đượ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ả thao tác Thông tin phụ kiệnQuyền kiểm soát của người không phải chủ sở hữu.
  • Trong giai đoạn tương thích ngược, như định nghĩa trong thông số kỹ thuật DULT, không có thay đổi nào đối với khung quảng cáo như xác định trong tài liệu này.
  • "Chế độ chống theo dõi không mong muốn" được xác định trong tài liệu này sẽ ánh xạ tới "trạng thái phân tách" được xác định theo quy cách DULT.
  • Nguyên tắc triển khai các mã cơ sở 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, không có khoảng đệm nào để phù hợp với yêu cầu về 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ị chung "Trình theo dõi vị trí" nếu không có danh mục nào khác phù hợp hơn với loại thiết bị này.
    • Get_Accessory_Capabilities phải cho biết tính năng hỗ trợ đổ chuông cũng như 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ã vận hành 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 lần nhấn nút. Tín hiệu âm thanh hoặc hình ảnh 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ô hình để kích hoạt chế độ đó theo yêu cầu để 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 dưới dạng: 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 mã hoạt động Sound_Start:
    • Lệnh này sẽ kích hoạt chế độ đổ chuông trong tất cả các thành phần có sẵn.
    • Bạn nên sử dụng âm lượng tối đa được hỗ trợ.
    • Thời lượng chuông đề xuất để đổ chuông 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 tổ hợp các nút).
    • Bạn phải ghi lại hướng dẫn vô hiệu hoá trong một URL có sẵn công khai và cung cấp cho Google theo yêu cầu 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 đó.
    • 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=en") hoặc sử dụng tiêu đề HTTP "chấp nhận ngôn ngữ".

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

  • Bạn chỉ nên sử dụng một giao thức tại một thời điểm. Đảm bảo chỉ có một mạng có thể hoạt động trên thiết bị cùng lúc. Yêu cầu này là cần thiết để đảm bảo rằng không có dữ liệu nhạy cảm của người dùng kết hợp với nhau giữa các giao thức khác nhau.
  • Bạn nên kết hợp quy trình khôi phục chế độ cài đặt gốc 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 trong 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 công việc của riêng họ trong Ứng dụng web hoặc ứng dụng di động.

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

Mạng lưới Tìm thiết bị của tôi yêu cầu bật dịch vụ vị trí và Bluetooth. Cần phải có dịch vụ di động hoặc kết nối Internet. Hoạt động trên Android 9 trở lên và ở một số quốc gia 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 đầu tiên của thông số kỹ thuật FMDN để tiếp cận sớm.
v1.1 Feb 2023
  • Thêm chỉ báo dạng văn bản thô về chế độ bảo vệ hoạt động theo dõi không mong muốn.
  • Thêm tuỳ chọn bỏ qua bước xác thực các yêu cầu đổ chuông khi ở chế độ bảo vệ chống theo dõi không mong muốn.
v1.2 Tháng 4 năm 2023
  • Đã cập nhật định nghĩa về AK của chủ sở hữu.
  • Thêm nội dung đề xuất về cách khôi phục do mất điện trong thẻ định vị.
  • Thêm phần làm rõ cho việc sắp xếp ngẫu nhiên địa chỉ MAC.
  • Thêm thông tin làm rõ về việc xoay địa chỉ MAC khi ở chế độ bảo vệ theo dõi không mong muốn.
  • Thêm nguyên tắc 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 một yêu cầu để triển khai quy cách ngăn chặn hành vi theo dõi không mong muốn.
  • Thêm nguyên tắc về các thiết bị có giao thức có thể chuyển đổi.