RFC 8576

Internet of Things (IoT) Security: State of the Art and Challenges

๐Ÿ“… published April 2019, from ietf

RFC 8576 ๐ŸŽ€ Internet of Things (IoT) Security: State of the Art and Challenges

okay bestie, let's do the vibe check first ๐Ÿ’– This is RFC 8576, titled Internet of Things (IoT) Security: State of the Art and Challenges โœจ It's an Informational doc from the Internet Research Task Force (IRTF) ๐Ÿ“œ It was written by O. Garcia-Morchon (Philips), S. Kumar (Signify), and M. Sethi (Ericsson), and it's dated April 2019 ๐ŸŒธ Its ISSN is 2070-1721. The title block has no Obsoletes or Updates entries, so it doesn't list any RFCs it replaces or changes ๐Ÿฆ‹

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   4
   2.  The Thing Lifecycle . . . . . . . . . . . . . . . . . . . . .   5
   3.  Security Threats and Managing Risk  . . . . . . . . . . . . .   8
   4.  State of the Art  . . . . . . . . . . . . . . . . . . . . . .  13
     4.1.  IP-Based IoT Protocols and Standards  . . . . . . . . . .  13
     4.2.  Existing IP-Based Security Protocols and Solutions  . . .  16
     4.3.  IoT Security Guidelines . . . . . . . . . . . . . . . . .  18
   5.  Challenges for a Secure IoT . . . . . . . . . . . . . . . . .  21
     5.1.  Constraints and Heterogeneous Communication . . . . . . .  21
       5.1.1.  Resource Constraints  . . . . . . . . . . . . . . . .  21
       5.1.2.  Denial-of-Service Resistance  . . . . . . . . . . . .  22
       5.1.3.  End-to-End Security, Protocol Translation, and the
               Role of Middleboxes . . . . . . . . . . . . . . . . .  23
       5.1.4.  New Network Architectures and Paradigm  . . . . . . .  25
     5.2.  Bootstrapping of a Security Domain  . . . . . . . . . . .  25
     5.3.  Operational Challenges  . . . . . . . . . . . . . . . . .  25
       5.3.1.  Group Membership and Security . . . . . . . . . . . .  26
       5.3.2.  Mobility and IP Network Dynamics  . . . . . . . . . .  27
     5.4.  Secure Software Update and Cryptographic Agility  . . . .  27
     5.5.  End-of-Life . . . . . . . . . . . . . . . . . . . . . . .  30
     5.6.  Verifying Device Behavior . . . . . . . . . . . . . . . .  30
     5.7.  Testing: Bug Hunting and Vulnerabilities  . . . . . . . .  31
     5.8.  Quantum-Resistance  . . . . . . . . . . . . . . . . . . .  32
     5.9.  Privacy Protection  . . . . . . . . . . . . . . . . . . .  33
     5.10. Reverse-Engineering Considerations  . . . . . . . . . . .  34
     5.11. Trustworthy IoT Operation . . . . . . . . . . . . . . . .  35
   6.  Conclusions and Next Steps  . . . . . . . . . . . . . . . . .  36
   7.  Security Considerations . . . . . . . . . . . . . . . . . . .  36
   8.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  36
   9.  Informative References  . . . . . . . . . . . . . . . . . . .  37
   Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . .  50
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  50

Abstract ๐Ÿ’…

okay so the whole IoT idea is basically using normal Internet protocols so humans can talk to things and things can talk to other things ๐Ÿงš Security for this stuff is a big deal and people have been working on it for ages. Think of the Constrained Application Protocol (CoAP) secured with Datagram Transport Layer Security (DTLS) ๐Ÿ’œ But ngl, there are still challenges. Some use cases don't have a good solution yet, and a lot of IoT devices and systems were built and shipped with super limited security ๐Ÿ˜ญ This document goes through the stages in a thing's lifecycle first. Then it lists the security threats to a thing and the challenges you might hit while trying to protect against them. Last, it talks about next steps for making secure IoT systems actually happen ๐Ÿ”ฅ It's meant for implementers and authors of IoT specs as a reference for security considerations, so they can write up their own security challenges, threat models, and mitigations ๐Ÿฆ‹

This document is a product of the IRTF Thing-to-Thing Research Group (T2TRG) ๐ŸŒˆ

Status of This Memo ๐Ÿ“œ

Quick heads up: this is not a standards-track spec. It's published for informational purposes only ๐ŸŒธ

This document comes from the Internet Research Task Force (IRTF), which shares the results of Internet-related research and development. Those results might not be ready for deployment. Documents the IRSG approves for publication are not candidates for any level of Internet Standard. See Section 2 of RFC 7841 for the details ๐Ÿ’–

For the current status, any errata, and how to send feedback, check https://www.rfc-editor.org/info/rfc8576 โœจ

Copyright (c) 2019 IETF Trust and the persons identified as the document authors. All rights reserved ๐Ÿ’œ

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) as they stand on the date of publication. Please read those carefully, because they spell out your rights and restrictions for this document ๐ŸŽ€

Table of Contents ๐Ÿ—‚๏ธ

The full table of contents is above, right after the title block, so you can see how the sections are laid out ๐Ÿฆ‹

1. Introduction ๐ŸŒธ

okay, the Internet of Things (IoT) is about lots of different kinds of networked entities and networks, all talking with different patterns ๐Ÿ’… There's human-to-human (H2H), human-to-thing (H2T), thing-to-thing (T2T), and thing-to-things (T2Ts) ๐Ÿซถ The term "IoT" was first used in 1999 by the Auto-ID center [AUTO-ID]. They pictured a world where every physical object had a radio-frequency identification (RFID) tag with a globally unique identifier ๐Ÿงš That would let you track objects in real time and also query data about them over the Internet. But the meaning has grown a LOT since then, and now it covers a huge range of technologies, objects, and protocols ๐Ÿ˜ญ So it's no surprise the research community is super into (re)designing, applying, and using standard Internet technology and protocols for IoT ๐Ÿ‘‘

The things in the Internet of Things are computing devices that sense and react to their environment โœจ People also call them smart objects or smart devices ๐Ÿ’– IPv6 [RFC6568] and CoAP [RFC7252] are the core building blocks that let IoT hosts connect to the Internet ๐ŸŒˆ That brings a few big perks: (i) a single, shared protocol ecosystem that makes it easy to hook things up with other Internet hosts; (ii) simpler development for devices with very different capabilities; and (iii) one unified interface for applications, so you don't need application-level proxies ๐Ÿ’œ These building blocks make all the scenarios way easier to deploy, from building automation to production environments and personal area networks ๐Ÿ”ฅ

This document gives an overview of the important security aspects of the Internet of Things. We start with the lifecycle of a thing in Section 2 ๐Ÿฆ‹ Section 3 covers IoT security threats and ways to manage them when you're designing a secure system ๐ŸŽ€ Section 4 looks at existing IP-based (security) protocols for IoT and quickly sums up current guidelines and regulations ๐ŸŒธ Section 5 lists the challenges that remain for a secure IoT and talks about possible solutions ๐Ÿ’… Section 6 has the final remarks and conclusions ๐Ÿซถ This document can be used by IoT standards specifications as a reference for the security considerations that apply to the system or protocol they specify ๐Ÿงš

Here's the history, because it's kind of a journey ๐Ÿฅน The first draft was submitted in March 2011. Early drafts were presented and discussed at the Constrained RESTful Environments (CORE) Working Group meetings starting at IETF 80 โœจ Discussions about the security lifecycle at IETF 92 (March 2015) grew into broader security considerations, and that's how the draft got picked up to cover the T2TRG work item on security considerations and challenges for the Internet of Things ๐Ÿ’– More updates were presented at the T2TRG meetings at IETF 96 (July 2016) and IETF 97 (November 2016), and at the joint interim meeting in Amsterdam (March 2017) ๐ŸŒˆ The document was reviewed, commented on, and discussed heavily for nearly six years by a massive group of T2TRG and related group members, certainly more than 100 individuals ๐Ÿ˜ญ๐Ÿ’œ The T2TRG consensus is that these security considerations should be published in the IRTF Stream of the RFC series ๐Ÿ‘‘ And to be clear, this document does not constitute a standard ๐Ÿ“

2. The Thing Lifecycle โœจ

okay so let's talk about the lifecycle of a thing ๐Ÿ”„๐Ÿ’– It's basically the operational phases a thing goes through in a given application or use case. Figure 1 shows the generic phases, and this generic lifecycle fits super different IoT apps and scenarios. For a rundown of relevant IoT use cases, check out [RFC7744].

In this document we're using a Building Automation and Control (BAC) system to show the lifecycle and what each phase means ๐Ÿขโœจ A BAC system is a network of interconnected nodes doing all sorts of jobs in Heating, Ventilating, and Air Conditioning (HVAC), lighting, safety, and more. The nodes are wildly different in what they do, and most of them are resource-constrained devices like sensors and luminaries ๐Ÿ”ฆ Some run on batteries or rely on energy harvesting, which means they also have to deal with sleeping during operation to save energy ๐Ÿ˜ด In our BAC scenario, a thing's life starts when it's manufactured ๐Ÿญ Since different application areas (HVAC, lighting, or safety) need different tailored nodes, it's pretty unlikely that one manufacturer makes every node in a building. So interoperability and trust bootstrapping between nodes from different vendors is a big deal ๐Ÿซถ

Next up, the thing gets installed and commissioned into a network by an installer during the bootstrapping phase ๐Ÿ”ง The device identity and the secret keys used during normal operation may be handed to the device in this phase. Different subcontractors might install different IoT devices for different purposes, and the installation and bootstrapping can be a non-discrete event that stretches out over a long period ๐Ÿข Once bootstrapped, the device and the system of things are in operational mode and run the BAC system's functions ๐ŸŽ€ During this phase the device is controlled by the system owner and used by multiple system users. For devices with lifetimes spanning several years, occasional maintenance cycles may be required ๐Ÿ› ๏ธ In each maintenance phase, the device's software can be upgraded, or the applications running on it can be reconfigured. Maintenance can happen locally or from a backend system. Depending on the operational changes, the device may need to rebootstrap at the end of a maintenance cycle ๐Ÿ” The device keeps looping through operational and maintenance phases until it's decommissioned at the end of its lifecycle ๐ŸŒธ Here's the tea though: end-of-life doesn't automatically mean the device is defective ๐Ÿ™…โ€โ™€๏ธ It just means the network needs replacing and upgrading to next-generation devices for extra functionality. So the device can be removed and recommissioned into a different system under a different owner, which starts the whole lifecycle over again ๐Ÿฆ‹

Real talk, the lifecycle we just showed is kinda simplified ๐Ÿ™ˆ For example, you could argue the lifecycle doesn't start when a physical device is manufactured, but when the oldest bit of code in the device was written (maybe it came from an open-source project or the operating system) ๐Ÿ’ป There could also be an on-the-shelf phase where the device sits in the supply chain before an owner or user buys and installs it ๐Ÿ›’ Another phase could be the device getting rebadged by a vendor that isn't the original manufacturer ๐Ÿท๏ธ These extra phases can seriously complicate things like maintenance and bootstrapping ๐Ÿ˜ญ And finally, other end states are possible too. A vendor might stop supporting a device type because it's reached the end of its life, or a device might simply get forgotten while still working ๐Ÿ•ธ๏ธ

    _Manufactured           _SW update          _Decommissioned
   /                       /                   /
   |   _Installed          |   _ Application   |   _Removed &
   |  /                    |  / reconfigured   |  /  replaced
   |  |   _Commissioned    |  |                |  |
   |  |  /                 |  |                |  |   _Reownership &
   |  |  |    _Application |  |   _Application |  |  / recommissioned
   |  |  |   /   running   |  |  / running     |  |  |
   |  |  |   |             |  |  |             |  |  |             \\
   +##+##+###+#############+##+##+#############+##+##+##############>>>
       \/  \______________/ \/  \_____________/ \___/         time //
       /           /         \          \          \
   Bootstrapping  /      Maintenance &   \     Maintenance &
                 /      rebootstrapping   \   rebootstrapping
           Operational                Operational

