draft-ietf-hip-applications-02.txt | draft-ietf-hip-applications-03.txt | |||
---|---|---|---|---|
Network Working Group T. Henderson | Network Working Group T. Henderson | |||
Internet-Draft The Boeing Company | Internet-Draft The Boeing Company | |||
Intended status: Informational P. Nikander | Intended status: Informational P. Nikander | |||
Expires: May 21, 2008 Ericsson Research NomadicLab | Expires: December 30, 2008 Ericsson Research NomadicLab | |||
M. Komu | M. Komu | |||
Helsinki Institute for Information | Helsinki Institute for Information | |||
Technology | Technology | |||
November 18, 2007 | June 28, 2008 | |||
Using the Host Identity Protocol with Legacy Applications | Using the Host Identity Protocol with Legacy Applications | |||
draft-ietf-hip-applications-02 | draft-ietf-hip-applications-03 | |||
Status of this Memo | Status of this Memo | |||
By submitting this Internet-Draft, each author represents that any | By submitting this Internet-Draft, each author represents that any | |||
applicable patent or other IPR claims of which he or she is aware | applicable patent or other IPR claims of which he or she is aware | |||
have been or will be disclosed, and any of which he or she becomes | have been or will be disclosed, and any of which he or she becomes | |||
aware will be disclosed, in accordance with Section 6 of BCP 79. | aware will be disclosed, in accordance with Section 6 of BCP 79. | |||
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 | Task Force (IETF), its areas, and its working groups. Note that | |||
skipping to change at page 1, line 38 | skipping to change at page 1, line 38 | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
The list of current Internet-Drafts can be accessed at | The list of current Internet-Drafts can be accessed at | |||
http://www.ietf.org/ietf/1id-abstracts.txt. | http://www.ietf.org/ietf/1id-abstracts.txt. | |||
The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
This Internet-Draft will expire on May 21, 2008. | This Internet-Draft will expire on December 30, 2008. | |||
Copyright Notice | ||||
Copyright (C) The IETF Trust (2007). | ||||
Abstract | Abstract | |||
This document is an informative overview of how legacy applications | This document is an informative overview of how legacy applications | |||
can be made to work with the Host Identity Protocol (HIP). HIP | can be made to work with the Host Identity Protocol (HIP). HIP | |||
proposes to add a cryptographic name space for network stack names. | proposes to add a cryptographic name space for network stack names. | |||
From an application viewpoint, HIP-enabled systems support a new | From an application viewpoint, HIP-enabled systems support a new | |||
address family of host identifiers, but it may be a long time until | address family of host identifiers, but it may be a long time until | |||
such HIP-aware applications are widely deployed even if host systems | such HIP-aware applications are widely deployed even if host systems | |||
are upgraded. This informational document discusses implementation | are upgraded. This informational document discusses implementation | |||
and Application Programming Interface (API) issues relating to using | and Application Programming Interface (API) issues relating to using | |||
HIP in situations in which the system is HIP-aware but the | HIP in situations in which the system is HIP-aware but the | |||
applications are not, and is intended to aid implementors and early | applications are not, and is intended to aid implementors and early | |||
adopters in thinking about and locally solving systems issues | adopters in thinking about and locally solving systems issues | |||
regarding the incremental deployment of HIP. | regarding the incremental deployment of HIP. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
3. Approaches for supporting legacy applications . . . . . . . . 5 | 3. Enabling HIP transparently within the system . . . . . . . . . 6 | |||
3.1. Using IP addresses in applications . . . . . . . . . . . . 5 | 3.1. Applying HIP to cases in which IP addresses are used . . . 6 | |||
3.2. Using DNS to map domain names to HIs . . . . . . . . . . . 7 | 3.2. Interposing a HIP-aware agent in the DNS resolution . . . 7 | |||
3.3. Connecting directly to a HIT . . . . . . . . . . . . . . . 8 | 3.3. Discussion . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
3.4. Local address management . . . . . . . . . . . . . . . . . 9 | 4. Users Invoking HIP with a Legacy Application . . . . . . . . . 10 | |||
4. Security Considerations . . . . . . . . . . . . . . . . . . . 11 | 4.1. Connecting to a HIT or LSI . . . . . . . . . . . . . . . . 10 | |||
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 | 4.2. Using a modified DNS name . . . . . . . . . . . . . . . . 10 | |||
6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 13 | 4.3. Other techniques . . . . . . . . . . . . . . . . . . . . . 11 | |||
7. Informative References . . . . . . . . . . . . . . . . . . . . 14 | 5. Local address management . . . . . . . . . . . . . . . . . . . 12 | |||
Appendix A. Changes from previous versions . . . . . . . . . . . 15 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 14 | |||
A.1. From version-01 to version-02 (current) . . . . . . . . . 15 | 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 17 | 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
Intellectual Property and Copyright Statements . . . . . . . . . . 18 | 9. Informative References . . . . . . . . . . . . . . . . . . . . 18 | |||
Appendix A. Changes from previous versions . . . . . . . . . . . 19 | ||||
A.1. From version-01 to version-02 . . . . . . . . . . . . . . 19 | ||||
A.2. From version-02 to version-03 (current) . . . . . . . . . 20 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 21 | ||||
Intellectual Property and Copyright Statements . . . . . . . . . . 22 | ||||
1. Introduction | 1. Introduction | |||
The Host Identity Protocol (HIP) [1] is an experimental effort in the | The Host Identity Protocol (HIP) [RFC5201] is an experimental effort | |||
IETF and IRTF to study a new public-key-based name space for use as | in the IETF and IRTF to study a new public-key-based name space for | |||
host identifiers in Internet protocols. Fully deployed, the HIP | use as host identifiers in Internet protocols. Fully deployed, the | |||
architecture would permit applications to explicitly request the | HIP architecture would permit applications and users to explicitly | |||
system to send packets to another host by expressing a location- | request the system to send packets to another host by expressing a | |||
independent name of the host when the system call to send packets is | location-independent unique name of a peer host when the system call | |||
performed. However, there will be a transition period during which | to connect or send packets is performed. However, there will be a | |||
systems become HIP-enabled but applications are not. This | transition period during which systems become HIP-enabled but | |||
informational document does not propose normative specification or | applications are not. This informational document does not propose | |||
even suggest that different HIP implementations use more uniform | normative specification or even suggest that different HIP | |||
methods for legacy application support, but is intended instead to | implementations use more uniform methods for legacy application | |||
aid implementors and early adopters in thinking about and solving | support, but is intended instead to aid implementors and early | |||
systems issues regarding the incremental deployment of HIP. | adopters in thinking about and solving systems issues regarding the | |||
incremental deployment of HIP. | ||||
When applications and systems are both HIP-aware, the coordination | When applications and systems are both HIP-aware, the coordination | |||
between the application and the system can be straightforward. For | between the application and the system can be straightforward. For | |||
example, using the terminology of the widely used sockets Application | example, using the terminology of the widely used sockets Application | |||
Programming Interface (API), the application can issue a system call | Programming Interface (API), the application can issue a system call | |||
to send packets to another host by naming it explicitly, and the | to send packets to another host by naming it explicitly, and the | |||
system can perform the necessary name-to-address mapping to assign | system can perform the necessary name-to-address mapping to assign | |||
appropriate routable addresses to the packets. To enable this, a new | appropriate routable addresses to the packets. To enable this, a new | |||
address family for hosts could be defined, and additional API | address family for hosts could be defined, and additional API | |||
extensions could be defined (such as allowing IP addresses to be | extensions could be defined (such as allowing IP addresses to be | |||
passed in the system call, along with the host name, as hints of | passed in the system call, along with the host name, as hints of | |||
where to initially try to reach the host). | where to initially try to reach the host). | |||
This document does not define a native HIP API such as described | This document does not define a native HIP API such as described | |||
above. Rather, this document is concerned with the scenario in which | above. Rather, this document is concerned with the scenario in which | |||
the application is not HIP-aware and a traditional IP-address-based | the application is not HIP-aware and a traditional IP-address-based | |||
API is used by the application. To use HIP in such a situation, | API is used by the application. | |||
there are a few basic possibilities: i) allow applications to use IP | ||||
addresses as before, and provide a mapping from IP address to host | ||||
identifier (and back to IP address) within the system, ii) take | ||||
advantage of domain name resolution to provide the application with | ||||
either an alias for the host identifier or (in the case of IPv6) the | ||||
host identity tag (HIT) itself, and iii) support the use of HITs | ||||
directly (without prior DNS resolution) in place of IPv6 addresses. | ||||
This document describes several variations of the above strategies | ||||
and points out tradeoffs with each approach. | ||||
When HITs are used (rather than IP addresses) as peer names at the | The discussion so far assumes that applications are written directly | |||
system API level, they can provide a type of "channel binding" in | to a sockets API. However, many applications are built on top of | |||
that the Encapsulating Security Payload (ESP) association formed by | middleware that exports a higher-level API to the application. In | |||
HIP is cryptographically bound to the name (HIT) invoked by the | this case, for the purpose of this document, we refer to the | |||
calling application. | combination of the middleware and the middleware- based application | |||
as an overall application, or client of the sockets API. | ||||
When HIP is enabled on a system, but the applications are not HIP- | ||||
aware, there are a few basic possibilities to use HIP, each of which | ||||
may or may not be supported by a given HIP implementation. We report | ||||
here on techniques that have been used or considered by experimental | ||||
HIP implementations. We organize the discussion around the policy | ||||
chosen to use or expose HIP to the applications. The first option is | ||||
that users are completely unaware of HIP, or are unable to control | ||||
whether or not HIP is invoked, but rather the system chooses to | ||||
enable HIP for some or all sessions based on policy. The second | ||||
option is that the user makes a decision to try to use HIP by | ||||
conveying this information somehow within the constraints of the | ||||
unmodified application. We discuss both of these use cases in detail | ||||
below. | ||||
HIP was designed to work with unmodified applications, to ease | ||||
incremental deployment. For instance, the HIT is the same size as | ||||
the IPv6 address, and the design thinking was that, during initial | ||||
experiments and transition periods, the HITs could substitute in data | ||||
structures where IPv6 addresses were expected. However, to a varying | ||||
degree depending on the mechanism employed, such use of HIP can alter | ||||
the semantics of what is considered to be an IP address by | ||||
applications. Applications use IP addresses as short-lived local | ||||
handles, long-lived application associations, callbacks, referrals, | ||||
and identity comparisons. The transition techniques described below | ||||
have implications on these different uses of IP addresses by legacy | ||||
applications, and we will try to clarify these implications in the | ||||
below discussions. | ||||
2. Terminology | 2. Terminology | |||
Callback: The application at one end retrieves the IP address of | ||||
the peer and uses that to later communicate "back" to the peer. | ||||
An example is the FTP PORT command. | ||||
Host Identity: An abstract concept applied to a computing platform. | Host Identity: An abstract concept applied to a computing platform. | |||
Host Identifier (HI): A public key of an asymmetric key pair used as | Host Identifier (HI): A public key of an asymmetric key pair used as | |||
a name for a Host Identity. More details are available in [1]. | a name for a Host Identity. More details are available in | |||
[RFC5201]. | ||||
Host Identity Tag (HIT): A 128-bit quantity composed with the hash | Host Identity Tag (HIT): A 128-bit quantity composed with the hash | |||
of a Host Identity. More details are available in [2] and [1]. | of a Host Identity. More details are available in [RFC4843] and | |||
[RFC5201]. | ||||
Local Scope Identifier (LSI): A 32- or 128-bit quantity locally | Local Scope Identifier (LSI): A 32- or 128-bit quantity locally | |||
representing the Host Identity at the IPv4 or IPv6 API. | representing the Host Identity at the IPv4 or IPv6 API. | |||
Referral: An event when the application passes what it believes to | Referral: In an application with more than two parties, party B | |||
be an IP address to another application instance on another host, | takes the IP address of party A and passes that to party C. After | |||
within its application data stream. An example is the FTP PORT | this party C uses the IP address to communicate with A. | |||
command. | ||||
Resolver: The system function used by applications to resolve domain | Resolver: The system function used by applications to resolve domain | |||
names to IP addresses. | names to IP addresses. | |||
3. Approaches for supporting legacy applications | Short-lived local handle: The IP addresses is never retained by the | |||
application. The only usage is for the application to pass it | ||||
from the DNS APIs (e.g., getaddrinfo()) and the API to the | ||||
protocol stack (e.g., connect() or sendto()). | ||||
This section provides examples of how legacy applications, using | Long-lived application associations: The IP address is retained by | |||
legacy APIs, can operate on a HIP-enabled system and use HIP. The | the application for several instances of communication. | |||
examples are organized by the name used by an application (or | ||||
application user) to name the peer system: an IP address, a domain | ||||
name, or a HIT. Finally, some local address management issues are | ||||
discussed. | ||||
Applications use IP addresses as short-lived local handles, long- | 3. Enabling HIP transparently within the system | |||
lived application associations, callbacks, referrals, and identity | ||||
comparisons. Each of the below mechanisms has implications on these | ||||
different uses of IP addresses by legacy applications. | ||||
3.1. Using IP addresses in applications | When both users and applications are unaware of HIP, but the host | |||
administrator chooses to use HIP between hosts, a few options are | ||||
possible. The first basic option is to perform a mapping of the | ||||
application-provided IP address to a host identifier within the | ||||
stack. The second option, if DNS is used, is to interpose a local | ||||
agent in the DNS resolution process and to return to the application | ||||
a HIT or a locally scoped handle, formatted like an IP address. | ||||
3.1. Applying HIP to cases in which IP addresses are used | ||||
Consider the case in which an application issues a "connect(ip)" | Consider the case in which an application issues a "connect(ip)" | |||
system call to set the default destination to a system named by | system call to set the default destination to a system named by | |||
address "ip", but for which we would like to enable HIP to protect | address "ip", but for which the host administrator would like to | |||
the communications. Since the application or user can not indicate a | enable HIP to protect the communications. The user or application | |||
desire to use HIP through the standard sockets API when IP addresses | intends for the system to communicate with the host reachable at that | |||
are used, the decision to invoke HIP must be done on the basis of | IP address. The decision to invoke HIP must be done on the basis of | |||
host policy. For example, when an IPsec-based implementation of HIP | host policy. For example, when an IPsec-based implementation of HIP | |||
is being used, a policy may be entered into the security policy | is being used, a policy may be entered into the security policy | |||
database that mandates to use or try HIP based on a match on the | database that mandates to use or to try HIP based on a match on the | |||
source or destination IP address, or other factors. The mapping of | source or destination IP address, port numbers, or other factors. | |||
IP address to host identifier may be implemented by modifying the | The mapping of IP address to host identifier may be implemented by | |||
host operating system or by wrapping the existing sockets API, such | modifying the host operating system or by wrapping the existing | |||
as in the TESLA approach [3]. | sockets API, such as in the TESLA approach [paper.tesla]. | |||
There are a number of ways that HIP could be used in such a scenario. | There are a number of ways that HIP could be configured by the host | |||
administrator in such a scenario. | ||||
Manual configuration: | Manual configuration: | |||
Pre-existing SAs may be available due to previous administrative | Pre-existing SAs may be available due to previous administrative | |||
action, or a binding between an IP address and a HIT could be | action, or a binding between an IP address and a HIT could be | |||
stored in a configuration file or database. | stored in a configuration file or database. | |||
Opportunistically: | Opportunistically: | |||
The system could send an I1 to the Responder with an empty value | The system could send an I1 to the Responder with an empty value | |||
for Responder HIT. | for Responder HIT. | |||
Using DNS to map IP addresses to HIs: | Using DNS to map IP addresses to HIs: | |||
If the responder has host identifiers registered in the forward | If the responder has host identifiers registered in the forward | |||
DNS zone and has a PTR record in the reverse zone, the Initiator | DNS zone and has a PTR record in the reverse zone, the Initiator | |||
could perform a reverse+forward lookup to learn the HIT associated | could perform a reverse+forward lookup to learn the HIT associated | |||
with the address. Although the approach should work under normal | with the address. Although the approach should work under normal | |||
circumstances, it has not been tested to verify that there are no | circumstances, it has not been tested to verify that there are no | |||
recursion or bootstrapping issues, particularly if HIP is used to | recursion or bootstrapping issues, particularly if HIP is used to | |||
secure the connection to the DNS servers. Unless secured with DNS | secure the connection to the DNS servers. Discussion of the | |||
security extensions, the use of the reverse DNS map is subject to | security implications of the use or absence of DNSSEC is deferred | |||
well-known security limitations (an attacker may cause an | to the security considerations section. | |||
incorrect IP address to domain name binding to occur). | ||||
Using the opportunistic mode or using DNS in the above fashion can | Using HIP in the above fashion can cause additional setup delays | |||
cause additional setup delays compared to using plain IP. For | compared to using plain IP. For opportunistic mode, a host must wait | |||
opportunistic mode, a host must wait to learn whether the peer is | to learn whether the peer is HIP-capable, although the delays may be | |||
HIP-capable, although the delays may be mitigated in some | mitigated in some implementations by sending initial packets (e.g., | |||
implementations by sending initial packets (e.g., TCP SYN) in | TCP SYN) in parallel to the HIP I1 packet and waiting some time to | |||
parallel to the HIP I1 packet. For DNS lookups, there are resolution | receive a HIP R1 before processing a TCP SYN/ACK. Note that there | |||
latencies. | presently does not exist specification for how to invoke such | |||
connections in parallel. Resolution latencies may also be incurred | ||||
when using DNS in the above fashion. | ||||
A possible way to reduce latencies noted above, in the case that the | ||||
application uses DNS, would be for the system to opportunistically | ||||
query for HIP records in parallel to other DNS resource records, and | ||||
to temporarily cache the HITs returned with a DNS lookup, indexed by | ||||
the IP addresses returned in the same entry, and pass the IP | ||||
addresses up to the application as usual. If an application connects | ||||
to one of those IP addresses within a short time after the lookup, | ||||
the host should initiate a base exchange using the cached HITs. The | ||||
benefit is that this removes the uncertainty/delay associated with | ||||
opportunistic HIP, because the DNS record suggests that the peer is | ||||
HIP-capable. | ||||
3.2. Interposing a HIP-aware agent in the DNS resolution | ||||
In the previous section, it was noted that a HIP-unaware application | ||||
might typically use the DNS to fetch IP addresses prior to invoking | ||||
socket calls. A HIP-enabled system might make use of DNS to | ||||
transparently fetch host identifiers for such domain names prior to | ||||
the onset of communication. | ||||
A system with a local DNS agent could alternately return a Local | ||||
Scope Identifier (LSI) or HIT rather than an IP address, if HIP | ||||
information is available in the DNS or other directory that binds a | ||||
particular domain name to a host identifier, and otherwise to return | ||||
an IP address as usual. The system can then maintain a mapping | ||||
between LSI and host identifier and perform the appropriate | ||||
conversion at the system call interface or below. The application | ||||
uses the LSI or HIT as it would an IP address. This technique has | ||||
been used in overlay networking experiments such as the Internet | ||||
Indirection Infrastructure (i3) and by at least one HIP | ||||
implementation. | ||||
In the case when resolvers can return multiple destination | ||||
identifiers for an application, it may be configured that some of the | ||||
identifiers can be HIP-based identifiers, and the rest can be IPv4 or | ||||
IPv6 addresses. The system resolver may return HIP-based identifiers | ||||
in front of the list of identifiers when the underlying system and | ||||
policies support HIP. An application processing the identifiers | ||||
sequentially will then first try a HIP-based connection and only then | ||||
other non-HIP based connections. However, certain applications may | ||||
launch the connections in parallel. In such a case, the non-HIP | ||||
connections may succeed before HIP connections. Based on local | ||||
system policies, a system may disallow such behaviour and return only | ||||
HIP-based identifiers when they are found from DNS. | ||||
If the application obtains LSIs or HITs that it treats as IP | ||||
addresses, a few potential hazards arise. First, applications that | ||||
perform referrals may pass the LSI to another system that has no | ||||
system context to resolve the LSI back to a host identifier or an IP | ||||
address. Note that these are the same type of applications that will | ||||
likely break if used over certain types of network address | ||||
translators (NATs). Second, applications may cache the results of | ||||
DNS queries for a long time, and it may be hard for a HIP system to | ||||
determine when to perform garbage collection on the LSI bindings. | ||||
However, when using HITs, the security of using the HITs for identity | ||||
comparison may be stronger than in the case of using IP addresses. | ||||
Finally, applications may generate log files, and administrators or | ||||
other consumers of these log files may become confused to find LSIs | ||||
or HITs instead of IP addresses. Therefore, it is recommended that | ||||
the HIP software logs the HITs, LSIs (if applicable), and FQDN- | ||||
related information so that administrators can correlate other logs | ||||
with HIP identifiers. | ||||
It may be possible for an LSI or HIT to be routable or resolvable, | ||||
either directly or through an overlay, in which case it would be | ||||
preferable for applications to handle such names instead of IP | ||||
addresses. However, such networks are out of scope of this document. | ||||
3.3. Discussion | ||||
Solutions preserving the use of IP addresses in the applications have | Solutions preserving the use of IP addresses in the applications have | |||
the benefit of better support for applications that use IP addresses | the benefit of better support for applications that use IP addresses | |||
for long-lived application associations, callbacks, and referrals, | for long-lived application associations, callbacks, and referrals, | |||
although it should be noted that applications are discouraged from | although it should be noted that applications are discouraged from | |||
using IP addresses in this manner due to the frequent presence of | using IP addresses in this manner due to the frequent presence of | |||
NATs [4] and Section 3.3, because the binding between host identifier | NATs [RFC1958]. However, they have weaker security properties than | |||
and address is weak and not visible to the application or user. In | the approaches outlined in Section 3.2 and Section 4, because the | |||
fact, the semantics of the application's "connect(ip)" call may be | binding between host identifier and address is weak and not visible | |||
interpreted as "connect me to the system reachable at IP address ip" | to the application or user. In fact, the semantics of the | |||
but perhaps no stronger semantics than that. HIP can be used in this | application's "connect(ip)" call may be interpreted as "connect me to | |||
case to provide perfect forward secrecy and authentication, but not | the system reachable at IP address ip" but perhaps no stronger | |||
to strongly authenticate the peer at the onset of communications. | semantics than that. HIP can be used in this case to provide perfect | |||
DNS with security extensions (DNSSEC) [5] could be used to | forward secrecy and authentication, but not to strongly authenticate | |||
authenticate the bindings between IP address and host identifier, if | the peer at the onset of communications. | |||
the necessary DNSSEC records were available and trusted. | ||||
The legacy application is unaware of HIP and cannot therefore notify | ||||
the user when the application uses HIP. However, the operating | ||||
system can notify the user of the usage of HIP through a user agent. | ||||
Further, it is possible for the user agent to name the network | ||||
application that caused a HIP-related event. This way, the user is | ||||
aware when he or she is using HIP even though the legacy network | ||||
application is not. | ||||
Using IP addresses at the application layer may not provide the full | Using IP addresses at the application layer may not provide the full | |||
potential benefits of HIP mobility support. It allows for mobility | potential benefits of HIP mobility support. It allows for mobility | |||
if the system is able to readdress long-lived, connected sockets upon | if the system is able to readdress long-lived, connected sockets upon | |||
a HIP readdress event. However, as in current systems, mobility will | a HIP readdress event. However, as in current systems, mobility will | |||
break in the connectionless case, when an application caches the IP | break in the connectionless case, when an application caches the IP | |||
address and repeatedly calls sendto(), or in the case of TCP when the | address and repeatedly calls sendto(), or in the case of TCP when the | |||
system later opens additional sockets to the same destination. | system later opens additional sockets to the same destination. | |||
Section 4.1.6 of the base HIP protocol specification [1] states that | Section 4.1.6 of the base HIP protocol specification [RFC5201] states | |||
implementations that learn of HIT-to-IP address bindings through the | that implementations that learn of HIT-to-IP address bindings through | |||
use of HIP opportunistic mode must not enforce those bindings on | the use of HIP opportunistic mode must not enforce those bindings on | |||
later communications sessions. This implies that when IP addresses | later communications sessions. This implies that when IP addresses | |||
are used by the applications, systems that attempt to | are used by the applications, systems that attempt to | |||
opportunistically set up HIP must not assume that later sessions to | opportunistically set up HIP must not assume that later sessions to | |||
the same address will communicate with the same host. | the same address will communicate with the same host. | |||
3.2. Using DNS to map domain names to HIs | The legacy application is unaware of HIP and therefore cannot notify | |||
the user when the application uses HIP. However, the operating | ||||
In the previous section, it was pointed out that a HIP-enabled system | system can notify the user of the usage of HIP through a user agent. | |||
might make use of DNS to transparently fetch host identifiers prior | Further, it is possible for the user agent to name the network | |||
to the onset of communication. For applications that make use of | application that caused a HIP-related event. This way, the user is | |||
DNS, the name resolution process is another opportunity to use HIP. | aware when he or she is using HIP even though the legacy network | |||
If host identifiers are bound to domain names (with a trusted DNS), | application is not. Based on usability tests from initial | |||
the following are possible: | deployments, displaying the HITs and LSIs should be avoided in user | |||
interfaces. Instead, traditional security measures (lock pictures, | ||||
Return HIP LSIs and HITs instead of IP addresses: | colored address bars) should be used where possible. | |||
The system resolver could be configured to return a Local Scope | ||||
Identifier (LSI) or HIT rather than an IP address, if HIP | ||||
information is available in the DNS that binds a particular domain | ||||
name to a host identifier, and otherwise to return an IP address | ||||
as usual. The system can then maintain a mapping between LSI and | ||||
host identifier and perform the appropriate conversion at the | ||||
system call interface or below. The application uses the LSI or | ||||
HIT as it would an IP address. This technique has been used in | ||||
overlay networking experiments such as the Internet Indirection | ||||
Infrastructure (i3). | ||||
Locally use a HIP-specific domain name prefix: | ||||
One drawback to spoofing the DNS resolution is that some | One drawback to spoofing the DNS resolution is that some | |||
applications actually may want to fetch IP addresses (e.g., | applications, or selected instances of an application, actually may | |||
diagnostic applications such as ping, or processes that generate | want to fetch IP addresses (e.g., diagnostic applications such as | |||
system log files). One way to provide finer granularity on | ping). One way to provide finer granularity on whether the resolver | |||
whether the resolver returns an IP address or an LSI is to | returns an IP address or an LSI is to have the user form a modified | |||
distinguish by the presence of a domain name prefix. | domain name when he or she wants to invoke HIP. This leads us to | |||
Specifically, if the application requests to resolve "HIP- | consider, in the next section, use cases for which the end user | |||
www.example.com" (or some similar prefix string), then the system | explicitly and selectively chooses to enable HIP. | |||
returns an LSI, while if the application requests to resolve | ||||
"www.example.com", IP address(es) are returned as usual. The use | ||||
of a prefix rather than suffix is recommended, and the use of a | ||||
string delimiter that is not a dot (".") is also recommended, to | ||||
reduce the likelihood that such modified DNS names are mistakenly | ||||
treated as names rooted at a new top-level domain. | ||||
Fetch HIP records transparently: | ||||
A third option would be for the system to opportunistically query | ||||
for HIP records in parallel to other DNS resource records, and to | ||||
temporarily cache the HITs returned with a DNS lookup, indexed by | ||||
the IP addresses returned in the same entry, and pass the IP | ||||
addresses up to the application as usual. If an application | ||||
connects to one of those IP addresses within a short time after | ||||
the lookup, initiate a base exchange using the cached HITs. The | ||||
benefit is that this removes the uncertainty/delay associated with | ||||
opportunistic HIP, because the DNS record suggests that the peer | ||||
is HIP-capable. | ||||
Since the LSI or HIT is non-routable, a couple of potential hazards | 4. Users Invoking HIP with a Legacy Application | |||
arise, in the case of referrals, callbacks, and long-lived | ||||
application associations. First, applications that perform referrals | ||||
may pass the LSI to another system that has no system context to | ||||
resolve the LSI back to a host identifier or an IP address. Note | ||||
that these are the same type of applications that will likely break | ||||
if used over certain types of network address translators (NATs). | ||||
Second, applications may cache the results of DNS queries for a long | ||||
time, and it may be hard for a HIP system to determine when to | ||||
perform garbage collection on the LSI bindings. However, when using | ||||
HITs, the security of using the HITs for identity comparison may be | ||||
stronger than in the case of using IP addresses. | ||||
It may be possible for an LSI or HIT to be routable or resolvable, | The previous section described approaches for configuring HIP for | |||
either directly or through an overlay, in which case it would be | legacy applications that did not necessarily involve the user. | |||
preferable for applications to handle such names instead of IP | However, there may be cases in which a legacy application user wants | |||
addresses. However, such networks are out of scope of this document. | to use HIP for a given application instance by signaling to the HIP- | |||
enabled system in some way. If the application user interface or | ||||
configuration file accepts IP addresses, there may be an opportunity | ||||
to provide a HIT or an LSI in its place. Furthermore, if the | ||||
application uses DNS, a user may provide a specially crafted domain | ||||
name to signal to the resolver to fetch HIP records and to signal to | ||||
the system to use HIP. We describe both of these approaches below. | ||||
3.3. Connecting directly to a HIT | 4.1. Connecting to a HIT or LSI | |||
The previous two sections describe the use of IP addresses and LSIs | Section 3.2 above describes the use of HITs or LSIs as spoofed return | |||
as local handles to host identifiers. A third approach, for IPv6 | values of the DNS resolution process. A similar approach that is | |||
applications, is to configure the application to connect directly to | more explicit is to configure the application to connect directly to | |||
a HIT (e.g., "connect(HIT)" as a socket call). This scenario has | a HIT (e.g., "connect(HIT)" as a socket call). This scenario has | |||
stronger security semantics, because the application is asking the | stronger security semantics, because the application is asking the | |||
system to send packets specifically to the named peer system. HITs | system to send packets specifically to the named peer system. HITs | |||
have been defined as Overlay Routable Cryptographic Hash Identifiers | have been defined as Overlay Routable Cryptographic Hash Identifiers | |||
(ORCHIDs) such that they cannot be confused with routable IP | (ORCHIDs) such that they cannot be confused with routable IP | |||
addresses; see [2]. | addresses; see [RFC4843]. | |||
This approach also has a few challenges. Using HITs can be more | This approach also has a few challenges. Using HITs can be more | |||
cumbersome for human users (due to the flat HIT name space) than | cumbersome for human users (due to the flat HIT name space) than | |||
using either IPv6 addresses or domain names, Another challenge with | using either IPv6 addresses or domain names. Another challenge with | |||
this approach is in actually finding the IP addresses to use, based | this approach is in actually finding the IP addresses to use, based | |||
on the HIT. Some type of HIT resolution service would be needed in | on the HIT. Some type of HIT resolution service would be needed in | |||
this case. A third challenge of this approach is in supporting | this case. A third challenge of this approach is in supporting | |||
callbacks and referrals to possibly non-HIP-aware hosts. However, | callbacks and referrals to possibly non-HIP-aware hosts. However, | |||
since most communications in this case would likely be to other HIP- | since most communications in this case would likely be to other HIP- | |||
aware hosts (else the initial HIP associations would fail to | aware hosts (else the initial HIP associations would fail to | |||
establish), the resulting referral problem may be that the peer host | establish), the resulting referral problem may be that the peer host | |||
supports HIP but is not able to perform HIT resolution for some | supports HIP but is not able to perform HIT resolution for some | |||
reason. | reason. | |||
3.4. Local address management | 4.2. Using a modified DNS name | |||
The previous sections focused mainly on client behavior (HIP | Specifically, if the application requests to resolve "HIP- | |||
initiator). We must also consider the behavior for servers. | www.example.com" (or some similar prefix string), then the system | |||
Typically, a server binds to a wildcard IP address and well-known | returns an LSI, while if the application requests to resolve | |||
port. In the case of HIP use with legacy server implementations, | "www.example.com", IP address(es) are returned as usual. The use of | |||
there are again a few options. As in Section 3.1 above, the system | a prefix rather than suffix is recommended, and the use of a string | |||
may be configured manually to always, optionally (depending on the | delimiter that is not a dot (".") is also recommended, to reduce the | |||
client behavior), or never use HIP with a particular service, as a | likelihood that such modified DNS names are mistakenly treated as | |||
matter of policy, when the server specifies a wildcard (IP) address. | names rooted at a new top-level domain. Limits of domain name length | |||
or label length (255 or 63, respectively) should be considered when | ||||
prepending any prefixes. | ||||
When a system API call such as getaddrinfo [6] is used for resolving | 4.3. Other techniques | |||
local addresses, it may also return HITs or LSIs, if the system has | ||||
assigned HITs or LSIs to internal virtual interfaces (common in many | ||||
HIP implementations). The application may use such identifiers as | ||||
addresses in subsequent socket calls. | ||||
In the case when resolvers can return multiple destination | Alternatives to using a modified DNS name that have been experimented | |||
identifiers for an application, it may be configured that some of the | with include the following. Command-line tools or tools with a | |||
identifiers can be HIP-based identifiers, and the rest can be IPv4 or | graphical user interface (GUI) can be provided by the system to allow | |||
IPv6 addresses. The system resolver may return HIP-based identifiers | a user to set the policy on which applications use HIP. Another | |||
in front of the list of identifiers when the underlying system and | common technique, for dynamically linked applications, is to | |||
policies support HIP. An application processing the identifiers | dynamically link the application to a modified library that wraps the | |||
sequentially will then first try a HIP-based connection and only then | system calls and interposes HIP layer communications on them; this | |||
other non-HIP based connections. However, certain applications may | can be invoked by the user by running commands through a special | |||
launch the connections in parallel. In such a case, the non-HIP | shell, for example. | |||
connections may succeed before HIP connections. Based on local | ||||
system policies, a system may disallow such behaviour and return only | 5. Local address management | |||
HIP-based identifiers when they are found from DNS. | ||||
The previous two sections focused mainly on controlling client | ||||
behavior (HIP initiator). We must also consider the behavior for | ||||
servers. Typically, a server binds to a wildcard IP address and | ||||
well-known port. In the case of HIP use with legacy server | ||||
implementations, there are again a few options. The system may be | ||||
configured manually to always, optionally (depending on the client | ||||
behavior), or never use HIP with a particular service, as a matter of | ||||
policy, when the server specifies a wildcard (IP) address. | ||||
When a system API call such as getaddrinfo [RFC3493] is used for | ||||
resolving local addresses, it may also return HITs or LSIs, if the | ||||
system has assigned HITs or LSIs to internal virtual interfaces | ||||
(common in many HIP implementations). The application may use such | ||||
identifiers as addresses in subsequent socket calls. | ||||
Some applications may try to bind a socket to a specific local | Some applications may try to bind a socket to a specific local | |||
address, or may implement server-side access control lists based on | address, or may implement server-side access control lists based on | |||
socket calls such as getsockname() and getpeername() in the C-based | socket calls such as getsockname() and getpeername() in the C-based | |||
socket APIs. If the local address specified is an IP address, again, | socket APIs. If the local address specified is an IP address, again, | |||
the underlying system may be configured to still use HIP. If the | the underlying system may be configured to still use HIP. If the | |||
local address specified is a HIT (Section 3.3), the system should | local address specified is a HIT (Section 4), the system should | |||
enforce that connections to the local application can only arrive to | enforce that connections to the local application can only arrive to | |||
the specified HIT. If a system has many HITs, an application that | the specified HIT. If a system has many HITs, an application that | |||
binds to a single HIT cannot accept connections to the other HITs in | binds to a single HIT cannot accept connections to the other HITs in | |||
the system. | the system. | |||
When a host has multiple HIs and the socket behavior does not | When a host has multiple HIs and the socket behavior does not | |||
prescribe the use of any particular HI as a local identifier, it is a | prescribe the use of any particular HI as a local identifier, it is a | |||
matter of local policy as to how to select a HI to serve as a local | matter of local policy as to how to select a HI to serve as a local | |||
identifier. However, systems that bind to a wildcard may face | identifier. However, systems that bind to a wildcard may face | |||
problems when multiple HITs or LSIs are defined. These problems are | problems when multiple HITs or LSIs are defined. These problems are | |||
skipping to change at page 10, line 30 | skipping to change at page 12, line 51 | |||
As an example, consider a client application that sends an UDP | As an example, consider a client application that sends an UDP | |||
datagram to a server that is bound to a wildcard. The server | datagram to a server that is bound to a wildcard. The server | |||
application receives the packet using recvfrom() and sends a response | application receives the packet using recvfrom() and sends a response | |||
using sendto(). The problem here is that sendto() may actually use a | using sendto(). The problem here is that sendto() may actually use a | |||
different server HIT than the client assumes. The client will drop | different server HIT than the client assumes. The client will drop | |||
the response packet when the client implements access control on the | the response packet when the client implements access control on the | |||
UDP socket (e.g. using connect()). | UDP socket (e.g. using connect()). | |||
Reimplementing the server application using the sendmsg() and | Reimplementing the server application using the sendmsg() and | |||
recvmsg() to support multihoming (particularly considering the | recvmsg() to support multihoming (particularly considering the | |||
anchillary data) would be the ultimate solution to this problem, but | ancillary data) would be the ultimate solution to this problem, but | |||
with legacy applications is not an option. As a workaround, we make | with legacy applications is not an option. As a workaround, we make | |||
suggestion for servers providing UDP-based services with non- | suggestion for servers providing UDP-based services with non- | |||
multihoming capable services. Such servers should announce only the | multihoming capable services. Such servers should announce only the | |||
HIT that matches to the default outgoing HIT of the host to avoid | HIT or public key that matches to the default outgoing HIT of the | |||
such problems. | host to avoid such problems. | |||
Finally, some applications may create a connection to a local HIT. | Finally, some applications may create a connection to a local HIT. | |||
In such a case, the local system may use NULL encryption to avoid | In such a case, the local system may use NULL encryption to avoid | |||
unnecessary encryption overhead, and may be otherwise more permissive | unnecessary encryption overhead, and may be otherwise more permissive | |||
than usual such as excluding authentication, Diffie-Hellman exchange, | than usual such as excluding authentication, Diffie-Hellman exchange, | |||
and puzzle. | and puzzle. | |||
4. Security Considerations | 6. Security Considerations | |||
In this section we discuss the security of the system in general | In this section we discuss the security of the system in general | |||
terms, outlining some of the security properties. However, this | terms, outlining some of the security properties. However, this | |||
section is not intended to provide a complete risk analysis. Such an | section is not intended to provide a complete risk analysis. Such an | |||
analysis would, in any case, be dependent on the actual application | analysis would, in any case, be dependent on the actual application | |||
using HIP, and is therefore considered out of scope. | using HIP, and is therefore considered out of scope. | |||
The three outlined scenarios differ considerably in their security | The scenarios outlined above differ considerably in their security | |||
properties. There are further differences related to whether DNSSEC | properties. When the DNS is used, there are further differences | |||
is used or not, and whether the DNSSEC zones are considered | related to whether DNSSEC [RFC4033] is used or not, and whether the | |||
trustworthy enough. Here we mean that the delegation chain from the | DNS zones are considered trustworthy enough. Here we mean that there | |||
reverse IP root should be trusted (typical trust anchor issues), and | should exist a delegation chain to whatever trust anchors are | |||
the DNS zone administrators in charge of the netblock should be | available in the respective trees, and the DNS zone administrators in | |||
trusted to put in the right information. | charge of the netblock should be trusted to put in the right | |||
information. | ||||
When IP addresses are used to represent the peer system, the security | When IP addresses are used by applications to name the peer system, | |||
properties depend on the the configuration method. With manual | the security properties depend on the configuration method. With | |||
configuration, the security of the system is comparable to a non-HIP | manual configuration, the security of the system is comparable to a | |||
system with similar IPsec policies. The security semantics of an | non-HIP system with similar IPsec policies. The security semantics | |||
initial opportunistic key exchange are roughly equal to non-secured | of an initial opportunistic key exchange are roughly equal to non- | |||
IP; the exchange is vulnerable to man-in-the-middle attacks. | secured IP; the exchange is vulnerable to man-in-the-middle attacks. | |||
However, the system is less vulnerable to connection hijacking | However, the system is less vulnerable to connection hijacking | |||
attacks. If the DNS is used, if both zones are secured (or the HITs | attacks. If the DNS is used, if both zones are secured (or the HITs | |||
are stored in the reverse DNS record) and the client trusts the | are stored in the reverse DNS record) and the client trusts the | |||
DNSSEC signatures, the system may provide a fairly high security | DNSSEC signatures, the system may provide a fairly high security | |||
level. However, much depends on the details of the implementation, | level. However, much depends on the details of the implementation, | |||
the security and administrative practices used when signing the DNS | the security and administrative practices used when signing the DNS | |||
zones, and other factors. | zones, and other factors. | |||
Using the forward DNS to map a domain name into an LSI is a case that | Using the forward DNS to map a domain name into an LSI is a case that | |||
is closest to the most typical use scenarios today. If DNSSEC is | is closest to the most typical use scenarios today. If DNSSEC is | |||
used, the result is fairly similar to the current use of certificates | used, the result is fairly similar to the current use of certificates | |||
with TLS. If DNSSEC is not used, the result is fairly similar to the | with TLS. If DNSSEC is not used, the result is fairly similar to the | |||
current use of plain IP, with the exception that HIP provides | current use of plain IP, with the additional protection of data | |||
protection against connection hijacking attacks. | integrity, confidentiality, and prevention of connection hijacking | |||
that opportunistic HIP provides. If DNSSEC is used, data integrity | ||||
and data origin authentication services are added to the normal DNS | ||||
query protocol, thereby providing more certainty that the desired | ||||
host is being contacted, if the DNS records themselves are | ||||
trustworthy. | ||||
If the application is basing its operations on HITs, the connections | If the application is basing its operations on HITs, the connections | |||
become automatically secured due to the implicit channel bindings in | become automatically secured due to the implicit channel bindings in | |||
HIP. That is, when the application makes a connect(HIT) system call, | HIP. That is, when the application makes a connect(HIT) system call, | |||
the resulting packets will either be sent to a node possessing the | the resulting packets will either be sent to a node possessing the | |||
corresponding private key or the security association will fail to be | corresponding private key or the security association will fail to be | |||
established. | established. | |||
When the system provides (spoofs) LSIs or HITs instead of IP | When the system provides (spoofs) LSIs or HITs instead of IP | |||
addresses as the result of name resolution, the resultant fields may | addresses as the result of name resolution, the resultant fields may | |||
inadvertently show up in user interfaces and system logs, which may | inadvertently show up in user interfaces and system logs, which may | |||
cause operational concerns for some network administrators. | cause operational concerns for some network administrators. | |||
Therefore, it is recommended that the HIP software logs the HITs, | ||||
LSIs (if applicable), and FQDN-related information so that | ||||
administrators can correlate other logs with HIP identifiers. | ||||
5. IANA Considerations | 7. IANA Considerations | |||
This document has no actions for IANA. | This document has no actions for IANA. | |||
6. Acknowledgments | 8. Acknowledgments | |||
Jeff Ahrenholz, Gonzalo Camarillo, Alberto Garcia, Teemu Koponen, | Jeff Ahrenholz, Gonzalo Camarillo, Alberto Garcia, Teemu Koponen, | |||
Julien Laganier, and Jukka Ylitalo have provided comments on | Julien Laganier, and Jukka Ylitalo have provided comments on | |||
different versions of this draft. Erik Nordmark provided the | different versions of this draft. Erik Nordmark provided the | |||
taxonomy of how applications use IP addresses in a previously expired | taxonomy of how applications use IP addresses in a previously expired | |||
Internet Draft. The document received substantial and useful | Internet Draft. The document received substantial and useful | |||
comments during the review phase from David Black, Pekka Savola, Lars | comments during the review phase from David Black, Pekka Savola, Lars | |||
Eggert, and the DNS directorate. | Eggert, and Peter Koch. | |||
7. Informative References | 9. Informative References | |||
[1] Moskowitz, R., Nikander, P., Jokela, P., and T. Henderson, "Host | [RFC5201] Moskowitz, R., Nikander, P., Jokela, P., and T. Henderson, | |||
Identity Protocol", draft-ietf-hip-base-10 (work in progress), | "Host Identity Protocol", RFC 5201, April 2008. | |||
October 2007. | ||||
[2] Nikander, P., Laganier, J., and F. Dupont, "An IPv6 Prefix for | [RFC4843] Nikander, P., Laganier, J., and F. Dupont, "An IPv6 Prefix | |||
Overlay Routable Cryptographic Hash Identifiers (ORCHID)", | for Overlay Routable Cryptographic Hash Identifiers | |||
RFC 4843, April 2007. | (ORCHID)", RFC 4843, April 2007. | |||
[3] Salz, J., Balakrishnan, H., and A. Snoeren, "TESLA: A | [paper.tesla] | |||
Transparent, Extensible Session-Layer Architecture for End-to- | Salz, J., Balakrishnan, H., and A. Snoeren, "TESLA: A | |||
end Network Services", Proceedings of USENIX Symposium on | Transparent, Extensible Session-Layer Architecture for | |||
Internet Technologies and Systems (USITS), pages 211-224, | End-to-end Network Services", Proceedings of USENIX | |||
March 2003. | Symposium on Internet Technologies and Systems (USITS), | |||
pages 211-224, March 2003. | ||||
[4] Carpenter, B., "Architectural Principles of the Internet", | [RFC1958] Carpenter, B., "Architectural Principles of the Internet", | |||
RFC 1958, June 1996. | RFC 1958, June 1996. | |||
[5] Arends, R., Austein, R., Larson, M., Massey, D., and S. Rose, | [RFC4033] Arends, R., Austein, R., Larson, M., Massey, D., and S. | |||
"DNS Security Introduction and Requirements", RFC 4033, | Rose, "DNS Security Introduction and Requirements", | |||
March 2005. | RFC 4033, March 2005. | |||
[6] Gilligan, R., Thomson, S., Bound, J., McCann, J., and W. | [RFC3493] Gilligan, R., Thomson, S., Bound, J., McCann, J., and W. | |||
Stevens, "Basic Socket Interface Extensions for IPv6", RFC 3493, | Stevens, "Basic Socket Interface Extensions for IPv6", | |||
February 2003. | RFC 3493, February 2003. | |||
Appendix A. Changes from previous versions | Appendix A. Changes from previous versions | |||
This section is to be removed by the RFC Editor before publication. | This section is to be removed by the RFC Editor before publication. | |||
It summarizes resolution of issues raised in the following reviews: | It summarizes resolution of issues raised in the following reviews: | |||
(1) IESG last call, (2) Gen-ART review, and (3) DNS directorate | (1) IESG last call, (2) Gen-ART review, and (3) DNS directorate | |||
review. Mobility and secdir reviews did not result in actionable | review. Mobility and secdir reviews did not result in actionable | |||
comments. | comments. | |||
A.1. From version-01 to version-02 (current) | A.1. From version-01 to version-02 | |||
Better clarity in the abstract and introduction about the goal of the | Better clarity in the abstract and introduction about the goal of the | |||
draft; namely, that it is informational to help implementors and | draft; namely, that it is informational to help implementors and | |||
early adopters think about and solve deployment issues (comment from | early adopters think about and solve deployment issues (comment from | |||
Pekka Savola). | Pekka Savola). | |||
Delete the second paragraph of 3 about the general applicability of | Delete the second paragraph of 3 about the general applicability of | |||
replacing IP addresses with LSIs and HITs at the socket layer. | replacing IP addresses with LSIs and HITs at the socket layer. | |||
(comment from Pekka Savola). | (comment from Pekka Savola). | |||
skipping to change at page 17, line 5 | skipping to change at page 20, line 29 | |||
handled in Section 3.4: i) clarify multihoming issue for servers with | handled in Section 3.4: i) clarify multihoming issue for servers with | |||
multiple HITs, when receiving UDP, ii) clarify a problem that might | multiple HITs, when receiving UDP, ii) clarify a problem that might | |||
arise for applications that do parallel connect, and iii) suggest | arise for applications that do parallel connect, and iii) suggest | |||
that loopback HIP connections could use a NULL encryption. | that loopback HIP connections could use a NULL encryption. | |||
Removed expired references and updated active references. | Removed expired references and updated active references. | |||
Incorporated additional review comments from Miika Komu, and some | Incorporated additional review comments from Miika Komu, and some | |||
suggested replacement text, and added him as a co-author. | suggested replacement text, and added him as a co-author. | |||
A.2. From version-02 to version-03 (current) | ||||
DNSSEC clarifications added based on dns-dir review from Peter Koch | ||||
Editing pass through document. Organizationally, everything except | ||||
security considerations was in one section. The existing text of | ||||
Sections 3.1 through 3.3 was moved to new Sections 3 and 4, the | ||||
previous text of section 3.4 has been moved to section 5, and the | ||||
previous Section 4 (security considerations) is now Section 6. | ||||
Performed further wordsmithing and cleanup. | ||||
Authors' Addresses | Authors' Addresses | |||
Thomas Henderson | Thomas Henderson | |||
The Boeing Company | The Boeing Company | |||
P.O. Box 3707 | P.O. Box 3707 | |||
Seattle, WA | Seattle, WA | |||
USA | USA | |||
Email: thomas.r.henderson@boeing.com | Email: thomas.r.henderson@boeing.com | |||
skipping to change at page 18, line 7 | skipping to change at page 22, line 7 | |||
Helsinki Institute for Information Technology | Helsinki Institute for Information Technology | |||
Metsaenneidonkuja 4 | Metsaenneidonkuja 4 | |||
Helsinki FIN-02420 | Helsinki FIN-02420 | |||
FINLAND | FINLAND | |||
Phone: +358503841531 | Phone: +358503841531 | |||
Email: miika@iki.fi | Email: miika@iki.fi | |||
Full Copyright Statement | Full Copyright Statement | |||
Copyright (C) The IETF Trust (2007). | Copyright (C) The IETF Trust (2008). | |||
This document is subject to the rights, licenses and restrictions | This document is subject to the rights, licenses and restrictions | |||
contained in BCP 78, and except as set forth therein, the authors | contained in BCP 78, and except as set forth therein, the authors | |||
retain all their rights. | retain all their rights. | |||
This document and the information contained herein are provided on an | This document and the information contained herein are provided on an | |||
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS | "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS | |||
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND | OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND | |||
THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS | THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS | |||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF | OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF | |||
skipping to change at page 18, line 44 | skipping to change at line 734 | |||
attempt made to obtain a general license or permission for the use of | attempt made to obtain a general license or permission for the use of | |||
such proprietary rights by implementers or users of this | such proprietary rights by implementers or users of this | |||
specification can be obtained from the IETF on-line IPR repository at | specification can be obtained from the IETF on-line IPR repository at | |||
http://www.ietf.org/ipr. | http://www.ietf.org/ipr. | |||
The IETF invites any interested party to bring to its attention any | The IETF invites any interested party to bring to its attention any | |||
copyrights, patents or patent applications, or other proprietary | copyrights, patents or patent applications, or other proprietary | |||
rights that may cover technology that may be required to implement | rights that may cover technology that may be required to implement | |||
this standard. Please address the information to the IETF at | this standard. Please address the information to the IETF at | |||
ietf-ipr@ietf.org. | ietf-ipr@ietf.org. | |||
Acknowledgment | ||||
Funding for the RFC Editor function is provided by the IETF | ||||
Administrative Support Activity (IASA). | ||||
End of changes. 57 change blocks. | ||||
251 lines changed or deleted | 340 lines changed or added | |||
This html diff was produced by rfcdiff 1.35. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |