Zhrnutie

  • Bezpečné poskytovanie identity pridelí každému zariadeniu jedinečnú identitu pri prvom zapnutí.
  • Zabezpečené prvky (ATECC608, NXP EdgeLock) uchovávajú súkromné kľúče, ktoré nikdy neopustia čip.
  • AWS IoT, Azure DPS aj vlastné PKI podporujú enrollment na strane výroby.
  • Práve na výrobnej linke sa rozhodne, či to bude fungovať správne, alebo to v teréne zlyhá.

Prečo bezpečný provisioning patrí do výroby

Pripojené zariadenie, ktoré odíde z výroby bez identity, je nutné provisionovať až v teréne. Provisioning v teréne znamená manuálny krok (alebo zraniteľné automatické zaregistrovanie) pri inštalácii. Oboje prináša prevádzkovú záťaž aj bezpečnostné riziko.

Provisioning na strane výroby pridelí zariadeniu unikátnu kryptografickú identitu ešte pred expedíciou. Zariadenie sa nabootuje, autentifikuje a zaregistruje bez manuálneho zásahu.

Secure elements

Microchip ATECC608 a NXP EdgeLock sú bežné secure elements pre IoT. Oba podporujú:

  • generovanie súkromného ECC kľúča priamo v čipe (kľúč ho nikdy neopustí)
  • podpisovanie a overovanie certifikátov
  • ochranu pred replay útokmi založenú na čítači
  • správanie odolné proti manipulácii

Výrobná linka vygeneruje kľúč v secure elemente, podpíše certifikát voči root CA, zapíše certifikát do zariadenia a verejný kľúč zaznamená k sériovému číslu.

Zaregistrovanie X.509 certifikátu

X.509 je štandardný formát certifikátu. Zaregistrovanie na strane výroby zvyčajne prebieha takto:

  1. Secure element vygeneruje pár ECC kľúčov (súkromný kľúč zostáva uzamknutý v čipe)
  2. Výrobný systém prečíta verejný kľúč
  3. Výrobný systém podpíše certifikát pomocou root CA krytej HSM
  4. Certifikát sa zapíše späť do zariadenia
  5. Verejný kľúč a odtlačok certifikátu sa zaznamenajú k sériovému číslu

Súkromný kľúč root CA sa výrobnej linky nikdy nedotkne. Žije v HSM v kontrolovanom prostredí.

AWS IoT a Azure DPS

AWS IoT podporuje Just-in-Time Provisioning (JITP) a Multi-Account Registration. Azure Device Provisioning Service (DPS) podporuje X.509 atestáciu, atestáciu cez Trusted Platform Module (TPM) a atestáciu symetrickým kľúčom.

Oba systémy umožňujú výrobnej linke zariadenia predregistrovať tak, aby sa pri prvom pripojení do cloudu zaregistrovali automaticky. Pracovný postup na strane výroby:

  1. Zariadeniu sa nahrá X.509 certifikát
  2. Odtlačok certifikátu zariadenia sa zaregistruje v cloudovom DPS
  3. Zariadenie sa v teréne nabootuje, predloží certifikát a automaticky sa zaregistruje
  4. Cloud zariadenie priradí do správnej skupiny a stiahne konfiguráciu

Vlastná PKI sa riadi tým istým vzorom, len s internou infraštruktúrou namiesto AWS alebo Azure.

Funkčný pracovný postup na strane výroby

  • root CA krytá HSM v kontrolovanom prostredí, prístupná cez podpisové API
  • generovanie kľúčov pre každý kus priamo v secure elemente na linke
  • podpisovanie certifikátov cez volanie API (žiadny kľúčový materiál sa neodhalí)
  • predregistrácia v cloudovom DPS ako súčasť provisioningu
  • záznam o zaregistrovaní každého kusu vo výrobnej databáze
  • voliteľná správa revokačných zoznamov pre zariadenia na konci životnosti alebo stratené

Časté chyby

  • súkromný kľúč root CA uložený priamo na výrobnej linke (nie v HSM)
  • ten istý kľúč nahratý do viacerých zariadení („testovací režim, ktorý odišiel zákazníkovi“)
  • odtlačok certifikátu zaznamenaný, ale nepredregistrovaný v cloudovom DPS
  • provisioning robený ručne na pár kusoch, nikdy nenaškálovaný

Zdroje

  • dokumentácia AWS IoT Just-in-Time Provisioning
  • dokumentácia Microsoft Azure Device Provisioning Service
  • dokumentácia secure elementu Microchip ATECC608
  • dokumentácia secure elementu NXP EdgeLock

Cenová ponuka pre naprogramované a sériovo očíslované jednotky

Ak tento výskum zodpovedá situácii vášho produktu, pošlite súbory a my naceníme výrobu.