Figure 1: The Lifecycle of a Thing in the Internet of Things ๐Ÿ“Š

Security is a key requirement in any communication system ๐Ÿ” But in real-world IoT deployments it's even more critical, and there are a few reasons why ๐Ÿ˜ฑ First, compromised IoT systems can endanger a user's privacy and security and can also cause physical harm ๐Ÿ’ฅ That's because IoT systems often include sensors, actuators, and other connected devices sitting in the user's physical environment, which could hurt the user if they get compromised. Second, a vulnerable IoT system means an attacker can change how a device from a given manufacturer functions ๐ŸŽญ That doesn't just hurt the manufacturer's brand image, it can also leak super valuable info like proprietary algorithms ๐Ÿคซ Third, attacking an IoT system goes way beyond one device or one isolated system, because compromised IoT systems can be misused at scale ๐ŸŒ For example, they might be used to run a Distributed Denial of Service (DDoS) attack that takes down the availability of other networks and services. Also, many IoT systems rely on standard IP protocols, which makes integration easier, but it also means attacks on standard IP protocols are widely applicable in other environments ๐Ÿซ  Bottom line, this creates new requirements for how security gets implemented ๐Ÿ›ก๏ธ

The term "security" is a whole umbrella โ˜‚๏ธ It covers a wide range of primitives, protocols, and procedures. For instance, it includes confidentiality, authentication, integrity, authorization, source authentication, and availability. It often also includes augmented services like duplicate detection and detection of stale packets (timeliness) ๐Ÿ•ฐ๏ธ These security services can be built from a mix of cryptographic mechanisms, such as block ciphers, hash functions, and signature algorithms, plus noncryptographic mechanisms that handle authorization and other parts of security-policy enforcement ๐Ÿงฉ To keep IoT networks secure, you shouldn't just focus on the required security services. You also need to pay special attention to how those services get realized across the overall system ๐Ÿ‘‘

3. Security Threats and Managing Risk ๐Ÿšจ

Security threats in related IP protocols have been analyzed across multiple documents, including Hypertext Transfer Protocol (HTTP) over Transport Layer Security (TLS) (HTTPS) [RFC2818], Constrained Application Protocol (CoAP) [RFC7252], IPv6 over Low-Power Wireless Personal Area Networks (6LoWPAN) [RFC4919], Access Node Control Protocol (ANCP) [RFC5713], Domain Name System (DNS) [RFC3833], IPv6 Neighbor Discovery (ND) [RFC3756], and Protocol for Carrying Authentication and Network Access (PANA) [RFC4016] ๐Ÿ“š In this section we're getting specific about threats that could compromise an individual thing or the network as a whole ๐Ÿ•ต๏ธโ€โ™€๏ธ Some of these go beyond Internet protocols, but we gather them here for completeness ๐ŸŽ€ The threats in the list below aren't in any particular order, and some may be more critical than others depending on the deployment scenario being considered:

  1. Vulnerable software/code: Things in the Internet of Things rely on software that might contain severe bugs and/or bad design choices ๐Ÿ’€ That makes the things vulnerable to lots of different attacks, depending on how critical the bugs are, like buffer overflows or lack of authentication. This can be considered one of the most important security threats ๐Ÿ‘‘ The large-scale Distributed Denial of Service (DDoS) attack popularly known as the Mirai botnet [Mirai] happened because things had well-known or easy-to-guess passwords for configuration ๐Ÿ™ƒ
  2. Privacy threat: Tracking a thing's location and usage may pose a privacy risk to people around it ๐Ÿ‘€ For instance, an attacker can infer privacy-sensitive information from the data gathered and communicated by individual things. That info may then be sold to interested parties for marketing purposes and targeted advertising ๐Ÿ’ธ In extreme cases, it could be used to track dissidents in oppressive regimes ๐Ÿ˜ค Unlawful surveillance and interception of traffic to and from a thing by intelligence agencies is also a privacy threat ๐Ÿ”
  3. Cloning of things: During the manufacturing process, an untrusted factory can easily clone a thing's physical characteristics, firmware/software, or security configuration ๐Ÿญ๐Ÿ™…โ€โ™€๏ธ Deployed things can also get compromised, with their software reverse engineered, which allows for cloning or software modifications. A cloned thing may be sold at a cheaper price and still function normally as a genuine thing ๐Ÿค‘ For example, two cloned devices can still be associated and work with each other. In the worst-case scenario, a cloned device can be used to control a genuine device or perform an attack ๐Ÿ˜ฑ One thing to note: an untrusted factory may also change the functionality of the cloned thing, which leads to degraded functionality compared to the genuine thing and can seriously damage the reputation of the original thing manufacturer ๐Ÿ“‰ On top of that, additional functionality can be introduced into the cloned thing. A backdoor is an example of that ๐Ÿšช
  4. Malicious substitution of things: During a thing's installation, a genuine thing may be swapped for a similar variant of lower quality without anyone noticing ๐Ÿซฃ The main motivation may be cost savings, since installing lower-quality things (for example, noncertified products) can significantly cut installation and operational costs ๐Ÿ’ฐ The installers can then resell the genuine things for more financial benefits. Another motivation may be to damage the reputation of a competitor's offerings ๐Ÿฅ€
  5. Eavesdropping attack ๐Ÿ‘€: okay bestie, when a thing is getting commissioned into a network, it can be super vulnerable to eavesdropping. This happens if the operational keying materials, security parameters, or configuration settings get sent in the clear over a wireless medium, or if the cryptographic algorithms aren't strong enough for how long the device and system will be around. ๐Ÿ˜ฌ Once the attacker has the keying material, they might recover the secret keys shared between the communicating entities. That means the authenticity and confidentiality of the channel are compromised, along with the authenticity of commands and other traffic on it. ๐Ÿ’” When the network is up and running, T2T communication can be eavesdropped too, if the channel isn't protected well enough or a session key gets compromised because of protocol weaknesses. Keys that aren't renewed or updated properly are also an open door. And messages can be recorded now and decrypted offline later. ๐Ÿ•ฐ๏ธ The VENONA project [venona-project] is a famous example of exactly that, where messages were recorded for offline decryption. Iconic, but scary. ๐Ÿ™ƒ
  6. Man-in-the-middle attack ๐Ÿฅท: both the commissioning and operational phases can be vulnerable to man-in-the-middle attacks. Like, if keying material gets swapped between communicating entities in the clear, the key establishment protocol is only safe if you tacitly assume no third party is eavesdropping while it runs. ๐Ÿซฃ Also, device authentication or device authorization can be kind of messy, or might need a human to make the call, since things usually don't know anything about each other beforehand. They can't always tell friend from foe with fully automated mechanisms. Not me having to pull a human into the loop ๐Ÿ’€
  7. Firmware attacks ๐Ÿ”ง: when a thing is in its operation or maintenance phase, its firmware or software might get updated to add new functionality or features. An attacker could exploit that upgrade by swapping in malicious firmware, which changes how the thing behaves. ๐Ÿ˜ˆ For example, imagine sneaking in some malicious code that makes the device periodically report its energy usage to a data repository. The attacker could then figure out when a home or enterprise (where the thing is installed) is empty and break in. Yikes. ๐Ÿš๏ธ And devices whose software hasn't been properly maintained and updated may have vulnerabilities that attackers can use to replace the firmware. Please keep your updates up to date, babe ๐Ÿซถ
  8. Extraction of private information ๐Ÿ”“: IoT devices (like sensors, actuators, and so on) are often physically unprotected in their surroundings, so an attacker could easily capture one. With physical access, an attacker might try to extract private information, such as keys (like a group key or the device's private key), data from sensors (like a user's healthcare status), configuration parameters (like the Wi-Fi key), or proprietary algorithms (like one doing some data analytics). ๐Ÿ˜ญ Even when a thing's data is encrypted, attackers can do traffic analysis to deduce meaningful information, which might compromise the privacy of the thing's owner and/or user. Encryption isn't a magic cloak, sis. ๐Ÿงฅ
  9. Routing attack ๐Ÿ—บ๏ธ: as highlighted in [Daniel], routing information in IoT networks can be spoofed, altered, or replayed. That lets attackers create routing loops, attract or repel network traffic, extend or shorten source routes, and more. A nonexhaustive list of routing attacks includes:
    • a. Sinkhole attack (or blackhole attack): an attacker declares themselves to have a high-quality route or path to the base station, so they can manipulate all the packets passing through them. ๐Ÿ•ณ๏ธ
    • b. Selective forwarding: an attacker may selectively forward packets or simply drop a packet. ๐Ÿ™…
    • c. Wormhole attack: an attacker may record packets at one location in the network and tunnel them to another location. This influences the perceived network behavior, can distort statistics, and seriously messes with routing functionality. ๐ŸŒ€
    • d. Sybil attack: an attacker presents multiple identities to other things in the network. For more router attacks and a more detailed description, check out [Daniel]. ๐Ÿ‘ฏ
  10. Elevation of privilege ๐Ÿ‘‘: an attacker with low privileges can misuse additional flaws in the implemented authentication and authorization mechanisms of a thing. That lets them gain more privileged access to the thing and its data. Main character villain arc, not cute. ๐Ÿ˜ค
  11. Denial of Service (DoS) attack ๐Ÿชซ: things often have very limited memory and computation capabilities, which makes them vulnerable to resource-exhaustion attacks. Attackers can keep sending requests to specific things to drain their resources. This is especially dangerous in the Internet of Things, since an attacker might sit in the backend and target resource-constrained devices that are part of a constrained-node network [RFC7228]. A DoS attack can also happen by physically jamming the communication channel. Network availability can be disrupted by flooding the network with a huge number of packets. ๐ŸŒŠ And on the flip side, compromised things can be used to disrupt the operation of other networks or systems through a Distributed DoS (DDoS) attack. Chaos. ๐Ÿ’ฅ

To deal with the above threats, it is required to find and apply suitable security mitigations. ๐Ÿ›ก๏ธ But new threats and exploits show up every single day, and products get deployed in different environments with different threats. So keeping a proper level of security in an IoT system at any point in time is genuinely challenging. ๐Ÿ˜ฎโ€๐Ÿ’จ To tackle this, some of the following methodologies can be used:

  1. A Business Impact Analysis (BIA) assesses the consequences of losing the basic security attributes (confidentiality, integrity, and availability) in an IoT system. Those consequences might include lost data, reduced sales, increased expenses, regulatory fines, customer dissatisfaction, and so on. Doing a business impact analysis helps a business figure out how much a proper security design actually matters to them. ๐Ÿ’ผ
  2. A Risk Assessment (RA) analyzes security threats to an IoT system while considering their likelihood and impact. It also categorizes each threat with a risk level. Risks classified as moderate or high must be mitigated, meaning the security architecture should be able to deal with those threats. ๐Ÿšฆ
  3. A Privacy Impact Assessment (PIA) looks at the Personally Identifiable Information (PII) that is collected, processed, or used in an IoT system. The goal is to meet applicable legal requirements and to figure out the risks and effects of manipulation and loss of PII. Privacy is literally a whole vibe. ๐Ÿ”
  4. Procedures for incident reporting and mitigation are the methods that let you become aware of any security issues affecting an IoT system. This also includes the steps toward actually deploying patches for the vulnerabilities you found. ๐Ÿฉน

