Aracılığıyla paylaş


Simetrik anahtar kanıtlama

Bu makalede, Cihaz Sağlama Hizmeti ile simetrik anahtarlar kullanılırken kimlik kanıtlama işlemi açıklanmaktadır. Simetrik anahtar kanıtlama, cihaz sağlama hizmeti örneğiyle cihazın kimliğini doğrulamaya yönelik basit bir yaklaşımdır. Bu kanıtlama yöntemi, cihaz sağlama konusunda yeni olan veya katı güvenlik gereksinimleri olmayan geliştiriciler için bir "Merhaba dünya" deneyimini temsil eder. TPM veya X.509 sertifikası kullanan cihaz kanıtlaması daha güvenlidir ve daha sıkı güvenlik gereksinimleri için kullanılmalıdır.

Simetrik anahtar kayıtları, Azure IoT aracılığıyla buluta önyükleme yapmak için sınırlı güvenlik işlevselliğine sahip eski cihazlar için de bir yol sağlar.

Simetrik anahtar oluşturma

Varsayılan olarak, Cihaz Sağlama Hizmeti simetrik anahtarları otomatik olarak oluştur seçeneği etkin olarak yeni kayıtlar oluşturulduğunda 64 bayt uzunluğunda yeni simetrik anahtarlar oluşturur.

Screenshot that shows a new individual enrollment with the autogenerate keys option selected.

Bu seçeneği devre dışı bırakarak kayıtlar için kendi simetrik anahtarlarınızı da sağlayabilirsiniz. Simetrik anahtarlar Temel 64 biçiminde olmalı ve 16 bayt ile 64 bayt arasında bir anahtar uzunluğuna sahip olmalıdır.

Ayrıntılı kanıtlama işlemi

Cihaz Sağlama Hizmeti ile simetrik anahtar kanıtlama, cihazları tanımlamak için IoT hub'ları tarafından desteklenen aynı güvenlik belirteçleri kullanılarak gerçekleştirilir. Bu güvenlik belirteçleri Paylaşılan Erişim İmzası (SAS) belirteçleridir.

SAS belirteçleri, simetrik anahtar kullanılarak oluşturulan karma imzaya sahiptir. Cihaz Sağlama Hizmeti, kanıtlama sırasında sunulan bir güvenlik belirtecinin orijinal olup olmadığını doğrulamak için imzayı yeniden oluşturur.

SAS belirteçleri aşağıdaki forma sahiptir:

SharedAccessSignature sig={signature}&se={expiry}&skn={policyName}&sr={URL-encoded-resourceURI}

Her belirtecin bileşenleri şunlardır:

Value Açıklama
{signature} HMAC-SHA256 imza dizesi. Tek tek kayıtlar için bu imza, karması gerçekleştirmek için simetrik anahtar (birincil veya ikincil) kullanılarak oluşturulur. Kayıt grupları için, karmayı gerçekleştirmek için kayıt grubu anahtarından türetilen bir anahtar kullanılır. Karma, formun bir iletisinde gerçekleştirilir: URL-encoded-resourceURI + "\n" + expiry. Önemli: HMAC-SHA256 hesaplamasını gerçekleştirmek için kullanılmadan önce anahtarın base64 kodunun çözülmesi gerekir. Ayrıca, imza sonucu URL ile kodlanmış olmalıdır.
{resourceURI} Cihaz Sağlama Hizmeti örneğinin kapsam kimliği ile başlayarak bu belirteçle erişilebilen kayıt uç noktasının URI'si. Örneğin {Scope ID}/registrations/{Registration ID}
{süre sonu} 1 Ocak 1970 tarihinde saat 00:00:00 UTC tarihinden bu yana geçen saniye sayısı için UTF8 dizeleri.
{URL-encoded-resourceURI} Küçük harf kaynak URI'sinin küçük harf URL kodlaması
{policyName} Bu belirtecin başvurduğu paylaşılan erişim ilkesinin adı. Simetrik anahtar kanıtlama ile sağlama sırasında kullanılan ilke adı kayıttır.

SAS belirteci oluşturan kod örnekleri için bkz . SAS belirteçleri.

Simetrik anahtarlarla bireysel kayıtlar

Bir cihaz tek bir kayıtla test ederken, sas belirteci için karma imza oluşturmak üzere bireysel kayıt girişinde tanımlanan simetrik anahtarı kullanır.

Simetrik anahtarlarla kayıtları gruplandırma

