Model zabezpečení služby Device Update

Aktualizace zařízení pro IoT Hub nabízí zabezpečenou metodu nasazení aktualizací firmwaru zařízení, imagí a aplikací do zařízení IoT. Pracovní postup poskytuje ucelený zabezpečený kanál s modelem úplného řetězu opatrovnictví, pomocí kterého může zařízení prokázat, že aktualizace je důvěryhodná, neupravená a úmyslná.

Každý krok pracovního postupu služby Device Update je chráněný různými funkcemi zabezpečení a procesy, aby se zajistilo, že každý krok v kanálu provede zabezpečené předání dalšímu kroku. Referenční kód agenta Device Update identifikuje a správně spravuje všechny nelegitimní žádosti o aktualizaci. Referenční agent také zkontroluje každé stahování, aby se zajistilo, že je obsah důvěryhodný, nezměněný a úmyslný.

Shrnutí

Při importu aktualizací do instance služby Device Update služba nahraje a zkontroluje binární soubory aktualizací, aby se ujistila, že nebyly upraveny nebo prohozeny škodlivým uživatelem. Po ověření služba Device Update vygeneruje interní manifest aktualizace s hodnotami hash souborů z manifestu importu a dalšími metadaty. Tento manifest aktualizace se pak podepíše službou Device Update.

Po importu do služby a uložení v Azure se binární soubory aktualizace a přidružená metadata zákazníků automaticky zašifrují službou Azure Storage. Služba Device Update automaticky neposkytuje další šifrování, ale umožňuje vývojářům šifrovat obsah sami, než obsah dosáhne služby Device Update.

Při nasazení aktualizace do zařízení ze služby Device Update se do zařízení odešle podepsaná zpráva přes chráněný kanál IoT Hubu. Podpis požadavku ověří agent aktualizace zařízení jako ověřený.

Jakékoli výsledné binární stahování je zabezpečeno prostřednictvím ověření podpisu manifestu aktualizace. Manifest aktualizace obsahuje hodnoty hash binárního souboru, takže jakmile je manifest důvěryhodný, agent Device Update důvěřuje hodnotám hash a porovnává je s binárními soubory. Jakmile se binární soubor aktualizace stáhne a ověří, předá se instalačnímu programu na zařízení.

Podrobnosti implementace

Aby se zajistilo, že se služba Device Update škáluje na jednoduchá zařízení s nízkým výkonem, model zabezpečení používá nezpracované asymetrické klíče a nezpracované podpisy. Používají formáty založené na JSON, jako jsou webové tokeny JSON a webové klíče JSON.

Zabezpečení obsahu aktualizace prostřednictvím manifestu aktualizace

Manifest aktualizace se ověřuje pomocí dvou podpisů. Podpisy se vytvářejí pomocí struktury skládající se z podpisových klíčů a kořenových klíčů.

Agent Aktualizace zařízení obsahuje vložené veřejné klíče, které se používají pro všechna zařízení kompatibilní se službou Device Update. Tyto veřejné klíče jsou kořenové klíče. Odpovídající privátní klíče řídí Microsoft.

Microsoft také vygeneruje pár veřejného nebo privátního klíče, který není součástí agenta Device Update nebo uložený na zařízení. Tento klíč je podpisový klíč.

Když se aktualizace naimportuje do služby Device Update pro IoT Hub a manifest aktualizace se vygeneruje službou, služba podepíše manifest pomocí podpisového klíče a zahrne samotný podpisový klíč, který je podepsaný kořenovým klíčem. Když se do zařízení odešle manifest aktualizace, agent aktualizace zařízení obdrží následující podpisová data:

  1. Samotná hodnota podpisu.
  2. Algoritmus použitý ke generování kódu č. 1.
  3. Informace o veřejném klíči podpisového klíče použitého k vygenerování kódu č. 1.
  4. Podpis veřejného podpisového klíče v #3.
  5. ID veřejného klíče kořenového klíče použitého k vygenerování kódu č. 3.
  6. Algoritmus použitý ke generování kódu č. 4.

Agent Device Update používá výše uvedené informace k ověření, že podpis veřejného podpisového klíče je podepsaný kořenovým klíčem. Agent Device Update pak ověří, že podpis manifestu aktualizace je podepsaný podpisem podpisového klíče. Pokud jsou všechny podpisy správné, je manifest aktualizace důvěryhodný agentem Device Update. Vzhledem k tomu, že manifest aktualizace obsahuje hodnoty hash souborů, které odpovídají samotným aktualizačním souborům, mohou být aktualizační soubory také důvěryhodné, pokud se hodnoty hash shodují.

Použití kořenových a podpisových klíčů umožňuje Microsoftu pravidelně zavádět podpisový klíč, osvědčený postup zabezpečení.

Webový podpis JSON (JWS)