BIA, RA, and PIA should generally be done when creating a new IoT system or when deploying significant system or feature upgrades. It's also recommended to reassess them on a regular basis, taking into account new use cases and/or threats. โ™ป๏ธ How you perform a BIA, RA, or PIA depends on the environment and the industry. For more info, look at NIST documents like [NISTSP800-34r1], [NISTSP800-30r1], and [NISTSP800-122]. ๐Ÿ“š

4. State of the Art โœจ

This section is laid out like so ๐Ÿ—‚๏ธ. Section 4.1 summarizes the state of the art on IP-based IoT systems, both within the IETF and other standardization bodies. Section 4.2 summarizes the state of the art on IP-based security protocols and how they're used. Section 4.3 discusses guidelines and regulations for securing IoT as proposed by other bodies. Note that the references in this section are a representative sample of the state of the art at the time of writing, and they are by no means exhaustive. ๐Ÿ™ˆ They're also at varying levels of maturity, so it's advisable to check their specific status before you rely on them. โญ

4.1. IP-Based IoT Protocols and Standards โœจ

Okay so, there are SO many control protocols for IoT right now ๐Ÿคฏ For BAC systems, the ZigBee standard [ZB], BACNet [BACNET], and DALI [DALI] are the big players ๐Ÿ‘‘ But the newer trend is going all-IP for system control, and honestly? Iconic ๐ŸŒ๐Ÿ’–

A bunch of IETF working groups are building new protocols for resource-constrained networks of smart things ๐Ÿงš The 6LoWPAN Working Group [WG-6LoWPAN], for example, has come up with methods and protocols for efficiently transmitting and adapting IPv6 packets over IEEE 802.15.4 networks [RFC4944]. Main character energy ๐ŸŽ€

The CoRE Working Group [WG-CoRE] gave us the Constrained Application Protocol (CoAP) [RFC7252] ๐Ÿฆ‹ CoAP is a RESTful protocol for constrained devices that's modeled after HTTP and typically runs over UDP, so things can communicate at the application level efficiently ๐Ÿ’… ("RESTful" refers to the Representational State Transfer (REST) architecture, fyi ๐Ÿค“)

Now, in lots of smart-object networks, the smart objects are spread out and have intermittent reachability. That's either because of network outages, or because they sleep during their operational phase to save energy ๐Ÿ˜ด Lowkey tricky, because in those scenarios, direct discovery of resources hosted on the constrained server might not be possible ๐Ÿ™ˆ To get around that barrier, the CoRE Working Group is specifying the concept of a Resource Directory (RD) [RD]. The Resource Directory hosts descriptions of resources that live on other nodes, and these resource descriptions are specified as CoRE link format [RFC6690] ๐Ÿ—‚๏ธโœจ

CoAP defines a standard communication protocol, but ngl, we also need a format for representing sensor measurements and parameters over CoAP ๐Ÿ“Š That's where "Sensor Measurement Lists (SenML)" [RFC8428] comes in. It defines media types for simple sensor measurements and parameters, and it has a minimalistic design so constrained devices with limited computational capabilities can easily encode their measurements. At the same time, servers can efficiently collect a large number of measurements ๐Ÿ“ Efficient AND cute ๐Ÿซถ

In lots of IoT deployments, the resource-constrained smart objects connect to the Internet through a gateway that's directly reachable ๐ŸŒธ For example, an IEEE 802.11 Access Point (AP) usually connects client devices to the Internet over just one wireless hop. Some smart-object networks, though, need routing between the smart objects themselves ๐Ÿ”ฅ So the IETF defined the IPv6 Routing Protocol for Low-Power and Lossy Networks (RPL) [RFC6550]. RPL supports multipoint-to-point traffic from resource-constrained smart objects toward a more resourceful central control point, plus point-to-multipoint traffic in the reverse direction. It also supports point-to-point traffic between the resource-constrained devices ๐Ÿ’œ And a set of routing metrics and constraints for path calculation in RPL is also specified [RFC6551]. Literally so organized ๐Ÿ˜ญ

The IPv6 over Networks of Resource-constrained Nodes (6lo) Working Group of the IETF [WG-6lo] has specified how IPv6 packets can be transmitted over various link-layer protocols that are commonly used for resource-constrained smart-object networks ๐ŸŒˆ There's also ongoing work to specify IPv6 connectivity for a Non-Broadcast Multi-Access (NBMA) mesh network formed by IEEE 802.15.4 Time-Slotted Channel Hopping (TSCH) links [ARCH-6TiSCH]. Other link-layer protocols where the IETF has specified, or is currently specifying, IPv6 support include Bluetooth [RFC7668], Digital Enhanced Cordless Telecommunications (DECT) Ultra Low Energy (ULE) air interface [RFC8105], and Near Field Communication (NFC) [IPv6-over-NFC] ๐Ÿ“ก

Baker and Meyer [RFC6272] identify which IP protocols can be used in smart-grid environments โšก They give smart-grid network designers advice on how to decide on a profile of the Internet protocol suite for smart-grid networks. Very helpful, bestie ๐Ÿซถ

The Low Power Wide-Area Network (LPWAN) Working Group [WG-LPWAN] is analyzing features, requirements, and solutions for adapting IP-based protocols to networks such as LoRa [LoRa], Sigfox [sigfox], NB-IoT [NB-IoT], etc. These networking technologies let a smart thing run for years on a single coin-cell by relying on a star network topology and using optimized radio modulation, with frame sizes in the order of tens of bytes ๐Ÿ”‹ Because of that, they bring new security challenges, since most existing security mechanisms don't work well with such resource constraints ๐Ÿ’€

JavaScript Object Notation (JSON) is a lightweight text-representation format for structured data [RFC8259] ๐Ÿ“ It's often used for transmitting serialized structured data over the network. The IETF has defined specifications for encoding cryptographic keys, encrypted content, signed content, and claims to be transferred between two parties as JSON objects. These are JSON Web Keys (JWKs) [RFC7517], JSON Web Encryption (JWE) [RFC7516], JSON Web Signatures (JWSs) [RFC7515], and JSON Web Token (JWT) [RFC7519] ๐ŸŽ€

Then there's an alternative to JSON: Concise Binary Object Representation (CBOR) [RFC7049], a concise binary data format used for serializing structured data ๐Ÿฆ‹ It's designed for resource-constrained nodes, so it aims for a fairly small message size, minimal implementation code, and extensibility without the need for version negotiation. CBOR Object Signing and Encryption (COSE) [RFC8152] then specifies how to encode cryptographic keys, message authentication codes, encrypted content, and signatures with CBOR ๐Ÿ”โœจ

The Light-Weight Implementation Guidance (LWIG) Working Group [WG-LWIG] is collecting experiences from implementers of IP stacks in constrained devices ๐ŸŒธ It has already produced documents like [RFC7815], which defines how a minimal Internet Key Exchange Version 2 (IKEv2) initiator can be implemented. Small but mighty ๐Ÿ’ช

The Thing-2-Thing Research Group (T2TRG) [RG-T2TRG] is investigating the remaining research issues that need solving to quickly turn the vision of IoT into reality, where resource-constrained nodes can communicate with each other and with other, more capable nodes on the Internet ๐Ÿ”ญ๐Ÿ’œ

Industry alliances and other standardization bodies are also building constrained IP protocol stacks based on the IETF work ๐Ÿค Some important examples include:

  1. Thread [Thread]: Specifies the Thread protocol, intended for a variety of IoT devices. It's an IPv6-based network protocol that runs over IEEE 802.15.4 ๐Ÿงต
  2. Industrial Internet Consortium [IIoT]: The consortium defines reference architectures and security frameworks for the development, adoption, and widespread use of Industrial Internet technologies based on existing IETF standards ๐Ÿญ
  3. IPSO Alliance (which subsequently merged with OMA SpecWorks [OMASpecWorks]): The alliance specifies a common object model that enables application software on any device to interoperate with other conforming devices ๐Ÿงฉ
  4. OneM2M [OneM2M]: The standards body defines technical and API specifications for IoT devices. It aims to create a service layer that can run on any IoT device hardware and software ๐ŸŒ
  5. Open Connectivity Foundation (OCF) [OCF]: The foundation develops standards and certifications, primarily for IoT devices that use Constrained Application Protocol (CoAP) as the application-layer protocol ๐Ÿฆ‹
  6. Fairhair Alliance [Fairhair]: Specifies an IoT middleware to enable a common IP network infrastructure between different application standards used in building automation and lighting systems, such as BACnet, KNX, and ZigBee ๐Ÿ’ก
  7. OMA LwM2M [LWM2M]: OMA Lightweight M2M is a standard from OMA SpecWorks for M2M and IoT device management. LwM2M relies on CoAP as the application-layer protocol and uses a RESTful architecture for remote management of IoT devices ๐Ÿซง

4.2. Existing IP-Based Security Protocols and Solutions โœจ

okay so there are three main security goals for IoT networks ๐Ÿ›ก๏ธ:

  1. protecting the IoT network from attackers
  2. protecting IoT applications, and therefore the things and users ๐Ÿซถ
  3. protecting the rest of the Internet and other things from attacks that use compromised things as an attack platform ๐Ÿ’€

when you're building IP-based IoT stuff, you have to look at the security protocols the Internet already has, bestie ๐Ÿ’…. there's a whole buffet of specialized and general-purpose options, like IKEv2/IPsec [RFC7296], Transport Layer Security (TLS) [RFC8446], Datagram Transport Layer Security (DTLS) [RFC6347], Host Identity Protocol (HIP) [RFC7401], PANA [RFC5191], Kerberos [RFC4120], Simple Authentication and Security Layer (SASL) [RFC4422], and Extensible Authentication Protocol (EAP) [RFC3748] ๐Ÿ“.

TLS secures TCP and needs a reliable transport ๐ŸŒธ. DTLS secures datagram-oriented protocols like UDP ๐Ÿฆ‹. they're intentionally kept pretty similar, sharing the same ideology and cipher suites, so it's giving family resemblance ๐Ÿฅน.

the CoAP base specification [RFC7252] explains how DTLS can be used to secure CoAP ๐Ÿ”. it lays out three modes for doing that:

  • PreSharedKey mode: nodes have pre-provisioned keys for starting a DTLS session with another node ๐Ÿ—๏ธ
  • RawPublicKey mode: nodes have asymmetric-key pairs but no certificates to verify who owns them ๐Ÿคทโ€โ™€๏ธ
  • Certificate mode: public keys are certified by a certification authority ๐Ÿ“œ

there's also an IoT implementation profile for TLS version 1.2 and DTLS version 1.2 that gives communication security to resource-constrained nodes [RFC7925] โœจ. the lowkey goal here is making security fit on tiny devices ๐Ÿงš.

there's ongoing work on an authorization and access-control framework for resource-constrained nodes too ๐ŸŽ€. the Authentication and Authorization for Constrained Environments (ACE) Working Group [WG-ACE] is defining a solution that allows only authorized access to resources hosted on a smart-object server and identified by a URI ๐Ÿ”‘. the current proposal [ACE-OAuth] is built on the OAuth 2.0 framework [RFC6749], and it comes with profiles for different communication scenarios, e.g., "Datagram Transport Layer Security (DTLS) Profile for Authentication and Authorization for Constrained Environments (ACE)" [ACE-DTLS] ๐Ÿ‘‘.

Object Security for Constrained RESTful Environments (OSCORE) [OSCORE] is a proposal that protects CoAP messages by wrapping them in the COSE format [RFC8152] ๐ŸŽ. so OSCORE counts as object security, and it works anywhere CoAP works ๐ŸŒˆ. the perk over DTLS is that it's more flexible when it comes to end-to-end security ๐Ÿ’œ. Section 5.1.3 goes deeper on this, so go check it out if you're curious ๐Ÿ‘€.