Bireysel kayıtlardan farklı olarak, bir kayıt grubunun simetrik anahtarı, sağlandığında cihazlar tarafından doğrudan kullanılmaz. Bunun yerine, bir kayıt grubu aracılığıyla sağlanan cihazlar bunu türetilmiş bir cihaz anahtarı kullanarak yapar. Türetilen cihaz anahtarı, cihazın kayıt kimliğinin karmasıdır ve kayıt grubunun simetrik anahtarı kullanılarak hesaplanır. Cihaz daha sonra türetilmiş cihaz anahtarını kullanarak DPS'ye kaydolmak için kullandığı SAS belirtecini imzalayabilir. Cihaz kayıt kimliğini kaydedildiğinde gönderdiğinden, DPS cihazın türetilmiş cihaz anahtarını yeniden oluşturmak ve SAS belirtecinde imzayı doğrulamak için kayıt grubu simetrik anahtarını kullanabilir.

İlk olarak, bir kayıt grubu aracılığıyla kimlik doğrulaması yapılan her cihaz için benzersiz bir kayıt kimliği tanımlanır. Kayıt kimliği, alfasayısal karakterlerin yanı sıra geçerli özel karakterler içeren büyük/küçük harfe duyarlı olmayan bir dizedir (en fazla 128 karakter uzunluğunda): - . _ :. Son karakter alfasayısal veya tire ('-') olmalıdır. Kayıt kimliği, cihazı tanımlayan benzersiz bir kimlik olmalıdır. Örneğin, bir cihazı benzersiz olarak tanımlamak için kullanılabilen bir MAC adresi veya seri numarası. Bu durumda, kayıt kimliği MAC adresinden ve seri numarasından aşağıdakine benzer şekilde oluşturulabilir:

sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6

Cihaz için bir kayıt kimliği tanımlandıktan sonra kayıt grubunun simetrik anahtarı, türetilmiş bir cihaz anahtarı oluşturmak üzere kayıt kimliğinin HMAC-SHA256 karması hesaplamak için kullanılır. Türetilmiş cihaz anahtarını hesaplamaya yönelik bazı örnek yaklaşımlar aşağıdaki sekmelerde verilmiştir.

Azure CLI için IoT uzantısı, türetilmiş cihaz anahtarları oluşturmaya yönelik komutu sağlar compute-device-key . Bu komut, PowerShell veya Bash kabuğunda Windows tabanlı veya Linux sistemlerden kullanılabilir.

bağımsız değişkeninin --key değerini kayıt grubunuzdaki Birincil Anahtar ile değiştirin.

bağımsız değişkeninin --registration-id değerini kayıt kimliğiniz ile değiştirin.

az iot dps enrollment-group compute-device-key --key 8isrFI1sGsIlvvFSSFRiMfCNzv21fjbE/+ah/lSh3lF8e2YG1Te7w1KpZhJFFXJrqYKi9yegxkqIChbqOS9Egw== --registration-id sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6

Örnek sonuç:

"Jsm0lyGpjaVYVP2g3FnmnmG9dI/9qU24wNoykUmermc="

Sonuçta elde edilen cihaz anahtarı, kanıtlama için kullanılacak bir SAS belirteci oluşturmak için kullanılır. Bir kayıt grubundaki her cihazın benzersiz bir türetilmiş anahtardan oluşturulan bir güvenlik belirtecini kullanarak test etmek için gereklidir. Kayıt grubu simetrik anahtarı doğrudan kanıtlama için kullanılamaz.

Türetilmiş cihaz anahtarını yükleme

İdeal olarak, cihaz anahtarları fabrikada türetilir ve yüklenir. Bu yöntem, grup anahtarının hiçbir zaman cihaza dağıtılan herhangi bir yazılıma dahil olmadığını garanti eder. Cihaza bir MAC adresi veya seri numarası atandığında, anahtar türetilebilir ve cihaza eklenebilir, ancak üretici bunu depolamayı seçer.

Her cihaz kayıt kimliğini grup kayıt anahtarıyla (K) karmalayarak bir fabrikada oluşturulan cihaz anahtarları tablosunu gösteren aşağıdaki diyagramı göz önünde bulundurun.

Diagram that shows device keys being assigned at a factory.

Her cihazın kimliği, fabrikada yüklü olan kayıt kimliği ve türetilmiş cihaz anahtarı ile temsil edilir. Cihaz anahtarı hiçbir zaman başka bir konuma kopyalanmaz ve grup anahtarı hiçbir zaman bir cihazda depolanmaz.

Cihaz anahtarları fabrikada yüklü değilse, cihaz kimliğini güvenli bir şekilde depolamak için bir donanım güvenlik modülü HSM kullanılmalıdır.

Sonraki adımlar

Simetrik anahtar kanıtlama hakkında bilgi edindiğinize göre, daha fazla bilgi edinmek için aşağıdaki makalelere göz atın: