Share via


Szimmetrikus kulcsú igazolás

Ez a cikk az identitásigazolási folyamatot ismerteti, amikor szimmetrikus kulcsokat használ a Device Provisioning Service szolgáltatással. A szimmetrikus kulcsigazolás egyszerű módszer egy eszköz hitelesítésére egy Device Provisioning Service-példánysal. Ez az igazolási módszer "Hello world" élményt jelent azoknak a fejlesztőknek, akik még nem ismerik az eszközök kiépítését, vagy nem rendelkeznek szigorú biztonsági követelményekkel. A TPM-et vagy X.509-tanúsítványt használó eszközigazolás biztonságosabb, és szigorúbb biztonsági követelményekhez kell használni.

A szimmetrikus kulcsregisztrációk a korlátozott biztonsági funkciókkal rendelkező örökölt eszközök számára is lehetővé teszik a felhőbe való indítást az Azure IoT-en keresztül.

Szimmetrikus kulcs létrehozása

A Device Provisioning Service alapértelmezés szerint 64 bájt hosszúságú új szimmetrikus kulcsokat hoz létre, amikor az új regisztrációk automatikusan engedélyezve vannak a Szimmetrikus kulcsok létrehozása beállítással.

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

A beállítás letiltásával saját szimmetrikus kulcsokat is megadhat a regisztrációhoz. A szimmetrikus kulcsoknak 64-es alapformátumban kell lenniük, és 16 és 64 bájt közötti kulcshosszsal kell rendelkezniük.

Részletes igazolási folyamat

A Device Provisioning Service szimmetrikus kulcsigazolása ugyanazokkal a biztonsági jogkivonatokkal történik, amelyeket az IoT Hubok támogatnak az eszközök azonosításához. Ezek a biztonsági jogkivonatok közös hozzáférésű jogosultságkód (SAS) jogkivonatok.

Az SAS-jogkivonatok kivonatolt aláírással rendelkeznek, amely a szimmetrikus kulccsal jön létre. A Device Provisioning Service újra létrehozza az aláírást annak ellenőrzéséhez, hogy az igazolás során bemutatott biztonsági jogkivonat hiteles-e.

Az SAS-jogkivonatok űrlapja a következő:

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

Az egyes jogkivonatok összetevői a következők:

Érték Leírás
{signature} HMAC-SHA256 aláírási sztring. Egyéni regisztrációk esetén ez az aláírás a szimmetrikus kulcs (elsődleges vagy másodlagos) használatával jön létre a kivonat végrehajtásához. A regisztrációs csoportok esetében a rendszer a regisztrációs csoport kulcsából származó kulcsot használja a kivonat végrehajtásához. A kivonat az űrlap üzenetén lesz végrehajtva: URL-encoded-resourceURI + "\n" + expiry. Fontos: A kulcsot a HMAC-SHA256 számítás végrehajtása előtt le kell dekódolni a base64-ről. Emellett az aláírás eredményének URL-kódolásúnak kell lennie.
{resourceURI} Az ezzel a jogkivonattal elérhető regisztrációs végpont URI-ja, kezdve a Device Provisioning Service-példány hatókör-azonosítójával. Például: {Scope ID}/registrations/{Registration ID}
{lejárat} UTF8 sztringek másodpercekig az 1970. január 1-jén (UTC) 00:00:00 (UTC) óta eltelt idő óta.
{URL-encoded-resourceURI} A kisbetűs erőforrás URI-jának kisbetűs URL-kódolása
{policyName} Annak a megosztott hozzáférési szabályzatnak a neve, amelyre ez a jogkivonat hivatkozik. A szimmetrikus kulcsigazolással történő üzembe helyezéskor használt szabályzatnév a regisztráció.

Sas-jogkivonatot létrehozó kód példákért tekintse meg az SAS-jogkivonatokat.

Szimmetrikus kulcsokkal rendelkező egyéni regisztrációk

Ha egy eszköz egyéni regisztrációval rendelkezik, az eszköz az egyéni regisztrációs bejegyzésben meghatározott szimmetrikus kulcsot használja az SAS-jogkivonat kivonatolt aláírásának létrehozásához.

Regisztrációk csoportosítása szimmetrikus kulcsokkal

