Megosztás a következőn keresztül:


Transport Layer Security (TLS) támogatása az IoT Hubban

Az IoT Hub a Transport Layer Security (TLS) használatával védi az IoT-eszközök és -szolgáltatások kapcsolatait.

Feljegyzés

Az Azure IoT Hub 2025. augusztus 31-én megszűnik a TLS 1.0 és 1.1 szolgáltatásra vonatkozó, az Azure-ra vonatkozó bejelentésével összhangban a TLS 1.0 és 1.1támogatása.

Ezért elengedhetetlen, hogy megfelelően tesztelje és ellenőrizze, hogy az összes IoT-eszköze és szolgáltatása kompatibilis-e a TLS 1.2-vel és az ajánlott rejtjelekkel . Erősen ajánlott a minimális TLS-kényszerítési funkció használata tesztelési és megfelelőségi mechanizmusként

Az IoT Hub-eszközök által használt TLS verziójának megtekintéséhez tekintse meg a TLS 1.0-s és 1.1-es verziójának támogatási útmutatóját.

Kölcsönös TLS-támogatás

A kölcsönös TLS-hitelesítés biztosítja, hogy az ügyfél hitelesítse a kiszolgálói (IoT Hub) tanúsítványt, a kiszolgáló (IoT Hub) pedig X.509 ügyféltanúsítvány vagy X.509 ujjlenyomat használatával hitelesíti az ügyfelet. Az IoT Hub a hitelesítés befejezése után végzi az engedélyezést.

Az Advanced Message Queuing Protocol (AMQP) és a Message Queuing Telemetry Transport (MQTT) protokollok esetében az IoT Hub ügyféltanúsítványt kér a kezdeti TLS-kézfogásban. Ha van ilyen, az IoT Hub hitelesíti az ügyféltanúsítványt, és az ügyfél hitelesíti az IoT Hub-tanúsítványt. Ezt a folyamatot kölcsönös TLS-hitelesítésnek nevezzük. Amikor az IoT Hub MQTT connect csomagot kap, vagy megnyílik egy AMQP-hivatkozás, az IoT Hub elvégzi a kérelmező ügyfél engedélyezését , és megállapítja, hogy az ügyfél X.509-hitelesítést igényel-e. Ha a kölcsönös TLS-hitelesítés befejeződött, és az ügyfél jogosult az eszközként való csatlakozásra, az engedélyezett. Ha azonban az ügyfél X.509-hitelesítést igényel, és az ügyfélhitelesítés nem fejeződött be a TLS-kézfogás során, az IoT Hub elutasítja a kapcsolatot.

HTTP-protokoll esetén az ügyfél első kérésének végrehajtásakor az IoT Hub ellenőrzi, hogy az ügyfél X.509-hitelesítést igényel-e, és ha az ügyfélhitelesítés befejeződött, akkor az IoT Hub elvégzi az engedélyezést. Ha az ügyfélhitelesítés nem fejeződött be, az IoT Hub elutasítja a kapcsolatot

Sikeres TLS-kézfogás után az IoT Hub szimmetrikus kulccsal vagy X.509-tanúsítvánnyal hitelesíthet egy eszközt. Tanúsítványalapú hitelesítés esetén az IoT Hub a tanúsítványt az Ön által megadott ujjlenyomattal vagy hitelesítésszolgáltatóval (CA) ellenőrzi. További információ: Identitások hitelesítése X.509-tanúsítványokkal.

Az IoT Hub kiszolgálói TLS-tanúsítványa

TLS-kézfogás során az IoT Hub RSA-kulcsú kiszolgálótanúsítványokat mutat be az ügyfelek csatlakoztatásához. A globális Azure-felhőben található összes IoT Hub a DigiCert Global Root G2 által kiadott TLS-tanúsítványt használja.

Határozottan javasoljuk, hogy minden eszköz megbízhatónak minősítse a következő három fő hitelesítésszolgáltatót:

  • DigiCert Global G2 root CA
  • Microsoft RSA root CA 2017

A tanúsítványok letöltésére mutató hivatkozásokért tekintse meg az Azure Tanúsítványszolgáltató adatait.

A legfelső szintű hitelesítésszolgáltató áttelepítése ritkán fordul elő. Mindig készítse elő az IoT-megoldást arra a valószínűtlen esetre, ha a legfelső szintű hitelesítésszolgáltató biztonsága sérül, és szükség van egy vészhelyzeti legfelső szintű hitelesítésszolgáltató migrálására.

Titkosítási csomagok

A biztonságos kapcsolat azure-beli biztonsági szabályzatának betartása érdekében az IoT Hub a következő RSA- és ECDSA-titkosítási csomagokat támogatja a TLS 1.2-hez:

  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384

Az alábbi titkosítási csomagok jelenleg engedélyezettek az IoT Hubban. Ezeket a titkosítási csomagokat azonban az Azure biztonsági irányelvei már nem javasolják.

