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