TLS-támogatás az Azure IoT Hub Device Provisioning Service-ben (DPS)

A DPS a Transport Layer Security (TLS) használatával védi az IoT-eszközökről érkező kapcsolatokat.

A DPS által támogatott jelenlegi TLS protokollverziók a következők:

  • TLS 1.2

Kapcsolatok korlátozása minimális TLS-verzióra

A DPS-példányokat úgy konfigurálhatja, hogy csak olyan eszközügyfél-kapcsolatokat engedélyezzenek, amelyek legalább TLS-verziót használnak.

Fontos

A DPS jelenleg csak a TLS 1.2-t támogatja, ezért DPS-példány létrehozásakor nem kell megadni a minimális TLS-verziót. Ez a funkció a jövőbeli bővítéshez érhető el.

Ehhez ki kell építenie egy új DPS-erőforrást, amely a tulajdonságot 1.2 az minTlsVersion Azure Resource Manager-sablon DPS-erőforrás-specifikációjában állítja be. Az alábbi JSON-példasablon egy új DPS-példány tulajdonságát minTlsVersion adja meg.

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "resources": [
        {
            "type": "Microsoft.Devices/ProvisioningServices",
            "apiVersion": "2020-01-01",
            "name": "<provide-a-valid-DPS-resource-name>",
            "location": "<any-region>",
            "properties": {
                "minTlsVersion": "1.2"
            },
            "sku": {
                "name": "S1",
                "capacity": 1
            },
        }     
    ]
}

A sablont az alábbi Azure CLI-paranccsal helyezheti üzembe.

az deployment group create -g <your resource group name> --template-file template.json

További információ a DPS-erőforrások Resource Manager-sablonokkal való létrehozásáról: A DPS beállítása Azure Resource Manager-sablonnal.

Az ezzel a konfigurációval létrehozott DPS-erőforrás elutasítja azokat az eszközöket, amelyek TLS 1.0 és 1.1 verzióval próbálnak csatlakozni.

Megjegyzés:

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

Megjegyzés:

Feladatátvételkor a minTlsVersion DPS tulajdonsága a feladatátvétel utáni geopáros régióban is érvényes marad.

A DPS-példányok az alábbi ajánlott és örökölt titkosítási csomagok használatát kényszerítik ki:

Ajánlott TLS 1.2 titkosítási csomagok
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256

Régi titkosítási csomagok

Ezeket a titkosítási csomagokat a DPS jelenleg is támogatja, de elavulttá válik. Ha lehetséges, használja a fenti ajánlott titkosítási csomagokat.

1. lehetőség (jobb biztonság)
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384 (uses SHA-1)
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P256 (uses SHA-1)
TLS_RSA_WITH_AES_256_GCM_SHA384 (lack of Perfect Forward Secrecy)
TLS_RSA_WITH_AES_128_GCM_SHA256 (lack of Perfect Forward Secrecy)
TLS_RSA_WITH_AES_256_CBC_SHA256 (lack of Perfect Forward Secrecy)
TLS_RSA_WITH_AES_128_CBC_SHA256 (lack of Perfect Forward Secrecy)
TLS_RSA_WITH_AES_256_CBC_SHA (uses SHA-1, lack of Perfect Forward Secrecy)
TLS_RSA_WITH_AES_128_CBC_SHA (uses SHA-1, lack of Perfect Forward Secrecy)
2. lehetőség (jobb teljesítmény)
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P256 (uses SHA-1)
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384 (uses SHA-1)
TLS_RSA_WITH_AES_128_GCM_SHA256 (lack of Perfect Forward Secrecy)
TLS_RSA_WITH_AES_256_GCM_SHA384 (lack of Perfect Forward Secrecy)
TLS_RSA_WITH_AES_128_CBC_SHA256 (lack of Perfect Forward Secrecy)
TLS_RSA_WITH_AES_256_CBC_SHA256 (lack of Perfect Forward Secrecy)
TLS_RSA_WITH_AES_128_CBC_SHA (uses SHA-1, lack of Perfect Forward Secrecy)
TLS_RSA_WITH_AES_256_CBC_SHA (uses SHA-1, lack of Perfect Forward Secrecy)

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

Ha a DPS-regisztrációk X.509-hitelesítéshez vannak konfigurálva, a DPS támogatja a kölcsönös TLS-t (mTLS).

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

A TLS-kiszolgálótanúsítványok (más néven levéltanúsítványok) és a DPS-végpontokhoz társított 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 a Microsoft ezeket a tanúsítványokat gyakran kis vagy egyáltalán nem értesítés nélkül dobja be. Ha szükséges, csak a főtanúsítványokat rögzítse az Azure IoT-blogbejegyzésben leírtak szerint.

TLS 1.2 használata az IoT SDK-kban

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

Language TLS 1.2-t támogató verziók Dokumentáció
C# Címke 2019-12-11 vagy újabb Link
Python 2.0.0-s vagy újabb verzió Link
C# 1.21.4-es vagy újabb verzió Link
Java 1.19.0-s vagy újabb verzió Link
NodeJS 1.12.2-es vagy újabb verzió Link

A TLS 1.2 használata az IoT Hubbal

Az IoT Hub konfigurálható a TLS 1.2 használatára az eszközökkel való kommunikáció során. További információ: TLS 1.0 és 1.1 az IoT Hubhoz.

A TLS 1.2 használata az IoT Edge-lel

Az IoT Edge-eszközök úgy konfigurálhatók, hogy a TLS 1.2-t használják az IoT Hubbal és a DPS-vel való kommunikáció során. További információt az IoT Edge dokumentációs oldalán talál.