Eszközfrissítés biztonsági modellje

Az IoT Hub eszközfrissítése biztonságos módszert kínál az eszköz belső vezérlőprogramjának, lemezképeinek és alkalmazásainak frissítéseinek üzembe helyezéséhez az IoT-eszközökön. A munkafolyamat egy teljes körű biztonságos csatornát biztosít egy teljes felügyeleti lánccal rendelkező modellel, amellyel az eszköz bizonyíthatja, hogy a frissítés megbízható, nem módosított és szándékos.

Az eszközfrissítési munkafolyamat minden lépését különböző biztonsági funkciók és folyamatok védik, hogy a folyamat minden lépése biztonságos átadást hajtson végre a következőre. Az Eszközfrissítési ügynök referenciakódja azonosítja és megfelelően kezeli a illegitim frissítési kéréseket. A referenciaügynök minden letöltést ellenőriz annak érdekében, hogy a tartalom megbízható, nem módosított és szándékos legyen.

Összesítés

A frissítések eszközfrissítési példányba való importálása során a szolgáltatás feltölti és ellenőrzi a frissítés bináris fájljait, hogy meggyőződjön arról, hogy azokat nem módosította vagy cserélte fel egy rosszindulatú felhasználó. Az ellenőrzés után az Eszközfrissítés szolgáltatás létrehoz egy belső frissítési jegyzékfájlt az importálási jegyzékből és más metaadatokból származó fájlkivonatokkal. Ezt a frissítési jegyzékfájlt az Eszközfrissítési szolgáltatás aláírja.

Miután importálta a szolgáltatást, és az Azure-ban tárolta, a frissítés bináris fájljait és a kapcsolódó ügyfél-metaadatokat az Azure Storage szolgáltatás automatikusan titkosítja inaktív állapotban. Az Eszközfrissítés szolgáltatás nem biztosít automatikusan további titkosítást, de lehetővé teszi a fejlesztők számára a tartalom titkosítását, mielőtt a tartalom elérené az Eszközfrissítés szolgáltatást.

Ha az eszközfrissítési szolgáltatás egy frissítést helyez üzembe az eszközökön, a rendszer aláírt üzenetet küld a védett IoT Hub-csatornán keresztül az eszköznek. A kérés aláírását az eszköz eszközfrissítési ügynöke hitelesként ellenőrzi.

Az eredményként kapott bináris letöltések a frissítési jegyzék aláírásának ellenőrzésével védve lesznek. A frissítési jegyzék tartalmazza a bináris fájlkivonatokat, így ha a jegyzék megbízható, az eszközfrissítési ügynök megbízik a kivonatokban, és megfelel a bináris fájloknak. A frissítési bináris fájl letöltése és ellenőrzése után a rendszer átadja az eszköz telepítőjének.

Megvalósítás részletei

Annak érdekében, hogy az Eszközfrissítés szolgáltatás egyszerű, alacsony teljesítményű eszközökre legyen skálázva, a biztonsági modell nyers aszimmetrikus kulcsokat és nyers aláírásokat használ. JSON-alapú formátumokat használnak, például JSON-webjogkivonatokat és JSON-webkulcsokat.

Frissítési tartalom védelme a frissítési jegyzéken keresztül

A frissítési jegyzék két aláírással van érvényesítve. Az aláírások aláírási kulcsokból és főkulcsokból állóstruktúra használatával jönnek létre.

Az Eszközfrissítési ügynök beágyazott nyilvános kulcsokkal rendelkezik, amelyeket az összes eszközfrissítés-kompatibilis eszközhöz használnak. Ezek a nyilvános kulcsok a főkulcsok . A megfelelő titkos kulcsokat a Microsoft vezérli.

A Microsoft létrehoz egy nyilvános/privát kulcspárt is, amely nem szerepel az eszközfrissítési ügynökben, vagy az eszközön van tárolva. Ez a kulcs az aláírási kulcs.

Amikor az IoT Hub eszközfrissítésébe importál egy frissítést, és a frissítési jegyzékfájlt a szolgáltatás hozza létre, a szolgáltatás aláírja a jegyzékfájlt az aláíró kulccsal, és magában foglalja magát az aláíró kulcsot, amelyet egy gyökérkulcs ír alá. Amikor a frissítési jegyzékfájlt elküldi az eszköznek, az eszközfrissítési ügynök a következő aláírási adatokat kapja:

  1. Maga az aláírási érték.
  2. Az 1. szám létrehozásához használt algoritmus.
  3. Az 1. számú kulcs létrehozásához használt aláírókulcs nyilvános kulcsadatai.
  4. A nyilvános aláírási kulcs aláírása a 3. számban.
  5. A #3 generálásához használt gyökérkulcs nyilvános kulcsazonosítója.
  6. A 4. #4 generálásához használt algoritmus.

Az Eszközfrissítési ügynök a fenti információk alapján ellenőrzi, hogy a nyilvános aláírási kulcs aláírása a gyökérkulcs által van-e aláírva. Az Eszközfrissítési ügynök ezután ellenőrzi, hogy a frissítési jegyzék aláírását az aláírókulcs írja-e alá. Ha az összes aláírás helyes, az eszközfrissítési ügynök megbízhatónak minősíti a frissítési jegyzékfájlt. Mivel a frissítési jegyzék tartalmazza a frissítési fájloknak megfelelő fájlkivonatokat, a frissítési fájlok akkor is megbízhatók lehetnek, ha a kivonatok egyeznek.

A gyökér- és aláírási kulcsok lehetővé teszik a Microsoft számára az aláíró kulcs rendszeres gördítését, ami egy ajánlott biztonsági eljárás.

JSON webes aláírás (JWS)

