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 minTlsVersion
properti1.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.
Sandi yang direkomendasikan
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 timbal balik
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 dianjurkan karena Microsoft sering menggulung sertifikat ini dengan sedikit atau tanpa pemberitahuan. Jika harus dilakukan, sematkan sertifikat akar seperti yang dijelaskan dalam posting blog Azure IoT ini saja.
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.
Language | 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.