You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/iot-dps/tls-support.md
+19-5Lines changed: 19 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,7 +7,7 @@ author: kgremban
7
7
ms.author: kgremban
8
8
ms.service: azure-iot-hub
9
9
ms.topic: concept-article
10
-
ms.date: 09/15/2022
10
+
ms.date: 11/27/2024
11
11
ms.subservice: azure-iot-hub-dps
12
12
---
13
13
@@ -59,7 +59,7 @@ az deployment group create -g <your resource group name> --template-file templat
59
59
60
60
For more information on creating DPS resources with Resource Manager templates, see, [Set up DPS with an Azure Resource Manager template](quick-setup-auto-provision-rm.md).
61
61
62
-
The DPS resource created using this configuration will refuse devices that attempt to connect using TLS versions 1.0 and 1.1.
62
+
The DPS resource created using this configuration refuses devices that attempt to connect using TLS versions 1.0 and 1.1.
63
63
64
64
> [!NOTE]
65
65
> The `minTlsVersion` property is read-only and cannot be changed once your DPS resource is created. It is therefore essential that you properly test and validate that *all* your IoT devices are compatible with TLS 1.2 and the [recommended ciphers](#recommended-ciphers) in advance.
@@ -77,7 +77,7 @@ DPS instances enforce the use of the following recommended and legacy cipher sui
77
77
78
78
### Legacy cipher suites
79
79
80
-
These cipher suites are currently still supported by DPS but will be depreciated. Use the recommended cipher suites above if possible.
80
+
These cipher suites are still supported by DPS but will be depreciated. Use the recommended cipher suites if possible.
81
81
82
82
| Option #1 (better security) |
83
83
| :--- |
@@ -93,7 +93,7 @@ When DPS enrollments are configured for X.509 authentication, mutual TLS (mTLS)
93
93
94
94
## Server TLS certificate
95
95
96
-
During a TLS handshake, DPS presents RSA-keyed server certificates to connecting clients. All DPS instances in the global Azure cloud use the TLS certificate issued by the DigiCert Global Root G2. The [device SDKs](./iot-hub-devguide-sdks.md) include the DigiCert Global Root G2 TLS certificate they currently need to establish a secure connection to DPS and IoT Hub.
96
+
During a TLS handshake, DPS presents RSA-keyed server certificates to connecting clients. All DPS instances in the global Azure cloud use the TLS certificate issued by the DigiCert Global Root G2certificate.
97
97
98
98
We also recommend adding the Microsoft RSA Root Certificate Authority 2017 certificates to your devices to prevent disruptions in case the DigiCert Global Root G2 is retired unexpectedly. Although root CA migrations are rare, for resilience in the modern security landscape you should prepare your IoT scenario for the unlikely event that a root CA is compromised or an emergency root CA migration is necessary.
99
99
@@ -104,9 +104,23 @@ We strongly recommend that all devices trust the following root CAs:
104
104
105
105
For links to download these certificates, see [Azure Certificate Authority details](../security/fundamentals/azure-CA-details.md).
106
106
107
+
### Certificate trust in the SDKs
108
+
109
+
The [Azure IoT device SDKs](../iot-hub/iot-hub-devguide-sdks.md) connect and authenticate devices to Azure IoT services. The different SDKs manage certificates in different ways depending on the language and version, but most rely on the device's trusted certificate store rather than pinning certificates directly in the codebase. This approach provides flexibility and resilience to handle future changes in root certificates.
110
+
111
+
The following table summarizes which SDK versions support the trusted certificate store:
112
+
113
+
| Azure IoT device SDK | Supported versions |
114
+
| -------------------- | ------------------ |
115
+
| C | All currently supported versions |
116
+
| C# | All currently supported versions |
117
+
| Java | Version 2.x.x and higher |
118
+
| Node.js | All currently supported versions |
119
+
| Python | All currently supported versions |
120
+
107
121
### Certificate pinning
108
122
109
-
[Certificate pinning](https://www.digicert.com/blog/certificate-pinning-what-is-certificate-pinning) and filtering of the TLS server certificates (aka leaf certificates) and intermediate certificates associated with DPS endpoints is strongly discouraged as Microsoft frequently rolls these certificates with little or no notice. If you must, only pin the root certificates as described in this [Azure IoT blog post](https://techcommunity.microsoft.com/t5/internet-of-things-blog/azure-iot-tls-critical-changes-are-almost-here-and-why-you/ba-p/2393169).
123
+
[Certificate pinning](https://www.digicert.com/blog/certificate-pinning-what-is-certificate-pinning) and filtering of the TLS server certificates (also known as leaf certificates) and intermediate certificates associated with DPS endpoints is discouraged as Microsoft frequently rolls these certificates with little or no notice. If you must, only pin the root certificates as described in this [Azure IoT blog post](https://techcommunity.microsoft.com/t5/internet-of-things-blog/azure-iot-tls-critical-changes-are-almost-here-and-why-you/ba-p/2393169).
Copy file name to clipboardExpand all lines: articles/iot-hub/create-connect-device.md
+4-1Lines changed: 4 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -31,7 +31,10 @@ Devices use two different types of certificates to connect to IoT Hub. When prep
31
31
32
32
### Required public root certificates
33
33
34
-
Azure IoT devices use TLS to verify the authenticity of the IoT hub or DPS endpoint they're connecting to. The device SDKs include the DigiCert Global Root G2 TLS certificate they currently need to establish a secure connection to the IoT hub.
34
+
Azure IoT devices use TLS to verify the authenticity of the IoT hub or DPS endpoint they're connecting to. Each device needs a copy of the root certificate that IoT Hub and DPS use. We recommend that all devices include the following root CAs in their trusted certificate store:
35
+
36
+
* DigiCert Global G2 root CA
37
+
* Microsoft RSA root CA 2017
35
38
36
39
For more information about IoT Hub's recommended certificate practices, see [TLS support](./iot-hub-tls-support.md).
Copy file name to clipboardExpand all lines: articles/iot-hub/iot-hub-tls-support.md
+21-7Lines changed: 21 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,7 @@
5
5
author: kgremban
6
6
ms.service: azure-iot-hub
7
7
ms.topic: conceptual
8
-
ms.date: 01/05/2024
8
+
ms.date: 11/27/2024
9
9
ms.author: kgremban
10
10
---
11
11
@@ -17,7 +17,7 @@ TLS 1.0 and 1.1 are considered legacy and are planned for deprecation. For more
17
17
18
18
## IoT Hub's server TLS certificate
19
19
20
-
During a TLS handshake, IoT Hub presents RSA-keyed server certificates to connecting clients. All IoT hubs in the global Azure cloud use the TLS certificate issued by the DigiCert Global Root G2. The [device SDKs](./iot-hub-devguide-sdks.md) include the DigiCert Global Root G2 TLS certificate they currently need to establish a secure connection to the IoT hub.
20
+
During a TLS handshake, IoT Hub presents RSA-keyed server certificates to connecting clients. All IoT hubs in the global Azure cloud use the TLS certificate issued by the DigiCert Global Root G2.
21
21
22
22
We also recommend adding the Microsoft RSA Root Certificate Authority 2017 certificates to your devices to prevent disruptions in case the DigiCert Global Root G2 is retired unexpectedly. Although root CA migrations are rare, for resilience in the modern security landscape you should prepare your IoT scenario for the unlikely event that a root CA is compromised or an emergency root CA migration is necessary.
23
23
@@ -28,9 +28,23 @@ We strongly recommend that all devices trust the following root CAs:
28
28
29
29
For links to download these certificates, see [Azure Certificate Authority details](../security/fundamentals/azure-CA-details.md).
30
30
31
+
### Certificate trust in the SDKs
32
+
33
+
The [Azure IoT device SDKs](../iot-hub/iot-hub-devguide-sdks.md) connect and authenticate devices to Azure IoT services. The different SDKs manage certificates in different ways depending on the language and version, but most rely on the device's trusted certificate store rather than pinning certificates directly in the codebase. This approach provides flexibility and resilience to handle future changes in root certificates.
34
+
35
+
The following table summarizes which SDK versions support the trusted certificate store:
36
+
37
+
| Azure IoT device SDK | Supported versions |
38
+
| -------------------- | ------------------ |
39
+
| C | All currently supported versions |
40
+
| C# | All currently supported versions |
41
+
| Java | Version 2.x.x and higher |
42
+
| Node.js | All currently supported versions |
43
+
| Python | All currently supported versions |
44
+
31
45
### Certificate pinning
32
46
33
-
[Certificate pinning](https://www.digicert.com/blog/certificate-pinning-what-is-certificate-pinning) and filtering of the TLS server certificates (aka leaf certificates) and intermediate certificates associated with IoT Hub endpoints is strongly discouraged as Microsoft frequently rolls these certificates with little or no notice. If you must, only pin the root certificates as described in this [Azure IoT blog post](https://techcommunity.microsoft.com/t5/internet-of-things-blog/azure-iot-tls-critical-changes-are-almost-here-and-why-you/ba-p/2393169).
47
+
[Certificate pinning](https://www.digicert.com/blog/certificate-pinning-what-is-certificate-pinning) and filtering of the TLS server certificates (also known as leaf certificates) and intermediate certificates associated with IoT Hub endpoints is discouraged as Microsoft frequently rolls these certificates with little or no notice. If you must, only pin the root certificates as described in this [Azure IoT blog post](https://techcommunity.microsoft.com/t5/internet-of-things-blog/azure-iot-tls-critical-changes-are-almost-here-and-why-you/ba-p/2393169).
34
48
35
49
### Elliptic Curve Cryptography (ECC) server TLS certificate (preview)
36
50
@@ -95,7 +109,7 @@ To use ARM template for creation, provision a new IoT Hub in any of the supporte
95
109
}
96
110
```
97
111
98
-
The created IoT Hub resource using this configuration will refuse device and service clients that attempt to connect using TLS versions 1.0 and 1.1. Similarly, the TLS handshake will be refused if the `ClientHello` message does not list any of the [recommended ciphers](#cipher-suites).
112
+
The created IoT Hub resource using this configuration refuses device and service clients that attempt to connect using TLS versions 1.0 and 1.1. Similarly, the TLS handshake is refused if the `ClientHello` message doesn't list any of the [recommended ciphers](#cipher-suites).
99
113
100
114
> [!NOTE]
101
115
> The `minTlsVersion` property is read-only and cannot be changed once your IoT Hub resource is created. It is therefore essential that you properly test and validate that *all* your IoT devices and services are compatible with TLS 1.2 and the [recommended ciphers](#cipher-suites) in advance.
@@ -104,7 +118,7 @@ The created IoT Hub resource using this configuration will refuse device and ser
104
118
105
119
## Cipher suites
106
120
107
-
IoT Hubs that are configured to accept only TLS 1.2 will also enforce the use of the following recommended cipher suites:
121
+
IoT Hubs that are configured to accept only TLS 1.2 also enforce the use of the following recommended cipher suites:
108
122
109
123
*`TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256`
110
124
*`TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384`
@@ -126,11 +140,11 @@ For IoT Hubs not configured for TLS 1.2 enforcement, TLS 1.2 still works with th
126
140
*`TLS_RSA_WITH_AES_128_CBC_SHA`
127
141
*`TLS_RSA_WITH_3DES_EDE_CBC_SHA`**(This cipher will be deprecated on 10/01/2022 and will no longer be used for TLS handshakes)**
128
142
129
-
A client can suggest a list of higher cipher suites to use during `ClientHello`. However, some of them might not be supported by IoT Hub (for example, `ECDHE-ECDSA-AES256-GCM-SHA384`). In this case, IoT Hub will try to follow the preference of the client, but eventually negotiate down the cipher suite with `ServerHello`.
143
+
A client can suggest a list of higher cipher suites to use during `ClientHello`. However, some of them might not be supported by IoT Hub (for example, `ECDHE-ECDSA-AES256-GCM-SHA384`). In this case, IoT Hub tries to follow the preference of the client, but eventually negotiate down the cipher suite with `ServerHello`.
130
144
131
145
## TLS configuration for SDK and IoT Edge
132
146
133
-
Use the links below to configure TLS 1.2 and allowed ciphers in IoT Hub client SDKs.
147
+
Use the following links to configure TLS 1.2 and allowed ciphers in IoT Hub client SDKs.
134
148
135
149
| Language | Versions supporting TLS 1.2 | Documentation |
0 commit comments