Titkosítási csomagok TLS-verzió támogatása
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 TLS 1.2
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 TLS 1.2
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 TLS 1.2
TLS_RSA_WITH_AES_256_GCM_SHA384 TLS 1.2
TLS_RSA_WITH_AES_128_GCM_SHA256 TLS 1.2
TLS_RSA_WITH_AES_256_CBC_SHA256 TLS 1.2
TLS_RSA_WITH_AES_128_CBC_SHA256 TLS 1.2
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA TLS 1.0/1.1/1.2
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA TLS 1.0/1.1/1.2
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA TLS 1.0/1.1/1.2
TLS_RSA_WITH_3DES_EDE_CBC_SHA TLS 1.0/1.1/1.2
TLS_RSA_WITH_3DES_EDE_CBC_SHA TLS 1.0/1.1/1.2
TLS_RSA_WITH_AES_128_CBC_SHA TLS 1.0/1.1/1.2
TLS_RSA_WITH_AES_256_CBC_SHA TLS 1.0/1.1/1.2

Az ügyfél javasolhat egy listát a magasabb titkosítási csomagokról, amelyet a rendszer a használat során ClientHellohasznál. Előfordulhat azonban, hogy az IoT Hub nem támogatja őket (például ECDHE-ECDSA-AES256-GCM-SHA384). Ebben az esetben az IoT Hub megpróbálja követni az ügyfél preferenciáját, de végül tárgyalni fog a titkosítási csomaggal ServerHello.

Az IoT Hub kényszerítése TLS 1.2 és erős titkosítási csomagok használatára

Annak érdekében, hogy az IoT-eszközök TLS 1.2-s és erős titkosítási csomagokkal rendelkezzenek , kényszerítheti a megfelelőséget az Azure IoT Hub minimális TLS-kényszerítési funkciójával.

Ez a funkció jelenleg csak a következő régiókban és az IoT Hub létrehozása során érhető el (2025-ben más Azure-régiók is támogatottak):

  • USA keleti régiója
  • USA déli középső régiója
  • USA 2. nyugati régiója
  • USA-beli államigazgatás – Arizona
  • US Gov Virginia (A TLS 1.0/1.1 támogatása ebben a régióban nem érhető el – A TLS 1.2 kényszerítését engedélyezni kell, vagy az IoT Hub létrehozása sikertelen)

A TLS 1.2 és az erős titkosítási csomagok kényszerítése az Azure Portalon:

  1. Bámulás az IoT Hub létrehozási varázslójával az Azure Portalon

  2. Válasszon egy régiót a fenti lista egyikéből.

  3. A Felügyelet – Speciális –>> Átviteli réteg biztonsága (TLS) –> Minimális TLS-verzió, válassza az 1.2 lehetőséget. Ez a beállítás csak a támogatott régióban létrehozott IoT Hub esetében jelenik meg.

    Képernyőkép a TLS 1.2-kényszerítés bekapcsolásáról az IoT Hub létrehozása során.

  4. Kattintson a Létrehozás gombra

  5. IoT-eszközök csatlakoztatása ehhez az IoT Hubhoz

Ha ARM-sablont szeretne használni a létrehozáshoz, építsen ki egy új IoT Hubot bármelyik támogatott régióban, és állítsa be a minTlsVersion tulajdonságot 1.2 az erőforrás-specifikációban:

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "resources": [
        {
            "type": "Microsoft.Devices/IotHubs",
            "apiVersion": "2020-01-01",
            "name": "<provide-a-valid-resource-name>",
            "location": "<any-of-supported-regions-below>",
            "properties": {
                "minTlsVersion": "1.2"
            },
            "sku": {
                "name": "<your-hubs-SKU-name>",
                "tier": "<your-hubs-SKU-tier>",
                "capacity": 1
            }
        }
    ]
}

Az ezzel a konfigurációval létrehozott IoT Hub-erőforrás elutasítja azokat az eszköz- és szolgáltatás-ügyfeleket, amelyek TLS 1.0 és 1.1 verzióval próbálnak csatlakozni. Hasonlóképpen, a TLS kézfogása is elutasításra kerül, ha az ClientHello üzenet nem sorolja fel a javasolt titkosításokat.

Feljegyzés

A minTlsVersion tulajdonság írásvédett, és nem módosítható az IoT Hub-erőforrás létrehozása után. Ezért elengedhetetlen, hogy megfelelően tesztelje és ellenőrizze, hogy az összes IoT-eszköze és szolgáltatása kompatibilis-e a TLS 1.2-vel és az ajánlott rejtjelekkel .

Feladatátvétel esetén az minTlsVersion IoT Hub tulajdonsága a feladatátvétel utáni geopáros régióban is érvényes marad.

TLS-verziók ellenőrzése IoT Hub-eszközök esetén

