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-edge/how-to-create-iot-edge-device.md
+11-11Lines changed: 11 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -138,21 +138,13 @@ To see more of the features of DPS, see the [Features section of the overview pa
138
138
139
139
## Choose an authentication method
140
140
141
-
### Symmetric keys attestation
142
-
143
-
Symmetric key attestation is a simple approach to authenticating a device. This attestation method represents a "Hello world" experience for developers who are new to device provisioning, or don't have strict security requirements.
144
-
145
-
When you create a new device identity in IoT Hub, the service creates two keys. You place one of the keys on the device, and it presents the key to IoT Hub when authenticating.
146
-
147
-
This authentication method is faster to get started but not as secure. Device provisioning using a TPM or X.509 certificates is more secure and should be used for solutions with more stringent security requirements.
148
-
149
141
### X.509 certificate attestation
150
142
151
-
Using X.509 certificates as an attestation mechanism is the recommended way to scale production and simplify device provisioning. Typically, X.509 certificates are arranged in a certificate chain of trust. Starting with a self-signed or trusted root certificate, each certificate in the chain signs the next lower certificate. This pattern creates a delegated chain of trust from the root certificate down through each intermediate certificate to the final "leaf" certificate installed on a device.
143
+
Using X.509 certificates as an attestation mechanism is the recommended way to scale production and simplify device provisioning. Typically, X.509 certificates are arranged in a certificate chain of trust. Starting with a self-signed or trusted root certificate, each certificate in the chain signs the next lower certificate. This pattern creates a delegated chain of trust from the root certificate down through each intermediate certificate to the final "leaf" certificate installed on a device.
152
144
153
-
You create two X.509 identity certificates and place them on the device. When you create a new device identity in IoT Hub, you provide thumbprints from both certificates. When the device authenticates to IoT Hub, it presents one certificate and IoT Hub verifies that the certificate matches its thumbprint.
145
+
You create two X.509 identity certificates and place them on the device. When you create a new device identity in IoT Hub, you provide thumbprints from both certificates. When the device authenticates to IoT Hub, it presents one certificate and IoT Hub verifies that the certificate matches its thumbprint. The X.509 keys on the device should be stored in a Hardware Security Module (HSM). E.g. PKCS#11 modules, ATECC, dTPM, etc.
154
146
155
-
This authentication method is more secure than symmetric keys and is recommended for production scenarios.
147
+
This authentication method is more secure than symmetric keys and supports group enrollments which provides a simplified management experience for a high number of devices. This authentication method is recommended for production scenarios.
156
148
157
149
### Trusted platform module (TPM) attestation
158
150
@@ -164,6 +156,14 @@ TPM 2.0 is required when you use TPM attestation with the device provisioning se
164
156
165
157
This authentication method is more secure than symmetric keys and is recommended for production scenarios.
166
158
159
+
### Symmetric keys attestation
160
+
161
+
Symmetric key attestation is a simple approach to authenticating a device. This attestation method represents a "Hello world" experience for developers who are new to device provisioning, or don't have strict security requirements.
162
+
163
+
When you create a new device identity in IoT Hub, the service creates two keys. You place one of the keys on the device, and it presents the key to IoT Hub when authenticating.
164
+
165
+
This authentication method is faster to get started but not as secure. Device provisioning using a TPM or X.509 certificates is more secure and should be used for solutions with more stringent security requirements.
166
+
167
167
## Next steps
168
168
169
169
You can use the table of contents to navigate to the appropriate end-to-end guide for creating an IoT Edge device for your IoT Edge solution's platform, provisioning, and authentication requirements.
Copy file name to clipboardExpand all lines: articles/iot-edge/how-to-provision-devices-at-scale-linux-tpm.md
+67-29Lines changed: 67 additions & 29 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -54,8 +54,6 @@ A physical Linux device to be the IoT Edge device.
54
54
55
55
If you are a device manufacturer then refer to guidance on [integrating a TPM into the manufacturing process](../iot-dps/concepts-device-oem-security-practices.md#integrating-a-tpm-into-the-manufacturing-process).
56
56
57
-
This article assumes ownership of the TPM has been taken already and the endorsement key (EK) and storage root key (SRK) have been persisted. Follow the instructions relevant to your system to take ownership.
58
-
59
57
# [Virtual machine](#tab/virtual-machine)
60
58
61
59
A Windows development machine with [Hyper-V enabled](/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v). This article uses Windows 10 running an Ubuntu Server VM.
@@ -143,6 +141,31 @@ After the installation is finished and you've signed back in to your VM, you're
143
141
144
142
---
145
143
144
+
<!-- iotedge-1.4 -->
145
+
:::moniker range=">=iotedge-1.4"
146
+
147
+
### Install the TPM2 Tools
148
+
1. Sign in to your device, and install the `tpm2-tools` package.
149
+
150
+
# [Ubuntu / Debian / Raspberry Pi OS](#tab/ubuntu+debian+rpios)
151
+
152
+
153
+
```bash
154
+
sudo apt-get install tpm2-tools
155
+
```
156
+
157
+
# [Red Hat Enterprise Linux](#tab/rhel)
158
+
159
+
160
+
```bash
161
+
sudo yum install tpm2-tools
162
+
```
163
+
164
+
---
165
+
166
+
:::moniker-end
167
+
<!-- end 1.4 -->
168
+
146
169
## Retrieve provisioning information for your TPM
147
170
148
171
<!-- 1.1 -->
@@ -174,42 +197,57 @@ In this section, you use the TPM2 software tools to retrieve the endorsement key
174
197
> [!NOTE]
175
198
> This article previously used the `tpm_device_provision` tool from the IoT C SDK to generate provisioning info. If you relied on that tool previously, then be aware the steps below generate a different registration ID for the same public endorsement key. If you need to recreate the registration ID as before then refer to how the C SDK's [tpm_device_provision tool](https://github.com/Azure/azure-iot-sdk-c/tree/main/provisioning_client/tools/tpm_device_provision) generates it. Be sure the registration ID for the individual enrollment in DPS matches the regisration ID the IoT Edge device is configured to use.
176
199
177
-
# [Ubuntu / Debian / Raspberry Pi OS](#tab/ubuntu+debian+rpios)
178
-
179
-
1. Sign in to your device, and install the `tpm2-tools` package.
200
+
1. Run the script below to read the endorsement key, creating one if it does not already exist.
180
201
181
202
```bash
182
-
sudo apt-get install tpm2-tools
183
-
```
184
-
185
-
1. Run the following commands to read the endorsement key in your TPM and generate a unique registration ID. This assumes the endorsement key is at the default location of 0x81010001.
printf"Gathering the registration information...\n\nRegistration Id:\n%s\n\nEndorsement Key:\n%s\n"$(sha256sum -b ek.pub | cut -d'' -f1 | sed -e 's/[^[:alnum:]]//g')$(base64 -w0 ek.pub)
190
-
```
191
-
192
-
1. The output window displays the device's **Endorsement key** and a unique **Registration ID**. Copy these values for use later when you create an individual enrollment for your device in the device provisioning service.
193
-
194
-
# [Red Hat Enterprise Linux](#tab/rhel)
195
245
196
-
1. Sign in to your device, and install the `tpm2-tools` package.
197
-
198
-
```bash
199
-
sudo yum install tpm2-tools
200
-
```
201
-
202
-
1. Run the following commands to read the endorsement key in your TPM and generate a unique registration ID. This assumes the endorsement key is at the default location of 0x81010001.
1. The output window displays the device's **Endorsement key** and a unique **Registration ID**. Copy these values for use later when you create an individual enrollment for your device in the device provisioning service.
Copy file name to clipboardExpand all lines: articles/iot-edge/how-to-provision-devices-at-scale-linux-x509.md
+3Lines changed: 3 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -24,6 +24,9 @@ The tasks are as follows:
24
24
25
25
Using X.509 certificates as an attestation mechanism is an excellent way to scale production and simplify device provisioning. Typically, X.509 certificates are arranged in a certificate chain of trust. Starting with a self-signed or trusted root certificate, each certificate in the chain signs the next lower certificate. This pattern creates a delegated chain of trust from the root certificate down through each intermediate certificate to the final "leaf" certificate installed on a device.
26
26
27
+
> [!TIP]
28
+
> If your device has a Hardware Security Module (HSM) such as a TPM 2.0, then we recommend storing the X.509 keys securely in the HSM. Learn more about how to implement the zero-touch provisioning at scale described in [this blueprint](https://azure.microsoft.com/en-us/blog/the-blueprint-to-securely-solve-the-elusive-zerotouch-provisioning-of-iot-devices-at-scale) with the [https://aka.ms/iotedge-tpm2cloud](https://aka.ms/iotedge-tpm2cloud) sample.
29
+
27
30
## Prerequisites
28
31
29
32
<!-- Cloud resources prerequisites H3 and content -->
0 commit comments