Greetings IoT and M2M communities!It’s exciting to see our Kickstarter cellular dev kit project is already a success---thanks for your support! Pat Wilbur here, CTO of Konekt, Inc., and today I’m beginning what will probably be a series of blog posts on two favorite topics of mine: usable security and the ubiquitous Internet of Things. For brevity, let’s lump privacy under the heading of “security” in this discussion, and we’ll also simply assume that the security goal we’re all targeting is both securing device access/control as well as keeping data from being leaked to eavesdroppers or otherwise unintended parties. (We’ll also assume that securing device access/control is a special-case of securing information [e.g. preventing credentials from being leaked], and we won’t be discussing preventing things like replay attacks in this article.)“Securing the Internet of Things” has been quite the buzz phrase, and, unfortunately, it probably will be for a while. That’s because computer and Internet security is hard enough, and the Internet of Things is complicating things even more---there are more devices than ever, many devices have unusual constraints (battery, size, CPU power, etc.), and device types and capabilities vary much more widely than cellular phones and computers. When we add usability and convenience into the mix, it’s easy for competing priorities to make effective IoT security even more difficult.
Common shortcomings in securing The Internet of Things
There are a few general weak points that often emerge when attempting to secure information, which include:
- Lack of encryption, making eavesdropping easy
- Weak encryption, susceptible to present or future breaking
- Key management weaknesses due to either:
- stored keys later becoming compromised (unintentionally or intentionally leaked)
- an insecure initial key loading mechanism
- an insecure key replacement mechanism
- Other-entity weaknesses, where once-trusted service providers or other parties (unintentionally or intentionally) leak information or otherwise use information undesirably
How do these points apply to the IoT and M2M space, and what is Konekt doing with each?
1) Lack of encryption, how Konekt is different
If a device doesn’t intentionally implement endpoint-to-endpoint encryption, data shouldn’t be assumed to be secure. It might seem like this is an obvious statement; however, especially in the cellular space, this is not necessarily standard thinking. It is a common myth that there exists strong security between a cellular device and a tower, and again over a cellular back-end network; however, there exist known (significant) weaknesses in the security of the modem-to-tower, and there can easily be little or no encryption while data travels over back-end. Standard cellular security is not sufficient even for today’s typical Internet standards. To further confuse the matter, other IoT and M2M providers that offer cloud services promise security between their cloud and the rest of the Internet, but that does not guarantee security between the device and their cloud. Our Konekt Dash Pro cellular dev kit and corresponding SDK (for use in your own hardware) provide security tools for endpoint-to-endpoint encryption either:
(a) from the device to our Konekt Cloud (and then data is encrypted again between our Cloud and the Internet), or...(b) from the device to its final destination (so even we can’t see your data). Our SDK offers AES, and the Konekt Dash offers both AES and SSL. Furthermore, not only can the Konekt Dash Pro be programmed with your own code, but the Konekt Dash Pro can also be embedded in a project and used as a passthrough cellular modem or serial-to-Internet gateway using its stock firmware, providing instant black-box security.
2) Weak encryption, how Konekt addresses this
This one we’ll defer to the professionals. We offer common standards like SSL and AES (including AES 256) for encrypting data. These are the same standards that protect online web browsing and top-secret classified government information.
3) Key management, how Konekt is different
Assuming you’re using a device that implements encryption (see Points 1 and 2), secure key management is next on the to-do list. Typically, for applications using symmetric-key encryption, device-unique keys are either loaded during manufacture (difficult and requires keys to be distributed to manufacturing/programming facility), or loaded after manufacture and packaging (such as via a direct connection of some sort, and requires keys to be distributed to the entity performing key loading). Key integrity then must be maintained by all entities with key access. The Konekt Dash Pro cellular dev kit and associated hardware-portable SDK offer integration with our secure initial key loading and key updating platform, which provides a turnkey key management API and client tools to make this much easier for device manufacturers and system integrators. We have made some very interesting revolutionary innovations in this space, the details of which will be the topic of a future article! For now, suffice it to say that our platform can automate this difficult process, cutting out labor and simplifying key integrity maintenance.
4) Other-entity weaknesses, how Konekt is different
Other IoT and M2M providers that offer cloud services often can see your data (and maybe others on connecting networks can as well---see Point 1). We offer developers and system integrators tools to help secure their device data, whether that’s endpoint-to-endpoint while it travels between the device and a destination of their choosing (skipping our cloud), or endpoint-to-endpoint from their device to our cloud; furthermore, we offer the option for developers and system integrators to still make use of many of our cloud services, including our data logging and backup services, without granting us access to decrypt and see their device data. Our goal is to give developers and system integrators the maximum flexibility in how they secure their data to us (or even secure it from us) so that they can meet their business needs.The Konekt Dash Pro cellular dev kit and corresponding SDK (for use in your own hardware) provide security tools for endpoint-to-endpoint encryption either: (a) from the device to our Konekt Cloud (and then data is encrypted again between our Cloud and the Internet), or (b) from the device to its final destination (so even we can’t see your data). The following graphic illustrates these options.
The Konekt Dash Pro can be programmed with your own code or used as a passthrough secure connectivity black-box and embedded in your project without any reprogramming.
We’re concerned about “Securing the Internet of Things” just like you are. We aim to provide some great solutions and innovations that are really needed in this space. Have some thoughts or questions about security in IoT? We’d love to chat, so, reach out!