Osvědčení symetrického klíče

Tento článek popisuje proces ověření identity při použití symetrických klíčů se službou Device Provisioning. Ověření symetrického klíče je jednoduchý přístup k ověřování zařízení pomocí instance služby Device Provisioning. Tato metoda ověřování představuje prostředí Hello World pro vývojáře, kteří s zřizováním zařízení začíná nebo nemají přísné požadavky na zabezpečení. Ověření identity zařízení pomocí čipu TPM nebo certifikátu X.509 je bezpečnější a mělo by se použít pro přísnější požadavky na zabezpečení.

Registrace symetrických klíčů také poskytují způsob spouštění starších zařízení s omezenými funkcemi zabezpečení do cloudu prostřednictvím Azure IoT.

Vytvoření symetrického klíče

Ve výchozím nastavení služba Device Provisioning vytvoří nové symetrické klíče s délkou 64 bajtů při vytváření nových registrací s povolenou možností Generovat symetrické klíče automaticky .

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

Můžete také zadat vlastní symetrické klíče pro registrace zakázáním této možnosti. Symetrické klíče musí být ve formátu Base 64 a mají délku klíče mezi 16 bajty a 64 bajty.

Podrobný proces ověření identity

Ověření symetrického klíče se službou Device Provisioning service se provádí pomocí stejných tokenů zabezpečení podporovaných službou IoT Hubs k identifikaci zařízení. Tyto tokeny zabezpečení jsou tokeny sdíleného přístupového podpisu (SAS).

Tokeny SAS mají hashovaný podpis , který se vytvoří pomocí symetrického klíče. Služba Device Provisioning znovu vytvoří podpis, aby ověřila, jestli je token zabezpečení prezentovaný během ověření identity nebo ne.

Tokeny SAS mají následující formulář:

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

Tady jsou komponenty jednotlivých tokenů:

Hodnota Popis
{signature} Řetězec podpisu HMAC-SHA256. Pro jednotlivé registrace se tento podpis vytvoří pomocí symetrického klíče (primárního nebo sekundárního) k provedení hodnoty hash. Pro skupiny registrací se k provedení hodnoty hash použije klíč odvozený z klíče skupiny registrace. Hodnota hash se provádí ve zprávě formuláře: URL-encoded-resourceURI + "\n" + expiry. Důležité: Před provedením výpočtů HMAC-SHA256 musí být klíč dekódován z base64. Výsledek podpisu musí být také kódovaný adresou URL.
{resourceURI} Identifikátor URI koncového bodu registrace, ke kterému se dá získat přístup pomocí tohoto tokenu, počínaje ID oboru pro instanci služby Device Provisioning. Například {Scope ID}/registrations/{Registration ID}
{expiry} Řetězce UTF8 pro počet sekund od epochy 00:00:00 UTC dne 1.
{URL-encoded-resourceURI} Malé kódování adresy URL identifikátoru URI prostředku s menším písmenem
{policyName} Název zásady sdíleného přístupu, na kterou tento token odkazuje. Název zásady použitý při zřizování pomocí ověření symetrického klíče je registrace.

Příklady kódu, které vytvářejí token SAS, najdete v tématu Tokeny SAS.

Jednotlivé registrace se symetrickými klíči

Když zařízení ověřuje jednotlivou registraci, použije zařízení symetrický klíč definovaný v položce jednotlivé registrace k vytvoření hashovaného podpisu tokenu SAS.

Skupinové registrace se symetrickými klíči

Na rozdíl od jednotlivé registrace se symetrický klíč skupiny registrací při zřizování nepoužívá přímo zařízeními. Místo toho zařízení, která zřizují prostřednictvím skupiny registrací, používají odvozený klíč zařízení. Odvozený klíč zařízení je hodnota hash ID registrace zařízení a vypočítá se pomocí symetrického klíče skupiny registrací. Zařízení pak může pomocí odvozeného klíče zařízení podepsat token SAS, který používá k registraci ve službě DPS. Vzhledem k tomu, že zařízení odesílá své ID registrace při registraci, může SLUŽBA DPS použít symetrický klíč skupiny registrací k opětovnému vygenerování odvozeného klíče zařízení a ověření podpisu v tokenu SAS.

Nejprve se pro každé zařízení ověřující prostřednictvím skupiny registrací definuje jedinečné ID registrace. ID registrace je řetězec nerozlišující velká a malá písmena (maximálně 128 znaků dlouhý) alfanumerických znaků plus platné speciální znaky: - . _ :. Poslední znak musí být alfanumerický nebo pomlčka ('-'). ID registrace by mělo být něco jedinečného, co identifikuje zařízení. Například adresa MAC nebo sériové číslo, které je k dispozici k jednoznačné identifikaci zařízení. V takovém případě se ID registrace může skládat z adresy MAC a sériového čísla podobného následujícímu:

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

Po definování ID registrace pro zařízení se symetrický klíč pro skupinu registrací použije k výpočtu hodnoty hash HMAC-SHA256 ID registrace k vytvoření odvozeného klíče zařízení. Některé ukázkové přístupy k výpočtu odvozeného klíče zařízení jsou uvedeny na kartách níže.

Rozšíření IoT pro Azure CLI poskytuje compute-device-key příkaz pro generování odvozených klíčů zařízení. Tento příkaz lze použít ze systémů Windows nebo Linux, v PowerShellu nebo prostředí Bash.

Nahraďte hodnotu argumentu --keyprimárním klíčem ze skupiny registrací.

Nahraďte hodnotu argumentu --registration-id vaším ID registrace.

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říklad výsledku:

"Jsm0lyGpjaVYVP2g3FnmnmG9dI/9qU24wNoykUmermc="

Výsledný klíč zařízení se pak použije k vygenerování tokenu SAS, který se použije k ověření identity. Každé zařízení ve skupině registrací se vyžaduje k ověření pomocí tokenu zabezpečení vygenerovaného z jedinečného odvozeného klíče. Symetrický klíč skupiny registrací se nedá použít přímo k ověření identity.

Instalace odvozeného klíče zařízení

V ideálním případě jsou klíče zařízení odvozené a nainstalované v továrně. Tato metoda zaručuje, že klíč skupiny není nikdy součástí žádného softwaru nasazeného do zařízení. Při přiřazení adresy MAC nebo sériového čísla zařízení lze klíč odvodit a vložit do zařízení, ale výrobce se rozhodne ho uložit.

Podívejte se na následující diagram, který znázorňuje tabulku klíčů zařízení vygenerovaných v továrně tím, že zatyčuje každé ID registrace zařízení pomocí klíče pro registraci skupiny (K).

Diagram that shows device keys being assigned at a factory.

Identita každého zařízení je reprezentována ID registrace a odvozeným klíčem zařízení nainstalovaným v továrně. Klíč zařízení se nikdy nezkopíruje do jiného umístění a klíč skupiny se nikdy neuloží na zařízení.

Pokud klíče zařízení nejsou nainstalované v továrně, měl by se k bezpečnému uložení identity zařízení použít modul hardwarového zabezpečení HSM .

Další kroky

Teď, když máte přehled o ověření symetrického klíče, najdete v následujících článcích další informace: