| < draft-moskowitz-hip-arch-04.txt | draft-moskowitz-hip-arch-05.txt > | |||
|---|---|---|---|---|
| Network Working Group R. Moskowitz | Network Working Group R. Moskowitz | |||
| Internet-Draft ICSAlabs, a Division of TruSecure | Internet-Draft ICSAlabs, a Division of TruSecure | |||
| Expires: March 1, 2004 Corporation | Expires: March 1, 2004 Corporation | |||
| P. Nikander | P. Nikander | |||
| Ericsson Research Nomadic Lab | Ericsson Research Nomadic Lab | |||
| Sep 2003 | Sep 2003 | |||
| Host Identity Protocol Architecture | Host Identity Protocol Architecture | |||
| draft-moskowitz-hip-arch-04 | draft-moskowitz-hip-arch-05 | |||
| Status of this Memo | Status of this Memo | |||
| This document is an Internet-Draft and is in full conformance with | This document is an Internet-Draft and is in full conformance with | |||
| all provisions of Section 10 of RFC2026. | all provisions of Section 10 of RFC2026. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF), its areas, and its working groups. Note that other | Task Force (IETF), its areas, and its working groups. Note that other | |||
| groups may also distribute working documents as Internet-Drafts. | groups may also distribute working documents as Internet-Drafts. | |||
| skipping to change at page 1, line 41 ¶ | skipping to change at page 1, line 41 ¶ | |||
| http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
| This Internet-Draft will expire on March 1, 2004. | This Internet-Draft will expire on March 1, 2004. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (C) The Internet Society (2003). All Rights Reserved. | Copyright (C) The Internet Society (2003). All Rights Reserved. | |||
| Abstract | Abstract | |||
| This memo describes the reasoning behind proposing a new namespace, | This memo describes the reasoning behind a proposed new namespace, | |||
| the Host Identity namespace, and a new layer, Host Identity Layer, | the Host Identity namespace, and a new protocol layer, the Host | |||
| between the internetworking and transport layers. Herein are | Identity Protocol, between the internetworking and transport layers. | |||
| presented the basics of the current namespaces, strengths and | Herein are presented the basics of the current namespaces, strengths | |||
| weaknesses, and how a new namespace will add completeness to them. | and weaknesses, and how a new namespace will add completeness to | |||
| The roles of this new namespace in the protocols are defined. | them. The roles of this new namespace in the protocols are defined. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2. Background . . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2. Background . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 2.1 A Desire for Namespace for Computing Platforms . . . . . . . . 5 | 2.1 A Desire for a Namespace for Computing Platforms . . . . . . 5 | |||
| 3. Host Identity Namespace . . . . . . . . . . . . . . . . . . . 7 | 3. Host Identity Namespace . . . . . . . . . . . . . . . . . . 7 | |||
| 3.1 Host Identifiers . . . . . . . . . . . . . . . . . . . . . . . 7 | 3.1 Host Identifiers . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 3.2 Storing Host Identifiers in DNS . . . . . . . . . . . . . . . 8 | 3.2 Storing Host Identifiers in DNS . . . . . . . . . . . . . . 8 | |||
| 3.3 Host Identity Tag (HIT) . . . . . . . . . . . . . . . . . . . 8 | 3.3 Host Identity Tag (HIT) . . . . . . . . . . . . . . . . . . 8 | |||
| 3.4 Local Scope Identity (LSI) . . . . . . . . . . . . . . . . . . 9 | 3.4 Local Scope Identifier (LSI) . . . . . . . . . . . . . . . . 9 | |||
| 4. The New Architecture . . . . . . . . . . . . . . . . . . . . . 10 | 4. New Stack Architecture . . . . . . . . . . . . . . . . . . . 10 | |||
| 4.1 Transport associations and endpoints . . . . . . . . . . . . . 10 | 4.1 Transport associations and endpoints . . . . . . . . . . . . 10 | |||
| 5. End-Host Mobility and Multi-Homing via HIP . . . . . . . . . . 12 | 5. End-Host Mobility and Multi-Homing . . . . . . . . . . . . . 12 | |||
| 5.1 Rendezvous server . . . . . . . . . . . . . . . . . . . . . . 12 | 5.1 Rendezvous server . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 5.2 Protection against Flooding Attacks . . . . . . . . . . . . . 13 | 5.2 Protection against Flooding Attacks . . . . . . . . . . . . 13 | |||
| 6. HIP and NATs . . . . . . . . . . . . . . . . . . . . . . . . . 14 | 6. HIP and IPsec . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 6.1 HIP and TCP Checksum . . . . . . . . . . . . . . . . . . . . . 14 | 7. HIP and NATs . . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 7. HIP Policies . . . . . . . . . . . . . . . . . . . . . . . . . 15 | 7.1 HIP and TCP Checksum . . . . . . . . . . . . . . . . . . . . 15 | |||
| 8. Benefits of HIP . . . . . . . . . . . . . . . . . . . . . . . 16 | 8. HIP Policies . . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 8.1 HIP's Answers to NSRG questions . . . . . . . . . . . . . . . 17 | 9. Benefits of HIP . . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 9. Security Considerations . . . . . . . . . . . . . . . . . . . 19 | 9.1 HIP's Answers to NSRG questions . . . . . . . . . . . . . . 18 | |||
| 9.1 HITs used in ACLs . . . . . . . . . . . . . . . . . . . . . . 20 | 10. Security Considerations . . . . . . . . . . . . . . . . . . 20 | |||
| 9.2 Non-security Considerations . . . . . . . . . . . . . . . . . 21 | 10.1 HITs used in ACLs . . . . . . . . . . . . . . . . . . . . . 21 | |||
| 10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 22 | 10.2 Non-security Considerations . . . . . . . . . . . . . . . . 22 | |||
| References (informative) . . . . . . . . . . . . . . . . . . . 23 | 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . 23 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 23 | References (informative) . . . . . . . . . . . . . . . . . . 24 | |||
| Intellectual Property and Copyright Statements . . . . . . . . 25 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 24 | |||
| Intellectual Property and Copyright Statements . . . . . . . 26 | ||||
| 1. Introduction | 1. Introduction | |||
| The Internet has created two global namespaces: Internet Protocol | The Internet has created two global namespaces: Internet Protocol | |||
| (IP) addresses, and Domain Name Service (DNS) names. These two | (IP) addresses and Domain Name Service (DNS) names. These two | |||
| namespaces have a set of features and abstractions that have powered | namespaces have a set of features and abstractions that have powered | |||
| the Internet to what it is today. They also have a number of | the Internet to what it is today. They also have a number of | |||
| weaknesses. Basically, since they are all we have, we try and do too | weaknesses. Basically, since they are all we have, we try and do too | |||
| much with them. Semantic overloading and functionality extensions | much with them. Semantic overloading and functionality extensions | |||
| have greatly complicated these namespaces. | have greatly complicated these namespaces. | |||
| The Host Identity namespace fills an important gap between the IP and | The Host Identity namespace fills an important gap between the IP and | |||
| DNS namespaces. The Host Identity namespace consist of Host | DNS namespaces. The Host Identity namespace consist of Host | |||
| Identifiers (HI). A Host Identifier is cryptographic in its nature; | Identifiers (HI). A Host Identifier is cryptographic in its nature; | |||
| it is the public key of an asymmetric key-pair. A HI is assigned to | it is the public key of an asymmetric key-pair. A Host Identity is | |||
| each host, or technically its networking kernel or stack. Each host | assigned to each host, or technically its networking kernel or stack. | |||
| will have at least one Host Identifier, which can either be public | Each host will have at least one Host Identity and a corresponding | |||
| (e.g. published in DNS), or anonymous. Client systems will tend to | Host Identifier, which can either be public (e.g. published in DNS), | |||
| have both public and anonymous HIs. | or anonymous. Client systems will tend to have both public and | |||
| anonymous Identities. | ||||
| Although the Host Identity can be used in many authentication | Although the Host Identities could be used in many authentication | |||
| systems, its design principle calls out for a new protocol and | systems, the presented architecture introduces a new protocol, called | |||
| exchange [5] that will support limited forms of trust between | the Host Identity Protocol (HIP), and a cryptographic exchange, | |||
| systems, enhance mobility, multi-homing and dynamic IP renumbering, | called the HIP base exchange [4]. The new protocol provides for | |||
| aid in protocol translation / transition, and greatly reduce denial | limited forms of trust between systems. It enhances mobility, | |||
| of service (DoS) attacks. | multi-homing and dynamic IP renumbering [7], aids in protocol | |||
| translation / transition [4], and reduces certain types of | ||||
| denial-of-service (DoS) attacks [4]. | ||||
| When HIP is used, the actual payload traffic between two HIP hosts is | ||||
| typically protected with IPsec. The Host Identities are used to | ||||
| create the needed IPsec Security Associations (SA) and to | ||||
| authenticate the hosts. The actual payload IP packets do not differ | ||||
| in any way from standard IPsec protected IP packets. | ||||
| 2. Background | 2. Background | |||
| The Internet is built from three principle components: computing | The Internet is built from three principle components: computing | |||
| platforms, packet transport (i.e. internetworking) infrastructure, | platforms, packet transport (i.e. internetworking) infrastructure, | |||
| and services (applications). The Internet exists to service two | and services (applications). The Internet exists to service two | |||
| principal components: people and robotic processes (silicon based | principal components: people and robotic processes (silicon based | |||
| people, if you will). All these components need to be named in order | people, if you will). All these components need to be named in order | |||
| to interact in a scalable manner. | to interact in a scalable manner. | |||
| There are two principal namespaces in use in the Internet for these | There are two principal namespaces in use in the Internet for these | |||
| components: IP numbers, and Domain Names. Email, HTTP and SIP | components: IP numbers, and Domain Names. Email, HTTP and SIP | |||
| addresses are really only an extension of Domain Names. | addresses are really only extensions of Domain Names. | |||
| IP numbers are a confounding of two namespaces, the names of the | IP numbers are a confounding of two namespaces, the names of the | |||
| networking interfaces and the names of the locations ('confounding' | networking interfaces and the names of the locations ('confounding' | |||
| is a term used in statistics to discuss metrics that are merged into | is a term used in statistics to discuss metrics that are merged into | |||
| one with a gain in indexing, but a loss in informational value). The | one with a gain in indexing, but a loss in informational value). The | |||
| names of locations should be understood as denoting routing direction | names of locations should be understood as denoting routing direction | |||
| vectors, i.e., information that is used to deliver packets to their | vectors, i.e., information that is used to deliver packets to their | |||
| destinations. | destinations. | |||
| IP numbers name networking interfaces, and typically only when the | IP numbers name networking interfaces, and typically only when the | |||
| skipping to change at page 5, line 5 ¶ | skipping to change at page 5, line 5 ¶ | |||
| in so far as a named service is responsible for managing a person's | in so far as a named service is responsible for managing a person's | |||
| mail. There is some anonymity in Email addresses. | mail. There is some anonymity in Email addresses. | |||
| There are three critical deficiencies with the current namespaces. | There are three critical deficiencies with the current namespaces. | |||
| Firstly, dynamic readdressing cannot be directly managed. Secondly, | Firstly, dynamic readdressing cannot be directly managed. Secondly, | |||
| anonymity is not provided in a consistent, trustable manner. | anonymity is not provided in a consistent, trustable manner. | |||
| Finally, authentication for systems and datagrams is not provided. | Finally, authentication for systems and datagrams is not provided. | |||
| All because computing platforms are not well named with the current | All because computing platforms are not well named with the current | |||
| namespaces. | namespaces. | |||
| 2.1 A Desire for Namespace for Computing Platforms | 2.1 A Desire for a Namespace for Computing Platforms | |||
| An independent namespace for computing platforms could be used in | An independent namespace for computing platforms could be used in | |||
| end-to-end operations independent of the evolution of the | end-to-end operations independent of the evolution of the | |||
| internetworking layer and across the many internetworking layers. | internetworking layer and across the many internetworking layers. | |||
| This could support rapid readdressing of the internetworking layer | This could support rapid readdressing of the internetworking layer | |||
| either from mobility or renumbering. | either from mobility or renumbering. | |||
| If the namespace for computing platforms is cryptographically based, | If the namespace for computing platforms is cryptographically based, | |||
| it can also provide authentication services for IPsec. If this | it can also provide authentication services. If this namespace is | |||
| namespace is locally created without requiring registration, it can | locally created without requiring registration, it can provide | |||
| provide anonymity. | anonymity. | |||
| Such a namespace (for computing platforms) and the names in it should | Such a namespace (for computing platforms) and the names in it should | |||
| have the following characteristics: | have the following characteristics: | |||
| The namespace should be applied to the IP 'kernel'. The IP kernel | The namespace should be applied to the IP 'kernel'. The IP kernel | |||
| is the 'component' between services and the packet transport | is the 'component' between services and the packet transport | |||
| infrastructure. | infrastructure. | |||
| The namespace should fully decouple the internetworking layer from | The namespace should fully decouple the internetworking layer from | |||
| the higher layers. The names should replace all occurrences of IP | the higher layers. The names should replace all occurrences of IP | |||
| skipping to change at page 6, line 15 ¶ | skipping to change at page 6, line 15 ¶ | |||
| The namespace should provide authentication services. This is a | The namespace should provide authentication services. This is a | |||
| preferred function. | preferred function. | |||
| The names should be long lived, but replaceable at any time. This | The names should be long lived, but replaceable at any time. This | |||
| impacts access control lists; short lifetimes will tend to result | impacts access control lists; short lifetimes will tend to result | |||
| in tedious list maintenance or require a namespace infrastructure | in tedious list maintenance or require a namespace infrastructure | |||
| for central control of access lists. | for central control of access lists. | |||
| In this document, such a new namespace is called the Host Identity | In this document, such a new namespace is called the Host Identity | |||
| namespace. Using Host Identities requires its own protocol layer | namespace. Using Host Identities requires its own protocol layer, | |||
| (the Host Identity Protocol), between the internetworking and | the Host Identity Protocol, between the internetworking and transport | |||
| transport layers. The names are based on public key cryptography to | layers. The names are based on public key cryptography to supply | |||
| supply authentication services. Properly designed, it can deliver all | authentication services. Properly designed, it can deliver all of the | |||
| of the above stated requirements. | above stated requirements. | |||
| 3. Host Identity Namespace | 3. Host Identity Namespace | |||
| A name in the Host Identity namespace, a Host Identifier (HI), | A name in the Host Identity namespace, a Host Identifier (HI), | |||
| represents a statistically globally unique name for naming any system | represents a statistically globally unique name for naming any system | |||
| with an IP stack. This identity is normally associated, but not | with an IP stack. This identity is normally associated, but not | |||
| limited to, an IP stack. A system can have multiple identities, some | limited to, an IP stack. A system can have multiple identities, some | |||
| 'well known', some anonymous. A system may self assert its identity, | 'well known', some anonymous. A system may self assert its identity, | |||
| or may use a third-party authenticator like DNSSEC, PGP, or X.509 to | or may use a third-party authenticator like DNSSEC, PGP, or X.509 to | |||
| 'notarize' the identity assertion. DNSSEC is a "SHOULD" implement | 'notarize' the identity assertion. It is expected that the Host | |||
| authenticator for the Host Identity namespace. | Identifiers will initially be authenticated with DNSSEC and that all | |||
| implementations will support DNSSEC as a minimal baseline. | ||||
| There is a subtle but important difference between Host Identities | There is a subtle but important difference between Host Identities | |||
| and Host Identifiers. An Identity refers to the abstract entity that | and Host Identifiers. An Identity refers to the abstract entity that | |||
| is identified. An Identifier, on the other hand, refers to the | is identified. An Identifier, on the other hand, refers to the | |||
| concrete bit pattern that is used in the identification process. | concrete bit pattern that is used in the identification process. | |||
| Although a Host Identifier could be any name that can claim | In theory, any name that can claim to be 'statistically globally | |||
| 'statistically globally unique', a public key of a 'public key' pair | unique' may serve as a Host Identifier. However, in the authors' | |||
| makes the best Host Identifiers. As documented in the Host Identity | opinion, a public key of a 'public key pair' makes the best Host | |||
| Protocol (HIP) specification [5], a public key based HI can | Identifiers. As documented in the Host Identity Protocol | |||
| authenticate the HIP packets and protect them for man-in-the-middle | specification [4], a public key based HI can authenticate the HIP | |||
| attacks. And since authenticated datagrams are mandatory to provide | packets and protect them for man-in-the-middle attacks. Since | |||
| much of HIP's DoS protection, the Diffie-Hellman exchange in HIP has | authenticated datagrams are mandatory to provide much of HIP's | |||
| to be authenticated. Thus, only public key HI and authenticated | denial-of-service protection, the Diffie-Hellman exchange in HIP has | |||
| datagrams are supported in practice. In this document, the | to be authenticated. Thus, only public key HI and authenticated HIP | |||
| messages are supported in practice. In this document, the | ||||
| non-cryptographic forms of HI and HIP are presented to complete the | non-cryptographic forms of HI and HIP are presented to complete the | |||
| theory of HI, but should not be implemented as they could produce | theory of HI, but they should not be implemented as they could | |||
| worse DoS attacks than the Internet has without HI. | produce worse denial-of-service attacks than the Internet has without | |||
| Host Identity. | ||||
| 3.1 Host Identifiers | 3.1 Host Identifiers | |||
| Host Identity adds two main features to Internet protocols. The first | Host Identity adds two main features to Internet protocols. The first | |||
| is a decoupling of the internetworking and transport layers, see | is a decoupling of the internetworking and transport layers; see | |||
| Section 4. This decoupling will allow for independent evolution of | Section 4. This decoupling will allow for independent evolution of | |||
| the two layers. Additionally, it can provide end-to-end services | the two layers. Additionally, it can provide end-to-end services | |||
| over multiple internetworking realms. The second feature is host | over multiple internetworking realms. The second feature is host | |||
| authentication. Because the Host Identifier is a public key, this | authentication. Because the Host Identifier is a public key, this | |||
| key can be used to authenticate security protocols like IPsec. | key can be used to authenticate security protocols like IPsec. | |||
| The only completely defined structure of the Host Identity is that of | The only completely defined structure of the Host Identity is that of | |||
| a public key pair. In this case, the Host Identity is referred to by | a public key pair. In this case, the Host Identity is referred to by | |||
| its public component, the public key. Thus, the name representing a | its public component, the public key. Thus, the name representing a | |||
| Host Identity in the Host Identity namespace, i.e. the Host | Host Identity in the Host Identity namespace, i.e. the Host | |||
| Identifier, is the public key. In a way, the possession of the | Identifier, is the public key. In a way, the possession of the | |||
| private key defines the Identity itself. It the private key is | private key defines the Identity itself. If the private key is | |||
| possessed by more than one node, the Identity can be considered to be | possessed by more than one node, the Identity can be considered to be | |||
| a distributed one. | a distributed one. | |||
| Architecturally, any other Internet naming convention might form a | Architecturally, any other Internet naming convention might form a | |||
| usable base for Host Identifiers. However, non-cryptographic names | usable base for Host Identifiers. However, non-cryptographic names | |||
| should only be used in situations of high trust - low risk. That is | should only be used in situations of high trust - low risk. That is | |||
| any place where host authentication is not needed (no risk of host | any place where host authentication is not needed (no risk of host | |||
| spoofing) and no use of IPsec. The current HIP documents do not | spoofing) and no use of IPsec. The current HIP documents do not | |||
| specify how to use any other types of Host Identifiers but public | specify how to use any other types of Host Identifiers but public | |||
| keys. | keys. | |||
| The actual Host Identities are never directly used in any Internet | The actual Host Identities are never directly used in any Internet | |||
| protocols. The corresponding Host Identifiers (public keys) may be | protocols. The corresponding Host Identifiers (public keys) may be | |||
| stored in various DNS or LDAP directories as identified elsewhere in | stored in various DNS or LDAP directories as identified elsewhere in | |||
| this document, and they are passed in the HIP protocol. A Host | this document, and they are passed in the HIP base exchange. A Host | |||
| Identity Tag (HIT) is used in other protocols to represent the Host | Identity Tag (HIT) is used in other protocols to represent the Host | |||
| Identities. Another representation of the Host Identities, the Local | Identities. Another representation of the Host Identities, the Local | |||
| Scope Identity (LSI), can also be used in protocols and APIs. LSI's | Scope Identifier (LSI), can also be used in protocols and APIs. | |||
| advantage over HIT is its size; its disadvantage is its local scope. | ||||
| 3.2 Storing Host Identifiers in DNS | 3.2 Storing Host Identifiers in DNS | |||
| The Host Identifiers should be stored in DNS. The exception to this | The Host Identifiers should be stored in DNS. The exception to this | |||
| is anonymous identities. The HI is stored in a new RR type, to be | is anonymous identities. The HI is stored in a new RR type, to be | |||
| defined. This RR type is likely to be very similar to the IPSECKEY | defined. This RR type is likely to be quite similar to the IPSECKEY | |||
| RR [6]. | RR [5]. | |||
| Alternatively, or in addition to storing Host Identifiers in the DNS, | Alternatively, or in addition to storing Host Identifiers in the DNS, | |||
| they may be stored in various kinds of Public Key Infrastructure | they may be stored in various kinds of Public Key Infrastructure | |||
| (PKI). Such a practice may allow them to be used for purposes other | (PKI). Such a practice may allow them to be used for purposes other | |||
| than pure host identification. | than pure host identification. | |||
| 3.3 Host Identity Tag (HIT) | 3.3 Host Identity Tag (HIT) | |||
| A Host Identity Tag is an 128 bit representation for a Host Identity. | A Host Identity Tag is an 128-bit representation for a Host Identity. | |||
| It is created by taking a cryptographic hash over the corresponding | It is created by taking a cryptographic hash over the corresponding | |||
| Host Identifier. There are two advantages of using a hash over using | Host Identifier. There are two advantages of using a hash over using | |||
| the Host Identifier in protocols. Firstly, its fixed length makes for | the Host Identifier in protocols. Firstly, its fixed length makes for | |||
| easier protocol coding and also better manages the packet size cost | easier protocol coding and also better manages the packet size cost | |||
| of this technology. Secondly, it presents a consistent format to the | of this technology. Secondly, it presents the identity in a | |||
| protocol independent of the whatever underlying identity technology | consistent format to the protocol independent of the whatever | |||
| is used. | underlying technology is used. | |||
| In the HIP protocol, the HITs identify the sender and recipient of a | In the HIP packets, the HITs identify the sender and recipient of a | |||
| packet. Consequently, a HIT should be unique in the whole IP | packet. Consequently, a HIT should be unique in the whole IP | |||
| universe. In the extremely rare case that a single HIT happens to | universe. In the extremely rare case that a single HIT happens to | |||
| map to more than one Host Identities, the Host Identifiers (public | map to more than one Host Identities, the Host Identifiers (public | |||
| keys) will make the final difference. If there is more than one | keys) will make the final difference. If there is more than one | |||
| public key for a given node, the HIT acts as a hint for the correct | public key for a given node, the HIT acts as a hint for the correct | |||
| public key to use. | public key to use. | |||
| 3.4 Local Scope Identity (LSI) | 3.4 Local Scope Identifier (LSI) | |||
| An LSI is a 32 bit localized representation for a Host Identity. The | An LSI is a 32-bit localized representation for a Host Identity. The | |||
| purpose of an LSI is to facilitate using Host Identity in existing | purpose of an LSI is to facilitate using Host Identities in existing | |||
| protocols and APIs. The generation of LSIs is defined in [5]. | protocols and APIs. LSI's advantage over HIT is its size; its | |||
| disadvantage is its local scope. The generation of LSIs is defined in | ||||
| the Host Identity Protocol specification [4]. | ||||
| Examples of how LSIs can be used include: as the address in a FTP | Examples of how LSIs can be used include: as the address in a FTP | |||
| command and as the address in a socket call. Thus LSIs act as a | command and as the address in a socket call. Thus, LSIs act as a | |||
| bridge for Host Identifier into old protocols and APIs. | bridge for Host Identities into old protocols and APIs. | |||
| 4. The New Architecture | 4. New Stack Architecture | |||
| One way to characterize Host Identity is to compare the proposed new | One way to characterize Host Identity is to compare the proposed new | |||
| architecture with the current one. As discussed above, the IP | architecture with the current one. As discussed above, the IP | |||
| addresses can be seen to be a confounding of routing direction | addresses can be seen to be a confounding of routing direction | |||
| vectors and interface names. Using the terminology from the IRTF | vectors and interface names. Using the terminology from the IRTF | |||
| Name Space Research Group Report [7] and, e.g., the unpublished | Name Space Research Group Report [6] and, e.g., the unpublished | |||
| Internet-Draft Endpoints and Endpoint Names [9], currently the IP | Internet-Draft Endpoints and Endpoint Names [9] by Noel Chiappa, the | |||
| addresses embody the dual role of locators and endpoint identifiers. | IP addresses currently embody the dual role of locators and endpoint | |||
| That is, each IP address names a topological location in the | identifiers. That is, each IP address names a topological location | |||
| Internet, thereby acting as a routing direction vector or locator. | in the Internet, thereby acting as a routing direction vector, or | |||
| At the same time, the IP address names the physical network interface | locator. At the same time, the IP address names the physical network | |||
| currently located at the point-of-attachment, thereby acting as a | interface currently located at the point-of-attachment, thereby | |||
| endpoint name. | acting as a endpoint name. | |||
| In the HIP Architecture, the endpoint names and locators are | In the HIP architecture, the endpoint names and locators are | |||
| separated from each other. IP addresses continue to act as locators. | separated from each other. IP addresses continue to act as locators. | |||
| The Host Identifiers take the role of endpoint identifiers. It is | The Host Identifiers take the role of endpoint identifiers. It is | |||
| important to understand that the endpoint names based on Host | important to understand that the endpoint names based on Host | |||
| Identities are slightly different from interface names; a Host | Identities are slightly different from interface names; a Host | |||
| Identity can be simultaneously reachable through several interfaces. | Identity can be simultaneously reachable through several interfaces. | |||
| The difference between the bindings of the logical entities are | The difference between the bindings of the logical entities are | |||
| illustrated in Figure 1. | illustrated in Figure 1. | |||
| Process ------ Socket Process ------ Socket | Process ------ Socket Process ------ Socket | |||
| skipping to change at page 11, line 6 ¶ | skipping to change at page 11, line 6 ¶ | |||
| Figure 1 | Figure 1 | |||
| 4.1 Transport associations and endpoints | 4.1 Transport associations and endpoints | |||
| Architecturally, HIP provides for a different binding of transport | Architecturally, HIP provides for a different binding of transport | |||
| layer protocols. That is, the transport layer associations, i.e., | layer protocols. That is, the transport layer associations, i.e., | |||
| TCP connections and UDP associations, are no more bound to IP | TCP connections and UDP associations, are no more bound to IP | |||
| addresses but to Host Identities. | addresses but to Host Identities. | |||
| It is possible that a single physical computer hosts several logical | It is possible that a single physical computer hosts several logical | |||
| end-points. With HIP, each of these end-points would have a distinct | endpoints. With HIP, each of these endpoints would have a distinct | |||
| Host Identity. Furthermore, since the transport associations are | Host Identity. Furthermore, since the transport associations are | |||
| bound to Host Identities, HIP provides for process migration and | bound to Host Identities, HIP provides for process migration and | |||
| clustered servers. That is, if a Host Identity is moved from one | clustered servers. That is, if a Host Identity is moved from one | |||
| physical computer to another, it is also possible to simultaneously | physical computer to another, it is also possible to simultaneously | |||
| move all the transport associations without breaking them. Similarly, | move all the transport associations without breaking them. Similarly, | |||
| if it is possible to distribute the processing of a single Host | if it is possible to distribute the processing of a single Host | |||
| Identity over several physical computers, HIP provides for cluster | Identity over several physical computers, HIP provides for cluster | |||
| based services without any changes at the client end-point. | based services without any changes at the client endpoint. | |||
| 5. End-Host Mobility and Multi-Homing via HIP | 5. End-Host Mobility and Multi-Homing | |||
| As HIP decouples the transport from the internetworking layer, and | HIP decouples the transport from the internetworking layer, and binds | |||
| binds the transport associations to the Host Identifiers (through | the transport associations to the Host Identities (through actually | |||
| actually either the HIT or LSI), HIP can provide for a degree of | either the HIT or LSI). Consequently, HIP can provide for a degree | |||
| internetworking mobility and multi-homing at a very low | of internetworking mobility and multi-homing at a very low | |||
| infrastructure cost. HIP mobility includes IP address changes (via | infrastructure cost. HIP mobility includes IP address changes (via | |||
| any method) to either the initiator or responder. Thus, a system is | any method) to either party. Thus, a system is considered mobile if | |||
| considered mobile if its IP address can change dynamically for any | its IP address can change dynamically for any reason like PPP, DHCP, | |||
| reason like PPP, DHCP, IPv6 TLA reassignments, or a NAT device | IPv6 prefix reassignments, or a NAT device remapping its translation. | |||
| remapping its translation. Likewise, a system is considered | Likewise, a system is considered multi-homed if it has more than one | |||
| multi-homed if it has more than one globally routable IP address at | globally routable IP address at the same time. HIP allows these IP | |||
| the same time. HIP allows these IP addresses to be linked with each | addresses to be linked with each other, and if one address becomes | |||
| other, and if one address becomes unusable (e.g. due a network | unusable (e.g. due to a network failure), existing transport | |||
| failure), existing transport associations can be easily moved to | associations can be easily moved to another address. | |||
| another address. | ||||
| When a node moves while communication is already on-going, address | When a node moves while communication is already on-going, address | |||
| changes are rather straightforward. The peer of the mobile node can | changes are rather straightforward. The peer of the mobile node can | |||
| just accept a HIP or an ESP packet from any address and totally | just accept a HIP or an integrity protected IPsec packet from any | |||
| ignore the source address. As discussed in Section 5.2 below, a | address and totally ignore the source address. However, as discussed | |||
| mobile node must send a HIP readdress packet to inform the peer of | in Section 5.2 below, a mobile node must send a HIP readdress packet | |||
| the new address(es), and the peer must verify that the new mobile | to inform the peer of the new address(es), and the peer must verify | |||
| node is reachable through these addresses. This is especially | that the mobile node is reachable through these addresses. This is | |||
| helpful for those situations where the peer node is sending data | especially helpful for those situations where the peer node is | |||
| periodically to the mobile node (that is re-starting a connection | sending data periodically to the mobile node (that is re-starting a | |||
| after the initial connection). | connection after the initial connection). | |||
| 5.1 Rendezvous server | 5.1 Rendezvous server | |||
| Making a contact to a mobile node is slightly more involved. The | Making a contact to a mobile node is slightly more involved. In | |||
| initiator node has to know where the mobile node is to start the HIP | order to start the HIP exchange, the initiator node has to know how | |||
| exchange. HIP need not rely on Dynamic DNS for this function, but | to reach the mobile node. Although Dynamic DNS could be used for | |||
| uses a rendezvous server. Instead of registering its current dynamic | this function for infrequently moving nodes, an alternative to using | |||
| address to the DNS server, the mobile node registers the address of | DNS in this fashion is to use a piece of new static infrastructure | |||
| the rendezvous server. The mobile node keeps the rendezvous server | called a HIP rendezvous server. Instead of registering its current | |||
| continuously updated with its current IP address(es). The rendezvous | dynamic address to the DNS server, the mobile node registers the | |||
| server simply forwards the initial HIP packet from an initiator to | address(es) of its rendezvous server(s). The mobile node keeps the | |||
| the mobile node at its current location. All further packets flow | rendezvous server(s) continuously updated with its current IP | |||
| between the initiator and the mobile node. There is typically very | address(es). A rendezvous server simply forwards the initial HIP | |||
| little activity on the rendezvous server, address updates and initial | packet from an initiator to the mobile node at its current location. | |||
| HIP packet forwarding, thus one server can support a large number of | All further packets flow between the initiator and the mobile node. | |||
| potential mobile nodes. The mobile nodes must trust the rendezvous | There is typically very little activity on a rendezvous server, | |||
| server to properly maintain its HIT and IP address mapping. | address updates and initial HIP packet forwarding. Thus, one server | |||
| can support a large number of potential mobile nodes. The mobile | ||||
| nodes must trust the rendezvous server to properly maintain their HIT | ||||
| and IP address mappings. | ||||
| The rendezvous server is also needed if both of the nodes are mobile | The rendezvous server is also needed if both of the nodes are mobile | |||
| and happen to move at the same time. In that case the HIP readdress | and happen to move at the same time. In that case, the HIP readdress | |||
| packets will cross each other in the network and never reach the peer | packets will cross each other in the network and never reach the peer | |||
| node. To solve this situation, the nodes should remember the | node. To solve this situation, the nodes should remember the | |||
| rendezvous server address, and re-send the HIP readdress packet to | rendezvous server address, and re-send the HIP readdress packet to | |||
| the rendezvous server if no reply is received. | the rendezvous server if no reply is received. | |||
| The mobile node keeps its address current on the rendezvous server by | The mobile node keeps its address current on the rendezvous server by | |||
| setting up a HIP based SA with the rendezvous server and sending it | setting up a HIP association with the rendezvous server and sending | |||
| HIP readdress packets. A rendezvous server will permit two mobile | HIP readdress packets to it. A rendezvous server will permit two | |||
| systems to use HIP without any extraneous infrastructure (in addition | mobile systems to use HIP without any extraneous infrastructure (in | |||
| to the rendezvous server itself), including DNSSEC if they have a | addition to the rendezvous server itself), including DNS if they have | |||
| method other than a DNS query to get each other's HI and HIT. | a method other than a DNS query to get each other's HI and HIT. | |||
| 5.2 Protection against Flooding Attacks | 5.2 Protection against Flooding Attacks | |||
| While the idea of informing about address changes by simply sending | While the idea of informing about address changes by simply sending | |||
| packets with a new source address appears appealing, it is not secure | packets with a new source address appears appealing, it is not secure | |||
| enough. That is, while receiving packets in HIP does not rely on the | enough. That is, even if HIP does not rely on the source address for | |||
| source address for anything, it appears to be necessary to check the | anything (once the base exchange has been completed), it appears to | |||
| mobile node's reachability at the new address(es) before actually | be necessary to check a mobile node's reachability at the new address | |||
| sending any larger amounts of traffic to the address. | before actually sending any larger amounts of traffic to the new | |||
| address. | ||||
| Blindly accepting new addresses would potentially lead to a flooding | Blindly accepting new addresses would potentially lead to flooding | |||
| Denial-of-Service attack against third parties [8]. In a distributed | Denial-of-Service attacks against third parties [8]. In a | |||
| flooding attack an attacker opens (anonymous) high volume HIP | distributed flooding attack an attacker opens (anonymous) high volume | |||
| connections with a large number of hosts, and then claims to all of | HIP connections with a large number of hosts, and then claims to all | |||
| these hosts that it has moved to a target node's IP address. If the | of these hosts that it has moved to a target node's IP address. If | |||
| peer hosts were to simply accept the move, the result would be a | the peer hosts were to simply accept the move, the result would be a | |||
| packet flood to the target node's address. To close this attack, HIP | packet flood to the target node's address. To close this attack, HIP | |||
| includes an address check mechanism where the reachability of the | includes an address check mechanism where the reachability of a node | |||
| node is separately checked at each address before actually using the | is separately checked at each address before using the address for | |||
| address for larger amounts of traffic. | larger amounts of traffic. | |||
| Whenever HIP is used between two hosts that fully trust each other, | Whenever HIP is used between two hosts that fully trust each other, | |||
| the hosts may optionally decide to skip the address tests. However, | the hosts may optionally decide to skip the address tests. However, | |||
| such performance optimization must be restricted to be performed only | such performance optimization must be restricted to peers that are | |||
| with peers that are known to be trustworthy and capable of protecting | known to be trustworthy and capable of protecting themselves from | |||
| themselves from malicious software. | malicious software. | |||
| 6. HIP and NATs | 6. HIP and IPsec | |||
| The preferred way of implementing HIP is to use IPsec to carry the | ||||
| actual data traffic. As of today, the only completely defined method | ||||
| is to use IPsec Encapsulated Security Payload (ESP) to carry the data | ||||
| packets. In the future, other ways of transporting payload data may | ||||
| be developed, including ones that do not use cryptographic | ||||
| protection. | ||||
| In practise, the 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. This is implemented in a way | ||||
| that can span addressing realms. | ||||
| 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. Future HIP extensions may provide for more granularity and | ||||
| creation of several ESP SAs between a pair of HITs | ||||
| Since HIP is designed for host usage, not for gateways, 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. | ||||
| Since HIP does not negotiate any SA lifetimes, all lifetimes are | ||||
| local policy. The only lifetimes a HIP implementation MUST support | ||||
| are sequence number rollover (for replay protection), and SA timeout. | ||||
| An SA times out if no packets are received using that SA. | ||||
| Implementations MAY support lifetimes for the various ESP transforms. | ||||
| 7. HIP and NATs | ||||
| Passing packets between different IP addressing realms requires | Passing packets between different IP addressing realms requires | |||
| changing IP addresses in the packet header. This may happen, for | changing IP addresses in the packet header. This may happen, for | |||
| example, when a packet is passed between the public Internet and a | example, when a packet is passed between the public Internet and a | |||
| private address space, or between IPv4 and IPv6 networks. The | private address space, or between IPv4 and IPv6 networks. The | |||
| address translation is usually implemented as Network Address | address translation is usually implemented as Network Address | |||
| Translation (NAT) [3] or NAT Protocol translation (NAT-PT) [2]. | Translation (NAT) [2] or NAT Protocol translation (NAT-PT) [1]. | |||
| In a network environment where the identification is based on the IP | In a network environment where the identification is based on the IP | |||
| address, identifying the communicating nodes is difficult when the | addresses, identifying the communicating nodes is difficult when NAT | |||
| NAT is used. With HIP, the transport layer end-points are bound to | is used. With HIP, the transport layer endpoints are bound to the | |||
| the HIT or LSI. Thus, a connection between two hosts can traverse | Host Identities. Thus, a connection between two hosts can traverse | |||
| many addressing realm boundaries. The IP addresses are used only for | many addressing realm boundaries. The IP addresses are used only for | |||
| routing purposes; the IP addresses may be changed freely during | routing purposes; the IP addresses may be changed freely during | |||
| packet traversal. | packet traversal. | |||
| For a HIP based flow, a NAT or NAT-PT system needs only track the | For a HIP based flow, a NAT or NAT-PT system tracks the mapping of | |||
| mapping of the HIT or SPI to an IP address. Many HITs can map to a | HITs and the corresponding IPsec SPIs to an IP address. Many HITs | |||
| single IP address on a NAT, simplifying connections on address poor | can map to a single IP address on a NAT, simplifying connections on | |||
| NAT interfaces. The NAT can gain much of its knowledge from the HIP | address poor NAT interfaces. The NAT can gain much of its knowledge | |||
| packets themselves; however some NAT configuration may be necessary. | from the HIP packets themselves; however, some NAT configuration may | |||
| be necessary. | ||||
| The NAT systems cannot touch the datagrams within the ESP envelope, | The NAT systems cannot touch the datagrams within the IPsec envelope, | |||
| thus application specific address translation must be done in the end | thus application specific address translation must be done in the end | |||
| systems. HIP provides for 'Distributed NAT', and uses the HIT or the | systems. HIP provides for 'Distributed NAT', and uses the HIT or the | |||
| LSI as a place holder for embedded IP addresses. | LSI as a place holder for embedded IP addresses. | |||
| 6.1 HIP and TCP Checksum | 7.1 HIP and TCP Checksum | |||
| There is no way for a host to know if any of the IP addresses in the | There is no way for a host to know if any of the IP addresses in the | |||
| IP header are the addresses used to calculate the TCP checksum. That | IP header are the addresses used to calculate the TCP checksum. That | |||
| is, it is not feasible to calculate the TCP checksum using the IP | is, it is not feasible to calculate the TCP checksum using the actual | |||
| addresses in the pseudo header; the addresses received in the | IP addresses in the pseudo header; the addresses received in the | |||
| incoming packet are not necessarily the same as they were on the | incoming packet are not necessarily the same as they were on the | |||
| sending host. Furthermore, it is not possible to recompute the upper | sending host. Furthermore, it is not possible to recompute the upper | |||
| layer checksums in the NAT/NAT-PT system, since the traffic is IPsec | layer checksums in the NAT/NAT-PT system, since the traffic is IPsec | |||
| protected. Consequently, the TCP and UDP checksums are calculated | protected. Consequently, the TCP and UDP checksums are calculated | |||
| using the HIT in the place of the IP addresses in the pseudo header. | using the HITs in the place of the IP addresses in the pseudo header. | |||
| Furthermore, only the IPv6 pseudo header format is used. This | ||||
| provides for IPv4 / IPv6 protocol translation. | ||||
| 7. HIP Policies | 8. HIP Policies | |||
| There are a number of variables that will influence the HIP exchanges | There are a number of variables that will influence the HIP exchanges | |||
| that each host must support. All HIP implementations should support | that each host must support. All HIP implementations should support | |||
| at least 2 HIs, one to publish in DNS and one for anonymous usage. | at least 2 HIs, one to publish in DNS and one for anonymous usage. | |||
| Although anonymous HIs will be rarely used as responder HIs, they are | Although anonymous HIs will be rarely used as responder HIs, they are | |||
| likely be common for initiators. Support for multiple HIs is | likely be common for initiators. Support for multiple HIs is | |||
| recommended. | recommended. | |||
| Many initiators would want to use a different HI for different | Many initiators would want to use a different HI for different | |||
| responders. The implementations should provide for a policy of | responders. The implementations should provide for a policy of | |||
| initiator HIT to responder HIT. This policy should also include | initiator HIT to responder HIT. This policy should also include | |||
| preferred transform and local lifetimes. | preferred transforms and local lifetimes. | |||
| Responders would need a similar policy, representing which hosts they | Responders would need a similar policy, representing which hosts they | |||
| accept HIP exchanges, and the preferred transform and local | accept HIP exchanges, and the preferred transforms and local | |||
| lifetimes. | lifetimes. | |||
| 8. Benefits of HIP | 9. Benefits of HIP | |||
| In the beginning, the network layer protocol (i.e. IP) had the | In the beginning, the network layer protocol (i.e. IP) had the | |||
| following four "classic" invariants: | following four "classic" invariants: | |||
| Non-mutable: The address sent is the address received. | Non-mutable: The address sent is the address received. | |||
| Non-mobile: The address doesn't change during the course of an | Non-mobile: The address doesn't change during the course of an | |||
| "association". | "association". | |||
| Reversible: A return header can always be formed by reversing the | Reversible: A return header can always be formed by reversing the | |||
| skipping to change at page 16, line 27 ¶ | skipping to change at page 17, line 27 ¶ | |||
| Omniscient: Each host knows what address a partner host can use to | Omniscient: Each host knows what address a partner host can use to | |||
| send packets to it. | send packets to it. | |||
| Actually, the fourth can be inferred from 1 and 3, but it is worth | Actually, the fourth can be inferred from 1 and 3, but it is worth | |||
| mentioning for reasons that will be obvious soon if not already. | mentioning for reasons that will be obvious soon if not already. | |||
| In the current "post-classic" world, we are trying intentionally to | In the current "post-classic" world, we are trying intentionally to | |||
| get rid of the second invariant (both for mobility and for | get rid of the second invariant (both for mobility and for | |||
| multi-homing), and we have been forced to give up the first and the | multi-homing), and we have been forced to give up the first and the | |||
| fourth. Realm Specific IP [4] is an attempt to reinstate the fourth | fourth. Realm Specific IP [3] is an attempt to reinstate the fourth | |||
| invariant without the first invariant. IPv6 is an attempt to | invariant without the first invariant. IPv6 is an attempt to | |||
| reinstate the first invariant. | reinstate the first invariant. | |||
| Few systems on the Internet have DNS names that are meaningful to | Few systems on the Internet have DNS names that are meaningful to | |||
| them. That is, if they have a Fully Qualified Domain Name (FQDN), | them. That is, if they have a Fully Qualified Domain Name (FQDN), | |||
| that typically belongs to a NAT device or a dial-up server, and does | that typically belongs to a NAT device or a dial-up server, and does | |||
| not really identify the system itself but its current connectivity. | not really identify the system itself but its current connectivity. | |||
| FQDN names (and their extensions as email names) are Application | FQDN names (and their extensions as email names) are Application | |||
| Layer names; more frequently naming processes than a particular | Layer names; more frequently naming processes than a particular | |||
| system. This is why many systems on the internet are not registered | system. This is why many systems on the internet are not registered | |||
| in DNS; they do not have processes of interest to other Internet | in DNS; they do not have processes of interest to other Internet | |||
| hosts. | hosts. | |||
| DNS names are indirect references to IP addresses. This only | DNS names are indirect references to IP addresses. This only | |||
| demonstrates the interrelationship of the networking and application | demonstrates the interrelationship of the networking and application | |||
| layers. DNS, as the Internet's only deployed, distributed, database | layers. DNS, as the Internet's only deployed, distributed, database | |||
| is also the repository of other namespaces, due in part to DNSSEC and | is also the repository of other namespaces, due in part to DNSSEC and | |||
| KEY records. Although each namespace can be stretched (IP with v6, | application specific key records. Although each namespace can be | |||
| DNS with KEY records), neither can adequately provide for host | stretched (IP with v6, DNS with KEY records), neither can adequately | |||
| authentication or act as a separation between internetworking and | provide for host authentication or act as a separation between | |||
| transport layers. | internetworking and transport layers. | |||
| The Host Identity (HI) namespace fills an important gap between the | The Host Identity (HI) namespace fills an important gap between the | |||
| IP and DNS namespaces. An interesting thing about the HI is that it | IP and DNS namespaces. An interesting thing about the HI is that it | |||
| actually allows one to give-up all but the 3rd Network Layer | actually allows one to give-up all but the 3rd Network Layer | |||
| invariant. That is to say, as long as the source and destination | invariant. That is to say, as long as the source and destination | |||
| addresses in the network layer protocol are reversible, then things | addresses in the network layer protocol are reversible, then things | |||
| work ok because HIP takes care of host identification, and | work ok because HIP takes care of host identification, and | |||
| reversibility allows one to get a packet back to one's partner host. | reversibility allows one to get a packet back to one's partner host. | |||
| You don't care if the network layer address changes in transit | You don't care if the network layer address changes in transit | |||
| (mutable) and you don't care what network layer address the partner | (mutable) and you don't care what network layer address the partner | |||
| is using (non-omniscient). | is using (non-omniscient). | |||
| Since all systems can have a Host Identity, every system can have an | 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 | entry in the DNS. The mobility features in HIP make it attractive to | |||
| trusted 3rd parties to offer rendezvous servers. | trusted 3rd parties to offer rendezvous servers. | |||
| 8.1 HIP's Answers to NSRG questions | 9.1 HIP's Answers to NSRG questions | |||
| The IRTF Name Space Research Group has posed a number of evaluating | The IRTF Name Space Research Group has posed a number of evaluating | |||
| questions in their report [7]. In this section, we provide answers | questions in their report [6]. In this section, we provide answers | |||
| to these questions. | to these questions. | |||
| 1. How would a stack name improve the overall functionality of the | 1. How would a stack name improve the overall functionality of the | |||
| Internet? | Internet? | |||
| The HIP Host Identifiers make end-host mobility and | At the fundamental level, HI decouples the internetworking | |||
| multi-homing easier by separating the transport layer and | layer from the transport layer, allowing each to evolve | |||
| internetworking layer from each other. Among other things, | separately. At the same time, the decoupling makes end-host | |||
| this allows mobility and multi-homing across the IPv4 and IPv6 | mobility and multi-homing easier. It also allows mobility and | |||
| internets. Host Identifiers also make network re-numbering | multi-homing across the IPv4 and IPv6 networks. HIs make | |||
| easier. At the conceptual level, they also make process | network renumbering easier. At the conceptual level, they | |||
| migration and clustered servers easier to implement. | also make process migration and clustered servers easier to | |||
| Furthermore, being cryptographic in nature, they also provide | implement. Furthermore, being cryptographic in nature, they | |||
| the basis for solving the security problems related to | provide the basis for solving the security problems related to | |||
| end-host mobility and multi-homing. | end-host mobility and multi-homing. | |||
| 2. What does a stack name look like? | 2. What does a stack name look like? | |||
| A HIP Host Identifier is a cryptographic public key. However, | A HI is a cryptographic public key. However, instead of using | |||
| instead of using the keys directly, most protocols use a fixed | the keys directly, most protocols use a fixed size hash of the | |||
| size hash of the public key. | public key. | |||
| 3. What is its lifetime? | 3. What is its lifetime? | |||
| HIP provides both stable and temporary Host Identifiers. | HIP provides both stable and temporary Host Identifiers. | |||
| Stable Host Identifiers are typically long lived, with a | Stable HIs are typically long lived, with a lifetime of years | |||
| lifetime of years or more. The lifetime of temporary Host | or more. The lifetime of temporary HIs depends on how long | |||
| Identifiers depends on how long the upper layer connections | the upper layer connections and applications need them, and | |||
| and applications need them, and can range from a few seconds | can range from a few seconds to years. | |||
| to years. | ||||
| 4. Where does it live in the stack? | 4. Where does it live in the stack? | |||
| The HIs live between the transport and internetworking layers. | ||||
| The HIP Host Identifiers live between the transport and | ||||
| internetworking layers. | ||||
| 5. How is it used on the end points | 5. How is it used on the end points | |||
| The HIP Host Identifiers, in the form of HITs or LSIs, are | The Host Identifiers, in the form of HITs or LSIs, are used by | |||
| used by legacy applications as if they were IP addresses. | legacy applications as if they were IP addresses. | |||
| Additionally, the Host Identifiers, as public keys, are used | Additionally, the Host Identifiers, as public keys, are used | |||
| in a built in key agreement protocol to authenticate the | in the built in key agreement protocol, called the HIP base | |||
| Diffie-Hellman key exchange. | exchange, to authenticate the hosts to each other. | |||
| 6. What administrative infrastructure is needed to support it? | 6. What administrative infrastructure is needed to support it? | |||
| It is possible to use HIP opportunistically, without any | It is possible to use HIP opportunistically, without any | |||
| infrastructure. However, to gain full benefit from HIP, the | infrastructure. However, to gain full benefit from HIP, the | |||
| Host Identifiers must be stored in the DNS, and a new | HIs must be stored in the DNS or a PKI, and a new | |||
| infrastructure of Rendezvous servers is needed. | infrastructure of rendezvous servers is needed. | |||
| 7. If we add an additional layer would it make the address list in | 7. If we add an additional layer would it make the address list in | |||
| SCTP unnecessary? | SCTP unnecessary? | |||
| Yes | Yes | |||
| 8. What additional security benefits would a new naming scheme | 8. What additional security benefits would a new naming scheme | |||
| offer? | offer? | |||
| HIP reduces dependency on IP addresses, making the so called | HIP reduces dependency on IP addresses, making the so called | |||
| address ownership problems easier to solve. In practice, HIP | address ownership problems easier to solve. In practice, HIP | |||
| provides security for end-host mobility and multi-homing. | provides security for end-host mobility and multi-homing. | |||
| Furthermore, since HIP Host Identifiers are public keys, | Furthermore, since HIP Host Identifiers are public keys, | |||
| standard public key certificate infrastructures can be applied | standard public key certificate infrastructures can be applied | |||
| on the top of HIP. | on the top of HIP. | |||
| 9. What would the resolution mechanisms be, or what characteristics | 9. What would the resolution mechanisms be, or what characteristics | |||
| of a resolution mechanisms would be required? | of a resolution mechanisms would be required? | |||
| For most purposes, an approach where DNS names are resolved | For most purposes, an approach where DNS names are resolved | |||
| simultaneously to Host Identifiers and IP addresses is | simultaneously to HIs and IP addresses is sufficient. | |||
| sufficient. However, if it becomes necessary to resolve Host | However, if it becomes necessary to resolve HIs into IP | |||
| Identifiers into IP addresses or back to DNS names, a flat, | addresses or back to DNS names, a flat, hash based resolution | |||
| hash based resolution infrastructure is needed. Such an | infrastructure is needed. Such an infrastructure could be | |||
| infrastructure could be based on the ideas of Distributed Hash | based on the ideas of Distributed Hash Tables, but would | |||
| Tables, but would require significant new development and | require significant new development and deployment. | |||
| deployment. | ||||
| 9. Security Considerations | 10. Security Considerations | |||
| HIP takes advantage of the new Host Identity paradigm to provide | HIP takes advantage of the new Host Identity paradigm to provide | |||
| secure authentication of hosts and provide a fast key exchange for | secure authentication of hosts and to provide a fast key exchange for | |||
| IPsec ESP. HIP also attempts to limit the exposure of the host to | IPsec. HIP also attempts to limit the exposure of the host to | |||
| various denial-of-service (DoS) and man-in-the-middle (MitM) attacks. | various denial-of-service (DoS) and man-in-the-middle (MitM) attacks. | |||
| In so doing, HIP itself is subject to its own DoS and MitM attacks | In so doing, HIP itself is subject to its own DoS and MitM attacks | |||
| that potentially could be more damaging to a host's ability to | that potentially could be more damaging to a host's ability to | |||
| conduct business as usual. | conduct business as usual. | |||
| The Security Association for ESP is indexed by the SPI; the source | Resource exhausting Denial-of-service attacks take advantage of the | |||
| address is always ignored, and the destination address may be ignored | cost of setting up a state for a protocol on the responder compared | |||
| as well. Therefore, HIP enabled ESP is IP address independent. This | to the 'cheapness' on the initiator. HIP allows a responder to | |||
| might seem to make it easier for an attacker, but ESP with replay | increase the cost of the start of state on the initiator and makes an | |||
| protection is already as well protected as possible, and the removal | effort to reduce the cost to the responder. This is done by having | |||
| of the IP address as a check should not increase the exposure of ESP | the responder start the authenticated Diffie-Hellman exchange instead | |||
| to DoS attacks. | of the initiator, making the HIP base exchange 4 packets long. There | |||
| are more details on this process in the Host Identity Protocol | ||||
| Denial-of-service attacks take advantage of the cost of setting up a | specification [4]. | |||
| state for a protocol on the responder compared to the 'cheapness' on | ||||
| the initiator. HIP both allows to increase the cost of the start of | ||||
| state on the initiator and makes an effort to reduce the cost to the | ||||
| responder. This is done by having the responder start the | ||||
| authenticated Diffie-Hellman protocol instead of the initiator, | ||||
| making the HIP protocol 4 packets long. There are more details on | ||||
| this process in the HIP protocol specification [5]. | ||||
| HIP optionally supports opportunistic negotiation. That is, if a | HIP optionally supports opportunistic negotiation. That is, if a | |||
| host receives a start of transport without a HIP negotiation, it can | host receives a start of transport without a HIP negotiation, it can | |||
| attempt to force a HIP exchange before accepting the connection. | attempt to force a HIP exchange before accepting the connection. | |||
| This has the potential for DoS attacks against both hosts. If the | 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 | 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 | attacker need only spoof a TCP SYN. This would put both systems into | |||
| the expensive operations. HIP avoids this attack by having the | the expensive operations. HIP avoids this attack by having the | |||
| responder send a simple HIP packet that it can pre-build. Since this | responder send a simple HIP packet that it can pre-build. Since this | |||
| packet is fixed and easily spoofed, the initiator only reacts to it | packet is fixed and easily replayed, the initiator only reacts to it | |||
| if it has just started a connection to the responder. | if it has just started a connection to the responder. | |||
| Man-in-the-middle attacks are difficult to defend against, without | Man-in-the-middle attacks are difficult to defend against, without | |||
| third-party authentication. A skillful MitM could easily handle all | third-party authentication. A skillful MitM could easily handle all | |||
| parts of the HIP protocol, but HIP indirectly provides the following | parts of the HIP base exchange, but HIP indirectly provides the | |||
| protection from a MitM attack. If the responder's HI is retrieved | following protection from a MitM attack. If the responder's HI is | |||
| from a signed DNS zone or secured by some other means by the | retrieved from a signed DNS zone or secured by some other means, the | |||
| initiator, the initiator can use this to validate the signed HIP | initiator can use this to authenticate the signed HIP packets. | |||
| packets. | ||||
| Likewise, if the initiator's HI is in a secure DNS zone, the | Likewise, if the initiator's HI is in a secure DNS zone, the | |||
| responder can retrieve it and validate the signed HIP packets. | responder can retrieve it and validate the signed HIP packets. | |||
| However, since an initiator may choose to use an anonymous HI, it | However, since an initiator may choose to use an anonymous HI, it | |||
| knowingly risks a MitM attack. The responder may choose not to | knowingly risks a MitM attack. The responder may choose not to | |||
| accept a HIP exchange with an anonymous initiator. | accept a HIP exchange with an anonymous initiator. | |||
| Since not all hosts will ever support HIP, ICMP 'Destination Protocol | In HIP, the Security Association for IPsec is indexed by the SPI; the | |||
| Unreachable' are to be expected and present a DoS attack. Against an | source address is always ignored, and the destination address may be | |||
| initiator, the attack would look like the responder does not support | ignored as well. Therefore, HIP enabled IPsec Encapsulated Security | |||
| HIP, but shortly after receiving the ICMP message, the initiator | Payload (ESP) is IP address independent. This might seem to make it | |||
| would receive a valid HIP packet. Thus, to protect against this | easier for an attacker, but ESP with replay protection is already as | |||
| attack, an initiator should not react to an ICMP message until a | well protected as possible, and the removal of the IP address as a | |||
| reasonable delta time to get the real responder's HIP packet. A | check should not increase the exposure of IPsec ESP to DoS attacks. | |||
| similar attack against the responder is more involved. | ||||
| Another MitM attack is simulating a responder's rejection of a HIP | Since not all hosts will ever support HIP, ICMPv4 'Destination | |||
| initiation. This is a simple ICMP Protocol Unreachable, | Unreachable, Protocol Unreachable' and ICMPv6 'Parameter Problem, | |||
| Administratively Prohibited message. A HIP packet is not used | Unrecognized Next Header' messages are to be expected and present a | |||
| because it would either have to have unique content, and thus | DoS attack. Against an initiator, the attack would look like the | |||
| difficult to generate, resulting in yet another DoS attack, or just | responder does not support HIP, but shortly after receiving the ICMP | |||
| as spoofable as the ICMP message. The defense against this MitM | message, the initiator would receive a valid HIP packet. Thus, to | |||
| attack is for the responder to wait a reasonable time period to get a | protect against this attack, an initiator should not react to an ICMP | |||
| valid HIP packet. If one does not come, then the Initiator has to | message until a reasonable time has passed, allowing it to get the | |||
| assume that the ICMP message is valid. Since this is the only point | real responder's HIP packet. A similar attack against the responder | |||
| in the HIP exchange where this ICMP message is appropriate, it can be | is more involved. | |||
| ignored at any other point in the exchange. | ||||
| 9.1 HITs used in ACLs | Another MitM attack is simulating a responder's administrative | |||
| rejection of a HIP initiation. This is a simple ICMP 'Destination | ||||
| Unreachable, Administratively Prohibited' message. A HIP packet is | ||||
| not used because it would either have to have unique content, and | ||||
| thus difficult to generate, resulting in yet another DoS attack, or | ||||
| just as spoofable as the ICMP message. Like in the previous case, | ||||
| the defense against this attack is for the initiator to wait a | ||||
| reasonable time period to get a valid HIP packet. If one does not | ||||
| come, then the initiator has to assume that the ICMP message is | ||||
| valid. Since this is the only point in the HIP base exchange where | ||||
| this ICMP message is appropriate, it can be ignored at any other | ||||
| point in the exchange. | ||||
| 10.1 HITs used in ACLs | ||||
| It is expected that HITs will be used in ACLs. Future firewalls can | It is expected that HITs will be used in ACLs. Future firewalls can | |||
| use HITs to control egress and ingress to networks, with an assurance | use HITs to control egress and ingress to networks, with an assurance | |||
| difficult to achieve today. | level difficult to achieve today. As discussed above in Section 6, | |||
| once a HIP session has been established, the SPI value in an IPsec | ||||
| packet may be used as an index, indicating the HITs. In practise, | ||||
| the firewalls can inspect the HIP packets to learn of the bindings | ||||
| between HITs, SPI values, and IP addresses. They can even explicitly | ||||
| control IPsec usage, dynamically opening IPsec ESP only for specific | ||||
| SPI values and IP addresses. The signatures in the HIP packets allow | ||||
| a capable firewall to make sure that the HIP exchange is indeed | ||||
| happening between two known hosts. This may increase firewall | ||||
| security. | ||||
| There has been considerable bad experience with distributed ACLs that | There has been considerable bad experience with distributed ACLs that | |||
| contain public key related material, for example, with SSH. If the | contain public key related material, for example, with SSH. If the | |||
| owner of the key needs to revoke it for any reason, the task of | owner of the key needs to revoke it for any reason, the task of | |||
| finding all locations where the key is held in an ACL may be | finding all locations where the key is held in an ACL may be | |||
| impossible. If the reason for the revocation is due to private key | impossible. If the reason for the revocation is due to private key | |||
| theft, this could be a serious issue. | theft, this could be a serious issue. | |||
| A host can keep track of all of its partners that might use its HIT | A host can keep track of all of its partners that might use its HIT | |||
| in an ACL by logging all remote HITs. It should only be necessary to | in an ACL by logging all remote HITs. It should only be necessary to | |||
| log responder hosts. With this information, the host can notify the | log responder hosts. With this information, the host can notify the | |||
| various hosts about the change to the HIT. There has been no attempt | various hosts about the change to the HIT. There has been no attempt | |||
| here to develop a secure method (like in CMP and CMC) to issue the | to develop a secure method (like in CMP and CMC) to issue the HIT | |||
| HIT revocation notice. | revocation notice. | |||
| NATs, however, are transparent to the HIP aware systems by design. | 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 | 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 | 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 | 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 | 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 | 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 | notified of a change in a HIT of an initiator, it should notify its | |||
| NAT of the change. In this manner, NATs will get updated with the | NAT of the change. In this manner, NATs will get updated with the | |||
| HIT change. | HIT change. | |||
| 9.2 Non-security Considerations | 10.2 Non-security Considerations | |||
| The definition of the Host Identifier states that the HI need not be | The definition of the Host Identifier states that the HI need not be | |||
| a public key. It implies that the HI could be any value; for example | a public key. It implies that the HI could be any value; for example | |||
| an FQDN. This document does not describe how to support a | an FQDN. This document does not describe how to support such a | |||
| non-cryptographic HI. Such a HI would still offer the services of | non-cryptographic HI. A non-cryptographic HI would still offer the | |||
| the HIT or LSI for NAT traversal. It would carry the HITs or LSIs in | services of the HIT or LSI for NAT traversal. It would be possible | |||
| a HIP packets that had neither privacy nor authentication. Since | carry the HITs in HIP packets that had neither privacy nor | |||
| such a mode would offer so little additional functionality for so | authentication. Since such a mode would offer so little additional | |||
| much addition to the IP kernel, it has not been defined. Given how | functionality for so much addition to the IP kernel, it has not been | |||
| little public key cryptography HIP requires, HIP should only be | defined. Given how little public key cryptography HIP requires, HIP | |||
| implemented using public key Host Identities. | should only be implemented using public key Host Identities. | |||
| 10. Acknowledgments | If it is desirable to use HIP in a low security situation where | |||
| public key computations are considered expensive, HIP can be used | ||||
| with very short Diffie-Hellman and Host Identity keys. Such use | ||||
| makes the participating hosts vulnerable to MitM and connection | ||||
| hijacking attacks. However, it does not cause flooding dangers, | ||||
| since the address check mechanism relies on the routing system and | ||||
| not on cryptographic strength. | ||||
| 11. Acknowledgments | ||||
| For the people historically involved in the early stages of HIP, see | For the people historically involved in the early stages of HIP, see | |||
| the Acknowledgements section in [5]. | the Acknowledgements section in the Host Identity Protocol | |||
| specification [4]. | ||||
| During the later stages of this document, when the editing baton was | During the later stages of this document, when the editing baton was | |||
| transfered to Pekka Nikander, the comments from the early | transfered to Pekka Nikander, the comments from the early | |||
| implementors and others, including Jari Arkko, Tom Henderson, Petri | implementors and others, including Jari Arkko, Tom Henderson, Petri | |||
| Jokela, Miika Komu, Mika Kousa, Andrew McGregor, Jan Melen, Tim | Jokela, Miika Komu, Mika Kousa, Andrew McGregor, Jan Melen, Tim | |||
| Shepard, Jukka Ylitalo, and Jorma Wall, were invaluable. | Shepard, Jukka Ylitalo, and Jorma Wall, were invaluable. | |||
| References (informative) | References (informative) | |||
| [1] Bradner, S., "Key words for use in RFCs to Indicate Requirement | [1] Tsirtsis, G. and P. Srisuresh, "Network Address Translation - | |||
| Levels", BCP 14, RFC 2119, March 1997. | ||||
| [2] Tsirtsis, G. and P. Srisuresh, "Network Address Translation - | ||||
| Protocol Translation (NAT-PT)", RFC 2766, February 2000. | Protocol Translation (NAT-PT)", RFC 2766, February 2000. | |||
| [3] Srisuresh, P. and K. Egevang, "Traditional IP Network Address | [2] Srisuresh, P. and K. Egevang, "Traditional IP Network Address | |||
| Translator (Traditional NAT)", RFC 3022, January 2001. | Translator (Traditional NAT)", RFC 3022, January 2001. | |||
| [4] Borella, M., Lo, J., Grabelsky, D. and G. Montenegro, "Realm | [3] Borella, M., Lo, J., Grabelsky, D. and G. Montenegro, "Realm | |||
| Specific IP: Framework", RFC 3102, October 2001. | Specific IP: Framework", RFC 3102, October 2001. | |||
| [5] Moskowitz, R., Nikander, P. and P. Jokela, "Host Identity | [4] Moskowitz, R., Nikander, P. and P. Jokela, "Host Identity | |||
| Protocol", draft-moskowitz-hip-07 (work in progress), June 2003. | Protocol", draft-moskowitz-hip-07 (work in progress), June 2003. | |||
| [6] Richardson, M., "A method for storing IPsec keying material in | [5] Richardson, M., "A method for storing IPsec keying material in | |||
| DNS", draft-ietf-ipseckey-rr-07 (work in progress), September | DNS", draft-ietf-ipseckey-rr-07 (work in progress), September | |||
| 2003. | 2003. | |||
| [7] Lear, E. and R. Droms, "What's In A Name:Thoughts from the | [6] Lear, E. and R. Droms, "What's In A Name:Thoughts from the | |||
| NSRG", draft-irtf-nsrg-report-10 (work in progress), September | NSRG", draft-irtf-nsrg-report-10 (work in progress), September | |||
| 2003. | 2003. | |||
| [7] Nikander, P., "End-Host Mobility and Multi-Homing with Host | ||||
| Identity Protocol", draft-nikander-hip-mm-00 (work in progress), | ||||
| June 2003. | ||||
| [8] Nikander, P., "Mobile IP version 6 Route Optimization Security | [8] Nikander, P., "Mobile IP version 6 Route Optimization Security | |||
| Design Background", draft-nikander-mobileip-v6-ro-sec-01 (work | Design Background", draft-nikander-mobileip-v6-ro-sec-01 (work | |||
| in progress), July 2003. | in progress), July 2003. | |||
| [9] Chiappa, J., "Endpoints and Endpoint Names: A Proposed | [9] Chiappa, J., "Endpoints and Endpoint Names: A Proposed | |||
| Enhancement to the Internet Architecture", URL http:// | Enhancement to the Internet Architecture", URL http:// | |||
| users.exis.net/~jnc/tech/endpoints.txt, 1999. | users.exis.net/~jnc/tech/endpoints.txt, 1999. | |||
| Authors' Addresses | Authors' Addresses | |||
| End of changes. 87 change blocks. | ||||
| 286 lines changed or deleted | 361 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/ | ||||