v1.3
Cihaz Takip Merkezi Ağı (FHN) aksesuar spesifikasyonu, sinyal veren Bluetooth Low Energy (BLE) cihazlarını izlemek için uçtan uca şifrelenmiş bir yaklaşım tanımlar. Bu sayfada, FHN'nin Hızlı Eşleme spesifikasyonunun bir uzantısı olduğu açıklanmaktadır. FHN ile uyumlu cihazları olan ve bu cihazlar için konum takibini etkinleştirmek isteyen sağlayıcılar bu uzantıyı etkinleştirmelidir.
GATT Spesifikasyonu
Aşağıdaki anlamsal yapılarla Hızlı Eşleme Hizmeti'ne ek bir genel özellik (GATT) özelliği eklenmelidir:
| Hızlı Eşleme Hizmeti özelliği | Şifrelenmiş | İzinler | UUID |
|---|---|---|---|
| Beacon işlemleri | Hayır | Okuma, yazma ve bildirim gönderme | FE2C1238-8366-4814-8EB0-01DE32100BEA |
Tablo 1: FHN için Hızlı Eşleme Hizmeti özellikleri.
Kimlik doğrulama
Bu uzantının gerektirdiği işlemler, sorgu-yanıt mekanizmasıyla güvenli hale getirilmiş bir yazma işlemi olarak gerçekleştirilir. Herhangi bir işlem gerçekleştirmeden önce, Arayan'ın Tablo 1'deki özellikten bir okuma işlemi gerçekleştirmesi beklenir. Bu işlem, aşağıdaki biçimde bir arabellek oluşturur:
| Octet | Veri Türü | Açıklama | Değer |
|---|---|---|---|
| 0 | uint8 | Protokolün ana sürüm numarası | 0x01 |
| 1 - 8 | bayt dizisi | Tek seferlik rastgele nonce | değişir |
Her okuma işlemi farklı bir nonce ile sonuçlanmalı ve tek bir nonce yalnızca tek bir işlem için geçerli olmalıdır. İşlem başarısız olsa bile nonce geçersiz kılınmalıdır.
Daha sonra Seeker, sonraki bir yazma isteğinde kullanılacak tek kullanımlık bir kimlik doğrulama anahtarı hesaplar. Kimlik doğrulama anahtarı, 2-5. tablolarda açıklandığı şekilde hesaplanır. İstenen işleme bağlı olarak, Talep Sahibi aşağıdaki anahtarlardan bir veya daha fazlası hakkında bilgi sahibi olduğunu kanıtlar:
Hesap anahtarı: Hızlı Eşleme spesifikasyonunda tanımlandığı şekilde 16 baytlık Hızlı Eşleme hesap anahtarı.
Sahip hesabı anahtarı: Sağlayıcı, Arayan ilk kez Beacon İşlemleri özelliğine eriştiğinde mevcut hesap anahtarlarından birini sahip hesabı anahtarı olarak seçer. Seçilen sahip hesabı anahtarı, sağlayıcı fabrika ayarlarına sıfırlanana kadar değiştirilemez. Sağlayıcı, ücretsiz hesap anahtarı yuvaları tükendiğinde sahip hesabı anahtarını kaldırmamalıdır.
İlk kez eşleştirildiğinde (veya fabrika ayarlarına sıfırlamadan sonra eşleştirildiğinde) FHN'yi zaten destekleyen sağlayıcılar, ilk hesap anahtarını seçer. Çünkü bu, eşleştirme sırasında Arayan, sağlama durumunu okuduğunda mevcut olan tek hesap anahtarıdır.
Halihazırda eşlendikten sonra FHN desteği kazanan sağlayıcılar (ör. yazılım güncellemesi aracılığıyla) mevcut hesap anahtarlarından herhangi birini seçebilir. Güncellemeyi yapan kullanıcının sağlayıcının mevcut sahibi olduğu varsayıldığında, yazılım güncellemesinden sonra sağlama durumunu beacon işlemleri özelliğinden okumak için kullanılan ilk hesap anahtarını seçmek mantıklıdır.
Geçici kimlik anahtarı (EIK): FHN sağlama işlemi gerçekleştirilirken Arayan tarafından rastgele seçilen 32 baytlık bir anahtardır. Bu anahtar, konum raporlarını uçtan uca şifrelemek için kullanılan kriptografik anahtarları türetmek amacıyla kullanılır. Arayan bu anahtarı hiçbir zaman arka uca açıklamaz.
Kurtarma anahtarı:
SHA256(ephemeral identity key || 0x01)olarak tanımlanır ve ilk 8 baytla sınırlanır. Anahtar, arka uçta depolanır ve kullanıcı cihazdaki bir düğmeye basarak onay verdiği takdirde Seeker, EIK'yi kurtarmak için bu anahtarı kullanabilir.Çaldırma anahtarı:
SHA256(ephemeral identity key || 0x02)olarak tanımlanır ve ilk 8 baytla sınırlıdır. Anahtar, arka uçta saklanır ve Arayan, cihazı yalnızca çaldırmak için kullanabilir.İstenmeyen izlemeye karşı koruma anahtarı:
SHA256(ephemeral identity key || 0x03)olarak tanımlanır ve ilk 8 bayta kısaltılır. Anahtar, arka uçta saklanır ve Talep Sahibi, yalnızca istenmeyen izlemeye karşı koruma modunu etkinleştirmek için kullanabilir.
İşlemler
Özelliğe yazılan verilerin biçimi, Tablo 2-5'te verilmiştir. İşlemlerin her biri bu bölümün ilerleyen kısımlarında daha ayrıntılı olarak ele alınmıştır.
| Octet | Veri Türü | Açıklama | Değer |
|---|---|---|---|
| 0 | uint8 | Veri kimliği |
|
| 1 | uint8 | Veri uzunluğu | değişir |
| 2 - 9 | bayt dizisi | Tek seferlik kimlik doğrulama anahtarı | HMAC-SHA256(account key, protocol major version number || the last nonce
read from the characteristic || data ID || data length || additional data) dosyasının ilk 8 baytı |
| 10 - var | bayt dizisi < | Ek veriler |
|
Tablo 2: Beacon sağlama isteği.
| Octet | Veri Türü | Açıklama | Değer |
|---|---|---|---|
| 0 | uint8 | Veri kimliği | 0x04: Kullanıcı izniyle geçici kimlik anahtarını okuma |
| 1 | uint8 | Veri uzunluğu | 0x08 |
| 2 - 9 | bayt dizisi | Tek seferlik kimlik doğrulama anahtarı | HMAC-SHA256(recovery key, protocol major version number || the last nonce
read from the characteristic || data ID || data length) dosyasının ilk 8 baytı |
Tablo 3: Beacon sağlama anahtarı kurtarma isteği.
| Octet | Veri Türü | Açıklama | Değer |
|---|---|---|---|
| 0 | uint8 | Veri kimliği |
|
| 1 | uint8 | Veri uzunluğu | değişir |
| 2 - 9 | bayt dizisi | Tek seferlik kimlik doğrulama anahtarı | HMAC-SHA256(ring key, protocol major version number || the last nonce read
from the characteristic || data ID || data length || additional data) dosyasının ilk 8 baytı |
| 10 - var | bayt dizisi | Ek veriler |
|
Tablo 4: Çaldırma isteği.
| Octet | Veri Türü | Açıklama | Değer |
|---|---|---|---|
| 0 | uint8 | Veri kimliği |
|
| 1 | uint8 | Veri uzunluğu | değişir |
| 2 - 9 | bayt dizisi | Tek seferlik kimlik doğrulama anahtarı | HMAC-SHA256(unwanted tracking protection key, protocol major version number
|| the last nonce read from the characteristic || data ID || data length ||
additional data) dosyasının ilk 8 baytı |
| 10 - var | bayt dizisi | Ek veriler |
|
Tablo 5: İstenmeyen izlemeye karşı koruma isteği.
Başarılı yazma işlemleri, Tablo 6'da listelenen bildirimleri tetikler.
0x05: Zil durumu değişikliği dışındaki veri kimliğine sahip bildirimler, bildirimi tetikleyen yazma işlemi tamamlanmadan önce, yani yazma isteği için yanıt PDU'su gönderilmeden önce gönderilmelidir.
| Octet | Veri Türü | Açıklama | Değer |
|---|---|---|---|
| 0 | uint8 | Veri kimliği < |
|
| 1 | uint8 | Veri uzunluğu | değişir |
| 2 - 9 | bayt dizisi | Kimlik doğrulama | İşlem başına ayrıntılı |
| 10 - var < | bayt dizisi < | Ek veriler |
|
Tablo 6: Beacon hizmeti yanıtı.
Tablo 7'de, işlemler tarafından döndürülen olası GATT hata kodları listelenmektedir.
| Kod | Açıklama | Notlar |
|---|---|---|
| 0x80 | Kimliği doğrulanmamış | Kimlik doğrulama başarısız olduğunda (eski bir nonce kullanılması durumu dahil) bir yazma isteğine yanıt olarak döndürülür. |
| 0x81 | Geçersiz değer | Geçersiz bir değer sağlandığında veya alınan veriler beklenmedik sayıda bayt içerdiğinde döndürülür. |
| 0x82 | Kullanıcı izni yok | Cihaz eşleme modunda değilken veri kimliği 0x04: Kullanıcı izniyle geçici kimlik anahtarını oku olan bir yazma isteğine yanıt olarak döndürülür. |
Tablo 7: GATT hata kodları.
Beacon'ın parametresini okuma
İstekte Bulunan, 0x00 veri kimliğine sahip tablo 2'deki bir isteği içeren karakteristik üzerinde yazma işlemi gerçekleştirerek Sağlayıcı'ya işaretçinin parametrelerini sorgulayabilir. Sağlayıcı, sağlanan tek seferlik kimlik doğrulama anahtarının cihazda depolanan hesap anahtarlarından biriyle eşleştiğini doğrular.
Doğrulama başarısız olursa sağlayıcı, kimliği doğrulanmamış bir hata döndürür.
Başarılı olursa Sağlayıcı, tablo 6'dan bir yanıtla veri kimliği 0x00'ı bildirir. Sağlayıcı, veri segmentini aşağıdaki şekilde oluşturur:
| Octet | Veri Türü | Açıklama | Değer |
|---|---|---|---|
| 0 | uint8 | Kalibre edilmiş güç | 0 m'de alınan kalibre edilmiş güç ([-100, 20] aralığında bir değer). 1 dBm çözünürlükle işaretli tam sayı olarak gösterilir. |
| 1 - 4 | uint32 | Saat değeri | Saniye cinsinden mevcut saat değeri (big endian). |
| 5 | uint8 | Eğri seçimi | Şifreleme için kullanılan elips biçimli eğri:
|
| 6 | uint8 | Bileşenler | Zil çalabilen bileşen sayısı:
|
| 7 | uint8 | Zili çaldırma özellikleri | Desteklenen seçenekler şunlardır:
|
| 8-15 | bayt dizisi | Dolgu | AES şifrelemesi için sıfır dolgusu. |
Veriler, isteğin kimliğini doğrulamak için kullanılan hesap anahtarıyla AES-ECB-128 kullanılarak şifrelenmelidir.
Kimlik doğrulama segmenti, HMAC-SHA256(account key, protocol major version number || the last nonce read
from the characteristic || data ID || data length || additional data after
encryption || 0x01) öğesinin ilk 8 baytı olarak tanımlanır.
Beacon'ın sağlama durumunu okuma
Arayan, Tablo 2'deki 0x01 veri kimliğine sahip bir istekten oluşan özelliğe yazma işlemi yaparak Sağlayıcı'ya sinyalin sağlama durumunu sorgulayabilir. Sağlayıcı, sağlanan tek seferlik kimlik doğrulama anahtarının cihazda depolanan hesap anahtarlarından herhangi biriyle eşleştiğini doğrular.
Doğrulama başarısız olursa sağlayıcı, kimliği doğrulanmamış bir hata döndürür.
Başarılı olursa Sağlayıcı, tablo 6'dan bir yanıtla veri kimliği 0x01'i bildirir. Sağlayıcı, veri segmentini aşağıdaki şekilde oluşturur:
| Octet | Veri Türü | Açıklama | Değer |
|---|---|---|---|
| 0 | uint8 | Temel hazırlık durumu | Aşağıdaki değerlere sahip bir bit maskesi:
|
| 1-20 veya 32 | bayt dizisi | Mevcut geçici tanımlayıcı | Cihaz için ayarlanmışsa, mevcut geçici kimliği belirten 20 veya 32 bayt (kullanılan şifreleme yöntemine bağlı olarak) |
Kimlik doğrulama segmenti, HMAC-SHA256(account key, protocol major version number || the last nonce read
from the characteristic || data ID || data length || additional data || 0x01) öğesinin ilk 8 baytı olarak tanımlanır.
Geçici kimlik anahtarı ayarlama
Sağlanmamış bir sağlayıcıyı FHN sinyali olarak sağlamak veya zaten sağlanmış bir sağlayıcının kısa ömürlü kimlik anahtarını değiştirmek için Arayan, Tablo 2'deki 0x02 veri kimliğine sahip bir isteği içeren özelliğe yazma işlemi gerçekleştirir. Sağlayıcı şunları doğrular:
- Sağlanan tek seferlik kimlik doğrulama anahtarı, sahip hesabı anahtarıyla eşleşiyor.
- Geçici kimlik anahtarının karması sağlandıysa karması oluşturulmuş geçici kimlik anahtarı, mevcut geçici kimlik anahtarıyla eşleşir.
- Geçici kimlik anahtarının karması sağlanmadıysa Sağlayıcı'nın daha önce FHN işaretçisi olarak sağlanmadığını doğrulayın.
Doğrulama başarısız olursa sağlayıcı, kimliği doğrulanmamış bir hata döndürür.
İşlem başarılı olduğunda, geçici kimlik anahtarı eşleşen hesap anahtarı kullanılarak AES-ECB-128 ile şifresi çözülerek kurtarılır. Anahtar cihazda kalıcı hale getirilmeli ve bu noktadan itibaren Sağlayıcı, FHN çerçevelerinin reklamını yapmaya başlamalıdır. Yeni geçici kimlik anahtarı, BLE bağlantısı sonlandırıldıktan hemen sonra geçerlilik kazanır. Sağlayıcı, 0x02 veri kimliğine sahip tablo 6'daki bir yanıtla bildirimde bulunur.
Kimlik doğrulama segmenti, HMAC-SHA256(account key, protocol major version number || the last nonce read
from the characteristic || data ID || data length || 0x01) öğesinin ilk 8 baytı olarak tanımlanır.
Geçici kimlik anahtarını temizleyin
Sağlayıcının işaretçi bölümünün devre dışı bırakılması için Arayan, tablo 2'den gelen ve veri kimliği 0x03 olan bir isteği içeren bir yazma işlemi gerçekleştirir. Sağlayıcı şunları doğrular:
- Sağlanan tek seferlik kimlik doğrulama anahtarı, sahip hesabı anahtarıyla eşleşiyor.
- Karma oluşturulmuş kısa ömürlü kimlik anahtarı, mevcut kısa ömürlü kimlik anahtarıyla eşleşiyor.
Sağlayıcı, FHN sinyali olarak sağlanmamışsa veya doğrulama başarısız olursa kimliği doğrulanmamış bir hata döndürülür.
Başarılı olursa Sağlayıcı anahtarı unutur ve FHN çerçevelerinin reklamını durdurur.
Sağlayıcı, tablo 6'daki 0x03 veri kimlikli bir yanıtla bildirir.
Kimlik doğrulama segmenti, HMAC-SHA256(account key, protocol major version number || the last nonce read
from the characteristic || data ID || data length || 0x01) öğesinin ilk 8 baytı olarak tanımlanır.
Kullanıcı izniyle kısa ömürlü kimlik anahtarını okuma
Bu seçenek yalnızca kayıp bir anahtarı kurtarmak için kullanılabilir. Anahtar yalnızca Arayan tarafından yerel olarak saklanır. Bu nedenle, bu özellik yalnızca cihaz eşleme modundayken veya cihazda fiziksel bir düğmeye basıldıktan sonra sınırlı bir süre boyunca kullanılabilir (bu, kullanıcı izni anlamına gelir).
İstekte bulunan taraf, düz metin anahtarını kurtarabilmek için kurtarma anahtarını arka uçta saklamalıdır ancak EIK'yi saklamaz.
EIK'yi okumak için Arayan, tablo 3'ten veri kimliği 0x04 olan bir isteği içeren, özelliğe yönelik bir yazma işlemi gerçekleştirir. Sağlayıcı şunları doğrular:
- Karma oluşturma işlemi uygulanmış kurtarma anahtarı, beklenen kurtarma anahtarıyla eşleşiyor.
- Cihaz, EIK kurtarma modundadır.
Doğrulama başarısız olursa sağlayıcı, kimliği doğrulanmamış bir hata döndürür.
Cihaz eşleme modunda değilse Sağlayıcı, No User Consent (Kullanıcı İzni Yok) hatası döndürür.
Başarılı olursa Sağlayıcı, tablo 6'dan veri kimliği 0x04 olan bir yanıtla bildirir.
Kimlik doğrulama segmenti, HMAC-SHA256(recovery key, protocol major version number || the last nonce read
from the characteristic || data ID || data length || additional data || 0x01) öğesinin ilk 8 baytı olarak tanımlanır.
Çaldırma işlemi
İsteyen, Tablo 4'teki 0x05 veri kimlikli bir isteği içeren karakteristik üzerinde yazma işlemi yaparak Sağlayıcı'dan ses çalmasını isteyebilir. Sağlayıcı, veri segmentini aşağıdaki şekilde oluşturur:
| Octet | Veri Türü | Açıklama | Değer |
|---|---|---|---|
| 0 | uint8 | Çaldırma işlemi | Aşağıdaki değerlere sahip bir bit maskesi:
|
| 1 - 2 | uint16 | Zaman aşımı | Zaman aşımı, saniyenin onda biri cinsinden olmalıdır. Sıfır olmamalı ve 10 dakikaya eşdeğer süreden uzun olmamalıdır. Sağlayıcı, bu değeri kullanarak kendini sessize almadan önce ne kadar süre çalması gerektiğini belirler. Cihazın herhangi bir bileşeni zaten çalıyorsa zaman aşımı, halihazırda geçerli olan zaman aşımını geçersiz kılar. Çalma işlemi 0x00 olarak ayarlanırsa zaman aşımı yoksayılır. |
| 3 | uint8 | Ses |
|
Sağlayıcı, talebi aldıktan sonra şunları doğrular:
- Sağlanan tek seferlik kimlik doğrulama anahtarı, yüzük anahtarıyla eşleşmelidir.
- İstenen durum, zil çalabilen bileşenlerle eşleşiyor.
Sağlayıcı, FHN sinyali olarak sağlanmamışsa veya doğrulama başarısız olursa kimliği doğrulanmamış bir hata döndürülür. Ancak Sağlayıcı'da istenmeyen izlemeye karşı koruma etkinse ve tetikleyici istenmeyen izlemeye karşı koruma isteğinde zil sesini atlama kimlik doğrulama işareti etkinse Sağlayıcı bu kontrolü atlamalıdır. Kimlik doğrulama verilerinin, talep sahibi tarafından sağlanması beklenmeye devam eder ancak bu veriler rastgele bir değere ayarlanabilir.
Çalma başladığında veya sona erdiğinde, Tablo 6'da belirtildiği gibi 0x05 veri kimliğiyle bir bildirim gönderilir. Bildirimin içeriği aşağıdaki şekilde tanımlanır:
| Octet | Veri Türü | Açıklama | Değer |
|---|---|---|---|
| 0 | uint8 | Zil çalma durumu |
|
| 1 | uint8 | Zili çaldırma bileşenleri | İstek içinde tanımlandığı şekilde, aktif olarak çalan bileşenlerin bit maskesi. |
| 2 - 3 | uint16 | Zaman aşımı | Çalmaya devam etme için kalan süre (desisaniye cinsinden). Cihazın zili çalmayı durdurduysa 0x0000 döndürülmelidir. |
Kimlik doğrulama segmenti, HMAC-SHA256(ring key, protocol major version number || the nonce used to
initiate the ringing command || data ID || data length || additional data ||
0x01) öğesinin ilk 8 baytı olarak tanımlanır.
Çaldırma veya çaldırmayı durdurma isteği alındığında cihaz zaten istenen çaldırma durumundaysa Sağlayıcı, sırasıyla çaldırma durumu veya 0x00: Başlatıldı ya da 0x04: Durduruldu (GATT isteği) ile ilgili bir bildirim göndermelidir. Bu istek, mevcut durumun parametrelerini geçersiz kılar. Böylece çaldırma süresi uzatılabilir.
Sağlayıcı'nın fiziksel bir düğmesi varsa (veya dokunma algılama özelliği etkinse) bu düğme, çalma işlevi etkin durumdayken basıldığında çalma işlevini durdurmalıdır.
Beacon'ın çalma durumunu alma
Arayan, sinyalin çalma durumunu almak için 0x06 veri kimliğine sahip 4. tablodan gelen bir istekten oluşan karakteristik üzerinde yazma işlemi gerçekleştirir. Sağlayıcı, sağlanan tek seferlik kimlik doğrulama anahtarının yüzük anahtarıyla eşleştiğini doğrular.
Sağlayıcı, FHN sinyali olarak sağlanmamışsa veya doğrulama başarısız olursa sağlayıcı, kimliği doğrulanmamış bir hata döndürür.
Başarılı olursa Sağlayıcı, tablo 6'dan veri kimliği 0x06 olan bir yanıtla bildirimde bulunur. Sağlayıcı, veri segmentini aşağıdaki şekilde oluşturur:
| Octet | Veri Türü | Açıklama | Değer |
|---|---|---|---|
| 0 | uint8 | Zili çaldırma bileşenleri | Çalma isteğinde tanımlandığı şekilde aktif olarak çalan bileşenler. |
| 1 - 2 | uint16 | Zaman aşımı | Çalmaya devam etme için kalan süre (desisaniye cinsinden). Cihazın zili çalmıyorsa 0x0000 döndürülmesi gerektiğini unutmayın. |
Kimlik doğrulama segmenti, HMAC-SHA256 (ring key, protocol major version number || the last nonce read
from the characteristic || data ID || data length || additional data || 0x01) öğesinin ilk 8 baytı olarak tanımlanır.
İstenmeyen takibe karşı koruma modu
İstenmeyen takip koruması modu, herhangi bir istemcinin sunucu iletişimi olmadan kötüye kullanım amaçlı cihazları tanımlamasına olanak tanımak için tasarlanmıştır. Varsayılan olarak, Sağlayıcı tüm tanımlayıcıları Kimlik döndürme bölümünde açıklandığı şekilde döndürmelidir. Cihaz Takip Merkezi hizmeti, Cihaz Takip Merkezi ağı üzerinden istenmeyen takip koruması modu etkinleştirme isteğini iletebilir. Böylece, hizmet Sağlayıcı'nın geçici olarak sabit bir MAC adresi kullanmasına neden olur. Bu da istemcilerin cihazı algılamasına ve kullanıcıyı olası istenmeyen takip konusunda uyarmasına olanak tanır.
Beacon'un istenmeyen izleme koruması modunu etkinleştirmek veya devre dışı bırakmak için Seeker, sırasıyla veri kimliği 0x07 veya 0x08 olan tablo 5'ten gelen bir istekten oluşan özelliğe bir yazma işlemi gerçekleştirir.
İstenmeyen takip koruması modu etkinleştirildiğinde
Sağlayıcı, veri segmentini aşağıdaki şekilde oluşturur:
| Octet | Veri Türü | Açıklama | Değer |
|---|---|---|---|
| 0 | uint8 | Kontrol İşaretleri <0x0A |
İşaretler yalnızca istenmeyen izlemeye karşı koruma modu devre dışı bırakılana kadar geçerlidir. |
Sağlayıcı, sağlanan tek seferlik kimlik doğrulama anahtarının istenmeyen izlemeye karşı koruma anahtarıyla eşleştiğini doğrular. Sağlayıcı, FHN işaretçisi olarak sağlanmamışsa veya doğrulama başarısız olursa kimliği doğrulanmamış bir hata döndürür.
İstenmeyen izlemeye karşı koruma modu etkinleştirildiğinde işaret, MAC özel adres döndürme sıklığını 24 saatte bir olacak şekilde azaltmalıdır. Reklamı yapılan kısa ömürlü tanımlayıcı her zamanki gibi değişmeye devam etmelidir. Çerçeve türü 0x41 olarak ayarlanmalıdır. Durum, karma oluşturma algoritması uygulanmış işaretler bölümüne de yansıtılır.
İstenmeyen takip koruması modu devre dışı bırakılırken
Sağlayıcı şunları doğrular:
- Sağlanan tek seferlik kimlik doğrulama anahtarı, istenmeyen takibe karşı koruma anahtarıyla eşleşiyor.
- Karma oluşturulmuş kısa ömürlü kimlik anahtarı, mevcut kısa ömürlü kimlik anahtarıyla eşleşiyor.
Sağlayıcı, FHN sinyali olarak sağlanmamışsa veya doğrulama başarısız olursa sağlayıcı, kimliği doğrulanmamış bir hata döndürür.
İstenmeyen izlemeye karşı koruma modu devre dışı bırakıldığında, işaretçi geçici tanımlayıcı döndürmeyle senkronize olarak MAC adresini normal hızda tekrar döndürmeye başlamalıdır. Çerçeve türü tekrar 0x40 olarak ayarlanmalıdır. Durum, karma oluşturma işlemi uygulanmış işaretler bölümüne de yansıtılır.
Başarılı olursa Sağlayıcı, 0x07 veya 0x08 veri kimliğine sahip tablo 6'dan bir yanıtla bildirir.
Kimlik doğrulama segmenti, HMAC-SHA256(unwanted tracking protection key, protocol major version number ||
the last nonce read from the characteristic || data ID || data length ||
0x01) öğesinin ilk 8 baytı olarak tanımlanır.
Hassas Bulma
Bu bölümde, akış ve hassas bulma için gereken ek işlemler ayrıntılı olarak açıklanmaktadır. GATT özelliği ve kimlik doğrulama ile ilgili olarak GATT spesifikasyon bölümünde tanımlanan kurallar burada da geçerlidir. Hassas Bulma isteğe bağlıdır.
Hassas bulma türü, hassas bulma işlemine dahil olan cihazlarda desteklenen mesafe ölçme teknolojilerinin türüne bağlıdır. Desteklenen mesafe ölçme teknolojilerini Mesafe ölçme: Bant dışı mesaj dizisi ve yük spesifikasyonunda bulabilirsiniz. Sonraki bölümlerde, kullanılan mesafe ölçme teknolojisine bağlı olarak ne tür bir hassas bulma deneyimi beklenebileceği ele alınmaktadır.
Hassas Bulma akışı
Bu bölümde, hassas bulma için FHNA mesaj akışı incelenmektedir. Şekil 1'de ileti akışı gösterilmekte, paragraflarda ise her ileti daha ayrıntılı olarak açıklanmaktadır.