the Automated Certificate Management Environment (ACME) Working Group [WG-ACME] is writing conventions for automated X.509 certificate management ๐Ÿค–. that covers automatic validation of certificate issuance, certificate renewal, and certificate revocation ๐Ÿ”„. right now the group is mostly focused on domain-name certificates (the kind web servers use), but other uses in some IoT deployments are possible ๐ŸŒท.

IKEv2/IPsec, plus the less-used Host Identity Protocol (HIP), live at or above the network layer in the OSI model ๐Ÿงฑ. both can do an authenticated key exchange and set up IPsec for secure payload delivery ๐Ÿ“ฆ. there's also ongoing work on a HIP variant called Diet HIP [HIP-DEX], which takes constrained networks and nodes into account at the authentication and key-exchange level ๐Ÿฅ—.

Migault et al. [Diet-ESP] are working on a compressed version of IPsec so resource-constrained IoT devices can actually use it ๐Ÿชถ. they rely on the Internet Key Exchange Protocol Version 2 (IKEv2) to negotiate the compression format ๐Ÿค.

the Extensible Authentication Protocol (EAP) [RFC3748] is an authentication framework that supports multiple authentication methods ๐Ÿฆ„.

EAP runs directly over the data link layer, so it doesn't need IP to be deployed ๐Ÿ™Œ. it supports duplicate detection and retransmission, but it does not allow packet fragmentation ๐Ÿ™ˆ. PANA is a network-layer transport for EAP that enables network access authentication between clients and the network infrastructure ๐Ÿ›ฐ๏ธ. in EAP terms, PANA is a UDP-based EAP lower layer that runs between the EAP peer and the EAP authenticator ๐Ÿ’–.

4.3. IoT Security Guidelines โœจ

Okay so attacks on and from IoT devices have become super common lately ๐Ÿ˜ญ. Like, large-scale DoS attacks hitting the Internet Infrastructure, launched from compromised IoT devices? Iconic in the worst way ๐Ÿ’€. That's why so many standards bodies and consortia have put out guidelines to help developers and the wider Internet community build secure IoT devices and services ๐Ÿซถ. Here's a taste of the different guidelines and ongoing projects:

  1. Global System for Mobile Communications Association (GSMA) IoT security guidelines [GSMAsecurity]: GSMA published a set of security guidelines for new IoT product and service providers ๐ŸŽ€. They're aimed at device manufacturers, service providers, developers, and network operators. An enterprise can complete an IoT Security Self-Assessment to show that its products and services line up with the GSMA security guidelines โœ….
  2. Broadband Internet Technical Advisory Group (BITAG) IoT Security and Privacy Recommendations [BITAG]: BITAG put out recommendations for keeping IoT device users secure and private ๐Ÿ”’. Here's the tea: BITAG notes that a lot of IoT devices ship from the factory with software that's already outdated and vulnerable ๐Ÿ˜ค. The report also says plenty of vulnerable devices never get fixed, either because the manufacturer doesn't provide updates or because the user doesn't apply them ๐Ÿ’”. The recommendations include that IoT devices should function without cloud and Internet connectivity, and that all IoT devices should have methods for automatic secure software updates ๐ŸŒธ.
  3. United Kingdom Department for Digital, Culture, Media and Sport (DCMS) [DCMS]: UK DCMS released a report with a list of 13 steps for improving IoT security ๐Ÿ‘‘. These steps highlight things like implementing a vulnerability disclosure policy and keeping software updated ๐Ÿ†™. The report is aimed at device manufacturers, IoT service providers, mobile application developers, and retailers ๐Ÿ›๏ธ.
  4. Cloud Security Alliance (CSA) New Security Guidance for Early Adopters of the IoT [CSA]: CSA's recommendations for early adopters of IoT encourage enterprises to build in security at different layers of the protocol stack ๐Ÿฅž. They also recommend implementing an authentication/authorization framework for IoT deployments ๐Ÿ”‘. The complete list of recommendations is in the report [CSA] ๐Ÿ“„.
  5. United States Department of Homeland Security (DHS) [DHS]: DHS has put forth six strategic principles to help IoT developers, manufacturers, service providers, and consumers stay secure as they develop, manufacture, implement, or use network-connected IoT devices ๐Ÿ‡บ๐Ÿ‡ธโœจ.
  6. National Institute of Standards and Technology (NIST) [NIST-Guide]: This NIST special publication urges enterprises and US federal agencies to address security throughout the systems engineering process ๐Ÿง . It builds on the International Organization for Standardization (ISO)/International Electrotechnical Commission (IEC) 15288 standard and adds security enhancements to each process in the system lifecycle ๐Ÿ”.
  7. National Institute of Standards and Technology (NIST) [NIST-LW-PROJECT] [NIST-LW-2016]: NIST is running a lightweight cryptography project ๐Ÿฆ‹. The goals are: (i) identifying application areas where standard cryptographic algorithms are too heavy, and classifying them according to application profiles to be determined; (ii) determining limitations in those existing cryptographic standards; and (iii) standardizing lightweight algorithms that can be used in specific application profiles ๐Ÿ’œ.
  8. Open Web Application Security Project (OWASP) [OWASP]: OWASP provides security guidance for IoT manufacturers, developers, and consumers ๐Ÿ™Œ. It also has guidelines for anyone who wants to test and analyze IoT devices and applications ๐Ÿ”.
  9. IoT Security Foundation [IoTSecFoundation]: The IoT Security Foundation published a document listing various considerations to take into account when developing IoT applications ๐Ÿ“‹. For example, the document states that IoT devices could use a hardware root of trust to make sure only authorized software runs on the devices ๐Ÿ”.
  10. National Highway Traffic Safety Administration (NHTSA) [NHTSA]: The US NHTSA gives the automotive industry guidance for improving vehicle cyber security ๐Ÿš—. Some of the guidelines are general, but the document also offers specific recommendations for the automotive industry, like how different automotive manufacturers can share cybersecurity vulnerabilities they discover ๐Ÿค.
  11. "Best Current Practices for Securing Internet of Things (IoT) Devices" [Moore]: This document provides a list of minimum requirements that vendors of IoT devices should to take into account while developing applications, services, and firmware updates ๐Ÿ› ๏ธ. The goal is to reduce the frequency and severity of security incidents that arise from compromised IoT devices ๐ŸŽฏ.
  12. European Union Agency for Network and Information Security (ENISA) [ENISA-ICS]: ENISA published a document on communication-network dependencies for Industrial Control Systems (ICS)/Supervisory Control And Data Acquisition (SCADA) systems ๐Ÿญ. It sums up security vulnerabilities, guidelines, and general recommendations for those systems ๐Ÿ“Š.
  13. Internet Society Online Trust Alliance [ISOC-OTA]: The Internet Society's IoT Trust Framework spells out the core requirements that manufacturers, service providers, distributors, purchasers, and policymakers need to understand, assess, and embrace for effective security and privacy as part of the Internet of Things ๐ŸŒ๐Ÿ’–.

Other guideline and recommendation documents may exist or may later be published. This list should be considered nonexhaustive ๐Ÿ“š. Even with all this talk about security and multiple guidelines out there, the truth is that many IoT devices and systems have very limited security ๐Ÿ˜ฉ. There are multiple reasons for this. For instance, some manufacturers focus on shipping a product without paying enough attention to security. That might be because of lack of expertise or a limited budget ๐Ÿ’ธ. Still, deploying insecure devices poses a severe threat to the privacy and safety of users ๐Ÿšจ. The vast number of devices and their inherently mobile nature also mean that an initially secure system can become insecure if a compromised device gains access to the system at some point in time ๐Ÿ“ฑ. Even if every other device in a given environment is secure, that doesn't stop external attacks caused by insecure devices ๐Ÿ˜ฌ. Recently, the US Federal Communications Commission (FCC) has said IoT systems need additional regulation [FCC] ๐Ÿ›๏ธ. It's possible we'll see other regional regulations like this in the future ๐Ÿ”ฎ.


5. Challenges for a Secure IoT ๐Ÿ”ฅ

In this section, we take a closer look at the security challenges in the operational and technical features of IoT, and then talk about how existing Internet security protocols cope with these technical and conceptual challenges across the lifecycle of a thing ๐Ÿง. This discussion should not be understood as a comprehensive evaluation of all protocols, and it can't cover every possible aspect of IoT security ๐Ÿ™ˆ. It does aim to show concrete limitations and challenges in some IoT design areas, rather than staying abstract. The discussion focuses on the issues that matter most from the authors' perspectives ๐Ÿ’….

5.1. Constraints and Heterogeneous Communication

Coupling resource-constrained networks with the powerful Internet is a challenge, because the resulting heterogeneity of both networks complicates protocol design and system operation ๐Ÿงฉ. In the following subsections, we briefly discuss the resource constraints of IoT devices and what those constraints mean for using Internet protocols in the IoT domain ๐Ÿฆ‹.

5.1.1. Resource Constraints

IoT deployments are often characterized by lossy and low-bandwidth communication channels ๐Ÿ“‰. IoT devices are also often constrained in terms of CPU, memory, and energy budget [RFC7228] ๐Ÿ”‹. These characteristics directly impact the design of protocols for the IoT domain ๐ŸŽ€. For instance, small packet-size limits at the physical layer (127 Bytes in IEEE 802.15.4) can lead to (i) hop-by-hop fragmentation and reassembly or (ii) a small IP-layer maximum transmission unit (MTU) ๐Ÿงƒ. In the first case, excessive fragmentation of large packets, which security protocols often require, may open new attack vectors for state-exhaustion attacks ๐Ÿšช. The second case might lead to more fragmentation at the IP layer, which commonly downgrades overall system performance due to packet loss and the need for retransmission ๐Ÿ˜ตโ€๐Ÿ’ซ.

The size and number of messages should be minimized to reduce memory requirements and optimize bandwidth usage ๐Ÿ“ฆ. In this context, layered approaches involving a number of protocols might lead to worse performance on resource-constrained devices, since they stack the headers of the different protocols ๐Ÿฅด. In some settings, protocol negotiation can increase the number of exchanged messages ๐Ÿ—ฃ๏ธ. To improve performance during basic procedures such as bootstrapping, it might be a good strategy to perform those procedures at a lower layer ๐Ÿชœ.

Small CPUs and scarce memory limit the use of resource-expensive cryptographic primitives, such as public key cryptography as used in most Internet security standards ๐Ÿฅฒ. This is especially true if the basic cryptographic blocks need to be used frequently, or if the underlying application demands low delay โฑ๏ธ.

There are ongoing efforts to reduce the resource consumption of security protocols by using more efficient underlying cryptographic primitives, such as Elliptic Curve Cryptography (ECC) [RFC8446] โœจ. The specification of elliptic curve X25519 [ecc25519], stream ciphers such as ChaCha [ChaCha], Diet HIP [HIP-DEX], and ECC groups for IKEv2 [RFC5903] are all examples of efforts to make security protocols more resource efficient ๐ŸŒˆ. Plus, most modern security protocols have been revised in the last few years to enable cryptographic agility, which makes cryptographic primitives interchangeable ๐Ÿ”„. However, these improvements are only a first step in reducing the computation and communication overhead of Internet protocols ๐Ÿซ . The question remains whether other approaches can be applied to leverage key agreement in these heavily resource-constrained environments ๐Ÿค”.

A further fundamental need is the limited energy budget available to IoT nodes โšก. Careful protocol (re)design and usage are required to reduce not only energy consumption during normal operation, but also under DoS attacks ๐Ÿ›ก๏ธ. Since the energy consumption of IoT devices differs from other device classes, judgments on the energy consumption of a particular protocol cannot be made without tailor-made IoT implementations ๐Ÿ’œ.