Slouží updateManifestSignature k zajištění toho, aby informace obsažené v něm updateManifest nebyly manipulovány. Vytvoří updateManifestSignature se pomocí webového podpisu JSON s webovými klíči JSON, což umožňuje ověření zdroje. Podpis je řetězec s kódováním Base64Url se třemi oddíly označenými znakem ".". Projděte si pomocné metody jws_util.h pro analýzu a ověření klíčů a tokenů JSON.

Webový podpis JSON je široce používaný navrhovaný standard IETF pro podepisování obsahu pomocí datových struktur založených na JSON. Je to způsob, jak zajistit integritu dat ověřením podpisu dat. Další informace najdete v dokumentu RFC 7515 JSON Web Signature (JWS).

Webový token JSON

Webové tokeny JSON představují otevřenou standardní metodu pro bezpečné reprezentaci deklarací identity mezi dvěma stranami.

Kořenové klíče

Každé zařízení device Update musí obsahovat sadu kořenových klíčů. Tyto klíče jsou kořenem důvěryhodnosti pro všechny podpisy služby Device Update. Každý podpis musí být zřetězený prostřednictvím jednoho z těchto kořenových klíčů, aby byl považován za legitimní.

Sada kořenových klíčů se v průběhu času změní, protože je vhodné pravidelně obměňovat podpisové klíče pro účely zabezpečení. V důsledku toho bude potřeba aktualizovat software agenta Device Update o nejnovější sadu kořenových klíčů v intervalech určených týmem Device Update. V květnu 2025 proběhne další plánovaná obměně kořenového klíče.

Od verze 1.1.0 agenta aktualizace zařízení agent automaticky zkontroluje všechny změny kořenových klíčů pokaždé, když dojde k nasazení aktualizace na toto zařízení. Možné změny:

  • K dispozici je nový kořenový klíč.
  • Existující kořenový klíč je zakázaný (efektivně odvolaný), což znamená, že už není platný pro navázání vztahu důvěryhodnosti.

Pokud jsou splněny obě výše uvedené podmínky, agent aktualizace zařízení se automaticky stáhne ze služby DU a vytvoří nový balíček kořenového klíče. Tento balíček obsahuje kompletní sadu všech kořenových klíčů a také zakázaný seznam obsahující informace o tom, které kořenové klíče a/nebo podpisové klíče už nejsou platné. Balíček kořenového klíče je podepsaný jednotlivými kořenovými klíči, takže vztah důvěryhodnosti balíčku je možné navázat jak z původních kořenových klíčů, které jsou součástí samotného agenta DU, tak i ze všech následně stažených kořenových klíčů. Po dokončení procesu ověřování se všechny nové kořenové klíče považují za důvěryhodné pro účely ověřování důvěryhodnosti s podpisovým klíčem pro daný manifest aktualizace, zatímco všechny kořenové klíče nebo podpisové klíče uvedené v seznamu zakázaných certifikátů už nejsou pro tento účel důvěryhodné.

Podpisy

Všechny podpisy jsou doprovázeny podpisovým (veřejným) klíčem podepsaným jedním z kořenových klíčů. Podpis identifikuje, který kořenový klíč se použil k podepsání podpisového klíče.

Agent služby Device Update musí ověřit podpisy tím, že nejprve ověří, že podpis podpisového (veřejného) klíče je správný, platný a podepsaný jedním ze schválených kořenových klíčů. Jakmile se podpisový klíč úspěšně ověří, podpis samotný se může ověřit pomocí nyní důvěryhodného veřejného klíče pro podpis.

Podpisové klíče se obměňují mnohem rychleji než kořenové klíče, takže můžete očekávat zprávy podepsané různými různými podpisovými klíči.

Odvolání podpisového klíče spravuje služba Device Update, takže by se uživatelé neměli pokoušet ukládat podpisové klíče do mezipaměti. Vždy používejte podpisový klíč, který doprovází podpis.

Zabezpečení zařízení

Je důležité zajistit, aby byly prostředky zabezpečení související se službou Device Update správně zabezpečené a chráněné na vašem zařízení. Prostředky, jako jsou kořenové klíče, musí být chráněny před úpravami. Existují různé způsoby, jak chránit kořenové klíče, například pomocí zařízení zabezpečení (TPM, SGX, HSM, jiných bezpečnostních zařízení) nebo pevně zakódovat v agentovi Device Update, jak je to dnes v referenční implementaci. Druhé vyžaduje, aby byl kód agenta Device Update digitálně podepsaný a podpora integrity kódu systému je povolená k ochraně před škodlivými úpravami kódu agenta.

Další bezpečnostní opatření mohou být zajištěna, jako je například zajištění, aby se předání ze komponenty do komponenty provádělo zabezpečeným způsobem. Například registrace konkrétního izolovaného účtu pro spuštění různých komponent a omezení síťové komunikace (například volání rozhraní REST API) pouze na místního hostitele.

Další kroky

Informace o tom, jak služba Device Update používá řízení přístupu na základě role v Azure