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-hub/iot-hub-tls-support.md
+65-38Lines changed: 65 additions & 38 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,21 +15,19 @@
15
15
IoT Hub uses Transport Layer Security (TLS) to secure connections from IoT devices and services.
16
16
17
17
> [!NOTE]
18
-
> Azure IoT Hub will end support for TLS 1.0 and 1.1 in alignment with the Azure wide service announcement for [TLS 1.0 and 1.1 retirement](https://azure.microsoft.com/updates?id=update-retirement-tls1-0-tls1-1-versions-azure-services) on **August 31, 2025**.
18
+
> Azure IoT Hub will end support for TLS 1.0 and 1.1 in alignment with the Azure wide service announcement for [TLS 1.0 and 1.1 retirement](https://azure.microsoft.com/updates?id=update-retirement-tls1-0-tls1-1-versions-azure-services) on **August 31, 2025**. In addition, IoT Hub will no longer support weak cipher suites as of August 31, 2025. Only recommended strong cipher suites will be supported for both existing and new IoT Hubs.
19
19
>
20
20
> It's 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. It's highly recommended to use the [minimum TLS enforcement feature](#enforce-iot-hub-to-use-tls-12-and-strong-cipher-suites) as the mechanism for testing and compliance.
21
21
22
22
23
23
> [!IMPORTANT]
24
-
> It’s important to distinguish between **TLS 1.2 support** and **TLS 1.2 enforcement**. TLS 1.2 is supported on all IoT Hubs, meaning that IoT Hubs can handle connections using the TLS 1.2 protocol. On the other hand, TLS 1.2 enforcement ensures that IoT Hub **only** accepts connections using TLS 1.2 or higher. When TLS 1.2 enforcement is enabled, the service also enforces the use of [strong cipher suites](#cipher-suites) as described above. Future updates will allow for the enforcement of TLS 1.2 while permitting non-recommended cipher suites.
24
+
> It’s important to distinguish between **TLS 1.2 support** and **TLS 1.2 enforcement**. TLS 1.2 is supported on all IoT Hubs, meaning that IoT Hubs can handle connections using the TLS 1.2 protocol. On the other hand, TLS 1.2 enforcement ensures that IoT Hub **only** accepts connections using TLS 1.2 or higher. When TLS 1.2 enforcement is enabled, the service also enforces the use of [strong cipher suites](#cipher-suites).
25
25
>
26
26
> Currently, TLS 1.2 enforcement is supported only in select regions:
27
27
>
28
-
> - East US
29
-
> - South Central US
30
-
> - West US 2
28
+
> - All public cloud regions
31
29
> - US Gov Arizona
32
-
> - US Gov Virginia (Note: TLS 1.0/1.1 support isn't available in this region. TLS 1.2 enforcement must be enabled, or IoT Hub creation will fail).
30
+
> - US Gov Virginia (TLS 1.0/1.1 support isn't available in this region. TLS 1.2 enforcement must be enabled or IoT Hub creation fails).
33
31
>
34
32
> To find out the version of TLS your IoT Hub devices are running, refer to [TLS 1.0 and 1.1 end of support guide](#checking-tls-versions-for-iot-hub-devices).
35
33
@@ -56,9 +54,11 @@ For links to download these certificates, see [Azure Certificate Authority detai
56
54
57
55
Root CA migrations are rare. You should always prepare your IoT solution for the unlikely event that a root CA is compromised and an emergency root CA migration is necessary.
58
56
59
-
## Cipher Suites
57
+
## Cipher suites
60
58
61
-
To comply with Azure security policy for a secure connection, IoT Hub recommends the following RSA and ECDSA cipher suites that require minimum TLS 1.2 enforcement:
59
+
Starting **August 31, 2025**, IoT Hub enforces the use of recommended strong cipher suites for all existing and new IoT Hubs. Non-recommended (weak) cipher suites aren't supported past this date.
60
+
61
+
To comply with Azure security policy for a secure connection, IoT Hub only supports the following RSA and ECDSA cipher suites that require minimum TLS 1.2 enforcement:
62
62
63
63
* TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
64
64
* TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
@@ -69,7 +69,7 @@ To comply with Azure security policy for a secure connection, IoT Hub recommends
69
69
* TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
70
70
* TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
71
71
72
-
The following cipher suitesare currently allowed in IoT Hub. However, these cipher suites are no longer recommended by the Azure security guidelines. These cipher suites work with TLS versions 1.0, 1.1, and 1.2.
72
+
The following non-recommended cipher suitesare allowed until August 31, 2025:
73
73
74
74
* TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
75
75
* TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
@@ -103,29 +103,26 @@ To update IoT Hub to support TLS 1.2 and/or enforce strong cipher suites in Azur
103
103
> [!NOTE]
104
104
> You can update your IoT Hub to TLS 1.2 in ALL public regions. However, if you update an IoT Hub in one of the selected regions (East US, South Central US, West US 2, US Gov Arizona, and US Gov Virginia), it will enforce stronger cipher suites.
105
105
106
-
107
106
## Enforce IoT Hub to use TLS 1.2 and strong cipher suites
108
107
109
108
To ensure your IoT devices are TLS 1.2 and [strong cipher suites](#cipher-suites) compliance, you can enforce compliance using minimum TLS enforcement feature in Azure IoT Hub.
110
109
111
-
Currently this feature is only available in the following regions and during IoT Hub creation (other Azure regions will be supported in 2025):
110
+
Currently this feature is only available in the following regions and during IoT Hub creation:
112
111
113
-
* East US
114
-
* South Central US
115
-
* West US 2
112
+
* Public cloud regions:
116
113
* US Gov Arizona
117
114
* US Gov Virginia (TLS 1.0/1.1 support isn't available in this region - TLS 1.2 enforcement must be enabled or IoT hub creation fails)
118
115
119
116
To enable TLS 1.2 and strong cipher suites enforcement in Azure portal:
120
117
121
-
1.Starting with the IoT Hub create wizard in Azure portal
122
-
2. Choose a **Region** from one in the list above.
123
-
3. Under **Management -> Advanced -> Transport Layer Security (TLS) -> Minimum TLS version**, select **1.2**. This setting only appears for IoT hub created in supported region.
118
+
1.Go to the IoT Hub create wizard in Azure portal.
119
+
1. Choose a **Region** from the list of supported regions.
120
+
1. Under **Management -> Advanced -> Transport Layer Security (TLS) -> Minimum TLS version**, select **1.2**. This setting only appears for IoT hub created in supported region.
124
121
125
122
:::image type="content" source="media/iot-hub-tls-12-enforcement.png" alt-text="Screenshot showing how to turn on TLS 1.2 enforcement during IoT hub creation.":::
126
123
127
-
4. Select **Create**
128
-
5. Connect your IoT devices to this IoT Hub
124
+
1. Select **Create**
125
+
1. Connect your IoT devices to this IoT Hub.
129
126
130
127
To use ARM template for creation, provision a new IoT Hub in any of the supported regions and set the `minTlsVersion` property to `1.2` in the resource specification:
131
128
@@ -152,30 +149,60 @@ To use ARM template for creation, provision a new IoT Hub in any of the supporte
152
149
}
153
150
```
154
151
155
-
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).
152
+
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).
156
153
157
154
> [!NOTE]
158
-
> Upon failovers, the `minTlsVersion` property of your IoT Hub remains effective in the geo-paired region post-failover.
155
+
> Upon failover, the `minTlsVersion` property of your IoT Hub remains effective in the geo-paired region post-failover.
159
156
160
157
## Checking TLS versions for IoT Hub devices
161
-
Azure IoT Hub can provide diagnostic logs for several categories that can be analyzed using Azure Monitor Logs. In the connections log you can find the TLS Version for your IoT Hub devices.
162
158
163
-
To view these logs, follow these steps:
159
+
Azure IoT Hub provides the capability to check the TLS version and other device connection metrics to help monitor the security of IoT devices. You can either use IoT Hub metrics or diagnostic logs to track TLS version usage and other related properties like [Cipher Suites](#cipher-suites).
160
+
161
+
### Checking TLS versions using IoT Hub metrics
162
+
163
+
If you want to validate that device traffic to IoT Hub is utilizing TLSv1.2, you can check IoT Hub’s metrics. This allows you to filter by TLS version or Cipher Suite and check the number of successful connections.
164
+
164
165
1. In the [Azure portal](https://portal.azure.com), go to your IoT hub.
165
-
2. In the resource menu under **Monitoring**, select **Diagnostic settings**. Ensure diagnostic settings have "Connections" checkmarked.
166
-
3. In the resource menu under **Monitoring**, select **Logs**.
167
-
4. Enter the following query:
168
-
```azurecli
169
-
AzureDiagnostics
170
-
| where ResourceProvider == "MICROSOFT.DEVICES" and ResourceType == "IOTHUBS"
:::image type="content" source="./media/iot-hub-tls-support/query-result.png" alt-text="Diagram showing the query for device TLS version.":::
178
-
6. Note: TLS version query is not available for devices using HTTPS connections.
166
+
1. In the left-side menu under **Monitoring**, select **Metrics**.
167
+
1. Add the metric **Successful Connects**.
168
+
169
+
:::image type="content" source="./media/iot-hub-tls-support/tls-versions-support-metrics.png" alt-text="Screenshot showing how to add the Successful Connects metric.":::
170
+
171
+
1. Filter by TLS Version or Cipher Suite by selecting the **Add filter** button and choosing the appropriate property, TLS Version or Cipher Suite, operator, for example "=", and value, for example, TLSv1.2.
172
+
173
+
:::image type="content" source="./media/iot-hub-tls-support/tls-versions-support-metrics-filter.png" alt-text="Screenshot showing how to filter by TLS Version or Cipher Suite.":::
174
+
175
+
1. After applying the filter, you see the sum of devices with successful IoT Hub connections based on the filtered property and value(s).
176
+
177
+
> [!NOTE]
178
+
> TLS version query isn't available for devices using HTTPS connections.
179
+
180
+
### Checking TLS versions using IoT Hub diagnostic logs
181
+
182
+
Azure IoT Hub can provide diagnostic logs for several categories that can be analyzed using Azure Monitor Logs. In the connections log you can find the TLS version for your IoT Hub devices.
183
+
184
+
To view these logs, follow these steps:
185
+
186
+
1. In the [Azure portal](https://portal.azure.com), go to your IoT hub.
187
+
1. In the left-side menu under **Monitoring**, select **Diagnostic settings**. Ensure diagnostic settings have "Connections" checked.
188
+
1. In the left-side menu under **Monitoring**, select **Logs**.
189
+
1. Enter the following query:
190
+
191
+
```kusto
192
+
AzureDiagnostics
193
+
| where ResourceProvider == "MICROSOFT.DEVICES" and ResourceType == "IOTHUBS"
1. An example of the query results looks like this:
201
+
202
+
:::image type="content" source="./media/iot-hub-tls-support/query-result.png" alt-text="Diagram showing the query for device TLS version.":::
203
+
204
+
> [!NOTE]
205
+
> TLS version query isn't available for devices using HTTPS connections.
179
206
180
207
181
208
## TLS configuration for SDK and IoT Edge
@@ -188,7 +215,7 @@ Use the following links to configure TLS 1.2 and allowed ciphers in IoT Hub clie
188
215
| Python | Version 2.0.0 or newer | [Link](https://aka.ms/Tls_Python_SDK_IoT) |
189
216
| C# | Version 1.21.4 or newer | [Link](https://aka.ms/Tls_CSharp_SDK_IoT) |
190
217
| Java | Version 1.19.0 or newer | [Link](https://aka.ms/Tls_Java_SDK_IoT) |
191
-
| Node.js | Version 1.12.2 or newer |[Link](https://aka.ms/Tls_Node_SDK_IoT)|
218
+
| Node.js | Version 1.12.2 or newer | [Link](https://aka.ms/Tls_Node_SDK_IoT) |
192
219
193
220
IoT Edge devices can be configured to use TLS 1.2 when communicating with IoT Hub. For this purpose, use the [IoT Edge documentation page](https://github.com/Azure/iotedge/blob/master/edge-modules/edgehub-proxy/README.md).
0 commit comments