Dukungan TLS di Azure IoT Hub Device Provisioning Service (DPS)

DPS menggunakan Transport Layer Security (TLS) untuk mengamankan koneksi dari perangkat IoT.

Versi protokol TLS saat ini yang didukung oleh DPS adalah:

  • TLS 1.2

Membatasi koneksi ke versi TLS minimum

Anda dapat mengonfigurasi instans DPS untuk hanya mengizinkan koneksi klien perangkat yang menggunakan versi TLS minimum atau yang lebih besar.

Penting

Saat ini, DPS hanya mendukung TLS 1.2, jadi tidak perlu menentukan versi TLS minimum saat Anda membuat instans DPS. Fitur ini disediakan untuk ekspansi di masa mendatang.

Untuk melakukan ini, provisikan sumber daya DPS baru dengan mengatur minTlsVersionproperti1.2 dalam spesifikasi sumber daya DPS templat Azure Resource Manager Anda. Dalam contoh berikut templat JSON menentukan properti minTlsVersion untuk instans DPS baru.

{
    "$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
            },
        }     
    ]
}

Anda dapat menyebarkan templat dengan perintah Azure CLI berikut.

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

Untuk informasi selengkapnya tentang membuat sumber daya DPS dengan templat Resource Manager, lihat, Menyiapkan DPS dengan templat Azure Resource Manager.

Sumber daya DPS yang dibuat menggunakan konfigurasi ini akan menolak perangkat yang mencoba terhubung menggunakan TLS versi 1.0 dan 1.1.

Catatan

Properti minTlsVersion merupakan properti baca-saja dan tak bisa diubah setelah sumber daya DPS Anda dibuat. Oleh karena itu, penting bagi Anda untuk menguji dan memvalidasi dengan benar bahwa semua perangkat IoT Anda kompatibel dengan TLS 1.2 dan sandi yang direkomendasikan terlebih dahulu.

Catatan

Setelah kegagalan, properti minTlsVersion DPS Anda akan tetap efektif di wilayah yang dipasangkan geografis pasca-kegagalan.

Instans DPS memberlakukan penggunaan suite sandi yang direkomendasikan dan warisan berikut:

Suite sandi TLS 1.2 yang direkomendasikan
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

Suite sandi warisan

Suite sandi saat ini masih didukung oleh DPS tetapi akan didepresiasi. Gunakan suite sandi yang direkomendasikan di atas jika memungkinkan.

Opsi #1 (keamanan yang lebih baik)
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)
Opsi #2 (performa yang lebih baik)
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)

Dukungan TLS bersama

Ketika pendaftaran DPS dikonfigurasi untuk autentikasi X.509, TLS bersama (mTLS) didukung oleh DPS.

Penyematan sertifikat

Penyematan sertifikat dan pemfilteran sertifikat server TLS (alias sertifikat daun) dan sertifikat perantara yang terkait dengan titik akhir DPS sangat tidak disarankan karena Microsoft sering menggulung sertifikat ini dengan sedikit atau tanpa pemberitahuan. Jika Anda harus, hanya sematkan sertifikat akar seperti yang dijelaskan dalam posting blog Azure IoT ini.

Gunakan TLS 1.2 di SDK IoT

Gunakan tautan di bawah ini untuk mengonfigurasi TLS 1.2 dan memungkinkan sandi di SDK klien Azure IoT.

Bahasa Versi yang mendukung TLS 1.2 Dokumentasi
C Tag 2019-12-11 atau yang lebih baru Tautan
Python Versi 2.0.0 atau yang lebih baru Tautan
C# Versi 1.21.4 atau yang lebih baru Tautan
Java Versi 1.19.0 atau yang lebih baru Tautan
NodeJS Versi 1.12.2 atau yang lebih baru Tautan

Gunakan TLS 1.2 dengan IoT Hub

IoT Hub dapat dikonfigurasi untuk menggunakan TLS 1.2 saat berkomunikasi dengan perangkat. Untuk informasi selengkapnya, lihat Menghentikan TLS 1.0 dan 1.1 untuk IoT Hub.

Gunakan TLS 1.2 dengan IoT Edge

Perangkat IoT Edge dapat dikonfigurasi untuk menggunakan TLS 1.2 saat berkomunikasi dengan IoT Hub dan DPS. Untuk informasi selengkapnya, lihat Halaman dokumentasi IoT Edge.