diff options
Diffstat (limited to 'doc/rfc/rfc9063.txt')
-rw-r--r-- | doc/rfc/rfc9063.txt | 2395 |
1 files changed, 2395 insertions, 0 deletions
diff --git a/doc/rfc/rfc9063.txt b/doc/rfc/rfc9063.txt new file mode 100644 index 0000000..036bd15 --- /dev/null +++ b/doc/rfc/rfc9063.txt @@ -0,0 +1,2395 @@ + + + + +Internet Engineering Task Force (IETF) R. Moskowitz, Ed. +Request for Comments: 9063 HTT Consulting +Obsoletes: 4423 M. Komu +Category: Informational Ericsson +ISSN: 2070-1721 July 2021 + + + Host Identity Protocol Architecture + +Abstract + + This memo describes the Host Identity (HI) namespace, which provides + a cryptographic namespace to applications, and the associated + protocol layer, the Host Identity Protocol, located between the + internetworking and transport layers, that supports end-host + mobility, multihoming, and NAT traversal. Herein are presented the + basics of the current namespaces, their strengths and weaknesses, and + how a HI namespace will add completeness to them. The roles of the + HI namespace in the protocols are defined. + + This document obsoletes RFC 4423 and addresses the concerns raised by + the IESG, particularly that of crypto agility. The Security + Considerations section also describes measures against flooding + attacks, usage of identities in access control lists, weaker types of + identifiers, and trust on first use. This document incorporates + lessons learned from the implementations of RFC 7401 and goes further + to explain how HIP works as a secure signaling channel. + +Status of This Memo + + This document is not an Internet Standards Track specification; it is + published for informational purposes. + + This document is a product of the Internet Engineering Task Force + (IETF). It represents the consensus of the IETF community. It has + received public review and has been approved for publication by the + Internet Engineering Steering Group (IESG). Not all documents + approved by the IESG are candidates for any level of Internet + Standard; see Section 2 of RFC 7841. + + Information about the current status of this document, any errata, + and how to provide feedback on it may be obtained at + https://www.rfc-editor.org/info/rfc9063. + +Copyright Notice + + Copyright (c) 2021 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) in effect on the date of + publication of this document. Please review these documents + carefully, as they describe your rights and restrictions with respect + to this document. Code Components extracted from this document must + include Simplified BSD License text as described in Section 4.e of + the Trust Legal Provisions and are provided without warranty as + described in the Simplified BSD License. + + This document may contain material from IETF Documents or IETF + Contributions published or made publicly available before November + 10, 2008. The person(s) controlling the copyright in some of this + material may not have granted the IETF Trust the right to allow + modifications of such material outside the IETF Standards Process. + Without obtaining an adequate license from the person(s) controlling + the copyright in such materials, this document may not be modified + outside the IETF Standards Process, and derivative works of it may + not be created outside the IETF Standards Process, except to format + it for publication as an RFC or to translate it into languages other + than English. + +Table of Contents + + 1. Introduction + 2. Terminology + 2.1. Terms Common to Other Documents + 2.2. Terms Specific to This and Other HIP Documents + 3. Background + 3.1. A Desire for a Namespace for Computing Platforms + 4. Host Identity Namespace + 4.1. Host Identifiers + 4.2. Host Identity Hash (HIH) + 4.3. Host Identity Tag (HIT) + 4.4. Local Scope Identifier (LSI) + 4.5. Storing Host Identifiers in Directories + 5. New Stack Architecture + 5.1. On the Multiplicity of Identities + 6. Control Plane + 6.1. Base Exchange + 6.2. End-Host Mobility and Multihoming + 6.3. Rendezvous Mechanism + 6.4. Relay Mechanism + 6.5. Termination of the Control Plane + 7. Data Plane + 8. HIP and NATs + 8.1. HIP and Upper-Layer Checksums + 9. Multicast + 10. HIP Policies + 11. Security Considerations + 11.1. MitM Attacks + 11.2. Protection against Flooding Attacks + 11.3. HITs Used in ACLs + 11.4. Alternative HI Considerations + 11.5. Trust on First Use + 12. IANA Considerations + 13. Changes from RFC 4423 + 14. References + 14.1. Normative References + 14.2. Informative References + Appendix A. Design Considerations + A.1. Benefits of HIP + A.2. Drawbacks of HIP + A.3. Deployment and Adoption Considerations + A.3.1. Deployment Analysis + A.3.2. HIP in 802.15.4 Networks + A.3.3. HIP and Internet of Things + A.3.4. Infrastructure Applications + A.3.5. Management of Identities in a Commercial Product + A.4. Answers to NSRG Questions + Acknowledgments + Authors' Addresses + +1. Introduction + + The Internet has two important global namespaces: Internet Protocol + (IP) addresses and Domain Name Service (DNS) names. These two + namespaces have a set of features and abstractions that have powered + the Internet to what it is today. They also have a number of + weaknesses. Basically, since they are all we have, we try to do too + much with them. Semantic overloading and functionality extensions + have greatly complicated these namespaces. + + The proposed Host Identity namespace is also a global namespace, and + it fills an important gap between the IP and DNS namespaces. A Host + Identity conceptually refers to a computing platform, and there may + be multiple such Host Identities per computing platform (because the + platform may wish to present a different identity to different + communicating peers). The Host Identity namespace consists of Host + Identifiers (HI). There is exactly one Host Identifier for each Host + Identity (although there may be transient periods of time such as key + replacement when more than one identifier may be active). While this + text later talks about non-cryptographic Host Identifiers, the + architecture focuses on the case in which Host Identifiers are + cryptographic in nature. Specifically, the Host Identifier is the + public key of an asymmetric key pair. Each Host Identity uniquely + identifies a single host, i.e., no two hosts have the same Host + Identity. If two or more computing platforms have the same Host + Identifier, then they are instantiating a distributed host. The Host + Identifier can either be public (e.g., published in the DNS) or + unpublished. Client systems will tend to have both public and + unpublished Host Identifiers. + + There is a subtle but important difference between Host Identities + and Host Identifiers. An Identity refers to the abstract entity that + is identified. An Identifier, on the other hand, refers to the + concrete bit pattern that is used in the identification process. + + Although the Host Identifiers could be used in many authentication + systems, such as IKEv2 [RFC7296], the presented architecture + introduces a new protocol, called the Host Identity Protocol (HIP), + and a cryptographic exchange, called the HIP base exchange; see also + Section 6. HIP provides for limited forms of trust between systems, + enhances mobility, multihoming, and dynamic IP renumbering, aids in + protocol translation and transition, and reduces certain types of + denial-of-service (DoS) attacks. + + When HIP is used, the actual payload traffic between two HIP hosts is + typically, but not necessarily, protected with Encapsulating Security + Payload (ESP) [RFC7402]. The Host Identities are used to create the + needed ESP Security Associations (SAs) and to authenticate the hosts. + When ESP is used, the actual payload IP packets do not differ in any + way from standard ESP-protected IP packets. + + Much has been learned about HIP [RFC6538] since [RFC4423] was + published. This document expands Host Identities beyond their + original use to enable IP connectivity and security to enable general + interhost secure signaling at any protocol layer. The signal may + establish a security association between the hosts or simply pass + information within the channel. + +2. Terminology + +2.1. Terms Common to Other Documents + + +==========+===================================================+ + | Term | Explanation | + +==========+===================================================+ + | Public | The public key of an asymmetric cryptographic key | + | key | pair. Used as a publicly known identifier for | + | | cryptographic identity authentication. Public is | + | | a relative term here, ranging from "known to | + | | peers only" to "known to the world". | + +----------+---------------------------------------------------+ + | Private | The private or secret key of an asymmetric | + | key | cryptographic key pair. Assumed to be known only | + | | to the party identified by the corresponding | + | | public key. Used by the identified party to | + | | authenticate its identity to other parties. | + +----------+---------------------------------------------------+ + | Public | An asymmetric cryptographic key pair consisting | + | key pair | of public and private keys. For example, Rivest- | + | | Shamir-Adleman (RSA), Digital Signature Algorithm | + | | (DSA) and Elliptic Curve DSA (ECDSA) key pairs | + | | are such key pairs. | + +----------+---------------------------------------------------+ + | Endpoint | A communicating entity. For historical reasons, | + | | the term 'computing platform' is used in this | + | | document as a (rough) synonym for endpoint. | + +----------+---------------------------------------------------+ + + Table 1 + +2.2. Terms Specific to This and Other HIP Documents + + It should be noted that many of the terms defined herein are + tautologous, self-referential, or defined through circular reference + to other terms. This is due to the succinct nature of the + definitions. See the text elsewhere in this document and the base + specification [RFC7401] for more elaborate explanations. + + +==============+=============================================+ + | Term | Explanation | + +==============+=============================================+ + | Computing | An entity capable of communicating and | + | platform | computing, for example, a computer. See | + | | the definition of 'Endpoint', above. | + +--------------+---------------------------------------------+ + | HIP base | A cryptographic protocol; see also | + | exchange | Section 6. | + +--------------+---------------------------------------------+ + | HIP packet | An IP packet that carries a 'Host Identity | + | | Protocol' message. | + +--------------+---------------------------------------------+ + | Host | An abstract concept assigned to a | + | Identity | 'computing platform'. See 'Host | + | | Identifier', below. | + +--------------+---------------------------------------------+ + | Host | A public key used as a name for a Host | + | Identifier | Identity. | + +--------------+---------------------------------------------+ + | Host | A name space formed by all possible Host | + | Identity | Identifiers. | + | namespace | | + +--------------+---------------------------------------------+ + | Host | A protocol used to carry and authenticate | + | Identity | Host Identifiers and other information. | + | Protocol | | + +--------------+---------------------------------------------+ + | Host | The cryptographic hash used in creating the | + | Identity | Host Identity Tag from the Host Identifier. | + | Hash | | + +--------------+---------------------------------------------+ + | Host | A 128-bit datum created by taking a | + | Identity Tag | cryptographic hash over a Host Identifier | + | | plus bits to identify which hash was used. | + +--------------+---------------------------------------------+ + | Local Scope | A 32-bit datum denoting a Host Identity. | + | Identifier | | + +--------------+---------------------------------------------+ + | Public Host | A published or publicly known Host | + | Identifier | Identifier used as a public name for a Host | + | and Identity | Identity, and the corresponding Identity. | + +--------------+---------------------------------------------+ + | Unpublished | A Host Identifier that is not placed in any | + | Host | public directory, and the corresponding | + | Identifier | Host Identity. Unpublished Host Identities | + | and Identity | are typically short lived in nature, being | + | | often replaced and possibly used just once. | + +--------------+---------------------------------------------+ + | Rendezvous | A mechanism used to locate mobile hosts | + | Mechanism | based on their HIT. | + +--------------+---------------------------------------------+ + + Table 2 + +3. Background + + The Internet is built from three principal components: computing + platforms (endpoints), packet transport (i.e., internetworking) + infrastructure, and services (applications). The Internet exists to + service two principal components: people and robotic services + (silicon-based people, if you will). All these components need to be + named in order to interact in a scalable manner. Here we concentrate + on naming computing platforms and packet transport elements. + + There are two principal namespaces in use in the Internet for these + components: IP addresses, and Domain Names. Domain Names provide + hierarchically assigned names for some computing platforms and some + services. Each hierarchy is delegated from the level above; there is + no anonymity in Domain Names. Email, HTTP, and SIP addresses all + reference Domain Names. + + The IP addressing namespace has been overloaded to name both + interfaces (at Layer 3) and endpoints (for the endpoint-specific part + of Layer 3 and for Layer 4). In their role as interface names, IP + addresses are sometimes called "locators" and serve as an endpoint + within a routing topology. + + IP addresses are numbers that name networking interfaces, and + typically only when the interface is connected to the network. + Originally, IP addresses had long-term significance. Today, the vast + number of interfaces use ephemeral and/or non-unique IP addresses. + That is, every time an interface is connected to the network, it is + assigned an IP address. + + In the current Internet, the transport layers are coupled to the IP + addresses. Neither can evolve separately from the other. IPng + deliberations were strongly shaped by the decision that a + corresponding TCPng would not be created. + + There are three critical deficiencies with the current namespaces. + First, the establishing of initial contact and the sustaining of data + flows between two hosts can be challenging due to private address + realms and the ephemeral nature of addresses. Second, + confidentiality is not provided in a consistent, trustable manner. + Finally, authentication for systems and datagrams is not provided. + All of these deficiencies arise because computing platforms are not + well named with the current namespaces. + +3.1. A Desire for a Namespace for Computing Platforms + + An independent namespace for computing platforms could be used in + end-to-end operations independent of the evolution of the + internetworking layer and across the many internetworking layers. + This could support rapid readdressing of the internetworking layer + because of mobility, rehoming, or renumbering. + + If the namespace for computing platforms is based on public-key + cryptography, it can also provide authentication services. If this + namespace is locally created without requiring registration, it can + provide anonymity. + + Such a namespace (for computing platforms) and the names in it should + have the following characteristics: + + * The namespace should be applied to the IP 'kernel' or stack. The + IP stack is the 'component' between applications and the packet + transport infrastructure. + + * The namespace should fully decouple the internetworking layer from + the higher layers. The names should replace all occurrences of IP + addresses within applications (like in the Transport Control + Block, TCB). This replacement can be handled transparently for + legacy applications as the Local Scope Identifiers (LSIs) and HITs + are compatible with IPv4 and IPv6 addresses [RFC5338]. However, + HIP-aware applications require some modifications from the + developers, who may employ networking API extensions for HIP + [RFC6317]. + + * The introduction of the namespace should not mandate any + administrative infrastructure. Deployment must come from the + bottom up, in a pairwise deployment. + + * The names should have a fixed-length representation, for easy + inclusion in datagram headers and existing programming interfaces + (e.g., the TCB). + + * Using the namespace should be affordable when used in protocols. + This is primarily a packet size issue. There is also a + computational concern in affordability. + + * Name collisions should be avoided as much as possible. The + mathematics of the birthday paradox can be used to estimate the + chance of a collision in a given population and hash space. In + general, for a random hash space of size n bits, we would expect + to obtain a collision after approximately 1.2*sqrt(2^n) hashes + were obtained. For 64 bits, this number is roughly 4 billion. A + hash size of 64 bits may be too small to avoid collisions in a + large population; for example, there is a 1% chance of collision + in a population of 640M. For 100 bits (or more), we would not + expect a collision until approximately 2^50 (1 quadrillion) hashes + were generated. With the currently used hash size of 96 bits + [RFC7343], the figure is 2^48 (281 trillions). + + * The names should have a localized abstraction so that they can be + used in existing protocols and APIs. + + * It must be possible to create names locally. When such names are + not published, this can provide anonymity at the cost of making + resolvability very difficult. + + * The namespace should provide authentication services. + + * The names should be long-lived, but replaceable at any time. This + impacts access control lists; short lifetimes will tend to result + in tedious list maintenance or require a namespace infrastructure + for central control of access lists. + + In this document, the namespace approaching these ideas is called the + Host Identity namespace. Using Host Identities requires its own + protocol layer, the Host Identity Protocol, between the + internetworking and transport layers. The names are based on public- + key cryptography to supply authentication services. Properly + designed, it can deliver all of the above-stated requirements. + +4. Host Identity Namespace + + A name in the Host Identity namespace, a Host Identifier (HI), + represents a statistically globally unique name for naming any system + with an IP stack. This identity is normally associated with, but not + limited to, an IP stack. A system can have multiple identities, some + 'well known', some unpublished or 'anonymous'. A system may self- + assert its own identity, or may use a third-party authenticator like + DNSSEC [RFC4033], Pretty Good Privacy (PGP), or X.509 to 'notarize' + the identity assertion to another namespace. + + In theory, any name that can claim to be 'statistically globally + unique' may serve as a Host Identifier. In the HIP architecture, the + public key of a private-public key pair has been chosen as the Host + Identifier because it can be self-managed and it is computationally + difficult to forge. As specified in the Host Identity Protocol + specification [RFC7401], a public-key-based HI can authenticate the + HIP packets and protect them from man-in-the-middle (MitM) attacks. + Since authenticated datagrams are mandatory to provide much of HIP's + denial-of-service protection, the Diffie-Hellman exchange in HIP base + exchange has to be authenticated. Thus, only public-key HI and + authenticated HIP messages are supported in practice. + + In this document, some non-cryptographic forms of HI and HIP are + referenced, but cryptographic forms should be preferred because they + are more secure than their non-cryptographic counterparts. There has + been past research in challenge puzzles using non-cryptographic HI + for Radio Frequency IDentification (RFID), in an HIP exchange + tailored to the workings of such challenges (as described further in + [urien-rfid] and [urien-rfid-draft]). + +4.1. Host Identifiers + + Host Identity adds two main features to Internet protocols. The + first is a decoupling of the internetworking and transport layers; + see Section 5. This decoupling will allow for independent evolution + of the two layers. Additionally, it can provide end-to-end services + over multiple internetworking realms. The second feature is host + authentication. Because the Host Identifier is a public key, this + key can be used for authentication in security protocols like ESP. + + An identity is based on public-private key cryptography in HIP. The + Host Identity is referred to by its public component, the public key. + Thus, the name representing a Host Identity in the Host Identity + namespace, i.e., the Host Identifier, is the public key. In a way, + the possession of the private key defines the Identity itself. If + the private key is possessed by more than one node, the Identity can + be considered to be a distributed one. + + Architecturally, any other Internet naming convention might form a + usable base for Host Identifiers. However, non-cryptographic names + should only be used in situations of high trust and/or low risk. + That is any place where host authentication is not needed (no risk of + host spoofing) and no use of ESP. However, at least for + interconnected networks spanning several operational domains, the set + of environments where the risk of host spoofing allowed by non- + cryptographic Host Identifiers is acceptable is the null set. Hence, + the current HIP documents do not specify how to use any other types + of Host Identifiers but public keys. For instance, the Back to My + Mac service [RFC6281] from Apple comes pretty close to the + functionality of HIP, but unlike HIP, it is based on non- + cryptographic identifiers. + + The actual Host Identifiers are never directly used at the transport + or network layers. The corresponding Host Identifiers (public keys) + may be stored in various DNS or other directories as identified + elsewhere in this document, and they are passed in the HIP base + exchange. A Host Identity Tag (HIT) is used in other protocols to + represent the Host Identity. Another representation of the Host + Identities, the Local Scope Identifier (LSI), can also be used in + protocols and APIs. + +4.2. Host Identity Hash (HIH) + + The Host Identity Hash (HIH) is the cryptographic hash algorithm used + in producing the HIT from the HI. It is also the hash used + throughout HIP for consistency and simplicity. It is possible for + the two hosts in the HIP exchange to use different hash algorithms. + + Multiple HIHs within HIP are needed to address the moving target of + creation and eventual compromise of cryptographic hashes. This + significantly complicates HIP and offers an attacker an additional + downgrade attack that is mitigated in HIP [RFC7401]. + +4.3. Host Identity Tag (HIT) + + A Host Identity Tag (HIT) is a 128-bit representation for a Host + Identity. Due to its size, it is suitable for use in the existing + sockets API in the place of IPv6 addresses (e.g., in sockaddr_in6 + structure, sin6_addr member) without modifying applications. It is + created from an HIH, an IPv6 prefix [RFC7343], and a hash identifier. + There are two advantages of using the HIT over using the Host + Identifier in protocols. First, its fixed length makes for easier + protocol coding and also better manages the packet size cost of this + technology. Second, it presents the identity in a consistent format + to the protocol independent of the cryptographic algorithms used. + + In essence, the HIT is a hash over the public key. As such, two + algorithms affect the generation of a HIT: the public-key algorithm + of the HI and the used HIH. The two algorithms are encoded in the + bit presentation of the HIT. As the two communicating parties may + support different algorithms, [RFC7401] defines the minimum set for + interoperability. For further interoperability, the Responder may + store its keys in DNS records, and thus the Initiator may have to + couple destination HITs with appropriate source HITs according to + matching HIH. + + In the HIP packets, the HITs identify the sender and recipient of a + packet. Consequently, a HIT should be unique in the whole IP + universe as long as it is being used. In the extremely rare case of + a single HIT mapping to more than one Host Identity, the Host + Identifiers (public keys) will make the final difference. If there + is more than one public key for a given node, the HIT acts as a hint + for the correct public key to use. + + Although it may be rare for an accidental collision to cause a single + HIT mapping to more than one Host Identity, it may be the case that + an attacker succeeds to find, by brute force or algorithmic weakness, + a second Host Identity hashing to the same HIT. This type of attack + is known as a preimage attack, and the resistance to finding a second + Host Identifier (public key) that hashes to the same HIT is called + second preimage resistance. Second preimage resistance in HIP is + based on the hash algorithm strength and the length of the hash + output used. Through HIPv2 [RFC7401], this resistance is 96 bits + (less than the 128-bit width of an IPv6 address field due to the + presence of the Overlay Routable Cryptographic Hash Identifiers + (ORCHID) prefix [RFC7343]). 96 bits of resistance was considered + acceptable strength during the design of HIP but may eventually be + considered insufficient for the threat model of an envisioned + deployment. One possible mitigation would be to augment the use of + HITs in the deployment with the HIs themselves (and mechanisms to + securely bind the HIs to the HITs), so that the HI becomes the final + authority. It also may be possible to increase the difficulty of a + brute force attack by making the generation of the HI more + computationally difficult, such as the hash extension approach of + Secure Neighbor Discovery Cryptographically Generated Addresses + (CGAs) [RFC3972], although the HIP specifications through HIPv2 do + not provide such a mechanism. Finally, deployments that do not use + ORCHIDs (such as certain types of overlay networks) might also use + the full 128-bit width of an IPv6 address field for the HIT. + +4.4. Local Scope Identifier (LSI) + + An LSI is a 32-bit localized representation for a Host Identity. Due + to its size, it is suitable for use in the existing sockets API in + the place of IPv4 addresses (e.g., in sockaddr_in structure, sin_addr + member) without modifying applications. The purpose of an LSI is to + facilitate using Host Identities in existing APIs for IPv4-based + applications. LSIs are never transmitted on the wire; when an + application sends data using a pair of LSIs, the HIP layer (or + sockets handler) translates the LSIs to the corresponding HITs, and + vice versa for the receiving of data. Besides facilitating HIP-based + connectivity for legacy IPv4 applications, the LSIs are beneficial in + two other scenarios [RFC6538]. + + In the first scenario, two IPv4-only applications reside on two + separate hosts connected by IPv6-only network. With HIP-based + connectivity, the two applications are able to communicate despite + the mismatch in the protocol families of the applications and the + underlying network. The reason is that the HIP layer translates the + LSIs originating from the upper layers into routable IPv6 locators + before delivering the packets on the wire. + + The second scenario is the same as the first one, but with the + difference that one of the applications supports only IPv6. Now two + obstacles hinder the communication between the applications: the + addressing families of the two applications differ, and the + application residing at the IPv4-only side is again unable to + communicate because of the mismatch between addressing families of + the application (IPv4) and network (IPv6). With HIP-based + connectivity for applications, this scenario works; the HIP layer can + choose whether to translate the locator of an incoming packet into an + LSI or HIT. + + Effectively, LSIs improve IPv6 interoperability at the network layer + as described in the first scenario and at the application layer as + depicted in the second example. The interoperability mechanism + should not be used to avoid transition to IPv6; the authors firmly + believe in IPv6 adoption and encourage developers to port existing + IPv4-only applications to use IPv6. However, some proprietary, + closed-source, IPv4-only applications may never see the daylight of + IPv6, and the LSI mechanism is suitable for extending the lifetime of + such applications even in IPv6-only networks. + + The main disadvantage of an LSI is its local scope. Applications may + violate layering principles and pass LSIs to each other in + application-layer protocols. As the LSIs are valid only in the + context of the local host, they may represent an entirely different + host when passed to another host. However, it should be emphasized + here that the LSI concept is effectively a host-based NAT and does + not introduce any more issues than the prevalent middlebox-based NATs + for IPv4. In other words, the applications violating layering + principles are already broken by the NAT boxes that are ubiquitously + deployed. + +4.5. Storing Host Identifiers in Directories + + The public Host Identifiers should be stored in DNS; the unpublished + Host Identifiers should not be stored anywhere (besides the + communicating hosts themselves). The (public) HI along with the + supported HIHs are stored in a new Resource Record (RR) type. This + RR type is defined in the HIP DNS extension [RFC8005]. + + Alternatively, or in addition to storing Host Identifiers in the DNS, + they may be stored in various other directories. For instance, a + directory based on the Lightweight Directory Access Protocol (LDAP) + or a Public Key Infrastructure (PKI) [RFC8002] may be used. + Alternatively, Distributed Hash Tables (DHTs) [RFC6537] have + successfully been utilized [RFC6538]. Such a practice may allow them + to be used for purposes other than pure host identification. + + Some types of applications may cache and use Host Identifiers + directly, while others may indirectly discover them through a + symbolic host name (such as a Fully Qualified Domain Name (FQDN)) + look up from a directory. Even though Host Identities can have a + substantially longer lifetime associated with them than routable IP + addresses, directories may be a better approach to manage the + lifespan of Host Identities. For example, an LDAP-based directory or + DHT can be used for locally published identities whereas DNS can be + more suitable for public advertisement. + +5. New Stack Architecture + + One way to characterize Host Identity is to compare the proposed HI- + based architecture with the current one. Using the terminology from + the IRTF Name Space Research Group Report [nsrg-report] and, e.g., + the document on "Endpoints and Endpoint Names" [chiappa-endpoints], + the IP addresses currently embody the dual role of locators and + endpoint identifiers. That is, each IP address names a topological + location in the Internet, thereby acting as a routing direction + vector, or locator. At the same time, the IP address names the + physical network interface currently located at the point-of- + attachment, thereby acting as an endpoint name. + + In the HIP architecture, the endpoint names and locators are + separated from each other. IP addresses continue to act as locators. + The Host Identifiers take the role of endpoint identifiers. It is + important to understand that the endpoint names based on Host + Identities are slightly different from interface names; a Host + Identity can be simultaneously reachable through several interfaces. + + The difference between the bindings of the logical entities are + illustrated in Figure 1. The left side illustrates the current TCP/ + IP architecture and the right side the HIP-based architecture. + + Transport ---- Socket Transport ------ Socket + association | association | + | | + | | + | | + Endpoint | Endpoint --- Host Identity + \ | | + \ | | + \ | | + \ | | + Location --- IP address Location --- IP address + + Figure 1 + + Architecturally, HIP provides for a different binding of transport- + layer protocols. That is, the transport-layer associations, i.e., + TCP connections and UDP associations, are no longer bound to IP + addresses but rather to Host Identities. In practice, the Host + Identities are exposed as LSIs and HITs for legacy applications and + the transport layer to facilitate backward compatibility with + existing networking APIs and stacks. + + The HIP layer is logically located at Layer 3.5, between the + transport and network layers, in the networking stack. It acts as + shim layer for transport data utilizing LSIs or HITs but leaves other + data intact. The HIP layer translates between the two forms of HIP + identifiers originating from the transport layer into routable IPv4/ + IPv6 addresses for the network layer and vice versa for the reverse + direction. + +5.1. On the Multiplicity of Identities + + A host may have multiple identities both at the client and server + side. This raises some additional concerns that are addressed in + this section. + + For security reasons, it may be a bad idea to duplicate the same Host + Identity on multiple hosts because the compromise of a single host + taints the identities of the other hosts. Management of machines + with identical Host Identities may also present other challenges and, + therefore, it is advisable to have a unique identity for each host. + + At the server side, utilizing DNS is a better alternative than a + shared Host Identity to implement load balancing. A single FQDN + entry can be configured to refer to multiple Host Identities. Each + of the FQDN entries can be associated with the related locators or + with a single shared locator in the case the servers are using the + same HIP rendezvous server (Section 6.3) or HIP relay server + (Section 6.4). + + Instead of duplicating identities, HIP opportunistic mode can be + employed, where the Initiator leaves out the identifier of the + Responder when initiating the key exchange and learns it upon the + completion of the exchange. The trade-offs are related to lowered + security guarantees, but a benefit of the approach is to avoid the + publishing of Host Identifiers in any directories [komu-leap]. Since + many public servers already employ DNS as their directory, + opportunistic mode may be more suitable for, e.g., peer-to-peer + connectivity. It is also worth noting that opportunistic mode is + also required in practice when anycast IP addresses would be utilized + as locators. + + HIP opportunistic mode could be utilized in association with HIP + rendezvous servers or HIP relay servers [komu-diss]. In such a + scenario, the Initiator sends an I1 message with a wildcard + destination HIT to the locator of a HIP rendezvous/relay server. + When the receiving rendezvous/relay server is serving multiple + registered Responders, the server can choose the ultimate destination + HIT, thus acting as a HIP-based load balancer. However, this + approach is still experimental and requires further investigation. + + At the client side, a host may have multiple Host Identities, for + instance, for privacy purposes. Another reason can be that the + person utilizing the host employs different identities for different + administrative domains as an extra security measure. If a HIP-aware + middlebox, such as a HIP-based firewall, is on the path between the + client and server, the user or the underlying system should carefully + choose the correct identity to avoid the firewall unnecessarily + dropping HIP-based connectivity [komu-diss]. + + Similarly, a server may have multiple Host Identities. For instance, + a single web server may serve multiple different administrative + domains. Typically, the distinction is accomplished based on the DNS + name, but also the Host Identity could be used for this purpose. + However, a more compelling reason to employ multiple identities is + the HIP-aware firewall that is unable to see the HTTP traffic inside + the encrypted IPsec tunnel. In such a case, each service could be + configured with a separate identity, thus allowing the firewall to + segregate the different services of the single web server from each + other [lindqvist-enterprise]. + +6. Control Plane + + HIP decouples the control and data planes from each other. Two end- + hosts initialize the control plane using a key exchange procedure + called the base exchange. The procedure can be assisted by HIP- + specific infrastructural intermediaries called rendezvous or relay + servers. In the event of IP address changes, the end-hosts sustain + control plane connectivity with mobility and multihoming extensions. + Eventually, the end-hosts terminate the control plane and remove the + associated state. + +6.1. Base Exchange + + The base exchange is a key exchange procedure that authenticates the + Initiator and Responder to each other using their public keys. + Typically, the Initiator is the client-side host and the Responder is + the server-side host. The roles are used by the state machine of a + HIP implementation but then discarded upon successful completion. + + The exchange consists of four messages during which the hosts also + create symmetric keys to protect the control plane with Hash-based + Message Authentication Codes (HMACs). The keys can be also used to + protect the data plane, and IPsec ESP [RFC7402] is typically used as + the data plane protocol, albeit HIP can also accommodate others. + Both the control and data planes are terminated using a closing + procedure consisting of two messages. + + In addition, the base exchange also includes a computational puzzle + [RFC7401] that the Initiator must solve. The Responder chooses the + difficulty of the puzzle, which permits the Responder to delay new + incoming Initiators according to local policies, for instance, when + the Responder is under heavy load. The puzzle can offer some + resiliency against DoS attacks because the design of the puzzle + mechanism allows the Responder to remain stateless until the very end + of the base exchange [aura-dos]. HIP puzzles have also been studied + under steady-state DDoS attacks [beal-dos], on multiple adversary + models with varying puzzle difficulties [tritilanunt-dos], and with + ephemeral Host Identities [komu-mitigation]. + +6.2. End-Host Mobility and Multihoming + + HIP decouples the transport from the internetworking layer and binds + the transport associations to the Host Identities (actually through + either the HIT or LSI). After the initial key exchange, the HIP + layer maintains transport-layer connectivity and data flows using its + extensions for mobility [RFC8046] and multihoming [RFC8047]. + Consequently, HIP can provide for a degree of internetworking + mobility and multihoming at a low infrastructure cost. HIP mobility + includes IP address changes (via any method) to either party. Thus, + a system is considered mobile if its IP address can change + dynamically for any reason like PPP, DHCP, IPv6 prefix reassignments, + or a NAT device remapping its translation. Likewise, a system is + considered multihomed if it has more than one globally routable IP + address at the same time. HIP links IP addresses together when + multiple IP addresses correspond to the same Host Identity. If one + address becomes unusable, or a more preferred address becomes + available, existing transport associations can easily be moved to + another address. + + When a mobile node moves while communication is ongoing, address + changes are rather straightforward. The mobile node sends a HIP + UPDATE packet to inform the peer of the new address(es), and the peer + then verifies that the mobile node is reachable through these + addresses. This way, the peer can avoid flooding attacks as further + discussed in Section 11.2. + +6.3. Rendezvous Mechanism + + Establishing a contact to a mobile, moving node is slightly more + involved. In order to start the HIP exchange, the Initiator node has + to know how to reach the mobile node. For instance, the mobile node + can employ Dynamic DNS [RFC2136] to update its reachability + information in the DNS. To avoid the dependency to DNS, HIP provides + its own HIP-specific alternative: the HIP rendezvous mechanism as + defined in the HIP rendezvous specification [RFC8004]. + + Using the HIP rendezvous extensions, the mobile node keeps the + rendezvous infrastructure continuously updated with its current IP + address(es). The mobile nodes trusts the rendezvous mechanism in + order to properly maintain their HIT and IP address mappings. + + The rendezvous mechanism is especially useful in scenarios where both + of the nodes are expected to change their address at the same time. + In such a case, the HIP UPDATE packets will cross each other in the + network and never reach the peer node. + +6.4. Relay Mechanism + + The HIP relay mechanism [RFC9028] is an alternative to the HIP + rendezvous mechanism. The HIP relay mechanism is more suitable for + IPv4 networks with NATs because a HIP relay can forward all control + and data plane communications in order to guarantee successful NAT + traversal. + +6.5. Termination of the Control Plane + + The control plane between two hosts is terminated using a secure two- + message exchange as specified in base exchange specification + [RFC7401]. The related state (i.e., host associations) should be + removed upon successful termination. + +7. Data Plane + + The encapsulation format for the data plane used for carrying the + application-layer traffic can be dynamically negotiated during the + key exchange. For instance, HICCUPS extensions [RFC6078] define one + way to transport application-layer datagrams directly over the HIP + control plane, protected by asymmetric key cryptography. Also, + Secure Real-time Transport Protocol (SRTP) has been considered as the + data encapsulation protocol [hip-srtp]. However, the most widely + implemented method is the Encapsulated Security Payload (ESP) + [RFC7402] that is protected by symmetric keys derived during the key + exchange. ESP Security Associations (SAs) offer both confidentiality + and integrity protection, of which the former can be disabled during + the key exchange. In the future, other ways of transporting + application-layer data may be defined. + + The ESP SAs are established and terminated between the Initiator and + the Responder hosts. Usually, the hosts create at least two SAs, one + in each direction (Initiator-to-Responder SA and Responder-to- + Initiator SA). If the IP addresses of either host changes, the HIP + mobility extensions can be used to renegotiate the corresponding SAs. + + On the wire, the difference in the use of identifiers between the HIP + control and data planes is that the HITs are included in all control + packets, but not in the data plane when ESP is employed. Instead, + the ESP employs Security Parameter Index (SPI) numbers that act as + compressed HITs. Any HIP-aware middlebox (for instance, a HIP-aware + firewall) interested in the ESP-based data plane should keep track + between the control and data plane identifiers in order to associate + them with each other. + + Since HIP does not negotiate any SA lifetimes, all lifetimes are + subject to local policy. The only lifetimes a HIP implementation + must support are sequence number rollover (for replay protection) and + SA timeout. An SA times out if no packets are received using that + SA. Implementations may support lifetimes for the various ESP + transforms and other data plane protocols. + +8. HIP and NATs + + Passing packets between different IP addressing realms requires + changing IP addresses in the packet header. This may occur, for + example, when a packet is passed between the public Internet and a + private address space, or between IPv4 and IPv6 networks. The + address translation is usually implemented as Network Address + Translation (NAT) [RFC3022] or the historic NAT Protocol Translation + (NAT-PT) [RFC2766]. + + In a network environment where identification is based on the IP + addresses, identifying the communicating nodes is difficult when NATs + are employed because private address spaces are overlapping. In + other words, two hosts cannot be distinguished from each other solely + based on their IP addresses. With HIP, the transport-layer endpoints + (i.e., applications) are bound to unique Host Identities rather than + overlapping private addresses. This allows two endpoints to + distinguish one other even when they are located in different private + address realms. Thus, the IP addresses are used only for routing + purposes and can be changed freely by NATs when a packet between two + HIP-capable hosts traverses through multiple private address realms. + + NAT traversal extensions for HIP [RFC9028] can be used to realize the + actual end-to-end connectivity through NAT devices. To support basic + backward compatibility with legacy NATs, the extensions encapsulate + both HIP control and data planes in UDP. The extensions define + mechanisms for forwarding the two planes through an intermediary host + called HIP relay and procedures to establish direct end-to-end + connectivity by penetrating NATs. Besides this "native" NAT + traversal mode for HIP, other NAT traversal mechanisms have been + successfully utilized, such as Teredo [RFC4380] (as described in + further detail in [varjonen-split]). + + Besides legacy NATs, a HIP-aware NAT has been designed and + implemented [ylitalo-spinat]. For a HIP-based flow, a HIP-aware NAT + or HIP-aware historic NAT-PT system tracks the mapping of HITs, and + the corresponding ESP SPIs, to an IP address. The NAT system has to + learn mappings both from HITs and from SPIs to IP addresses. Many + HITs (and SPIs) can map to a single IP address on a NAT, simplifying + connections on address-poor NAT interfaces. The NAT can gain much of + its knowledge from the HIP packets themselves; however, some NAT + configuration may be necessary. + +8.1. HIP and Upper-Layer Checksums + + There is no way for a host to know if any of the IP addresses in an + IP header are the addresses used to calculate the TCP checksum. That + is, it is not feasible to calculate the TCP checksum using the actual + IP addresses in the pseudo header; the addresses received in the + incoming packet are not necessarily the same as they were on the + sending host. Furthermore, it is not possible to recompute the + upper-layer checksums in the NAT/NAT-PT system, since the traffic is + ESP protected. Consequently, the TCP and UDP checksums are + calculated using the HITs in the place of the IP addresses in the + pseudo header. Furthermore, only the IPv6 pseudo header format is + used. This provides for IPv4 / IPv6 protocol translation. + +9. Multicast + + A number of studies investigating HIP-based multicast have been + published (including [shields-hip], [zhu-hip], [amir-hip], + [kovacshazi-host], and [zhu-secure]). In particular, so-called Bloom + filters, which allow the compression of multiple labels into small + data structures, may be a promising way forward [sarela-bloom]. + However, the different schemes have not been adopted by the HIP + working group (nor the HIP research group in the IRTF), so the + details are not further elaborated here. + +10. HIP Policies + + There are a number of variables that influence the HIP exchange that + each host must support. All HIP implementations should support at + least two HIs, one to publish in DNS or a similar directory service + and an unpublished one for anonymous usage (that should expect to be + rotated frequently in order to disrupt linkability and/or + trackability). Although unpublished HIs will rarely be used as + Responder HIs, they are likely to be common for Initiators. As + stated in [RFC7401], "all HIP implementations MUST support more than + one simultaneous HI, at least one of which SHOULD be reserved for + anonymous usage", and "support for more than two HIs is RECOMMENDED". + This provides new challenges for systems or users to decide which + type of HI to expose when they start a new session. + + Opportunistic mode (where the Initiator starts a HIP exchange without + prior knowledge of the Responder's HI) presents a security trade-off. + At the expense of being subject to MitM attacks, the opportunistic + mode allows the Initiator to learn the identity of the Responder + during communication rather than from an external directory. + Opportunistic mode can be used for registration to HIP-based services + [RFC8003] (i.e., utilized by HIP for its own internal purposes) or by + the application layer [komu-leap]. For security reasons, especially + the latter requires some involvement from the user to accept the + identity of the Responder similar to how the Secure Shell (SSH) + protocol prompts the user when connecting to a server for the first + time [pham-leap]. In practice, this can be realized in end-host- + based firewalls in the case of legacy applications [karvonen-usable] + or with native APIs for HIP APIs [RFC6317] in the case of HIP-aware + applications. + + As stated in [RFC7401]: + + | Initiators MAY use a different HI for different Responders to + | provide basic privacy. Whether such private HIs are used + | repeatedly with the same Responder, and how long these HIs are + | used, are decided by local policy and depend on the privacy + | requirements of the Initiator. + + According to [RFC7401]: + + | Responders that only respond to selected Initiators require an + | Access Control List (ACL), representing for which hosts they + | accept HIP base exchanges, and the preferred transport format and + | local lifetimes. Wildcarding SHOULD be supported for such ACLs, + | and also for Responders that offer public or anonymous services. + +11. Security Considerations + + This section includes discussion on some issues and solutions related + to security in the HIP architecture. + +11.1. MitM Attacks + + HIP takes advantage of the Host Identity paradigm to provide secure + authentication of hosts and to provide a fast key exchange for ESP. + HIP also attempts to limit the exposure of the host to various + denial-of-service (DoS) and man-in-the-middle (MitM) attacks. In so + doing, HIP itself is subject to its own DoS and MitM attacks that + potentially could be more damaging to a host's ability to conduct + business as usual. + + Resource exhausting DoS attacks take advantage of the cost of setting + up a state for a protocol on the Responder compared to the + 'cheapness' on the Initiator. HIP allows a Responder to increase the + cost of the start of state on the Initiator and makes an effort to + reduce the cost to the Responder. This is done by having the + Responder start the authenticated Diffie-Hellman exchange instead of + the Initiator, making the HIP base exchange four packets long. The + first packet sent by the Responder can be prebuilt to further + mitigate the costs. This packet also includes a computational puzzle + that can optionally be used to further delay the Initiator, for + instance, when the Responder is overloaded. The details are + explained in the base exchange specification [RFC7401]. + + MitM attacks are difficult to defend against without third-party + authentication. A skillful MitM could easily handle all parts of the + HIP base exchange, but HIP indirectly provides the following + protection from a MitM attack. If the Responder's HI is retrieved + from a signed DNS zone or securely obtained by some other means, the + Initiator can use this to authenticate the signed HIP packets. + Likewise, if the Initiator's HI is in a secure DNS zone, the + Responder can retrieve it and validate the signed HIP packets. + However, since an Initiator may choose to use an unpublished HI, it + knowingly risks a MitM attack. The Responder may choose not to + accept a HIP exchange with an Initiator using an unknown HI. + + Other types of MitM attacks against HIP can be mounted using ICMP + messages that can be used to signal about problems. As an overall + guideline, the ICMP messages should be considered as unreliable + "hints" and should be acted upon only after timeouts. The exact + attack scenarios and countermeasures are described in full detail in + the base exchange specification [RFC7401]. + + A MitM attacker could try to replay older I1 or R1 messages using + weaker cryptographic algorithms as described in Section 4.1.4 of + [RFC7401]. The base exchange has been augmented to deal with such an + attack by restarting on the detection of the attack. At worst, this + would only lead to a situation in which the base exchange would never + finish (or would be aborted after some retries). As a drawback, this + leads to a six-way base exchange, which may seem bad at first. + However, since this only occurs in an attack scenario and since the + attack can be handled (so it is not interesting to mount anymore), we + assume the subsequent messages do not represent a security threat. + Since the MitM cannot be successful with a downgrade attack, these + sorts of attacks will only occur as 'nuisance' attacks. So, the base + exchange would still be usually just four packets even though + implementations must be prepared to protect themselves against the + downgrade attack. + + In HIP, the Security Association for ESP is indexed by the SPI; the + source address is always ignored, and the destination address may be + ignored as well. Therefore, HIP-enabled ESP is IP address + independent. This might seem to make attacking easier, but ESP with + replay protection is already as well protected as possible, and the + removal of the IP address as a check should not increase the exposure + of ESP to DoS attacks. + +11.2. Protection against Flooding Attacks + + Although the idea of informing about address changes by simply + sending packets with a new source address appears appealing, it is + not secure enough. That is, even if HIP does not rely on the source + address for anything (once the base exchange has been completed), it + appears to be necessary to check a mobile node's reachability at the + new address before actually sending any larger amounts of traffic to + the new address. + + Blindly accepting new addresses would potentially lead to flooding + DoS attacks against third parties [RFC4225]. In a distributed + flooding attack, an attacker opens high-volume HIP connections with a + large number of hosts (using unpublished HIs) and then claims to all + of these hosts that it has moved to a target node's IP address. If + the peer hosts were to simply accept the move, the result would be a + packet flood to the target node's address. To prevent this type of + attack, HIP mobility extensions include a return routability check + procedure where the reachability of a node is separately checked at + each address before using the address for larger amounts of traffic. + + A credit-based authorization approach for "Host Mobility with the + Host Identity Protocol" [RFC8046] can be used between hosts for + sending data prior to completing the address tests. Otherwise, if + HIP is used between two hosts that fully trust each other, the hosts + may optionally decide to skip the address tests. However, such + performance optimization must be restricted to peers that are known + to be trustworthy and capable of protecting themselves from malicious + software. + +11.3. HITs Used in ACLs + + At end-hosts, HITs can be used in IP-based access control lists at + the application and network layers. At middleboxes, HIP-aware + firewalls [lindqvist-enterprise] can use HITs or public keys to + control both ingress and egress access to networks or individual + hosts, even in the presence of mobile devices because the HITs and + public keys are topology independent. As discussed earlier in + Section 7, once a HIP session has been established, the SPI value in + an ESP packet may be used as an index, indicating the HITs. In + practice, firewalls can inspect HIP packets to learn of the bindings + between HITs, SPI values, and IP addresses. They can even explicitly + control ESP usage, dynamically opening ESP only for specific SPI + values and IP addresses. The signatures in HIP packets allow a + capable firewall to ensure that the HIP exchange is indeed occurring + between two known hosts. This may increase firewall security. + + A potential drawback of HITs in ACLs is their 'flatness', which means + they cannot be aggregated, and this could potentially result in + larger table searches in HIP-aware firewalls. A way to optimize this + could be to utilize Bloom filters for grouping HITs [sarela-bloom]. + However, it should be noted that it is also easier to exclude + individual, misbehaving hosts when the firewall rules concern + individual HITs rather than groups. + + There has been considerable bad experience with distributed ACLs that + contain material related to public keys, for example, with SSH. If + the owner of a key needs to revoke it for any reason, the task of + finding all locations where the key is held in an ACL may be + impossible. If the reason for the revocation is due to private key + theft, this could be a serious issue. + + A host can keep track of all of its partners that might use its HIT + in an ACL by logging all remote HITs. It should only be necessary to + log Responder hosts. With this information, the host can notify the + various hosts about the change to the HIT. There have been attempts + to develop a secure method to issue the HIT revocation notice + [zhang-revocation]. + + Some of the HIP-aware middleboxes, such as firewalls + [lindqvist-enterprise] or NATs [ylitalo-spinat], may observe the on- + path traffic passively. Such middleboxes are transparent by their + nature and may not get a notification when a host moves to a + different network. Thus, such middleboxes should maintain soft state + and time out when the control and data planes between two HIP end- + hosts have been idle too long. Correspondingly, the two end-hosts + may send periodically keepalives, such as UPDATE packets or ICMP + messages inside the ESP tunnel, to sustain state at the on-path + middleboxes. + + One general limitation related to end-to-end encryption is that + middleboxes may not be able to participate in the protection of data + flows. While the issue may also affect other protocols, Heer et al. + [heer-end-host] have analyzed the problem in the context of HIP. + More specifically, when ESP is used as the data plane protocol for + HIP, the association between the control and data planes is weak and + can be exploited under certain assumptions. In the scenario, the + attacker has already gained access to the target network protected by + a HIP-aware firewall, but wants to circumvent the HIP-based firewall. + To achieve this, the attacker passively observes a base exchange + between two HIP hosts and later replays it. This way, the attacker + manages to penetrate the firewall and can use a fake ESP tunnel to + transport its own data. This is possible because the firewall cannot + distinguish when the ESP tunnel is valid. As a solution, HIP-aware + middleboxes may participate in the control plane interaction by + adding random nonce parameters to the control traffic, which the end- + hosts have to sign to guarantee the freshness of the control traffic + [heer-midauth]. As an alternative, extensions for transporting the + data plane directly over the control plane can be used [RFC6078]. + +11.4. Alternative HI Considerations + + The definition of the Host Identifier states that the HI need not be + a public key. It implies that the HI could be any value, for + example, a FQDN. This document does not describe how to support such + a non-cryptographic HI, but examples of such protocol variants do + exist ([urien-rfid], [urien-rfid-draft]). A non-cryptographic HI + would still offer the services of the HIT or LSI for NAT traversal. + It would be possible to carry HITs in HIP packets that had neither + privacy nor authentication. Such schemes may be employed for + resource-constrained devices, such as small sensors operating on + battery power, but are not further analyzed here. + + If it is desirable to use HIP in a low-security situation where + public key computations are considered expensive, HIP can be used + with very short Diffie-Hellman and Host Identity keys. Such use + makes the participating hosts vulnerable to MitM and connection + hijacking attacks. However, it does not cause flooding dangers, + since the address check mechanism relies on the routing system and + not on cryptographic strength. + +11.5. Trust on First Use + + [RFC7435] highlights four design principles for Leap of Faith, or + Trust On First Use (TOFU), protocols that apply also to opportunistic + HIP: + + 1. Coexist with explicit policy + + 2. Prioritize communication + + 3. Maximize security peer by peer + + 4. No misrepresentation of security + + According to the first TOFU design principle, "Opportunistic security + never displaces or preempts explicit policy". Some application data + may be too sensitive, so the related policy could require + authentication (i.e., the public key or certificate) in such a case + instead of the unauthenticated opportunistic mode. In practice, this + has been realized in HIP implementations as follows [RFC6538]. + + The OpenHIP implementation allowed an Initiator to use opportunistic + mode only with an explicitly configured Responder IP address, when + the Responder's HIT is unknown. At the Responder, OpenHIP had an + option to allow opportunistic mode with any Initiator -- trust any + Initiator. + + HIP for Linux (HIPL) developers experimented with more fine-grained + policies operating at the application level. The HIPL implementation + utilized so-called "LD_PRELOAD" hooking at the application layer that + allowed a dynamically linked library to intercept socket-related + calls without rebuilding the related application binaries. The + library acted as a shim layer between the application and transport + layers. The shim layer translated the non-HIP-based socket calls + from the application into HIP-based socket calls. While the shim + library involved some level of complexity as described in more detail + in [komu-leap], it achieved the goal of applying opportunistic mode + at the granularity of individual applications. + + The second TOFU principle essentially states that communication + should prioritized over security. So opportunistic mode should be, + in general, allowed even if no authentication is present, and even + possibly a fallback to unencrypted communications could be allowed + (if policy permits) instead of blocking communications. In practice, + this can be realized in three steps. In the first step, a HIP + Initiator can look up the HI of a Responder from a directory such as + DNS. When the Initiator discovers a HI, it can use the HI for + authentication and skip the rest of the following steps. In the + second step, the Initiator can, upon failing to find a HI, try + opportunistic mode with the Responder. In the third step, the + Initiator can fall back to non-HIP-based communications upon failing + with opportunistic mode if the policy allows it. This three-step + model has been implemented successfully and described in more detail + in [komu-leap]. + + The third TOFU principle suggests that security should be maximized, + so that at least opportunistic security would be employed. The + three-step model described earlier prefers authentication when it is + available, e.g., via DNS records (and possibly even via DNSSEC when + available) and falls back to opportunistic mode when no out-of-band + credentials are available. As the last resort, fallback to non-HIP- + based communications can be used if the policy allows it. Also, + since perfect forward secrecy (PFS) is explicitly mentioned in the + third design principle, it is worth mentioning that HIP supports it. + + The fourth TOFU principle states that users and noninteractive + applications should be properly informed about the level of security + being applied. In practice, non-HIP-aware applications would assume + that no extra security is being applied, so misleading at least a + noninteractive application should not be possible. In the case of + interactive desktop applications, system-level prompts have been + utilized in earlier HIP experiments [karvonen-usable] [RFC6538] to + guide the user about the underlying HIP-based security. In general, + users in those experiments perceived when HIP-based security was + being used versus not used. However, the users failed to notice the + difference between opportunistic, non-authenticated HIP and non- + opportunistic, authenticated HIP. The reason for this was that the + opportunistic HIP (i.e., lowered level of security) was not clearly + indicated in the prompt. This provided a valuable lesson to further + improve the user interface. + + In the case of HIP-aware applications, native sockets APIs for HIP as + specified in [RFC6317] can be used to develop application-specific + logic instead of using generic system-level prompting. In such a + case, the application itself can directly prompt the user or + otherwise manage the situation in other ways. In this case, + noninteractive applications also can properly log the level of + security being employed because the developer can now explicitly + program the use of authenticated HIP, opportunistic HIP, and plain- + text communication. + + It is worth mentioning a few additional items discussed in [RFC7435]. + Related to active attacks, HIP has built-in protection against + ciphersuite downgrade attacks as described in detail in [RFC7401]. + In addition, pre-deployed certificates could be used to mitigate + against active attacks in the case of opportunistic mode as mentioned + in [RFC6538]. + + Detection of peer capabilities is also mentioned in the TOFU context. + As discussed in this section, the three-step model can be used to + detect peer capabilities. A host can achieve the first step of + authentication, i.e., discovery of a public key, via DNS, for + instance. If the host finds no keys, the host can then try + opportunistic mode as the second step. Upon a timeout, the host can + then proceed to the third step by falling back to non-HIP-based + communications if the policy permits. This last step is based on an + implicit timeout rather an explicit (negative) acknowledgment like in + the case of DNS, so the user may conclude prematurely that the + connectivity has failed. To speed up the detection phase by + explicitly detecting if the peer supports opportunistic HIP, + researchers have proposed TCP-specific extensions [RFC6538] + [komu-leap]. In a nutshell, an Initiator sends simultaneously both + an opportunistic I1 packet and the related TCP SYN datagram equipped + with a special TCP option to a peer. If the peer supports HIP, it + drops the SYN packet and responds with an R1. If the peer is HIP + incapable, it drops the HIP packet (and the unknown TCP option) and + responds with a TCP SYN-ACK. The benefit of the proposed scheme is a + faster, one round-trip fallback to non-HIP-based communications. The + drawback is that the approach is tied to TCP (IP options were also + considered, but do not work well with firewalls and NATs). + Naturally, the approach does not work against an active attacker, but + opportunistic mode is not supposed to protect against such an + adversary anyway. + + It is worth noting that while the use of opportunistic mode has some + benefits related to incremental deployment, it does not achieve all + the benefits of authenticated HIP [komu-diss]. Namely, authenticated + HIP supports persistent identifiers in the sense that hosts are + identified with the same HI independent of their movement. + Opportunistic HIP meets this goal only partially: after the first + contact between two hosts, HIP can successfully sustain connectivity + with its mobility management extensions, but problems emerge when the + hosts close the HIP association and try to reestablish connectivity. + As hosts can change their location, it is no longer guaranteed that + the same IP address belongs to the same host. The same address can + be temporally assigned to different hosts, e.g., due to the reuse of + IP addresses (e.g., by a DHCP service), the overlapping of private + address realms (see also the discussion on Internet transparency in + Appendix A.1), or due to an attempted attack. + +12. IANA Considerations + + This document has no IANA actions. + +13. Changes from RFC 4423 + + In a nutshell, the changes from RFC 4423 [RFC4423] are mostly + editorial, including clarifications on topics described in a + difficult way and omitting some of the non-architectural + (implementation) details that are already described in other + documents. A number of missing references to the literature were + also added. New topics include the drawbacks of HIP, a discussion on + 802.15.4 and MAC security, HIP for IoT scenarios, deployment + considerations, and a description of the base exchange. + +14. References + +14.1. Normative References + + [RFC5482] Eggert, L. and F. Gont, "TCP User Timeout Option", + RFC 5482, DOI 10.17487/RFC5482, March 2009, + <https://www.rfc-editor.org/info/rfc5482>. + + [RFC6079] Camarillo, G., Nikander, P., Hautakorpi, J., Keranen, A., + and A. Johnston, "HIP BONE: Host Identity Protocol (HIP) + Based Overlay Networking Environment (BONE)", RFC 6079, + DOI 10.17487/RFC6079, January 2011, + <https://www.rfc-editor.org/info/rfc6079>. + + [RFC7086] Keranen, A., Camarillo, G., and J. Maenpaa, "Host Identity + Protocol-Based Overlay Networking Environment (HIP BONE) + Instance Specification for REsource LOcation And Discovery + (RELOAD)", RFC 7086, DOI 10.17487/RFC7086, January 2014, + <https://www.rfc-editor.org/info/rfc7086>. + + [RFC7343] Laganier, J. and F. Dupont, "An IPv6 Prefix for Overlay + Routable Cryptographic Hash Identifiers Version 2 + (ORCHIDv2)", RFC 7343, DOI 10.17487/RFC7343, September + 2014, <https://www.rfc-editor.org/info/rfc7343>. + + [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>. + + [RFC7402] Jokela, P., Moskowitz, R., and J. Melen, "Using the + Encapsulating Security Payload (ESP) Transport Format with + the Host Identity Protocol (HIP)", RFC 7402, + DOI 10.17487/RFC7402, April 2015, + <https://www.rfc-editor.org/info/rfc7402>. + + [RFC8002] Heer, T. and S. Varjonen, "Host Identity Protocol + Certificates", RFC 8002, DOI 10.17487/RFC8002, October + 2016, <https://www.rfc-editor.org/info/rfc8002>. + + [RFC8003] Laganier, J. and L. Eggert, "Host Identity Protocol (HIP) + Registration Extension", RFC 8003, DOI 10.17487/RFC8003, + October 2016, <https://www.rfc-editor.org/info/rfc8003>. + + [RFC8004] Laganier, J. and L. Eggert, "Host Identity Protocol (HIP) + Rendezvous Extension", RFC 8004, DOI 10.17487/RFC8004, + October 2016, <https://www.rfc-editor.org/info/rfc8004>. + + [RFC8005] Laganier, J., "Host Identity Protocol (HIP) Domain Name + System (DNS) Extension", RFC 8005, DOI 10.17487/RFC8005, + October 2016, <https://www.rfc-editor.org/info/rfc8005>. + + [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>. + + [RFC8047] Henderson, T., Ed., Vogt, C., and J. Arkko, "Host + Multihoming with the Host Identity Protocol", RFC 8047, + DOI 10.17487/RFC8047, February 2017, + <https://www.rfc-editor.org/info/rfc8047>. + + [RFC9028] Keränen, A., Melén, J., and M. Komu, Ed., "Native NAT + Traversal Mode for the Host Identity Protocol", RFC 9028, + DOI 10.17487/RFC9028, July 2021, + <https://www.rfc-editor.org/info/rfc9028>. + +14.2. Informative References + + [amir-hip] Amir, K., Forsgren, H., Grahn, K., Karvi, T., and G. + Pulkkis, "Security and Trust of Public Key Cryptography + for HIP and HIP Multicast", International Journal of + Dependable and Trustworthy Information Systems (IJDTIS), + Vol. 2, Issue 3, pp. 17-35, DOI 10.4018/jdtis.2011070102, + 2013, <https://doi.org/10.4018/jdtis.2011070102>. + + [aura-dos] Aura, T., Nikander, P., and J. Leiwo, "DOS-Resistant + Authentication with Client Puzzles", 8th International + Workshop on Security Protocols, Security Protocols 2000, + Lecture Notes in Computer Science, Vol. 2133, pp. 170-177, + Springer, DOI 10.1007/3-540-44810-1_22, September 2001, + <https://doi.org/10.1007/3-540-44810-1_22>. + + [beal-dos] Beal, J. and T. Shepard, "Deamplification of DoS Attacks + via Puzzles", October 2004. + + [camarillo-p2psip] + Camarillo, G., Mäenpää, J., Keränen, A., and V. Anderson, + "Reducing delays related to NAT traversal in P2PSIP + session establishments", IEEE Consumer Communications and + Networking Conference (CCNC), pp. 549-553, + DOI 10.1109/CCNC.2011.5766540, 2011, + <https://doi.org/10.1109/CCNC.2011.5766540>. + + [chiappa-endpoints] + Chiappa, J., "Endpoints and Endpoint Names: A Proposed + Enhancement to the Internet Architecture", 1999, + <http://mercury.lcs.mit.edu/~jnc/tech/endpoints.txt>. + + [heer-end-host] + Heer, T., Hummen, R., Komu, M., Gotz, S., and K. Wehrle, + "End-Host Authentication and Authorization for Middleboxes + Based on a Cryptographic Namespace", 2009 IEEE + International Conference on Communications, + DOI 10.1109/ICC.2009.5198984, 2009, + <https://doi.org/10.1109/ICC.2009.5198984>. + + [heer-midauth] + Heer, T., Ed., Hummen, R., Wehrle, K., and M. Komu, "End- + Host Authentication for HIP Middleboxes", Work in + Progress, Internet-Draft, draft-heer-hip-middle-auth-04, + 31 October 2011, <https://datatracker.ietf.org/doc/html/ + draft-heer-hip-middle-auth-04>. + + [henderson-vpls] + Henderson, T. R., Venema, S. C., and D. Mattes, "HIP-based + Virtual Private LAN Service (HIPLS)", Work in Progress, + Internet-Draft, draft-henderson-hip-vpls-11, 3 August + 2016, <https://datatracker.ietf.org/doc/html/draft- + henderson-hip-vpls-11>. + + [hip-dex] Moskowitz, R., Ed., Hummen, R., and M. Komu, "HIP Diet + EXchange (DEX)", Work in Progress, Internet-Draft, draft- + ietf-hip-dex-24, 19 January 2021, + <https://datatracker.ietf.org/doc/html/draft-ietf-hip-dex- + 24>. + + [hip-lte] Liyanage, M., Kumar, P., Ylianttila, M., and A. Gurtov, + "Novel secure VPN architectures for LTE backhaul + networks", Security and Communication Networks, Vol. 9, + pp. 1198-1215, DOI 10.1002/sec.1411, January 2016, + <https://doi.org/10.1002/sec.1411>. + + [hip-srtp] Tschofenig, H., Shanmugam, M., and F. Muenz, "Using SRTP + transport format with HIP", Work in Progress, Internet- + Draft, draft-tschofenig-hiprg-hip-srtp-02, 25 October + 2006, <https://datatracker.ietf.org/doc/html/draft- + tschofenig-hiprg-hip-srtp-02>. + + [hummen] Hummen, R., Hiller, J., Henze, M., and K. Wehrle, "Slimfit + - A HIP DEX compression layer for the IP-based Internet of + Things", 2013 IEEE 9th International Conference on + Wireless and Mobile Computing, Networking and + Communications (WiMob), pp. 259-266, + DOI 10.1109/WiMOB.2013.6673370, October 2013, + <https://doi.org/10.1109/WiMOB.2013.6673370>. + + [IEEE.802.15.4] + IEEE, "IEEE Standard for Low-Rate Wireless Networks", + IEEE Standard 802.15.4, DOI 10.1109/IEEESTD.2020.9144691, + July 2020, <https://ieeexplore.ieee.org/document/9144691>. + + [IEEE.802.15.9] + IEEE, "IEEE Draft Recommended Practice for Transport of + Key Management Protocol (KMP) Datagrams", + IEEE P802.15.9/D04, May 2015. + + [karvonen-usable] + Karvonen, K., Komu, M., and A. Gurtov, "Usable security + management with host identity protocol", 2009 IEEE/ACS + International Conference on Computer Systems and + Applications, pp. 279-286, + DOI 10.1109/AICCSA.2009.5069337, 2009, + <https://doi.org/10.1109/AICCSA.2009.5069337>. + + [komu-cloud] + Komu, M., Sethi, M., Mallavarapu, R., Oirola, H., Khan, + R., and S. Tarkoma, "Secure Networking for Virtual + Machines in the Cloud", 2012 IEEE International Conference + on Cluster Computing Workshops, pp. 88-96, + DOI 10.1109/ClusterW.2012.29, 2012, + <https://doi.org/10.1109/ClusterW.2012.29>. + + [komu-diss] + Komu, M., "A Consolidated Namespace for Network + Applications, Developers, Administrators and Users", + Dissertation, Aalto University, Espoo, Finland, + ISBN 978-952-60-4904-5 (printed), ISBN 978-952-60-4905-2 + (electronic), December 2012. + + [komu-leap] + Komu, M. and J. Lindqvist, "Leap-of-Faith Security is + Enough for IP Mobility", 2009 6th IEEE Consumer + Communications and Networking Conference, Las Vegas, NV, + USA, pp. 1-5, DOI 10.1109/CCNC.2009.4784729, January 2009, + <https://doi.org/10.1109/CCNC.2009.4784729>. + + [komu-mitigation] + Komu, M., Tarkoma, S., and A. Lukyanenko, "Mitigation of + Unsolicited Traffic Across Domains with Host Identities + and Puzzles", 15th Nordic Conference on Secure IT Systems, + NordSec 2010, Lecture Notes in Computer Science, Vol. + 7127, pp. 33-48, Springer, ISBN 978-3-642-27936-2, + DOI 10.1007/978-3-642-27937-9_3, October 2010, + <https://doi.org/10.1007/978-3-642-27937-9_3>. + + [kovacshazi-host] + Kovacshazi, Z. and R. Vida, "Host Identity Specific + Multicast", International Conference on Networking and + Services (ICNS '07), Athens, Greece, pp. 1-1, + DOI 10.1109/ICNS.2007.66, 2007, + <https://doi.org/10.1109/ICNS.2007.66>. + + [levae-barriers] + Levä, T., Komu, M., and S. Luukkainen, "Adoption barriers + of network layer protocols: the case of host identity + protocol", Computer Networks, Vol. 57, Issue 10, pp. + 2218-2232, ISSN 1389-1286, + DOI 10.1016/j.comnet.2012.11.024, March 2013, + <https://doi.org/10.1016/j.comnet.2012.11.024>. + + [lindqvist-enterprise] + Lindqvist, J., Vehmersalo, E., Komu, M., and J. Manner, + "Enterprise Network Packet Filtering for Mobile + Cryptographic Identities", International Journal of + Handheld Computing Research (IJHCR), Vol. 1, Issue 1, pp. + 79-94, DOI 10.4018/jhcr.2010090905, 2010, + <https://doi.org/10.4018/jhcr.2010090905>. + + [Nik2001] Nikander, P., "Denial-of-Service, Address Ownership, and + Early Authentication in the IPv6 World", 9th International + Workshop on Security Protocols, Security Protocols 2001, + Lecture Notes in Computer Science, Vol. 2467, pp. 12-21, + Springer, DOI 10.1007/3-540-45807-7_3, 2002, + <https://doi.org/10.1007/3-540-45807-7_3>. + + [nsrg-report] + Lear, E. and R. Droms, "What's In A Name: Thoughts from + the NSRG", Work in Progress, Internet-Draft, draft-irtf- + nsrg-report-10, 22 September 2003, + <https://datatracker.ietf.org/doc/html/draft-irtf-nsrg- + report-10>. + + [paine-hip] + Paine, R. H., "Beyond HIP: The End to Hacking As We Know + It", BookSurge Publishing, ISBN-10 1439256047, + ISBN-13 978-1439256046, 2009. + + [pham-leap] + Pham, V. and T. Aura, "Security Analysis of Leap-of-Faith + Protocols", 7th International ICST Conference, Security + and Privacy for Communication Networks, SecureComm 2011, + Lecture Notes of the Institute for Computer Sciences, + Social Informatics and Telecommunications Engineering, + Vol. 96, DOI 10.1007/978-3-642-31909-9_19, 2012, + <https://doi.org/10.1007/978-3-642-31909-9_19>. + + [ranjbar-synaptic] + Ranjbar, A., Komu, M., Salmela, P., and T. Aura, + "SynAPTIC: Secure and Persistent Connectivity for + Containers", 2017 17th IEEE/ACM International Symposium on + Cluster, Cloud and Grid Computing (CCGRID), Madrid, 2017, + pp. 262-267, DOI 10.1109/CCGRID.2017.62, 2017, + <https://doi.org/10.1109/CCGRID.2017.62>. + + [RFC2136] Vixie, P., Ed., Thomson, S., Rekhter, Y., and J. Bound, + "Dynamic Updates in the Domain Name System (DNS UPDATE)", + RFC 2136, DOI 10.17487/RFC2136, April 1997, + <https://www.rfc-editor.org/info/rfc2136>. + + [RFC2766] Tsirtsis, G. and P. Srisuresh, "Network Address + Translation - Protocol Translation (NAT-PT)", RFC 2766, + DOI 10.17487/RFC2766, February 2000, + <https://www.rfc-editor.org/info/rfc2766>. + + [RFC3022] Srisuresh, P. and K. Egevang, "Traditional IP Network + Address Translator (Traditional NAT)", RFC 3022, + DOI 10.17487/RFC3022, January 2001, + <https://www.rfc-editor.org/info/rfc3022>. + + [RFC3102] Borella, M., Lo, J., Grabelsky, D., and G. Montenegro, + "Realm Specific IP: Framework", RFC 3102, + DOI 10.17487/RFC3102, October 2001, + <https://www.rfc-editor.org/info/rfc3102>. + + [RFC3748] Aboba, B., Blunk, L., Vollbrecht, J., Carlson, J., and H. + Levkowetz, Ed., "Extensible Authentication Protocol + (EAP)", RFC 3748, DOI 10.17487/RFC3748, June 2004, + <https://www.rfc-editor.org/info/rfc3748>. + + [RFC3972] Aura, T., "Cryptographically Generated Addresses (CGA)", + RFC 3972, DOI 10.17487/RFC3972, March 2005, + <https://www.rfc-editor.org/info/rfc3972>. + + [RFC4033] Arends, R., Austein, R., Larson, M., Massey, D., and S. + Rose, "DNS Security Introduction and Requirements", + RFC 4033, DOI 10.17487/RFC4033, March 2005, + <https://www.rfc-editor.org/info/rfc4033>. + + [RFC4225] Nikander, P., Arkko, J., Aura, T., Montenegro, G., and E. + Nordmark, "Mobile IP Version 6 Route Optimization Security + Design Background", RFC 4225, DOI 10.17487/RFC4225, + December 2005, <https://www.rfc-editor.org/info/rfc4225>. + + [RFC4380] Huitema, C., "Teredo: Tunneling IPv6 over UDP through + Network Address Translations (NATs)", RFC 4380, + DOI 10.17487/RFC4380, February 2006, + <https://www.rfc-editor.org/info/rfc4380>. + + [RFC4423] Moskowitz, R. and P. Nikander, "Host Identity Protocol + (HIP) Architecture", RFC 4423, DOI 10.17487/RFC4423, May + 2006, <https://www.rfc-editor.org/info/rfc4423>. + + [RFC5218] Thaler, D. and B. Aboba, "What Makes for a Successful + Protocol?", RFC 5218, DOI 10.17487/RFC5218, July 2008, + <https://www.rfc-editor.org/info/rfc5218>. + + [RFC5338] Henderson, T., Nikander, P., and M. Komu, "Using the Host + Identity Protocol with Legacy Applications", RFC 5338, + DOI 10.17487/RFC5338, September 2008, + <https://www.rfc-editor.org/info/rfc5338>. + + [RFC5887] Carpenter, B., Atkinson, R., and H. Flinck, "Renumbering + Still Needs Work", RFC 5887, DOI 10.17487/RFC5887, May + 2010, <https://www.rfc-editor.org/info/rfc5887>. + + [RFC6078] Camarillo, G. and J. Melen, "Host Identity Protocol (HIP) + Immediate Carriage and Conveyance of Upper-Layer Protocol + Signaling (HICCUPS)", RFC 6078, DOI 10.17487/RFC6078, + January 2011, <https://www.rfc-editor.org/info/rfc6078>. + + [RFC6250] Thaler, D., "Evolution of the IP Model", RFC 6250, + DOI 10.17487/RFC6250, May 2011, + <https://www.rfc-editor.org/info/rfc6250>. + + [RFC6281] Cheshire, S., Zhu, Z., Wakikawa, R., and L. Zhang, + "Understanding Apple's Back to My Mac (BTMM) Service", + RFC 6281, DOI 10.17487/RFC6281, June 2011, + <https://www.rfc-editor.org/info/rfc6281>. + + [RFC6317] Komu, M. and T. Henderson, "Basic Socket Interface + Extensions for the Host Identity Protocol (HIP)", + RFC 6317, DOI 10.17487/RFC6317, July 2011, + <https://www.rfc-editor.org/info/rfc6317>. + + [RFC6537] Ahrenholz, J., "Host Identity Protocol Distributed Hash + Table Interface", RFC 6537, DOI 10.17487/RFC6537, February + 2012, <https://www.rfc-editor.org/info/rfc6537>. + + [RFC6538] Henderson, T. and A. Gurtov, "The Host Identity Protocol + (HIP) Experiment Report", RFC 6538, DOI 10.17487/RFC6538, + March 2012, <https://www.rfc-editor.org/info/rfc6538>. + + [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>. + + [RFC7435] Dukhovni, V., "Opportunistic Security: Some Protection + Most of the Time", RFC 7435, DOI 10.17487/RFC7435, + December 2014, <https://www.rfc-editor.org/info/rfc7435>. + + [sarela-bloom] + Särelä, M., Esteve Rothenberg, C., Zahemszky, A., + Nikander, P., and J. Ott, "BloomCasting: Security in Bloom + Filter Based Multicast", Information Security Technology + for Applications, NordSec 2010, Lecture Notes in Computer + Science, Vol. 7127, pages 1-16, Springer, + DOI 10.1007/978-3-642-27937-9_1, 2012, + <https://doi.org/10.1007/978-3-642-27937-9_1>. + + [schuetz-intermittent] + Schütz, S., Eggert, L., Schmid, S., and M. Brunner, + "Protocol enhancements for intermittently connected + hosts", ACM SIGCOMM Computer Communication Review, Vol. + 35, Issue 3, pp. 5-18, DOI 10.1145/1070873.1070875, July + 2005, <https://doi.org/10.1145/1070873.1070875>. + + [shields-hip] + Shields, C. and J. J. Garcia-Luna-Aceves, "The HIP + protocol for hierarchical multicast routing", Proceedings + of the seventeenth annual ACM symposium on Principles of + distributed computing, pp. 257-266, ISBN 0-89791-977-7, + DOI 10.1145/277697.277744, 1998, + <https://doi.org/10.1145/277697.277744>. + + [tempered-networks] + Tempered Networks, "Identity-Defined Network (IDN) + Architecture: Unified, Secure Networking Made Simple", + White Paper, 2016. + + [tritilanunt-dos] + Tritilanunt, S., Boyd, C., Foo, E., and J.M.G. Nieto, + "Examining the DoS Resistance of HIP", On the Move to + Meaningful Internet Systems 2006: OTM 2006 Workshops, + Lecture Notes in Computer Science, Vol. 4277, pp. 616-625, + Springer, DOI 10.1007/11915034_85, 2006, + <https://doi.org/10.1007/11915034_85>. + + [urien-rfid] + Urien, P., Chabanne, H., Pepin, C., Orga, S., Bouet, M., + de Cunha, D.O., Guyot, V., Pujolle, G., Paradinas, P., + Gressier, E., and J.-F. Susini, "HIP-based RFID Networking + Architecture", 2007 IFIP International Conference on + Wireless and Optical Communications Networks, pp. 1-5, + DOI 10.1109/WOCN.2007.4284140, 2007, + <https://doi.org/10.1109/WOCN.2007.4284140>. + + [urien-rfid-draft] + Urien, P., Lee, G. M., and G. Pujolle, "HIP support for + RFIDs", Work in Progress, Internet-Draft, draft-irtf- + hiprg-rfid-07, 23 April 2013, + <https://datatracker.ietf.org/doc/html/draft-irtf-hiprg- + rfid-07>. + + [varjonen-split] + Varjonen, S., Komu, M., and A. Gurtov, "Secure and + Efficient IPv4/IPv6 Handovers Using Host-Based Identifier- + Location Split", Journal of Communications Software and + Systems, Vol. 6, Issue 1, ISSN 18456421, + DOI 10.24138/jcomss.v6i1.193, 2010, + <https://doi.org/10.24138/jcomss.v6i1.193>. + + [xin-hip-lib] + Xin, G., "Host Identity Protocol Version 2.5", Master's + Thesis, Aalto University, Espoo, Finland, June 2012. + + [ylitalo-diss] + Ylitalo, J., "Secure Mobility at Multiple Granularity + Levels over Heterogeneous Datacom Networks", Dissertation, + Helsinki University of Technology, Espoo, Finland, + ISBN 978-951-22-9531-9, 2008. + + [ylitalo-spinat] + Ylitalo, J., Salmela, P., and H. Tschofenig, "SPINAT: + Integrating IPsec into Overlay Routing", First + International Conference on Security and Privacy for + Emerging Areas in Communication Networks, SECURECOMM'05, + Athens, Greece, pp. 315-326, ISBN 0-7695-2369-2, + DOI 10.1109/SECURECOMM.2005.53, 2005, + <https://doi.org/10.1109/SECURECOMM.2005.53>. + + [zhang-revocation] + Zhang, D., Kuptsov, D., and S. Shen, "Host Identifier + Revocation in HIP", Work in Progress, Internet-Draft, + draft-irtf-hiprg-revocation-05, 9 March 2012, + <https://datatracker.ietf.org/doc/html/draft-irtf-hiprg- + revocation-05>. + + [zhu-hip] Zhu, X., Ding, Z., and X. Wang, "A Multicast Routing + Algorithm Applied to HIP-Multicast Model", 2011 + International Conference on Network Computing and + Information Security, Guilin, China, pp. 169-174, + DOI 10.1109/NCIS.2011.42, 2011, + <https://doi.org/10.1109/NCIS.2011.42>. + + [zhu-secure] + Zhu, X. and J. W. Atwood, "A Secure Multicast Model for + Peer-to-Peer and Access Networks Using the Host Identity + Protocol", 2007 4th IEEE Consumer Communications and + Networking Conference, Las Vegas, NV, USA, pages + 1098-1102, DOI 10.1109/CCNC.2007.221, 2007, + <https://doi.org/10.1109/CCNC.2007.221>. + +Appendix A. Design Considerations + +A.1. Benefits of HIP + + In the beginning, the network layer protocol (i.e., IP) had the + following four "classic" invariants: + + 1. Non-mutable: The address sent is the address received. + + 2. Non-mobile: The address doesn't change during the course of an + "association". + + 3. Reversible: A return header can always be formed by reversing the + source and destination addresses. + + 4. Omniscient: Each host knows what address a partner host can use + to send packets to it. + + Actually, the fourth can be inferred from 1 and 3, but it is worth + mentioning explicitly for reasons that will be obvious soon if not + already. + + In the current "post-classic" world, we are intentionally trying to + get rid of the second invariant (both for mobility and for + multihoming), and we have been forced to give up the first and the + fourth. Realm Specific IP [RFC3102] is an attempt to reinstate the + fourth invariant without the first invariant. IPv6 attempts to + reinstate the first invariant. + + Few client-side systems on the Internet have DNS names that are + meaningful. That is, if they have a Fully Qualified Domain Name + (FQDN), that name typically belongs to a NAT device or a dial-up + server, and does not really identify the system itself but its + current connectivity. FQDNs (and their extensions as email names) + are application-layer names; more frequently naming services than + particular systems. This is why many systems on the Internet are not + registered in the DNS; they do not have services of interest to other + Internet hosts. + + DNS names are references to IP addresses. This only demonstrates the + interrelationship of the networking and application layers. DNS, as + the Internet's only deployed and distributed database, is also the + repository of other namespaces, due in part to DNSSEC and + application-specific key records. Although each namespace can be + stretched (IP with v6, DNS with KEY records), neither can adequately + provide for host authentication or act as a separation between + internetworking and transport layers. + + The Host Identity (HI) namespace fills an important gap between the + IP and DNS namespaces. An interesting thing about the HI is that it + actually allows a host to give up all but the 3rd network-layer + invariant. That is to say, as long as the source and destination + addresses in the network-layer protocol are reversible, HIP takes + care of host identification, and reversibility allows a local host to + receive a packet back from a remote host. The address changes + occurring during NAT transit (non-mutable) or host movement (non- + omniscient or non-mobile) can be managed by the HIP layer. + + With the exception of high-performance computing applications, the + sockets API is the most common way to develop network applications. + Applications use the sockets API either directly or indirectly + through some libraries or frameworks. However, the sockets API is + based on the assumption of static IP addresses, and DNS with its + lifetime values was invented at later stages during the evolution of + the Internet. Hence, the sockets API does not deal with the lifetime + of addresses [RFC6250]. As the majority of the end-user equipment is + mobile today, their addresses are effectively ephemeral, but the + sockets API still gives a fallacious illusion of persistent IP + addresses to the unwary developer. HIP can be used to solidify this + illusion because HIP provides persistent, surrogate addresses to the + application layer in the form of LSIs and HITs. + + The persistent identifiers as provided by HIP are useful in multiple + scenarios (see, e.g., [ylitalo-diss] or [komu-diss] for a more + elaborate discussion): + + * When a mobile host moves physically between two different WLAN + networks and obtains a new address, an application using the + identifiers remains isolated regardless of the topology changes + while the underlying HIP layer reestablishes connectivity (i.e., a + horizontal handoff). + + * Similarly, the application utilizing the identifiers remains again + unaware of the topological changes when the underlying host + equipped with WLAN and cellular network interfaces switches + between the two different access technologies (i.e., a vertical + handoff). + + * Even when hosts are located in private address realms, + applications can uniquely distinguish different hosts from each + other based on their identifiers. In other words, it can be + stated that HIP improves Internet transparency for the application + layer [komu-diss]. + + * Site renumbering events for services can occur due to corporate + mergers or acquisitions, or by changes in Internet service + provider. They can involve changing the entire network prefix of + an organization, which is problematic due to hard-coded addresses + in service configuration files or cached IP addresses at the + client side [RFC5887]. Considering such human errors, a site + employing location-independent identifiers as promoted by HIP may + experience fewer problems while renumbering their network. + + * More agile IPv6 interoperability can be achieved, as discussed in + Section 4.4. IPv6-based applications can communicate using HITs + with IPv4-based applications that are using LSIs. Additionally, + the underlying network type (IPv4 or IPv6) becomes independent of + the addressing family of the application. + + * HITs (or LSIs) can be used in IP-based access control lists as a + more secure replacement for IPv6 addresses. Besides security, + HIT-based access control has two other benefits. First, the use + of HITs can potentially halve the size of access control lists + because separate rules for IPv4 are not needed [komu-diss]. + Second, HIT-based configuration rules in HIP-aware middleboxes + remain static and independent of topology changes, thus + simplifying administrative efforts particularly for mobile + environments. For instance, the benefits of HIT-based access + control have been harnessed in the case of HIP-aware firewalls, + but can be utilized directly at the end-hosts as well [RFC6538]. + + While some of these benefits could be and have been redundantly + implemented by individual applications, providing such generic + functionality at the lower layers is useful because it reduces + software development effort and networking software bugs (as the + layer is tested with multiple applications). It also allows the + developer to focus on building the application itself rather than + delving into the intricacies of mobile networking, thus facilitating + separation of concerns. + + HIP could also be realized by combining a number of different + protocols, but the complexity of the resulting software may become + substantially larger, and the interaction between multiple, possibly + layered protocols may have adverse effects on latency and throughput. + It is also worth noting that virtually nothing prevents realizing the + HIP architecture, for instance, as an application-layer library, + which has been actually implemented in the past [xin-hip-lib]. + However, the trade-off in moving the HIP layer to the application + layer is that legacy applications may not be supported. + +A.2. Drawbacks of HIP + + In computer science, many problems can be solved with an extra layer + of indirection. However, the indirection always involves some costs + as there is no such a thing as a "free lunch". In the case of HIP, + the main costs could be stated as follows: + + * In general, an additional layer and a namespace always involve + some initial effort in terms of implementation, deployment, and + maintenance. Some education of developers and administrators may + also be needed. However, the HIP community at the IETF has spent + years in experimenting, exploring, testing, documenting, and + implementing HIP to ease the adoption costs. + + * HIP introduces a need to manage HIs and requires a centralized + approach to manage HIP-aware endpoints at scale. What were + formerly IP address-based ACLs are now trusted HITs, and the HIT- + to-IP address mappings as well as access policies must be managed. + HIP-aware endpoints must also be able to operate autonomously to + ensure mobility and availability (an endpoint must be able to run + without having to have a persistent management connection). The + users who want this better security and mobility of HIs instead of + IP address-based ACLs have to then manage this additional + 'identity layer' in a nonpersistent fashion. As exemplified in + Appendix A.3.5, these challenges have been already solved in an + infrastructure setting to distribute policy and manage the + mappings and trust relationships between HIP-aware endpoints. + + * HIP decouples identifier and locator roles of IP addresses. + Consequently, a mapping mechanism is needed to associate them + together. A failure to map a HIT to its corresponding locator may + result in failed connectivity because a HIT is "flat" by its + nature and cannot be looked up from the hierarchically organized + DNS. HITs are flat by design due to a security trade-off. The + more bits that are allocated for the hash in the HIT, the less + likely there will be (malicious) collisions. + + * From performance viewpoint, HIP control and data plane processing + introduces some overhead in terms of throughput and latency as + elaborated below. + + Related to deployment drawbacks, firewalls are commonly used to + control access to various services and devices in the current + Internet. Since HIP introduces an additional namespace, it is + expected that the HIP namespace would be filtered for unwanted + connectivity also. While this can be achieved with existing tools + directly in the end-hosts, filtering at the middleboxes requires + modifications to existing firewall software or additional middleboxes + [RFC6538]. + + The key exchange introduces some extra latency (two round trips) in + the initial transport-layer connection establishment between two + hosts. With TCP, additional delay occurs if the underlying network + stack implementation drops the triggering SYN packet during the key + exchange. The same cost may also occur during HIP handoff + procedures. However, subsequent TCP sessions using the same HIP + association will not bear this cost (within the key lifetime). Both + the key exchange and handoff penalties can be minimized by caching + TCP packets. The latter case can further be optimized with TCP user + timeout extensions [RFC5482] as described in further detail by Schütz + et al. [schuetz-intermittent]. + + The most CPU-intensive operations involve the use of the asymmetric + keys and Diffie-Hellman key derivation at the control plane, but this + occurs only during the key exchange, its maintenance (handoffs and + refreshing of key material), and teardown procedures of HIP + associations. The data plane is typically implemented with ESP + because it has a smaller overhead due to symmetric key encryption. + Naturally, even ESP involves some overhead in terms of latency + (processing costs) and throughput (tunneling) (see, e.g., + [ylitalo-diss] for a performance evaluation). + +A.3. Deployment and Adoption Considerations + + This section describes some deployment and adoption considerations + related to HIP from a technical perspective. + +A.3.1. Deployment Analysis + + HIP has been adapted and deployed in an industrial control network in + a production factory, in which HIP's strong network-layer identity + supports the secure coexistence of the control network with many + untrusted network devices operated by third-party vendors + [paine-hip]. Similarly, HIP has also been included in a security + product to support Layer 2 VPNs [henderson-vpls] to enable security + zones in a supervisory control and data acquisition (SCADA) network. + However, HIP has not been a "wild success" [RFC5218] in the Internet + as argued by Levä et al. [levae-barriers]. Here, we briefly + highlight some of their findings based on interviews with 19 experts + from the industry and academia. + + From a marketing perspective, the demand for HIP has been low and + substitute technologies have been favored. Another identified reason + has been that some technical misconceptions related to the early + stages of HIP specifications still persist. Two identified + misconceptions are that HIP does not support NAT traversal and that + HIP must be implemented in the OS kernel. Both of these claims are + untrue; HIP does have NAT traversal extensions [RFC9028], and kernel + modifications can be avoided with modern operating systems by + diverting packets for userspace processing. + + The analysis by Levä et al. clarifies infrastructural requirements + for HIP. In a minimal setup, a client and server machine have to run + HIP software. However, to avoid manual configurations, usually DNS + records for HIP are set up. For instance, the popular DNS server + software Bind9 does not require any changes to accommodate DNS + records for HIP because they can be supported in binary format in its + configuration files [RFC6538]. HIP rendezvous servers and firewalls + are optional. No changes are required to network address points, + NATs, edge routers, or core networks. HIP may require holes in + legacy firewalls. + + The analysis also clarifies the requirements for the host components + that consist of three parts. First, a HIP control plane component is + required, typically implemented as a userspace daemon. Second, a + data plane component is needed. Most HIP implementations utilize the + so-called Bound End-to-End Tunnel (BEET) mode of ESP that has been + available since Linux kernel 2.6.27, but the BEET mode is also + included as a userspace component in a few of the implementations. + Third, HIP systems usually provide a DNS proxy for the local host + that translates HIP DNS records to LSIs and HITs, and communicates + the corresponding locators to the HIP userspace daemon. While the + third component is not mandatory, it is very useful for avoiding + manual configurations. The three components are further described in + the HIP experiment report [RFC6538]. + + Based on the interviews, Levä et al. suggest further directions to + facilitate HIP deployment. Transitioning a number of HIP + specifications to the Standards Track in the IETF has already taken + place, but the authors suggest other additional measures based on the + interviews. As a more radical measure, the authors suggest to + implement HIP as a purely application-layer library [xin-hip-lib] or + other kind of middleware. On the other hand, more conservative + measures include focusing on private deployments controlled by a + single stakeholder. As a more concrete example of such a scenario, + HIP could be used by a single service provider to facilitate secure + connectivity between its servers [komu-cloud]. + +A.3.2. HIP in 802.15.4 Networks + + The IEEE 802 standards have been defining MAC-layer security. Many + of these standards use Extensible Authentication Protocol (EAP) + [RFC3748] as a Key Management System (KMS) transport, but some like + IEEE 802.15.4 [IEEE.802.15.4] leave the KMS and its transport as "out + of scope". + + HIP is well suited as a KMS in these environments: + + * HIP is independent of IP addressing and can be directly + transported over any network protocol. + + * Master keys in 802 protocols are commonly pair-based with group + keys transported from the group controller using pairwise keys. + + * Ad hoc 802 networks can be better served by a peer-to-peer KMS + than the EAP client/server model. + + * Some devices are very memory constrained, and a common KMS for + both MAC and IP security represents a considerable code savings. + +A.3.3. HIP and Internet of Things + + HIP requires certain amount computational resources from a device due + to cryptographic processing. HIP scales down to phones and small + system-on-chip devices (such as Raspberry Pis, Intel Edison), but + small sensors operating with small batteries have remained + problematic. Different extensions to the HIP have been developed to + scale HIP down to smaller devices, typically with different security + trade-offs. For example, the non-cryptographic identifiers have been + proposed in RFID scenarios. The Slimfit approach [hummen] proposes a + compression layer for HIP to make it more suitable for constrained + networks. The approach is applied to a lightweight version of HIP + (i.e., "Diet HIP") in order to scale down to small sensors. + + The HIP Diet EXchange (DEX) [hip-dex] design aims to reduce the + overhead of the employed cryptographic primitives by omitting public- + key signatures and hash functions. In doing so, the main goal is to + still deliver security properties similar to the Base Exchange (BEX). + + DEX is primarily designed for computation- or memory-constrained + sensor/actuator devices. Like BEX, it is expected to be used + together with a suitable security protocol such as the ESP for the + protection of upper-layer protocol data. In addition, DEX can also + be used as a keying mechanism for security primitives at the MAC + layer, e.g., for IEEE 802.15.9 networks [IEEE.802.15.9]. + + The main differences between HIP BEX and DEX are: + + 1. Minimum collection of cryptographic primitives to reduce the + protocol overhead. + + * Static Elliptic Curve Diffie-Hellman (ECDH) key pairs for peer + authentication and encryption of the session key. + + * AES-CTR for symmetric encryption and AES-CMAC for MACing + function. + + * A simple fold function for HIT generation. + + 2. Forfeit of perfect forward secrecy with the dropping of an + ephemeral Diffie-Hellman key agreement. + + 3. Forfeit of digital signatures with the removal of a hash + function. Reliance on the ECDH-derived key used in HIP_MAC to + prove ownership of the private key. + + 4. Diffie-Hellman derived key ONLY used to protect the HIP packets. + A separate secret exchange within the HIP packets creates the + session key(s). + + 5. Optional retransmission strategy tailored to handle the + potentially extensive processing time of the employed + cryptographic operations on computationally constrained devices. + +A.3.4. Infrastructure Applications + + The HIP experimentation report [RFC6538] enumerates a number of + client and server applications that have been trialed with HIP. + Based on the report, this section highlights and complements some + potential ways how HIP could be exploited in existing infrastructure + such as routers, gateways, and proxies. + + HIP has been successfully used with forward web proxies (i.e., + client-side proxies). HIP was used between a client host (web + browser) and a forward proxy (Apache server) that terminated the HIP/ + ESP tunnel. The forward web proxy translated HIP-based traffic + originating from the client into non-HIP traffic towards any web + server in the Internet. Consequently, the HIP-capable client could + communicate with HIP-incapable web servers. This way, the client + could utilize mobility support as provided by HIP while using the + fixed IP address of the web proxy, for instance, to access services + that were allowed only from the IP address range of the proxy. + + HIP with reverse web proxies (i.e., server-side proxies) has also + been investigated, as described in more detail in [komu-cloud]. In + this scenario, a HIP-incapable client accessed a HIP-capable web + service via an intermediary load balancer (a web-based load balancer + implementation called HAProxy). The load balancer translated non-HIP + traffic originating from the client into HIP-based traffic for the + web service (consisting of front-end and back-end servers). Both the + load balancer and the web service were located in a data center. One + of the key benefits for encrypting the web traffic with HIP in this + scenario was supporting a private-public cloud scenario (i.e., hybrid + cloud) where the load balancer, front-end servers, and back-end + servers were located in different data centers, and thus the traffic + needed to be protected when it passed through potentially insecure + networks between the borders of the private and public clouds. + + While HIP could be used to secure access to intermediary devices + (e.g., access to switches with legacy telnet), it has also been used + to secure intermittent connectivity between middlebox infrastructure. + For instance, earlier research [komu-mitigation] utilized HIP between + Simple Mail Transport Protocol (SMTP) servers in order to exploit the + computational puzzles of HIP as a spam mitigation mechanism. A + rather obvious practical challenge in this approach was the lack of + HIP adoption on existing SMTP servers. + + To avoid deployment hurdles with existing infrastructure, HIP could + be applied in the context of new protocols with little deployment. + Namely, HIP has been studied in the context of a new protocol, peer- + to-peer SIP [camarillo-p2psip]. The work has resulted in a number of + related RFCs [RFC6078], [RFC6079], and [RFC7086]. The key idea in + the research work was to avoid redundant, time-consuming ICE + procedures by grouping different connections (i.e., SIP and media + streams) together using the low-layer HIP, which executes NAT + traversal procedures only once per host. An interesting aspect in + the approach was the use of P2P-SIP infrastructure as rendezvous + servers for the HIP control plane instead of utilizing the + traditional HIP rendezvous services [RFC8004]. + + Researchers have proposed using HIP in cellular networks as a + mobility, multihoming, and security solution. [hip-lte] provides a + security analysis and simulation measurements of using HIP in Long + Term Evolution (LTE) backhaul networks. + + HIP has been studied for securing cloud internal connectivity. First + with virtual machines [komu-cloud] and then between Linux containers + [ranjbar-synaptic]. In both cases, HIP was suggested as a solution + to NAT traversal that could be utilized both internally by a cloud + network and between multi-cloud deployments. Specifically in the + former case, HIP was beneficial sustaining connectivity with a + virtual machine while it migrated to a new location. In the latter + case, a Software-Defined Networking (SDN) controller acted as a + rendezvous server for HIP-capable containers. The controller + enforced strong replay protection by adding middlebox nonces + [heer-end-host] to the passing HIP base exchange and UPDATE messages. + +A.3.5. Management of Identities in a Commercial Product + + Tempered Networks provides HIP-based products. They refer to their + platform as Identity-Defined Networking (IDN) [tempered-networks] + because of HIP's identity-first networking architecture. Their + objective has been to make it simple and nondisruptive to deploy HIP- + enabled services widely in production environments with the purpose + of enabling transparent device authentication and authorization, + cloaking, segmentation, and end-to-end networking. The goal is to + eliminate much of the circular dependencies, exploits, and layered + complexity of traditional "address-defined networking" that prevents + mobility and verifiable device access control. The products in the + portfolio of Tempered Networks utilize HIP are as follows: + + HIP Switches / Gateways + These are physical or virtual appliances that serve as the HIP + gateway and policy enforcement point for non-HIP-aware + applications and devices located behind it. No IP or + infrastructure changes are required in order to connect, cloak, + and protect the non-HIP-aware devices. Currently known supported + platforms for HIP gateways are x86 and ARM chipsets, ESXi, Hyper- + V, KVM, AWS, Azure, and Google clouds. + + HIP Relays / Rendezvous + These are physical or virtual appliances that serve as identity- + based routers authorizing and bridging HIP endpoints without + decrypting the HIP session. A HIP relay can be deployed as a + standalone appliance or in a cluster for horizontal scaling. All + HIP-aware endpoints and the devices they're connecting and + protecting can remain privately addressed. The appliances + eliminate IP conflicts, tunnel through NAT and carrier-grade NAT, + and require no changes to the underlying infrastructure. The only + requirement is that a HIP endpoint should have outbound access to + the Internet and that a HIP Relay should have a public address. + + HIP-Aware Clients and Servers + This is software that is installed in the host's network stack and + enforces policy for that host. HIP clients support split + tunneling. Both the HIP client and HIP server can interface with + the local host firewall, and the HIP server can be locked down to + listen only on the port used for HIP, making the server invisible + from unauthorized devices. Currently known supported platforms + are Windows, OS X, iOS, Android, Ubuntu, CentOS, and other Linux + derivatives. + + Policy Orchestration Managers + These physical or virtual appliances serve as the engine to define + and distribute network and security policy (HI and IP mappings, + overlay networks, and whitelist policies, etc.) to HIP-aware + endpoints. Orchestration does not need to persist to the HIP + endpoints and vice versa, allowing for autonomous host networking + and security. + +A.4. Answers to NSRG Questions + + The IRTF Name Space Research Group has posed a number of evaluating + questions in their report [nsrg-report]. In this section, we provide + answers to these questions. + + 1. How would a stack name improve the overall functionality of the + Internet? + + HIP decouples the internetworking layer from the transport layer, + allowing each to evolve separately. The decoupling makes end- + host mobility and multihoming easier, also across IPv4 and IPv6 + networks. HIs make network renumbering easier, and they also + make process migration and clustered servers easier to implement. + Furthermore, being cryptographic in nature, they provide the + basis for solving the security problems related to end-host + mobility and multihoming. + + 2. What does a stack name look like? + + A HI is a cryptographic public key. However, instead of using + the keys directly, most protocols use a fixed-size hash of the + public key. + + 3. What is its lifetime? + + HIP provides both stable and temporary Host Identifiers. Stable + HIs are typically long-lived, with a lifetime of years or more. + The lifetime of temporary HIs depends on how long the upper-layer + connections and applications need them, and can range from a few + seconds to years. + + 4. Where does it live in the stack? + + The HIs live between the transport and internetworking layers. + + 5. How is it used on the endpoints? + + The Host Identifiers may be used directly or indirectly (in the + form of HITs or LSIs) by applications when they access network + services. Additionally, the Host Identifiers, as public keys, + are used in the built-in key agreement protocol, called the HIP + base exchange, to authenticate the hosts to each other. + + 6. What administrative infrastructure is needed to support it? + + In some environments, it is possible to use HIP + opportunistically, without any infrastructure. However, to gain + full benefit from HIP, the HIs must be stored in the DNS or a + PKI, and the rendezvous mechanism is needed [RFC8005]. + + 7. If we add an additional layer, would it make the address list in + SCTP unnecessary? + + Yes + + 8. What additional security benefits would a new naming scheme + offer? + + HIP reduces dependency on IP addresses, making the so-called + address ownership [Nik2001] problems easier to solve. In + practice, HIP provides security for end-host mobility and + multihoming. Furthermore, since HIP Host Identifiers are public + keys, standard public key certificate infrastructures can be + applied on the top of HIP. + + 9. What would the resolution mechanisms be, or what characteristics + of a resolution mechanisms would be required? + + For most purposes, an approach where DNS names are resolved + simultaneously to HIs and IP addresses is sufficient. However, + if it becomes necessary to resolve HIs into IP addresses or back + to DNS names, a flat resolution infrastructure is needed. Such + an infrastructure could be based on the ideas of Distributed Hash + Tables, but would require significant new development and + deployment. + +Acknowledgments + + For the people historically involved in the early stages of HIP, see + the Acknowledgments section in the Host Identity Protocol + specification. + + During the later stages of this document, when the editing baton was + transferred to Pekka Nikander, the comments from the early + implementers and others, including Jari Arkko, Jeff Ahrenholz, Tom + Henderson, Petri Jokela, Miika Komu, Mika Kousa, Andrew McGregor, Jan + Melen, Tim Shepard, Jukka Ylitalo, Sasu Tarkoma, and Jorma Wall, were + invaluable. Also, the comments from Lars Eggert, Spencer Dawkins, + Dave Crocker, and Erik Giesa were also useful. + + The authors want to express their special thanks to Tom Henderson, + who took the burden of editing the document in response to IESG + comments at the time when both of the authors were busy doing other + things. Without his perseverance, the original document might have + never made it as RFC 4423. + + This main effort to update and move HIP forward within the IETF + process owes its impetus to a number of HIP development teams. The + authors are grateful for Boeing, Helsinki Institute for Information + Technology (HIIT), NomadicLab of Ericsson, and the three + universities: RWTH Aachen, Aalto, and University of Helsinki for + their efforts. Without their collective efforts, HIP would have + withered as on the IETF vine as a nice concept. + + Thanks also to Suvi Koskinen for her help with proofreading and with + the reference jungle. + +Authors' Addresses + + Robert Moskowitz (editor) + HTT Consulting + Oak Park, Michigan + United States of America + + Email: rgm@labs.htt-consult.com + + + Miika Komu + Ericsson + Hirsalantie 11 + FI-02420 Jorvas + Finland + + Email: miika.komu@ericsson.com |