| rfc9063xml2.original.xml | rfc9063.xml | |||
|---|---|---|---|---|
| <?xml version="1.0" encoding="iso-8859-1" ?> | <?xml version="1.0" encoding="UTF-8"?> | |||
| <!DOCTYPE rfc SYSTEM "rfc2629.dtd" [ | ||||
| <!ENTITY RFC2136 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .2136.xml" > | ||||
| <!ENTITY RFC2535 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .2535.xml" > | ||||
| <!ENTITY RFC2766 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .2766.xml" > | ||||
| <!ENTITY RFC3022 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .3022.xml" > | ||||
| <!ENTITY RFC3102 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .3102.xml" > | ||||
| <!ENTITY RFC3748 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .3748.xml" > | ||||
| <!-- <!ENTITY RFC4025 SYSTEM "http://xml.resource.org/public/rfc/bibxml/referenc | ||||
| e.RFC.4025.xml" > --> | ||||
| <!ENTITY RFC4225 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .4225.xml" > | ||||
| <!ENTITY RFC4306 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .4306.xml" > | ||||
| <!ENTITY RFC4423 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .4423.xml" > | ||||
| <!ENTITY RFC7343 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .7343.xml" > | ||||
| <!ENTITY RFC7401 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .7401.xml" > | ||||
| <!ENTITY RFC7402 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .7402.xml" > | ||||
| <!-- <!ENTITY RFC5201-bis SYSTEM "http://xml.resource.org/public/rfc/bibxml3/ref | ||||
| erence.I-D.ietf-hip-rfc5201-bis.xml" > --> | ||||
| <!-- <!ENTITY RFC5202-bis SYSTEM "http://xml.resource.org/public/rfc/bibxml3/ref | ||||
| erence.I-D.ietf-hip-rfc5202-bis.xml" > --> | ||||
| <!-- <!ENTITY RFC5203-bis SYSTEM "http://xml.resource.org/public/rfc/bibxml3/ref | ||||
| erence.I-D.ietf-hip-rfc5203-bis.xml" > --> | ||||
| <!ENTITY RFC8003 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .8003.xml" > | ||||
| <!-- <!ENTITY RFC5204-bis SYSTEM "http://xml.resource.org/public/rfc/bibxml3/ref | ||||
| erence.I-D.ietf-hip-rfc5204-bis.xml" > --> | ||||
| <!ENTITY RFC8004 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .8004.xml" > | ||||
| <!-- <!ENTITY RFC5205-bis SYSTEM "http://xml.resource.org/public/rfc/bibxml3/ref | ||||
| erence.I-D.ietf-hip-rfc5205-bis.xml" > --> | ||||
| <!ENTITY RFC8005 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .8005.xml" > | ||||
| <!-- <!ENTITY RFC5206-bis SYSTEM "http://xml.resource.org/public/rfc/bibxml3/ref | ||||
| erence.I-D.ietf-hip-rfc5206-bis.xml" > --> | ||||
| <!ENTITY RFC8046 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .8046.xml" > | ||||
| <!ENTITY RFC8047 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .8047.xml" > | ||||
| <!ENTITY RFC7435 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .7435.xml" > | ||||
| <!ENTITY RFC4380 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .4380.xml" > | ||||
| <!ENTITY RFC3972 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .3972.xml" > | ||||
| <!ENTITY RFC5218 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .5218.xml" > | ||||
| <!ENTITY RFC8002 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .8002.xml" > | ||||
| <!ENTITY RFC5338 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .5338.xml" > | ||||
| <!ENTITY RFC5482 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .5482.xml" > | ||||
| <!ENTITY RFC5887 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .5887.xml" > | ||||
| <!-- <!ENTITY hip-nat SYSTEM "http://xml.resource.org/public/rfc/bibxml3/referen | ||||
| ce.I-D.ietf-hip-native-nat-traversal.xml" > --> | ||||
| <!ENTITY RFC6078 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .6078.xml" > | ||||
| <!ENTITY RFC6079 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .6079.xml" > | ||||
| <!ENTITY RFC7086 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .7086.xml" > | ||||
| <!ENTITY RFC6250 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .6250.xml" > | ||||
| <!ENTITY RFC6281 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .6281.xml" > | ||||
| <!ENTITY RFC6317 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .6317.xml" > | ||||
| <!ENTITY RFC6537 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .6537.xml" > | ||||
| <!ENTITY RFC6538 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .6538.xml" > | ||||
| <!-- <!ENTITY nsrg-report SYSTEM "http://medon.htt-consult.com/~rgm/hip/referenc | ||||
| e.I-D.irtf-nsrg-report.xml" > --> | ||||
| <!-- <!ENTITY IEEE.802-15-4.2011 SYSTEM "http://medon.htt-consult.com/~rgm/hip/r | ||||
| eference.IEEE.802-15-4.2011.xml" > --> | ||||
| <!-- XX FIX: missing ORCHID reference --> | ||||
| ]> | ||||
| <?rfc toc="yes"?> | ||||
| <?rfc strict="yes"?> | ||||
| <?rfc tocindent="no"?> | ||||
| <?rfc compact="yes"?> | ||||
| <?rfc subcompact="no"?> | ||||
| <?rfc symrefs="yes"?> <!-- use anchors instead of numbers for references --> | ||||
| <?rfc sortrefs="yes" ?> <!-- alphabetize the references --> | ||||
| <rfc docName="draft-ietf-hip-rfc4423-bis-20" category="info" obsoletes="4423" ip r="pre5378Trust200902"> | <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | |||
| <rfc xmlns:xi="http://www.w3.org/2001/XInclude" docName="draft-ietf-hip-rfc4423- | ||||
| bis-20" number="9063" obsoletes="4423" ipr="pre5378Trust200902" updates="" submi | ||||
| ssionType="IETF" category="info" consensus="true" xml:lang="en" tocInclude="true | ||||
| " symRefs="true" sortRefs="true" version="3"> | ||||
| <!-- xml2rfc v2v3 conversion 2.47.0 --> | ||||
| <front> | <front> | |||
| <title>Host Identity Protocol Architecture</title> | <title>Host Identity Protocol Architecture</title> | |||
| <seriesInfo name="RFC" value="9063"/> | ||||
| <author initials="R." surname="Moskowitz" | <author initials="R." surname="Moskowitz" fullname="Robert Moskowitz" role=" | |||
| fullname="Robert Moskowitz" role="editor"> | editor"> | |||
| <organization abbrev="HTT Consulting">HTT Consulting</organization> | <organization abbrev="HTT Consulting">HTT Consulting</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>Oak Park</street> | <city>Oak Park</city> | |||
| <!-- <city>Oak Park</city> --> | ||||
| <region>Michigan</region> | <region>Michigan</region> | |||
| <country>USA</country> | <country>United States of America</country> | |||
| </postal> | </postal> | |||
| <email>rgm@labs.htt-consult.com</email> | <email>rgm@labs.htt-consult.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author initials="M." surname="Komu" fullname="Miika Komu"> | ||||
| <author initials="M.K.T." surname="Komu" | ||||
| fullname="Miika Komu"> | ||||
| <organization abbrev="Ericsson">Ericsson | <organization abbrev="Ericsson">Ericsson | |||
| </organization> | </organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>Hirsalantie 11</street> | <street>Hirsalantie 11</street> | |||
| <city>02420 Jorvas</city> | <city>Jorvas</city> | |||
| <country>Finland</country> | <code>02420</code> | |||
| </postal> | <country>Finland</country> | |||
| </postal> | ||||
| <email>miika.komu@ericsson.com</email> | <email>miika.komu@ericsson.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <date month="July" year="2021"/> | ||||
| <date month="Feb" year="2019" /> | ||||
| <area>Internet</area> | <area>Internet</area> | |||
| <keyword>Request for Comments</keyword> | <keyword>cryptographic identity</keyword> | |||
| <keyword>RFC</keyword> | <keyword>cryptographic namespace</keyword> | |||
| <keyword>Internet Draft</keyword> | <keyword>identifier-locator split</keyword> | |||
| <keyword>I-D</keyword> | <keyword>mobility</keyword> | |||
| <keyword>multihoming</keyword> | ||||
| <keyword>NAT traversal</keyword> | ||||
| <keyword>IPsec</keyword> | ||||
| <keyword>ESP</keyword> | ||||
| <keyword>IPv6</keyword> | ||||
| <keyword>end-to-end security</keyword> | ||||
| <keyword>end-to-end connectivity</keyword> | ||||
| <keyword>endpoint identity</keyword> | ||||
| <keyword>leap of faith</keyword> | ||||
| <keyword>rendezvous</keyword> | ||||
| <abstract> | <abstract> | |||
| <t>This memo describes the Host Identity (HI) namespace, which | ||||
| <t>This memo describes the Host Identity (HI) namespace, that | ||||
| provides a cryptographic namespace to applications, and the | provides a cryptographic namespace to applications, and the | |||
| associated protocol layer, the Host Identity Protocol, located | associated protocol layer, the Host Identity Protocol, located | |||
| between the internetworking and transport layers, that supports | between the internetworking and transport layers, that supports | |||
| end-host mobility, multihoming and NAT traversal. Herein are | end-host mobility, multihoming, and NAT traversal. Herein are | |||
| presented the basics of the current namespaces, their strengths | presented the basics of the current namespaces, their strengths | |||
| and weaknesses, and how a HI namespace will add completeness to | and weaknesses, and how a HI namespace will add completeness to | |||
| them. The roles of the HI namespace in the protocols are | them. The roles of the HI namespace in the protocols are | |||
| defined. </t> | defined. </t> | |||
| <t> | <t> | |||
| 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 security c | the IESG, particularly that of crypto agility. The Security Consideratio | |||
| onsiderations | ns section | |||
| describe also measures against flooding attacks, usage of identities in a | also describes measures against flooding attacks, usage of identities in | |||
| ccess control lists, | access control lists, | |||
| weaker types of identifiers and trust on first use. | weaker types of identifiers, and trust on first use. | |||
| This document incorporates | 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. | |||
| </t> | </t> | |||
| </abstract> | </abstract> | |||
| </front> | </front> | |||
| <middle> | <middle> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Introduction"> | <name>Introduction</name> | |||
| <t>The Internet has two important global namespaces: Internet | <t>The Internet has two important global namespaces: Internet | |||
| Protocol (IP) addresses and Domain Name Service (DNS) names. | Protocol (IP) addresses and Domain Name Service (DNS) names. | |||
| These two namespaces have a set of features and abstractions | These two namespaces have a set of features and abstractions | |||
| that have powered the Internet to what it is today. They also | that have powered the Internet to what it is today. They also | |||
| have a number of weaknesses. Basically, since they are all we | have a number of weaknesses. Basically, since they are all we | |||
| have, we try to do too much with them. Semantic overloading | have, we try to do too much with them. Semantic overloading | |||
| and functionality extensions have greatly complicated these | and functionality extensions have greatly complicated these | |||
| namespaces.</t> | namespaces.</t> | |||
| <t>The proposed Host Identity namespace is also a global namespace, and it fills an important gap between | <t>The proposed Host Identity namespace is also a global namespace, and it fills an important gap between | |||
| the IP and DNS namespaces. A Host Identity conceptually refers | the IP and DNS namespaces. A Host Identity conceptually refers | |||
| to a computing platform, and there may be multiple such Host | to a computing platform, and there may be multiple such Host | |||
| Identities per computing platform (because the platform may wish | Identities per computing platform (because the platform may wish | |||
| to present a different identity to different communicating peers). | to present a different identity to different communicating peers). | |||
| The Host Identity namespace consists of Host Identifiers (HI). | The Host Identity namespace consists of Host Identifiers (HI). | |||
| There is exactly one Host Identifier for each Host Identity | There is exactly one Host Identifier for each Host Identity | |||
| (although there may be transient periods of time such as key | (although there may be transient periods of time such as key | |||
| replacement when more than one identifier may be active). | replacement when more than one identifier may be active). | |||
| While this text later talks about non-cryptographic Host Identifiers, | While this text later talks about non-cryptographic Host Identifiers, | |||
| skipping to change at line 149 ¶ | skipping to change at line 97 ¶ | |||
| to a computing platform, and there may be multiple such Host | to a computing platform, and there may be multiple such Host | |||
| Identities per computing platform (because the platform may wish | Identities per computing platform (because the platform may wish | |||
| to present a different identity to different communicating peers). | to present a different identity to different communicating peers). | |||
| The Host Identity namespace consists of Host Identifiers (HI). | The Host Identity namespace consists of Host Identifiers (HI). | |||
| There is exactly one Host Identifier for each Host Identity | There is exactly one Host Identifier for each Host Identity | |||
| (although there may be transient periods of time such as key | (although there may be transient periods of time such as key | |||
| replacement when more than one identifier may be active). | replacement when more than one identifier may be active). | |||
| While this text later talks about non-cryptographic Host Identifiers, | While this text later talks about non-cryptographic Host Identifiers, | |||
| the architecture focuses on the case in which Host Identifiers are | the 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.</t> | unpublished Host Identifiers.</t> | |||
| <t>There is a subtle but important difference between Host | <t>There is a subtle but important difference between Host | |||
| Identities and Host Identifiers. An Identity refers to the | Identities and Host Identifiers. An Identity refers to the | |||
| abstract entity that is identified. An Identifier, on the other | abstract entity that is identified. An Identifier, on the other | |||
| hand, refers to the concrete bit pattern that is used in the | hand, refers to the concrete bit pattern that is used in the | |||
| identification process.</t> | identification process.</t> | |||
| <t>Although the Host Identifiers could be used in many | <t>Although the Host Identifiers could be used in many | |||
| authentication systems, such as <xref | authentication systems, such as <xref target="RFC7296" format="default">IK | |||
| target="RFC4306">IKEv2</xref>, the presented | Ev2</xref>, the presented | |||
| architecture introduces a new protocol, called the Host Identity | architecture introduces a new protocol, called the Host Identity | |||
| Protocol (HIP), and a cryptographic exchange, called the HIP | Protocol (HIP), and a cryptographic exchange, called the HIP | |||
| base exchange; see also <xref target="control-plane"/>. | base exchange; see also <xref target="control-plane" format="default"/>. | |||
| HIP provides for limited forms of | HIP provides for limited forms of | |||
| trust between systems, enhances mobility, multi-homing and | trust between systems, enhances mobility, multihoming, and | |||
| dynamic IP renumbering, aids in protocol translation / transition, | dynamic IP renumbering, aids in protocol translation and transition, | |||
| and reduces certain types of denial-of-service (DoS) attacks. | and reduces certain types of denial-of-service (DoS) attacks. | |||
| </t> | </t> | |||
| <t>When HIP is used, the actual payload traffic between two HIP | <t>When HIP is used, the actual payload traffic between two HIP | |||
| hosts is typically, but not necessarily, protected with ESP | hosts is typically, but not necessarily, protected with Encapsulating Secu | |||
| <xref target="RFC7402" />. | rity Payload (ESP) | |||
| <xref target="RFC7402" format="default"/>. | ||||
| The Host Identities are used to create the needed ESP Security | The Host Identities are used to create the needed ESP Security | |||
| Associations (SAs) and to authenticate the hosts. When ESP is | Associations (SAs) and to authenticate the hosts. When ESP is | |||
| used, the actual payload IP packets do not differ in any way | used, the actual payload IP packets do not differ in any way | |||
| from standard ESP protected IP packets.</t> | from standard ESP-protected IP packets.</t> | |||
| <t> | <t> | |||
| Much has been learned about HIP <xref target="RFC6538" /> since <xref targ | Much has been learned about HIP <xref target="RFC6538" format="default"/> | |||
| et="RFC4423" /> | since <xref target="RFC4423" format="default"/> | |||
| was published. This document expands Host Identities beyond use | was published. This document expands Host Identities beyond their original | |||
| to enable IP connectivity and security to general interhost secure | use | |||
| signalling at any protocol layer. The signal may establish a security | to enable IP connectivity and security to enable general interhost secure | |||
| association between the hosts, or simply pass information within | signaling at any protocol layer. The signal may establish a security | |||
| association between the hosts or simply pass information within | ||||
| the channel. | the channel. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <name>Terminology</name> | ||||
| <section title="Terminology"> | <section numbered="true" toc="default"> | |||
| <name>Terms Common to Other Documents</name> | ||||
| <?rfc compact="no"?> | <table align="center"> | |||
| <thead> | ||||
| <section title="Terms common to other documents"> | <tr> | |||
| <th align="left">Term</th> | ||||
| <texttable> | <th align="left">Explanation</th> | |||
| <ttcol width="20%" align="left">Term</ttcol> | </tr> | |||
| <ttcol align="left">Explanation</ttcol> | </thead> | |||
| <c>Public key</c><c>The public key of an asymmetric | <tbody> | |||
| <tr> | ||||
| <td align="left">Public key</td> | ||||
| <td align="left">The public key of an asymmetric | ||||
| cryptographic key pair. Used as a publicly known identifier | cryptographic key pair. Used as a publicly known identifier | |||
| for cryptographic identity authentication. | for cryptographic identity authentication. | |||
| Public is a relative term here, ranging from "known to | Public is a relative term here, ranging from "known to | |||
| peers only" to "known to the world."</c> | peers only" to "known to the world".</td> | |||
| </tr> | ||||
| <c>Private key</c><c>The private or secret key of an | <tr> | |||
| <td align="left">Private key</td> | ||||
| <td align="left">The private or secret key of an | ||||
| asymmetric cryptographic key pair. Assumed to be known only | asymmetric cryptographic key pair. Assumed to be known only | |||
| to the party identified by the corresponding public key. | to the party identified by the corresponding public key. | |||
| Used by the identified party to authenticate its identity to | Used by the identified party to authenticate its identity to | |||
| other parties.</c> | other parties.</td> | |||
| </tr> | ||||
| <c>Public key pair</c><c>An asymmetric cryptographic key | <tr> | |||
| <td align="left">Public key pair</td> | ||||
| <td align="left">An asymmetric cryptographic key | ||||
| pair consisting of public and private keys. For example, | pair consisting of public and private keys. For example, | |||
| Rivest-Shamir-Adleman (RSA), Digital Signature Algorithm | Rivest-Shamir-Adleman (RSA), Digital Signature Algorithm | |||
| (DSA) and Elliptic Curve DSA (ECDSA) key pairs are such key pairs.</ | (DSA) and Elliptic Curve DSA (ECDSA) key pairs are such key pairs.</ | |||
| c> | td> | |||
| </tr> | ||||
| <c>End-point</c><c>A communicating entity. For | <tr> | |||
| <td align="left">Endpoint</td> | ||||
| <td align="left">A communicating entity. For | ||||
| historical reasons, the term 'computing platform' is used in | historical reasons, the term 'computing platform' is used in | |||
| this document as a (rough) synonym for end-point.</c> | this document as a (rough) synonym for endpoint.</td> | |||
| </texttable> | </tr> | |||
| </tbody> | ||||
| </table> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <?rfc compact="yes"?> | <name>Terms Specific to This and Other HIP Documents</name> | |||
| <t>It should be noted that many of the terms defined herein | ||||
| <?rfc compact="no"?> | are tautologous, self-referential, or defined through circular | |||
| <section title="Terms specific to this and other HIP documents"> | ||||
| <t>It should be noted that many of the terms defined herein | ||||
| are tautologous, self-referential or defined through circular | ||||
| reference to other terms. This is due to the succinct nature | reference to other terms. This is due to the succinct nature | |||
| of the definitions. See the text elsewhere in this document | of the definitions. See the text elsewhere in this document | |||
| and the base specification <xref target="RFC7401" /> for more elaborate | and the base specification <xref target="RFC7401" format="default"/> for more elaborate | |||
| explanations.</t> | explanations.</t> | |||
| <table align="center"> | ||||
| <texttable> | <thead> | |||
| <ttcol width="20%" align="left">Term</ttcol> | <tr> | |||
| <ttcol align="left">Explanation</ttcol> | <th align="left">Term</th> | |||
| <th align="left">Explanation</th> | ||||
| <c>Computing platform</c><c>An entity capable of | </tr> | |||
| </thead> | ||||
| <tbody> | ||||
| <tr> | ||||
| <td align="left">Computing platform</td> | ||||
| <td align="left">An entity capable of | ||||
| communicating and computing, for example, a computer. See | communicating and computing, for example, a computer. See | |||
| the definition of 'End-point', above.</c> | the definition of 'Endpoint', above.</td> | |||
| </tr> | ||||
| <c></c><c></c> | ||||
| <c>HIP base exchange</c><c>A cryptographic protocol; | ||||
| see also <xref target="control-plane"/></c> | ||||
| <c></c><c></c> | ||||
| <c>HIP packet</c><c>An IP packet that carries a 'Host | ||||
| Identity Protocol' message.</c> | ||||
| <c></c><c></c> | ||||
| <c>Host Identity</c><c>An abstract concept assigned to | ||||
| a 'computing platform'. See 'Host Identifier', below.</c> | ||||
| <c></c><c></c> | <tr> | |||
| <td align="left">HIP base exchange</td> | ||||
| <td align="left">A cryptographic protocol; | ||||
| see also <xref target="control-plane" format="default"/>.</td> | ||||
| </tr> | ||||
| <c>Host Identifier</c><c>A public key used as a name | <tr> | |||
| for a Host Identity.</c> | <td align="left">HIP packet</td> | |||
| <td align="left">An IP packet that carries a 'Host | ||||
| Identity Protocol' message.</td> | ||||
| </tr> | ||||
| <c></c><c></c> | <tr> | |||
| <td align="left">Host Identity</td> | ||||
| <td align="left">An abstract concept assigned to | ||||
| a 'computing platform'. See 'Host Identifier', below.</td> | ||||
| </tr> | ||||
| <c>Host Identity namespace</c><c>A name space | <tr> | |||
| formed by all possible Host Identifiers.</c> | <td align="left">Host Identifier</td> | |||
| <td align="left">A public key used as a name | ||||
| for a Host Identity.</td> | ||||
| </tr> | ||||
| <c></c><c></c> | <tr> | |||
| <td align="left">Host Identity namespace</td> | ||||
| <td align="left">A name space | ||||
| formed by all possible Host Identifiers.</td> | ||||
| </tr> | ||||
| <c>Host Identity Protocol</c><c>A protocol used to | <tr> | |||
| <td align="left">Host Identity Protocol</td> | ||||
| <td align="left">A protocol used to | ||||
| carry and authenticate Host Identifiers and other | carry and authenticate Host Identifiers and other | |||
| information. </c> | information. </td> | |||
| </tr> | ||||
| <c></c><c></c> | ||||
| <c>Host Identity Hash</c><c>The cryptographic hash used | ||||
| in creating the Host Identity Tag from the Host Identifier.</c> | ||||
| <c></c><c></c> | <tr> | |||
| <td align="left">Host Identity Hash</td> | ||||
| <td align="left">The cryptographic hash used | ||||
| in creating the Host Identity Tag from the Host Identifier.</td> | ||||
| </tr> | ||||
| <c>Host Identity Tag</c><c>A 128-bit datum created by | <tr> | |||
| <td align="left">Host Identity Tag</td> | ||||
| <td align="left">A 128-bit datum created by | ||||
| taking a cryptographic hash over a Host Identifier plus | taking a cryptographic hash over a Host Identifier plus | |||
| bits to identify which hash used.</c> | bits to identify which hash was used.</td> | |||
| </tr> | ||||
| <c></c><c></c> | ||||
| <c>Local Scope Identifier</c><c>A 32-bit datum denoting | ||||
| a Host Identity.</c> | ||||
| <c></c><c></c> | <tr> | |||
| <td align="left">Local Scope Identifier</td> | ||||
| <td align="left">A 32-bit datum denoting | ||||
| a Host Identity.</td> | ||||
| </tr> | ||||
| <c>Public Host Identifier and Identity</c><c>A | <tr> | |||
| <td align="left">Public Host Identifier and Identity</td> | ||||
| <td align="left">A | ||||
| published or publicly known Host Identifier used as a public | published or publicly known Host Identifier used as a public | |||
| name for a Host Identity, and the corresponding | name for a Host Identity, and the corresponding | |||
| Identity.</c> | Identity.</td> | |||
| </tr> | ||||
| <c></c><c></c> | ||||
| <c>Unpublished Host Identifier and Identity</c><c>A | <tr> | |||
| <td align="left">Unpublished Host Identifier and Identity</td> | ||||
| <td align="left">A | ||||
| Host Identifier that is not placed in any public directory, | Host Identifier that is not placed in any public directory, | |||
| and the corresponding Host Identity. Unpublished Host | and the corresponding Host Identity. Unpublished Host | |||
| Identities are typically short lived in nature, being often | Identities are typically short lived in nature, being often | |||
| replaced and possibly used just once.</c> | replaced and possibly used just once.</td> | |||
| </tr> | ||||
| <c></c><c></c> | <tr> | |||
| <td align="left">Rendezvous Mechanism</td> | ||||
| <c>Rendezvous Mechanism</c><c>A mechanism used to | <td align="left">A mechanism used to | |||
| locate mobile hosts based on their HIT.</c> | locate mobile hosts based on their HIT.</td> | |||
| </tr> | ||||
| </texttable> | </tbody> | |||
| </table> | ||||
| </section> | </section> | |||
| <?rfc compact="yes"?> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Background"> | <name>Background</name> | |||
| <t>The Internet is built from three principal components: | <t>The Internet is built from three principal components: | |||
| computing platforms (end-points), packet transport | computing platforms (endpoints), packet transport | |||
| (i.e., internetworking) infrastructure, and services | (i.e., internetworking) infrastructure, and services | |||
| (applications). The Internet exists to service two principal | (applications). The Internet exists to service two principal | |||
| components: people and robotic services (silicon-based people, | components: people and robotic services (silicon-based people, | |||
| if you will). All these components need to be named in order to | if you will). All these components need to be named in order to | |||
| interact in a scalable manner. Here we concentrate on naming | interact in a scalable manner. Here we concentrate on naming | |||
| computing platforms and packet transport elements.</t> | computing platforms and packet transport elements.</t> | |||
| <t>There are two principal namespaces in use in the Internet for | <t>There are two principal namespaces in use in the Internet for | |||
| these components: IP addresses, and Domain Names. | these components: IP addresses, and Domain Names. | |||
| Domain Names provide hierarchically assigned names for some | Domain Names provide hierarchically assigned names for some | |||
| computing platforms and some services. Each hierarchy is | computing platforms and some services. Each hierarchy is | |||
| delegated from the level above; there is no anonymity in Domain | delegated from the level above; there is no anonymity in Domain | |||
| Names. Email, HTTP, and SIP addresses all reference Domain | Names. Email, HTTP, and SIP addresses all reference Domain | |||
| Names.</t> | Names.</t> | |||
| <t>The IP addressing namespace has been overloaded to name both | <t>The IP addressing namespace has been overloaded to name both | |||
| interfaces (at layer-3) and endpoints (for the endpoint-specific | interfaces (at Layer 3) and endpoints (for the endpoint-specific | |||
| part of layer-3, and for layer-4). In their role as interface | part of Layer 3 and for Layer 4). In their role as interface | |||
| names, IP addresses are sometimes called "locators" and serve | names, IP addresses are sometimes called "locators" and serve | |||
| as an endpoint within a routing topology.</t> | as an endpoint within a routing topology.</t> | |||
| <t>IP addresses are numbers that name networking interfaces, and typically only | <t>IP addresses are numbers that name networking interfaces, and typically only | |||
| when the interface is connected to the network. Originally, IP | when the interface is connected to the network. Originally, IP | |||
| addresses had long-term significance. Today, the vast number of | addresses had long-term significance. Today, the vast number of | |||
| interfaces use ephemeral and/or non-unique IP addresses. That is, | interfaces use ephemeral and/or non-unique IP addresses. That is, | |||
| every time an interface is connected to the network, it is | every time an interface is connected to the network, it is | |||
| assigned an IP address.</t> | assigned an IP address.</t> | |||
| <t>In the current Internet, the transport layers are coupled to | <t>In the current Internet, the transport layers are coupled to | |||
| the IP addresses. Neither can evolve separately from the other. | the IP addresses. Neither can evolve separately from the other. | |||
| IPng deliberations were strongly shaped by the decision that a | IPng deliberations were strongly shaped by the decision that a | |||
| corresponding TCPng would not be created.</t> | corresponding TCPng would not be created.</t> | |||
| <t>There are three critical deficiencies with the current | <t>There are three critical deficiencies with the current | |||
| namespaces. Firstly, establishing initial contact and sustaining of data | namespaces. First, the establishing of initial contact and the sustaining | |||
| flows | of data flows | |||
| between two hosts can be challenging due to private address realms and eph | between two hosts can be challenging due to private address realms and the | |||
| emeral nature of addresses. | ephemeral nature of addresses. | |||
| Secondly, confidentiality is not provided in a consistent, | Second, confidentiality is not provided in a consistent, | |||
| trustable manner. Finally, authentication for systems and | trustable manner. Finally, authentication for systems and | |||
| datagrams is not provided. All of these deficiencies arise | datagrams is not provided. All of these deficiencies arise | |||
| because computing platforms are not well named with the current | because computing platforms are not well named with the current | |||
| namespaces. </t> | namespaces. </t> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="A desire for a namespace for computing platforms"> | <name>A Desire for a Namespace for Computing Platforms</name> | |||
| <t>An independent namespace for computing platforms could be | <t>An independent namespace for computing platforms could be | |||
| used in end-to-end operations independent of the evolution of | used in end-to-end operations independent of the evolution of | |||
| the internetworking layer and across the many internetworking | the internetworking layer and across the many internetworking | |||
| layers. This could support rapid readdressing of the | layers. This could support rapid readdressing of the | |||
| internetworking layer because of mobility, rehoming, or | internetworking layer because of mobility, rehoming, or | |||
| renumbering.</t> | renumbering.</t> | |||
| <t>If the namespace for computing platforms is based on | ||||
| <t>If the namespace for computing platforms is based on | ||||
| public-key cryptography, it can also provide authentication | public-key cryptography, it can also provide authentication | |||
| services. If this namespace is locally created without | services. If this namespace is locally created without | |||
| requiring registration, it can provide anonymity. </t> | requiring registration, it can provide anonymity. </t> | |||
| <t>Such a namespace (for computing platforms) and the names in | ||||
| <t>Such a namespace (for computing platforms) and the names in | ||||
| it should have the following characteristics: | it should have the following characteristics: | |||
| </t> | ||||
| <list style="symbols"> | <ul spacing="normal"> | |||
| <li>The namespace should be applied to the IP 'kernel' or stack. | ||||
| <t>The namespace should be applied to the IP 'kernel' or stack. | ||||
| The IP stack is the 'component' between applications and the | The IP stack is the 'component' between applications and the | |||
| packet transport infrastructure.</t> | packet transport infrastructure.</li> | |||
| <li>The namespace should fully decouple the internetworking | ||||
| <t>The namespace should fully decouple the internetworking | ||||
| layer from the higher layers. The names should replace | layer from the higher layers. The names should replace | |||
| all occurrences of IP addresses within applications (like | all occurrences of IP addresses within applications (like | |||
| in the Transport Control Block, TCB). This replacement can | in the Transport Control Block, TCB). This replacement can | |||
| be handled transparently for legacy applications as the | be handled transparently for legacy applications as the | |||
| LSIs and HITs are compatible with IPv4 and IPv6 addresses | Local Scope Identifiers (LSIs) and HITs are compatible with IPv4 and | |||
| <xref target="RFC5338" />. However, HIP-aware applications | IPv6 addresses | |||
| <xref target="RFC5338" format="default"/>. However, HIP-aware applica | ||||
| tions | ||||
| require some modifications from the developers, who may | require some modifications from the developers, who may | |||
| employ networking API extensions for HIP <xref | employ networking API extensions for HIP <xref target="RFC6317" forma | |||
| target="RFC6317" />.</t> | t="default"/>.</li> | |||
| <li>The introduction of the namespace should not mandate | ||||
| <t>The introduction of the namespace should not mandate | ||||
| any administrative infrastructure. Deployment must come | any administrative infrastructure. Deployment must come | |||
| from the bottom up, in a pairwise deployment.</t> | from the bottom up, in a pairwise deployment.</li> | |||
| <li>The names should have a fixed-length representation, | ||||
| <t>The names should have a fixed-length representation, | ||||
| for easy inclusion in datagram headers and existing | for easy inclusion in datagram headers and existing | |||
| programming interfaces (e.g the TCB).</t> | programming interfaces (e.g., the TCB).</li> | |||
| <li>Using the namespace should be affordable when used in | ||||
| <t>Using the namespace should be affordable when used in | ||||
| protocols. This is primarily a packet size issue. There | protocols. This is primarily a packet size issue. There | |||
| is also a computational concern in affordability.</t> | is also a computational concern in affordability.</li> | |||
| <li>Name collisions should be avoided as much as possible. The | ||||
| <t>Name collisions should be avoided as much as possible. The | ||||
| mathematics of the birthday paradox can be used to estimate | mathematics of the birthday paradox can be used to estimate | |||
| the chance of a collision in a given population and hash space. | the chance of a collision in a given population and hash space. | |||
| In general, for a random hash space of size n bits, we would | In general, for a random hash space of size n bits, we would | |||
| expect to obtain a collision after approximately 1.2*sqrt(2**n) | expect to obtain a collision after approximately 1.2*sqrt(2<sup>n</s up>) | |||
| hashes were obtained. For 64 bits, this number is roughly | hashes were obtained. For 64 bits, this number is roughly | |||
| 4 billion. A hash size of 64 bits may be too small to avoid | 4 billion. A hash size of 64 bits may be too small to avoid | |||
| collisions in a large population; for example, there is a 1% | collisions in a large population; for example, there is a 1% | |||
| chance of collision in a population of 640M. For 100 bits | chance of collision in a population of 640M. For 100 bits | |||
| (or more), we would not expect a collision until approximately | (or more), we would not expect a collision until approximately | |||
| 2**50 (1 quadrillion) hashes were generated. With the currently used | 2<sup>50</sup> (1 quadrillion) hashes were generated. With the curre | |||
| hash size of 96 bits | ntly used hash size of 96 bits | |||
| <xref target="RFC7343" />, the figure is 2**48 (281 trillions). | <xref target="RFC7343" format="default"/>, the figure is 2<sup>48</s | |||
| <!-- Besides accidental | up> (281 trillions). | |||
| collisions, it is also worth noting that intentional collisions | </li> | |||
| are difficult to accomplish because generating a valid, colliding has | <li>The names should have a localized abstraction so that they can be | |||
| h | used in existing protocols and APIs.</li> | |||
| along with its private-public key is computationally challenging. --> | <li>It must be possible to create names locally. When such names | |||
| </t> | ||||
| <t>The names should have a localized abstraction so that they can be | ||||
| used in existing protocols and APIs.</t> | ||||
| <?rfc needLines="8"?> | ||||
| <t>It must be possible to create names locally. When such names | ||||
| are not published, this can provide anonymity at the cost of | are not published, this can provide anonymity at the cost of | |||
| making resolvability very difficult. | making resolvability very difficult. | |||
| </li> | ||||
| <!-- | <li>The namespace should provide authentication services.</li> | |||
| <list style="symbols"> | <li>The names should be long-lived, but replaceable at any | |||
| <t>Sometimes the names may contain a delegation | ||||
| component. This is the cost of resolvability.</t> | ||||
| </list> | ||||
| --> | ||||
| </t> | ||||
| <t>The namespace should provide authentication services.</t> | ||||
| <t>The names should be long-lived, but replaceable at any | ||||
| time. This impacts access control lists; short lifetimes | time. This impacts access control lists; short lifetimes | |||
| will tend to result in tedious list maintenance or require | will tend to result in tedious list maintenance or require | |||
| a namespace infrastructure for central control of access | a namespace infrastructure for central control of access | |||
| lists.</t> | lists.</li> | |||
| </ul> | ||||
| </list> | ||||
| </t> | ||||
| <t>In this document, the namespace approaching these ideas | <t>In this document, the namespace approaching these ideas | |||
| is called the Host Identity namespace. Using Host Identities | is called the Host Identity namespace. Using Host Identities | |||
| requires its own protocol layer, the Host Identity Protocol, | requires its own protocol layer, the Host Identity Protocol, | |||
| between the internetworking and transport layers. The names | between the internetworking and transport layers. The names | |||
| are based on public-key cryptography to supply authentication | are based on public-key cryptography to supply authentication | |||
| services. Properly designed, it can deliver all of the above-stated | services. Properly designed, it can deliver all of the above-stated | |||
| requirements.</t> | requirements.</t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Host Identity namespace"> | <name>Host Identity Namespace</name> | |||
| <t>A name in the Host Identity namespace, a Host Identifier | <t>A name in the Host Identity namespace, a Host Identifier | |||
| (HI), represents a statistically globally unique name for naming | (HI), represents a statistically globally unique name for naming | |||
| any system with an IP stack. This identity is normally | any system with an IP stack. This identity is normally | |||
| associated with, but not limited to, an IP stack. A system can | associated with, but not limited to, an IP stack. A system can | |||
| have multiple identities, some 'well known', some unpublished or | have multiple identities, some 'well known', some unpublished or | |||
| 'anonymous'. A system may self-assert its own identity, or may | 'anonymous'. A system may self-assert its own identity, or may | |||
| use a third-party authenticator like DNSSEC <xref | use a third-party authenticator like DNSSEC <xref target="RFC4033" format= | |||
| target="RFC2535" />, PGP, or X.509 to 'notarize' the identity | "default"/>, Pretty Good Privacy (PGP), or X.509 to 'notarize' the identity | |||
| assertion to another namespace. <!-- It is expected that the Host Identif | assertion to another namespace. </t> | |||
| iers will | ||||
| initially be authenticated with DNSSEC and that all | ||||
| implementations will support DNSSEC as a minimal baseline. --> </t> | ||||
| <t>In theory, any name that can claim to be 'statistically | <t>In theory, any name that can claim to be 'statistically | |||
| globally unique' may serve as a Host Identifier. In the HIP | globally unique' may serve as a Host Identifier. In the HIP | |||
| architecture, the public key of a private-public key pair has | architecture, the public key of a private-public key pair has | |||
| been chosen as the Host Identifier because it can be self-managed | been chosen as the Host Identifier because it can be self-managed | |||
| and it is computationally difficult to forge. As | and it is computationally difficult to forge. As | |||
| specified in the Host Identity Protocol <xref | specified in the Host Identity Protocol specification <xref target="RFC740 | |||
| target="RFC7401" /> specification, a public-key-based HI can | 1" format="default"/>, a public-key-based HI can | |||
| authenticate the HIP packets and protect them from man-in-the-middle | authenticate the HIP packets and protect them from man-in-the-middle (MitM | |||
| ) | ||||
| attacks. Since authenticated datagrams are | attacks. Since authenticated datagrams are | |||
| mandatory to provide much of HIP's denial-of-service protection, | mandatory to provide much of HIP's denial-of-service protection, | |||
| the Diffie-Hellman exchange in HIP base exchange has to be authenticated. | the Diffie-Hellman exchange in HIP base exchange has to be authenticated. | |||
| Thus, only public-key HI and authenticated HIP messages are | Thus, only public-key HI and authenticated HIP messages are | |||
| supported in practice.</t> | supported in practice.</t> | |||
| <t> | <t> | |||
| <!-- In this document, the non-cryptographic forms of HI and HIP | ||||
| are presented to complete the theory of HI, but they should not | ||||
| be implemented as they could produce worse denial-of-service | ||||
| attacks than the Internet has without Host Identity. --> | ||||
| In this document, some non-cryptographic forms of HI and HIP are reference d, but | In this document, some non-cryptographic forms of HI and HIP are reference d, but | |||
| cryptographic forms SHOULD be preferred because they are more secure than their non-cryptographic counterparts. | cryptographic forms should be preferred because they are more secure than their non-cryptographic counterparts. | |||
| There has | There has | |||
| been past research in challenge puzzles to use non-cryptographic | been past research in challenge puzzles using non-cryptographic | |||
| HI, for Radio Frequency IDentification (RFID), in an HIP | HI for Radio Frequency IDentification (RFID), in an HIP | |||
| exchange tailored to the workings of such challenges (as | exchange tailored to the workings of such challenges (as | |||
| described further in <xref target="urien-rfid" /> and <xref | described further in <xref target="urien-rfid" format="default"/> and <xre | |||
| target="urien-rfid-draft" />).</t> | f target="I-D.irtf-hiprg-rfid" format="default"/>).</t> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Host Identifiers"> | <name>Host Identifiers</name> | |||
| <t>Host Identity adds two main features to Internet protocols. | ||||
| <t>Host Identity adds two main features to Internet protocols. | ||||
| The first is a decoupling of the internetworking and transport | The first is a decoupling of the internetworking and transport | |||
| layers; see <xref target="sec-architecture" />. This | layers; see <xref target="sec-architecture" format="default"/>. This | |||
| decoupling will allow for independent evolution of the two | decoupling will allow for independent evolution of the two | |||
| layers. Additionally, it can provide end-to-end services over | layers. Additionally, it can provide end-to-end services over | |||
| multiple internetworking realms. The second feature is host | multiple internetworking realms. The second feature is host | |||
| authentication. Because the Host Identifier is a public key, | authentication. Because the Host Identifier is a public key, | |||
| this key can be used for authentication in security protocols | this key can be used for authentication in security protocols | |||
| like ESP.</t> | like ESP.</t> | |||
| <t>An identity is based on public-private key cryptography in HIP. | ||||
| <t>An identity is based on public-private key cryptography in HIP. | ||||
| The Host Identity is referred to by its public component, the public | The Host Identity is referred to by its public component, the public | |||
| key. Thus, the name representing a Host Identity in the Host | key. Thus, the name representing a Host Identity in the Host | |||
| Identity namespace, i.e., the Host Identifier, is the public | Identity namespace, i.e., the Host Identifier, is the public | |||
| key. In a way, the possession of the private key defines the | key. In a way, the possession of the private key defines the | |||
| Identity itself. If the private key is possessed by more than | Identity itself. If the private key is possessed by more than | |||
| one node, the Identity can be considered to be a distributed | one node, the Identity can be considered to be a distributed | |||
| one.</t> | one.</t> | |||
| <t>Architecturally, any other Internet naming convention might | ||||
| <t>Architecturally, any other Internet naming convention might | ||||
| form a usable base for Host Identifiers. However, | form a usable base for Host Identifiers. However, | |||
| non-cryptographic names should only be used in situations of | non-cryptographic names should only be used in situations of | |||
| high trust - low risk. That is any place where host | high trust and/or low risk. That is any place where host | |||
| authentication is not needed (no risk of host spoofing) and no | authentication is not needed (no risk of host spoofing) and no | |||
| use of ESP. However, at least for interconnected networks | use of ESP. However, at least for interconnected networks | |||
| spanning several operational domains, the set of environments | spanning several operational domains, the set of environments | |||
| where the risk of host spoofing allowed by non-cryptographic | where the risk of host spoofing allowed by non-cryptographic | |||
| Host Identifiers is acceptable is the null set. Hence, the | Host Identifiers is acceptable is the null set. Hence, the | |||
| current HIP documents do not specify how to use any other | current HIP documents do not specify how to use any other | |||
| types of Host Identifiers but public keys. For instance, | types of Host Identifiers but public keys. For instance, | |||
| Back-to-My-Mac <xref target="RFC6281" /> from Apple comes | the Back to My Mac service <xref target="RFC6281" format="default"/> from Apple comes | |||
| pretty close to the functionality of HIP, but unlike HIP, it | pretty close to the functionality of HIP, but unlike HIP, it | |||
| is based on non-cryptographic identifiers. | is based on non-cryptographic identifiers. | |||
| </t> | </t> | |||
| <t>The actual Host Identifiers are never directly used at the | ||||
| <t>The actual Host Identifiers are never directly used at the | ||||
| transport or network layers. The corresponding Host | transport or network layers. The corresponding Host | |||
| Identifiers (public keys) may be stored in various DNS or other | Identifiers (public keys) may be stored in various DNS or other | |||
| directories as identified elsewhere in this document, and they | directories as identified elsewhere in this document, and they | |||
| are passed in the HIP base exchange. A Host Identity Tag | are passed in the HIP base exchange. A Host Identity Tag | |||
| (HIT) is used in other protocols to represent the Host | (HIT) is used in other protocols to represent the Host | |||
| Identity. Another representation of the Host Identities, the | Identity. Another representation of the Host Identities, the | |||
| Local Scope Identifier (LSI), can also be used in protocols | Local Scope Identifier (LSI), can also be used in protocols | |||
| and APIs.</t> | and APIs.</t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Host Identity Hash (HIH)"> | <name>Host Identity Hash (HIH)</name> | |||
| <t>The Host Identity Hash (HIH) is the cryptographic hash algorithm used | ||||
| <t>The Host Identity Hash (HIH) is the cryptographic hash algorithm used | in | |||
| in | ||||
| producing the HIT from the HI. It is also the hash used | producing the HIT from the HI. It is also the hash used | |||
| throughout the HIP protocol for consistency and simplicity. It | throughout HIP for consistency and simplicity. It | |||
| is possible for the two hosts in the HIP exchange to use | is possible for the two hosts in the HIP exchange to use | |||
| different hash algorithms.</t> | different hash algorithms.</t> | |||
| <t>Multiple HIHs within HIP are needed to address the moving | <t>Multiple HIHs within HIP are needed to address the moving | |||
| target of creation and eventual compromise of cryptographic | target of creation and eventual compromise of cryptographic | |||
| hashes. This significantly complicates HIP and offers an | hashes. This significantly complicates HIP and offers an | |||
| attacker an additional downgrade attack that is mitigated | attacker an additional downgrade attack that is mitigated | |||
| in the HIP protocol <xref target="RFC7401" />.</t> | in HIP <xref target="RFC7401" format="default"/>.</t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Host Identity Tag (HIT)"> | <name>Host Identity Tag (HIT)</name> | |||
| <t>A Host Identity Tag (HIT) is a 128-bit representation for a Host | ||||
| <t>A Host Identity Tag (HIT) is a 128-bit representation for a Host | Identity. Due to its size, it is suitable for use in the existing sockets | |||
| Identity. Due to its size, it is suitable to be used in the existing sock | API in | |||
| ets API in | ||||
| the place of IPv6 addresses (e.g., in sockaddr_in6 structure, sin6_addr m ember) without modifying applications. | the place of IPv6 addresses (e.g., in sockaddr_in6 structure, sin6_addr m ember) without modifying applications. | |||
| It is created from an HIH, an IPv6 prefix <xref target="RFC7343" | It is created from an HIH, an IPv6 prefix <xref target="RFC7343" format= | |||
| /> and a hash identifier. There are two advantages of using | "default"/>, and a hash identifier. There are two advantages of using | |||
| the HIT over using the Host Identifier in protocols. Firstly, | the HIT over using the Host Identifier in protocols. First, | |||
| its fixed length makes for easier protocol coding and also | its fixed length makes for easier protocol coding and also | |||
| better manages the packet size cost of this technology. | better manages the packet size cost of this technology. | |||
| Secondly, it presents the identity in a consistent format to | Second, it presents the identity in a consistent format to | |||
| the protocol independent of the cryptographic algorithms | the protocol independent of the cryptographic algorithms | |||
| used.</t> | used.</t> | |||
| <t>In essence, the HIT is a hash over the public key. As such, | <t>In essence, the HIT is a hash over the public key. As such, | |||
| two algorithms affect the generation of a HIT: the public-key | two algorithms affect the generation of a HIT: the public-key | |||
| algorithm of the HI and the used HIH. The two algorithms are | algorithm of the HI and the used HIH. The two algorithms are | |||
| encoded in the bit presentation of the HIT. As the two | encoded in the bit presentation of the HIT. As the two | |||
| communicating parties may support different algorithms, <xref | communicating parties may support different algorithms, <xref target="RF | |||
| target="RFC7401" /> defines the minimum set for | C7401" format="default"/> defines the minimum set for | |||
| interoperability. For further interoperability, the responder | interoperability. For further interoperability, the Responder | |||
| may store its keys in DNS records, and thus the initiator may | may store its keys in DNS records, and thus the Initiator may | |||
| have to couple destination HITs with appropriate source HITs | have to couple destination HITs with appropriate source HITs | |||
| according to matching HIH.</t> | according to matching HIH.</t> | |||
| <t>In the HIP packets, the HITs identify the sender and | <t>In the HIP packets, the HITs identify the sender and | |||
| recipient of a packet. Consequently, a HIT should be unique | recipient of a packet. Consequently, a HIT should be unique | |||
| in the whole IP universe as long as it is being used. In the | in the whole IP universe as long as it is being used. In the | |||
| extremely rare case of a single HIT mapping to more than one | extremely rare case of a single HIT mapping to more than one | |||
| Host Identity, the Host Identifiers (public keys) will make | Host Identity, the Host Identifiers (public keys) will make | |||
| the final difference. If there is more than one public key | the final difference. If there is more than one public key | |||
| for a given node, the HIT acts as a hint for the correct | for a given node, the HIT acts as a hint for the correct | |||
| public key to use.</t> | public key to use.</t> | |||
| <t>Although it may be rare for an accidental collision to cause a single | ||||
| <t>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 <xref target="RFC7401" />, this resistance is | output used. Through HIPv2 <xref target="RFC7401" format="default"/>, th | |||
| 96 bits | is 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 <xref target="RFC7343" />). 96 bits of res | presence of the Overlay Routable Cryptographic Hash Identifiers (ORCHID) | |||
| istance | prefix <xref target="RFC7343" format="default"/>). 96 bits of resistance | |||
| was considered acceptable strength during the design of HIP, but may | was considered acceptable strength during the design of HIP but may | |||
| eventually be considered insufficient for the threat model of an | eventually be considered insufficient for the threat model of an | |||
| envisioned deployment. One possible mitigation would be to augment | envisioned deployment. One possible mitigation would be to augment | |||
| the use of HITs in the deployment with the HIs themselves (and | the use of HITs in the deployment with the HIs themselves (and | |||
| mechanisms to securely bind the HIs to the HITs), so that the HI | mechanisms to securely bind the HIs to the HITs), so that the HI | |||
| becomes the final authority. It also may be possible to increase | becomes the final authority. It also may be possible to increase | |||
| the difficulty of brute force attack by making the generation of the | the difficulty of a brute force attack by making the generation of the | |||
| HI more computationally difficult, such as the hash extension | HI more computationally difficult, such as the hash extension | |||
| approach of SEND CGAs <xref target="RFC3972" />, although the HIP specifi cations | approach of Secure Neighbor Discovery Cryptographically Generated Address es (CGAs) <xref target="RFC3972" format="default"/>, although the HIP specificat ions | |||
| through HIPv2 do not provide such a mechanism. Finally, deployments | through HIPv2 do not provide such a mechanism. Finally, deployments | |||
| that do not use ORCHIDs (such as certain types of overlay networks) | 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 | might also use the full 128-bit width of an IPv6 address field for | |||
| the HIT.</t> | the HIT.</t> | |||
| </section> | </section> | |||
| <section anchor="lsi" numbered="true" toc="default"> | ||||
| <section title="Local Scope Identifier (LSI)" anchor="lsi"> | <name>Local Scope Identifier (LSI)</name> | |||
| <t>An LSI is a 32-bit localized representation for a Host | ||||
| <t>An LSI is a 32-bit localized representation for a Host | ||||
| Identity. | Identity. | |||
| Due to its size, it is suitable to be used in the existing sockets API i n | Due to its size, it is suitable for use in the existing sockets API in | |||
| the place of IPv4 addresses (e.g., in sockaddr_in structure, sin_addr mem ber) without modifying applications. | the place of IPv4 addresses (e.g., in sockaddr_in structure, sin_addr mem ber) without modifying applications. | |||
| The purpose of an LSI is to facilitate using Host | The purpose of an LSI is to facilitate using Host | |||
| Identities in existing APIs for IPv4-based | Identities in existing APIs for IPv4-based | |||
| applications. | applications. | |||
| LSIs are never transmitted on the wire; when an application | LSIs are never transmitted on the wire; when an application | |||
| sends data using a pair of LSIs, the HIP layer (or sockets | sends data using a pair of LSIs, the HIP layer (or sockets | |||
| handler) translates the LSIs to the corresponding HITs, and | handler) translates the LSIs to the corresponding HITs, and | |||
| vice versa for receiving of data. | vice versa for the receiving of data. | |||
| Besides facilitating HIP-based connectivity for | Besides facilitating HIP-based connectivity for | |||
| legacy IPv4 applications, the LSIs are beneficial in two other | legacy IPv4 applications, the LSIs are beneficial in two other | |||
| scenarios <xref target="RFC6538" />.</t> | scenarios <xref target="RFC6538" format="default"/>.</t> | |||
| <t>In the first scenario, two IPv4-only applications | ||||
| <t>In the first scenario, two IPv4-only applications are | reside on two separate hosts connected by IPv6-only | |||
| residing on two separate hosts connected by IPv6-only | ||||
| network. With HIP-based connectivity, the two applications are | network. With HIP-based connectivity, the two applications are | |||
| able to communicate despite of the mismatch in the protocol | able to communicate despite the mismatch in the protocol | |||
| families of the applications and the underlying network. The | families of the applications and the underlying network. The | |||
| reason is that the HIP layer translates the LSIs originating | reason is that the HIP layer translates the LSIs originating | |||
| from the upper layers into routable IPv6 locators before | from the upper layers into routable IPv6 locators before | |||
| delivering the packets on the wire.</t> | delivering the packets on the wire.</t> | |||
| <t>The second scenario is the same as the first one, but with | <t>The second scenario is the same as the first one, but with | |||
| the difference that one of the applications supports only | the difference that one of the applications supports only | |||
| IPv6. Now two obstacles hinder the communication between the | IPv6. Now two obstacles hinder the communication between the | |||
| application: the addressing families of the two applications | applications: the addressing families of the two applications | |||
| differ, and the application residing at the IPv4-only side is | differ, and the application residing at the IPv4-only side is | |||
| again unable to communicate because of the mismatch between | again unable to communicate because of the mismatch between | |||
| addressing families of the application (IPv4) and network | addressing families of the application (IPv4) and network | |||
| (IPv6). With HIP-based connectivity for applications, this | (IPv6). With HIP-based connectivity for applications, this | |||
| scenario works; the HIP layer can choose whether to translate | scenario works; the HIP layer can choose whether to translate | |||
| the locator of an incoming packet into an LSI or HIT.</t> | the locator of an incoming packet into an LSI or HIT.</t> | |||
| <t>Effectively, LSIs improve IPv6 interoperability at the | <t>Effectively, LSIs improve IPv6 interoperability at the | |||
| network layer as described in the first scenario and at the | network layer as described in the first scenario and at the | |||
| application layer as depicted in the second example. The | application layer as depicted in the second example. The | |||
| interoperability mechanism should not be used to avoid | interoperability mechanism should not be used to avoid | |||
| transition to IPv6; the authors firmly believe in IPv6 | transition to IPv6; the authors firmly believe in IPv6 | |||
| adoption and encourage developers to port existing IPv4-only | adoption and encourage developers to port existing IPv4-only | |||
| applications to use IPv6. However, some proprietary, | applications to use IPv6. However, some proprietary, | |||
| closed-source, IPv4-only applications may never see the | closed-source, IPv4-only applications may never see the | |||
| daylight of IPv6, and the LSI mechanism is suitable for | daylight of IPv6, and the LSI mechanism is suitable for | |||
| extending the lifetime of such applications even in IPv6-only | extending the lifetime of such applications even in IPv6-only | |||
| skipping to change at line 690 ¶ | skipping to change at line 588 ¶ | |||
| network layer as described in the first scenario and at the | network layer as described in the first scenario and at the | |||
| application layer as depicted in the second example. The | application layer as depicted in the second example. The | |||
| interoperability mechanism should not be used to avoid | interoperability mechanism should not be used to avoid | |||
| transition to IPv6; the authors firmly believe in IPv6 | transition to IPv6; the authors firmly believe in IPv6 | |||
| adoption and encourage developers to port existing IPv4-only | adoption and encourage developers to port existing IPv4-only | |||
| applications to use IPv6. However, some proprietary, | applications to use IPv6. However, some proprietary, | |||
| closed-source, IPv4-only applications may never see the | closed-source, IPv4-only applications may never see the | |||
| daylight of IPv6, and the LSI mechanism is suitable for | daylight of IPv6, and the LSI mechanism is suitable for | |||
| extending the lifetime of such applications even in IPv6-only | extending the lifetime of such applications even in IPv6-only | |||
| networks.</t> | networks.</t> | |||
| <t>The main disadvantage of an LSI is its local | <t>The main disadvantage of an LSI is its local | |||
| scope. Applications may violate layering principles and pass | scope. Applications may violate layering principles and pass | |||
| LSIs to each other in application-layer protocols. As the LSIs | LSIs to each other in application-layer protocols. As the LSIs | |||
| are valid only in the context of the local host, they may | are valid only in the context of the local host, they may | |||
| represent an entirely different host when passed to another | represent an entirely different host when passed to another | |||
| host. However, it should be emphasized here that the LSI | host. However, it should be emphasized here that the LSI | |||
| concept is effectively a host-based NAT and does not introduce | concept is effectively a host-based NAT and does not introduce | |||
| any more issues than the prevalent middlebox based NATs for | any more issues than the prevalent middlebox-based NATs for | |||
| IPv4. In other words, the applications violating layering | IPv4. In other words, the applications violating layering | |||
| principles are already broken by the NAT boxes that are | principles are already broken by the NAT boxes that are | |||
| ubiquitously deployed.</t> | ubiquitously deployed.</t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Storing Host Identifiers in directories"> | <name>Storing Host Identifiers in Directories</name> | |||
| <t>The public Host Identifiers should be stored in DNS; the | ||||
| <t>The public Host Identifiers should be stored in DNS; the | ||||
| unpublished Host Identifiers should not be stored anywhere | unpublished Host Identifiers should not be stored anywhere | |||
| (besides the communicating hosts themselves). The (public) HI | (besides the communicating hosts themselves). The (public) HI | |||
| along with the supported HIHs are stored in a new RR type. This RR type | along with the supported HIHs are stored in a new Resource Record (RR) t | |||
| is defined in <xref target="RFC8005">HIP DNS Extension</xref>.</t> | ype. This RR type | |||
| is defined in the <xref target="RFC8005" format="default">HIP DNS extens | ||||
| ion</xref>.</t> | ||||
| <t>Alternatively, or in addition to storing Host Identifiers | <t>Alternatively, or in addition to storing Host Identifiers | |||
| in the DNS, they may be stored in various other | in the DNS, they may be stored in various other | |||
| directories. For instance, a directory based on the | directories. For instance, a directory based on the | |||
| Lightweight Directory Access Protocol (LDAP) or a Public Key | Lightweight Directory Access Protocol (LDAP) or a Public Key | |||
| Infrastructure (PKI) <xref target="RFC8002" /> may be used. | Infrastructure (PKI) <xref target="RFC8002" format="default"/> may be u | |||
| Alternatively, <xref target="RFC6537">Distributed Hash Tables (DHTs)</xr | sed. | |||
| ef> have | Alternatively, <xref target="RFC6537" format="default">Distributed Hash | |||
| successfully been utilized <xref target="RFC6538" />. Such a | Tables (DHTs)</xref> have | |||
| successfully been utilized <xref target="RFC6538" format="default"/>. S | ||||
| uch a | ||||
| practice may allow them to be used for purposes other than | practice may allow them to be used for purposes other than | |||
| pure host identification.</t> | pure host identification.</t> | |||
| <t>Some types of applications may cache and use Host | <t>Some types of applications may cache and use Host | |||
| Identifiers directly, while others may indirectly discover | Identifiers directly, while others may indirectly discover | |||
| them through symbolic host name (such as FQDN) look up from a | them through a symbolic host name (such as a Fully Qualified Domain Name (FQDN)) look up from a | |||
| directory. Even though Host Identities can have a | directory. Even though Host Identities can have a | |||
| substantially longer lifetime associated with them than | substantially longer lifetime associated with them than | |||
| routable IP addresses, directories may be a better approach to | routable IP addresses, directories may be a better approach to | |||
| manage the lifespan of Host Identities. For example, an LDAP-based direc tory or DHT | manage the lifespan of Host Identities. For example, an LDAP-based direc tory or DHT | |||
| can be used for locally published identities whereas DNS | can be used for locally published identities whereas DNS | |||
| can be more suitable for public advertisement.</t> | can be more suitable for public advertisement.</t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="sec-architecture" numbered="true" toc="default"> | ||||
| <section anchor="sec-architecture" title="New stack architecture"> | <name>New Stack Architecture</name> | |||
| <t>One way to characterize Host Identity is to compare the | <t>One way to characterize Host Identity is to compare the | |||
| proposed HI-based architecture with the current one. | proposed HI-based architecture with the current one. | |||
| <!-- As discussed above, the IP addresses can be seen to be a confounding of routing direction vectors and interface names. --> | ||||
| Using the | Using the | |||
| terminology from the <xref target="nsrg-report">IRTF | terminology from the <xref target="I-D.irtf-nsrg-report" format="default"> IRTF | |||
| Name Space Research Group Report</xref> and, e.g., the | Name Space Research Group Report</xref> and, e.g., the | |||
| unpublished Internet-Draft <xref | document on <xref target="chiappa-endpoints" format="default">"Endpoints a | |||
| target="chiappa-endpoints">Endpoints and Endpoint Names </xref>, | nd Endpoint Names"</xref>, | |||
| the IP addresses currently embody the dual role | the IP addresses currently embody the dual role | |||
| of locators and end-point identifiers. That is, each IP address | of locators and endpoint identifiers. That is, each IP address | |||
| names a topological location in the Internet, thereby acting as | names a topological location in the Internet, thereby acting as | |||
| a routing direction vector, or locator. At the same time, the IP | a routing direction vector, or locator. At the same time, the IP | |||
| address names the physical network interface currently located | address names the physical network interface currently located | |||
| at the point-of-attachment, thereby acting as a end-point | at the point-of-attachment, thereby acting as an endpoint | |||
| name.</t> | name.</t> | |||
| <t>In the HIP architecture, the endpoint names and locators are | ||||
| <t>In the HIP architecture, the end-point names and locators are | ||||
| separated from each other. IP addresses continue to act as | separated from each other. IP addresses continue to act as | |||
| locators. The Host Identifiers take the role of end-point | locators. The Host Identifiers take the role of endpoint | |||
| identifiers. It is important to understand that the end-point | identifiers. It is important to understand that the endpoint | |||
| names based on Host Identities are slightly different from | names based on Host Identities are slightly different from | |||
| interface names; a Host Identity can be simultaneously reachable | interface names; a Host Identity can be simultaneously reachable | |||
| through several interfaces.</t> | through several interfaces.</t> | |||
| <t>The difference between the bindings of the logical entities | <t>The difference between the bindings of the logical entities | |||
| are illustrated in <xref target="figure-bindings"/>. The left side | are illustrated in <xref target="fig-1"/>. The left side | |||
| illustrates the current TCP/IP architecture and the right side the | illustrates the current TCP/IP architecture and the right side the | |||
| HIP-based architecture.</t> | HIP-based architecture.</t> | |||
| <figure anchor="fig-1"> | ||||
| <figure anchor="figure-bindings"> | <artwork><![CDATA[ | |||
| <artwork src="draft-ietf-hip-arch-1.gif" type="gif"> | ||||
| 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 | |||
| </artwork> | ]]></artwork> | |||
| </figure> | </figure> | |||
| <t>Architecturally, HIP provides for a different binding of | ||||
| <t>Architecturally, HIP provides for a different binding of | ||||
| transport-layer protocols. That is, the transport-layer | transport-layer protocols. That is, the transport-layer | |||
| associations, i.e., TCP connections and UDP associations, are | associations, i.e., TCP connections and UDP associations, are | |||
| no longer bound to IP addresses but rather to Host | no longer bound to IP addresses but rather to Host | |||
| Identities. In practice, the Host Identities are exposed as | Identities. In practice, the Host Identities are exposed as | |||
| LSIs and HITs for legacy applications and the transport layer | LSIs and HITs for legacy applications and the transport layer | |||
| to facilitate backward compatibility with existing networking | to facilitate backward compatibility with existing networking | |||
| APIs and stacks.</t> | APIs and stacks.</t> | |||
| <t>The HIP layer is logically located at Layer 3.5, between the | ||||
| <t>The HIP layer is logically located at layer 3.5, between the | ||||
| transport and network layers, in the networking stack. It acts | transport and network layers, in the networking stack. It acts | |||
| as shim layer for transport data utilizing LSIs or HITs, but | as shim layer for transport data utilizing LSIs or HITs but | |||
| leaves other data intact. The HIP layer translates between the two | leaves other data intact. The HIP layer translates between the two | |||
| forms of HIP identifiers originating from the transport layer | forms of HIP identifiers originating from the transport layer | |||
| into routable IPv4/IPv6 addresses for the network layer, and | into routable IPv4/IPv6 addresses for the network layer and | |||
| vice versa for the reverse direction.</t> | vice versa for the reverse direction.</t> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="On the multiplicity of identities"> | <name>On the Multiplicity of Identities</name> | |||
| <t>A host may have multiple identities both at the client and | <t>A host may have multiple identities both at the client and | |||
| server side. This raises some additional concerns that are | server side. This raises some additional concerns that are | |||
| addressed in this section.</t> | addressed in this section.</t> | |||
| <!-- Joel Harper: | ||||
| In section 5.1 paragraph 3, the text talks about a connecting client not | ||||
| specifying a responder identifier (HIP Opportunistic mode) in order to | ||||
| enable load balancing. I think the text would be helped by an example of | ||||
| how an initiator might know to do this, rather than just not using HIP. | ||||
| Also, it would be good if the text was explicit as to whether or not there | ||||
| was a way to support load balancing / multi servers without either using a | ||||
| shared identity or sacrificing security by using Opportunistic HIP. | ||||
| --> | ||||
| <t>For security reasons, it may be a bad idea to duplicate the | <t>For security reasons, it may be a bad idea to duplicate the | |||
| same Host Identity on multiple hosts because the compromise of | same Host Identity on multiple hosts because the compromise of | |||
| a single host taints the identities of the other hosts. | a single host taints the identities of the other hosts. | |||
| Management of machines with identical Host Identities may also | Management of machines with identical Host Identities may also | |||
| present other challenges and, therefore, it is advisable to | present other challenges and, therefore, it is advisable to | |||
| have a unique identity for each host.</t> | have a unique identity for each host.</t> | |||
| <t>At the server side, utilizing DNS is a better alternative than a | ||||
| <t>At the server side, utilizing DNS is a better alternative than a | ||||
| shared Host Identity to implement load balancing. A single FQDN entry ca n be configured | shared Host Identity to implement load balancing. A single FQDN entry ca n be configured | |||
| to refer to multiple Host Identities. Each of the FQDN entries | to refer to multiple Host Identities. Each of the FQDN entries | |||
| can be associated with the related locators, or a single | can be associated with the related locators or with a single | |||
| shared locator in the case the servers are using the same HIP rendezvous | shared locator in the case the servers are using the same HIP rendezvous | |||
| server <xref | server (<xref target="sec_rvz" format="default"/>) or HIP relay server (<xref ta | |||
| target="sec:rvz" /> or HIP relay server <xref | rget="sec_relay" format="default"/>).</t> | |||
| target="sec:relay" />.</t> | ||||
| <t>Instead of duplicating identities, HIP opportunistic mode | <t>Instead of duplicating identities, HIP opportunistic mode | |||
| can be employed, where the initiator leaves out the identifier | can be employed, where the Initiator leaves out the identifier | |||
| of the responder when initiating the key exchange and learns | of the Responder when initiating the key exchange and learns | |||
| it upon the completion of the exchange. The tradeoffs are | it upon the completion of the exchange. The trade-offs are | |||
| related to lowered security guarantees, but a benefit of the | related to lowered security guarantees, but a benefit of the | |||
| approach is to avoid publishing of Host Identifiers in any | approach is to avoid the publishing of Host Identifiers in any | |||
| directories <xref target="komu-leap" />. Since many public | directories <xref target="komu-leap" format="default"/>. Since many publ | |||
| ic | ||||
| servers already employ DNS as their directory, opportunistic mode | servers already employ DNS as their directory, opportunistic mode | |||
| may be more suitable for, e.g, peer-to-peer connectivity. | may be more suitable for, e.g., peer-to-peer connectivity. | |||
| It is also worth noting that opportunistic mode is also required | It is also worth noting that opportunistic mode is also required | |||
| in practice when anycast IP addresses would be utilized as locators.</t> | in practice when anycast IP addresses would be utilized as locators.</t> | |||
| <t>HIP opportunistic mode could be utilized in association | <t>HIP opportunistic mode could be utilized in association | |||
| with HIP rendezvous servers or HIP relay servers <xref | with HIP rendezvous servers or HIP relay servers <xref target="komu-diss" | |||
| target="komu-diss" />. In such a scenario, the Initiator sends | format="default"/>. In such a scenario, the Initiator sends | |||
| an I1 message with a wildcard destination HIT to the locator of a HIP | an I1 message with a wildcard destination HIT to the locator of a HIP | |||
| rendezvous/relay server. When the receiving rendezvous/relay server is | rendezvous/relay server. When the receiving rendezvous/relay server is | |||
| serving multiple registered Responders, the server can choose | serving multiple registered Responders, the server can choose | |||
| the ultimate destination HIT, thus acting as a HIP based load | the ultimate destination HIT, thus acting as a HIP-based load | |||
| balancer. However, this approach is still experimental and | balancer. However, this approach is still experimental and | |||
| requires further investigation. | requires further investigation. | |||
| </t> | </t> | |||
| <t>At the client side, a host may have multiple Host | <t>At the client side, a host may have multiple Host | |||
| Identities, for instance, for privacy purposes. Another reason | Identities, for instance, for privacy purposes. Another reason | |||
| can be that the person utilizing the host employs different | can be that the person utilizing the host employs different | |||
| identities for different administrative domains as an extra | identities for different administrative domains as an extra | |||
| security measure. If a HIP-aware middlebox, such as a | security measure. If a HIP-aware middlebox, such as a | |||
| HIP-based firewall, is on the path between the client and | HIP-based firewall, is on the path between the client and | |||
| server, the user or the underlying system should carefully | server, the user or the underlying system should carefully | |||
| choose the correct identity to avoid the firewall to | choose the correct identity to avoid the firewall | |||
| unnecessarily drop HIP-based connectivity <xref target="komu-diss" | unnecessarily dropping HIP-based connectivity <xref target="komu-diss" f | |||
| />.</t> | ormat="default"/>.</t> | |||
| <t>Similarly, a server may have multiple Host Identities. For | <t>Similarly, a server may have multiple Host Identities. For | |||
| instance, a single web server may serve multiple different | instance, a single web server may serve multiple different | |||
| administrative domains. Typically, the distinction is | administrative domains. Typically, the distinction is | |||
| accomplished based on the DNS name, but also the Host Identity | accomplished based on the DNS name, but also the Host Identity | |||
| could be used for this purpose. However, a more compelling | could be used for this purpose. However, a more compelling | |||
| reason to employ multiple identities are HIP-aware firewalls | reason to employ multiple identities is the HIP-aware firewall | |||
| that are unable see the HTTP traffic inside the encrypted | that is unable to see the HTTP traffic inside the encrypted | |||
| IPsec tunnel. In such a case, each service could be configured | IPsec tunnel. In such a case, each service could be configured | |||
| with a separate identity, thus allowing the firewall to | with a separate identity, thus allowing the firewall to | |||
| segregate the different services of the single web server from | segregate the different services of the single web server from | |||
| each other <xref target="lindqvist-enterprise" />.</t> | each other <xref target="lindqvist-enterprise" format="default"/>.</t> | |||
| <!-- | ||||
| <t>It is possible that a single physical computer hosts | ||||
| several logical end-points. With HIP, each of these | ||||
| end-points would have a distinct Host Identity. Furthermore, | ||||
| since the transport associations are bound to Host Identities, | ||||
| HIP provides for process migration and clustered servers. | ||||
| That is, if a Host Identity is moved from one physical | ||||
| computer to another, it is also possible to simultaneously | ||||
| move all the transport associations without breaking them. | ||||
| Similarly, if it is possible to distribute the processing of a | ||||
| single Host Identity over several physical computers, HIP | ||||
| provides for cluster based services without any changes at the | ||||
| client end-point.</t> --> | ||||
| </section> | </section> | |||
| </section> | </section> | |||
| <?rfc needLines="8"?> | <section anchor="control-plane" numbered="true" toc="default"> | |||
| <name>Control Plane</name> | ||||
| <section anchor="control-plane" title="Control plane"> | <t>HIP decouples the control and data planes from each other. Two | |||
| <t>HIP decouples control and data plane from each other. Two | ||||
| end-hosts initialize the control plane using a key | end-hosts initialize the control plane using a key | |||
| exchange procedure called the base exchange. The procedure can | exchange procedure called the base exchange. The procedure can | |||
| be assisted by HIP specific infrastructural intermediaries called | be assisted by HIP-specific infrastructural intermediaries called | |||
| rendezvous or relay servers. In the event of IP address changes, | rendezvous or relay servers. In the event of IP address changes, | |||
| the end-hosts sustain control plane connectivity with mobility | the end-hosts sustain control plane connectivity with mobility | |||
| and multihoming extensions. Eventually, the end-hosts terminate | and multihoming extensions. Eventually, the end-hosts terminate | |||
| the control plane and remove the associated state.</t> | the control plane and remove the associated state.</t> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Base exchange"> | <name>Base Exchange</name> | |||
| <t>The base exchange is a key exchange procedure that | ||||
| <t>The base exchange is a key exchange procedure that | authenticates the Initiator and Responder to each other using | |||
| authenticates the initiator and responder to each other using | their public keys. Typically, the Initiator is the client-side | |||
| their public keys. Typically, the initiator is the client-side | host and the Responder is the server-side host. The roles are | |||
| host and the responder is the server-side host. The roles are | used by the state machine of a HIP implementation but then discarded | |||
| used by the state machine of a HIP implementation, but discarded | ||||
| upon successful completion.</t> | upon successful completion.</t> | |||
| <t> | ||||
| <t> | ||||
| The exchange consists of four messages during which the hosts | The exchange consists of four messages during which the hosts | |||
| also create symmetric keys to protect the control plane with | also create symmetric keys to protect the control plane with | |||
| Hash-based message authentication codes (HMACs). The | Hash-based Message Authentication Codes (HMACs). The | |||
| keys can be also used to protect the data plane, and IPsec ESP | keys can be also used to protect the data plane, and IPsec ESP | |||
| <xref target="RFC7402" /> is typically used as the data-plane protocol, al beit | <xref target="RFC7402" format="default"/> is typically used as the data pl ane protocol, albeit | |||
| HIP can also accommodate others. Both the | HIP can also accommodate others. Both the | |||
| control and data plane are terminated using a closing procedure | control and data planes are terminated using a closing procedure | |||
| consisting of two messages. | consisting of two messages. | |||
| </t> | </t> | |||
| <t>In addition, the base exchange also includes a computational puzzle < | ||||
| <t>In addition, the base exchange also includes a computational puzzle <xr | xref target="RFC7401" format="default"/> that the Initiator must | |||
| ef | solve. The Responder chooses the difficulty of the puzzle, which | |||
| target="RFC7401" /> that the initiator must | permits the Responder to delay new incoming Initiators according | |||
| solve. The responder chooses the difficulty of the puzzle which | to local policies, for instance, when the Responder is under | |||
| permits the responder to delay new incoming initiators according | ||||
| to local policies, for instance, when the responder is under | ||||
| heavy load. The puzzle can offer some resiliency against DoS | heavy load. The puzzle can offer some resiliency against DoS | |||
| attacks because the design of the puzzle mechanism allows the | attacks because the design of the puzzle mechanism allows the | |||
| responder to remain stateless until the very end of the base | Responder to remain stateless until the very end of the base | |||
| exchange <xref target="aura-dos" />. HIP puzzles have also been | exchange <xref target="aura-dos" format="default"/>. HIP puzzles have also | |||
| studied under steady-state DDoS attacks <xref | been | |||
| target="beal-dos" />, on multiple adversary models with varying | studied under steady-state DDoS attacks <xref target="beal-dos" format="de | |||
| puzzle difficulties <xref target="tritilanunt-dos" /> and | fault"/>, on multiple adversary models with varying | |||
| with ephemeral Host Identities <xref target="komu-mitigation" />. | puzzle difficulties <xref target="tritilanunt-dos" format="default"/>, and | |||
| </t> | with ephemeral Host Identities <xref target="komu-mitigation" format="defa | |||
| ult"/>. | ||||
| <!-- XX FIXME: MORE ON HICCUPS? --> | </t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="End-host mobility and multi-homing"> | <name>End-Host Mobility and Multihoming</name> | |||
| <t>HIP decouples the transport from the internetworking layer | ||||
| <t>HIP decouples the transport from the internetworking layer, | ||||
| and binds the transport associations to the Host Identities | and binds the transport associations to the Host Identities | |||
| (actually through either the HIT or LSI). After the initial key | (actually through either the HIT or LSI). After the initial key | |||
| exchange, the HIP layer maintains transport-layer connectivity | exchange, the HIP layer maintains transport-layer connectivity | |||
| and data flows using its <xref | and data flows using its extensions for <xref target="RFC8046" format="def | |||
| target="RFC8046">mobility</xref> and <xref | ault">mobility</xref> and <xref target="RFC8047" format="default">multihoming</x | |||
| target="RFC8047">multihoming</xref> extensions. | ref>. | |||
| 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 and multihoming at a low infrastructure cost. HIP | |||
| mobility includes IP address changes (via any method) to either | mobility includes IP address changes (via any method) to either | |||
| party. Thus, a system is considered mobile if its IP address | party. Thus, a system is considered mobile if its IP address | |||
| can change dynamically for any reason like PPP, DHCP, IPv6 | can change dynamically for any reason like PPP, DHCP, IPv6 | |||
| prefix reassignments, or a NAT device remapping its translation. | prefix reassignments, or a NAT device remapping its translation. | |||
| Likewise, a system is considered multi-homed if it has more than | Likewise, a system is considered multihomed if it has more than | |||
| one globally routable IP address at the same time. HIP links IP | one globally routable IP address at the same time. HIP links IP | |||
| addresses together, when multiple IP addresses correspond to the | addresses together when multiple IP addresses correspond to the | |||
| same Host Identity. If one address becomes unusable, or a | same Host Identity. If one address becomes unusable, or a | |||
| more preferred address becomes available, existing transport | more preferred address becomes available, existing transport | |||
| associations can easily be moved to another address.</t> | associations can easily be moved to another address.</t> | |||
| <t>When a mobile node moves while communication is ongoing, | ||||
| <t>When a mobile node moves while communication is already on-going, | ||||
| address changes are rather straightforward. | address changes are rather straightforward. | |||
| The mobile node sends a HIP UPDATE packet to inform the | The mobile node sends a HIP UPDATE packet to inform the | |||
| peer of the new address(es), and the peer then verifies that the | peer of the new address(es), and the peer then verifies that the | |||
| mobile node is reachable through these addresses. This way, the peer can | mobile node is reachable through these addresses. This way, the peer can | |||
| avoid flooding attacks as further discussed in <xref target="ssec-flooding | avoid flooding attacks as further discussed in <xref target="ssec-flooding | |||
| " />. | " format="default"/>. | |||
| </t> | </t> | |||
| </section> | ||||
| </section> | <section anchor="sec_rvz" numbered="true" toc="default"> | |||
| <name>Rendezvous Mechanism</name> | ||||
| <section title="Rendezvous mechanism" anchor="sec:rvz"> | <t>Establishing a contact to a mobile, moving node is slightly | |||
| <t>Establishing a contact to a mobile, moving node is slightly | ||||
| more involved. In order to start the HIP exchange, the | more involved. In order to start the HIP exchange, the | |||
| initiator node has to know how to reach the mobile node. For | Initiator node has to know how to reach the mobile node. For | |||
| instance, the mobile node can employ Dynamic DNS <xref | instance, the mobile node can employ Dynamic DNS <xref target="RFC2136" f | |||
| target="RFC2136" /> to update its reachability information in | ormat="default"/> to update its reachability information in | |||
| the DNS. To avoid the dependency to DNS, HIP provides its own | the DNS. To avoid the dependency to DNS, HIP provides its own | |||
| HIP-specific alternative: the HIP rendezvous mechanism as | HIP-specific alternative: the HIP rendezvous mechanism as | |||
| defined in <xref target="RFC8004">HIP Rendezvous | defined in the <xref target="RFC8004" format="default">HIP rendezvous | |||
| specifications</xref>.</t> | specification</xref>.</t> | |||
| <t>Using the HIP rendezvous extensions, the mobile node keeps | <t>Using the HIP rendezvous extensions, the mobile node keeps | |||
| the rendezvous infrastructure continuously updated with its | the rendezvous infrastructure continuously updated with its | |||
| current IP address(es). The mobile nodes trusts the | current IP address(es). The mobile nodes trusts the | |||
| rendezvous mechanism in order to properly maintain their HIT | rendezvous mechanism in order to properly maintain their HIT | |||
| and IP address mappings.</t> | and IP address mappings.</t> | |||
| <t>The rendezvous mechanism is especially useful in scenarios | ||||
| <t>The rendezvous mechanism is especially useful in scenarios | ||||
| where both of the nodes are expected to change their address at the | where both of the nodes are expected to change their address at the | |||
| same time. In such a case, the HIP | same time. In such a case, the HIP | |||
| UPDATE packets will cross each other in the network and never | UPDATE packets will cross each other in the network and never | |||
| reach the peer node.</t> | reach the peer node.</t> | |||
| </section> | </section> | |||
| <section anchor="sec_relay" numbered="true" toc="default"> | ||||
| <section title="Relay mechanism" anchor="sec:relay"> | <name>Relay Mechanism</name> | |||
| <t>The HIP relay mechanism <xref target="RFC9028" format="default"/> is | ||||
| <t>The HIP relay mechanism <xref | an | |||
| target="I-D.ietf-hip-native-nat-traversal" /> is an | ||||
| alternative to the HIP rendezvous mechanism. The HIP relay | alternative to the HIP rendezvous mechanism. The HIP relay | |||
| mechanism is more suitable for IPv4 networks with NATs because | mechanism is more suitable for IPv4 networks with NATs because | |||
| a HIP relay can forward all control and data plane | a HIP relay can forward all control and data plane | |||
| communications in order to guarantee successful NAT | communications in order to guarantee successful NAT | |||
| traversal.</t> | traversal.</t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Termination of the control plane"> | <name>Termination of the Control Plane</name> | |||
| <t>The control plane between two hosts is terminated using | <t>The control plane between two hosts is terminated using | |||
| a secure two-message exchange as specified in <xref | a secure two-message exchange as specified in <xref target="RFC7401" for | |||
| target="RFC7401"> base exchange | mat="default"> base exchange | |||
| specification</xref>. The | specification</xref>. The | |||
| related state (i.e. host associations) should be removed upon | related state (i.e., host associations) should be removed upon | |||
| successful termination.</t> | successful termination.</t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="esp" numbered="true" toc="default"> | ||||
| <section anchor="esp" title="Data plane"> | <name>Data Plane</name> | |||
| <t>The encapsulation format for the data | <t>The encapsulation format for the data | |||
| plane used for carrying the application-layer traffic | plane used for carrying the application-layer traffic | |||
| can be dynamically negotiated during the key | can be dynamically negotiated during the key | |||
| exchange. For instance, <xref target="RFC6078">HICCUPS | exchange. For instance, <xref target="RFC6078" format="default">HICCUPS | |||
| extensions</xref> define one way to transport application-layer | extensions</xref> define one way to transport application-layer | |||
| datagrams directly over the HIP control plane, protected by | datagrams directly over the HIP control plane, protected by | |||
| asymmetric key cryptography. Also, SRTP has been considered as | asymmetric key cryptography. Also, Secure Real-time Transport Protocol (SR | |||
| the data encapsulation protocol <xref target="hip-srtp" | TP) has been considered as | |||
| />. However, the most widely implemented method is the | the data encapsulation protocol <xref target="I-D.tschofenig-hiprg-hip-srt | |||
| Encapsulated Security Payload (ESP) <xref | p" format="default"/>. However, the most widely implemented method is the | |||
| target="RFC7402" /> that is protected by | Encapsulated Security Payload (ESP) <xref target="RFC7402" format="default | |||
| "/> that is protected by | ||||
| symmetric keys derived during the key exchange. ESP Security | symmetric keys derived during the key exchange. ESP Security | |||
| Associations (SAs) offer both confidentiality and integrity | Associations (SAs) offer both confidentiality and integrity | |||
| protection, of which the former can be disabled during the key | protection, of which the former can be disabled during the key | |||
| exchange. In the future, other ways of transporting | exchange. In the future, other ways of transporting | |||
| application-layer data may be defined.</t> | application-layer data may be defined.</t> | |||
| <t>The ESP SAs are established and terminated between the | <t>The ESP SAs are established and terminated between the | |||
| initiator and the responder hosts. Usually, the hosts create at | Initiator and the Responder hosts. Usually, the hosts create at | |||
| least two SAs, one in each direction (initiator-to-responder SA | least two SAs, one in each direction (Initiator-to-Responder SA | |||
| and responder-to-initiator SA). If the IP addresses of either | and Responder-to-Initiator SA). If the IP addresses of either | |||
| host changes, the HIP mobility extensions can be used to | host changes, the HIP mobility extensions can be used to | |||
| re-negotiate the corresponding SAs.</t> | renegotiate the corresponding SAs.</t> | |||
| <t>On the wire, the difference in the use of identifiers between | <t>On the wire, the difference in the use of identifiers between | |||
| the HIP control and data plane is that the HITs are included in | the HIP control and data planes is that the HITs are included in | |||
| all control packets, but not in the data plane when ESP is | all control packets, but not in the data plane when ESP is | |||
| employed. Instead, the ESP employs SPI numbers that act as | employed. Instead, the ESP employs Security Parameter Index (SPI) numbers that act as | |||
| compressed HITs. Any HIP-aware middlebox (for instance, a | compressed HITs. Any HIP-aware middlebox (for instance, a | |||
| HIP-aware firewall) interested in the ESP based data plane | HIP-aware firewall) interested in the ESP-based data plane | |||
| should keep track between the control and data plane identifiers | should keep track between the control and data plane identifiers | |||
| in order to associate them with each other.</t> | in order to associate them with each other.</t> | |||
| <!-- | ||||
| <t>HIP base exchange uses the cryptographic Host Identifiers to | ||||
| set up a pair of ESP Security Associations (SAs) to enable ESP | ||||
| in an end-to-end manner. While it would be possible, at least in | ||||
| theory, to use some existing cryptographic protocol, such as | ||||
| IKEv2 together with Host Identifiers, to establish the needed | ||||
| SAs, HIP defines a new protocol. There are a number of | ||||
| historical reasons for this, and there are also a few | ||||
| architectural reasons. First, IKE (and IKEv2) were not | ||||
| originally designed with middleboxes in mind. As adding a new | ||||
| naming layer allows one to potentially add a new forwarding | ||||
| layer (see <xref target="nat" />, below), it is very important | ||||
| that the HIP provides mechanisms for middlebox | ||||
| authentication.</t> | ||||
| <t>Second, from a conceptual point of view, the IPsec Security | ||||
| Parameter Index (SPI) in ESP provides a simple compression of | ||||
| the HITs. This does require per-HIT-pair SAs (and SPIs), and a | ||||
| decrease of policy granularity over other Key Management | ||||
| Protocols, such as IKE and IKEv2. In other words, from an | ||||
| architectural point of view, HIP only supports host-to-host | ||||
| (or endpoint-to-endpoint) Security Associations.</t> | ||||
| <t>Originally, as HIP is designed for host usage, not for gateways or so | ||||
| called Bump-in-the-Wire (BITW) implementations, only ESP | ||||
| transport mode is supported. An ESP SA pair is indexed by the | ||||
| SPIs and the two HITs (both HITs since a system can have more | ||||
| than one HIT). The SAs need not to be bound to IP addresses; | ||||
| all internal control of the SA is by the HITs. Thus, a host can | ||||
| easily change its address using Mobile IP, DHCP, PPP, or IPv6 | ||||
| readdressing and still maintain the SAs. Since the transports | ||||
| are bound to the SA (via an LSI or a HIT), any active transport | ||||
| is also maintained. Thus, real-world conditions like loss of a | ||||
| PPP connection and its re-establishment or a mobile handover | ||||
| will not require a HIP negotiation or disruption of transport | ||||
| services <xref target="Bel1998" />.</t> | ||||
| <t>It should be noted that there are already BITW implementations | ||||
| of HIP providing virtual private network (VPN) services. | ||||
| This is still consistent to the SA bindings above.</t> | ||||
| --> | ||||
| <t>Since HIP does not negotiate any SA lifetimes, all lifetimes | <t>Since HIP does not negotiate any SA lifetimes, all lifetimes | |||
| are subject to local policy. The only lifetimes a HIP implementation must | are subject to local policy. The only lifetimes a HIP implementation must | |||
| support are sequence number rollover (for replay protection), | support are sequence number rollover (for replay protection) | |||
| and SA timeout. An SA times out if no packets are received using | and SA timeout. An SA times out if no packets are received using | |||
| that SA. Implementations may support lifetimes for the various | that SA. Implementations may support lifetimes for the various | |||
| ESP transforms and other data-plane protocols.</t> | ESP transforms and other data plane protocols.</t> | |||
| </section> | </section> | |||
| <section anchor="nat" numbered="true" toc="default"> | ||||
| <section anchor="nat" title="HIP and NATs"> | <name>HIP and NATs</name> | |||
| <!-- * UDP encap vs. HIP-aware NAT --> | ||||
| <t>Passing packets between different IP addressing realms | <t>Passing packets between different IP addressing realms | |||
| requires changing IP addresses in the packet header. This may | requires changing IP addresses in the packet header. This may | |||
| occur, for example, when a packet is passed between the public | occur, for example, when a packet is passed between the public | |||
| Internet and a private address space, or between IPv4 and IPv6 | Internet and a private address space, or between IPv4 and IPv6 | |||
| networks. The address translation is usually implemented as | networks. The address translation is usually implemented as | |||
| <xref target="RFC3022">Network Address Translation (NAT)</xref> | <xref target="RFC3022" format="default">Network Address Translation (NAT)< | |||
| or <xref target="RFC2766"> NAT Protocol translation | /xref> | |||
| (NAT-PT)</xref>.</t> | or the historic <xref target="RFC2766" format="default">NAT Protocol Trans | |||
| lation (NAT-PT)</xref>.</t> | ||||
| <t>In a network environment where identification is based on the | <t>In a network environment where identification is based on the | |||
| IP addresses, identifying the communicating nodes is difficult | IP addresses, identifying the communicating nodes is difficult | |||
| when NATs are employed because private address spaces | when NATs are employed because private address spaces | |||
| are overlapping. In other words, two hosts | are overlapping. In other words, two hosts | |||
| cannot be distinguished from each other solely based on their IP | cannot be distinguished from each other solely based on their IP | |||
| address. With HIP, the transport-layer end-points | addresses. With HIP, the transport-layer endpoints | |||
| (i.e. applications) are bound to unique Host Identities rather | (i.e., applications) are bound to unique Host Identities rather | |||
| than overlapping private addresses. This allows | than overlapping private addresses. This allows | |||
| two end-points to distinguish one other even when they are | two endpoints to distinguish one other even when they are | |||
| located in different private address realms. Thus, the IP addresses are us ed | located in different private address realms. Thus, the IP addresses are us ed | |||
| only for routing purposes and can be changed freely by NATs | only for routing purposes and can be changed freely by NATs | |||
| when a packet between two HIP capable hosts traverses through multiple | when a packet between two HIP-capable hosts traverses through multiple | |||
| private address realms.</t> | private address realms.</t> | |||
| <t><xref target="RFC9028" format="default">NAT | ||||
| <t><xref target="I-D.ietf-hip-native-nat-traversal">NAT | ||||
| traversal extensions for HIP</xref> can be used to realize the | traversal extensions for HIP</xref> can be used to realize the | |||
| actual end-to-end connectivity through NAT devices. To support | actual end-to-end connectivity through NAT devices. To support | |||
| basic backward compatibility with legacy NATs, the extensions | basic backward compatibility with legacy NATs, the extensions | |||
| encapsulate both HIP control and data plane in UDP. The | encapsulate both HIP control and data planes in UDP. The | |||
| extensions define mechanisms for forwarding the two planes | extensions define mechanisms for forwarding the two planes | |||
| through an intermediary host called HIP relay and procedures to | through an intermediary host called HIP relay and procedures to | |||
| establish direct end-to-end connectivity by penetrating | establish direct end-to-end connectivity by penetrating | |||
| NATs. Besides this "native" NAT traversal mode for HIP, other | NATs. Besides this "native" NAT traversal mode for HIP, other | |||
| NAT traversal mechanisms have been successfully utilized, such | NAT traversal mechanisms have been successfully utilized, such | |||
| as Teredo <xref target="RFC4380" /> (as described in further detail in <xr | as Teredo <xref target="RFC4380" format="default"/> (as described in furth | |||
| ef target="varjonen-split" />).</t> | er detail in <xref target="varjonen-split" format="default"/>).</t> | |||
| <t>Besides legacy NATs, a HIP-aware NAT has been designed and | <t>Besides legacy NATs, a HIP-aware NAT has been designed and | |||
| implemented <xref target="ylitalo-spinat" />. For a HIP-based flow, a HIP- | implemented <xref target="ylitalo-spinat" format="default"/>. For a HIP-ba | |||
| aware | sed flow, a HIP-aware | |||
| NAT or NAT-PT system tracks the mapping of HITs, and the | NAT or HIP-aware historic NAT-PT system tracks the mapping of HITs, and th | |||
| e | ||||
| corresponding ESP SPIs, to an IP address. The NAT system has to | corresponding ESP SPIs, to an IP address. The NAT system has to | |||
| learn mappings both from HITs and from SPIs to IP addresses. | learn mappings both from HITs and from SPIs to IP addresses. | |||
| Many HITs (and SPIs) can map to a single IP address on a NAT, | Many HITs (and SPIs) can map to a single IP address on a NAT, | |||
| simplifying connections on address-poor NAT interfaces. The NAT | simplifying connections on address-poor NAT interfaces. The NAT | |||
| can gain much of its knowledge from the HIP packets themselves; | can gain much of its knowledge from the HIP packets themselves; | |||
| however, some NAT configuration may be necessary.</t> | however, some NAT configuration may be necessary.</t> | |||
| <!-- | <section numbered="true" toc="default"> | |||
| <t>NAT systems cannot touch the datagrams within the ESP | <name>HIP and Upper-Layer Checksums</name> | |||
| envelope, thus application-specific address translation must be | <t>There is no way for a host to know if any of the IP | |||
| done in the end systems. It should be noted that HIP provides | ||||
| for 'Distributed NAT', and uses the HIT or the LSI as a | ||||
| placeholder for embedded IP addresses.</t> --> | ||||
| <section title="HIP and Upper-layer checksums"> | ||||
| <t>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 | addresses in an IP header are the addresses used to calculate | |||
| the TCP checksum. That is, it is not feasible to calculate | the TCP checksum. That is, it is not feasible to calculate | |||
| the TCP checksum using the actual IP addresses in the pseudo | the TCP checksum using the actual IP addresses in the pseudo | |||
| header; the addresses received in the incoming packet are not | header; the addresses received in the incoming packet are not | |||
| necessarily the same as they were on the sending host. | necessarily the same as they were on the sending host. | |||
| Furthermore, it is not possible to recompute the upper-layer | Furthermore, it is not possible to recompute the upper-layer | |||
| checksums in the NAT/NAT-PT system, since the traffic is ESP | checksums in the NAT/NAT-PT system, since the traffic is | |||
| 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 | calculated using the HITs in the place of the IP addresses in | |||
| the pseudo header. Furthermore, only the IPv6 pseudo header | the pseudo header. Furthermore, only the IPv6 pseudo header | |||
| format is used. This provides for IPv4 / IPv6 protocol | format is used. This provides for IPv4 / IPv6 protocol | |||
| translation.</t> | translation.</t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Multicast"> | <name>Multicast</name> | |||
| <t>A number of studies investigating HIP-based multicast | <t>A number of studies investigating HIP-based multicast | |||
| have been published (including <xref target="shields-hip" />, <xref | have been published (including <xref target="shields-hip" format="default" | |||
| target="xueyong-hip" />, <xref target="xueyong-hip" />, <xref | />, <xref target="zhu-hip" format="default"/>, <xref target="amir-hip" format="d | |||
| target="amir-hip" />, <xref target="kovacshazi-host" /> and | efault"/>, <xref target="kovacshazi-host" format="default"/>, and | |||
| <xref target="xueyong-secure" />). In particular, so-called Bloom filters, | <xref target="zhu-secure" format="default"/>). In particular, so-called Bl | |||
| that allow compressing of multiple labels into small | oom filters, | |||
| data structures, may be a promising way forward <xref | which allow the compression of multiple labels into small | |||
| target="sarela-bloom" />. However, the different schemes have | data structures, may be a promising way forward <xref target="sarela-bloom | |||
| " format="default"/>. However, the different schemes have | ||||
| not been adopted by the HIP working group (nor the HIP research | not been adopted by the HIP working group (nor the HIP research | |||
| group in IRTF), so the details are not further elaborated here.</t> | group in the IRTF), so the details are not further elaborated here.</t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="HIP policies"> | <name>HIP Policies</name> | |||
| <t>There are a number of variables that influence the HIP | <t>There are a number of variables that influence the HIP | |||
| exchange that each host must support. All HIP implementations | exchange that each host must support. All HIP implementations | |||
| should support at least 2 HIs, one to publish in DNS or similar | should support at least two HIs, one to publish in DNS or a similar | |||
| directory service and an unpublished one for anonymous usage | directory service and an unpublished one for anonymous usage | |||
| (that should expect to be rotated frequently in order to disrupt | (that should expect to be rotated frequently in order to disrupt | |||
| linkability/trackability). Although unpublished HIs will be | linkability and/or trackability). Although unpublished HIs will | |||
| rarely used as responder HIs, they are likely to be common for | rarely be used as Responder HIs, they are likely to be common for | |||
| initiators. As stated in <xref target="RFC7401" />, "all HIP implementatio | Initiators. As stated in <xref target="RFC7401" format="default"/>, "all H | |||
| ns MUST | IP implementations <bcp14>MUST</bcp14> | |||
| support more than one simultaneous HI, at least one of which SHOULD | support more than one simultaneous HI, at least one of which <bcp14>SHOULD</b | |||
| be reserved for anonymous usage", and "support for more than two HIs is RECOM | cp14> | |||
| MENDED". | be reserved for anonymous usage", and "support for more than two HIs is <bcp1 | |||
| 4>RECOMMENDED</bcp14>". | ||||
| This | This | |||
| provides new challenges for systems or users to decide which | provides new challenges for systems or users to decide which | |||
| type of HI to expose when they start a new session.</t> | type of HI to expose when they start a new session.</t> | |||
| <t>Opportunistic mode (where the Initiator starts a HIP exchange | ||||
| <t>Opportunistic mode (where the initiator starts a HIP exchange | without prior knowledge of the Responder's HI) presents a | |||
| without prior knowledge of the responder's HI) presents a | security trade-off. At the expense of being subject to MitM | |||
| security tradeoff. At the expense of being subject to MITM | attacks, the opportunistic mode allows the Initiator to learn | |||
| attacks, the opportunistic mode allows the initiator to learn | the identity of the Responder during communication rather than | |||
| the identity of the responder during communication rather than | ||||
| from an external directory. Opportunistic mode can be used for | from an external directory. Opportunistic mode can be used for | |||
| registration to HIP-based services <xref | registration to HIP-based services <xref target="RFC8003" format="default" | |||
| target="RFC8003" /> (i.e. utilized by HIP for | /> (i.e., utilized by HIP for | |||
| its own internal purposes) or by the application layer <xref | its own internal purposes) or by the application layer <xref target="komu- | |||
| target="komu-leap" />. For security reasons, especially the | leap" format="default"/>. For security reasons, especially the | |||
| latter requires some involvement from the user to accept the | latter requires some involvement from the user to accept the | |||
| identity of the responder similar to how SSH prompts the | identity of the Responder similar to how the Secure Shell (SSH) protocol p | |||
| user when connecting to a server for the first time <xref | rompts the | |||
| target="pham-leap" />. In practice, this can be realized | user when connecting to a server for the first time <xref target="pham-lea | |||
| in end-host based firewalls in the case of legacy applications | p" format="default"/>. In practice, this can be realized | |||
| <xref target="karvonen-usable" /> or with <xref | in end-host-based firewalls in the case of legacy applications | |||
| target="RFC6317">native APIs for HIP APIs</xref> in the case of | <xref target="karvonen-usable" format="default"/> or with <xref target="RF | |||
| C6317" format="default">native APIs for HIP APIs</xref> in the case of | ||||
| HIP-aware applications.</t> | HIP-aware applications.</t> | |||
| <t>As stated in <xref target="RFC7401" format="default"/>: | ||||
| <t>As stated in <xref target="RFC7401" />, "Initiators MAY use a different | </t> | |||
| HI for | <blockquote>Initiators <bcp14>MAY</bcp14> use a different HI for | |||
| different Responders to provide basic privacy. Whether such | different Responders to provide basic privacy. Whether such | |||
| private HIs are used repeatedly with the same Responder, and how | private HIs are used repeatedly with the same Responder, and how | |||
| long these HIs are used, are decided by local policy and depend | long these HIs are used, are decided by local policy and depend | |||
| on the privacy requirements of the Initiator". | on the privacy requirements of the Initiator.</blockquote> | |||
| <t>According to <xref target="RFC7401" format="default"/>: | ||||
| </t> | </t> | |||
| <blockquote>Responders that only | ||||
| <t>According to <xref target="RFC7401" />, "Responders that only | ||||
| respond to selected Initiators require an Access Control List | respond to selected Initiators require an Access Control List | |||
| (ACL), representing for which hosts they accept HIP base | (ACL), representing for which hosts they accept HIP base | |||
| exchanges, and the preferred transport format and local | exchanges, and the preferred transport format and local | |||
| lifetimes. Wildcarding SHOULD be supported for such ACLs, and | lifetimes. Wildcarding <bcp14>SHOULD</bcp14> be supported for such ACLs, | |||
| also for Responders that offer public or anonymous services". | and | |||
| </t> | also for Responders that offer public or anonymous services.</blockquote> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Security considerations"> | <name>Security Considerations</name> | |||
| <t>This section includes discussion on some issues and solutions | <t>This section includes discussion on some issues and solutions | |||
| related to security in the HIP architecture.</t> | related to security in the HIP architecture.</t> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="MiTM Attacks"> | <name>MitM Attacks</name> | |||
| <t>HIP takes advantage of the Host Identity paradigm to | ||||
| <t>HIP takes advantage of the Host Identity paradigm to | ||||
| provide secure authentication of hosts and to provide a fast key | provide secure authentication of hosts and to provide a fast key | |||
| exchange for ESP. HIP also attempts to limit the exposure of | exchange for ESP. HIP also attempts to limit the exposure of | |||
| the host to various denial-of-service (DoS) and | the host to various denial-of-service (DoS) and | |||
| man-in-the-middle (MitM) attacks. In so doing, HIP itself is | man-in-the-middle (MitM) attacks. In so doing, HIP itself is | |||
| subject to its own DoS and MitM attacks that potentially could | subject to its own DoS and MitM attacks that potentially could | |||
| be more damaging to a host's ability to conduct business as | be more damaging to a host's ability to conduct business as | |||
| usual.</t> | usual.</t> | |||
| <t>Resource exhausting DoS attacks take advantage | ||||
| <t>Resource exhausting denial-of-service attacks take advantage | ||||
| of the cost of setting up a state for a protocol on the | of the cost of setting up a state for a protocol on the | |||
| responder compared to the 'cheapness' on the initiator. HIP | Responder compared to the 'cheapness' on the Initiator. HIP | |||
| allows a responder to increase the cost of the start of state on | allows a Responder to increase the cost of the start of state on | |||
| the initiator and makes an effort to reduce the cost to the | the Initiator and makes an effort to reduce the cost to the | |||
| responder. This is done by having the responder start the | Responder. This is done by having the Responder start the | |||
| authenticated Diffie-Hellman exchange instead of the initiator, | authenticated Diffie-Hellman exchange instead of the Initiator, | |||
| making the HIP base exchange 4 packets long. The first packet | making the HIP base exchange four packets long. The first packet | |||
| sent by the responder can be prebuilt to further mitigate the | sent by the Responder can be prebuilt to further mitigate the | |||
| costs. This packet also includes a computational puzzle that can | costs. This packet also includes a computational puzzle that can | |||
| optionally be used to further delay the initiator, for instance, | optionally be used to further delay the Initiator, for instance, | |||
| when the responder is overloaded. The details are explained in | when the Responder is overloaded. The details are explained in | |||
| the <xref target="RFC7401">base exchange | the <xref target="RFC7401" format="default">base exchange | |||
| specification</xref>.</t> | specification</xref>.</t> | |||
| <!-- | <t>MitM attacks are difficult to defend against | |||
| <t>HIP optionally supports opportunistic negotiation. That is, | ||||
| if a host receives a start of transport without a HIP | ||||
| negotiation, it can attempt to force a HIP exchange before | ||||
| accepting the connection. This has the potential for DoS | ||||
| attacks against both hosts. If the method to force the start of | ||||
| HIP is expensive on either host, the attacker need only spoof a | ||||
| TCP SYN. This would put both systems into the expensive | ||||
| operations. HIP avoids this attack by having the responder send | ||||
| a simple R1 packet that it can pre-build. Since this packet is | ||||
| fixed and easily replayed, the initiator only reacts to it if it | ||||
| has just started a connection to the responder.</t> --> | ||||
| <t>Man-in-the-middle (MitM) attacks are difficult to defend against, | ||||
| without third-party authentication. A skillful MitM could | without third-party authentication. A skillful MitM could | |||
| easily handle all parts of the HIP base exchange, but HIP | easily handle all parts of the HIP base exchange, but HIP | |||
| indirectly provides the following protection from a MitM attack. | indirectly provides the following protection from a MitM attack. | |||
| If the responder's HI is retrieved from a signed DNS zone or | If the Responder's HI is retrieved from a signed DNS zone or | |||
| securely obtained by some other means, the initiator can use this to | securely obtained by some other means, the Initiator can use this to | |||
| authenticate the signed HIP packets. Likewise, if the | authenticate the signed HIP packets. Likewise, if the | |||
| initiator's HI is in a secure DNS zone, the responder can | Initiator's HI is in a secure DNS zone, the Responder can | |||
| retrieve it and validate the signed HIP packets. However, since | retrieve it and validate the signed HIP packets. However, since | |||
| an initiator may choose to use an unpublished HI, it knowingly | an Initiator may choose to use an unpublished HI, it knowingly | |||
| risks a MitM attack. The responder may choose not to accept a | risks a MitM attack. The Responder may choose not to accept a | |||
| HIP exchange with an initiator using an unknown HI.</t> | HIP exchange with an Initiator using an unknown HI.</t> | |||
| <t>Other types of MitM attacks against HIP can be mounted using | ||||
| <t>Other types of MitM attacks against HIP can be mounted using | ||||
| ICMP messages that can be used to signal about problems. As an | ICMP messages that can be used to signal about problems. As an | |||
| overall guideline, the ICMP messages should be considered as | overall guideline, the ICMP messages should be considered as | |||
| unreliable "hints" and should be acted upon only after | unreliable "hints" and should be acted upon only after | |||
| timeouts. The exact attack scenarios and countermeasures are | timeouts. The exact attack scenarios and countermeasures are | |||
| described in full detail the <xref target="RFC7401">base | described in full detail in the <xref target="RFC7401" format="default">ba se | |||
| exchange specification</xref>.</t> | exchange specification</xref>.</t> | |||
| <t>A MitM attacker could try to replay older I1 or R1 messages using wea | ||||
| <t>A MitM attacker could try to replay older I1 or R1 messages using weake | ker cryptographic algorithms as described in <xref target="RFC7401" section="4.1 | |||
| r cryptographic algorithms as described in section 4.1.4 in <xref target="RFC740 | .4" sectionFormat="of" format="default"/>. | |||
| 1" />. | ||||
| The base exchange has been augmented to deal with | The base exchange has been augmented to deal with | |||
| such an attack by restarting on detecting the attack. At | such an attack by restarting on the detection of the attack. At | |||
| worst this would only lead to a situation in which the | worst, this would only lead to a situation in which the | |||
| base exchange would never finish (or would be aborted after | base exchange would never finish (or would be aborted after | |||
| some retries). As a drawback, this leads to a 6-way base | some retries). As a drawback, this leads to a six-way base | |||
| exchange which may seem bad at first. However, since this | exchange, which may seem bad at first. However, since this | |||
| only occurs in an attack scenario and since the attack can | only occurs in an attack scenario and since the attack can | |||
| be handled (so it is not interesting to mount anymore), we | be handled (so it is not interesting to mount anymore), we | |||
| assume the subsequent messages do not represent a security threat. Since | assume the subsequent messages do not represent a security threat. Since | |||
| the MitM cannot be successful with a downgrade attack, these | the MitM cannot be successful with a downgrade attack, these | |||
| sorts of attacks will only occur as 'nuisance' attacks. So, | sorts of attacks will only occur as 'nuisance' attacks. So, | |||
| the base exchange would still be usually just four packets | the base exchange would still be usually just four packets | |||
| even though implementations must be prepared to protect | even though implementations must be prepared to protect | |||
| themselves against the downgrade attack.</t> | themselves against the downgrade attack.</t> | |||
| <t>In HIP, the Security Association for ESP is indexed by the | ||||
| <t>In HIP, the Security Association for ESP is indexed by the | ||||
| SPI; the source address is always ignored, and the destination | SPI; the source address is always ignored, and the destination | |||
| address may be ignored as well. Therefore, HIP-enabled | address may be ignored as well. Therefore, HIP-enabled | |||
| Encapsulated Security Payload (ESP) is IP address independent. | ESP is IP address independent. | |||
| This might seem to make attacking easier, but ESP with | This might seem to make attacking easier, but ESP with | |||
| replay protection is already as well protected as possible, and | replay protection is already as well protected as possible, and | |||
| the removal of the IP address as a check should not increase the | the removal of the IP address as a check should not increase the | |||
| exposure of ESP to DoS attacks.</t> | exposure of ESP to DoS attacks.</t> | |||
| </section> | ||||
| </section> | <section anchor="ssec-flooding" numbered="true" toc="default"> | |||
| <name>Protection against Flooding Attacks</name> | ||||
| <section anchor="ssec-flooding" title="Protection against flooding attacks"> | <t>Although the idea of informing about address changes by | |||
| <t>Although the idea of informing about address changes by | ||||
| simply sending packets with a new source address appears | simply sending packets with a new source address appears | |||
| appealing, it is not secure enough. That is, even if HIP does | appealing, it is not secure enough. That is, even if HIP does | |||
| not rely on the source address for anything (once the base | not rely on the source address for anything (once the base | |||
| exchange has been completed), it appears to be necessary to | exchange has been completed), it appears to be necessary to | |||
| check a mobile node's reachability at the new address before | check a mobile node's reachability at the new address before | |||
| actually sending any larger amounts of traffic to the new | actually sending any larger amounts of traffic to the new | |||
| address.</t> | address.</t> | |||
| <t>Blindly accepting new addresses would potentially lead to | ||||
| <t>Blindly accepting new addresses would potentially lead to | flooding DoS attacks against third parties <xref target="RFC4225" format=" | |||
| flooding Denial-of-Service attacks against third parties <xref | default"/>. In a distributed flooding attack, an | |||
| target="RFC4225" />. In a distributed flooding attack an | attacker opens high-volume HIP connections with a large number | |||
| attacker opens high volume HIP connections with a large number | of hosts (using unpublished HIs) and then claims to all of | |||
| of hosts (using unpublished HIs), and then claims to all of | ||||
| these hosts that it has moved to a target node's IP address. | these hosts that it has moved to a target node's IP address. | |||
| If the peer hosts were to simply accept the move, the result | If the peer hosts were to simply accept the move, the result | |||
| would be a packet flood to the target node's address. To | would be a packet flood to the target node's address. To | |||
| prevent this type of attack, HIP mobility extensions include a return rout ability | prevent this type of attack, HIP mobility extensions include a return rout ability | |||
| check procedure where the reachability of a node is separately | check procedure where the reachability of a node is separately | |||
| checked at each address before using the address for larger | checked at each address before using the address for larger | |||
| amounts of traffic.</t> | amounts of traffic.</t> | |||
| <t>A credit-based authorization approach for "<xref target="RFC8046" for | ||||
| <t>A credit-based authorization approach <xref target="RFC8046"> | mat="title"/>" <xref target="RFC8046" format="default"/> | |||
| for host mobility with the Host Identity Protocol</xref> | ||||
| can be used between hosts for sending data prior to completing the address | can be used between hosts for sending data prior to completing the address | |||
| tests. Otherwise, if HIP is used between two hosts that fully | tests. Otherwise, if HIP is used between two hosts that fully | |||
| trust each other, the hosts may optionally decide to skip the | trust each other, the hosts may optionally decide to skip the | |||
| address tests. However, such performance optimization must be | address tests. However, such performance optimization must be | |||
| restricted to peers that are known to be trustworthy and | restricted to peers that are known to be trustworthy and | |||
| capable of protecting themselves from malicious software.</t> | capable of protecting themselves from malicious software.</t> | |||
| </section> | ||||
| </section> | <section numbered="true" toc="default"> | |||
| <name>HITs Used in ACLs</name> | ||||
| <section title="HITs used in ACLs"> | <t>At end-hosts, HITs can be used in IP-based access control | |||
| <t>At end-hosts, HITs can be used in IP-based access control | ||||
| lists at the application and network layers. At middleboxes, | lists at the application and network layers. At middleboxes, | |||
| HIP-aware firewalls <xref target="lindqvist-enterprise" /> can use HITs o r public | HIP-aware firewalls <xref target="lindqvist-enterprise" format="default"/ > can use HITs or public | |||
| keys to control both ingress and egress access to networks or | keys to control both ingress and egress access to networks or | |||
| individual hosts, even in the presence of mobile devices | individual hosts, even in the presence of mobile devices | |||
| because the HITs and public keys are topology | because the HITs and public keys are topology | |||
| independent. As discussed earlier in <xref target="esp" | independent. As discussed earlier in <xref target="esp" format="default"/ | |||
| />, once a HIP session has been established, the SPI value in | >, once a HIP session has been established, the SPI value in | |||
| an ESP packet may be used as an index, indicating the HITs. | an ESP packet may be used as an index, indicating the HITs. | |||
| In practice, firewalls can inspect HIP packets to learn of the | In practice, firewalls can inspect HIP packets to learn of the | |||
| bindings between HITs, SPI values, and IP addresses. They can | bindings between HITs, SPI values, and IP addresses. They can | |||
| even explicitly control ESP usage, dynamically opening ESP | even explicitly control ESP usage, dynamically opening ESP | |||
| only for specific SPI values and IP addresses. The signatures | only for specific SPI values and IP addresses. The signatures | |||
| in HIP packets allow a capable firewall to ensure that the HIP | in HIP packets allow a capable firewall to ensure that the HIP | |||
| exchange is indeed occurring between two known hosts. This | exchange is indeed occurring between two known hosts. This | |||
| may increase firewall security.</t> | may increase firewall security.</t> | |||
| <t>A potential drawback of HITs in ACLs is their 'flatness', which | ||||
| <t>A potential drawback of HITs in ACLs is their 'flatness' | ||||
| means they cannot be aggregated, and this could potentially | means they cannot be aggregated, and this could potentially | |||
| result in larger table searches in HIP-aware firewalls. A | result in larger table searches in HIP-aware firewalls. A | |||
| way to optimize this could be to utilize Bloom filters for | way to optimize this could be to utilize Bloom filters for | |||
| grouping of HITs <xref target="sarela-bloom" />. However, it | grouping HITs <xref target="sarela-bloom" format="default"/>. However, it | |||
| should be noted that it is also easier to exclude individual, | should be noted that it is also easier to exclude individual, | |||
| misbehaving hosts out when the firewall rules concern | misbehaving hosts when the firewall rules concern | |||
| individual HITs rather than groups.</t> | individual HITs rather than groups.</t> | |||
| <!-- <t>[add here wildcarding]</t> --> | ||||
| <t>There has been considerable bad experience with distributed | <t>There has been considerable bad experience with distributed | |||
| ACLs that contain public key related material, for example, | ACLs that contain material related to public keys, for example, | |||
| with SSH. If the owner of a key needs to revoke it for any | with SSH. If the owner of a key needs to revoke it for any | |||
| reason, the task of finding all locations where the key is | reason, the task of finding all locations where the key is | |||
| held in an ACL may be impossible. If the reason for the | held in an ACL may be impossible. If the reason for the | |||
| revocation is due to private key theft, this could be a | revocation is due to private key theft, this could be a | |||
| serious issue.</t> | serious issue.</t> | |||
| <t>A host can keep track of all of its partners that might use | ||||
| <t>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 | its HIT in an ACL by logging all remote HITs. It should only | |||
| be necessary to log responder hosts. With this information, | be necessary to log Responder hosts. With this information, | |||
| the host can notify the various hosts about the change to the | the host can notify the various hosts about the change to the | |||
| HIT. There have been attempts to develop a secure method to | HIT. There have been attempts to develop a secure method to | |||
| issue the HIT revocation notice <xref target="zhang-revocation" />.</t> | issue the HIT revocation notice <xref target="I-D.irtf-hiprg-revocation" | |||
| format="default"/>.</t> | ||||
| <t>Some of the HIP-aware middleboxes, such as firewalls <xref | <t>Some of the HIP-aware middleboxes, such as firewalls <xref target="li | |||
| target="lindqvist-enterprise" /> or NATs <xref | ndqvist-enterprise" format="default"/> or NATs <xref target="ylitalo-spinat" for | |||
| target="ylitalo-spinat" />, may observe the on-path traffic | mat="default"/>, may observe the on-path traffic | |||
| passively. Such middleboxes are transparent by their nature | passively. Such middleboxes are transparent by their nature | |||
| and may not get a notification when a host moves to a | and may not get a notification when a host moves to a | |||
| different network. Thus, such middleboxes should maintain soft | different network. Thus, such middleboxes should maintain soft | |||
| state and timeout when the control and data plane between two | state and time out when the control and data planes between two | |||
| HIP end-hosts has been idle too long. Correspondingly, the two | HIP end-hosts have been idle too long. Correspondingly, the two | |||
| end-hosts may send periodically keepalives, such as UPDATE | end-hosts may send periodically keepalives, such as UPDATE | |||
| packets or ICMP messages inside the ESP tunnel, to sustain | packets or ICMP messages inside the ESP tunnel, to sustain | |||
| state at the on-path middleboxes.</t> | state at the on-path middleboxes.</t> | |||
| <t>One general limitation related to end-to-end encryption is | <t>One general limitation related to end-to-end encryption is | |||
| that middleboxes may not be able to participate to the | that middleboxes may not be able to participate in the | |||
| protection of data flows. While the issue may affect | protection of data flows. While the issue may also affect | |||
| also other protocols, Heer at al <xref target="heer-end-host" | other protocols, Heer et al. <xref target="heer-end-host" format="defaul | |||
| /> have analyzed the problem in the context of HIP. More | t"/> have analyzed the problem in the context of HIP. More | |||
| specifically, when ESP is used as the data-plane protocol for HIP, the | specifically, when ESP is used as the data plane protocol for HIP, the | |||
| association between the control and data plane is weak and can | association between the control and data planes is weak and can | |||
| be exploited under certain assumptions. In the | be exploited under certain assumptions. In the | |||
| scenario, the attacker has already gained access to the target | scenario, the attacker has already gained access to the target | |||
| network protected by a HIP-aware firewall, but wants to | network protected by a HIP-aware firewall, but wants to | |||
| circumvent the HIP-based firewall. To achieve this, the | circumvent the HIP-based firewall. To achieve this, the | |||
| attacker passively observes a base exchange between two HIP | attacker passively observes a base exchange between two HIP | |||
| hosts and later replays it. This way, the attacker manages to | hosts and later replays it. This way, the attacker manages to | |||
| penetrate the firewall and can use a fake ESP tunnel to | penetrate the firewall and can use a fake ESP tunnel to | |||
| transport its own data. This is possible because the firewall | transport its own data. This is possible because the firewall | |||
| cannot distinguish when the ESP tunnel is valid. As a | cannot distinguish when the ESP tunnel is valid. As a | |||
| solution, HIP-aware middleboxes may participate to the control | solution, HIP-aware middleboxes may participate in the control | |||
| plane interaction by adding random nonce parameters to the | plane interaction by adding random nonce parameters to the | |||
| control traffic, which the end-hosts have to sign to | control traffic, which the end-hosts have to sign to | |||
| guarantee the freshness of the control traffic <xref | guarantee the freshness of the control traffic <xref target="I-D.heer-hi | |||
| target="heer-midauth" />. As an alternative, extensions for | p-middle-auth" format="default"/>. As an alternative, extensions for | |||
| transporting data plane directly over the control plane can be | transporting the data plane directly over the control plane can be | |||
| used <xref target="RFC6078" />. | used <xref target="RFC6078" format="default"/>. | |||
| </t> | </t> | |||
| <!-- | ||||
| <t>HIP-aware NATs, however, are transparent to the HIP aware | ||||
| systems by design. Thus, the host may find it difficult to | ||||
| notify any NAT that is using a HIT in an ACL. Since most | ||||
| systems will know of the NATs for their network, there should | ||||
| be a process by which they can notify these NATs of the change | ||||
| of the HIT. This is mandatory for systems that function as | ||||
| responders behind a NAT. In a similar vein, if a host is | ||||
| notified of a change in a HIT of an initiator, it should | ||||
| notify its NAT of the change. In this manner, NATs will be | ||||
| updated with the HIT change.</t> --> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Alternative HI considerations"> | <name>Alternative HI Considerations</name> | |||
| <t>The definition of the Host Identifier states that the HI | ||||
| <t>The definition of the Host Identifier states that the HI | ||||
| need not be a public key. It implies that the HI could be any | need not be a public key. It implies that the HI could be any | |||
| value; for example a FQDN. This document does not describe | value, for example, a FQDN. This document does not describe | |||
| how to support such a non-cryptographic HI, but examples of | how to support such a non-cryptographic HI, but examples of | |||
| such protocol variants do exist (<xref target="urien-rfid" />, | such protocol variants do exist (<xref target="urien-rfid" format="defaul | |||
| <xref target="urien-rfid-draft" />). A non-cryptographic HI | t"/>, | |||
| <xref target="I-D.irtf-hiprg-rfid" format="default"/>). A non-cryptograp | ||||
| hic HI | ||||
| would still offer the services of the HIT or LSI for NAT | would still offer the services of the HIT or LSI for NAT | |||
| traversal. It would be possible to carry HITs in HIP packets | traversal. It would be possible to carry HITs in HIP packets | |||
| that had neither privacy nor authentication. Such schemes may | that had neither privacy nor authentication. Such schemes may | |||
| be employed for resource constrained devices, such as small | be employed for resource-constrained devices, such as small | |||
| sensors operating on battery power, but are not further | sensors operating on battery power, but are not further | |||
| analyzed here.</t> | analyzed here.</t> | |||
| <t>If it is desirable to use HIP in a low-security situation | ||||
| <t>If it is desirable to use HIP in a low security situation | ||||
| where public key computations are considered expensive, HIP | where public key computations are considered expensive, HIP | |||
| can be used with very short Diffie-Hellman and Host Identity | can be used with very short Diffie-Hellman and Host Identity | |||
| keys. Such use makes the participating hosts vulnerable to | keys. Such use makes the participating hosts vulnerable to | |||
| MitM and connection hijacking attacks. However, it does not | MitM and connection hijacking attacks. However, it does not | |||
| cause flooding dangers, since the address check mechanism | cause flooding dangers, since the address check mechanism | |||
| relies on the routing system and not on cryptographic | relies on the routing system and not on cryptographic | |||
| strength.</t> | strength.</t> | |||
| </section> | ||||
| </section> | <section numbered="true" toc="default"> | |||
| <name>Trust on First Use</name> | ||||
| <section title="Trust On First Use"> | <t><xref target="RFC7435" format="default"/> highlights four design prin | |||
| ciples for | ||||
| <t><xref target="RFC7435" /> highlights four design principles for | ||||
| Leap of Faith, or Trust On First Use (TOFU), protocols that apply also to opportunistic HIP: | Leap of Faith, or Trust On First Use (TOFU), protocols that apply also to opportunistic HIP: | |||
| <list style="numbers"> | </t> | |||
| <t>Coexist with explicit policy</t> | <ol spacing="normal" type="1"> | |||
| <t>Prioritize communication</t> | <li>Coexist with explicit policy</li> | |||
| <t>Maximize security peer by peer</t> | <li>Prioritize communication</li> | |||
| <t>No misrepresentation of security</t> | <li>Maximize security peer by peer</li> | |||
| </list></t> | <li>No misrepresentation of security</li> | |||
| </ol> | ||||
| <t> | <t> | |||
| <!-- Coexist with explicit policy. Explicit security policies preempt OS. | According to the first TOFU design principle, "Opportunistic | |||
| --> | ||||
| According to the first TOFU design principle, "opportunistic | ||||
| security never displaces or preempts explicit policy". Some | security never displaces or preempts explicit policy". Some | |||
| application data may be too sensitive, so the related policy | application data may be too sensitive, so the related policy | |||
| could require authentication (i.e, the | could require authentication (i.e., the | |||
| public key or certificate) in such a case instead of the unauthenticated | public key or certificate) in such a case instead of the unauthenticated | |||
| opportunistic mode. In practice, this has been realized in | opportunistic mode. In practice, this has been realized in | |||
| HIP implementations as follows <xref target="RFC6538" />.</t> | HIP implementations as follows <xref target="RFC6538" format="default"/>.< | |||
| /t> | ||||
| <t>The OpenHIP implementation allowed an Initiator to use | <t>The OpenHIP implementation allowed an Initiator to use | |||
| opportunistic mode | opportunistic mode | |||
| only with an explicitly configured Responder IP address, when the | only with an explicitly configured Responder IP address, when the | |||
| Responder's HIT is unknown. | Responder's HIT is unknown. | |||
| At the Responder, OpenHIP had an option to allow | At the Responder, OpenHIP had an option to allow | |||
| opportunistic mode with any Initiator -- trust any Initiator.</t> | opportunistic mode with any Initiator -- trust any Initiator.</t> | |||
| <t>HIP for Linux (HIPL) developers experimented with more | ||||
| <t>HIP for Linux (HIPL) developers experimented with more | fine-grained policies operating at the application level. The HIPL | |||
| fine-grained policies operating at the application level. HIPL | implementation utilized so-called "LD_PRELOAD" hooking at the | |||
| implementation utilized so called "LD_PRELOAD" hooking at the | ||||
| application layer that allowed a dynamically linked library to intercept s ocket-related calls | application layer that allowed a dynamically linked library to intercept s ocket-related calls | |||
| without rebuilding the related application | without rebuilding the related application | |||
| binaries. The library acted as a shim layer between | binaries. The library acted as a shim layer between | |||
| the application and transport layers. The shim layer translated | the application and transport layers. The shim layer translated | |||
| the non-HIP based socket calls from the application into | the non-HIP-based socket calls from the application into | |||
| HIP-based socket calls. While the shim library involved some | HIP-based socket calls. While the shim library involved some | |||
| level of complexity as described in more detail in <xref | level of complexity as described in more detail in <xref target="komu-leap | |||
| target="komu-leap" />, it achieved the goal of applying | " format="default"/>, it achieved the goal of applying | |||
| opportunistic mode at the granularity of | opportunistic mode at the granularity of | |||
| individual applications.</t> | individual applications.</t> | |||
| <!-- <t>In addition to this, the implementations | ||||
| had also some simpler ways to enforce authentication with | ||||
| specific peers: if the HI of the peer was discovered in the DNS | ||||
| or locally the /etc/hosts file in Linux (as described in more | ||||
| detail in <xref target="RFC6538" />). | ||||
| </t> --> | ||||
| <!-- xx no cert experiments --> | ||||
| <t> | <t> | |||
| <!-- Prioritize communication --> | ||||
| 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 | should prioritized over security. So | |||
| opportunistic mode should be, in general, allowed even if no | opportunistic mode should be, in general, allowed even if no | |||
| authentication is present, and even possibly a fallback to | authentication is present, and even possibly a fallback to | |||
| non-encrypted communications could be allowed (if policy permits) instead of blocking communications. | unencrypted communications could be allowed (if policy permits) instead o f blocking communications. | |||
| In practice, this can be realized in three | In practice, this can be realized in three | |||
| steps. In the first step, a HIP Initiator can look up the HI of a | steps. In the first step, a HIP Initiator can look up the HI of a | |||
| Responder from a directory such as DNS. When the Initiator discovers a HI , | Responder from a directory such as DNS. When the Initiator discovers a HI , | |||
| it can use the HI for authentication and skip the rest of the | it can use the HI for authentication and skip the rest of the | |||
| following steps. In the second step, the Initiator can, upon failing to f ind a HI, try opportunistic mode | following steps. In the second step, the Initiator can, upon failing to f ind a HI, try opportunistic mode | |||
| with the Responder. In the third step, the | with the Responder. In the third step, the | |||
| Initiator can fall back to non-HIP based communications upon | Initiator can fall back to non-HIP-based communications upon | |||
| failing with opportunistic mode if | failing with opportunistic mode if | |||
| the policy allows it. This three step model has been implemented successf | the policy allows it. This three-step model has been implemented successf | |||
| ully | ully | |||
| and described in more detail in <xref target="komu-leap" />. | and described in more detail in <xref target="komu-leap" format="default | |||
| </t> | "/>. | |||
| </t> | ||||
| <t> | <t> | |||
| <!-- Maximize security peer by peer --> | ||||
| The third TOFU principle suggests that security should be | The third TOFU principle suggests that security should be | |||
| maximized, so that at least opportunistic security would be | maximized, so that at least opportunistic security would be | |||
| employed. The three step model described earlier | employed. The three-step model described earlier | |||
| prefers authentication when it is available, e.g., via | prefers authentication when it is available, e.g., via | |||
| DNS records (and possibly even via DNSSEC when available) and falls | DNS records (and possibly even via DNSSEC when available) and falls | |||
| back to opportunistic mode when no out-of-band credentials are | back to opportunistic mode when no out-of-band credentials are | |||
| available. As the last resort, fallback to non-HIP based | available. As the last resort, fallback to non-HIP-based | |||
| communications can be used if the policy allows it. Also, | communications can be used if the policy allows it. Also, | |||
| since perfect forward security (PFS) is explicitly mentioned | since perfect forward secrecy (PFS) is explicitly mentioned | |||
| in the third design principle, it is worth mentioning that | in the third design principle, it is worth mentioning that | |||
| HIP supports it. | HIP supports it. | |||
| </t> | </t> | |||
| <t> | ||||
| <t> | The fourth TOFU principle states that users and noninteractive | |||
| <!-- No misrepresentation of security --> | ||||
| The fourth TOFU principle states that users and non-interactive | ||||
| applications should be properly informed about the level | applications should be properly informed about the level | |||
| of security being applied. In practice, non-HIP aware | of security being applied. In practice, non-HIP-aware | |||
| applications would assume no extra security being applied, | applications would assume that no extra security is being applied, | |||
| so misleading at least a non-interactive application | so misleading at least a noninteractive application | |||
| should not be possible. In the case of interactive desktop | should not be possible. In the case of interactive desktop | |||
| applications, system-level prompts have been utilized in | applications, system-level prompts have been utilized in | |||
| earlier HIP experiments <xref target="karvonen-usable" />, | earlier HIP experiments <xref target="karvonen-usable" format="default"/> | |||
| <xref target="RFC6538" /> to guide the user about the | <xref target="RFC6538" format="default"/> to guide the user about the | |||
| underlying HIP-based security. In general, users in those experiments per ceived when HIP-based security was being used versus not used. | underlying HIP-based security. In general, users in those experiments per ceived when HIP-based security was being used versus not used. | |||
| However, the users failed to | However, the users failed to | |||
| notice the difference between opportunistic and | notice the difference between opportunistic, non-authenticated HIP and | |||
| non-opportunistic HIP. The reason for this was that the | non-opportunistic, authenticated HIP. The reason for this was that the | |||
| opportunistic HIP (i.e. lowered level of security) | opportunistic HIP (i.e., lowered level of security) | |||
| was not clearly indicated in the prompt. This provided a | was not clearly indicated in the prompt. This provided a | |||
| valuable lesson to further improve the user interface.</t> | valuable lesson to further improve the user interface.</t> | |||
| <t> | ||||
| <t> | ||||
| In the case of HIP-aware applications, native sockets APIs for | In the case of HIP-aware applications, native sockets APIs for | |||
| HIP as specified in <xref target="RFC6317" /> can be used | HIP as specified in <xref target="RFC6317" format="default"/> can be used | |||
| to develop application-specific logic instead of using generic | to develop application-specific logic instead of using generic | |||
| system-level prompting. In such case, the application itself | system-level prompting. In such a case, the application itself | |||
| can directly prompt the user or otherwise manage the situation | can directly prompt the user or otherwise manage the situation | |||
| in other ways. In this case, also non-interactive | in other ways. In this case, noninteractive | |||
| applications can properly log the level of security being | applications also can properly log the level of security being | |||
| employed because the developer can now explicitly program the | employed because the developer can now explicitly program the | |||
| use of authenticated HIP, opportunistic HIP and plain-text | use of authenticated HIP, opportunistic HIP, and plain-text | |||
| communication. | communication. | |||
| </t> | </t> | |||
| <t> | ||||
| <t> | It is worth mentioning a few additional items discussed in <xref target=" | |||
| It is worth mentioning a few additional items discussed in <xref target=" | RFC7435" format="default"/>. Related to active attacks, | |||
| RFC7435" />. Related to active attacks, | HIP has built-in protection against ciphersuite downgrade | |||
| HIP has built-in protection against cipher-suite down-grade | attacks as described in detail in <xref target="RFC7401" format="default" | |||
| attacks as described in detail in <xref target="RFC7401" | />. In addition, pre-deployed certificates could be used to | |||
| />. In addition, pre-deployed certificates could be used to | ||||
| mitigate against active attacks in the case of opportunistic | mitigate against active attacks in the case of opportunistic | |||
| mode as mentioned in <xref target="RFC6538"/>. | mode as mentioned in <xref target="RFC6538" format="default"/>. | |||
| </t> | </t> | |||
| <t>Detection of peer capabilities is also mentioned in the TOFU | ||||
| <t>Detection of peer capabilities is also mentioned in the TOFU | ||||
| context. As discussed in this section, the three-step model can | context. As discussed in this section, the three-step model can | |||
| be used to detect peer capabilities. A host can achieve the | be used to detect peer capabilities. A host can achieve the | |||
| first step of authentication, i.e., discovery of a public key, | first step of authentication, i.e., discovery of a public key, | |||
| via DNS, for instance. If the host found no keys, the host can then try | via DNS, for instance. If the host finds no keys, the host can then try | |||
| opportunistic mode as the second step. Upon a timeout, the host | 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 | can then proceed to the third step by falling back to non-HIP-based | |||
| communications if the policy permits. This last step is based on | communications if the policy permits. This last step is based on | |||
| an implicit timeout rather an explicit (negative) acknowledgment | an implicit timeout rather an explicit (negative) acknowledgment | |||
| like in the case of DNS, so the user may conclude prematurely | like in the case of DNS, so the user may conclude prematurely | |||
| that the connectivity has failed. To speed up the detection | that the connectivity has failed. To speed up the detection | |||
| phase by explicitly detecting if the peer supports opportunistic | phase by explicitly detecting if the peer supports opportunistic | |||
| HIP, researchers have proposed TCP specific extensions | HIP, researchers have proposed TCP-specific extensions | |||
| <xref target="RFC6538"/>, <xref target="komu-leap" />. In a | <xref target="RFC6538" format="default"/> <xref target="komu-leap" format= | |||
| "default"/>. In a | ||||
| nutshell, an Initiator sends simultaneously both an opportunistic I1 packe t and | nutshell, an Initiator sends simultaneously both an opportunistic I1 packe t and | |||
| the related TCP SYN datagram equipped with a special TCP option | the related TCP SYN datagram equipped with a special TCP option | |||
| to a peer. If the peer supports HIP, it drops the | to a peer. If the peer supports HIP, it drops the | |||
| SYN packet and responds with an R1. If the peer is HIP | SYN packet and responds with an R1. If the peer is HIP | |||
| incapable, it drops the HIP packet (and the unknown TCP option) | incapable, it drops the HIP packet (and the unknown TCP option) | |||
| and responds with a TCP SYN-ACK. The benefit of the proposed | and responds with a TCP SYN-ACK. The benefit of the proposed | |||
| scheme is faster, one round-trip fallback to non-HIP based | scheme is a faster, one round-trip fallback to non-HIP-based | |||
| communications. The drawback is that the approach is tied to TCP | communications. The drawback is that the approach is tied to TCP | |||
| (IP-options were also considered, but do not work well with firewalls | (IP options were also considered, but do not work well with firewalls | |||
| and NATs). Naturally, the approach does not work against active | and NATs). Naturally, the approach does not work against an active | |||
| attacker, but opportunistic mode is not anyway supposed to protect | attacker, but opportunistic mode is not supposed to protect | |||
| against such an adversary. | against such an adversary anyway. | |||
| </t> | </t> | |||
| <t>It is worth noting that while the use of opportunistic mode has some | ||||
| <t>It is worth noting that while the use of opportunistic mode has some be | benefits related | |||
| nefits related | ||||
| to incremental deployment, it does not achieve all the benefits | to incremental deployment, it does not achieve all the benefits | |||
| of authenticated HIP <xref target="komu-diss" />. Namely, | of authenticated HIP <xref target="komu-diss" format="default"/>. Namely, | |||
| authenticated HIP supports persistent identifiers in the sense | authenticated HIP supports persistent identifiers in the sense | |||
| that hosts are identified with the same HI independently of | that hosts are identified with the same HI independent of | |||
| their movement. Opportunistic HIP meets this goal only | their movement. Opportunistic HIP meets this goal only | |||
| partially: after the first contact between two hosts, HIP can | partially: after the first contact between two hosts, HIP can | |||
| successfully sustain connectivity with its mobility management extensions, | successfully sustain connectivity with its mobility management extensions, | |||
| but problems emerge when the hosts close the HIP association and try to re -establish connectivity. As hosts | but problems emerge when the hosts close the HIP association and try to re establish connectivity. As hosts | |||
| can change their location, it is no longer guaranteed that the same IP | can change their location, it is no longer guaranteed that the same IP | |||
| address belongs to the same host. The same address | address belongs to the same host. The same address | |||
| can be temporally assigned to different hosts, e.g., due to the | can be temporally assigned to different hosts, e.g., due to the | |||
| reuse of IP addresses (e.g., by a DHCP service), overlapping | reuse of IP addresses (e.g., by a DHCP service), the overlapping of | |||
| private address realms (see also the discussion on Internet | private address realms (see also the discussion on Internet | |||
| transparency in <xref target="sec:benefits" />) or due to an | transparency in <xref target="sec_benefits" format="default"/>), or due to an | |||
| attempted attack. | attempted attack. | |||
| <!-- | </t> | |||
| So when a user of a host establishes a | ||||
| new flow to the same IP address, the host should prompt the user | ||||
| if the HI corresponding to the IP has changed.--> | ||||
| </t> | ||||
| <!-- | ||||
| X detection of peer capability? | ||||
| X fallback (timeout) | ||||
| X downgrade attacks | ||||
| X consider active vs passive attacks | ||||
| X TCP optimization (IP options do not pass firewalls) - IMPORTANT TOF | ||||
| U CAPABILITY DETECTION | ||||
| * non-persistent identifiers (mobility) | ||||
| * looses Internet transparency (NATs) | ||||
| * even normal HIP is susceptible to active MaN attacks without DNSSEC | ||||
| X HIP has protection against downgrade attacks against ciphersuites | ||||
| X leap of faith security (hip exp report) | ||||
| X mitigate using certificates | ||||
| X or prompting | ||||
| X tofu | ||||
| X different models | ||||
| X 1. Authenticated and encrypted communication | ||||
| X 2. Unauthenticated and encrypted communication | ||||
| X 3. Plaintext | ||||
| x infrastructure communication (rvs) | ||||
| X prompting to make the user aware of security tradeoffs | ||||
| X native api: opp mode: explicit, programmable | ||||
| X legacy api: | ||||
| X boeing LSI-opp | ||||
| X Ericsson? | ||||
| X HIPL: | ||||
| * system-level | ||||
| X shim library: complex wrapping of sockets API calls | ||||
| --> | ||||
| </section> | </section> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="IANA considerations"> | <name>IANA Considerations</name> | |||
| <t> This document has no actions for IANA.</t> | <t> This document has no IANA actions.</t> | |||
| </section> | ||||
| <section title="Acknowledgments"> | ||||
| <t>For the people historically involved in the early stages of | ||||
| HIP, see the Acknowledgments section in the | ||||
| Host Identity Protocol specification.</t> | ||||
| <t>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.</t> | ||||
| <t>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.</t> | ||||
| <t>This main effort to update and move HIP forward within the | ||||
| IETF 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.</t> | ||||
| <t>Thanks also for Suvi Koskinen for her help with proofreading | ||||
| and with the reference jungle.</t> | ||||
| </section> | </section> | |||
| <section title="Changes from RFC 4423"> | <section numbered="true" toc="default"> | |||
| <name>Changes from RFC 4423</name> | ||||
| <t>In a nutshell, the changes from <xref target="RFC4423"> RFC | <t>In a nutshell, the changes from <xref target="RFC4423" format="default" | |||
| > RFC | ||||
| 4423</xref> are mostly editorial, including clarifications on | 4423</xref> are mostly editorial, including clarifications on | |||
| topics described in a difficult way and omitting some of the | topics described in a difficult way and omitting some of the | |||
| non-architectural (implementation) details that are already | non-architectural (implementation) details that are already | |||
| described in other documents. A number of missing references to | described in other documents. A number of missing references to | |||
| the literature were also added. New topics include the drawbacks | the literature were also added. New topics include the drawbacks | |||
| of HIP, discussion on 802.15.4 and MAC security, HIP for IoT scenarios, de | of HIP, a discussion on 802.15.4 and MAC security, HIP for IoT scenarios, | |||
| ployment | deployment | |||
| considerations and description of the base exchange.</t> | considerations, and a description of the base exchange.</t> | |||
| </section> | </section> | |||
| </middle> | </middle> | |||
| <back> | <back> | |||
| <references title="Normative References"> | ||||
| &RFC7343; | <displayreference target="I-D.irtf-nsrg-report" to="nsrg-report"/> | |||
| &RFC7401; | <displayreference target="I-D.irtf-hiprg-revocation" to="zhang-revocation"/> | |||
| &RFC7402; | <displayreference target="I-D.irtf-hiprg-rfid" to="urien-rfid-draft"/> | |||
| <!-- &RFC5203-bis; --> | <displayreference target="I-D.tschofenig-hiprg-hip-srtp" to="hip-srtp"/> | |||
| &RFC8003; | <displayreference target="I-D.henderson-hip-vpls" to="henderson-vpls"/> | |||
| &RFC8004; | <displayreference target="I-D.heer-hip-middle-auth" to="heer-midauth"/> | |||
| &RFC8005; | ||||
| <!-- &RFC5206-bis; --> | ||||
| &RFC8046; | ||||
| &RFC8002; | ||||
| &RFC5482; | ||||
| <!-- &hip-nat; --> | ||||
| <!-- <?rfc include="reference.I-D.ietf-hip-multihoming.xml"?> --> | ||||
| &RFC8047; | ||||
| &RFC6079; | ||||
| &RFC7086; | ||||
| <?rfc include="reference.I-D.ietf-hip-native-nat-traversal.xml"?> | ||||
| <?rfc include="reference.I-D.ietf-hip-dex.xml"?> | ||||
| </references> | <references> | |||
| <name>References</name> | ||||
| <references> | ||||
| <name>Normative References</name> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.7343.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.7401.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.7402.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8003.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8004.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8005.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8046.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8002.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.5482.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8047.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.6079.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.7086.xml"/> | ||||
| <references title="Informative references"> | <reference anchor='RFC9028' target="https://www.rfc-editor.org/info/rfc9028"> | |||
| &RFC2136; | <front> | |||
| &RFC2535; | <title>Native NAT Traversal Mode for the Host Identity Protocol</title> | |||
| &RFC2766; | ||||
| &RFC3022; | ||||
| &RFC3102; | ||||
| &RFC3748; | ||||
| <!-- &RFC4025; --> | ||||
| &RFC4225; | ||||
| &RFC4306; | ||||
| &RFC4423; | ||||
| &RFC5218; | ||||
| &RFC5338; | ||||
| &RFC5887; | ||||
| &RFC6078; | ||||
| &RFC6250; | ||||
| &RFC6281; | ||||
| &RFC6317; | ||||
| &RFC6537; | ||||
| &RFC6538; | ||||
| &RFC7435; | ||||
| &RFC4380; | ||||
| &RFC3972; | ||||
| <!-- &nsrg-report; --> | <author initials='A' surname='Keränen' fullname='Ari Keränen'> | |||
| <!-- &IEEE.802-15-4.2011; --> | <organization /> | |||
| <!-- Removed per Russ Housley IESG comment | </author> | |||
| &I-D.ietf-hip-mm; | ||||
| <reference anchor="nsrg-report"> | <author initials='J' surname='Melén' fullname='Jan Melén'> | |||
| <front> | <organization /> | |||
| <title>What's In A Name:Thoughts from the NSRG</title> | </author> | |||
| <author initials="E" surname="Lear" fullname="Eliot Lear"><organizatio | ||||
| n/></author> | ||||
| <author initials="R" surname="Droms" fullname="Ralph Droms"><organizat | ||||
| ion/></author> | ||||
| <date month="September" day="22" year="2003"/> | ||||
| </front><seriesInfo name="Internet-Draft" value="draft-irtf-nsrg-report- | ||||
| 10"/> | ||||
| <format type="TXT" target="http://tools.ietf.org/id/draft-irtf-nsrg-repo | ||||
| rt-10.txt"/> | ||||
| </reference> | ||||
| <reference anchor="IEEE.802-15-4.2011" target="http://standards.ieee.org/g | <author initials='M' surname='Komu' fullname='Miika Komu' role='editor'> | |||
| etieee802/download/802.15.4-2011.pdf"> | <organization /> | |||
| <front> | </author> | |||
| <title>Information technology - Telecommunications and information exch | ||||
| ange between systems - Local and metropolitan area networks - Specific requireme | ||||
| nts - Part 15.4: Wireless Medium Access Control (MAC) and Physical Layer (PHY) S | ||||
| pecifications for Low-Rate Wireless Personal Area Networks (WPANs)</title> | ||||
| <author fullname="Institute of Electric and Electronic Engineers"><orga | ||||
| nization/></author> | ||||
| <date month="September" year="2011"/> | ||||
| </front><seriesInfo name="IEEE" value="Standard 802.15.4"/> | ||||
| </reference> | ||||
| <reference anchor="chiappa-endpoints"> | <date month='July' year='2021' /> | |||
| <front> | ||||
| <title>Endpoints and Endpoint Names: A Proposed Enhancement | ||||
| to the Internet Architecture</title> | ||||
| <author initials="J. N." surname="Chiappa"> | ||||
| <organization /> | ||||
| </author> | ||||
| <date year="1999" /> | ||||
| </front> | ||||
| <seriesInfo name="URL" | ||||
| value="http://www.chiappa.net/~jnc/tech/endpoints.txt" /> | ||||
| <format type="txt" | ||||
| target="http://www.chiappa.net/~jnc/tech/endpoints.txt" /> | ||||
| </reference> | ||||
| <reference anchor="Nik2001"> | </front> | |||
| <front> | <seriesInfo name="RFC" value="9028"/> | |||
| <title>Denial-of-Service, Address Ownership, and Early | <seriesInfo name="DOI" value="10.17487/RFC9028"/> | |||
| Authentication in the IPv6 World</title> | </reference> | |||
| <author initials="P." surname="Nikander"> | </references> | |||
| <organization /> | <references> | |||
| </author> | <name>Informative References</name> | |||
| <date year="2002" /> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| </front> | FC.2136.xml"/> | |||
| <seriesInfo name="in Proceesings of" | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| value="Security Protocols, 9th International Workshop" /> | FC.2766.xml"/> | |||
| <seriesInfo name="" | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| value="Cambridge, UK, April 25-27 2001" /> | FC.3022.xml"/> | |||
| <seriesInfo name="LNCS" value="2467" /> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| <seriesInfo name="pp." value="12-26" /> | FC.3102.xml"/> | |||
| <seriesInfo name="" value="Springer" /> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| <format type="pdf" | FC.3748.xml"/> | |||
| target="http://www.tml.hut.fi/~pnr/publications/cam2001.pdf" | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| /> | FC.4033.xml"/> | |||
| </reference> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| FC.4225.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.4423.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.5218.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.5338.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.5887.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.6078.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.6250.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.6281.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.6317.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.6537.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.6538.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.7296.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.7435.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.4380.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.3972.xml"/> | ||||
| <reference anchor="IEEE.802-15-9"> | <reference anchor="I-D.irtf-nsrg-report"> | |||
| <front> | <front> | |||
| <title>IEEE Draft Recommended Practice for Transort of Key | <title>What's In A Name: Thoughts from the NSRG</title> | |||
| Management Protocol (KMP) Datagrams</title> | <author initials="E." surname="Lear" fullname="Eliot Lear"> | |||
| <author fullname="Institute of Electric and Electronic Engineers"><orga | <organization>Cisco Systems</organization> | |||
| nization/></author> | </author> | |||
| <date month="May" year="2015"/> | <author initials="R." surname="Droms" fullname="Ralph Droms"> | |||
| </front><seriesInfo name="IEEE" value="P802.15.9/D04"/> | <organization>Cisco Systems</organization> | |||
| </reference> | </author> | |||
| <date month="September" day="22" year="2003"/> | ||||
| </front> | ||||
| <seriesInfo name="Internet-Draft" value="draft-irtf-nsrg-report-10"/> | ||||
| <format type="TXT" target="https://www.ietf.org/archive/id/draft-irtf-nsrg-repor | ||||
| t-10.txt"/> | ||||
| </reference> | ||||
| <!-- | <reference anchor='hip-dex'> | |||
| <reference anchor="Bel1998"> | <front> | |||
| <front> | <title>HIP Diet EXchange (DEX)</title> | |||
| <title>EIDs, IPsec, and HostNAT</title> | ||||
| <author initials="S." surname="Bellovin"> | ||||
| <organization /> | ||||
| </author> | ||||
| <date year="1998" month="March" /> | ||||
| </front> | ||||
| <seriesInfo name="in Proceedings of" | ||||
| value="41th IETF, Los Angeles, CA" /> | ||||
| <seriesInfo name="URL" | ||||
| value="http://www1.cs.columbia.edu/~smb/talks/hostnat.pdf" /> | ||||
| <format type="pdf" | ||||
| target="http://www1.cs.columbia.edu/~smb/talks/hostnat.pdf" | ||||
| /> | ||||
| </reference> | ||||
| --> | ||||
| <reference anchor="urien-rfid"> | <author initials='R' surname='Moskowitz' fullname='Robert Moskowitz' role='edito | |||
| <front> | r'> | |||
| <title>HIP-based RFID Networking Architecture</title> | <organization /> | |||
| <author initials="P." surname="Urien"></author> | </author> | |||
| <author initials="H." surname="Chabanne"></author> | ||||
| <author initials="M." surname="Bouet"></author> | ||||
| <author initials="D.O." surname="de Cunha"></author> | ||||
| <author initials="V." surname="Guyot"></author> | ||||
| <author initials="G." surname="Pujolle"></author> | ||||
| <author initials="P." surname="Paradinas"></author> | ||||
| <author initials="E." surname="Gressier"></author> | ||||
| <author initials="J.-F." surname="Susini"></author> | ||||
| <date year="2007" month="July" /> | ||||
| </front> | ||||
| <seriesInfo name="IFIP International Conference on Wireless and Optical C | ||||
| ommunications Networks," value="DOI: 10.1109/WOCN.2007.4284140" /> | ||||
| </reference> | ||||
| <reference anchor="komu-leap"> | <author initials='R' surname='Hummen' fullname='Rene Hummen'> | |||
| <front> | <organization /> | |||
| <title>Leap-of-Faith Security is Enough for IP Mobility</title> | </author> | |||
| <author initials="M." surname="Komu"></author> | ||||
| <author initials="J." surname="Lindqvist"></author> | ||||
| <date year="2009" month="January" /> | ||||
| </front> | ||||
| <seriesInfo name="6th Annual IEEE Consumer Communications and Networking | ||||
| Conference IEEE CCNC 2009, Las Vegas, Nevada," value="" /> | ||||
| </reference> | ||||
| <reference anchor="komu-diss"> | <author initials='M' surname='Komu' fullname='Miika Komu'> | |||
| <front> | <organization /> | |||
| <title>A Consolidated Namespace for Network Applications, Developers, | </author> | |||
| Administrators and Users</title> | ||||
| <author initials="M." surname="Komu"></author> | ||||
| <date year="2012" month="December" /> | ||||
| </front> | ||||
| <seriesInfo name="Dissertation, Aalto University, Espoo, Finland" value= | ||||
| "ISBN: 978-952-60-4904-5 (printed), ISBN: 978-952-60-4905-2 (electronic). " /> | ||||
| </reference> | ||||
| <reference anchor="lindqvist-enterprise"> | <date month='January' day='19' year='2021' /> | |||
| <front> | ||||
| <title>Enterprise Network Packet Filtering for Mobile Cryptographic Id | ||||
| entities</title> | ||||
| <author initials="J." surname="Lindqvist"></author> | ||||
| <author initials="E." surname="Vehmersalo"></author> | ||||
| <author initials="J." surname="Manner"></author> | ||||
| <author initials="M." surname="Komu"></author> | ||||
| <date year="2010" month="January-March" /> | ||||
| </front> | ||||
| <seriesInfo name="International Journal of Handheld Computing Research, | ||||
| 1 (1), 79-94," value="" /> | ||||
| </reference> | ||||
| <reference anchor="aura-dos"> | </front> | |||
| <front> | <seriesInfo name="Internet-Draft" value="draft-ietf-hip-dex-24" /> | |||
| <title>DOS-resistant Authentication with Client Puzzles</title> | <format type="TXT" target="https://www.ietf.org/archive/id/draft-ietf-hip-dex | |||
| <author initials="T." surname="Aura"></author> | -24.txt" /> | |||
| <author initials="P." surname="Nikander"></author> | ||||
| <author initials="J." surname="Leiwo"></author> | ||||
| <date year="2001" month="April" /> | ||||
| </front> | ||||
| <seriesInfo name="8th International Workshop on Security Protocols, page | ||||
| s 170-177. Springer," value="" /> | ||||
| </reference> | ||||
| <reference anchor="beal-dos"> | </reference> | |||
| <front> | ||||
| <title>Deamplification of DoS Attacks via Puzzles</title> | ||||
| <author initials="J." surname="Beal"></author> | ||||
| <author initials="T." surname="Shephard"></author> | ||||
| <date year="2004" month="October" /> | ||||
| </front> | ||||
| <seriesInfo name="" value="" /> | ||||
| </reference> | ||||
| <reference anchor="tritilanunt-dos"> | <reference anchor="IEEE.802.15.4" target="https://ieeexplore.ieee.org/do | |||
| <front> | cument/9144691"> | |||
| <title>Examining the DoS Resistance of HIP</title> | <front> | |||
| <author initials="S." surname="Tritilanunt"></author> | <title>IEEE Standard for Low-Rate Wireless Networks</title> | |||
| <author initials="C." surname="Boyd"></author> | <author> | |||
| <author initials="E." surname="Foo"></author> | <organization>IEEE</organization> | |||
| <author initials="J. M. G." surname="Nieto"></author> | </author> | |||
| <date year="2006" month="" /> | <date month="July" year="2020"/> | |||
| </front> | </front> | |||
| <seriesInfo name="OTM Workshops (1), volume 4277 of Lecture Notes | <seriesInfo name="IEEE" value="Standard 802.15.4"/> | |||
| in Computer Science, pages 616-625,Springer" value="" | <seriesInfo name="DOI" value="10.1109/IEEESTD.2020.9144691"/> | |||
| /> | </reference> | |||
| </reference> | ||||
| <reference anchor="komu-mitigation"> | <reference anchor="chiappa-endpoints" target="http://mercury.lcs.mit.edu | |||
| <front> | /~jnc/tech/endpoints.txt"> | |||
| <title>Mitigation of Unsolicited Traffic Across Domains with Host Iden | <front> | |||
| tities and Puzzles</title> | <title>Endpoints and Endpoint Names: A Proposed Enhancement | |||
| <author initials="M." surname="Komu"></author> | to the Internet Architecture</title> | |||
| <author initials="S." surname="Tarkoma"></author> | <author initials="J." surname="Chiappa"> | |||
| <author initials="A." surname="Lukyanenko"></author> | <organization/> | |||
| <date year="2010" month="October" /> | </author> | |||
| </front> | <date year="1999"/> | |||
| <seriesInfo name="15th Nordic Conference on Secure IT Systems (NordSec 2 | </front> | |||
| 010), Springer Lecture Notes in Computer Science, Volume 7127, pp. 33-48," | </reference> | |||
| value="ISBN: 978-3-642-27936-2" /> | ||||
| </reference> | ||||
| <reference anchor="varjonen-split"> | <reference anchor="Nik2001"> | |||
| <front> | <front> | |||
| <title>Secure and Efficient IPv4/IPv6 Handovers Using Host-Based Ident | <title>Denial-of-Service, Address Ownership, and Early | |||
| ifier-Location Split</title> | Authentication in the IPv6 World</title> | |||
| <author initials="S." surname="Varjonen"></author> | <author initials="P." surname="Nikander"> | |||
| <author initials="M." surname="Komu"></author> | <organization/> | |||
| <author initials="A." surname="Gurtov"></author> | </author> | |||
| <date year="2010" month="" /> | <date year="2002"/> | |||
| </front> | </front> | |||
| <seriesInfo name="Journal of Communications Software and Systems, 6(1), | <refcontent>9th International Workshop on Security Protocols, Security | |||
| 2010," value="ISSN: 18456421" /> | Protocols 2001, Lecture Notes in Computer Science, Vol. 2467, pp. 12-21, Spring | |||
| </reference> | er</refcontent> | |||
| <seriesInfo name="DOI" value="10.1007/3-540-45807-7_3"/> | ||||
| </reference> | ||||
| <reference anchor="ylitalo-spinat"> | <reference anchor="IEEE.802.15.9"> | |||
| <front> | <front> | |||
| <title>SPINAT: Integrating IPsec into overlay routing</title> | <title>IEEE Draft Recommended Practice for Transport of Key Manageme | |||
| <author initials="J." surname="Ylitalo"></author> | nt Protocol (KMP) Datagrams</title> | |||
| <author initials="P." surname="Salmela"></author> | <author> | |||
| <author initials="H." surname="Tschofenig"></author> | <organization>IEEE</organization> | |||
| <date year="2005" month="September" /> | </author> | |||
| </front> | <date month="May" year="2015"/> | |||
| <seriesInfo name="Proceedings of the First International Conference on S | </front> | |||
| ecurity and Privacy for Emerging Areas in Communication Networks (SecureComm 200 | <seriesInfo name="IEEE" value="P802.15.9/D04"/> | |||
| 5). Athens, Greece. IEEE Computer Society, pages 315-326," | </reference> | |||
| value="ISBN: 0-7695-2369-2" /> | ||||
| </reference> | ||||
| <reference anchor="shields-hip"> | <reference anchor="urien-rfid"> | |||
| <front> | <front> | |||
| <title>The HIP protocol for hierarchical multicast routing</title> | <title>HIP-based RFID Networking Architecture</title> | |||
| <author initials="C." surname="Shields"></author> | <author initials="P." surname="Urien"> | |||
| <author initials="J. J." surname="Garcia-Luna-Aceves"></author> | <organization/> | |||
| <date year="1998" month="" /> | </author> | |||
| </front> | <author initials="H." surname="Chabanne"> | |||
| <seriesInfo name="Proceedings of the seventeenth annual ACM symposium on | <organization/> | |||
| Principles of distributed computing, pages 257-266. ACM, New York, NY, USA," va | </author> | |||
| lue="ISBN: 0-89791-977-7, DOI: 10.1145/277697.277744" /> | <author initials="C." surname="Pepin"> | |||
| </reference> | <organization/> | |||
| </author> | ||||
| <author initials="S." surname="Orga"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="M." surname="Bouet"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="D.O." surname="de Cunha"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="V." surname="Guyot"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="G." surname="Pujolle"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="P." surname="Paradinas"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="E." surname="Gressier"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="J.-F." surname="Susini"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date year="2007"/> | ||||
| </front> | ||||
| <refcontent>2007 IFIP International Conference on Wireless and Optical | ||||
| Communications Networks, pp. 1-5</refcontent> | ||||
| <seriesInfo name="DOI" value="10.1109/WOCN.2007.4284140"/> | ||||
| </reference> | ||||
| <reference anchor="xueyong-hip"> | <reference anchor="komu-leap"> | |||
| <front> | <front> | |||
| <title>A Multicast Routing Algorithm Applied to HIP-Multicast Model</t | <title>Leap-of-Faith Security is Enough for IP Mobility</title> | |||
| itle> | <author initials="M." surname="Komu"> | |||
| <author initials="Z." surname="Xueyong"></author> | <organization/> | |||
| <author initials="D." surname="Zhiguo"></author> | </author> | |||
| <author initials="W." surname="Xinling"></author> | <author initials="J." surname="Lindqvist"> | |||
| <date year="2011" month="" /> | <organization/> | |||
| </front> | </author> | |||
| <seriesInfo name="Proceedings of the 2011 International Conference on Ne | <date year="2009" month="January"/> | |||
| twork Computing and Information Security - Volume 01 (NCIS '11), Vol. 1. IEEE Co | </front> | |||
| mputer Society, Washington, DC, USA, pages 169-174," | <refcontent>2009 6th IEEE Consumer Communications and Networking Con | |||
| value ="DOI: 10.1109/NCIS.2011.42" /> | ference, Las Vegas, NV, USA, pp. 1-5</refcontent> | |||
| </reference> | <seriesInfo name="DOI" value="10.1109/CCNC.2009.4784729"/> | |||
| </reference> | ||||
| <reference anchor="amir-hip"> | <reference anchor="komu-diss"> | |||
| <front> | <front> | |||
| <title>Security and Trust of Public Key Cryptography for HIP and HIP M | <title>A Consolidated Namespace for Network Applications, Developers | |||
| ulticast</title> | , Administrators and Users</title> | |||
| <author initials="K. C." surname="Amir"></author> | <author initials="M." surname="Komu"> | |||
| <author initials="H." surname="Forsgren"></author> | <organization/> | |||
| <author initials="K." surname="Grahn"></author> | </author> | |||
| <author initials="T." surname="Karvi"></author> | <date year="2012" month="December"/> | |||
| <author initials="G." surname="Pulkkis"></author> | </front> | |||
| <date year="2013" month="" /> | <refcontent>Dissertation, Aalto University, Espoo, Finland</refcontent | |||
| </front> | > | |||
| <seriesInfo name="International Journal of Dependable and Trustworthy In | <seriesInfo name="ISBN" value="978-952-60-4904-5 (printed)"/> | |||
| formation Systems (IJDTIS), 2(3), 17-35," | <seriesInfo name="ISBN" value="978-952-60-4905-2 (electronic)"/> | |||
| value="DOI: 10.4018/jdtis.2011070102" /> | </reference> | |||
| </reference> | ||||
| <reference anchor="kovacshazi-host"> | <reference anchor="lindqvist-enterprise"> | |||
| <front> | <front> | |||
| <title>Host Identity Specific Multicast</title> | <title>Enterprise Network Packet Filtering for Mobile Cryptographic | |||
| <author initials="Z." surname="Kovacshazi"></author> | Identities</title> | |||
| <author initials="R." surname="Vida"></author> | <author initials="J." surname="Lindqvist"> | |||
| <date year="2007" month="" /> | <organization/> | |||
| </front> | </author> | |||
| <seriesInfo name="International conference on Networking and Services (I | <author initials="E." surname="Vehmersalo"> | |||
| CNS'06), IEEE Computer Society, Los Alamitos, CA, USA," | <organization/> | |||
| value="http://doi.ieeecomputersociety.org/10.1109/ICNS.2007. | </author> | |||
| 66" /> | <author initials="M." surname="Komu"> | |||
| </reference> | <organization/> | |||
| </author> | ||||
| <author initials="J." surname="Manner"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date year="2010"/> | ||||
| </front> | ||||
| <refcontent>International Journal of Handheld Computing Research (IJHC | ||||
| R), Vol. 1, Issue 1, pp. 79-94</refcontent> | ||||
| <seriesInfo name="DOI" value="10.4018/jhcr.2010090905"/> | ||||
| </reference> | ||||
| <reference anchor="xueyong-secure"> | <reference anchor="aura-dos"> | |||
| <front> | <front> | |||
| <title>A Secure Multicast Model for Peer-to-Peer and Access Networks U | <title>DOS-Resistant Authentication with Client Puzzles</title> | |||
| sing the Host Identity Protocol</title> | <author initials="T." surname="Aura"> | |||
| <author initials="Z." surname="Xueyong"></author> | <organization/> | |||
| <author initials="J. W." surname="Atwood"></author> | </author> | |||
| <date year="2007" month="January" /> | <author initials="P." surname="Nikander"> | |||
| </front> | <organization/> | |||
| <seriesInfo name="Consumer Communications and Networking Conference. CCN | </author> | |||
| C 2007. 4th IEEE, pages 1098,1102," value="DOI: 10.1109/CCNC.2007.221" /> | <author initials="J." surname="Leiwo"> | |||
| </reference> | <organization/> | |||
| </author> | ||||
| <date year="2001" month="September"/> | ||||
| </front> | ||||
| <refcontent>8th International Workshop on Security Protocols, Security | ||||
| Protocols 2000, Lecture Notes in Computer Science, Vol. 2133, pp. 170-177, Spri | ||||
| nger</refcontent> | ||||
| <seriesInfo name="DOI" value="10.1007/3-540-44810-1_22"/> | ||||
| </reference> | ||||
| <reference anchor="sarela-bloom"> | <reference anchor="beal-dos"> | |||
| <front> | <front> | |||
| <title>BloomCasting: Security in Bloom filter based multicast</title> | <title>Deamplification of DoS Attacks via Puzzles</title> | |||
| <author initials="M." surname="Srel"></author> | <author initials="J." surname="Beal"> | |||
| <author initials="C." surname="Esteve Rothenberg"></author> | <organization/> | |||
| <author initials="A." surname="Zahemszky"></author> | </author> | |||
| <author initials="P." surname="Nikander"></author> | <author initials="T." surname="Shepard"> | |||
| <author initials="J." surname="Ott"></author> | <organization/> | |||
| <date year="2012" /> | </author> | |||
| </front> | <date year="2004" month="October"/> | |||
| <seriesInfo name="" | </front> | |||
| value="" /> | </reference> | |||
| <seriesInfo name="Lecture Notes in Computer Science" | ||||
| value="2012" /> | ||||
| <seriesInfo name="" value="" /> | ||||
| <seriesInfo name="pages" value="1-16" /> | ||||
| <seriesInfo name="" value="Springer Berlin Heidelberg" /> | ||||
| <format type="" | ||||
| target="http://dx.doi.org/10.1007/978-3-642-27937-9_1" /> | ||||
| </reference> | ||||
| <reference anchor="pham-leap"> | <reference anchor="tritilanunt-dos"> | |||
| <front> | <front> | |||
| <title>Security Analysis of Leap-of-Faith Protocols</title> | <title>Examining the DoS Resistance of HIP</title> | |||
| <author initials="V." surname="Pham"></author> | <author initials="S." surname="Tritilanunt"> | |||
| <author initials="T." surname="Aura"></author> | <organization/> | |||
| <date year="2011" month="September" /> | </author> | |||
| </front> | <author initials="C." surname="Boyd"> | |||
| <seriesInfo name=" Seventh ICST International Conference on Security and | <organization/> | |||
| Privacy for Communication Networks," value="" /> | </author> | |||
| </reference> | <author initials="E." surname="Foo"> | |||
| <organization/> | ||||
| </author> | ||||
| <author initials="J.M.G." surname="Nieto"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date year="2006"/> | ||||
| </front> | ||||
| <refcontent>On the Move to Meaningful Internet Systems 2006: OTM 200 | ||||
| 6 Workshops, Lecture Notes in Computer Science, Vol. 4277, pp. 616-625, Springer | ||||
| </refcontent> | ||||
| <seriesInfo name="DOI" value="10.1007/11915034_85"/> | ||||
| </reference> | ||||
| <reference anchor="karvonen-usable"> | <reference anchor="komu-mitigation"> | |||
| <front> | <front> | |||
| <title>Usable Security Management with Host Identity Protocol</title> | <title>Mitigation of Unsolicited Traffic Across Domains with Host Id | |||
| <author initials="K." surname="Karvonen"></author> | entities and Puzzles</title> | |||
| <author initials="M." surname="Komu"></author> | <author initials="M." surname="Komu"> | |||
| <author initials="A." surname="Gurtov"></author> | <organization/> | |||
| <date year="2009" month="" /> | </author> | |||
| </front> | <author initials="S." surname="Tarkoma"> | |||
| <seriesInfo name="7th ACS/IEEE International Conference on Computer Syst | <organization/> | |||
| ems and Applications," value="(AICCSA-2009)" /> | </author> | |||
| </reference> | <author initials="A." surname="Lukyanenko"> | |||
| <organization/> | ||||
| </author> | ||||
| <date year="2010" month="October"/> | ||||
| </front> | ||||
| <refcontent>15th Nordic Conference on Secure IT Systems, NordSec 2010, | ||||
| Lecture Notes in Computer Science, Vol. 7127, pp. 33-48, Springer</refcontent> | ||||
| <seriesInfo name="ISBN" value="978-3-642-27936-2"/> | ||||
| <seriesInfo name="DOI" value="10.1007/978-3-642-27937-9_3"/> | ||||
| </reference> | ||||
| <reference anchor="ylitalo-diss"> | <reference anchor="varjonen-split"> | |||
| <front> | <front> | |||
| <title>Secure Mobility at Multiple Granularity Levels over Heterogeneo | <title>Secure and Efficient IPv4/IPv6 Handovers Using Host-Based Ide | |||
| us Datacom Networks</title> | ntifier-Location Split</title> | |||
| <author initials="J." surname="Ylitalo"></author> | <author initials="S." surname="Varjonen"> | |||
| <date year="2008" month="" /> | <organization/> | |||
| </front> | </author> | |||
| <seriesInfo name="Dissertation, Helsinki University of Technology, Espoo | <author initials="M." surname="Komu"> | |||
| , Finland" value="ISBN 978-951-22-9531-9" /> | <organization/> | |||
| </reference> | </author> | |||
| <author initials="A." surname="Gurtov"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date year="2010"/> | ||||
| </front> | ||||
| <refcontent>Journal of Communications Software and Systems, Vol. 6, Is | ||||
| sue 1</refcontent> | ||||
| <seriesInfo name="ISSN" value="18456421"/> | ||||
| <seriesInfo name="DOI" value="10.24138/jcomss.v6i1.193"/> | ||||
| </reference> | ||||
| <reference anchor="xin-hip-lib"> | <reference anchor="ylitalo-spinat"> | |||
| <front> | <front> | |||
| <title>Host Identity Protocol Version 2.5</title> | <title>SPINAT: Integrating IPsec into Overlay Routing</title> | |||
| <author initials="G." surname="Xin"></author> | <author initials="J." surname="Ylitalo"> | |||
| <date year="2012" month="June" /> | <organization/> | |||
| </front> | </author> | |||
| <seriesInfo name="Master's Thesis, Aalto University, Espoo, Finland," val | <author initials="P." surname="Salmela"> | |||
| ue="" /> | <organization/> | |||
| </reference> | </author> | |||
| <author initials="H." surname="Tschofenig"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date year="2005"/> | ||||
| </front> | ||||
| <refcontent>First International Conference on Security and Privacy for | ||||
| Emerging Areas in Communication Networks, SECURECOMM'05, Athens, Greece, pp. 31 | ||||
| 5-326</refcontent> | ||||
| <seriesInfo name="ISBN" value="0-7695-2369-2"/> | ||||
| <seriesInfo name="DOI" value="10.1109/SECURECOMM.2005.53"/> | ||||
| </reference> | ||||
| <reference anchor="schuetz-intermittent"> | <reference anchor="shields-hip"> | |||
| <front> | <front> | |||
| <title>Protocol enhancements for intermittently connected hosts</title> | <title>The HIP protocol for hierarchical multicast routing</title> | |||
| <author initials="S." surname="Schtz"></author> | <author initials="C." surname="Shields"> | |||
| <author initials="L." surname="Eggert"></author> | <organization/> | |||
| <author initials="S." surname="Schmid"></author> | </author> | |||
| <author initials="M." surname="Brunner"></author> | <author initials="J. J." surname="Garcia-Luna-Aceves"> | |||
| <date year="2005" month="July" /> | <organization/> | |||
| </front> | </author> | |||
| <seriesInfo name="SIGCOMM Comput. Commun. Rev., 35(3):5-18," value="" /> | <date year="1998"/> | |||
| </reference> | </front> | |||
| <refcontent>Proceedings of the seventeenth annual ACM symposium on Pri | ||||
| nciples of distributed computing, pp. 257-266</refcontent> | ||||
| <seriesInfo name="ISBN" value="0-89791-977-7"/> | ||||
| <seriesInfo name="DOI" value="10.1145/277697.277744"/> | ||||
| </reference> | ||||
| <reference anchor="paine-hip"> | <reference anchor="zhu-hip"> | |||
| <front> | <front> | |||
| <title>Beyond HIP: The End to Hacking As We Know It</title> | <title>A Multicast Routing Algorithm Applied to HIP-Multicast Model< | |||
| <author initials="R. H." surname="Paine"></author> | /title> | |||
| <date year="2009" month="" /> | <author initials="X." surname="Zhu"> | |||
| </front> | <organization/> | |||
| <seriesInfo name="BookSurge Publishing," value="ISBN: 1439256047, 978143 | </author> | |||
| 9256046" /> | <author initials="Z." surname="Ding"> | |||
| </reference> | <organization/> | |||
| </author> | ||||
| <author initials="X." surname="Wang"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date year="2011"/> | ||||
| </front> | ||||
| <refcontent>2011 International Conference on Network Computing and Inf | ||||
| ormation Security, Guilin, China, pp. 169-174</refcontent> | ||||
| <seriesInfo name="DOI" value="10.1109/NCIS.2011.42"/> | ||||
| </reference> | ||||
| <reference anchor="leva-barriers"> | <reference anchor="amir-hip"> | |||
| <front> | <front> | |||
| <title>Adoption Barriers of Network-layer Protocols: the Case of Host | <title>Security and Trust of Public Key Cryptography for HIP and HIP | |||
| Identity Protocol</title> | Multicast</title> | |||
| <author initials="A. K. T." surname="Lev"></author> | <author initials="K." surname="Amir"> | |||
| <author initials="M." surname="Komu"></author> | <organization/> | |||
| <author initials="S." surname="Luukkainen"></author> | </author> | |||
| <date year="2013" month="March" /> | <author initials="H." surname="Forsgren"> | |||
| </front> | <organization/> | |||
| <seriesInfo name="The International Journal of Computer and Telecommunic | </author> | |||
| ations Networking," value="ISSN: 1389-1286" /> | <author initials="K." surname="Grahn"> | |||
| </reference> | <organization/> | |||
| </author> | ||||
| <author initials="T." surname="Karvi"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="G." surname="Pulkkis"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date year="2013"/> | ||||
| </front> | ||||
| <refcontent>International Journal of Dependable and Trustworthy Inform | ||||
| ation Systems (IJDTIS), Vol. 2, Issue 3, pp. 17-35</refcontent> | ||||
| <seriesInfo name="DOI" value="10.4018/jdtis.2011070102"/> | ||||
| </reference> | ||||
| <reference anchor="heer-end-host"> | <reference anchor="kovacshazi-host"> | |||
| <front> | <front> | |||
| <title>End-host Authentication and Authorization for Middleboxes based | <title>Host Identity Specific Multicast</title> | |||
| on a Cryptographic Namespace</title> | <author initials="Z." surname="Kovacshazi"> | |||
| <author initials="T." surname="Heer"></author> | <organization/> | |||
| <author initials="R." surname="Hummen"></author> | </author> | |||
| <author initials="M." surname="Komu"></author> | <author initials="R." surname="Vida"> | |||
| <author initials="S." surname="Gtz"></author> | <organization/> | |||
| <author initials="K." surname="Wehre"></author> | </author> | |||
| <date year="2009" month="" /> | <date year="2007"/> | |||
| </front> | </front> | |||
| <seriesInfo name="ICC2009 Communication and Information Systems Security | <refcontent>International Conference on Networking and Services (ICNS | |||
| Symposium," value="" /> | '07), Athens, Greece, pp. 1-1</refcontent> | |||
| </reference> | <seriesInfo name="DOI" value="10.1109/ICNS.2007.66"/> | |||
| </reference> | ||||
| <reference anchor="komu-cloud"> | <reference anchor="zhu-secure"> | |||
| <front> | <front> | |||
| <title>Secure Networking for Virtual Machines in the Cloud</title> | <title>A Secure Multicast Model for Peer-to-Peer and Access Networks | |||
| <author initials="M." surname="Komu"></author> | Using the Host Identity Protocol</title> | |||
| <author initials="M." surname="Sethi"></author> | <author initials="X." surname="Zhu"> | |||
| <author initials="R." surname="Mallavarapu"></author> | <organization/> | |||
| <author initials="H." surname="Oirola"></author> | </author> | |||
| <author initials="R." surname="Khan"></author> | <author initials="J. W." surname="Atwood"> | |||
| <author initials="S." surname="Tarkoma"></author> | <organization/> | |||
| <date year="2012" month="September" /> | </author> | |||
| </front> | <date year="2007"/> | |||
| <seriesInfo name="International Workshop on Power and QoS Aware Computin | </front> | |||
| g (PQoSCom2012), IEEE," value="ISBN: 978-1-4244-8567-3" /> | <refcontent>2007 4th IEEE Consumer Communications and Networking Confe | |||
| </reference> | rence, Las Vegas, NV, USA, pages 1098-1102</refcontent> | |||
| <seriesInfo name="DOI" value="10.1109/CCNC.2007.221"/> | ||||
| </reference> | ||||
| <reference anchor="zhang-revocation"> | <reference anchor="sarela-bloom"> | |||
| <front> | <front> | |||
| <title>Host Identifier Revocation in HIP</title> | <title>BloomCasting: Security in Bloom Filter Based Multicast</title | |||
| <author initials="D." surname="Zhang"></author> | > | |||
| <author initials="D." surname="Kuptsov"></author> | <author initials="M." surname="Särelä"> | |||
| <author initials="S." surname="Shen"></author> | <organization/> | |||
| <date year="2012" month="Mar" /> | </author> | |||
| </front> | <author initials="C." surname="Esteve Rothenberg"> | |||
| <seriesInfo name="IRTF Working draft" value="draft-irtf-hiprg-revocation- | <organization/> | |||
| 05"/> | </author> | |||
| </reference> | <author initials="A." surname="Zahemszky"> | |||
| <organization/> | ||||
| </author> | ||||
| <author initials="P." surname="Nikander"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="J." surname="Ott"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date year="2012"/> | ||||
| </front> | ||||
| <refcontent>Information Security Technology for Applications, NordSec | ||||
| 2010, Lecture Notes in Computer Science, Vol. 7127, pages 1-16, Springer</refcon | ||||
| tent> | ||||
| <seriesInfo name="DOI" value="10.1007/978-3-642-27937-9_1"/> | ||||
| </reference> | ||||
| <reference anchor="urien-rfid-draft"> | <reference anchor="pham-leap"> | |||
| <front> | <front> | |||
| <title>HIP support for RFIDs</title> | <title>Security Analysis of Leap-of-Faith Protocols</title> | |||
| <author initials="P." surname="Urien"></author> | <author initials="V." surname="Pham"> | |||
| <author initials="G." surname="Lee"></author> | <organization/> | |||
| <author initials="G." surname="Pujolle"></author> | </author> | |||
| <date year="2013" month="April" /> | <author initials="T." surname="Aura"> | |||
| </front> | <organization/> | |||
| <seriesInfo name="IRTF Working draft" value="draft-irtf-hiprg-rfid-07"/> | </author> | |||
| </reference> | <date year="2012"/> | |||
| </front> | ||||
| <refcontent>7th International ICST Conference, Security and Privacy fo | ||||
| r Communication Networks, SecureComm 2011, Lecture Notes of the Institute for Co | ||||
| mputer Sciences, Social Informatics and Telecommunications Engineering, Vol. 96< | ||||
| /refcontent> | ||||
| <seriesInfo name="DOI" value="10.1007/978-3-642-31909-9_19"/> | ||||
| </reference> | ||||
| <reference anchor="hip-srtp"> | <reference anchor="karvonen-usable"> | |||
| <front> | <front> | |||
| <title>Using SRTP transport format with HIP</title> | <title>Usable security management with host identity protocol</title | |||
| <author initials="H." surname="Tschofenig"></author> | > | |||
| <author initials="F." surname="Muenz"></author> | <author initials="K." surname="Karvonen"> | |||
| <author initials="M." surname="Shanmugam"></author> | <organization/> | |||
| <date year="2005" month="October" /> | </author> | |||
| </front> | <author initials="M." surname="Komu"> | |||
| <seriesInfo name="Working draft" value="draft-tschofenig-hiprg-hip-srtp-0 | <organization/> | |||
| 1"/> | </author> | |||
| </reference> | <author initials="A." surname="Gurtov"> | |||
| <organization/> | ||||
| </author> | ||||
| <date year="2009"/> | ||||
| </front> | ||||
| <refcontent>2009 IEEE/ACS International Conference on Computer Systems | ||||
| and Applications, pp. 279-286</refcontent> | ||||
| <seriesInfo name="DOI" value="10.1109/AICCSA.2009.5069337"/> | ||||
| </reference> | ||||
| <reference anchor="henderson-vpls"> | <reference anchor="ylitalo-diss"> | |||
| <front> | <front> | |||
| <title>HIP-based Virtual Private LAN Service (HIPLS)</title> | <title>Secure Mobility at Multiple Granularity Levels over Heterogen | |||
| <author initials="T." surname="Henderson"></author> | eous Datacom Networks</title> | |||
| <author initials="D." surname="Mattes"></author> | <author initials="J." surname="Ylitalo"> | |||
| <date year="2013" month="Dec" /> | <organization/> | |||
| </front> | </author> | |||
| <seriesInfo name="Working draft" value="draft-henderson-hip-vpls-07"/> | <date year="2008"/> | |||
| </reference> | </front> | |||
| <refcontent>Dissertation, Helsinki University of Technology, Espoo, Fi | ||||
| nland</refcontent> | ||||
| <seriesInfo name="ISBN" value="978-951-22-9531-9"/> | ||||
| </reference> | ||||
| <reference anchor="heer-midauth"> | <reference anchor="xin-hip-lib"> | |||
| <front> | <front> | |||
| <title>End-Host Authentication for HIP Middleboxes</title> | <title>Host Identity Protocol Version 2.5</title> | |||
| <author initials="T." surname="Heer"></author> | <author initials="G." surname="Xin"> | |||
| <author initials="M." surname="Komu"></author> | <organization/> | |||
| <date year="2009" month="September" /> | </author> | |||
| </front> | <date year="2012" month="June"/> | |||
| <seriesInfo name="Working draft" value="draft-heer-hip-middle-auth-02"/> | </front> | |||
| </reference> | <refcontent>Master's Thesis, Aalto University, Espoo, Finland</refcont | |||
| ent> | ||||
| </reference> | ||||
| <reference anchor="hummen"> | <reference anchor="schuetz-intermittent"> | |||
| <front> | <front> | |||
| <title>Slimfit - A HIP DEX Compression Layer for the IP-based Internet | <title>Protocol enhancements for intermittently connected hosts</tit | |||
| of Things</title> | le> | |||
| <author initials="R." surname="Hummen"></author> | <author initials="S." surname="Schütz"> | |||
| <author initials="J." surname="Hiller"></author> | <organization/> | |||
| <author initials="M." surname="Henze"></author> | </author> | |||
| <author initials="K." surname="Wehrle"></author> | <author initials="L." surname="Eggert"> | |||
| <date year="2013" month="October" /> | <organization/> | |||
| </front> | </author> | |||
| <seriesInfo name="Wireless and Mobile Computing, Networking and Communica | <author initials="S." surname="Schmid"> | |||
| tions (WiMob), 2013 IEEE 9th International Conference on , page 259-266." value= | <organization/> | |||
| "DOI: 10.1109/WiMOB.2013.6673370" /> | </author> | |||
| </reference> | <author initials="M." surname="Brunner"> | |||
| <organization/> | ||||
| </author> | ||||
| <date year="2005" month="July"/> | ||||
| </front> | ||||
| <refcontent>ACM SIGCOMM Computer Communication Review, Vol. 35, Issue | ||||
| 3, pp. 5-18</refcontent> | ||||
| <seriesInfo name="DOI" value="10.1145/1070873.1070875"/> | ||||
| </reference> | ||||
| <reference anchor="camarillo-p2psip"> | <reference anchor="paine-hip"> | |||
| <front> | <front> | |||
| <title>Reducing delays related to NAT traversal in P2PSIP session esta | <title>Beyond HIP: The End to Hacking As We Know It</title> | |||
| blishments</title> | <author initials="R. H." surname="Paine"> | |||
| <author initials="G." surname="Camarillo"></author> | <organization/> | |||
| <author initials="J." surname="Menp"></author> | </author> | |||
| <author initials="A." surname="Kernen"></author> | <date year="2009"/> | |||
| <author initials="V." surname="Anderson"></author> | </front> | |||
| <date year="2011" month="" /> | <refcontent>BookSurge Publishing</refcontent> | |||
| </front> | <seriesInfo name="ISBN-10" value="1439256047"/> | |||
| <seriesInfo name="IEEE Consumer Communications and Networking Conference | <seriesInfo name="ISBN-13" value="978-1439256046"/> | |||
| (CCNC), pp. 549-553" value="DOI: 10.1109/CCNC.2011.5766540" /> | </reference> | |||
| </reference> | ||||
| <reference anchor="ranjbar-synaptic"> | <reference anchor="levae-barriers"> | |||
| <front> | <front> | |||
| <title>SynAPTIC: Secure and Persistent Connectivity for Containers</ti | <title>Adoption barriers of network layer protocols: the case of hos | |||
| tle> | t identity protocol</title> | |||
| <author initials="A." surname="Ranjbar"></author> | <author initials="T." surname="Levä"> | |||
| <author initials="M." surname="Komu"></author> | <organization/> | |||
| <author initials="P." surname="Salmela"></author> | </author> | |||
| <author initials="T." surname="Aura"></author> | <author initials="M." surname="Komu"> | |||
| <date year="2017" month="" /> | <organization/> | |||
| </front> | </author> | |||
| <seriesInfo name="2017 17th IEEE/ACM International Symposium on Cluster, | <author initials="S." surname="Luukkainen"> | |||
| Cloud and Grid Computing (CCGRID), Madrid, 2017, pp. 262-267" value="doi: 10.11 | <organization/> | |||
| 09/CCGRID.2017.62" /> | </author> | |||
| </reference> | <date year="2013" month="March"/> | |||
| </front> | ||||
| <refcontent>Computer Networks, Vol. 57, Issue 10, pp. 2218-2232</refco | ||||
| ntent> | ||||
| <seriesInfo name="ISSN" value="1389-1286"/> | ||||
| <seriesInfo name="DOI" value="10.1016/j.comnet.2012.11.024"/> | ||||
| </reference> | ||||
| <reference anchor="tempered-networks"> | <reference anchor="heer-end-host"> | |||
| <front> | <front> | |||
| <title>Identity-Defined Network (IDN) Architecture: Unified, Secure Ne | <title>End-Host Authentication and Authorization for Middleboxes Bas | |||
| tworking Made Simple</title> | ed on a Cryptographic Namespace</title> | |||
| <author fullname="Tempered Networks"></author> | <author initials="T." surname="Heer"> | |||
| <date year="2016" month="" /> | <organization/> | |||
| </front> | </author> | |||
| <seriesInfo name="White Paper" value="" /> | <author initials="R." surname="Hummen"> | |||
| </reference> | <organization/> | |||
| </author> | ||||
| <author initials="M." surname="Komu"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="S." surname="Gotz"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="K." surname="Wehrle"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date year="2009"/> | ||||
| </front> | ||||
| <refcontent>2009 IEEE International Conference on Communications</refc | ||||
| ontent> | ||||
| <seriesInfo name="DOI" value="10.1109/ICC.2009.5198984"/> | ||||
| </reference> | ||||
| <reference anchor="hip-lte"> | <reference anchor="komu-cloud"> | |||
| <front> | <front> | |||
| <title>Novel secure VPN architectures for LTE backhaul networks</title | <title>Secure Networking for Virtual Machines in the Cloud</title> | |||
| > | <author initials="M." surname="Komu"> | |||
| <author initials="M." surname="Liyanage"></author> | <organization/> | |||
| <author initials="P." surname="Kumar"></author> | </author> | |||
| <author initials="M." surname="Ylianttila"></author> | <author initials="M." surname="Sethi"> | |||
| <author initials="A." surname="Gurtov"></author> | <organization/> | |||
| <date year="2015" month="November" /> | </author> | |||
| </front> | <author initials="R." surname="Mallavarapu"> | |||
| <seriesInfo name="Security and Communication Networks" value="DOI 10.100 | <organization/> | |||
| 2/sec.1411" /> | </author> | |||
| </reference> | <author initials="H." surname="Oirola"> | |||
| <organization/> | ||||
| </author> | ||||
| <author initials="R." surname="Khan"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="S." surname="Tarkoma"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date year="2012" /> | ||||
| </front> | ||||
| <refcontent>2012 IEEE International Conference | ||||
| on Cluster Computing Workshops, pp. 88-96</refcontent> | ||||
| <seriesInfo name="DOI" value="10.1109/ClusterW.2012.29"/> | ||||
| </reference> | ||||
| <!-- | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D.irtf-hi | |||
| <reference anchor="xx"> | prg-revocation-05.xml"/> | |||
| <front> | ||||
| <title>xx</title> | ||||
| <author initials="." surname=""></author> | ||||
| <author initials="." surname=""></author> | ||||
| <author initials="." surname=""></author> | ||||
| <author initials="." surname=""></author> | ||||
| <date year="" month="" /> | ||||
| </front> | ||||
| <seriesInfo name="" value="" /> | ||||
| </reference> | ||||
| <!-- | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D.irtf-hi prg-rfid-07.xml"/> | |||
| <reference anchor="herborn-secure"> | <reference anchor="I-D.tschofenig-hiprg-hip-srtp"> | |||
| <front> | <front> | |||
| <title>"Secure Host Identity Delegation for Mobility," Communication Sy | <title>Using SRTP transport format with HIP</title> | |||
| stems Software and Middleware</title> | <author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig"> | |||
| <author initials="S." surname="Herborn"></author> | <organization /> | |||
| <author initials="A." surname="Huber"></author> | </author> | |||
| <author initials="R." surname="Boreli"></author> | <author initials="M." surname="Shanmugam" fullname="Murugaraj Shanmugam"> | |||
| <author initials="A." surname="Seneviratne"></author> | <organization /> | |||
| <date year="2007" month="January" /> | </author> | |||
| </front> | <author initials="F." surname="Muenz" fullname="Franz Muenz"> | |||
| <seriesInfo name="Communication Systems Software and Middleware. COMSWARE | <organization/> | |||
| 2007. pages 1, 9," value="DOI: 10.1109/COMSWA.2007.382596" /> | </author> | |||
| </reference> | <date month="October" day="25" year="2006"/> | |||
| </front> | ||||
| <seriesInfo name="Internet-Draft" value="draft-tschofenig-hiprg-hip-srtp-02"/> | ||||
| <format type="TXT" target="https://www.ietf.org/internet-drafts/draft-tschofenig | ||||
| -hiprg-hip-srtp-02.txt"/> | ||||
| </reference> | ||||
| <reference anchor="nikander-hip"> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D.henders | |||
| <front> | on-hip-vpls.xml"/> | |||
| <title> Integrating security, mobility, and multi-homing in a HIP way</ | ||||
| title> | ||||
| <author initials="P." surname="Nikander"></author> | ||||
| <author initials="J." surname="Ylitalo"></author> | ||||
| <author initials="J." surname="Wall"></author> | ||||
| <date year="2003" month="February" /> | ||||
| </front> | ||||
| <seriesInfo name="Proceedings of the 10th Annual Network and Distributed | ||||
| System Security Symposium (NDSS 2003). San Diego, CA, USA. Internet Society, pag | ||||
| es 87-99," | ||||
| value="ISBN 1-891562-16-9" /> | ||||
| </reference> | ||||
| <reference anchor="caesar-routing"> | <reference anchor="I-D.heer-hip-middle-auth"> | |||
| <front> | <front> | |||
| <title>Rofl: routing on flat labels</title> | <title>End-Host Authentication for HIP Middleboxes</title> | |||
| <author initials="M." surname="Caesar"></author> | <author fullname="Tobias Heer" role="editor"> | |||
| <author initials="T." surname="Condie"></author> | <organization /> | |||
| <author initials="J." surname="Kannan"></author> | </author> | |||
| <author initials="K." surname="Lakshminarayanan"></author> | <author fullname="Rene Hummen"> | |||
| <author initials="I." surname="Stoica"></author> | <organization /> | |||
| <date year="2006" month="" /> | </author> | |||
| </front> | <author fullname="Klaus Wehrle"> | |||
| <seriesInfo name="Proceedings of the 2006 conference on Appli- | <organization /> | |||
| cations, technologies, architectures, and protocols for | </author> | |||
| computer communi- | <author fullname="Miika Komu"> | |||
| cations, SIGCOMM '06, pages 363-374, ACM, New York, NY, | <organization /> | |||
| USA, 2006," value="" /> | </author> | |||
| </reference> | <date month="October" day="31" year="2011"/> | |||
| </front> | ||||
| <seriesInfo name="Internet-Draft" value="draft-heer-hip-middle-auth-04"/> | ||||
| <format type="TXT" target="https://www.ietf.org/internet-drafts/draft-heer-hip-m | ||||
| iddle-auth-04.txt"/> | ||||
| </reference> | ||||
| <reference anchor="saltzer-notes"> | <reference anchor="hummen"> | |||
| <front> | <front> | |||
| <title>Naming and Binding of Objects In Operating Systems</title> | <title>Slimfit - A HIP DEX compression layer for the IP-based Intern | |||
| <author initials="J." surname="Saltzer"></author> | et of Things</title> | |||
| <date year="1978" month="" /> | <author initials="R." surname="Hummen"> | |||
| </front> | <organization/> | |||
| <seriesInfo name="Lecture Notes in Computer Science, Vol. 60. Springer-V | </author> | |||
| erlag," value="" /> | <author initials="J." surname="Hiller"> | |||
| </reference> | <organization/> | |||
| </author> | ||||
| <author initials="M." surname="Henze"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="K." surname="Wehrle"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date year="2013" month="October"/> | ||||
| </front> | ||||
| <refcontent>2013 IEEE 9th International Conference on Wireless and Mob | ||||
| ile Computing, Networking and Communications (WiMob), pp. 259-266</refcontent> | ||||
| <seriesInfo name="DOI" value="10.1109/WiMOB.2013.6673370"/> | ||||
| </reference> | ||||
| <reference anchor="saltzer-end"> | <reference anchor="camarillo-p2psip"> | |||
| <front> | <front> | |||
| <title>End-to-end Arguments in System Design</title> | <title>Reducing delays related to NAT traversal in P2PSIP session es | |||
| <author initials="J. H." surname="Saltzer"></author> | tablishments</title> | |||
| <author initials="D. P." surname="Reed"></author> | <author initials="G." surname="Camarillo"> | |||
| <author initials="D. D." surname="Clark"></author> | <organization/> | |||
| <date year="1984" month="November" /> | </author> | |||
| </front> | <author initials="J." surname="Mäenpää"> | |||
| <seriesInfo name="ACM Trans. Comput. Syst., 2(4):277-288," value="" /> | <organization/> | |||
| </reference> | </author> | |||
| <author initials="A." surname="Keränen"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="V." surname="Anderson"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date year="2011"/> | ||||
| </front> | ||||
| <refcontent>IEEE Consumer Communications and Networking Conference (CC | ||||
| NC), pp. 549-553</refcontent> | ||||
| <seriesInfo name="DOI" value="10.1109/CCNC.2011.5766540"/> | ||||
| </reference> | ||||
| <reference anchor="shoch-naming"> | <reference anchor="ranjbar-synaptic"> | |||
| <front> | <front> | |||
| <title>Inter-Network Naming, Addressing, and Routing</title> | <title>SynAPTIC: Secure and Persistent Connectivity for Containers</ | |||
| <author initials="J." surname="Shoch"></author> | title> | |||
| <date year="1978" month="" /> | <author initials="A." surname="Ranjbar"> | |||
| </front> | <organization/> | |||
| <seriesInfo name="IEEE Proc. COMPCON, pages 72-79. IEEE," value="" /> | </author> | |||
| </reference> | <author initials="M." surname="Komu"> | |||
| <organization/> | ||||
| </author> | ||||
| <author initials="P." surname="Salmela"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="T." surname="Aura"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date year="2017"/> | ||||
| </front> | ||||
| <refcontent>2017 17th IEEE/ACM International Symposium on Cluster, Clo | ||||
| ud and Grid Computing (CCGRID), Madrid, 2017, pp. 262-267</refcontent> | ||||
| <seriesInfo name="DOI" value="10.1109/CCGRID.2017.62"/> | ||||
| </reference> | ||||
| <reference anchor="tempered-networks"> | ||||
| <front> | ||||
| <title>Identity-Defined Network (IDN) Architecture: Unified, Secure | ||||
| Networking Made Simple</title> | ||||
| <author> | ||||
| <organization>Tempered Networks</organization> | ||||
| </author> | ||||
| <date year="2016"/> | ||||
| </front> | ||||
| <refcontent>White Paper</refcontent> | ||||
| </reference> | ||||
| <reference anchor="hip-lte"> | ||||
| <front> | ||||
| <title>Novel secure VPN architectures for LTE backhaul networks</tit | ||||
| le> | ||||
| <author initials="M." surname="Liyanage"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="P." surname="Kumar"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="M." surname="Ylianttila"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="A." surname="Gurtov"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date year="2016" month="January"/> | ||||
| </front> | ||||
| <refcontent>Security and Communication Networks, Vol. 9, pp. 1198-1215 | ||||
| </refcontent> | ||||
| <seriesInfo name="DOI" value="10.1002/sec.1411"/> | ||||
| </reference> | ||||
| </references> | ||||
| </references> | </references> | |||
| <!-- appendix --> | <section numbered="true" toc="default"> | |||
| <name>Design Considerations</name> | ||||
| <section title="Design considerations"> | <section anchor="sec_benefits" numbered="true" toc="default"> | |||
| <name>Benefits of HIP</name> | ||||
| <section title="Benefits of HIP" anchor="sec:benefits"> | <t>In the beginning, the network layer protocol (i.e., IP) had | |||
| <t>In the beginning, the network layer protocol (i.e., IP) had | ||||
| the following four "classic" invariants: | the following four "classic" invariants: | |||
| <list style="numbers"> | </t> | |||
| <ol spacing="normal" type="1"> | ||||
| <t>Non-mutable: The address sent is the address | <li>Non-mutable: The address sent is the address | |||
| received.</t> | received.</li> | |||
| <li>Non-mobile: The address doesn't change during the course | ||||
| <t>Non-mobile: The address doesn't change during the course | of an "association".</li> | |||
| of an "association".</t> | <li>Reversible: A return header can always be formed by | |||
| reversing the source and destination addresses.</li> | ||||
| <t>Reversible: A return header can always be formed by | <li>Omniscient: Each host knows what address a partner host | |||
| reversing the source and destination addresses.</t> | can use to send packets to it.</li> | |||
| </ol> | ||||
| <t>Omniscient: Each host knows what address a partner host | <t>Actually, the fourth can be inferred from 1 and 3, but it is | |||
| can use to send packets to it.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>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 | worth mentioning explicitly for reasons that will be obvious soon if not | |||
| already.</t> | already.</t> | |||
| <t>In the current "post-classic" world, we are intentionally | ||||
| <t>In the current "post-classic" world, we are intentionally | ||||
| trying to get rid of the second invariant (both for mobility and | trying to get rid of the second invariant (both for mobility and | |||
| for multi-homing), and we have been forced to give up the first | for multihoming), and we have been forced to give up the first | |||
| and the fourth. <xref target="RFC3102">Realm Specific IP</xref> | and the fourth. <xref target="RFC3102" format="default">Realm Specific IP | |||
| </xref> | ||||
| is an attempt to reinstate the fourth invariant without the | is an attempt to reinstate the fourth invariant without the | |||
| first invariant. IPv6 is attempts to reinstate the first | first invariant. IPv6 attempts to reinstate the first | |||
| invariant.</t> | invariant.</t> | |||
| <t>Few client-side systems on the Internet have DNS names that are | ||||
| <t>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 | current connectivity. FQDNs (and their extensions as email | |||
| names) are application-layer names; more frequently naming | names) are application-layer names; more frequently naming | |||
| services than particular systems. This is why many systems on | services than particular systems. This is why many systems on | |||
| the Internet are not registered in the DNS; they do not have | the Internet are not registered in the DNS; they do not have | |||
| services of interest to other Internet hosts.</t> | services of interest to other Internet hosts.</t> | |||
| <t>DNS names are references to IP addresses. This only | ||||
| <t>DNS names are references to IP addresses. This only | ||||
| demonstrates the interrelationship of the networking and | demonstrates the interrelationship of the networking and | |||
| application layers. DNS, as the Internet's only deployed and | application layers. DNS, as the Internet's only deployed and | |||
| distributed database, is also the repository of other namespaces, | distributed database, is also the repository of other namespaces, | |||
| due in part to DNSSEC and application specific key records. | due in part to DNSSEC and application-specific key records. | |||
| Although each namespace can be stretched (IP with v6, DNS with | Although each namespace can be stretched (IP with v6, DNS with | |||
| KEY records), neither can adequately provide for host | KEY records), neither can adequately provide for host | |||
| authentication or act as a separation between internetworking | authentication or act as a separation between internetworking | |||
| and transport layers.</t> | and transport layers.</t> | |||
| <t>The Host Identity (HI) namespace fills an important gap | ||||
| <t>The Host Identity (HI) namespace fills an important gap | ||||
| between the IP and DNS namespaces. An interesting thing about | between the IP and DNS namespaces. An interesting thing about | |||
| the HI is that it actually allows a host to give up all but the | the HI is that it actually allows a host to give up all but the | |||
| 3rd network-layer invariant. That is to say, as long as the | 3rd network-layer invariant. That is to say, as long as the | |||
| source and destination addresses in the network-layer protocol | source and destination addresses in the network-layer protocol | |||
| are reversible, HIP takes care of host identification, and | are reversible, HIP takes care of host identification, and | |||
| reversibility allows a local host to receive a packet back from | reversibility allows a local host to receive a packet back from | |||
| a remote host. The address changes occurring during NAT transit | a remote host. The address changes occurring during NAT transit | |||
| (non-mutable) or host movement (non-omniscient or non-mobile) | (non-mutable) or host movement (non-omniscient or non-mobile) | |||
| can be managed by the HIP layer.</t> | can be managed by the HIP layer.</t> | |||
| <t>With the exception of high-performance computing applications, | ||||
| <t>With the exception of High-Performance Computing applications, | the sockets API is the most common way to develop network | |||
| the Sockets API is the most common way to develop network | applications. Applications use the sockets API either directly | |||
| applications. Applications use the Sockets API either directly | ||||
| or indirectly through some libraries or frameworks. However, the | or indirectly through some libraries or frameworks. However, the | |||
| Sockets API is based on the assumption of static IP addresses, | sockets API is based on the assumption of static IP addresses, | |||
| and DNS with its lifetime values was invented at later stages | and DNS with its lifetime values was invented at later stages | |||
| during the evolution of the Internet. Hence, the Sockets API | during the evolution of the Internet. Hence, the sockets API | |||
| does not deal with the lifetime of addresses <xref | does not deal with the lifetime of addresses <xref target="RFC6250" format | |||
| target="RFC6250" />. As the majority of the end-user equipment is | ="default"/>. 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 | addresses to the unwary developer. HIP can be used to solidify | |||
| this illusion because HIP provides persistent surrogate | this illusion because HIP provides persistent, surrogate | |||
| addresses to the application layer in the form of LSIs and | addresses to the application layer in the form of LSIs and | |||
| HITs.</t> | HITs.</t> | |||
| <t>The persistent identifiers as provided by HIP are useful in | ||||
| <t>The persistent identifiers as provided by HIP are useful in | multiple scenarios (see, e.g., <xref target="ylitalo-diss" format="default | |||
| multiple scenarios (see, e.g., <xref target="ylitalo-diss" /> or | "/> or | |||
| <xref target="komu-diss" />, for a more elaborate | <xref target="komu-diss" format="default"/> for a more elaborate | |||
| discussion):</t> | discussion):</t> | |||
| <ul spacing="normal"> | ||||
| <t> | <li>When a mobile host moves physically between two different | |||
| <list style="symbols"> | ||||
| <t>When a mobile host moves physically between two different | ||||
| WLAN networks and obtains a new address, an application using | WLAN networks and obtains a new address, an application using | |||
| the identifiers remains isolated regardless of the topology changes | the identifiers remains isolated regardless of the topology changes | |||
| while the underlying HIP layer re-establishes connectivity | while the underlying HIP layer reestablishes connectivity | |||
| (i.e. a horizontal handoff).</t> | (i.e., a horizontal handoff).</li> | |||
| <li>Similarly, the application utilizing the identifiers | ||||
| <t>Similarly, the application utilizing the identifiers | ||||
| remains again unaware of the topological changes when the | remains again unaware of the topological changes when the | |||
| underlying host equipped with WLAN and cellular network | underlying host equipped with WLAN and cellular network | |||
| interfaces switches between the two different access | interfaces switches between the two different access | |||
| technologies (i.e. a vertical handoff).</t> | technologies (i.e., a vertical handoff).</li> | |||
| <li>Even when hosts are located in private address realms, | ||||
| <t>Even when hosts are located in private address realms, | ||||
| applications can uniquely distinguish different hosts from | applications can uniquely distinguish different hosts from | |||
| each other based on their identifiers. In other words, it can | each other based on their identifiers. In other words, it can | |||
| be stated that HIP improves Internet transparency | be stated that HIP improves Internet transparency | |||
| for the application layer <xref target="komu-diss" />.</t> | for the application layer <xref target="komu-diss" format="default"/>. | |||
| </li> | ||||
| <t>Site renumbering events for services can occur due to | <li>Site renumbering events for services can occur due to | |||
| corporate mergers or acquisitions, or by changes in Internet | corporate mergers or acquisitions, or by changes in Internet | |||
| Service Provider. They can involve changing the entire | service provider. They can involve changing the entire | |||
| network prefix of an organization, which is problematic due | network prefix of an organization, which is problematic due | |||
| to hard-coded addresses in service configuration files or | to hard-coded addresses in service configuration files or | |||
| cached IP addresses at the client side <xref target="RFC5887" | cached IP addresses at the client side <xref target="RFC5887" format=" | |||
| />. Considering such human errors, a site employing | default"/>. Considering such human errors, a site employing | |||
| location-independent identifiers as promoted by HIP may | location-independent identifiers as promoted by HIP may | |||
| experience fewer problems while renumbering their network. | experience fewer problems while renumbering their network. | |||
| </t> | </li> | |||
| <li>More agile IPv6 interoperability can be achieved, | ||||
| <t>More agile IPv6 interoperability can be achieved, | as discussed in <xref target="lsi" format="default"/>. IPv6-based appl | |||
| as discussed in <xref target="lsi" />. IPv6-based applications can | ications can | |||
| communicate using HITs with IPv4-based applications that are | communicate using HITs with IPv4-based applications that are | |||
| using LSIs. Additionally, the underlying network type (IPv4 or IPv6) | using LSIs. Additionally, the underlying network type (IPv4 or IPv6) | |||
| becomes independent of the addressing family of the | becomes independent of the addressing family of the | |||
| application.</t> | application.</li> | |||
| <li>HITs (or LSIs) can be used in IP-based access control | ||||
| <t>HITs (or LSIs) can be used in IP-based access control | ||||
| lists as a more secure replacement for IPv6 | lists as a more secure replacement for IPv6 | |||
| addresses. Besides security, HIT based access control has two | addresses. Besides security, HIT-based access control has two | |||
| other benefits. First, the use of HITs can potentially halve the size of access control lists | other benefits. First, the use of HITs can potentially halve the size of access control lists | |||
| because separate rules for IPv4 are not | because separate rules for IPv4 are not | |||
| needed <xref target="komu-diss" />. Second, HIT-based configuration | needed <xref target="komu-diss" format="default"/>. Second, HIT-based configuration | |||
| rules in HIP-aware middleboxes remain static and independent | rules in HIP-aware middleboxes remain static and independent | |||
| of topology changes, thus simplifying administrative efforts | of topology changes, thus simplifying administrative efforts | |||
| particularly for mobile environments. For instance, the | particularly for mobile environments. For instance, the | |||
| benefits of HIT-based access control have been harnessed in the | benefits of HIT-based access control have been harnessed in the | |||
| case of HIP-aware firewalls, but can be utilized | case of HIP-aware firewalls, but can be utilized | |||
| directly at the end-hosts as well <xref target="RFC6538" />.</t> | directly at the end-hosts as well <xref target="RFC6538" format="defau | |||
| lt"/>.</li> | ||||
| </list> | </ul> | |||
| </t> | <t>While some of these benefits could be and have been | |||
| <t>While some of these benefits could be and have been | ||||
| redundantly implemented by individual applications, providing | redundantly implemented by individual applications, providing | |||
| such generic functionality at the lower layers is useful because | such generic functionality at the lower layers is useful because | |||
| it reduces software development effort and networking software | it reduces software development effort and networking software | |||
| bugs (as the layer is tested with multiple applications). It | bugs (as the layer is tested with multiple applications). It | |||
| also allows the developer to focus on building the application | also allows the developer to focus on building the application | |||
| itself rather than delving into the intricacies of mobile | itself rather than delving into the intricacies of mobile | |||
| networking, thus facilitating separation of concerns.</t> | networking, thus facilitating separation of concerns.</t> | |||
| <t>HIP could also be realized by combining a number of different | ||||
| <t>HIP could also be realized by combining a number of different | ||||
| protocols, but the complexity of the resulting software may | protocols, but the complexity of the resulting software may | |||
| become substantially larger, and the interaction between multiple | become substantially larger, and the interaction between multiple, | |||
| possibly layered protocols may have adverse effects on latency | possibly layered protocols may have adverse effects on latency | |||
| and throughput. It is also worth noting that virtually nothing | and throughput. It is also worth noting that virtually nothing | |||
| prevents realizing the HIP architecture, for instance, as an | prevents realizing the HIP architecture, for instance, as an | |||
| application-layer library, which has been actually implemented | application-layer library, which has been actually implemented | |||
| in the past <xref target="xin-hip-lib" />. However, the tradeoff | in the past <xref target="xin-hip-lib" format="default"/>. However, the tr ade-off | |||
| in moving the HIP layer to the application layer is that legacy | in moving the HIP layer to the application layer is that legacy | |||
| applications may not be supported.</t> | applications may not be supported.</t> | |||
| <!-- | ||||
| <t>Since all systems can have a Host Identity, every system can | ||||
| have an entry in the DNS. The mobility features in HIP make it | ||||
| attractive to trusted 3rd parties to offer rendezvous | ||||
| servers.</t> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Drawbacks of HIP"> | <name>Drawbacks of HIP</name> | |||
| <t>In computer science, many problems can be solved with an | ||||
| <t>In computer science, many problems can be solved with an | ||||
| extra layer of indirection. However, the indirection always | extra layer of indirection. However, the indirection always | |||
| involves some costs as there is no such a thing as "free lunch". In | involves some costs as there is no such a thing as a "free lunch". In | |||
| the case of HIP, the main costs could be stated as follows:</t> | the case of HIP, the main costs could be stated as follows:</t> | |||
| <ul spacing="normal"> | ||||
| <t> | <li>In general, an additional layer and a namespace always involve | |||
| <list style="symbols"> | ||||
| <t>In general, an additional layer and a namespace always involve | ||||
| some initial effort in terms of implementation, | some initial effort in terms of implementation, | |||
| deployment and maintenance. Some education of developers and administr ators may | deployment, and maintenance. Some education of developers and administ rators may | |||
| also be needed. However, the HIP community at the IETF has | also be needed. However, the HIP community at the IETF has | |||
| spent years in experimenting, exploring, testing, | spent years in experimenting, exploring, testing, | |||
| documenting and implementing HIP to ease the adoption costs. | documenting, and implementing HIP to ease the adoption costs. | |||
| </t> | </li> | |||
| <li>HIP introduces a need to manage HIs and | ||||
| <t>HIP introduces a need to manage HIs and | ||||
| requires a centralized approach to manage HIP-aware | requires a centralized approach to manage HIP-aware | |||
| endpoints at scale. What were formerly IP address-based ACLs | endpoints at scale. What were formerly IP address-based ACLs | |||
| are now trusted HITs, and the HIT to IP address mappings as | are now trusted HITs, and the HIT-to-IP address mappings as | |||
| well as access policies must be managed. HIP-aware endpoints | well as access policies must be managed. HIP-aware endpoints | |||
| must also be able to operate autonomously to ensure mobility | must also be able to operate autonomously to ensure mobility | |||
| and availability (an endpoint must be able to run without | and availability (an endpoint must be able to run without | |||
| having to have a persistent management connection). The | having to have a persistent management connection). The | |||
| users who want this better security and mobility of HIs | users who want this better security and mobility of HIs | |||
| instead of IP address based ACLs have to then manage this | instead of IP address-based ACLs have to then manage this | |||
| additional 'identity layer' in a non-persistent fashion. As | additional 'identity layer' in a nonpersistent fashion. As | |||
| exemplified in <xref target="tempered" />, these challenges | exemplified in <xref target="tempered" format="default"/>, these challe | |||
| nges | ||||
| have been already solved in an infrastructure setting to | have been already solved in an infrastructure setting to | |||
| distribute policy and manage the mappings and trust | distribute policy and manage the mappings and trust | |||
| relationships between HIP-aware endpoints.</t> | relationships between HIP-aware endpoints.</li> | |||
| <li>HIP decouples identifier and locator roles of IP | ||||
| <t>HIP decouples identifier and locator roles of IP | ||||
| addresses. Consequently, a mapping mechanism is needed to | addresses. Consequently, a mapping mechanism is needed to | |||
| associate them together. A failure to map a HIT to its | associate them together. A failure to map a HIT to its | |||
| corresponding locator may result in failed connectivity | corresponding locator may result in failed connectivity | |||
| because a HIT is "flat" by its nature and cannot be looked | because a HIT is "flat" by its nature and cannot be looked | |||
| up from the hierarchically organized DNS. HITs are flat by | up from the hierarchically organized DNS. HITs are flat by | |||
| design due to a security tradeoff. The more bits are | design due to a security trade-off. The more bits that are | |||
| allocated for the hash in the HIT, the less likely there | allocated for the hash in the HIT, the less likely there | |||
| will be (malicious) collisions.</t> | will be (malicious) collisions.</li> | |||
| <li>From performance viewpoint, HIP control and data plane | ||||
| <t>From performance viewpoint, HIP control and data plane | ||||
| processing introduces some overhead in terms of throughput and | processing introduces some overhead in terms of throughput and | |||
| latency as elaborated below.</t> | latency as elaborated below.</li> | |||
| </ul> | ||||
| </list> | <t>Related to deployment drawbacks, firewalls are commonly used to contr | |||
| </t> | ol access | |||
| <t>Related to deployment drawbacks, firewalls are commonly used to control | ||||
| access | ||||
| to various services and devices in the current Internet. Since HIP intr oduces an additional namespace, | to various services and devices in the current Internet. Since HIP intr oduces an additional namespace, | |||
| it is expected that also the HIP namespace would be filtered for | it is expected that the HIP namespace would be filtered for | |||
| unwanted connectivity. While this can be achieved with existing tools | unwanted connectivity also. While this can be achieved with existing to | |||
| ols | ||||
| 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 < | |||
| xref target="RFC6538" />. | xref target="RFC6538" format="default"/>. | |||
| </t> | </t> | |||
| <t>The key exchange introduces some extra latency (two round | ||||
| <t>The key exchange introduces some extra latency (two round | ||||
| trips) in the initial transport-layer connection establishment between two hosts. | trips) in the initial transport-layer connection establishment between two hosts. | |||
| With TCP, additional delay occurs if the underlying network stack implemen tation drops | With TCP, additional delay occurs if the underlying network stack implemen tation drops | |||
| the triggering SYN packet during the key exchange. | the triggering SYN packet during the key exchange. | |||
| The same cost may also occur during HIP handoff | The same cost may also occur during HIP handoff | |||
| procedures. However, subsequent TCP sessions using the same HIP associatio n will not bear this cost (within the key lifetime). | procedures. However, subsequent TCP sessions using the same HIP associatio n will not bear this cost (within the key lifetime). | |||
| Both the key exchange and handoff penalties can be minimized by caching TC P | Both the key exchange and handoff penalties can be minimized by caching TC P | |||
| packets. The latter case can further be optimized with | packets. The latter case can further be optimized with | |||
| TCP user timeout extensions <xref target="RFC5482" /> as described in furt | TCP user timeout extensions <xref target="RFC5482" format="default"/> as d | |||
| her | escribed in further | |||
| detail by Schtz et al <xref target="schuetz-intermittent" />.</t> | detail by <contact fullname="Schütz"/> et al. <xref target="schuetz-interm | |||
| ittent" format="default"/>.</t> | ||||
| <t>The most CPU-intensive operations involve the use of the | <t>The most CPU-intensive operations involve the use of the | |||
| asymmetric keys and Diffie-Hellman key derivation at the control | asymmetric keys and Diffie-Hellman key derivation at the control | |||
| plane, but this occurs only during the key exchange, its | plane, but this occurs only during the key exchange, its | |||
| maintenance (handoffs, refreshing of key material) and tear-down | maintenance (handoffs and refreshing of key material), and teardown | |||
| procedures of HIP associations. The data plane is typically | procedures of HIP associations. The data plane is typically | |||
| implemented with ESP because it has a smaller overhead due to symmetric ke y | implemented with ESP because it has a smaller overhead due to symmetric ke y | |||
| encryption. Naturally, even ESP involves some overhead in terms of | encryption. Naturally, even ESP involves some overhead in terms of | |||
| latency (processing costs) and throughput (tunneling) (see, | latency (processing costs) and throughput (tunneling) (see, | |||
| e.g., <xref target="ylitalo-diss" /> for a performance | e.g., <xref target="ylitalo-diss" format="default"/> for a performance | |||
| evaluation).</t> | evaluation).</t> | |||
| </section> | ||||
| </section> | <section numbered="true" toc="default"> | |||
| <name>Deployment and Adoption Considerations</name> | ||||
| <section title="Deployment and adoption considerations"> | <t>This section describes some deployment and adoption | |||
| <t>This section describes some deployment and adoption | ||||
| considerations related to HIP from a technical perspective.</t> | considerations related to HIP from a technical perspective.</t> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Deployment analysis"> | <name>Deployment Analysis</name> | |||
| <t> | ||||
| <t> | ||||
| HIP has been adapted and deployed in an industrial control | HIP has been adapted and deployed in an industrial control | |||
| network in a production factory, in which HIP's strong network | network in a production factory, in which HIP's strong network-layer | |||
| layer identity supports the secure coexistence of the control | identity supports the secure coexistence of the control | |||
| network with many untrusted network devices operated by | network with many untrusted network devices operated by | |||
| third-party vendors <xref target="paine-hip" />. Similarly, | third-party vendors <xref target="paine-hip" format="default"/>. Similar ly, | |||
| HIP has also been included in a security product to support | HIP has also been included in a security product to support | |||
| layer-two Virtual Private Networks <xref | Layer 2 VPNs <xref target="I-D.henderson-hip-vpls" format="default"/> to | |||
| target="henderson-vpls" /> to enable security zones in a | enable security zones in a | |||
| supervisory control and data acquisition (SCADA) | supervisory control and data acquisition (SCADA) | |||
| network. However, HIP has not been a "wild success" <xref | network. However, HIP has not been a "wild success" <xref target="RFC5218 | |||
| target="RFC5218" /> in the Internet as argued by Lev et al | " format="default"/> in the Internet as argued by <contact fullname="Levä"/> et | |||
| <xref target="leva-barriers" />. Here, we briefly highlight | al. | |||
| <xref target="levae-barriers" format="default"/>. Here, we briefly highli | ||||
| ght | ||||
| some of their findings based on interviews with 19 experts from | some of their findings based on interviews with 19 experts from | |||
| the industry and academia.</t> | the industry and academia.</t> | |||
| <t>From a marketing perspective, the demand for HIP has been low | ||||
| <t>From a marketing perspective, the demand for HIP has been low | ||||
| and substitute technologies have been favored. Another | and substitute technologies have been favored. Another | |||
| identified reason has been that some technical misconceptions | identified reason has been that some technical misconceptions | |||
| related to the early stages of HIP specifications still | related to the early stages of HIP specifications still | |||
| persist. Two identified misconceptions are that HIP does not | persist. Two identified misconceptions are that HIP does not | |||
| support NAT traversal, and that HIP must be implemented in the OS | support NAT traversal and that HIP must be implemented in the OS | |||
| kernel. Both of these claims are untrue; HIP does have NAT | kernel. Both of these claims are untrue; HIP does have NAT | |||
| traversal extensions <xref | traversal extensions <xref target="RFC9028" format="default"/>, and kernel | |||
| target="I-D.ietf-hip-native-nat-traversal" />, and kernel | ||||
| modifications can be avoided with modern operating systems by | modifications can be avoided with modern operating systems by | |||
| diverting packets for userspace processing. | diverting packets for userspace processing. | |||
| </t> | </t> | |||
| <t>The analysis by <contact fullname="Levä"/> et al. clarifies infrast | ||||
| <t>The analysis by Lev et al clarifies infrastructural requirements for | ructural requirements for | |||
| HIP. In a minimal set up, a client and server machine have to | HIP. In a minimal setup, a client and server machine have to | |||
| run HIP software. However, to avoid manual configurations, | run HIP software. However, to avoid manual configurations, | |||
| usually DNS records for HIP are set up. For instance, the | usually DNS records for HIP are set up. For instance, the | |||
| popular DNS server software Bind9 does not require any changes | popular DNS server software Bind9 does not require any changes | |||
| to accommodate DNS records for HIP because they can be supported | to accommodate DNS records for HIP because they can be supported | |||
| in binary format in its configuration files <xref target="RFC6538" />. HIP | in binary format in its configuration files <xref target="RFC6538" format= "default"/>. HIP | |||
| rendezvous servers and firewalls are optional. No changes are | rendezvous servers and firewalls are optional. No changes are | |||
| required to network address points, NATs, edge routers or core | required to network address points, NATs, edge routers, or core | |||
| networks. HIP may require holes in legacy firewalls. | networks. HIP may require holes in legacy firewalls. | |||
| </t> | </t> | |||
| <t>The analysis also clarifies the requirements for the host | ||||
| <t>The analysis also clarifies the requirements for the host | ||||
| components that consist of three parts. First, a HIP control | components that consist of three parts. First, a HIP control | |||
| plane component is required, typically implemented as a | plane component is required, typically implemented as a | |||
| userspace daemon. Second, a data plane component is needed. Most | userspace daemon. Second, a data plane component is needed. Most | |||
| HIP implementations utilize the so called BEET mode of ESP that | HIP implementations utilize the so-called Bound End-to-End Tunnel (BEET) m ode of ESP that | |||
| has been available since Linux kernel 2.6.27, but the BEET mode is also in cluded | has been available since Linux kernel 2.6.27, but the BEET mode is also in cluded | |||
| as a userspace component in a few of the | as a userspace component in a few of the | |||
| implementations. Third, HIP systems usually provide a DNS proxy | implementations. Third, HIP systems usually provide a DNS proxy | |||
| for the local host that translates HIP DNS records to LSIs and | for the local host that translates HIP DNS records to LSIs and | |||
| HITs, and communicates the corresponding locators to HIP | HITs, and communicates the corresponding locators to the HIP | |||
| userspace daemon. While the third component is not | userspace daemon. While the third component is not | |||
| mandatory, it is very useful for avoiding manual | mandatory, it is very useful for avoiding manual | |||
| configurations. The three components are further described in | configurations. The three components are further described in | |||
| the <xref target="RFC6538">HIP experiment report</xref>.</t> | the <xref target="RFC6538" format="default">HIP experiment report</xref>.< | |||
| /t> | ||||
| <t>Based on the interviews, Lev et al suggest further | <t>Based on the interviews, <contact fullname="Levä"/> et al. suggest | |||
| further | ||||
| directions to facilitate HIP deployment. | directions to facilitate HIP deployment. | |||
| Transitioning a number of HIP specifications to the standards track in | Transitioning a number of HIP specifications to the Standards Track in the | |||
| IETF has already taken place, but the authors suggest other additional mea sures | IETF has already taken place, but the authors suggest other additional mea sures | |||
| based on the interviews. | based on the interviews. | |||
| As a more radical measure, the authors | As a more radical measure, the authors | |||
| suggest to implement HIP as a purely application-layer library | suggest to implement HIP as a purely application-layer library | |||
| <xref target="xin-hip-lib" /> or other kind of middleware. On | <xref target="xin-hip-lib" format="default"/> or other kind of middleware. On | |||
| the other hand, more conservative measures include focusing on | the other hand, more conservative measures include focusing on | |||
| private deployments controlled by a single stakeholder. As a | private deployments controlled by a single stakeholder. As a | |||
| more concrete example of such a scenario, HIP could be used by a | more concrete example of such a scenario, HIP could be used by a | |||
| single service provider to facilitate secure connectivity between its | single service provider to facilitate secure connectivity between its | |||
| servers <xref target="komu-cloud" />. | servers <xref target="komu-cloud" format="default"/>. | |||
| </t> | </t> | |||
| </section> | ||||
| </section> | <section anchor="MACsec" numbered="true" toc="default"> | |||
| <name>HIP in 802.15.4 Networks</name> | ||||
| <section anchor="MACsec" title="HIP in 802.15.4 networks"> | <t>The IEEE 802 standards have been defining MAC-layer security. Many | |||
| of these standards use Extensible Authentication Protocol (EAP) <xref targ | ||||
| <t>The IEEE 802 standards have been defining MAC layered security. Many | et="RFC3748" format="default"/> | |||
| of these standards use EAP <xref target="RFC3748"></xref> | ||||
| as a Key Management System (KMS) transport, but some like IEEE | as a Key Management System (KMS) transport, but some like IEEE | |||
| 802.15.4 <xref target="IEEE.802-15-4.2011"></xref> leave the | 802.15.4 <xref target="IEEE.802.15.4" format="default"/> leave the | |||
| KMS and its transport as "Out of Scope".</t> | KMS and its transport as "out of scope".</t> | |||
| <t>HIP is well suited as a KMS in these environments: | ||||
| <t>HIP is well suited as a KMS in these environments: | ||||
| <list style="symbols"> | ||||
| <t>HIP is independent of IP addressing and can be directly | ||||
| transported over any network protocol.</t> | ||||
| <t>Master Keys in 802 protocols are commonly pair-based with | ||||
| group keys transported from the group controller using pair-wise | ||||
| keys.</t> | ||||
| <t>AdHoc 802 networks can be better served by a peer-to-peer | ||||
| KMS than the EAP client/server model.</t> | ||||
| <t>Some devices are very memory constrained and a common KMS | </t> | |||
| <ul spacing="normal"> | ||||
| <li>HIP is independent of IP addressing and can be directly | ||||
| transported over any network protocol.</li> | ||||
| <li>Master keys in 802 protocols are commonly pair-based with | ||||
| group keys transported from the group controller using pairwise | ||||
| keys.</li> | ||||
| <li>Ad hoc 802 networks can be better served by a peer-to-peer | ||||
| KMS than the EAP client/server model.</li> | ||||
| <li>Some devices are very memory constrained, and a common KMS | ||||
| for both MAC and IP security represents a considerable code | for both MAC and IP security represents a considerable code | |||
| savings.</t> | savings.</li> | |||
| </ul> | ||||
| </list> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| </t> | <name>HIP and Internet of Things</name> | |||
| <t>HIP requires certain amount computational resources from a | ||||
| </section> | ||||
| <section title="HIP and Internet of Things"> | ||||
| <t>HIP requires certain amount computational resources from a | ||||
| device due to cryptographic processing. HIP scales down to | device due to cryptographic processing. HIP scales down to | |||
| phones and small system-on-chip devices (such as Raspberry Pis, | phones and small system-on-chip devices (such as Raspberry Pis, | |||
| Intel Edison), but small sensors operating with small batteries | Intel Edison), but small sensors operating with small batteries | |||
| have remained problematic. Different extensions to the HIP have | have remained problematic. Different extensions to the HIP have | |||
| been developed to scale HIP down to smaller devices, typically | been developed to scale HIP down to smaller devices, typically | |||
| with different security tradeoffs. For example, the | with different security trade-offs. For example, the | |||
| non-cryptographic identifiers have been proposed in RFID | non-cryptographic identifiers have been proposed in RFID | |||
| scenarios. The slimfit approach <xref target="hummen" /> proposes a | scenarios. The Slimfit approach <xref target="hummen" format="default"/> p roposes a | |||
| compression layer for HIP to make it more suitable for | compression layer for HIP to make it more suitable for | |||
| constrained networks. The approach is applied to a light-weight | constrained networks. The approach is applied to a lightweight | |||
| version of HIP (i.e. "Diet HIP") in order to scale down to small | version of HIP (i.e., "Diet HIP") in order to scale down to small | |||
| sensors.</t> | sensors.</t> | |||
| <t>The HIP Diet EXchange (DEX) <xref target="hip-dex" format="default" | ||||
| <t>The HIP Diet Exchange <xref target="I-D.ietf-hip-dex" /> design aims at | /> design aims to | |||
| reducing the overhead of the employed cryptographic primitives | reduce the overhead of the employed cryptographic primitives | |||
| by omitting public-key signatures and hash functions. In doing | by omitting public-key signatures and hash functions. In doing | |||
| so, the main goal is to still deliver similar security | so, the main goal is to still deliver security | |||
| properties to the Base Exchange (BEX).</t> | properties similar to the Base Exchange (BEX).</t> | |||
| <t>DEX is primarily designed for computation- or memory-constrained | ||||
| <t>DEX is primarily designed for computation or memory- | sensor/actuator devices. Like BEX, it is expected to | |||
| constrained sensor/actuator devices. Like BEX, it is expected to | ||||
| be used together with a suitable security protocol such as the | be used together with a suitable security protocol such as the | |||
| Encapsulated Security Payload (ESP) for the protection of upper layer | ESP for the protection of upper-layer | |||
| protocol data. In addition, DEX can also be used as a keying | protocol data. In addition, DEX can also be used as a keying | |||
| mechanism for security primitives at the MAC layer, e.g., for IEEE | mechanism for security primitives at the MAC layer, e.g., for IEEE | |||
| 802.15.9 networks (<xref target="IEEE.802-15-9" />.</t> | 802.15.9 networks <xref target="IEEE.802.15.9" format="default"/>.</t> | |||
| <t>The main differences between HIP BEX and DEX are: | ||||
| <t>The main differences between HIP BEX and DEX are: | ||||
| <list style="numbers"> | ||||
| <t>Minimum collection of cryptographic primitives to reduce the | </t> | |||
| <ol spacing="normal" type="1"> | ||||
| <li> | ||||
| <t>Minimum collection of cryptographic primitives to reduce the | ||||
| protocol overhead. | protocol overhead. | |||
| <list style="symbols"> | </t> | |||
| <ul spacing="normal"> | ||||
| <t>Static Elliptic Curve Diffie-Hellman key pairs for peer | <li>Static Elliptic Curve Diffie-Hellman (ECDH) key pairs for pe | |||
| authentication and encryption of the session key.</t> | er | |||
| authentication and encryption of the session key.</li> | ||||
| <t>AES-CTR for symmetric encryption and AES-CMAC for MACing | <li>AES-CTR for symmetric encryption and AES-CMAC for MACing | |||
| function.</t> | function.</li> | |||
| <li>A simple fold function for HIT generation.</li> | ||||
| <t>A simple fold function for HIT generation.</t> | </ul> | |||
| </li> | ||||
| </list></t> | <li>Forfeit of perfect forward secrecy with the dropping of an | |||
| ephemeral Diffie-Hellman key agreement.</li> | ||||
| <t>Forfeit of Perfect Forward Secrecy with the dropping of an | <li>Forfeit of digital signatures with the removal of a hash | |||
| ephemeral Diffie-Hellman key agreement.</t> | function. Reliance on the ECDH-derived key used in HIP_MAC to prove | |||
| ownership of the private key.</li> | ||||
| <t>Forfeit of digital signatures with the removal of a hash | <li>Diffie-Hellman derived key ONLY used to protect the HIP packets. | |||
| function. Reliance on ECDH derived key used in HIP_MAC to prove | ||||
| ownership of the private key.</t> | ||||
| <t>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).</t> | session key(s).</li> | |||
| <li>Optional retransmission strategy tailored to handle the | ||||
| <t>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.</t> | cryptographic operations on computationally constrained devices.</li> | |||
| </ol> | ||||
| </list> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| </t> | <name>Infrastructure Applications</name> | |||
| </section> | ||||
| <section title="Infrastructure Applications"> | ||||
| <!-- | ||||
| * proxies / gateways | ||||
| X Using HIP with Forward Web Proxy | ||||
| X Using HIP with Reverse HIP Proxy | ||||
| X P2P-SIP uses overlay as "rendezvous" | ||||
| X avoids redundant tunneling | ||||
| X Sendmail and SpamAssassin | ||||
| * VPN | ||||
| * HIP and OpenVPN | ||||
| * HIP proxies | ||||
| * Boeing experiments? | ||||
| X Tempered networks product | ||||
| * hi3 (NO?) | ||||
| X hip p2p sip | ||||
| * misc | ||||
| X hip cloud paper(s) (container/vm migration, microservices/hybrid | ||||
| cloud security, portable security/mergers, heer:auth, nat traversal) | ||||
| X Switches - Vanilla telnet | ||||
| * Nagios Infrastructure monitoring tool (NO) | ||||
| X hip cellular | ||||
| * directories NO | ||||
| * dns (opportunistic) | ||||
| * OpenLDAP | ||||
| --> | ||||
| <t> | <t> | |||
| <xref target="RFC6538">HIP experimentation report</xref> | The <xref target="RFC6538" format="default">HIP experimentation report</x ref> | |||
| enumerates a number of client and server applications that | enumerates a number of client and server applications that | |||
| have been trialed with HIP. <!-- The report also describes the | have been trialed with HIP. Based on | |||
| HIP infrastructure requirements (rendezvous servers, DNS records). --> Ba | ||||
| sed on | ||||
| the report, this section highlights and complements some | the report, this section highlights and complements some | |||
| potential ways how HIP could be exploited in existing | potential ways how HIP could be exploited in existing | |||
| infrastructure such as routers, gateways and proxies. | infrastructure such as routers, gateways, and proxies. | |||
| </t> | </t> | |||
| <t>HIP has been successfully used with forward web proxies (i.e., clie | ||||
| <t>HIP has been successfully used with forward web proxies (i.e., client-s | nt-side proxies). HIP was used between a client | |||
| ide proxies). HIP was used between a client | host (web browser) and a forward proxy (Apache server) that terminated the | |||
| host (web browser) and a forward proxy (Apache server) that terminated the | HIP/ESP tunnel. The | |||
| HIP/ESP-tunnel. The | ||||
| forward web proxy translated HIP-based traffic originating from the | forward web proxy translated HIP-based traffic originating from the | |||
| client into non-HIP traffic towards any web server in the Internet. Conseq uently, the HIP-capable | client into non-HIP traffic towards any web server in the Internet. Conseq uently, the HIP-capable | |||
| client could communicate with HIP-incapable web servers. This | client could communicate with HIP-incapable web servers. This | |||
| way, the client could utilize mobility support as provided by HIP | way, the client could utilize mobility support as provided by HIP | |||
| while using the fixed IP address of the web proxy, for instance, to access services | while using the fixed IP address of the web proxy, for instance, to access services | |||
| that were allowed only from the IP address range of the proxy.</t> | that were allowed only from the IP address range of the proxy.</t> | |||
| <t>HIP with reverse web proxies (i.e., server-side proxies) has also b | ||||
| <t>HIP has also been experimented with reverse web proxies (i.e. server-si | een investigated, | |||
| de proxies) | as described in more detail in <xref target="komu-cloud" format="default"/ | |||
| as described in more detail in <xref target="komu-cloud"/>. In | >. In | |||
| this scenario, a HIP-incapable client accessed a HIP-capable web service | this scenario, a HIP-incapable client accessed a HIP-capable web service | |||
| via an intermediary load balancer (that was a web based load | via an intermediary load balancer (a web-based load | |||
| balancer implementation called HAProxy). The load | balancer implementation called HAProxy). The load | |||
| balancer translated non-HIP traffic originating from the | balancer translated non-HIP traffic originating from the | |||
| client into HIP-based traffic for the web service (consisting | client into HIP-based traffic for the web service (consisting | |||
| of front-end and back-end servers). Both the load balancer and | of front-end and back-end servers). Both the load balancer and | |||
| the web service were located in a datacenter. One of the | the web service were located in a data center. One of the | |||
| key benefits for encrypting the web traffic with HIP in this | key benefits for encrypting the web traffic with HIP in this | |||
| scenario was to support a private-public cloud scenario | scenario was supporting a private-public cloud scenario | |||
| (i.e. hybrid cloud) where the load balancer, front-end servers | (i.e., hybrid cloud) where the load balancer, front-end servers, | |||
| and back-end servers can be located in different datacenters | and back-end servers were located in different data centers, | |||
| and, thus, the traffic needs to protected when it passes through | and thus the traffic needed to be protected when it passed through | |||
| potentially insecure networks between the borders of the private and publi c clouds. | potentially insecure networks between the borders of the private and publi c clouds. | |||
| </t> | </t> | |||
| <t>While HIP could be used to secure access to intermediary | ||||
| <t>While HIP could be used to secure access to intermediary | ||||
| devices (e.g., access to switches with legacy telnet), it has | devices (e.g., access to switches with legacy telnet), it has | |||
| also been used to secure intermittent connectivity between | also been used to secure intermittent connectivity between | |||
| middlebox infrastructure. For instance, earlier research <xref | middlebox infrastructure. For instance, earlier research <xref target="kom | |||
| target="komu-mitigation" /> utilized HIP between Secure Mail | u-mitigation" format="default"/> utilized HIP between Simple Mail | |||
| Transport Protocol (SMTP) servers in order to exploit the | 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 | rather obvious practical challenge in this approach was the lack | |||
| of HIP adoption on existing SMTP servers.</t> | of HIP adoption on existing SMTP servers.</t> | |||
| <t>To avoid deployment hurdles with existing infrastructure, HIP | ||||
| <t>To avoid deployment hurdles with existing infrastructure, HIP | ||||
| could be applied in the context of new protocols with little | could be applied in the context of new protocols with little | |||
| deployment. Namely, HIP has been experimented in the context of | deployment. Namely, HIP has been studied in the context of | |||
| a new protocol, peer-to-peer SIP <xref target="camarillo-p2psip" />. The w | a new protocol, peer-to-peer SIP <xref target="camarillo-p2psip" format="d | |||
| ork has resulted in a | efault"/>. The work has resulted in a | |||
| number of related RFCs <xref target="RFC6078" />, <xref target="RFC6079" / | number of related RFCs <xref target="RFC6078" format="default"/>, <xref ta | |||
| >, <xref target="RFC7086" />. The key idea in the research work was to | rget="RFC6079" format="default"/>, and <xref target="RFC7086" format="default"/> | |||
| avoid redundant, time consuming ICE procedures by grouping | . The key idea in the research work was to | |||
| different connections (i.e. SIP and media streams) together | avoid redundant, time-consuming ICE procedures by grouping | |||
| using the low-layer HIP which executes NAT traversal procedures | different connections (i.e., SIP and media streams) together | |||
| using the low-layer HIP, which executes NAT traversal procedures | ||||
| only once per host. An interesting aspect in the approach was | only once per host. An interesting aspect in the approach was | |||
| the use of P2P-SIP infrastructure as rendezvous servers for HIP | the use of P2P-SIP infrastructure as rendezvous servers for the HIP | |||
| control plane instead of utilizing the traditional HIP rendezvous | control plane instead of utilizing the traditional HIP rendezvous | |||
| services <xref target="RFC8004" />.</t> | services <xref target="RFC8004" format="default"/>.</t> | |||
| <t>Researchers have proposed using HIP in cellular | ||||
| <t>Researchers have proposed to use HIP in cellular | networks as a mobility, multihoming, and security solution. <xref target=" | |||
| networks as a mobility, multihoming and security solution. <xref | hip-lte" format="default"/> provides a security analysis and simulation | |||
| target="hip-lte" /> provides a security analysis and simulation | ||||
| measurements of using HIP in Long Term Evolution (LTE) backhaul networks.< /t> | measurements of using HIP in Long Term Evolution (LTE) backhaul networks.< /t> | |||
| <t>HIP has been studied for securing cloud internal | ||||
| <t>HIP has been experimented with securing cloud internal | connectivity. First with virtual machines <xref target="komu-cloud" format | |||
| connectivity. First with virtual machines <xref | ="default"/> and then between Linux | |||
| target="komu-cloud" /> and then later also between Linux | containers <xref target="ranjbar-synaptic" format="default"/>. In both ca | |||
| containers <xref target="ranjbar-synaptic" />. In both cases, | ses, | |||
| HIP was suggested as a solution NAT traversal that could be | HIP was suggested as a solution to NAT traversal that could be | |||
| utilized both internally by a cloud network and between | utilized both internally by a cloud network and between | |||
| multi-cloud deployments. Specifically in the former case, HIP | multi-cloud deployments. Specifically in the former case, HIP | |||
| was beneficial sustaining connectivity with a virtual machine | was beneficial sustaining connectivity with a virtual machine | |||
| while it migrates to a new location. In the latter case, | while it migrated to a new location. In the latter case, a | |||
| Software-Defined Networking (SDN) controller acted as rendezvous | Software-Defined Networking (SDN) controller acted as a rendezvous | |||
| server for HIP-capable containers. The controller enforced | server for HIP-capable containers. The controller enforced | |||
| strong replay protection by adding middlebox nonces <xref target="heer-end -host" /> to the passing HIP base exchange | strong replay protection by adding middlebox nonces <xref target="heer-end -host" format="default"/> to the passing HIP base exchange | |||
| and UPDATE messages. | and UPDATE messages. | |||
| </t> | </t> | |||
| </section> | ||||
| </section> | <section anchor="tempered" numbered="true" toc="default"> | |||
| <name>Management of Identities in a Commercial Product</name> | ||||
| <section title="Management of Identities in a Commercial Product" anchor="te | <t>Tempered Networks provides HIP-based products. | |||
| mpered"> | They refer to their platform as <xref target="tempered-networks" format="d | |||
| efault">Identity-Defined Networking | ||||
| <t>Tempered Networks provides HIP-based products. | ||||
| They refer to their platform as <xref | ||||
| target="tempered-networks">Identity-Defined Networking | ||||
| (IDN)</xref> because of HIP's identity-first networking | (IDN)</xref> because of HIP's identity-first networking | |||
| architecture. Their objective has been to make it simple and | architecture. Their objective has been to make it simple and | |||
| non-disruptive to deploy HIP enabled services widely in | nondisruptive to deploy HIP-enabled services widely in | |||
| production environments with the purpose of enabling transparent | production environments with the purpose of enabling transparent | |||
| device authentication and authorization, cloaking, segmentation, | device authentication and authorization, cloaking, segmentation, | |||
| and end-to-end networking. The goal is to eliminate much of the | and end-to-end networking. The goal is to eliminate much of the | |||
| circular dependencies, exploits, and layered complexity of | circular dependencies, exploits, and layered complexity of | |||
| traditional "address-defined networking" that prevents mobility | traditional "address-defined networking" that prevents mobility | |||
| and verifiable device access control. The products in the | 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: | |||
| <list style="symbols"> | </t> | |||
| <t>HIP Switches / Gateways - these are physical or virtual | <dl newline="true"> | |||
| <dt>HIP Switches / Gateways</dt><dd>These are physical or virtual | ||||
| appliances that serve as the HIP gateway and policy enforcement | appliances that serve as the HIP gateway and policy enforcement | |||
| point for non HIP-aware applications and devices located behind | point for non-HIP-aware applications and devices located behind | |||
| it. No IP or infrastructure changes are required in order to | it. No IP or infrastructure changes are required in order to | |||
| connect, cloak, and protect the non-HIP aware | connect, cloak, and protect the non-HIP-aware | |||
| devices. Currently known supported platforms for HIP gateways | devices. Currently known supported platforms for HIP gateways | |||
| are: x86 and ARM chipsets, ESXi, Hyper-V, KVM, AWS, Azure, and | are x86 and ARM chipsets, ESXi, Hyper-V, KVM, AWS, Azure, and | |||
| Google clouds.</t> | Google clouds.</dd> | |||
| <dt>HIP Relays / Rendezvous</dt><dd>These are physical or virtual ap | ||||
| <t>HIP Relays / Rendezvous - are physical or virtual appliances | pliances | |||
| that serve as identity based routers authorizing and bridging | that serve as identity-based routers authorizing and bridging | |||
| HIP endpoints without decrypting the HIP session. A HIP Relay | HIP endpoints without decrypting the HIP session. A HIP relay | |||
| can be deployed as a standalone appliance or in a cluster for | can be deployed as a standalone appliance or in a cluster for | |||
| horizontal scaling. All HIP aware endpoints and the devices | horizontal scaling. All HIP-aware endpoints and the devices | |||
| they're connecting and protecting can remain privately | they're connecting and protecting can remain privately | |||
| addressed, The appliances eliminate IP conflicts, tunnel through NAT and | addressed. The appliances eliminate IP conflicts, tunnel through NAT and | |||
| CGNAT, and require no changes to the underlay | carrier-grade NAT, and require no changes to the underlying | |||
| infrastructure. The only requirement is that a HIP endpoint | infrastructure. The only requirement is that a HIP endpoint | |||
| should have outbound access to the Internet and that a HIP Relay should h ave | should have outbound access to the Internet and that a HIP Relay should h ave | |||
| a public address.</t> | a public address.</dd> | |||
| <dt>HIP-Aware Clients and Servers</dt><dd>This is software that is i | ||||
| <t>HIP-Aware Clients and Servers - software that installs in | nstalled in | |||
| the host's network stack and enforces policy for that host. HIP | the host's network stack and enforces policy for that host. HIP | |||
| clients support split tunneling. Both HIP client and HIP server | clients support split tunneling. Both the HIP client and HIP server | |||
| can interface with the local host firewall and HIP Server can | can interface with the local host firewall, and the HIP server can | |||
| be locked down to listen only on the port used for HIP, making | be locked down to listen only on the port used for HIP, making | |||
| the server invisible from unauthorized devices. Currently known | the server invisible from unauthorized devices. Currently known | |||
| supported platforms are Windows, OSX, iOS, Android, Ubuntu, | supported platforms are Windows, OS X, iOS, Android, Ubuntu, | |||
| CentOS and other Linux derivatives.</t> | CentOS, and other Linux derivatives.</dd> | |||
| <dt>Policy Orchestration Managers</dt><dd>These physical or virtual | ||||
| <t>Policy Orchestration Managers - a physical or virtual | appliances serve as the engine to define and distribute | |||
| appliance that serves as the engine to define and distribute | network and security policy (HI and IP mappings, overlay networks, and wh | |||
| network and security policy (HI and IP mappings, overlay networks and whi | itelist policies, etc.) to HIP-aware endpoints. Orchestration does not need to | |||
| telist policies etc.) to HIP-aware endpoints. Orchestration does not need to | persist to the HIP endpoints and vice versa, allowing for | |||
| persist to the HIP endpoints and vice versa allowing for | autonomous host networking and security.</dd> | |||
| autonomous host networking and security.</t> | </dl> | |||
| </list> | ||||
| </t> | ||||
| <!-- | ||||
| <t>Their HIP enabled products include the following: | ||||
| <list style="symbols"> | ||||
| <t>The Conductor: the policy orchestration engine that | ||||
| defines and distributes network and security policy to HIP | ||||
| endpoints. The Conductor does not need to persist to the HIP | ||||
| endpoints and vice versa allowing for autonomous hosts.</t> | ||||
| <t>HIPswitch: a physical or virtual appliance that serves as | ||||
| a HIP gateway and policy enforcement point for non HIP-aware | ||||
| applications and devices located behind it. Supported | ||||
| platforms are: x86 and ARM chipsets, ESXi, Hyper-V, KVM, AWS, | ||||
| Azure, and Google clouds.</t> | ||||
| <t>HIPrelay: a physical, virtual, or cloud appliance (same | ||||
| supported platforms as the HIPswitch) that serves as an | ||||
| identity-based router authorizing and bridging HIP endpoints | ||||
| without decrypting the HIP session. The HIPrelay can be | ||||
| deployed as a standalone or in a cluster for horizontal | ||||
| scaling. All HIP endpoints and the devices they're connecting | ||||
| and protecting can remain privately addressed with no IP | ||||
| conflicts, tunnels through NAT and CGNAT, and requires no | ||||
| changes to the underlay infrastructure. The only requirement | ||||
| is that a HIP endpoint have outbound access to the Internet | ||||
| and that the HIPrelay have a public address.</t> | ||||
| <t>HIPclient and HIPserver: software that installs in the | ||||
| host's network stack and enforces policy for that | ||||
| host. Supported platforms are Windows, OSX, iOS, Android, | ||||
| Ubuntu, CentOS and other Linux derivatives.</t> | ||||
| </t> | ||||
| --> | ||||
| </section> | ||||
| </section> | </section> | |||
| </section> | ||||
| <section title="Answers to NSRG questions"> | <section numbered="true" toc="default"> | |||
| <name>Answers to NSRG Questions</name> | ||||
| <t>The IRTF Name Space Research Group has posed a number of | <t>The IRTF Name Space Research Group has posed a number of | |||
| evaluating questions in <xref | evaluating questions in <xref target="I-D.irtf-nsrg-report" format="defaul | |||
| target="nsrg-report">their report</xref>. In this | t">their report</xref>. In this | |||
| section, we provide answers to these questions. | section, we provide answers to these questions. | |||
| <list style="numbers"> | </t> | |||
| <ol spacing="normal" type="1"> | ||||
| <t>How would a stack name improve the overall | <li> | |||
| <t>How would a stack name improve the overall | ||||
| functionality of the Internet? | functionality of the Internet? | |||
| <list style="empty"> | </t> | |||
| <t>HIP decouples the internetworking layer from the | ||||
| <t>HIP decouples the internetworking layer from the | ||||
| transport layer, allowing each to evolve separately. | transport layer, allowing each to evolve separately. | |||
| The decoupling makes end-host mobility and | The decoupling makes end-host mobility and | |||
| multi-homing easier, also across IPv4 and IPv6 | multihoming easier, also across IPv4 and IPv6 | |||
| networks. HIs make network renumbering easier, and | networks. HIs make network renumbering easier, and | |||
| they also make process migration and clustered servers | they also make process migration and clustered servers | |||
| easier to implement. Furthermore, being cryptographic | easier to implement. Furthermore, being cryptographic | |||
| in nature, they provide the basis for solving the | in nature, they provide the basis for solving the | |||
| security problems related to end-host mobility and | security problems related to end-host mobility and | |||
| multi-homing.</t> | multihoming.</t> | |||
| </li> | ||||
| <li> | ||||
| <t>What does a stack name look like? | ||||
| </list> | ||||
| </t> | </t> | |||
| <t>A HI is a cryptographic public key. However, | ||||
| <t>What does a stack name look like? | ||||
| <list style="empty"> | ||||
| <t>A HI is a cryptographic public key. However, | ||||
| instead of using the keys directly, most protocols use | instead of using the keys directly, most protocols use | |||
| a fixed-size hash of the public key.</t> | a fixed-size hash of the public key.</t> | |||
| </li> | ||||
| <li> | ||||
| <t>What is its lifetime? | ||||
| </list> | ||||
| </t> | </t> | |||
| <t>HIP provides both stable and temporary Host | ||||
| <t>What is its lifetime? | ||||
| <list style="empty"> | ||||
| <t>HIP provides both stable and temporary Host | ||||
| Identifiers. Stable HIs are typically long-lived, | Identifiers. Stable HIs are typically long-lived, | |||
| with a lifetime of years or more. The lifetime of | with a lifetime of years or more. The lifetime of | |||
| temporary HIs depends on how long the upper-layer | temporary HIs depends on how long the upper-layer | |||
| connections and applications need them, and can range | connections and applications need them, and can range | |||
| from a few seconds to years.</t> | from a few seconds to years.</t> | |||
| </li> | ||||
| <li> | ||||
| <t>Where does it live in the stack? | ||||
| </list> | ||||
| </t> | </t> | |||
| <t>The HIs live between the transport and | ||||
| <t>Where does it live in the stack? | ||||
| <list style="empty"> | ||||
| <t>The HIs live between the transport and | ||||
| internetworking layers.</t> | internetworking layers.</t> | |||
| </li> | ||||
| <li> | ||||
| <t>How is it used on the endpoints? | ||||
| </list> | ||||
| </t> | </t> | |||
| <t>The Host Identifiers may be used directly or | ||||
| <t>How is it used on the end points? | ||||
| <list style="empty"> | ||||
| <t>The Host Identifiers may be used directly or | ||||
| indirectly (in the form of HITs or LSIs) by | indirectly (in the form of HITs or LSIs) by | |||
| applications when they access network services. | applications when they access network services. | |||
| Additionally, the Host Identifiers, as public keys, | Additionally, the Host Identifiers, as public keys, | |||
| are used in the built-in key agreement protocol, | are used in the built-in key agreement protocol, | |||
| called the HIP base exchange, to authenticate the | called the HIP base exchange, to authenticate the | |||
| hosts to each other.</t> | hosts to each other.</t> | |||
| </li> | ||||
| </list> | <li> | |||
| </t> | <t>What administrative infrastructure is needed to support | |||
| <t>What administrative infrastructure is needed to support | ||||
| it? | it? | |||
| <list style="empty"> | </t> | |||
| <t>In some environments, it is possible to use HIP | ||||
| <t>In some environments, it is possible to use HIP | ||||
| opportunistically, without any infrastructure. | opportunistically, without any infrastructure. | |||
| However, to gain full benefit from HIP, the HIs must | However, to gain full benefit from HIP, the HIs must | |||
| be stored in the DNS or a PKI, and the rendezvous | be stored in the DNS or a PKI, and the rendezvous | |||
| mechanism is needed <xref target="RFC8005" />.</t> | mechanism is needed <xref target="RFC8005" format="default"/>.</t | |||
| > | ||||
| </list> | </li> | |||
| </t> | <li> | |||
| <t>If we add an additional layer, would it make the address | ||||
| <t>If we add an additional layer would it make the address | ||||
| list in SCTP unnecessary? | list in SCTP unnecessary? | |||
| <list style="empty"> | ||||
| <t>Yes</t> | ||||
| </list> | ||||
| </t> | </t> | |||
| <t>Yes</t> | ||||
| <t>What additional security benefits would a new naming | </li> | |||
| <li> | ||||
| <t>What additional security benefits would a new naming | ||||
| scheme offer? | scheme offer? | |||
| <list style="empty"> | </t> | |||
| <t>HIP reduces dependency on IP addresses, making the | ||||
| <t>HIP reduces dependency on IP addresses, making the | so-called address ownership <xref target="Nik2001" format="defaul | |||
| so-called address ownership <xref target="Nik2001" /> | t"/> | |||
| problems easier to solve. In practice, HIP provides | problems easier to solve. In practice, HIP provides | |||
| security for end-host mobility and multi-homing. | security for end-host mobility and multihoming. | |||
| Furthermore, since HIP Host Identifiers are public | Furthermore, since HIP Host Identifiers are public | |||
| keys, standard public key certificate infrastructures | keys, standard public key certificate infrastructures | |||
| can be applied on the top of HIP.</t> | can be applied on the top of HIP.</t> | |||
| </list> | </li> | |||
| </t> | <li> | |||
| <t>What would the resolution mechanisms be, or what | ||||
| <t>What would the resolution mechanisms be, or what | ||||
| characteristics of a resolution mechanisms would be | characteristics of a resolution mechanisms would be | |||
| required? | required? | |||
| <list style="empty"> | </t> | |||
| <t>For most purposes, an approach where DNS names are | ||||
| <t>For most purposes, an approach where DNS names are | ||||
| resolved simultaneously to HIs and IP addresses is | resolved simultaneously to HIs and IP addresses is | |||
| sufficient. However, if it becomes necessary to | sufficient. However, if it becomes necessary to | |||
| resolve HIs into IP addresses or back to DNS names, a | resolve HIs into IP addresses or back to DNS names, a | |||
| flat resolution infrastructure is needed. Such an | flat resolution infrastructure is needed. Such an | |||
| infrastructure could be based on the ideas of | infrastructure could be based on the ideas of | |||
| Distributed Hash Tables, but would require significant | Distributed Hash Tables, but would require significant | |||
| new development and deployment.</t> | new development and deployment.</t> | |||
| </li> | ||||
| </list> | </ol> | |||
| </t> | </section> | |||
| </list> | ||||
| </t> | ||||
| </section> | </section> | |||
| <section numbered="false" toc="default"> | ||||
| <name>Acknowledgments</name> | ||||
| <t>For the people historically involved in the early stages of | ||||
| HIP, see the Acknowledgments section in the | ||||
| Host Identity Protocol specification.</t> | ||||
| <t>During the later stages of this document, when the editing | ||||
| baton was transferred to <contact fullname="Pekka Nikander"/>, the comment | ||||
| s from the | ||||
| early implementers and others, including <contact fullname="Jari Arkko"/>, | ||||
| <contact fullname="Jeff Ahrenholz"/>, <contact fullname="Tom | ||||
| Henderson"/>, <contact fullname="Petri Jokela"/>, <contact fullname="Miik | ||||
| a Komu"/>, <contact fullname="Mika Kousa"/>, <contact fullname="Andrew | ||||
| McGregor"/>, <contact fullname="Jan Melen"/>, <contact fullname="Tim She | ||||
| pard"/>, <contact fullname="Jukka Ylitalo"/>, <contact fullname="Sasu Tarkoma" | ||||
| />, | ||||
| and <contact fullname="Jorma Wall"/>, were invaluable. Also, the comments | ||||
| from <contact fullname="Lars Eggert"/>, | ||||
| <contact fullname="Spencer Dawkins"/>, <contact fullname="Dave Crocker"/ | ||||
| >, and <contact fullname="Erik Giesa"/> were also useful.</t> | ||||
| </section> <!-- design considerations --> | <t>The authors want to express their special thanks to | |||
| <contact fullname="Tom Henderson"/>, who took the burden of editing the d | ||||
| <!-- appendix --> | ocument | |||
| 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.</t> | ||||
| <t>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.</t> | ||||
| <t>Thanks also to <contact fullname="Suvi Koskinen"/> for her help with pr | ||||
| oofreading | ||||
| and with the reference jungle.</t> | ||||
| </section> | ||||
| </back> | </back> | |||
| </rfc> | </rfc> | |||
| End of changes. 496 change blocks. | ||||
| 2197 lines changed or deleted | 1873 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/ | ||||