5.1.2. Denial-of-Service Resistance ๐Ÿ›ก๏ธ

okay so the tiny memory and processing power of things kind of already helps against resource-exhaustion attacks ๐Ÿฆ‹ but ngl, these attacks are sneaky, especially in unattended T2T communication. Nobody notices until the service is already down, because the battery or memory has run out ๐Ÿ’€. As a DoS countermeasure, DTLS, IKEv2, HIP, and Diet HIP all use return routability checks based on a cookie mechanism. The point is to delay creating state at the responding host until the address of the initiating host is verified ๐Ÿ”. How well this works really depends on the routing topology of the network ๐Ÿ—บ๏ธ. Return routability checks are super effective when hosts can't receive packets addressed to other hosts, and when IP addresses carry meaningful information, which is the case on today's Internet โœจ. They're way less effective on broadcast media, or when attackers can influence the routing and addressing of hosts (for example, if hosts contribute to the routing infrastructure in ad hoc networks and meshes) ๐Ÿ™ˆ.

HIP also has a puzzle mechanism ๐Ÿงฉ. It can force the initiator of a connection (and potential attacker) to solve cryptographic puzzles with variable difficulties. Puzzle-based defenses depend less on the network topology, but they perform poorly when CPU resources in the network are heterogeneous (for example, if a powerful Internet host attacks a thing) ๐Ÿ˜ญ. Cranking up the puzzle difficulty under attack can easily end with a powerful attacker still solving the puzzle while weak IoT clients can't, so those clients get locked out of talking to the victim ๐Ÿ’”. Still, puzzle-based approaches are a viable option for sheltering IoT devices against unintended overload caused by misconfiguration or malfunctioning things ๐Ÿซถ.

5.1.3. End-to-End Security, Protocol Translation, and the Role of Middleboxes ๐ŸŽ€

The term "end-to-end security" has multiple interpretations, so let's be clear ๐Ÿ’…. Here, we're talking about end-to-end security in the context of end-to-end IP connectivity from a sender to a receiver ๐Ÿ“ฆ. Things like confidentiality and integrity protection on packet data, message authentication codes, or encryption are typically used to provide end-to-end security ๐Ÿ”’. These protection methods make the protected parts of the packets immutable, because rewriting is either not possible or would break things. That happens either because (i) the relevant information is encrypted and the gateway can't access it, or (ii) rewriting integrity-protected parts of the packet would invalidate the end-to-end integrity protection ๐Ÿ™…โ€โ™€๏ธ.

Protocols for constrained IoT networks aren't exactly the same as their bigger Internet counterparts, because they're built for efficiency and performance ๐Ÿงš. So more or less subtle differences between the two will stick around ๐ŸŒธ. Those differences can be bridged with protocol translators at middleboxes, but they can turn into major obstacles if end-to-end security between IoT devices and Internet hosts is needed ๐Ÿ˜ฌ.

If the middleboxes are required to access or be able to access data or messages, there's a whole buffet of approaches available ๐Ÿ“. Just note that some of these affect what end-to-end security means for integrity and confidentiality, since the middleboxes will be able to either decrypt or partially modify the exchanged messages ๐Ÿ‘€:

  1. Sharing credentials with middleboxes lets them transform packets (for example, decompress, convert, etc.) and reapply the security measures after the transformation. This method abandons end-to-end security and only works for simple scenarios with a rudimentary security model ๐Ÿ’€.
  2. Reusing the Internet wire format for IoT means no conversion between IoT and Internet protocols is needed โœจ. However, it can lead to poor performance in some use cases, because IoT-specific optimizations (for example, stateful or stateless compression) aren't possible ๐Ÿ˜ญ.
  3. Selectively protecting vital and immutable packet parts with a message authentication code or encryption takes a careful balance between performance and security ๐ŸŽฏ. Otherwise, this approach might end up with poor performance or poor security, depending on which parts are selected for protection, where they sit in the original packet, and how they're processed ๐Ÿซ . [OSCORE] goes in this direction with a solution that encrypts and integrity protects most of the message fields, except the parts a middlebox needs to read or change ๐Ÿง .
  4. Homomorphic encryption techniques can be used in the middlebox to perform certain operations ๐Ÿ”ฎ. But this is limited to data processing involving arithmetic operations. Plus, the performance of existing libraries (for example, Microsoft SEAL [SEAL]) is still too limited, so homomorphic encryption techniques aren't widely applicable yet ๐Ÿฅฒ.
  5. Message authentication codes that survive transformation can be realized by considering the order of transformation and protection (for example, by creating a signature before compression, so the gateway can decompress the packet without recalculating the signature) ๐Ÿช„. This approach enables IoT-specific optimizations, but it's more complex and may require application-specific transformations before security is applied ๐Ÿงฉ. Also, using encrypted or integrity-protected data prevents middleboxes from transforming packets ๐Ÿšซ.
  6. Mechanisms based on object security can bridge the protocol worlds, but both worlds still need to use the same object-security formats ๐ŸŒˆ. Right now, the object-security format based on COSE [RFC8152] is different from JSON Object Signing and Encryption (JOSE) [RFC7520] or Cryptographic Message Syntax (CMS) [RFC5652]. Legacy devices that rely on traditional Internet protocols will need to update to the newer protocols for constrained environments to get real end-to-end security ๐Ÿ”„. Plus, middleboxes don't have any access to the data, and this approach doesn't stop an attacker who can modify relevant message header fields that aren't protected ๐Ÿ•ต๏ธโ€โ™€๏ธ.

To the best of our knowledge, none of the mentioned security approaches that focus on the confidentiality and integrity of the communication exchange between two IP endpoints give the perfect solution to this problem space ๐Ÿ’”. We're still working on it, bestie ๐Ÿซถ.

5.1.4. New Network Architectures and Paradigm ๐ŸŒ

There's a multitude of new link-layer protocols that aim to address the resource-constrained nature of IoT devices ๐Ÿคฉ. For example, IEEE 802.11ah [IEEE802ah] has been specified for extended range and lower energy consumption to support IoT devices ๐Ÿ“ก. Similarly, LPWAN protocols such as LoRa [LoRa], Sigfox [sigfox], and NarrowBand IoT (NB-IoT) [NB-IoT] are all designed for resource-constrained devices that need long range and low bit rates ๐ŸŒ„. [RFC8376] gives an informational overview of the set of LPWAN technologies the IETF is considering ๐Ÿ“š. It also identifies the potential gaps between the needs of those technologies and the goal of running IP in such networks ๐Ÿ”. These protocols help IoT devices conserve energy and operate efficiently, but they also add extra security challenges ๐Ÿ˜ค. For example, the relatively small MTU can make security handshakes with large X509 certificates a significant overhead ๐Ÿ™ƒ.

At the same time, new communication paradigms let IoT devices talk directly to each other, with or without support from the network ๐Ÿ’ฌ. This paradigm is also called Device-to-Device (D2D), Machine-to-Machine (M2M), or Thing-to-Thing (T2T) communication, and it's motivated by features like improved network performance, lower latency, and lower energy requirements โšก. Main character energy, honestly ๐Ÿ‘‘.

5.2. Bootstrapping of a Security Domain ๐Ÿฅพ

Creating a security domain from a set of previously unassociated IoT devices is a key operation in the lifecycle of a thing in an IoT network ๐Ÿ’–. This is further elaborated and discussed in the T2TRG draft on bootstrapping [BOOTSTRAP] โœจ.

5.3. Operational Challenges ๐ŸŒท

After the bootstrapping phase, the system enters the operational phase ๐ŸŽฌ. During the operational phase, things can use the state information created during bootstrapping to exchange information securely ๐Ÿ”. In this section, we discuss the security challenges during the operational phase. Note that many of the challenges discussed in Section 5.1 apply during the operational phase too ๐Ÿซถ.

5.3.1. Group Membership and Security โœจ

okay so group-key negotiation is a HUGE security service for IoT ๐Ÿซถ it matters when a thing sends data to multiple things, or when data flows from multiple things toward one thing. like, very common vibe ๐Ÿฆ‹ but here's the tea: every protocol they looked at only does unicast, one-to-one ๐Ÿ’€ so none of them really focus on setting up group keys. that goes for (D)TLS and IKEv2 too. so yes, a solution is needed in this area, periodt ๐Ÿ’…

one idea is to reuse the Diffie-Hellman keys that IKEv2 and HIP already use to set up a secure unicast link, and use them for group Diffie-Hellman key negotiations ๐ŸŒธ but ngl, Diffie-Hellman is kind of heavy, especially when the group gets big ๐Ÿ˜ญ

symmetric and asymmetric keys can both be used in group communication ๐ŸŽ€ asymmetric keys have the perk that they can provide source authentication โœจ BUT doing broadcast encryption with one single public/private key pair is also not feasible ๐Ÿ’€ a single symmetric key can encrypt the communication or compute a message authentication code, but it has real risks, because if one node gets captured, the key shared across the whole network is compromised ๐Ÿ˜ฑ symmetric keys also don't give you source authentication. and asymmetric crypto is more resource-intensive than symmetric solutions ๐Ÿฅบ so the security risks and performance trade-offs of each option need to be analyzed carefully for a given IoT use case, based on risk and usability assessments [RFC8387]. [MULTICAST] is looking at combining confidentiality with a group key and source authentication with public keys in the same packet ๐Ÿงš

conceptually, solutions that do secure group communication at the network layer (IPsec/IKEv2, HIP/Diet HIP) might have an advantage in cryptographic overhead compared to application-focused security (TLS/DTLS) ๐Ÿ“ why? because application-focused solutions need crypto operations for each group application, while network-layer approaches can share secure group associations between multiple applications (like neighbor discovery, routing, or service discovery) โœจ so putting shared features lower in the stack can avoid redundant security work ๐Ÿ‘‘ BUT, sharing security contexts between apps comes with threats too, e.g., if one app is malicious and watches exchanged messages or injects fake ones ๐Ÿ™ˆ with OSCORE, it provides security for CoAP group communication as defined in RFC 7390, so based on multicast IP ๐Ÿฆ‹ if the same security association gets reused for each application, this solution doesn't seem to have more crypto overhead than IPsec ๐Ÿ’–

several group-key solutions were developed by the MSEC Working Group of the IETF [WG-MSEC] ๐ŸŒˆ MIKEY architecture [RFC4738] is one example. these are specifically tailored for multicast and group-broadcast apps on the Internet, but they should still be considered as candidate solutions for group-key agreement in IoT ๐Ÿซถ the MIKEY architecture, for example, describes a coordinator entity that hands out symmetric keys over pair-wise end-to-end secured channels. however, a centralized approach like that may not work in a distributed IoT environment, where picking one or several coordinators and managing the group key isn't trivial ๐Ÿ˜ญ๐ŸŒธ


5.3.2. Mobility and IP Network Dynamics ๐Ÿฆ‹

okay so lots of things (like user devices and wearable sensors) will be mobile, meaning they'll attach to different networks during the lifetime of a security association ๐Ÿงณ built-in mobility signaling can seriously cut down the overhead of crypto protocols ๐Ÿ”ฅ because you can skip unnecessary and costly re-establishments of the session (which might include handshake and key agreement) ๐Ÿ™Œ IKEv2 supports host mobility with the MOBIKE extension [RFC4555] [RFC4621] ๐Ÿ’… MOBIKE refrains from using heavyweight crypto extensions for mobility, which is iconic of it ๐Ÿ‘‘ however, MOBIKE mandates IPsec tunnel mode, which requires an additional IP header in each packet ๐Ÿ˜ฌ