Az Azure IoT Hub diagnosztikai naplókat biztosíthat több olyan kategóriához, amelyek elemezhetők az Azure Monitor-naplók használatával. A kapcsolatnaplóban megtalálja az IoT Hub-eszközök TLS-verzióját.

A naplók megtekintéséhez kövesse az alábbi lépéseket:

  1. Az Azure Portalon nyissa meg az IoT Hubot.
  2. A Figyelés erőforrás menüjében válassza a Diagnosztikai beállítások lehetőséget. Győződjön meg arról, hogy a diagnosztikai beállításokban a "Kapcsolatok" jelölőnégyzet be van jelölve.
  3. A Figyelés erőforrás menüjében válassza a Naplók lehetőséget.
  4. Adja meg a következő lekérdezést:
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.DEVICES" and ResourceType == "IOTHUBS"
| where Category == "Connections"
| where OperationName == "deviceConnect"
| extend props_json = parse_json(properties_s)
| project DeviceId = props_json.deviceId, TLSVersion = props_json.tlsVersion
  1. Egy példa a lekérdezés eredményeire a következőképpen néz ki: Az eszköz TLS-verziójának lekérdezését bemutató diagram.
  2. Megjegyzés: A TLS-verzió lekérdezése nem érhető el HTTPS-kapcsolatokat használó eszközökhöz.

TLS-konfiguráció az SDK-hoz és az IoT Edge-hez

Az alábbi hivatkozások segítségével konfigurálhatja a TLS 1.2-t és az engedélyezett titkosításokat az IoT Hub ügyféloldali SDK-kban.

Nyelv TLS 1.2-t támogató verziók Dokumentáció
C Címke 2019-12-11 vagy újabb Láncszem
Python 2.0.0-s vagy újabb verzió Láncszem
C# 1.21.4-es vagy újabb verzió Láncszem
Java 1.19.0-s vagy újabb verzió Láncszem
Node.js 1.12.2-es vagy újabb verzió Láncszem

Az IoT Edge-eszközök úgy konfigurálhatók, hogy a TLS 1.2-t használják az IoT Hubbal való kommunikáció során. Ehhez használja az IoT Edge dokumentációs oldalát.

Elliptikus görbe titkosítási (ECC) kiszolgálói TLS-tanúsítvány

Bár az RSA-tanúsítványokhoz hasonló biztonságot nyújt, az ECC-tanúsítványok érvényesítése (csak ECC-titkosítási csomagokkal) akár 40%-kal kevesebb számítási, memória- és sávszélesség-használatot is igénybe vesz. Ezek a megtakarítások a kisebb profilok és a memória miatt fontosak az IoT-eszközök számára, és támogatják a korlátozott hálózati sávszélességű környezetekben való használatot.

Az IoT Hub ECC-kiszolgálótanúsítványának használata:

  1. Győződjön meg arról, hogy az összes eszköz megbízik a következő legfelső szintű hitelesítésszolgáltatókban:
    • DigiCert Global G2 root CA
    • Microsoft RSA root CA 2017
  2. Konfigurálja az ügyfelet úgy, hogy csak ECDSA-titkosítási csomagokat tartalmazzon, és zárja ki az RSA-csomagokat. Ezek az ECC-tanúsítvány támogatott titkosítási csomagjai:
    • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
    • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
    • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
    • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
  3. Csatlakoztassa az ügyfelet az IoT Hubhoz.

TLS maximális töredékhossz egyeztetése

Az IoT Hub támogatja a TLS maximális töredékhossz-egyeztetését is, amelyet TLS-keretméret-egyeztetésnek is neveznek. Ez a funkció nyilvános előzetes verzióban érhető el.

Ezzel a funkcióval megadhatja az egyszerű szöveges töredék maximális hosszát az alapértelmezett 2^14 bájtnál kisebb értékre. A tárgyalás után az IoT Hub és az ügyfél megkezdi az üzenetek töredezettségét, hogy az összes töredék kisebb legyen a egyeztetett hossznál. Ez a viselkedés hasznos lehet a korlátozott számítási vagy memóriakorlátozott eszközök esetén. További információkért tekintse meg a hivatalos TLS-bővítmény specifikációt.

A nyilvános előzetes verziójú funkció hivatalos SDK-támogatása még nem érhető el. Első lépések

  1. IoT Hub létrehozása
  2. OpenSSL használatakor hívja meg a SSL_CTX_set_tlsext_max_fragment_length a töredék méretének megadásához.
  3. Csatlakoztassa az ügyfelet az IoT Hubhoz.

Tanúsítvány rögzítése

Az IoT Hub-végpontokhoz társított TLS-kiszolgálótanúsítványok és köztes tanúsítványok tanúsítványrögzítését és szűrését erősen elriasztja a Microsoft, mivel ezeket a tanúsítványokat a Microsoft gyakran csak kis vagy egyáltalán nem veszi észre. Ha szükséges, csak a főtanúsítványokat rögzítse az Azure IoT-blogbejegyzésben leírtak szerint.

Következő lépések