Ez updateManifestSignature annak biztosítására szolgál, hogy a benne található updateManifest információk ne legyenek illetéktelenek. A updateManifestSignature JSON Web Signature és a JSON webkulcsok használatával állítják elő, amely lehetővé teszi a forrásellenőrzést. Az aláírás egy Base64Url kódolású sztring, amelynek három szakaszát a "." jelöli. Tekintse meg a JSON-kulcsok és -jogkivonatok elemzésére és ellenőrzésére szolgáló jws_util.h segédmetódusokat .

A JSON Web Signature egy széles körben használt javasolt IETF-szabvány a tartalom JSON-alapú adatstruktúrák használatával történő aláírásához. Ez az adatintegritás biztosításának módja az adatok aláírásának ellenőrzésével. További információk a JSON Web Signature (JWS) RFC 7515-ben találhatók.

JSON webes jogkivonat

A JSON webes jogkivonatok egy nyílt, iparági szabványnak megfelelő módszer a két fél közötti jogcímek biztonságos képviseletére.

Gyökérkulcsok

Minden eszközfrissítési eszköznek tartalmaznia kell egy gyökérkulcskészletet. Ezek a kulcsok képezik a megbízhatóság gyökerét az eszközfrissítés összes aláírásához. Minden aláírást ezen kulcsok valamelyikén keresztül kell láncolni, hogy jogosnak minősüljön.

A főkulcsok készlete idővel megváltozik, mivel biztonsági okokból célszerű rendszeresen elforgatni az aláíró kulcsokat. Ennek eredményeképpen az Eszközfrissítési ügynök szoftverét az eszközfrissítési csapat által megadott időközönként frissíteni kell a legújabb gyökérkulcsokkal. A gyökérkulcs következő tervezett rotációja 2025 májusában lesz.

Az Eszközfrissítési ügynök 1.1.0-s verziójától kezdve az ügynök automatikusan ellenőrzi a főkulcsok módosításait minden alkalommal, amikor az adott eszközre irányuló frissítés telepítése történik. Lehetséges módosítások:

  • Elérhető egy új gyökérkulcs.
  • A meglévő gyökérkulcs le van tiltva (gyakorlatilag "visszavonva"), ami azt jelenti, hogy már nem érvényes a megbízhatóság létrehozására.

Ha a fentiek bármelyike vagy mindkettő igaz, az Eszközfrissítési ügynök automatikusan letölt egy új gyökérkulcscsomagot a DU szolgáltatásból. Ez a csomag tartalmazza az összes gyökérkulcs teljes készletét, valamint egy letiltott listát , amely információkat tartalmaz arról, hogy mely gyökérkulcsok és/vagy aláírókulcsok már nem érvényesek. A gyökérkulcs-csomag maga alá van írva minden gyökérkulccsal, így a csomag megbízhatósága mind a DU-ügynök részét képező eredeti gyökérkulcsokból, mind a később letöltött gyökérkulcsokból hozható létre. Az érvényesítési folyamat befejezése után a rendszer megbízhatónak tekinti az új főkulcsokat az adott frissítési jegyzékhez tartozó aláíró kulccsal való megbízhatóság érvényesítése céljából, míg a letiltott listában felsorolt gyökérkulcsok vagy aláírókulcsok már nem megbízhatók erre a célra.

Aláírások

Minden aláíráshoz egy aláírási (nyilvános) kulcs tartozik, amelyet az egyik főkulcs ír alá. Az aláírás azonosítja, hogy melyik gyökérkulcsot használták az aláírókulcs aláírásához.

Az eszközfrissítési ügynöknek először ellenőriznie kell az aláírásokat, és ellenőriznie kell, hogy az aláírási (nyilvános) kulcs aláírása megfelelő, érvényes és a jóváhagyott főkulcsok egyikével van-e aláírva. Az aláírókulcs sikeres érvényesítése után maga az aláírás is érvényesíthető a most már megbízható aláíró nyilvános kulcs használatával.

Az aláírókulcsok sokkal gyorsabban forognak, mint a főkulcsok, ezért különböző aláírókulcsok által aláírt üzeneteket várnak.

Az aláíró kulcs visszavonását az Eszközfrissítési szolgáltatás kezeli, így a felhasználók nem próbálhatják meg gyorsítótárba helyezni az aláíró kulcsokat. Mindig használja az aláírást kísérő aláírási kulcsot.

Az eszköz biztonságossá tétele

Fontos, hogy az eszközfrissítéssel kapcsolatos biztonsági eszközök megfelelően legyenek védve és védve az eszközön. Az olyan eszközöket, mint a főkulcsok, védelemmel kell ellátni a módosítás ellen. A főkulcsok védelmének különböző módjai vannak, például biztonsági eszközök (TPM, SGX, HSM, egyéb biztonsági eszközök) használata, vagy az eszközfrissítési ügynökben való kemény kódolás, ahogyan a referencia-implementációban jelenleg is történik. Ez utóbbi megköveteli, hogy az eszközfrissítési ügynök kódja digitálisan legyen aláírva, és a rendszer kódintegritási támogatása engedélyezve legyen az ügynökkód rosszindulatú módosítása elleni védelemhez.

Egyéb biztonsági intézkedések is indokoltak lehetnek, például annak biztosítása, hogy az összetevőről az összetevőre történő átadás biztonságos módon legyen végrehajtva. Például regisztrálhat egy adott izolált fiókot a különböző összetevők futtatásához, és korlátozhatja a hálózati alapú kommunikációt (például REST API-hívásokat) a localhostra.

További lépések

Ismerje meg, hogyan használja az Eszközfrissítés az Azure szerepköralapú hozzáférés-vezérlését