HIP offers simple yet effective mobility management by letting hosts signal changes to their associations [RFC8046] โœจ still, some small adjustments might be needed to reduce the crypto costs, for example by making the public key signatures in the mobility messages optional ๐ŸŽ€ Diet HIP doesn't define mobility yet, but it's similar enough to HIP that it can use the same mechanisms ๐Ÿงš DTLS gets some mobility support by relying on a connection ID (CID) ๐Ÿ’œ connection IDs can provide all the mobility functionality described in [Williams] except sending the updated location ๐ŸŒˆ the specific need for IP-layer mobility mostly depends on the scenario the nodes operate in ๐Ÿ“ in many cases, mobility supported through a mobile gateway may be enough to enable mobile IoT networks, like body-sensor networks ๐Ÿซถ and using message-based application-layer security like OSCORE [OSCORE] can also ease the problem of re-establishing lower-layer sessions for mobile nodes โœจ๐Ÿฆ‹

5.4. Secure Software Update and Cryptographic Agility ๐Ÿ’–

okay bestie, IoT devices are expected to stay functional for several years or even decades ๐Ÿ˜ญ, and they might be sitting unattended with direct Internet connectivity the whole time. So software updates are needed for more than new features. They also kill security vulnerabilities caused by software bugs, design flaws, or deprecated algorithms ๐Ÿ’…. Bugs can survive even careful code review, security protocol implementations might have (design) flaws, and cryptographic algorithms can get insecure as cryptanalysis advances ๐Ÿ”. That's why it's essential that devices which can't verify a cryptographic signature are not exposed to the Internet, even indirectly ๐Ÿšซ๐ŸŒ.

In his essay, Schneier spills the tea on the challenges that get in the way of secure software update for IoT devices [SchneierSecurity] ๐Ÿต. First, nobody has much incentive: manufacturers, vendors, and others on the supply chain aren't really motivated to issue updates for their devices ๐Ÿ˜ฉ. Second, parts of the software running on IoT devices are just a binary blob with no source code available. No source, no patches, periodt ๐Ÿ’€. Lastly, even when updates exist, users generally have to manually download and install them ๐Ÿ™ƒ. Users are never alerted about security updates, and plenty of them don't have the expertise to manually administer the updates they need.

The US Federal Trade Commission (FTC) staff report on "Internet of Things - Privacy & Security in a Connected World" [FTCreport] and the Article 29 Working Party's "Opinion 8/2014 on the Recent Developments on the Internet of Things" [Article29] also document the challenges of secure remote software update for IoT devices ๐Ÿ“š. They point out that even providing a software-update capability can add new vulnerabilities for constrained devices ๐Ÿ˜ฌ. For example, a buffer overflow in the implementation of a software update protocol (TR69) [TR69] and an expired certificate in a hub device [wink] show how the software-update process itself can introduce vulnerabilities. Yikes ๐Ÿซฃ.

Powerful IoT devices that run general-purpose operating systems can use sophisticated software-update mechanisms from the desktop world ๐Ÿ–ฅ๏ธโœจ. Resource-constrained devices, though, typically don't have any operating system and often aren't equipped with a memory management unit or similar tools ๐Ÿฅบ. So they might need more specialized solutions ๐Ÿงš.

An important requirement for secure software and firmware updates is source authentication ๐Ÿ”. Source authentication requires the resource-constrained things to implement public key signature verification algorithms. As stated in Section 5.1.1, resource-constrained things have limited computational capabilities and energy supply, which can hinder how much and how often they can do cryptographic processing ๐Ÿ”‹. On top of source authentication, software updates might also require confidential delivery over a secure (encrypted) channel ๐Ÿ”’. The complexity of broadcast encryption can force the use of point-to-point secure links. However, this increases the duration of a software update in a large system ๐Ÿข. Alternatively, it may force solutions where the software update is delivered to a gateway and then distributed to the rest of the system with a network key ๐Ÿšช. Sending large amounts of data that later need to be assembled and verified over a secure channel can eat up a lot of energy and computational resources ๐Ÿฝ๏ธ. Correct scheduling of updates is also a crucial design challenge ๐Ÿ“…. For example, a user of connected light bulbs would not want them to update and restart at night ๐ŸŒ™. More importantly, the user would not want all the lights to update at the same time ๐Ÿ’ก๐Ÿ˜ฑ.

Software updates in IoT systems are also needed to replace old and insecure cryptographic primitives ๐Ÿ”„. However, many IoT systems, some of which are already deployed, weren't designed with provisions for cryptographic agility ๐Ÿ˜”. For example, many devices come with a wireless radio that has an AES128 hardware coprocessor. These devices rely solely on the coprocessor for encrypting and authenticating messages ๐Ÿ”ง. A software update adding support for new cryptographic algorithms implemented solely in software might not fit on these devices due to limited memory, or it might drastically hinder their operational performance ๐Ÿ“‰. That can leave people stuck running old and insecure software ๐Ÿฅ€. So it's important to account for the fact that cryptographic algorithms will need to be updated, and to consider the following when planning for cryptographic agility ๐Ÿง :

  1. Would it be secure to use the existing cryptographic algorithms available on the device for updating with new cryptographic algorithms that are more secure?
  2. Will the new software-based implementation fit on the device given the limited resources?
  3. Would the normal operation of existing IoT applications on the device be severely hindered by the update?

Finally, let's highlight the previous and ongoing work on secure software and firmware updates at the IETF ๐ŸŽ€. [RFC4108] describes how Cryptographic Message Syntax (CMS) [RFC5652] can be used to protect firmware packages ๐Ÿ“ฆ. The IAB also organized a workshop to understand the challenges of secure software update for IoT devices, and a summary of the recommendations to the standards community that came out of those discussions has been documented [RFC8240] ๐Ÿ—‚๏ธ. A working group called Software Updates for Internet of Things (SUIT) [WG-SUIT] is currently working on a new specification to reflect the best current practices for firmware update, based on experience from IoT deployments ๐ŸŒธ. It's specifically working on describing an IoT firmware update architecture and specifying a manifest format that contains metadata about the firmware update package ๐Ÿ—๏ธ. And the Trusted Execution Environment Provisioning Working Group [WG-TEEP] aims to develop a protocol for lifecycle management of trusted applications running in the secure area of a processor (Trusted Execution Environment (TEE)) ๐Ÿ›ก๏ธโœจ.


5.5. End-of-Life ๐ŸŒ…

Like all commercial devices, IoT devices have a given useful lifetime โณ. The term "end-of-life" (EOL) is used by vendors or network operators to mark the point in time when they limit or end support for the IoT device ๐Ÿชฆ. This can be planned or unplanned. For example, the manufacturer goes bankrupt, the vendor just decides to abandon a product, or a network operator moves to a different type of networking technology ๐Ÿ˜ต. A user should still be able to use and perhaps even update the device, but that requires some form of authorization handover ๐Ÿค.

I know this might sound far-fetched given the commercial interests and market dynamics, but we've seen examples in the mobile world where devices stayed functional and up to date long after the original vendor stopped supporting them ๐Ÿ“ฑ. CyanogenMod for Android devices and OpenWrt for home routers are two such instances where users kept using and updating their devices even after the official EOL ๐Ÿ™Œ. Admittedly, it's not easy for an average user to install and configure their devices on their own ๐Ÿ˜…. With millions of IoT devices out there, simpler mechanisms are needed so users can add new trust anchors [RFC6024] and install software and firmware from other sources once a device is EOL ๐Ÿ”‘โœจ.


5.6. Verifying Device Behavior ๐Ÿ‘€

Users of new IoT appliances, like Internet-connected smart televisions, speakers, and cameras, are often unaware that these devices can undermine their privacy ๐Ÿ“บ๐ŸŽ™๏ธ. Recent revelations have shown that many IoT device vendors have been collecting sensitive private data through these connected appliances, with or without appropriate user warnings [cctv] ๐Ÿšจ. Not okay ๐Ÿ˜ค.

An IoT device's user or owner would like to monitor and verify its operational behavior ๐Ÿ”. For instance, the user might want to know if the device is connecting to the manufacturer's server for any reason. This feature, connecting to the manufacturer's server, may be necessary in some scenarios, such as during the initial configuration of the device ๐Ÿ› ๏ธ. However, the user should be kept aware of the data the device is sending back to the vendor ๐Ÿซต. For example, the user might want to know if their TV is sending data when they insert a new USB stick ๐Ÿ”Œ.

Providing this information to users in an understandable way is challenging ๐Ÿคฏ. That's because IoT devices are not only resource constrained in terms of computational capability, but also in terms of the user interface available ๐Ÿ“Ÿ. Also, the network infrastructure where these devices are deployed varies significantly from one user environment to another ๐Ÿ . So where and how this monitoring feature gets implemented still remains an open question โ“.

Manufacturer Usage Description (MUD) files [RFC8520] are perhaps a first step toward this kind of monitoring service ๐Ÿชœ. The idea behind MUD files is pretty simple: IoT devices disclose the location of their MUD file to the network during installation ๐Ÿ“. The network can then retrieve those files and learn about the intended behavior of the devices, as stated by the device manufacturer ๐Ÿ“œ. A network-monitoring service could then warn the user or owner if devices don't behave as expected ๐Ÿšฉ.

Many devices and software services that automatically learn and monitor the behavior of different IoT devices in a given network are commercially available ๐Ÿ›’. These monitoring devices and services can be configured by the user to limit network traffic and trigger alarms when unexpected operation of IoT devices is detected ๐Ÿšจ๐Ÿ’œ.


5.7. Testing: Bug Hunting and Vulnerabilities ๐Ÿ›

Given that IoT devices often have inadvertent vulnerabilities, both users and developers would want to test their IoT devices, networks, and systems extensively ๐Ÿงช. Still, the devices are resource constrained, made by multiple vendors, and some of them are very small. So devices might ship with very limited testing, which means bugs can stick around and get exploited later ๐Ÿ’€. This leads to two main types of challenges:

  1. It remains to be seen how the software-testing and quality-assurance mechanisms used in the desktop and mobile world will be applied to IoT devices, so end users can feel confident that the devices they buy are robust ๐Ÿคž. Bodies such as the European Cyber Security Organization (ECSO) [ECSO] are working on processes for security certification of IoT devices ๐Ÿ….
  2. It's also an open question how combining devices from multiple vendors might lead to dangerous network configurations. For example, what if a specific combination of devices triggers unexpected behavior? ๐Ÿ˜ณ It goes without saying that the security of the whole system is limited by its weakest point ๐Ÿ”—๐Ÿ’”.

5.8. Quantum-Resistance ๐Ÿ”ฎ

Okay bestie, so a LOT of IoT stuff being deployed right now is gonna keep running for YEARS ๐Ÿ˜ญ. And quantum computers are getting more advanced, so it's possible that large-scale ones will exist in the future and be used to do cryptanalysis on existing cryptographic algorithms and cipher suites ๐Ÿ’€. If that happens, two things go wrong. First, the stuff enabled by RSA or ECC, namely key exchange, public key encryption, and signatures, would not be secure anymore because of Shor's algorithm ๐Ÿ™…โ€โ™€๏ธ. Second, symmetric algorithms get weaker too. A block cipher with a key size of b bits only offers b/2 bits of security because of Grover's algorithm ๐Ÿ“‰.

This gets even more urgent with the so-called "harvest and decrypt" attack ๐Ÿซฃ. The attacker starts harvesting (storing) encrypted data today, before a quantum computer exists, and then decrypts it years later once one is available. This kind of attack is not new, btw. It was used in the VENONA project [venona-project] ๐Ÿ•ต๏ธโ€โ™€๏ธ. Lots of IoT devices going out today will stay operational for a decade or even longer ๐Ÿ•ฐ๏ธ. During that time, the digital signatures used to sign software updates might become obsolete, which makes securely updating IoT devices super tricky ๐Ÿ˜ฉ.

