Over the past few months, members from our Security, Privacy and Identity working group have been hard at work researching best practices for credential management for IoT devices. A short overview of the work follows, but we wanted to offer our thanks to our member editors and contributors for their work on this paper: Hannes Tschofenig, ARM Limited; Ned Smith, Intel; Mark Baugher, Consultant; Per Ståhl, Ericsson; Alan Grau, Icon Labs; and Jerker Delsing, Lulea University of Technology.
Credential Management for IoT Devices
Connecting devices to the Internet provides a range of advantages, including remote control, monitoring, fault diagnosis and the ability to collect data for analysis. It may seem that connecting devices equipped with modern microcontrollers is a trivial task with today’s Internet protocols. Unfortunately, this is far from true since the pure data transport is only one part of the story. Interacting with such IoT devices securely requires a communication protocol between the device and any other communication partners that provides integrity and confidentiality protection, otherwise messages can be modified in transit or eavesdropped. To prevent man-in-the-middle attacks, authentication is required between the communication endpoints.
This whitepaper explores the Device-to-Cloud Communication Pattern, since it illustrates the use of IoT devices well and is frequently used in today’s deployments. Three security services (authentication, confidentiality and integrity) counter common security vulnerabilities found in today’s IoT devices, particularly when provided by state-of-the-art security protocols. However, one big challenge remains: credentials have to be available on these devices for any communication security protocol to provide their service. Consequently, this leads to an additional requirement, to securely provision credentials to the IoT device. A credential typically consists of keying material, algorithm specific parameters, and a list of entities the credentials can be used with. Each credential also has an identifier associated with it and a lifetime.
This whitepaper presents solutions that use a number of credentials, in a pseudo hierarchical manner, that offer trade-offs between computationally intensive functions (such trust establishment and authentication across an ecosystem), and less resource intensive functions (such as localized authentications and short term data protection).
The authors believe a key management architecture that incorporates such trade-offs is necessary to effectively optimize for constrained devices. While there may be significant performance costs paid up front, at device onboarding / commissioning, the amount of time spent onboarding / commissioning is relatively small compared to the time spent on short term symmetric key operations performed over the lifetime of the device.
All the presented solutions offer a distinction between manufacturer credentials, for establishing attestable trust in the device (in terms of hardware, software and manufacturer) and operational credentials, for device-to-device authentication and negotiation of session keys. Symmetric session keys are used for protection of application data using protocols like DTLS to offer confidentiality, integrity and data-origin authentication.