Şekil 1: Tipik Kesin Sonuç mesaj akışı
Başlatıcı cihaz, Cihaz Takip Merkezi uygulamasının bulunduğu ve hassas bulma özelliğinin etkinleştirildiği cihazdır. Başlatıcı, diğer cihazı bulmaya çalışan cihazdır.
Yanıtlayıcı cihaz, Başlatıcı cihaz tarafından bulunmaya çalışılan cihazdır.
Başlatan cihaz, yanıtlayan cihaza bir mesafe ölçme özelliği isteği mesajı gönderir. Bu mesajda, yanıtlayan cihazdan öğrenmek istediği mesafe ölçme teknolojileri listelenir. Yanıt veren cihaz, hangi mesafe ölçme teknolojilerinin desteklendiği ve bu teknolojilerin özellikleri hakkında bilgi içeren Mesafe Ölçme Özelliği Yanıtı bildirimiyle yanıt verir. Yanıtlayıcı, yalnızca başlatıcı tarafından istenen bilgileri içerir. Özellikler listesi, yanıtlayıcı cihazın tercih ettiği mesafe ölçme teknolojisinin önceliğine göre sıralanır. Listedeki ilk öğe en yüksek önceliğe sahiptir.
Başlatan cihaz daha sonra bir Mesafe Yapılandırma mesajı göndererek mesafe ölçmek istediği her mesafe ölçme teknolojisinin yapılandırmasını tanımlar. Yanıtlayıcı cihaz, bu mesajı aldıktan sonra sağlanan yapılandırmaları kullanarak geçerli teknolojiler için mesafe ölçümüne başlamalıdır. Yanıt veren cihaz, her bir mesafe ölçme teknolojisinin başarıyla başlatılıp başlatılmadığına dair sonuçları içeren bir Mesafe Ölçme Yapılandırması yanıt bildirimi gönderir. Bazı mesafe ölçme teknolojilerinde başarılı bir mesafe ölçme oturumu için hem Başlatan hem de Yanıtlayan cihazda başlatma işlemi yapılması gerekirken bazılarında yalnızca Başlatan cihazda başlatma işlemi yapılması yeterlidir. Ancak bu tür teknolojilerde Yanıtlayan cihazın başarılı bir sonuçla yanıt vermesi gerekir. Belirli mesafe ölçme teknolojisi davranışları hakkında daha fazla bilgiyi sonraki bölümlerde bulabilirsiniz.
Başlatıcı cihaz, hassas bulma oturumunu durdurmaya hazır olduğunda yanıtlayıcıya, hangi mesafe ölçme teknolojilerinin mesafe ölçmeyi durdurması gerektiğini belirten bir mesafe ölçmeyi durdurma mesajı gönderir. Yanıtlayıcı cihaz, istenen mesafe ölçme teknolojileriyle mesafe ölçmeyi başarıyla durdurduğunu belirten bir mesafe ölçmeyi durdurma yanıtı bildirimiyle yanıt verir.
FHNA BLE GATT iletişim kanalının, Precision Finding oturumunun ortasında bağlantısının kesilmesi ancak bazı mesafe ölçme teknolojilerinin hâlâ mesafe ölçtüğü durumlarda, yanıtlayıcı cihazın süresiz olarak mesafe ölçmemesini sağlamak için bir zaman aşımı mekanizması uygulanır. Ayrıntılar, her kullanım alanına göre değişir.
Yanıt veren cihazın, işlemlerin sırasının her zaman aynı olacağını varsaymaması gerektiğini unutmayın. Örneğin, yanıt veren cihaz, art arda birden fazla Ranging Capability istek işlemini veya hatta önceki yetenek isteği olmadan doğrudan Ranging Configuration işlemini gerçekleştirebilmelidir.
Hassas Bulma İşlemleri
Tablo 8'de, bu belgede tanımlanan ve hassas bulma için gerekli olan FHNA işlemleri gösterilmektedir. Her alt bölüm, işlemlerin her biri için FHNA mesajını tanımlarken Ek Veriler alanının içeriği Ranging: Out-of-band message sequence and payload (Menzil: Bant dışı mesaj dizisi ve yük) spesifikasyonunu ifade eder.
| İşlem | Veri kimliği | Açıklama |
|---|---|---|
| Mesafe Belirleme Özelliği İsteği | 0x0A | Başlatan cihaz tarafından yanıtlayan cihaza gönderilecek özellik isteği işlemi. Bu işlemin veri içeriğinde, Başlatan'ın Yanıtlayan cihazdan öğrenmek istediği tüm mesafe ölçme teknolojileri listelenir. |
| Mesafe Belirleme Özelliği Yanıtı | 0x0A | Bu, Ranging Capability Request işlemine verilen bildirim yanıtıdır. Başlatan tarafından istenen, desteklenen her mesafe ölçme teknolojisinin özellikleri hakkında bilgiler içerir. |
| Mesafe Ölçme Yapılandırması | 0x0B | Mesafe ölçümü yapılandırma işlemi, Başlatıcı cihazın Yanıtlayıcı cihazla mesafe ölçümü başlatmak istediği mesafe ölçümü teknolojilerinin yapılandırmalarını içerir. |
| Mesafe Belirleme Yapılandırma Yanıtı | 0x0B | Bu, Ranging Configuration işlemiyle ilgili bildirim yanıtıdır. Bu alan, yanıtlayıcı cihazın sağlanan yapılandırmaya göre istenen aralık teknolojileriyle aralık ölçümüne başarıyla başlayıp başlamadığıyla ilgili verileri içerir. |
| RFU | 0x0C | Bu veri kimliğiyle yapılan işlem kullanılmaz ve gelecekte kullanılmak üzere ayrılmıştır. |
| Mesafeyi ölçmeyi durdurma | 0x0D | Başlatan cihaz tarafından gönderilen Stop Ranging işlemi, Yanıtlayan cihazın hangi mesafe ölçme teknolojileriyle mesafe ölçmeyi durdurması gerektiği hakkında bilgiler içerir. |
| Mesafe ölçme yanıtını durdurma | 0x0D | Bu, Stop Ranging işlemine verilen bildirim yanıtıdır. Belirli bir mesafe ölçme teknolojisi için durdurma işleminin başarılı olup olmadığına dair veriler içerir. |
Tablo 8: Hassas Bulma İşlemleri.
Mesafe ölçme özelliği isteği işlemi
Tablo 9, Ranging Capability Request mesajını tanımlar.
| Octet | Veri türü | Açıklama | Değer |
|---|---|---|---|
| 0 | uint8 | Veri kimliği | 0x0A: Mesafe ölçme özelliği isteği işlemi |
| 1 | uint8 | Veri uzunluğu | değişir |
| 2 | bayt dizisi | Tek seferlik kimlik doğrulama anahtarı | HMAC-SHA256(Hesap Anahtarı, Protokolün ana sürüm numarası || Özellikten okunan son nonce || Veri Kimliği || Veri uzunluğu || Ek Veriler) değerinin ilk 8 baytı. |
| 10 | bayt dizisi | Ek Veriler | Ranging: Out-of-band message sequence and payload spesifikasyonunda tanımlandığı şekilde Ranging Capability Request mesajı (hem başlık hem de yük) |
Tablo 9: Mesafe ölçme özelliği isteği.
Mesafe ölçme özelliği yanıt işlemi
Tablo 10, Ranging Capability Response mesajını tanımlar.
| Octet | Veri türü | Açıklama | Değer |
|---|---|---|---|
| 0 | uint8 | Veri kimliği | 0x0A: Ranging Capability Response |
| 1 | uint8 | Veri uzunluğu | değişir |
| 2 | bayt dizisi | Tek seferlik kimlik doğrulama anahtarı | HMAC-SHA256(Hesap Anahtarı, Protokolün ana sürüm numarası || Özellikten okunan son nonce || Veri Kimliği || Veri uzunluğu || Ek Veriler || 0x01) değerinin ilk 8 baytı. |
| 10 | bayt dizisi | Ek Veriler | Ranging: Out-of-band message sequence and payload spesifikasyonunda tanımlandığı şekilde Ranging Capability Response mesajı (hem üstbilgi hem de yük) |
Tablo 10: Mesafe ölçme özelliği yanıtı.
Mesafe ölçme yapılandırma işlemi
Tablo 11, Mesafe Yapılandırması mesajını tanımlar.
| Octet | Veri türü | Açıklama | Değer |
|---|---|---|---|
| 0 | uint8 | Veri kimliği | 0x0B - Set Ranging Configuration (Mesafe Belirleme Yapılandırmasını Ayarla) |
| 1 | uint8 | Veri uzunluğu | değişir |
| 2 | bayt dizisi | Tek seferlik kimlik doğrulama anahtarı | HMAC-SHA256(Hesap Anahtarı, Protokolün ana sürüm numarası || Özellikten okunan son nonce || Veri Kimliği || Veri uzunluğu || Ek Veriler) değerinin ilk 8 baytı. |
| 10 | bayt dizisi | Ek Veriler | Ranging: Out-of-band message sequence and payload spesifikasyonunda tanımlandığı şekilde Ranging Configuration mesajı (hem üstbilgi hem de yük) |
Tablo 11: Mesafe Yapılandırması.
Ranging Configuration Response işlemi
Tablo 12, Mesafe Yapılandırması Yanıtı mesajını tanımlar.
| Octet | Veri türü | Açıklama | Değer |
|---|---|---|---|
| 0 | uint8 | Veri kimliği | 0x0B - Set Ranging Configuration Response |
| 1 | uint8 | Veri uzunluğu | değişir |
| 2 | bayt dizisi | Tek seferlik kimlik doğrulama anahtarı | HMAC-SHA256(Hesap Anahtarı, Protokolün ana sürüm numarası || Özellikten okunan son nonce || Veri Kimliği || Veri uzunluğu || Ek Veriler || 0x01) değerinin ilk 8 baytı. |
| 10 | bayt dizisi | Ek Veriler | Ranging: Out-of-band message sequence and payload spesifikasyonunda tanımlandığı şekilde Ranging Configuration Response mesajı (hem başlık hem de yük) |
Tablo 12: Mesafe Yapılandırma Yanıtı.
Mesafe ölçme işlemini durdurma
Tablo 13, Stop Ranging mesajını tanımlar.
| Octet | Veri türü | Açıklama | Değer |
|---|---|---|---|
| 0 | uint8 | Veri kimliği | 0x0D - Ranging Stop |
| 1 | uint8 | Veri uzunluğu | değişir |
| 2 | bayt dizisi | Tek seferlik kimlik doğrulama anahtarı | HMAC-SHA256(Hesap Anahtarı, Protokolün ana sürüm numarası || özellikten okunan son nonce || Veri Kimliği || Veri uzunluğu) değerinin ilk 8 baytı. |
| 10 | bayt dizisi | Ek Veriler | Ranging: Out-of-band message sequence and payload (Mesafe Belirleme: Bant dışı ileti dizisi ve yük) spesifikasyonunda tanımlandığı şekilde Stop Ranging (Mesafe Belirlemeyi Durdur) iletisi (hem üstbilgi hem de yük) |
Tablo 13: Aralık Belirlemeyi Durdurma.
Stop Ranging Response işlemini durdurma
Tablo 14, Stop Ranging Response mesajını tanımlar.
| Octet | Veri türü | Açıklama | Değer |
|---|---|---|---|
| 0 | uint8 | Veri kimliği | 0x0D: Mesafe ölçümünü durdurma yanıtı |
| 1 | uint8 | Veri uzunluğu | değişir |
| 2 | bayt dizisi | Tek seferlik kimlik doğrulama anahtarı | HMAC-SHA256(Hesap Anahtarı, Protokolün ana sürüm numarası || Özellikten okunan son nonce || Veri Kimliği || Veri uzunluğu || Ek Veriler || 0x01) değerinin ilk 8 baytı. |
| 10 | bayt dizisi | Ek Veriler | Ranging: Out-of-band message sequence and payload spesifikasyonunda tanımlandığı şekilde Stop Ranging Response mesajı (hem başlık hem de yük) |
Tablo 14: Mesafe Belirleme Yanıtını Durdurma.
Hassas Bulma ile istenmeyen takibe karşı koruma
İstenmeyen takip koruması modu etkinleştirildiğinde (istenmeyen takip koruması bölümünde açıklandığı gibi), zil çaldırma mesajları için kimlik doğrulama kontrollerini atlama konusunda geçerli olan akış, bu özelliği desteklemek isteyen cihazlar için bu belgede tanımlanan tüm hassas bulma mesajları için de geçerlidir.
Hassas Bulma için mesafe ölçme teknolojisiyle ilgili ayrıntılar
Bu bölümde, teknolojiye özel ayrıntılar yer alır.
Ultra geniş bant (UWB) özellikleri
Ultra Geniş Bant ile ilgili ayrıntılar
Hassas Bulma düzeyi
Mesafe ölçme teknolojisi olarak UWB'nin kullanıldığı Hassas Bulma oturumlarında hem mesafe hem de yön bilgileri gösterilir. Mesafe ölçme aralığı en az 240 ms olmalıdır. Optimum rehberlik için 96 ms tercih edilir.
Yapılandırma Kimlikleri
UWB için bant dışı yapılandırma verileri, UWB'nin bir UWB mesafe ölçümü oturumu başlatmak için ihtiyaç duyduğu, yapılandırılabilir parametrelerin tam setini içermez. Bazı parametreler, seçilen yapılandırma kimliği tarafından örtülü olarak seçilir.
Her yapılandırma kimliği, herkese açık olarak belgelenmişönceden tanımlanmış bir UWB yapılandırma parametreleri kümesidir. Hassas Bulma kullanım alanında, yanıt veren cihazın yapılandırma kimliği 6'yı ve isteğe bağlı olarak yapılandırma kimliği 3'ü desteklemesi gerekir.
UWB Başlatan ve Yanıtlayan
Hassas Bulma kullanım alanında, bu belgede Başlatıcı cihaz olarak belirtilen cihaz UWB yanıtlayıcısı, bu belgede Yanıtlayıcı cihaz olarak belirtilen cihaz ise UWB başlatıcısı olacaktır. Bunun nedeni, UWB başlatıcı cihazın UWB yanıtlayıcıya göre daha az güç tüketmesi ve çoğu durumda yanıtlayıcı cihazın sınırlı pil ömrüne sahip bir çevre birimi olmasıdır.
Bu, Yanıtlayıcı cihazın, Mesafe Belirleme Yeteneği Yanıtı mesajında UWB başlatıcı rolünü desteklediğini belirtmesi gerektiği anlamına gelir.
UWB ile ilgili diğer parametreler
- Channel 9 desteklenmelidir.
- En iyi kılavuzluk için 96 ms aralık önerilir. Aksi takdirde 240 ms desteklenmelidir.
- Pil tasarrufu için 1 ms yuva süresi önerilir ancak 2 ms de desteklenir.
- UWB çipi en az FIRA v1.2 + P-STS uyumlu olmalıdır.
- BPRF zorunludur, HPRF ise önerilir ancak isteğe bağlıdır. Desteklenen veya seçilen mod, desteklenen ya da seçilen önsöz dizini tarafından belirlenir.
- Oturum güvenlik türü: P-STS
BDE Kanal Seslendirme (CS) özellikleri
BLE CS'ye özgü ayrıntılar.
Hassas Bulma düzeyi
Mesafe ölçüm teknolojisi olarak CS'nin kullanıldığı Hassas Bulma oturumlarında yalnızca mesafe ölçümleri yapılır. Yön bilgisi şu anda sağlanmamaktadır.
Cihazlar arasında eşleme yapılması gerekir
Kanal sondalama kullanılarak yapılan hassas bulma oturumları, cihazlar bağlı değilse çalışmaz. Başlatan cihaz ile yanıtlayan cihaz arasında mevcut bir bağ olması gerekir. Bu spesifikasyon, cihazlar arasında bağ oluşturma yöntemi sağlamaz. Bunun yerine, cihazlar arasında bu bağı kurmak kullanım alanının geliştiricisine bağlıdır.
CS için yanıtlayanın işlem yapması gerekiyor
Her iki cihazın da UWB başlatma ve durdurma API'lerini açıkça çağırması gereken UWB'nin aksine, CS için Bluetooth yığınını çağırarak CS aralığını başlatmak yalnızca başlatıcı cihazın sorumluluğundadır. Yanıtlayıcı taraftaki başlatma işleminin geri kalanı Bluetooth (BT) kullanılarak bant içi olarak yapılır. Bu, CS için aralık yapılandırma mesajı veya aralık durdurma mesajı alındığında, BT etkinse yanıtlayıcı tarafın aralık yapılandırma yanıtı mesajı bildirimiyle yanıtlamanın dışında herhangi bir işlem yapması gerekmediği anlamına gelir. Yanıtlayıcı cihaz, bu mesajları ekranın bulunduğu kullanıcı arayüzünü güncellemek için tetikleyici olarak kullanabilir. Ekran olmasa bile bu mesajlar, cihazın durumuna ilişkin görsel geri bildirim için (ör. cihaz LED'lerinin yanıp sönmesi) kullanılabilir.
Kablosuz NAN RTT
Wi-Fi NAN RTT ile ilgili ayrıntılar.
Hassas Bulma düzeyi
Mesafe ölçüm teknolojisi olarak kablosuz NAN RTT'nin kullanıldığı Hassas Bulma oturumlarında yalnızca mesafe ölçümleri yapılır. Yön bilgisi şu anda sağlanmamaktadır.
BLE RSSI
BLE RSSI ile ilgili ayrıntılar.
Hassas Bulma düzeyi
Mesafe ölçme teknolojisi olarak yalnızca BLE RSSI'nin kullanıldığı hassas bulma oturumlarında, BLE RSSI'nin doğru bir mesafe ölçme teknolojisi olmaması nedeniyle mesafe veya yön bilgisi alınamaz. Bunun yerine, kullanıcıya cihazın yakın veya uzak olduğunu belirten bir yönlendirme gösterilir.
Reklam çerçeveleri
Teme hazırlıktan sonra Sağlayıcı'nın, FHN çerçevelerini en az 2 saniyede bir kez yayınlaması beklenir. Hızlı Eşleme çerçeveleri reklamı yapılıyorsa Sağlayıcı, FHN çerçevelerini normal Hızlı Eşleme reklamlarına yerleştirmelidir. Örneğin, Sağlayıcı her iki saniyede bir yedi Hızlı Eşleme reklamı ve bir FHN reklamı yayınlamalıdır.
FHN reklamları için yapılan Bluetooth iletim gücü en az 0 dBm olarak ayarlanmalıdır.
FHN çerçevesi, kitle kaynaklı ağa katkıda bulunan tüm destekleyici istemciler tarafından konum raporlarını şifrelemek için kullanılan bir ortak anahtar taşır. İki tür eliptik eğri anahtarı vardır: eski BDE 4 çerçevelerine uyan 160 bitlik anahtar veya genişletilmiş bildirme özelliklerine sahip BDE 5 gerektiren 256 bitlik anahtar. Hangi eğrinin kullanılacağını sağlayıcının uygulaması belirler.
Bir FHN çerçevesi aşağıdaki gibi yapılandırılır.
| Octet | Değer | Açıklama |
|---|---|---|
| 0 | 0x02 | Uzunluk |
| 1 | 0x01 | İşaretler veri türü değeri |
| 2 | 0x06 | İşaret verileri |
| 3 | 0x18 veya 0x19 | Uzunluk |
| 4 | 0x16 | Hizmet verileri veri türü değeri |
| 5 | 0xAA | 16 bit hizmet UUID'si |
| 6 | 0xFE | ... |
| 7 | 0x40 veya 0x41 | İstenmeyen izlemeye karşı koruma modu göstergesi içeren FHN çerçeve türü |
| 8..27 | 20 baytlık kısa ömürlü tanımlayıcı | |
| 28 | Karma oluşturma işlemi uygulanmış işaretler |
Tablo 15: 160 bitlik bir eğriyi destekleyen FHN çerçevesi.
Tablo 16, 256 bitlik bir eğri için bayt uzaklıklarını ve değerlerini gösterir.
| Octet | Değer | Açıklama |
|---|---|---|
| 0 | 0x02 | Uzunluk |
| 1 | 0x01 | İşaretler veri türü değeri |
| 2 | 0x06 | İşaret verileri |
| 3 | 0x24 veya 0x25 | Uzunluk |
| 4 | 0x16 | Hizmet verileri veri türü değeri |
| 5 | 0xAA | 16 bit hizmet UUID'si |
| 6 | 0xFE | ... |
| 7 | 0x40 veya 0x41 | İstenmeyen izlemeye karşı koruma modu göstergesi içeren FHN çerçeve türü |
| 8..39 | 32 baytlık kısa ömürlü tanımlayıcı | |
| 40 | Karma oluşturma işlemi uygulanmış işaretler |
Tablo 16: 256 bitlik bir eğriyi destekleyen FHN çerçevesi.
Kısa ömürlü tanımlayıcı (EID) hesaplama
Aşağıdaki veri yapısı, geçici kimlik anahtarıyla AES-ECB-256 kullanılarak şifrelenerek rastgele bir sayı oluşturulur:
| Octet | Alan | Açıklama |
|---|---|---|
| 0 - 10 | Dolgu | Değer = 0xFF |
| 11 | K | Dönme süresi üssü |
| 12 - 15 | TS[0]...TS[3] | 32 bit büyük endian biçiminde işaretçi zaman sayacı. En düşük K bit temizlenir. |
| 16 - 26 | Dolgu | Değer = 0x00 |
| 27 | K | Dönme süresi üssü |
| 28 - 31 | TS[0]...TS[3] | 32 bit büyük endian biçiminde işaretçi zaman sayacı. En düşük K bit temizlenir. |
Tablo 17: Sözde rastgele sayı oluşturma.
Bu hesaplamanın sonucu, r' ile gösterilen 256 bitlik bir sayıdır.
Hesaplamanın geri kalanında, SECP160R1 veya SECP256R1, eliptik eğri kriptografik işlemleri için kullanılır. Fp, n ve G değerlerini tanımlayan
BÖLÜM 2: Önerilen Eliptik Eğri Alan Parametreleri'ndeki eğri tanımlarına bakın.
r', r = r' mod n hesaplanarak sonlu alan Fp'a yansıtılır.
Son olarak, kullanılan ortak anahtarı temsil eden eğri üzerindeki bir nokta olan R = r * G hesaplanır. Beacon, geçici tanımlayıcısı olarak R'nin x koordinatı olan Rx'i duyurur.
Karma oluşturma işlemi uygulanmış işaretler
Karma oluşturma işlemi uygulanmış işaretler alanı aşağıdaki gibi hesaplanır (bitler en anlamlıdan en az anlamlıya doğru referans alınır):
- Bit 0-4: Ayrılmış (sıfır olarak ayarlanır).
- 5-6. bitler, cihazın pil seviyesini aşağıdaki gibi gösterir:
- 00: Pil seviyesi göstergesi desteklenmiyor
- 01: Normal pil seviyesi
- 10: Düşük pil seviyesi
- 11: Pil seviyesi çok düşük (pili yakında değiştirmeniz gerekiyor)
- Beacon istenmeyen izlemeye karşı koruma modundaysa 7. bit 1, aksi takdirde 0 olarak ayarlanır.
Bu baytın son değerini oluşturmak için SHA256(r) değerinin en az anlamlı baytı ile XOR işlemi yapılır.
r'nin eğrinin boyutuyla uyumlu olması gerektiğini unutmayın. Gösterimi 160 veya 256 bit'ten kısaysa en anlamlı bitler olarak sıfır ekleyin ya da gösterimi 160 veya 256 bit'ten büyükse en anlamlı bitler kesilmelidir.
Beacon, pil seviyesi göstergesini desteklemiyorsa ve istenmeyen takip koruması modunda değilse bu baytın reklamdan tamamen çıkarılmasına izin verilir.
EID ile şifreleme
Bir mesajı şifrelemek m için gözlemci (işaretten Rx okumuş olan) şunları yapar:
- EID hesaplama bölümünde tanımlandığı şekilde,
siçinde rastgele bir sayıFpseçin. - İşlem
S = s * G. - Eğri denkleminde yerine koyma işlemi yaparak ve olası sonuçlar arasından rastgele bir
Rydeğeri seçerekR = (Rx, Ry)değerini hesaplayın. k = HKDF-SHA256((s * R)x)256 bit AES anahtarını hesaplayın. Burada(s * R)x, eğri çarpma işleminin sonucununxkoordinatıdır. Tuz belirtilmemiş.URxveLRx, büyük endian biçiminde sırasıylaRx'nin üst ve alt 80 bit'i olsun. Benzer şekilde,SiçinUSxveLSxdeğerlerini tanımlayın.- İşlem
nonce = LRx || LSx. - İşlem
(m’, tag) = AES-EAX-256-ENC(k, nonce, m). (URx, Sx, m’, tag), güvenilmeyen bir uzak hizmet üzerinden sahibine gönderilir.
EID ile şifrelenen değerlerin şifresini çözme
EIK'ye ve rotasyon dönemi üssüne sahip olan sahibin istemcisi, mesajı aşağıdaki şekilde şifre çözer:
URxdeğeri verildiğinde,URxdeğerinin temel alındığı işaretçi zaman sayacı değerini elde edin. Bu, son geçmiş ve yakın gelecekteki işaretçi zamanı sayaç değerleri için sahibin istemci bilgisayarınınRxdeğerleri kullanılarak yapılabilir.URxdeğerinin dayandığı işaretçi zaman sayacı değeri göz önüne alındığında,rdeğerinin EID hesaplama bölümünde tanımlandığı şekilde beklenen değerini hesaplayın.R = r * Gdeğerini hesaplayın ve gözlemci tarafından sağlananURxdeğeriyle eşleşip eşleşmediğini doğrulayın.- Eğri denkleminde yerine koyma işlemi yaparak ve olası sonuçlar arasından rastgele bir
Sydeğeri seçerekS = (Sx, Sy)değerini hesaplayın. k = HKDF-SHA256((r * S)x)değerini hesaplayın. Burada(r * S)x, eğri çarpımı sonucununxkoordinatıdır.- İşlem
nonce = LRx || LSx. - İşlem
m = AES-EAX-256-DEC(k, nonce, m’, tag).
Kimlik değişim döngüsü
FHN çerçevelerinin reklamı için çözümlenebilir (RPA) veya çözümlenemez (NRPA) bir BLE adresi kullanılmalıdır. RPA, LE Audio (LEA) cihazları için gereklidir ve bağlama kullanmayan konum belirleme etiketleri hariç diğer cihazlar için önerilir.
Hızlı Eşleme reklamı, FHN reklamı ve ilgili BDE adresleri aynı anda döndürülmelidir. Ortalama olarak her 1.024 saniyede bir rotasyon yapılmalıdır. İşaretçinin yeni tanımlayıcının bildirimini yapmaya başladığı nokta, pencere içinde rastgele belirlenmelidir.
Rotasyon süresini rastgele hale getirmek için önerilen yaklaşım, süreyi bir sonraki beklenen rotasyon süresine (rastgeleleştirme uygulanmadıysa) artı 1 ila 204 saniye arasında pozitif bir rastgeleleştirilmiş süre faktörüne ayarlamaktır.
Cihaz, istenmeyen takip koruması modundayken FHN reklamının BLE adresi sabit olmalıdır ancak FP'nin bulunamayan reklamı (ör. Hızlı Eşleme) için RPA dönmeye devam etmelidir. Farklı protokoller için farklı adresler kullanabilirsiniz.
Güç kaybından kurtarma
Geçici tanımlayıcının çözümlenmesi, reklamın gösterildiği sırada saat değeriyle yakından ilişkilidir. Bu nedenle, güç kaybı olursa sağlayıcının saat değerini kurtarabilmesi önemlidir. Sağlayıcının mevcut saat değerini günde en az bir kez kalıcı olmayan belleğe yazması ve başlatma sırasında NVM'yi kontrol ederek başlatılacak bir değerin olup olmadığını görmesi önerilir. Geçici tanımlayıcı çözümleyicileri, hem makul saat sapmasına hem de bu tür güç kaybı kurtarmasına izin verecek kadar uzun bir zaman aralığında çözümleme uygular.
Çözümleme zaman aralığı sınırlı olduğundan sağlayıcılar, saat sapmalarını en aza indirmek için tüm çabayı göstermelidir. En az bir ek saat senkronizasyonu yöntemi uygulanmalıdır (bulunabilir olmayan Hızlı Eşleme çerçevelerinin reklamını yapma veya mesaj akışını uygulama).
Hızlı Eşleme uygulama yönergeleri
Bu bölümde, FHN'yi destekleyen sağlayıcılarda Hızlı Eşleme uygulamasının özel yönleri açıklanmaktadır.
Konum etiketiyle ilgili özel yönergeler
- Sağlayıcı eşleştirildiyse ancak FHN 5 dakika içinde sağlanmadıysa (veya cihaz eşleştirilmiş ancak FHN sağlanmamışken bir OTA güncellemesi uygulandıysa) Sağlayıcı, fabrika yapılandırmasına geri dönmeli ve depolanan hesap anahtarlarını temizlemelidir.
- Sağlayıcı eşlendikten sonra FHN sağlanana veya 5 dakika geçene kadar MAC adresini değiştirmemelidir.
- Geçici kimlik anahtarı cihazdan temizlenirse cihazın fabrika ayarlarına sıfırlanması ve depolanan hesap anahtarlarının da temizlenmesi gerekir.
- Sağlayıcı, normal Bluetooth eşleme girişimlerini reddetmeli ve yalnızca Hızlı Eşleme eşlemeyi kabul etmelidir.
- Sağlayıcı, kullanıcıların cihazı fabrika ayarlarına sıfırlamadan reklamları geçici olarak durdurmasına olanak tanıyan bir mekanizma (ör. bir düğme kombinasyonuna basma) içermelidir.
- Güç kaybından sonra cihaz, read beacon parameters bir sonraki çağrılana kadar keşfedilemeyen Hızlı Eşleme çerçevelerini yayınlamalıdır. Bu, önemli bir saat sapması meydana gelse bile Arayan'ın cihazı algılamasına ve saati senkronize etmesine olanak tanır.
- Bulunabilir olmayan Hızlı Eşleme çerçevelerinin reklamı yapılırken kullanıcı arayüzü göstergeleri etkinleştirilmemelidir.
- Hızlı Eşleme ile bulunabilen çerçeveler, Sağlayıcı FHN için sağlandığı sırada reklamı yapılmamalıdır.
- Sağlayıcı, kişisel verileri kimlik doğrulaması yapılmamış bir şekilde (ör. adlar veya tanımlayıcılar) ifşa etmemelidir.
Klasik Bluetooth cihazına özel yönergeler
Bu bölümde, FHN'yi destekleyen klasik Bluetooth cihazlarının özel yönleri açıklanmaktadır.
Zaten eşlenmiş cihazların FHN temel hazırlığı
Sağlayıcı, Arayıcı ile eşleştirilirken her zaman FHN için sağlanmaz ancak bir süre sonra sağlanır. Bu durumda Sağlayıcı, GATT bağlantısı kurmak için gereken güncel bir BLE MAC adresine sahip olmayabilir. Sağlayıcı, Arayıcı'nın zaten eşleştirilmişken BLE adresini alabilmesi için aşağıdaki yöntemlerden en az birini desteklemelidir:
- Sağlayıcı, Arayan'ın BLE taramasıyla BLE adresini bulmasını sağlayan Hızlı Eşleme hesap verilerinin reklamını düzenli olarak yapabilir.
Bu yaklaşım, mesaj akışını uygulamayan Sağlayıcılar için uygundur. - Sağlayıcı, bu verileri klasik Bluetooth üzerinden Hızlı Eşleme mesaj akışı aracılığıyla sağlayabilir.
Bu yaklaşım, Bluetooth üzerinden Arayan'a bağlıyken Hızlı Eşleme çerçevelerinin reklamını yapmayan Sağlayıcılar için uygundur.
Her iki yaklaşımı da desteklemek, kullanıcının cihazı FHN için hazırlama olasılığını artırır.
Hızlı Eşleme mesaj akışı
Sağlayıcı, Hızlı Eşleme mesaj akışını uygulayabilir ve Cihaz bilgileri hakkında Arayan'ı bilgilendirmek için kullanabilir. İleti akışının uygulanması, bu bölümde açıklanan belirli özelliklerin etkinleştirilmesini sağlar.
Sağlayıcı, Mesaj Akışı her oluşturulduğunda bir kez cihaz bilgisi mesajları göndermelidir.
Donanım yazılımı sürümü (cihaz bilgisi kodu 0x09) ve izleme özelliği
Bir yazılım güncellemesiyle sağlayıcıya FHN desteği eklendiğinde bağlı bir arayan, kullanıcıyı bu konuda bilgilendirebilir ve FHN'yi sağlamayı teklif edebilir. Aksi takdirde, kullanıcının FHN temel hazırlığını başlatmak için Bluetooth cihaz listesine manuel olarak gitmesi gerekir.
Buna izin vermek için Sağlayıcı, donanım yazılımı sürümünü temsil eden bir dize değeri bildirmek üzere Donanım yazılımı sürümü özelliğini (kod 0x09) kullanmalıdır. Ayrıca, Sağlayıcı, donanım yazılımı güncellemeleri nedeniyle özellik değişiklikleri hakkında Arayan'ı bilgilendiren protokolü desteklemelidir.
| Octet | Veri Türü | Açıklama | Değer |
|---|---|---|---|
| 0 | uint8 | Cihaz bilgileri etkinliği | 0x03 |
| 1 | uint8 | Donanım yazılımı sürümü | 0x09 |
| 2 - 3 | uint16 | Ek veri uzunluğu | değişir |
| var | bayt dizisi | Sürüm dizesi | değişir |
Tablo 18: Cihaz bilgileri etkinliği: güncellenen donanım yazılımı sürümü.
Bir özellik güncelleme isteği (0x0601) alındığında, Sağlayıcı FHN izleme desteğini etkinleştirdiyse Tablo 12'de gösterildiği gibi yanıt vermelidir.
| Octet | Veri Türü | Açıklama | Değer |
|---|---|---|---|
| 0 | uint8 | Cihaz işlevi senkronizasyonu etkinliği | 0x06 |
| 1 | uint8 | FHN izleme | 0x03 |
| 2 - 3 | uint16 | Ek veri uzunluğu | 0x0007 |
| 4 | uint8 | FHN temel hazırlık durumu | Sağlanmamışsa 0x00, herhangi bir hesap tarafından sağlanmışsa 0x01 |
| 5 - 10 | bayt dizisi | Cihazın mevcut BLE MAC adresi | değişir |
Tablo 19: Cihaz işlevi senkronizasyonu etkinliği: İzleme işlevi eklendi.
Mevcut kısa ömürlü tanımlayıcı (cihaz bilgileri kodu 0x0B)
Sağlayıcı, FHN için sağlandığında mevcut EID ve saat değerini bildirmek, saat kayması durumunda (ör. pilin bitmesi nedeniyle) Arayan'ı senkronize etmek için geçici kimliği (kod 0x0B) kullanabilir. Aksi takdirde, Arayan bu amaçla daha maliyetli ve daha az güvenilir bir bağlantı başlatır.
| Octet | Veri Türü | Açıklama | Değer |
|---|---|---|---|
| 0 | uint8 | Cihaz bilgileri etkinliği | 0x03 |
| 1 | uint8 | Geçerli geçici tanımlayıcı | 0x0B |
| 2 - 3 | uint16 | Ek veri uzunluğu | 0x0018 veya 0x0024 |
| 4 - 7 | bayt dizisi | Saat değeri | Örnek: 0x13F9EA80 |
| 8-19 veya 31 | bayt dizisi | Mevcut SIM kimliği | Örnek: 0x1122334455667788990011223344556677889900 |
Tablo 20: Cihaz bilgileri etkinliği: saat senkronizasyonu.
Fabrika ayarlarına sıfırla
Fabrika ayarlarına sıfırlamayı destekleyen cihazlar: Fabrika ayarlarına sıfırlama işlemi gerçekleştirilirse Sağlayıcı, sinyal göndermeyi durdurmalı ve geçici kimlik anahtarını ile sahibin hesap anahtarı da dahil olmak üzere tüm depolanmış hesap anahtarlarını silmelidir.
Fabrika ayarlarına sıfırlama işleminden (manuel veya programatik) sonra, kullanıcının cihazı silmesinden hemen sonra eşleme akışının başlamasını önlemek için Sağlayıcı, Fast Pair reklamını hemen başlatmamalıdır.
İstenmeyen takibi önleme
Sertifikalı FHN cihazları, İstenmeyen Konum Takip Cihazlarını Algılama (DULT) ile ilgili platformlar arası spesifikasyonun uygulama sürümündeki şartları da karşılamalıdır.
DULT spesifikasyonuna uygunluk için FHN'ye özel ilgili yönergeler:
- FHN ile uyumlu tüm cihazların Yakındaki Cihaz Konsolu'na kaydedilmesi ve "Hub'ı bul" özelliğinin etkinleştirilmesi gerekir.
- Cihaz, Accessory Information (Aksesuar Bilgileri) işlemleri ve Non-owner controls (Sahibi Olmayan Kişinin Kontrolleri) dahil olmak üzere DULT spesifikasyonunun uygulama sürümünde tanımlanan Accessory Non-Owner (Aksesuarın Sahibi Olmayan Kişi) hizmetini ve özelliğini uygulamalıdır.
- DULT spesifikasyonunda tanımlandığı şekilde geriye dönük uyumluluk döneminde, bu belgede tanımlandığı şekilde reklamı yapılan çerçevede herhangi bir değişiklik yapılmaz.
- Bu belgede tanımlanan "istenmeyen izlemeye karşı koruma modu", DULT spesifikasyonunda tanımlanan "ayrılmış durum" ile eşleşir.
- Accessory Information (Aksesuar Bilgileri) işlem kodlarını uygulama kuralları:
- Get_Product_Data, konsol tarafından sağlanan ve 8 baytlık koşulu karşılamak için sıfırlarla doldurulmuş model kimliğini döndürmelidir. Örneğin, 0xFFFFFF model kimliği 0x0000000000FFFFFF olarak döndürülür.
- Get_Manufacturer_Name ve Get_Model_Name, konsolda sağlanan değerlerle eşleşmelidir.
- Get_Accessory_Category, başka bir kategori cihaz türüne daha iyi uymuyorsa genel "Konum Takibi Cihazı" değerini döndürebilir.
- Get_Accessory_Capabilities, çalma ve BLE tanımlayıcı araması desteğini belirtmelidir.
- Get_Network_ID, Google'ın tanımlayıcısını (0x02) döndürmelidir.
- Get_Identifier işlem kodunu uygulama yönergeleri:
- İşlem, yalnızca kullanıcı "tanımlama" modunu etkinleştirdikten sonra 5 dakika boyunca geçerli bir yanıt döndürmelidir. Bu mod, düğmelere basma kombinasyonu gerektirir. Görsel veya işitsel bir sinyal, sağlayıcının bu moda girdiğini kullanıcıya bildirmelidir. Bu modu etkinleştirmeye yönelik modele özgü talimatlar, sertifika için zorunlu olarak ve talimatlarda yapılacak herhangi bir güncelleme veya değişiklikten en az 10 gün önce Google'a sağlanmalıdır.
- Yanıt şu şekilde oluşturulur: Geçici tanımlayıcının ilk 10 baytı ve ardından
HMAC-SHA256(recovery key, the truncated current ephemeral identifier)öğesinin ilk 8 baytı.
- NFC üzerinden tanımlayıcı uygulama yönergeleri:
- URL olarak
find-my.googleapis.com/lookupadresini kullanın. eparametresi olarak, Get_Identifier için oluşturulan yanıtı onaltılık kodlanmış şekilde kullanın.pidparametresi olarak, Get_Product_Data için oluşturulan yanıtı onaltılık kodlanmış şekilde kullanın.
- URL olarak
- Cihazda ses üretici bulunması ve zil çalma işlevini desteklemesi zorunludur. DULT spesifikasyonuna göre ses üretici, ISO 532-1:2017'de tanımlandığı şekilde en az 60 fonluk tepe ses yüksekliğine sahip bir ses yaymalıdır.
- Sound_Start işlem kodunu uygulama kuralları:
- Komut, mevcut tüm bileşenlerde zil çalmayı tetiklemelidir.
- Desteklenen maksimum hacim kullanılmalıdır.
- Zilin çalması için önerilen süre 12 saniyedir.
- Bulucu etiketleri, kullanıcıların cihazı fabrika ayarlarına sıfırlamadan reklamları geçici olarak durdurmasına olanak tanıyan bir mekanizma içermelidir (örneğin, bir düğme kombinasyonuna basma).
- Devre dışı bırakma talimatları, herkese açık bir URL'de belgelenmeli ve sertifika için gerekli bir koşul olarak Google'a sağlanmalıdır. Ayrıca, talimatlarda yapılacak herhangi bir güncelleme veya değişiklikten en az 10 gün önce sağlanmalıdır.
- URL, yerelleştirmeyi desteklemelidir. İstemciye bağlı olarak dil, sorgu parametresi ("hl=en") olarak veya "accept-language" HTTP üst bilgisi kullanılarak sağlanır.
Değiştirilebilir protokol yönergeleri
- Tek seferde yalnızca bir protokol kullanılmalıdır. Cihazda aynı anda birden fazla ağın çalışmadığından emin olun. Bu şart, hassas kullanıcı verilerinin farklı protokoller arasında karıştırılmamasını sağlamak için gereklidir.
- Cihaza, kullanıcının cihazı farklı bir ağla yeniden kurmasına olanak tanıyan bir zorunlu sıfırlama iş akışı eklenmesi önerilir.
- Bir cihazın ağa güncellenmesi süreci kullanıcı dostu olmalı ve ağlar arasında eşitlik sağlanmalıdır. Kullanıcı, ağlardan birine öncelik vermeden hangi ağı kullanmak istediğini seçebilmelidir. Bu akışın Google ekibi tarafından onaylanması gerekiyor.
Donanım yazılımı güncellemeleri
OTA güncellemelerinin süreci ve dağıtımı, iş ortağı tarafından kendi mobil veya web uygulaması iş akışı kullanılarak yönetilmelidir.
Hızlı Eşleme, kullanıcılara bildirim göndermeyi ve mevcut OTA güncellemeleri hakkında bilgi vermeyi destekler. Bu mekanizmayı kullanmak için:
- En son donanım yazılımı sürümü, Yakındaki Cihaz Konsolu'nda güncellenmelidir.
- Yakındaki Cihaz Konsolu'nda bir yardımcı uygulama ayarlanmalıdır. Donanım yazılımı güncelleme amacını desteklemelidir.
- Sağlayıcı, Donanım yazılımı revizyonu GATT özelliğini uygulamalıdır.
İzlemeyi önlemek için Firmware revision (Donanım yazılımı sürümü) özelliğine erişim kısıtlanmalıdır. Seeker, önce sağlama durumunu okuyacak ve bu spesifikasyonda tanımlandığı gibi bir kimlik doğrulama anahtarı sağlayacak, ardından yalnızca bellenim revizyonunu okuyacaktır. Bu işlem aynı bağlantı üzerinden yapılır. Donanım yazılımı sürümünü okuma girişimi yapılırsa ve Sağlayıcı bağlı değilse veya aynı bağlantı üzerinden kimliği doğrulanmış bir işlem başarıyla tamamlanmadıysa Sağlayıcı, kimliği doğrulanmamış bir hata döndürmelidir.
Uyumluluk
Cihaz Takip Merkezi ağını kullanmak için Konum Hizmetleri'nin ve Bluetooth'un açık olması gerekir. Hücresel servis veya internet bağlantısı gerekir. Android 9 veya sonraki sürümlerde çalışır ve belirli ülkelerdeki yaşı uygun olan kullanıcılar tarafından kullanılabilir.
Değişiklik günlüğü
| FHN Sürümü | Tarih | Yorum |
|---|---|---|
| v1 | Erken erişim için FHN spesifikasyonunun ilk sürümü yayınlandı. | |
| v1.1 | Feb 2023 |
|
| v1.2 | Nisan 2023 |
|
| v1.3 | Aralık 2023 |
|