So this situation would require us to move to quantum-resistant alternatives ๐Ÿ›ก๏ธ, especially for key exchange, public key encryption, and signatures. [C2PQ] explains when quantum computers may become widely available and what steps are needed to move to cryptographic algorithms that stay secure even when quantum computers are around ๐Ÿ“š. Future planning is hard, ngl, but it may be a necessity for certain critical IoT deployments that are expected to last decades or more ๐Ÿ—๏ธ. Increasing the key size of the different algorithms is definitely an option โœ…, but it also adds extra computational overhead and network traffic ๐Ÿข. That would be undesirable in most scenarios ๐Ÿ™…. There have been recent advancements in quantum-resistant cryptography โœจ. For an extensive overview of existing quantum-resistant cryptography, check [ETSI-GR-QSC-001] ๐Ÿ”, and [RFC7696] gives guidelines for cryptographic algorithm agility ๐Ÿฆ‹.


5.9. Privacy Protection ๐ŸŽ€

People are eventually gonna be surrounded by hundreds of connected IoT devices ๐Ÿ โœจ. Even if the communication links are encrypted and protected, information about people can still get collected or processed for different purposes ๐Ÿ‘€. The fact that IoT devices near people can enable more pervasive monitoring can seriously hurt their privacy ๐Ÿ˜ญ. Picture this: a static presence sensor emits a packet based on whether people are nearby or not. Anyone who can observe that packet can gather super critical, privacy-sensitive info ๐Ÿšจ.

That kind of information about people is called personal data in the European Union (EU) or Personally identifiable information (PII) in the US ๐ŸŒ. The General Data Protection Regulation (GDPR) [GDPR] defines personal data as: "any information relating to an identified or identifiable natural person ('data subject'); an identifiable natural person is one who can be identified, directly or indirectly, in particular by reference to an identifier such as a name, an identification number, location data, an online identifier or to one or more factors specific to the physical, physiological, genetic, mental, economic, cultural or social identity of that natural person". ๐Ÿ“œ๐Ÿ’…

Ziegeldorf [Ziegeldorf] defines privacy in IoT as a threefold guarantee, and honestly it's giving very organized energy ๐Ÿ—‚๏ธโœจ:

  1. Awareness of the privacy risks imposed by IoT devices and services. This awareness is achieved by means of transparent practices by the data controller, i.e., the entity that is providing IoT devices and/or services.
  2. Individual control over the collection and processing of personal information by IoT devices and services.
  3. Awareness and control of the subsequent use and dissemination of personal information by data controllers to any entity outside the subject's personal control sphere. This point implies that the data controller must be accountable for its actions on the personal information.

Based on this definition, several threats to the privacy of users have been documented [Ziegeldorf] [RFC6973], especially for the IoT environment and its lifecycle ๐Ÿ˜ณ. Here's the lineup:

  1. Identification - refers to the identification of the users, their IoT devices, and generated data.
  2. Localization - relates to the capability of locating a user and even tracking them, e.g., by tracking MAC addresses in Wi-Fi or Bluetooth ๐Ÿ“.
  3. Profiling - is about creating a profile of the user and their preferences ๐Ÿ—ƒ๏ธ.
  4. Interaction - occurs when a user has been profiled and a given interaction is preferred, presenting (for example, visually) some information that discloses private information ๐Ÿซ .
  5. Lifecycle transitions - take place when devices are, for example, sold without properly removing private data ๐Ÿ—‘๏ธ.
  6. Inventory attacks - happen if specific information about IoT devices in possession of a user is disclosed ๐Ÿ“ฆ.
  7. Linkage - is about when information of two or more IoT systems (or other data sets) is combined so that a broader view of the personal data captured can be created ๐Ÿงฉ.

When IoT systems get deployed, these issues should be considered to make sure private data stays private ๐Ÿ”’. It gets especially hard in environments where multiple users with different privacy preferences interact with the same IoT devices ๐Ÿซฃ. For example, an IoT device controlled by user A (low privacy settings) might leak private information about another user B (high privacy settings). How to deal with these threats in practice is still an area of ongoing research ๐Ÿ”ฌ๐Ÿ’œ.


5.10. Reverse-Engineering Considerations ๐Ÿ•ต๏ธโ€โ™€๏ธ

Many IoT devices are resource constrained and often deployed in unattended environments ๐Ÿš๏ธ. Some of them can also be bought off the shelf or online without any credential-provisioning process ๐Ÿ›’. So an attacker can have direct access to the device and use advanced techniques to get info that a traditional black-box model doesn't consider ๐Ÿ˜ฌ. Examples of those techniques are side-channel attacks or code disassembly ๐Ÿ”ง. With these, the attacker can try to retrieve data such as:

  1. Long-term keys. These can be extracted by means of a side-channel attack or reverse engineering. If they're exposed, they might be used to attack devices deployed in other locations ๐Ÿ”‘๐Ÿ’€.
  2. Source code. Extracting source code might let the attacker find bugs or exploits to launch other types of attacks. The attacker might also just sell it ๐Ÿ’ธ.
  3. Proprietary algorithms. The attacker can analyze these and gain valuable know-how ๐Ÿง . They can also create copies of the product based on those algorithms, or modify them to perform more advanced attacks ๐Ÿ˜ˆ.
  4. Configuration or personal data. The attacker might be able to read personal data, e.g., healthcare data, that has been stored on a device ๐Ÿฅ.

One existing solution to prevent these data leaks is a secure element, a tamper-resistant device that can securely host applications and their confidential data ๐Ÿ›ก๏ธ๐Ÿ”. Another potential solution is a Physical Unclonable Function (PUF), which serves as a unique digital fingerprint of a hardware device ๐Ÿงฌ. PUFs can also enable other functionalities, such as secure key storage ๐Ÿ—๏ธ. Protecting against these data leakage patterns is not trivial, since devices are inherently resource-constrained ๐Ÿ˜ฎโ€๐Ÿ’จ. An open question is whether there are any viable techniques to protect IoT devices and the data in them in such an adversarial model โ“๐ŸŒธ.


5.11. Trustworthy IoT Operation ๐Ÿ›ก๏ธ๐Ÿ’–

Flaws in the design and implementation of IoT devices and networks can lead to security vulnerabilities ๐Ÿ™ˆ. A super common one is using well-known or easy-to-guess passwords to configure IoT devices ๐Ÿ”“. Many such compromised devices can be found on the Internet with tools like Shodan [shodan] ๐Ÿ”Ž. Once found, they can be exploited at scale, for example to launch DDoS attacks ๐Ÿ’ฅ. Dyn, a major DNS service provider, was hit by a DDoS attack from a huge IoT botnet made of thousands of compromised IP cameras [Dyn-Attack] ๐Ÿ“ท๐Ÿ˜ฑ. There are several open research questions here:

  1. How to avoid vulnerabilities in IoT devices that can lead to large-scale attacks?
  2. How to detect sophisticated attacks against IoT devices?
  3. How to prevent attackers from exploiting known vulnerabilities at a large scale?

Some ideas are being explored to tackle this. One approach relies on Manufacturer Usage Description (MUD) files [RFC8520] ๐Ÿ—‚๏ธ. As explained earlier, this proposal has IoT devices disclose the location of their MUD file to the network during installation ๐Ÿ“. The network can then (i) retrieve those files, (ii) learn from the manufacturers the intended usage of the devices (for example, which services they need to access), and then (iii) create suitable filters and firewall rules ๐Ÿงฑโœจ.


6. Conclusions and Next Steps ๐ŸŒˆ

This document gives IoT security researchers, system designers, and implementers an overview of security requirements in the IP-based Internet of Things ๐ŸŽ“. We talk through the security threats, the state of the art, and the challenges ๐Ÿง.

Plenty of steps have been taken over the last few years (summarized in Section 4.1), and many organizations are publishing general recommendations on how IoT should be secured (Section 4.3) ๐Ÿ™Œ. But there are still lots of challenges that need more attention ๐Ÿšง. The big ones are bootstrapping of security, group security, secure software updates, long-term security and quantum-resistance, privacy protection, data leakage prevention (where the data could be cryptographic keys, personal data, or even algorithms), and ensuring trustworthy IoT operation ๐Ÿ”‘๐Ÿซถ.

Authors of new IoT specifications and implementers need to think about how all the security challenges discussed in this document (and those that show up later) affect their work ๐Ÿง . The authors of IoT specifications need to put in a real effort, not only into addressing the security challenges but also into clearly documenting how they're addressed ๐Ÿ“. That helps cut down the chances of security vulnerabilities in the code written by implementers of those specifications ๐Ÿ’…๐Ÿ”ฅ.


7. Security Considerations ๐Ÿ”๐Ÿ’€

This entire memo deals with security issues. Like, the whole thing. Every single page ๐Ÿ˜ญ๐Ÿ”.


8. IANA Considerations ๐Ÿงš

This document has no IANA actions ๐ŸŒธ.


9. Informative References ๐Ÿ“š

[ACE-DTLS] Gerdes, S., Bergmann, O., Bormann, C., Selander, G., and
           L. Seitz, "Datagram Transport Layer Security (DTLS)
           Profile for Authentication and Authorization for
           Constrained Environments (ACE)", Work in Progress,
           draft-ietf-ace-dtls-authorize-08, April 2019.

okay the reading list keeps going and it's honestly so good ๐Ÿ“š๐Ÿ’– these are the receipts for everything we've been talking about ๐Ÿซถ

[RFC3833] Atkins, D. and R. Austein, "Threat Analysis of the Domain Name System (DNS)", RFC 3833, DOI 10.17487/RFC3833, August 2004, <https://www.rfc-editor.org/info/rfc3833>.

[RFC4016] Parthasarathy, M., "Protocol for Carrying Authentication and Network Access (PANA) Threat Analysis and Security Requirements", RFC 4016, DOI 10.17487/RFC4016, March 2005, <https://www.rfc-editor.org/info/rfc4016>.

[RFC4108] Housley, R., "Using Cryptographic Message Syntax (CMS) to Protect Firmware Packages", RFC 4108, DOI 10.17487/RFC4108, August 2005, <https://www.rfc-editor.org/info/rfc4108>.

[RFC4120] Neuman, C., Yu, T., Hartman, S., and K. Raeburn, "The Kerberos Network Authentication Service (V5)", RFC 4120, DOI 10.17487/RFC4120, July 2005, <https://www.rfc-editor.org/info/rfc4120>.

[RFC4422] Melnikov, A., Ed. and K. Zeilenga, Ed., "Simple Authentication and Security Layer (SASL)", RFC 4422, DOI 10.17487/RFC4422, June 2006, <https://www.rfc-editor.org/info/rfc4422>.

[RFC4555] Eronen, P., "IKEv2 Mobility and Multihoming Protocol (MOBIKE)", RFC 4555, DOI 10.17487/RFC4555, June 2006, <https://www.rfc-editor.org/info/rfc4555>.

[RFC4621] Kivinen, T. and H. Tschofenig, "Design of the IKEv2 Mobility and Multihoming (MOBIKE) Protocol", RFC 4621, DOI 10.17487/RFC4621, August 2006, <https://www.rfc-editor.org/info/rfc4621>.

[RFC4738] Ignjatic, D., Dondeti, L., Audet, F., and P. Lin, "MIKEY-RSA-R: An Additional Mode of Key Distribution in Multimedia Internet KEYing (MIKEY)", RFC 4738, DOI 10.17487/RFC4738, November 2006, <https://www.rfc-editor.org/info/rfc4738>.

