Skip to content

Commit 6066dc1

Browse files
committed
Complete draft
1 parent 870da07 commit 6066dc1

File tree

1 file changed

+41
-50
lines changed

1 file changed

+41
-50
lines changed

articles/iot-dps/concepts-device-oem-security-practices.md

Lines changed: 41 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Security practices for manufacturers - Azure IoT Hub Device Provisioning Service
2+
title: Security practices for manufacturers - Azure IoT Device Provisioning Service
33
description: Overviews common security practices for OEMs and device manufactures who prepare devices to enroll in Azure IoT Device Provisioning Service (DPS).
44
author: timlt
55
ms.author: timlt
@@ -12,7 +12,7 @@ ms.custom: iot-p0-scenario, iot-devices-deviceOEM
1212
# ms.reviewer: MSFT-alias-of-reviewer
1313
---
1414
# Security practices for Azure IoT device manufacturers
15-
As more manufacturers release IoT devices, the Azure IoT Hub Device Provisioning Service (DPS) team has provided guidance on security practices. This article overviews recommended security practices to consider when you manufacture devices for use with DPS.
15+
As more manufacturers release IoT devices, the Azure IoT Hub Device Provisioning Service (DPS) team has provided guidance on security practices. This article overview recommended security practices to consider when you manufacture devices for use with DPS.
1616

