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