In last week’s blog, we talked about several definitions of the Internet of Things and its current scope of implementation. We also touched upon how to protect our privacy and personal safety. This week, we cover the recommended cryptographic algorithms for IoT.
Want My Suite B Crypto!
With the connection of things to the Internet comes another dilemma. How do we authenticate these things and secure their traffic over an insecure medium like the Internet? Another question is how do we get identity credentials and keys to thousands of things and devices in disparate locations using a lightweight cryptographic technology? The established method of using Simple Certificate Enrollment Protocol (SCEP) and pushing large 2048-bit RSA-based keys to devices over the air is fine for smartphones and tablets that have powerful processors and ample storage capacities. The story is quite different for low-power and storage-constrained things. This is exacerbated by the low-bandwidth, high-latency and lossy networks that connect these things to the Internet.
The solution is to use Elliptic Curve Cryptography (ECC) based asymmetric keys which is defined in RFC 6090. ECC provides the same or stronger security than their RSA counterparts by using much shorter keys, cipher texts, and signatures. In the table below, a 224-bit ECC key is equivalent to a 2048-bit RSA key in strength used for the protection of data. This generally means faster key generation, less computing power, modestly faster encryption and decryption, and better entropy sources.
The complete Suite B Cryptographic suite approved by the National Security Agency (NSA) and specified by U.S. National Institute of Standards and Technology (NIST) is expected to extend the lifespan of the cryptography used in our computer security systems to beyond the next 30 years. The Suite B suite consists of:
- AES (American Encryption Standard) 128-bits symmetric keys for encrypting Secret classified data and 256-bits for Top Secret. The GCM (Galois/Counter Mode) is the preferred AES operational mode.
- ECDH (Elliptic Curve Diffie-Hellman) key exchange using NIST Curve P-256 bits for Secret classified data and P-384 bits for Top Secret.
- ECDSA (Elliptic Curve Digital Signature Algorithm) for digital signatures using NIST Curve P-256 bits for Secret classified data and P-384 bits for Top Secret.
- SHA (Secure Hash Algorithm) for hashing functions using SHA-256 bits for Secret classified data and SHA-384 bits for Top Secret.
|Symmetric Key Size (bits)||RSA Key Size (bits)||Elliptic Curve Key Size (bits)|
The ECC cipher suites were first introduced in Transport Layer Security (TLS) version 1.0 and extended in versions 1.1 and 1.2. These TLS versions are supported by today’s modern operating systems like iOS, Android OS, Windows, Mac OS X and most Linux distributions.
Now that we see the advantages of ECC keys, how do we deliver them over the air to these things and devices? SCEP cannot be used any longer because it supports RSA-based keys only. The answer is Enrollment over Secure Transport (EST), which is defined in RFC 7030. EST mandates using HTTPS that can be protected by Suite B-compliant cipher suites in the TLS negotiation between the client and server.
In Part 3 of this blog series, I’ll discuss the migration from the IPv4 address space to IPv6. This is the third dependency for securing the Internet of Things and providing a baseline for successful adoption and implementation..