1717
> [!div class="checklist"]
1818
> * Integrating a Trusted Platform Module (TPM) into the manufacturing process
@@ -118,74 +118,65 @@ If you need help installing certificates in your IoT devices, please contact the
118118
## Selecting device authentication options
119119
The ultimate aim of any IoT device security measure is to create a secure IoT solution. But issues such as hardware limitations, cost, and level of security expertise, all impact which options you choose. Further, your approach to security impacts how your IoT devices connect to the cloud. While there are [several elements of IoT security](https://www.microsoft.com/research/publication/seven-properties-highly-secure-devices/) to consider, a key element that every customer encounters is what authentication type to use.
120120

121-
Three authentication types commonly used with IoT solutions are X.509 certificate, Trusted Platform Module (TPM), and symmetric key. While other authentication types exist, most customers building solutions on Azure IoT Hub and DPS use one of these three types. The rest of this article surveys the pros and cons of using each authentication type with IoT devices.
121+
Three widely used authentication types are X.509 certificates, Trusted Platform Modules (TPM), and symmetric keys. While other authentication types exist, most customers who build solutions on Azure IoT use one of these three types. The rest of this article surveys pros and cons of using each authentication type.
122122

123123
### X.509 certificate
124124
X.509 certificates are a type of digital identity you can use for authentication. The X.509 certificate standard is documented in [IETF RFC 5280](https://tools.ietf.org/html/rfc5280). In Azure IoT, there are two ways to authenticate certificates:
125-
- Thumbprint. A thumbprint algorithm is run on a certificate to generate a hexadecimal string. The generated string is a unique identifer or thumbprint for the certificate.
125+
- Thumbprint. A thumbprint algorithm is run on a certificate to generate a hexadecimal string. The generated string is a unique identifer for the certificate.
126126
- CA authentication based on a full chain. A certificate chain is a hierarchical list of all certificates needed to authenticate an end-entity (EE) certificate. To authenticate an EE certificate, it's necessary to authenticate each certificate in the chain including a trusted root CA.
127127

128128
Pros for X.509:
129-
- The most secure key type supported in Azure IoT
130-
- Allows a high level of control for purposes of certificate management
131-
- Many vendors are available to provide X.509 based authentication solutions
129+
- X.509 is the most secure key type supported in Azure IoT.
130+
- X.509 allows a high level of control for purposes of certificate management.
131+
- Many vendors are available to provide X.509 based authentication solutions.
132132

133133
Cons for X.509:
134-
- Many customers must rely on external vendors for their certificates
135-
- Certificate management can be costly and adds to total solution cost
136-
- Certificate life cycle management can be difficult due to the logistical complexity
134+
- Many customers must rely on external vendors for their certificates.
135+
- Certificate management can be costly and adds to total solution cost.
136+
- Certificate life cycle management can be difficult due to the logistical complexity.
137137

138138
### Trusted Platform Module (TPM)
139-
TPM can refer to a standard for securely storing keys used to authenticate the platform, or it can refer to the I/O interface used to interact with the modules implementing the standard. TPMs can exist as discrete hardware, integrated hardware, firmware-based modules, or software-based modules. Some of the key differences between TPMs and symmetric keys (discussed below) are that:
139+
TPM, also known as [ISO/IEC 11889](https://www.iso.org/standard/66510.html), is a standard for securely generating and storing cryptographic keys. TPM also refers to a virtual or physical I/O device that interacts with modules that implement the standard. A TPM device can exist as discrete hardware, integrated hardware, a firmware-based module, or a software-based module.
140140

141-
TPM chips can also store X.509 certificates.
142-
TPM attestation in the Device Provisioning Service uses the TPM endorsement key (EK) which is a form of asymmetric authentication, whereas symmetric keys are symmetric authentication.
141+
There are two key differences between TPMs and symmetric keys:
142+
- TPM chips can also store X.509 certificates.
143+
- TPM attestation in DPS uses the TPM endorsement key (EK), a form of asymmetric authentication. With asymmetric authentication, a public key is used for encryption, and a separate private key is used for decryption. In contrast, symmetric keys use symmetric authentication, where the private key is used for both encryption and decryption.
143144

144-
Pros
145+
Pros for TPM:
146+
- TPMs are included as standard hardware on many Windows devices, with built-in support for the operating system.
147+
- TPM attestation is more secure than shared access signature (SAS) token-based symmetric key attestation.
148+
- You can easily expire and renew, or roll, device credentials. DPS automatically rolls the IoT Hub credentials whenever a TPM device is due for re-provisioning.
145149

146-
TPMs come standard on many Windows devices, with built-in support in Windows if you're using Windows as your OS.
147-
TPM attestation is more secure than SAS token-based symmetric key attestation.
148-
You can also blow away credentials pretty easily, and the Device Provisioning Service auto-rolls the IoT Hub credentials whenever a TPM device comes to re-provision.
149-
150-
Cons
151-
152-
TPMs are difficult to use in general if you're not familiar with them.
153-
Difficult to develop for without either a physical TPM or a quality emulator.
154-
May require board re-design to include in hardware.
155-
You can't roll the EK without essentially destroying the identity of the chip and giving it a new one. It's like if you had a clone, your clone would have the same physical characteristics as you but they are ultimately a different person. Although the physical chip stays the same, it has a new identity in your IoT solution.
150+
Cons for TPM:
151+
- TPMs are complex and can be difficult to use.
152+
- Application development with TPMs is difficult unless you have a physical TPM or a quality emulator.
153+
- You may have to redesign the board of your device to include a TPM in the hardware.
154+
- If you roll the EK on a TPM, it destroys the identity of the TPM and creates a new one. Although the physical chip stays the same, it has a new identity in your IoT solution.
156155

157156
### Symmetric key
158-
A symmetric key is known to both the device and the service, and the key is used to both encrypt and decrypt messages sent between parties. Azure IoT supports SAS token-based symmetric key connections. The best way to protect symmetric keys is via a hardware security module.
159-
Pros
160-
161-
Easiest to get started.
162-
Nothing extra required to generate.
163-
164-
Cons
157+
With symmetric keys, the same key is used to encrypt and decrypt messages. As a result, the same key is known to both the device and the service that authenticates it. Azure IoT supports SAS token-based symmetric key connections. However, symmetric authentication is less secure than the other methods surveyed in this article. If you use symmetric keys, it's recommended that you protect the keys by using a hardware security module (HSM).
165158

166-
Less secure than X.509 certificates or TPM because the same key is shared between device and cloud, which means the key needs protecting in two places. For certificates, TPM, and PKI in general the challenge is all about proving possession of the key without ever revealing the private portion of the key.
167-
Easy to have bad security practices. Folks using symmetric keys tend to hardcode the keys in the clear (unencrypted) on devices, leaving the keys vulnerable. It's possible to mitigate some risk by securely storing the symmetric key on the device, but in general, folks using symmetric keys aren't necessarily following best practices around key storage. It's not impossible, just uncommon.
159+
Pros for symmetric key:
160+
- Using symmetric keys is the simplest, lowest cost way to get started with authentication.
161+
- Using symmetric keys streamlines your process because there's nothing extra to generate.
168162

169-
Shared symmetric key
163+
Cons for symmetric key:
164+
- Symmetric keys are less secure than X.509 certificates or TPM. The same key is shared between device and cloud, which means the key must be protected in two places. In contrast, the challenge with TPM and X.509 certificates is proving possession of the public key without revealing the private key.
165+
- Symmetric keys make it easy to follow poor security practices. A common tendency with symmetric keys is to hard code the un-encrypted keys in the clear on devices. While this practice is convenient, it leaves the keys vulnerable. You can mitigate some risk by securely storing the symmetric key on the device. However, if your priority is ultimately security rather than convenience, use X.509 certificates or TPM for authentication.
170166

171-
Using the same symmetric key in all your devices. Don't do this ever!
172-
Pros
167+
### Shared symmetric key
168+
There's a variation of symmetric key authentication known as shared symmetric key. This involves using the same symmetric key in all devices. It is strongly recommended that you avoid using shared symmetric keys on your devices.
173169

174-
Easy to produce at scale.
170+
Pros for shared symmetric key:
171+
- Simple to implement and inexpensive to produce at scale.
175172

176-
Cons
173+
Cons for shared symmetric key:
174+
- Highly vulnerable to attack. The benefit of easy implementation is far outweighed by the risk.
175+
- Anyone can impersonate your devices if they obtain the shared key.
176+
- You will likely lose control of devices if you rely on shared symmetric key.
177177

178-
Really, don't use the same symmetric key in all devices. The risks far outweigh the benefit of easy implementation. It would be security malpractice to suggest that shared symmetric key is a serious solution for IoT authentication.
179-
Very vulnerable to attack.
180-
Anyone can impersonate your devices if they get a hold of your key.
181-
You will likely lose control of devices if you rely on shared symmetric key. Just don't do it, you can read more on botnets if you're not convinced that shared symmetric key is a bad idea.
182-
183-
Making the right choice for your devices
184-
185-
You have to evaluate your specific risks and benefits to make your IoT authentication decision. This blog post is too short to cover everything, but Azure IoT offers the Security Program for Azure IoT if you need help making this decision. You can also read our whitepaper about evaluating your IoT security to learn more about your options.
178+
### Making the right choice for your devices
179+
To choose an authentication method, make sure you consider the benefits and costs of each approach for your unique manufacturing process. For device authentication, usually there's an inverse relationship between between how secure a given approach is, and how convenient it is. This article surveyed the main decisions and recommended best practices. In addition, Azure IoT provides additional resources to help with selecting secure hardware, and creating secure IoT deployments.
186180

187181
> [!NOTE]
188-
> Azure IoT provides additional resources to help create secure deployments. The team published a set of [security recommendations](../iot-fundamentals/security-recommendations.md) to guide the deployment process. The [Azure Security Center](https://azure.microsoft.com/services/security-center/) offers a service to help create secure IoT deployments. For help evaluating your hardware environment, see the whitepaper [Evaluating your IoT Security](https://download.microsoft.com/download/D/3/9/D3948E3C-D5DC-474E-B22F-81BA8ED7A446/Evaluating_Your_IOT_Security_whitepaper_EN_US.pdf). For help with selecting secure hardware, see [The Right Secure Hardware for your IoT Deployment](https://download.microsoft.com/download/C/0/5/C05276D6-E602-4BB1-98A4-C29C88E57566/The_right_secure_hardware_for_your_IoT_deployment_EN_US.pdf).
189-
190-
## Next steps
191-
To learn how several manufacturers have implemented security practices into their process for Azure IoT devices, see the case studies at [IoT Hub Device reprovisioning concepts](concepts-device-reprovision.md).
182+
> Azure IoT has published a set of [security recommendations](../iot-fundamentals/security-recommendations.md) to guide the deployment process. The [Azure Security Center](https://azure.microsoft.com/services/security-center/) offers a service to help create secure IoT deployments. For help evaluating your hardware environment, see the whitepaper [Evaluating your IoT Security](https://download.microsoft.com/download/D/3/9/D3948E3C-D5DC-474E-B22F-81BA8ED7A446/Evaluating_Your_IOT_Security_whitepaper_EN_US.pdf). For help with selecting secure hardware, see [The Right Secure Hardware for your IoT Deployment](https://download.microsoft.com/download/C/0/5/C05276D6-E602-4BB1-98A4-C29C88E57566/The_right_secure_hardware_for_your_IoT_deployment_EN_US.pdf).

0 commit comments

Comments
 (0)