Souhrn

  • Zabezpečený provisioning přidělí každému zařízení jedinečnou identitu při prvním zapnutí.
  • Secure elementy (ATECC608, NXP EdgeLock) drží privátní klíče, které čip nikdy neopustí.
  • AWS IoT, Azure DPS i vlastní PKI podporují zápis přímo z výrobní strany.
  • Výrobní linka je místo, kde to buď funguje správně, nebo to vyrábí poruchy v provozu.

Proč bezpečný provisioning patří do výroby

Připojené zařízení, které opouští linku bez identity, musí být uvedeno do provozu až v terénu. Provisioning v terénu znamená buď ruční krok, nebo zranitelný automatický enrollment při instalaci. Obojí přináší provozní zátěž a bezpečnostní riziko.

Provisioning na straně výroby přidělí zařízení jedinečnou kryptografickou identitu ještě před expedicí. Zařízení se nabootuje, ověří se a zaregistruje bez ručního zásahu.

Secure elements

Microchip ATECC608 a NXP EdgeLock jsou běžné secure elementy pro IoT. Oba podporují:

  • Generování privátního klíče ECC uvnitř čipu (klíč čip nikdy neopustí)
  • Podepisování a ověřování certifikátů
  • Ochranu proti replay pomocí čítače
  • Detekci neoprávněné manipulace

Výrobní linka vygeneruje klíč uvnitř secure elementu, podepíše certifikát kořenovou CA, zapíše certifikát do zařízení a zaeviduje veřejný klíč proti sériovému číslu.

Enrollment certifikátů X.509

X.509 je standardní formát certifikátu. Enrollment na straně výroby obvykle probíhá takto:

  1. Secure element vygeneruje pár klíčů ECC (privátní klíč zůstává uzamčen v čipu)
  2. Výrobní systém načte veřejný klíč
  3. Výrobní systém podepíše certifikát kořenovou CA podloženou HSM
  4. Certifikát se zapíše zpět do zařízení
  5. Veřejný klíč a otisk certifikátu se zaevidují proti sériovému číslu

Privátní klíč kořenové CA se nikdy nedostane na výrobní linku. Zůstává v HSM v kontrolovaném prostředí.

AWS IoT a Azure DPS

AWS IoT podporuje Just-in-Time Provisioning (JITP) a Multi-Account Registration. Azure Device Provisioning Service (DPS) podporuje atestaci X.509, atestaci Trusted Platform Module (TPM) a atestaci symetrickým klíčem.

Obě služby umožňují výrobní lince předregistrovat zařízení tak, aby se při prvním připojení do cloudu automaticky zaregistrovala. Pracovní postup na straně výroby:

  1. Zařízení je vybaveno certifikátem X.509
  2. Otisk certifikátu zařízení je zaregistrován v cloudovém DPS
  3. Zařízení se nabootuje v terénu, předloží certifikát a automaticky se zaregistruje
  4. Cloud zařadí zařízení do správné skupiny a stáhne mu konfiguraci

Vlastní PKI funguje podle stejného vzoru, jen s interní infrastrukturou namísto AWS nebo Azure.

Funkční pracovní postup na straně výroby

  • Kořenová CA podložená HSM v kontrolovaném prostředí, přístupná přes podpisové API
  • Generování klíče pro každý kus uvnitř secure elementu přímo na lince
  • Podepisování certifikátu přes volání API (žádný klíčový materiál se neobjeví venku)
  • Předregistrace v cloudovém DPS jako součást kroku provisioningu
  • Záznam o enrollmentu každého kusu ve výrobní databázi
  • Volitelná správa revokačního seznamu pro zařízení na konci životnosti nebo ztracené kusy

Časté chyby

  • Privátní klíč kořenové CA uložený na výrobní lince (mimo HSM)
  • Stejný klíč nahraný do více zařízení („testovací režim, který odešel do výroby“)
  • Otisk certifikátu zaevidovaný, ale nepředregistrovaný v cloudovém DPS
  • Provisioning postup prováděný ručně na pár kusech, nikdy nenaškálovaný

Zdroje

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

Poptat naprogramované a sériově číslované kusy

Pokud tento výzkum odpovídá situaci vašeho produktu, pošlete nám soubory a naceníme rozsah výroby.