Miért tartozik a biztonságos provisioning a gyártásba
Egy olyan hálózatba kapcsolt eszközt, amely identitás nélkül kerül kiszállításra, a telepítés helyszínén kell provisionálni. A helyszíni provisioning egy manuális lépést (vagy egy sebezhető automatikus bejelentkezést) jelent a telepítéskor. Mindkettő üzemeltetési terhet és biztonsági kockázatot jelent.
A gyártás oldali provisioning a kiszállítás előtt egyedi kriptográfiai identitást ad az eszköznek. Az eszköz manuális beavatkozás nélkül indul, hitelesít és regisztrál.
Secure element-ek
A Microchip ATECC608 és az NXP EdgeLock elterjedt secure element-ek IoT-alkalmazásokhoz. Mindkettő támogatja a következőket:
- ECC privát kulcs generálása a chipen belül (a kulcs sosem hagyja el a chipet)
- tanúsítvány aláírása és ellenőrzése
- számlálóalapú replay-védelem
- manipulációérzékelő viselkedés
A gyártósor kulcsot generál a secure element-en belül, aláír egy tanúsítványt a gyökértanúsítvány-kiadóval (root CA) szemben, kiírja a tanúsítványt az eszközre, és a sorozatszám mellé naplózza a nyilvános kulcsot.
X.509 tanúsítványkiállítás
Az X.509 a szabványos tanúsítványformátum. A gyártás oldali kiállítás jellemzően a következő minta szerint történik:
- A secure element ECC kulcspárt generál (a privát kulcs a chipben zárva marad)
- A gyártási rendszer kiolvassa a nyilvános kulcsot
- A gyártási rendszer HSM által védett root CA-val aláírja a tanúsítványt
- A tanúsítvány visszaíródik az eszközre
- A nyilvános kulcs és a tanúsítvány ujjlenyomata a sorozatszámmal együtt naplózásra kerül
A root CA privát kulcsa sosem érintkezik a gyártósorral. Egy ellenőrzött környezetben működő HSM-ben él.
AWS IoT és Azure DPS
Az AWS IoT támogatja a Just-in-Time Provisioning (JITP) és a Multi-Account Registration eljárást. Az Azure Device Provisioning Service (DPS) támogatja az X.509-attestációt, a Trusted Platform Module (TPM) attestációt és a szimmetrikus kulcsos attestációt.
Mindkettő lehetővé teszi, hogy a gyártósor előre regisztrálja az eszközöket, amelyek az első felhőkapcsolatkor automatikusan bejelentkeznek. A gyártás oldali munkafolyamat:
- Az eszköz X.509 tanúsítvánnyal lesz provisionálva
- Az eszköz tanúsítványának ujjlenyomata a felhőbeli DPS-ben regisztrálva
- Az eszköz a telepítés helyén elindul, bemutatja a tanúsítványt, automatikusan bejelentkezik
- A felhő a megfelelő csoporthoz rendeli az eszközt, és letölti a konfigurációt
A saját PKI ugyanezt a mintát követi, csak AWS vagy Azure helyett belső infrastruktúrával.
Működő gyártás oldali munkafolyamat
- HSM által védett root CA ellenőrzött környezetben, aláíró API-n keresztül elérve
- darabonkénti kulcsgenerálás a soron lévő secure element-en belül
- tanúsítvány aláírása API-híváson keresztül (kulcsanyag soha nem kerül a sorra)
- a felhőbeli DPS előregisztrációja a provisioning lépés részeként
- darabonkénti kiállítási rekord naplózva a gyártási adatbázisban
- opcionális visszavonási lista kezelése a leselejtezett vagy elveszett eszközökhöz
Tipikus buktatók
- a root CA privát kulcsa a gyártósoron tárolva (nem HSM-ben)
- ugyanazt a kulcsot több eszközbe is beégetik („tesztmód, ami kikerült a piacra”)
- a tanúsítvány ujjlenyomatát naplózzák, de nem regisztrálják előre a felhőbeli DPS-ben
- a provisioning munkafolyamatot néhány darabon manuálisan futtatják, sosem skálázzák
Források
- AWS IoT Just-in-Time Provisioning dokumentáció
- Microsoft Azure Device Provisioning Service dokumentáció
- Microchip ATECC608 secure element dokumentáció
- NXP EdgeLock secure element dokumentáció