[RFC4919] Kushalnagar, N., Montenegro, G., and C. Schumacher, "IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs): Overview, Assumptions, Problem Statement, and Goals", RFC 4919, DOI 10.17487/RFC4919, August 2007, <https://www.rfc-editor.org/info/rfc4919>.

[RFC4944] Montenegro, G., Kushalnagar, N., Hui, J., and D. Culler, "Transmission of IPv6 Packets over IEEE 802.15.4 Networks", RFC 4944, DOI 10.17487/RFC4944, September 2007, <https://www.rfc-editor.org/info/rfc4944>.

[RFC5191] Forsberg, D., Ohba, Y., Ed., Patil, B., Tschofenig, H., and A. Yegin, "Protocol for Carrying Authentication for Network Access (PANA)", RFC 5191, DOI 10.17487/RFC5191, May 2008, <https://www.rfc-editor.org/info/rfc5191>.

[RFC5652] Housley, R., "Cryptographic Message Syntax (CMS)", STD 70, RFC 5652, DOI 10.17487/RFC5652, September 2009, <https://www.rfc-editor.org/info/rfc5652>.

[RFC5713] Moustafa, H., Tschofenig, H., and S. De Cnodder, "Security Threats and Security Requirements for the Access Node Control Protocol (ANCP)", RFC 5713, DOI 10.17487/RFC5713, January 2010, <https://www.rfc-editor.org/info/rfc5713>.

[RFC5903] Fu, D. and J. Solinas, "Elliptic Curve Groups modulo a Prime (ECP Groups) for IKE and IKEv2", RFC 5903, DOI 10.17487/RFC5903, June 2010, <https://www.rfc-editor.org/info/rfc5903>.

[RFC6024] Reddy, R. and C. Wallace, "Trust Anchor Management Requirements", RFC 6024, DOI 10.17487/RFC6024, October 2010, <https://www.rfc-editor.org/info/rfc6024>.

[RFC6272] Baker, F. and D. Meyer, "Internet Protocols for the Smart Grid", RFC 6272, DOI 10.17487/RFC6272, June 2011, <https://www.rfc-editor.org/info/rfc6272>.

[RFC6347] Rescorla, E. and N. Modadugu, "Datagram Transport Layer Security Version 1.2", RFC 6347, DOI 10.17487/RFC6347, January 2012, <https://www.rfc-editor.org/info/rfc6347>.

[RFC6550] Winter, T., Ed., Thubert, P., Ed., Brandt, A., Hui, J., Kelsey, R., Levis, P., Pister, K., Struik, R., Vasseur, JP., and R. Alexander, "RPL: IPv6 Routing Protocol for Low-Power and Lossy Networks", RFC 6550, DOI 10.17487/RFC6550, March 2012, <https://www.rfc-editor.org/info/rfc6550>.

[RFC6551] Vasseur, JP., Ed., Kim, M., Ed., Pister, K., Dejean, N., and D. Barthel, "Routing Metrics Used for Path Calculation in Low-Power and Lossy Networks", RFC 6551, DOI 10.17487/RFC6551, March 2012, <https://www.rfc-editor.org/info/rfc6551>.

[RFC6568] Kim, E., Kaspar, D., and JP. Vasseur, "Design and Application Spaces for IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs)", RFC 6568, DOI 10.17487/RFC6568, April 2012, <https://www.rfc-editor.org/info/rfc6568>.

[RFC6690] Shelby, Z., "Constrained RESTful Environments (CoRE) Link Format", RFC 6690, DOI 10.17487/RFC6690, August 2012, <https://www.rfc-editor.org/info/rfc6690>.

[RFC6749] Hardt, D., Ed., "The OAuth 2.0 Authorization Framework", RFC 6749, DOI 10.17487/RFC6749, October 2012, <https://www.rfc-editor.org/info/rfc6749>.

[RFC6973] Cooper, A., Tschofenig, H., Aboba, B., Peterson, J., Morris, J., Hansen, M., and R. Smith, "Privacy Considerations for Internet Protocols", RFC 6973, DOI 10.17487/RFC6973, July 2013, <https://www.rfc-editor.org/info/rfc6973>.

[RFC7049] Bormann, C. and P. Hoffman, "Concise Binary Object Representation (CBOR)", RFC 7049, DOI 10.17487/RFC7049, October 2013, <https://www.rfc-editor.org/info/rfc7049>.

[RFC7228] Bormann, C., Ersue, M., and A. Keranen, "Terminology for Constrained-Node Networks", RFC 7228, DOI 10.17487/RFC7228, May 2014, <https://www.rfc-editor.org/info/rfc7228>.

[RFC7252] Shelby, Z., Hartke, K., and C. Bormann, "The Constrained Application Protocol (CoAP)", RFC 7252, DOI 10.17487/RFC7252, June 2014, <https://www.rfc-editor.org/info/rfc7252>.

[RFC7296] Kaufman, C., Hoffman, P., Nir, Y., Eronen, P., and T. Kivinen, "Internet Key Exchange Protocol Version 2 (IKEv2)", STD 79, RFC 7296, DOI 10.17487/RFC7296, October 2014, <https://www.rfc-editor.org/info/rfc7296>.

[RFC7401] Moskowitz, R., Ed., Heer, T., Jokela, P., and T. Henderson, "Host Identity Protocol Version 2 (HIPv2)", RFC 7401, DOI 10.17487/RFC7401, April 2015, <https://www.rfc-editor.org/info/rfc7401>.

[RFC7515] Jones, M., Bradley, J., and N. Sakimura, "JSON Web Signature (JWS)", RFC 7515, DOI 10.17487/RFC7515, May 2015, <https://www.rfc-editor.org/info/rfc7515>.

[RFC7516] Jones, M. and J. Hildebrand, "JSON Web Encryption (JWE)", RFC 7516, DOI 10.17487/RFC7516, May 2015, <https://www.rfc-editor.org/info/rfc7516>.

[RFC7517] Jones, M., "JSON Web Key (JWK)", RFC 7517, DOI 10.17487/RFC7517, May 2015, <https://www.rfc-editor.org/info/rfc7517>.

[RFC7519] Jones, M., Bradley, J., and N. Sakimura, "JSON Web Token (JWT)", RFC 7519, DOI 10.17487/RFC7519, May 2015, <https://www.rfc-editor.org/info/rfc7519>.

[RFC7520] Miller, M., "Examples of Protecting Content Using JSON Object Signing and Encryption (JOSE)", RFC 7520, DOI 10.17487/RFC7520, May 2015, <https://www.rfc-editor.org/info/rfc7520>.

[RFC7668] Nieminen, J., Savolainen, T., Isomaki, M., Patil, B., Shelby, Z., and C. Gomez, "IPv6 over BLUETOOTH(R) Low Energy", RFC 7668, DOI 10.17487/RFC7668, October 2015, <https://www.rfc-editor.org/info/rfc7668>.

[RFC7696] Housley, R., "Guidelines for Cryptographic Algorithm Agility and Selecting Mandatory-to-Implement Algorithms", BCP 201, RFC 7696, DOI 10.17487/RFC7696, November 2015, <https://www.rfc-editor.org/info/rfc7696>.

[RFC7744] Seitz, L., Ed., Gerdes, S., Ed., Selander, G., Mani, M., and S. Kumar, "Use Cases for Authentication and Authorization in Constrained Environments", RFC 7744, DOI 10.17487/RFC7744, January 2016, <https://www.rfc-editor.org/info/rfc7744>.

[RFC7815] Kivinen, T., "Minimal Internet Key Exchange Version 2 (IKEv2) Initiator Implementation", RFC 7815, DOI 10.17487/RFC7815, March 2016, <https://www.rfc-editor.org/info/rfc7815>.

[RFC7925] Tschofenig, H., Ed. and T. Fossati, "Transport Layer Security (TLS) / Datagram Transport Layer Security (DTLS) Profiles for the Internet of Things", RFC 7925, DOI 10.17487/RFC7925, July 2016, <https://www.rfc-editor.org/info/rfc7925>.

[RFC8046] Henderson, T., Ed., Vogt, C., and J. Arkko, "Host Mobility with the Host Identity Protocol", RFC 8046, DOI 10.17487/RFC8046, February 2017, <https://www.rfc-editor.org/info/rfc8046>.

[RFC8105] Mariager, P., Petersen, J., Ed., Shelby, Z., Van de Logt, M., and D. Barthel, "Transmission of IPv6 Packets over Digital Enhanced Cordless Telecommunications (DECT) Ultra Low Energy (ULE)", RFC 8105, DOI 10.17487/RFC8105, May 2017, <https://www.rfc-editor.org/info/rfc8105>.

[RFC8152] Schaad, J., "CBOR Object Signing and Encryption (COSE)", RFC 8152, DOI 10.17487/RFC8152, July 2017, <https://www.rfc-editor.org/info/rfc8152>.

[RFC8240] Tschofenig, H. and S. Farrell, "Report from the Internet of Things Software Update (IoTSU) Workshop 2016", RFC 8240, DOI 10.17487/RFC8240, September 2017, <https://www.rfc-editor.org/info/rfc8240>.

[RFC8259] Bray, T., Ed., "The JavaScript Object Notation (JSON) Data Interchange Format", STD 90, RFC 8259, DOI 10.17487/RFC8259, December 2017, <https://www.rfc-editor.org/info/rfc8259>.

[RFC8376] Farrell, S., Ed., "Low-Power Wide Area Network (LPWAN) Overview", RFC 8376, DOI 10.17487/RFC8376, May 2018, <https://www.rfc-editor.org/info/rfc8376>.

[RFC8387] Sethi, M., Arkko, J., Keranen, A., and H. Back, "Practical Considerations and Implementation Experiences in Securing Smart Object Networks", RFC 8387, DOI 10.17487/RFC8387, May 2018, <https://www.rfc-editor.org/info/rfc8387>.

[RFC8428] Jennings, C., Shelby, Z., Arkko, J., Keranen, A., and C. Bormann, "Sensor Measurement Lists (SenML)", RFC 8428, DOI 10.17487/RFC8428, August 2018, <https://www.rfc-editor.org/info/rfc8428>.

[RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, <https://www.rfc-editor.org/info/rfc8446>.

[RFC8520] Lear, E., Droms, R., and D. Romascanu, "Manufacturer Usage Description Specification", RFC 8520, DOI 10.17487/RFC8520, March 2019, <https://www.rfc-editor.org/info/rfc8520>.

[RG-T2TRG] IRTF, "Thing-to-Thing Research Group (T2TRG)", <https://datatracker.ietf.org/rg/t2trg/charter/>.

Okay bestie, the reference list is where all the receipts live ๐Ÿงพ๐Ÿ’– Every single source the document leans on is below, with its details exactly as written.

Acknowledgments ๐Ÿซถ

We gratefully acknowledge feedback and fruitful discussion with Tobias Heer, Robert Moskowitz, Thorsten Dahm, Hannes Tschofenig, Carsten Bormann, Barry Raveendran, Ari Keranen, Goran Selander, Fred Baker, Vicent Roca, Thomas Fossati, and Eliot Lear. We acknowledge the additional authors of a draft version of this document: Sye Loong Keoh, Rene Hummen, and Rene Struik. ๐Ÿ’œ

Authors' Addresses ๐Ÿ’…

Oscar Garcia-Morchon, Philips, High Tech Campus 5, Eindhoven, 5656 AE, The Netherlands Email: oscar.garcia-morchon@philips.com

Sandeep S. Kumar, Signify, High Tech Campus 7, Eindhoven, 5656 AE, The Netherlands Email: sandeep.kumar@signify.com

Mohit Sethi, Ericsson, Jorvas 02420, Finland Email: mohit@piuha.net โœจ

๐Ÿ“ฆ where this page comes from