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/ |