Az egyéni regisztrációval ellentétben a regisztrációs csoport szimmetrikus kulcsát az eszközök nem használják közvetlenül a kiépítéskor. Ehelyett a regisztrációs csoporton keresztül kiépített eszközök egy származtatott eszközkulcsot használnak. A származtatott eszközkulcs az eszköz regisztrációs azonosítójának kivonata, és a regisztrációs csoport szimmetrikus kulcsával van kiszámítva. Az eszköz ezután a származtatott eszközkulcsával aláírhatja a DPS-ben való regisztrációhoz használt SAS-jogkivonatot. Mivel az eszköz a regisztrációkor elküldi a regisztrációs azonosítóját, a DPS a regisztrációs csoport szimmetrikus kulcsával újragenerálhatja az eszköz származtatott eszközkulcsát, és ellenőrizheti az aláírást az SAS-jogkivonaton.

Először egy egyedi regisztrációs azonosító van meghatározva minden olyan eszközhöz, amely egy regisztrációs csoporton keresztül hitelesít. A regisztrációs azonosító egy kis- és nagybetűket nem megkülönböztető sztring (legfeljebb 128 karakter hosszú) alfanumerikus karakterekből és érvényes speciális karakterekből: - . _ :. Az utolsó karakternek alfanumerikusnak vagy kötőjelnek ('-') kell lennie. A regisztrációs azonosítónak egyedinek kell lennie, amely azonosítja az eszközt. Például egy MAC-cím vagy sorozatszám, amely egy eszköz egyedi azonosításához érhető el. Ebben az esetben a regisztrációs azonosító a KÖVETKEZŐhöz hasonló MAC-címből és sorozatszámból állhat:

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

Miután definiálta az eszköz regisztrációs azonosítóját, a regisztrációs csoport szimmetrikus kulcsával kiszámítja a regisztrációs azonosító HMAC-SHA256 kivonatát egy származtatott eszközkulcs létrehozásához. A származtatott eszközkulcs számításának néhány példáját az alábbi lapok ismertetik.

Az Azure CLI IoT-bővítménye biztosítja a compute-device-key származtatott eszközkulcsok létrehozásának parancsát. Ez a parancs Windows- vagy Linux-rendszerekről, PowerShellben vagy Bash-rendszerhéjban is használható.

Cserélje le az argumentum értékét --key a regisztrációs csoport elsődleges kulcsára .

Cserélje le az argumentum értékét --registration-id a regisztrációs azonosítóra.

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

Példa eredmény:

"Jsm0lyGpjaVYVP2g3FnmnmG9dI/9qU24wNoykUmermc="

Az eredményül kapott eszközkulcsot a rendszer az igazoláshoz használandó SAS-jogkivonat létrehozásához használja. A regisztrációs csoport minden eszközének igazolnia kell egy egyedi származtatott kulcsból létrehozott biztonsági jogkivonatot. A regisztrációs csoport szimmetrikus kulcsa nem használható közvetlenül az igazoláshoz.

A származtatott eszközkulcs telepítése

Ideális esetben az eszközkulcsok származtatása és telepítése a gyárban történik. Ez a módszer garantálja, hogy a csoportkulcs soha nem szerepel az eszközön üzembe helyezett szoftverekben. Ha az eszközhöz MAC-cím vagy sorozatszám van rendelve, a kulcs levezethető és beszúrható az eszközbe, azonban a gyártó úgy dönt, hogy tárolja.

Tekintse meg az alábbi ábrát, amely egy gyárban létrehozott eszközkulcsok táblázatát mutatja be az egyes eszközregisztrációs azonosítók és a csoportregisztrációs kulccsal (K) való kivonatolásával.

Diagram that shows device keys being assigned at a factory.

Az egyes eszközök identitását a gyárban telepített regisztrációs azonosító és származtatott eszközkulcs jelöli. Az eszközkulcs soha nem lesz máshová másolva, és a csoportkulcs soha nem lesz tárolva egy eszközön.

Ha az eszközkulcsok nincsenek telepítve a gyárban, egy HSM hardveres biztonsági modult kell használni az eszköz identitásának biztonságos tárolásához.

Következő lépések

Most, hogy megismerte a szimmetrikus kulcsigazolást, további információért tekintse meg az alábbi cikkeket: