draft-ietf-rohc-ipsec-extensions-hcoipsec-00.txt   draft-ietf-rohc-ipsec-extensions-hcoipsec-01.txt 
Network Working Group E. Ertekin Network Working Group E. Ertekin
Internet-Draft M. Casey Internet-Draft M. Casey
Expires: February 28, 2008 J. Pezeshki Expires: July 3, 2008 J. Pezeshki
C. Christou C. Christou
Booz Allen Hamilton Booz Allen Hamilton
August 27, 2007 December 31, 2007
IPsec Extensions to Support Robust Header Compression over IPsec IPsec Extensions to Support Robust Header Compression over IPsec
(RoHCoIPsec) (RoHCoIPsec)
draft-ietf-rohc-ipsec-extensions-hcoipsec-00 draft-ietf-rohc-ipsec-extensions-hcoipsec-01
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 37 skipping to change at page 1, line 37
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 February 28, 2008. This Internet-Draft will expire on July 3, 2008.
Copyright Notice Copyright Notice
Copyright (C) The IETF Trust (2007). Copyright (C) The IETF Trust (2007).
Abstract Abstract
Integrating RoHC with IPsec (RoHCoIPsec) offers the combined benefits Integrating RoHC with IPsec (RoHCoIPsec) offers the combined benefits
of IP security services and efficient bandwidth utilization. Before of IP security services and efficient bandwidth utilization. Before
this can be realized, however, several extensions to the Security this can be realized, however, several extensions to the Security
Policy Database (SPD), the Security Association Database (SAD), and Policy Database (SPD), the Security Association Database (SAD), and
the IPsec process are required. This document describes the IPsec the IPsec process are required. This document describes the IPsec
extensions required to support RoHCoIPsec. extensions required to support RoHCoIPsec.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Extensions to IPsec Databases . . . . . . . . . . . . . . . . . 3 2. Extensions to IPsec Databases . . . . . . . . . . . . . . . . 3
2.1. Security Policy Database (SPD) . . . . . . . . . . . . . . 3 2.1. Security Policy Database (SPD) . . . . . . . . . . . . . . 3
2.2. Security Association Database (SAD) . . . . . . . . . . . . 4 2.2. Security Association Database (SAD) . . . . . . . . . . . 4
3. Extensions to IPsec Processing . . . . . . . . . . . . . . . . 5 3. Extensions to IPsec Processing . . . . . . . . . . . . . . . . 5
3.1. Addition to the IANA Protocol Numbers Registry . . . . . . 5 3.1. Addition to the IANA Protocol Numbers Registry . . . . . . 5
3.2. Nested IPComp and RoHCoIPsec Processing . . . . . . . . . . 5 3.2. Verifying the Integrity of Decompressed Packet Headers . . 5
3.3. CID Reuse . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.2.1. ICV Computation and Integrity Verification . . . . . . 5
4. Security Considerations . . . . . . . . . . . . . . . . . . . . 5 3.3. Nested IPComp and RoHCoIPsec Processing . . . . . . . . . 6
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 6 4. Security Considerations . . . . . . . . . . . . . . . . . . . 6
6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . 6 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7
7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 6 6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 7
7.1. Normative References . . . . . . . . . . . . . . . . . . . 6 7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 7
7.2. Informative References . . . . . . . . . . . . . . . . . . 7 7.1. Normative References . . . . . . . . . . . . . . . . . . . 7
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 7 7.2. Informative References . . . . . . . . . . . . . . . . . . 8
Intellectual Property and Copyright Statements . . . . . . . . . . 9 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 8
Intellectual Property and Copyright Statements . . . . . . . . . . 10
1. Introduction 1. Introduction
Using IPsec ([IPSEC]) protection offers various security services for Using IPsec ([IPSEC]) protection offers various security services for
IP traffic. However, for tunnel-mode security associations, these IP traffic. However, for tunnel-mode security associations, these
benefits come at the cost of additional packet headers, which benefits come at the cost of additional packet headers, which
increase packet overhead. As described in [ROHCOIPSEC], Robust increase packet overhead. As described in [ROHCOIPSEC], Robust
Header Compression (RoHC [ROHC]) can be used with IPsec to reduce the Header Compression (RoHC [ROHC]) can be used with IPsec to reduce the
overhead associated with IPsec-protected packets. overhead associated with IPsec-protected packets.
IPsec-protected traffic is carried between peers by Security IPsec-protected traffic is carried between peers by Security
Associations (SAs), whose parameters are negotiated on a case-by-case Associations (SAs), whose parameters are negotiated on a case-by-case
basis. The Security Policy Database (SPD) specifies the services basis. The Security Policy Database (SPD) specifies the services
that are to be offered to IP datagrams, and the parameters associated that are to be offered to IP datagrams, and the parameters associated
with SAs that have been established are stored in the Security with SAs that have been established are stored in the Security
Association Database (SAD). To fully integrate RoHC and IPsec, Association Database (SAD). To fully integrate RoHC and IPsec,
various extensions to the SPD and SAD that incorporate RoHC-relevant various extensions to the SPD and SAD that incorporate RoHC-relevant
parameters are required. parameters are required.
In addition, two extensions to the IPsec processing methodology are In addition, three extensions to the IPsec processing methodology are
required. First, a mechanism for identifying RoHC packets must be required. First, a mechanism for identifying RoHC packets must be
defined. Second, the order of the inbound and outbound processing defined. Second, a mechanism is required to ensure the integrity of
must be enumerated when nesting IP Compression (IPComp [IPCOMP]), the decompressed packet. Finally, the order of the inbound and
RoHC, and IPsec processing. outbound processing must be enumerated when nesting IP Compression
(IPComp [IPCOMP]), RoHC, and IPsec processing.
2. Extensions to IPsec Databases 2. Extensions to IPsec Databases
The following subsections specify extensions to the SPD and the SAD The following subsections specify extensions to the SPD and the SAD
to support RoHCoIPsec. to support RoHCoIPsec.
2.1. Security Policy Database (SPD) 2.1. Security Policy Database (SPD)
In general, the SPD is responsible for specifying the security In general, the SPD is responsible for specifying the security
services that are offered to IP datagrams. Entries in the SPD services that are offered to IP datagrams. Entries in the SPD
specify how to derive the corresponding values for SAD entries. To specify how to derive the corresponding values for SAD entries. To
support RoHC, the SPD must be extended to include per-channel RoHC support RoHC, the SPD must be extended to include per-channel RoHC
parameters. Together, the existing IPsec SPD parameters and the RoHC parameters. Together, the existing IPsec SPD parameters and the RoHC
parameters will dictate packet disposition for traffic that is to be parameters will dictate packet disposition for traffic that is to be
compressed, and subsequently protected by IPsec. compressed, and subsequently protected by IPsec.
The fields contained within each SPD entry are defined in [IPSEC], The fields contained within each SPD entry are defined in [IPSEC],
Section 4.4.1.2. To support RoHC, several processing info fields Section 4.4.1.2. To support RoHC, several processing info fields
must be added to the SPD; these fields contain information regarding must be added to the SPD; these fields contain information regarding
the RoHC profiles and channel parameters supported by the local RoHC the RoHC profiles and channel parameters supported by the local RoHC
instance. The per-channel configuration parameters required for RoHC instance. In addition, a field within the SPD entry is required to
in the SPD are as follows (note that this information must only be store a list of integrity algorithms, supported by the RoHCoIPsec
included in the SPD if the processing info field is set to PROTECT, instance. This field will be used to negotiate an integrity
and if the IPsec mode is set to tunnel mode): algorithm to ensure that packet headers are properly decompressed
(see Section 3.2).
The per-channel configuration parameters required for RoHC in the SPD
are as follows (note that this information must only be included in
the SPD if the processing info field is set to PROTECT, and if the
IPsec mode is set to tunnel mode):
MAX_CID: The highest context ID number to be used by the MAX_CID: The highest context ID number to be used by the
compressor. MAX_CID must be at least 0 and at most 16383 (The compressor. MAX_CID must be at least 0 and at most 16383 (The
value 0 implies having one context). The suggested value for value 0 implies having one context). The suggested value for
MAX_CID is 15. MAX_CID is 15.
PROFILES: This indicates the RoHC profiles supported by the PROFILES: This indicates the RoHC profiles supported by the
decompressor. The list of possible values this field may assume decompressor. The list of possible values this field may assume
is defined in the [ROHCPROF] registry. is defined in the [ROHCPROF] registry.
skipping to change at page 4, line 31 skipping to change at page 4, line 38
compressed. Note that the four RoHC profiles defined in RFC 3095 compressed. Note that the four RoHC profiles defined in RFC 3095
do not provide for a MAX_HEADER parameter. The parameter do not provide for a MAX_HEADER parameter. The parameter
MAX_HEADER is therefore without consequence in these profiles. MAX_HEADER is therefore without consequence in these profiles.
Other profiles (e.g., ones based on RFC 2507) can make use of the Other profiles (e.g., ones based on RFC 2507) can make use of the
parameter by explicitly referencing it. parameter by explicitly referencing it.
Note: The RoHC LARGE_CIDS channel parameter is set implicitly, based Note: The RoHC LARGE_CIDS channel parameter is set implicitly, based
on the value of MAX_CID. Furthermore, the RoHC FEEDBACK_FOR channel on the value of MAX_CID. Furthermore, the RoHC FEEDBACK_FOR channel
parameter is set implicitly to the RoHC channel associated with the parameter is set implicitly to the RoHC channel associated with the
SA in the reverse direction. Because both of these RoHC channel SA in the reverse direction. Because both of these RoHC channel
parameters are set implicitly, they are not stored in the SPD or SAD. parameters are set implicitly, they are not stored in the SPD.
2.2. Security Association Database (SAD) 2.2. Security Association Database (SAD)
Each entry within the SAD defines the parameters associated with each Each entry within the SAD defines the parameters associated with each
established SA. Unless if the "populate from packet" (PFP) flag is established SA. Unless if the "populate from packet" (PFP) flag is
asserted for a particular field, SAD entries are determined by the asserted for a particular field, SAD entries are determined by the
corresponding SPD entries during the creation of the SA. corresponding SPD entries during the creation of the SA.
The data items contained within the SAD are defined in [IPSEC], The data items contained within the SAD are defined in [IPSEC],
Section 4.4.2.1. To support RoHC, this list of data items is Section 4.4.2.1. To support RoHC, this list of data items is
augmented to include a "RoHC Data Item" field that defines the RoHC augmented to include a "RoHC Data Item" field that defines the RoHC
parameters. These parameters (i.e., MAX_CID, PROFILES, MRRU, and parameters. These parameters (i.e., MAX_CID, PROFILES, MRRU, and
MAX_HEADER) are enumerated above in Section 2.1. In addition, the MAX_HEADER) are enumerated above in Section 2.1. In addition, the
FEEDBACK_FOR parameter is also included, which is associated with the FEEDBACK_FOR parameter is also included, which is associated with the
SA in the reverse direction. The RoHC parameters used for a given SA SA in the reverse direction. Furthermore, two additional datas items
may be initialized manually (i.e., administratively configured for are required to store the Integrity Algorithm and respective key that
manual SAs), or initialized via a key exchange protocol (e.g. IKEv2 is to be used to ensure that packets are properly decompressed (see
[IKEV2]) that has been extended to support the negotiation of RoHC Section 3.2). These "RoHC Data Item" values may be initialized
parameters [IKEV2EXT]. manually (i.e., administratively configured for manual SAs), or
initialized via a key exchange protocol (e.g. IKEv2 [IKEV2]) that
has been extended to support the negotiation of RoHC parameters
[IKEV2EXT].
3. Extensions to IPsec Processing 3. Extensions to IPsec Processing
3.1. Addition to the IANA Protocol Numbers Registry 3.1. Addition to the IANA Protocol Numbers Registry
In order to demultiplex header-compressed from uncompressed traffic In order to demultiplex header-compressed from uncompressed traffic
on a RoHC-enabled SA, a "RoHC" value must be reserved in the IANA on a RoHC-enabled SA, a "RoHC" value must be reserved in the IANA
Protocol Numbers registry. If an outbound packet has a compressed Protocol Numbers registry. If an outbound packet has a compressed
header, the Next Header field of the security protocol header (e.g., header, the Next Header field of the security protocol header (e.g.,
AH [AH], ESP [ESP]) must be set to the "RoHC" protocol identifer. If AH [AH], ESP [ESP]) must be set to the "RoHC" protocol identifer. If
the packet header has not been compressed, the Next Header field the packet header has not been compressed, the Next Header field
remains unaltered. Conversely, for an inbound packet, the value of remains unaltered. Conversely, for an inbound packet, the value of
the security protocol Next Header field is checked to determine if the security protocol Next Header field is checked to determine if
the packet maintains a RoHC header. the packet maintains a RoHC header.
3.2. Nested IPComp and RoHCoIPsec Processing 3.2. Verifying the Integrity of Decompressed Packet Headers
In order to ensure that the RoHC compressed packet is decompressed
correctly, RoHCoIPsec will use an Integrity Algorithm (and respective
key) to compute a second Integrity Check Value (ICV) for the
uncompressed packet. This ICV will be prepended to the header-
compressed RoHC-compressed packet. At the decompresser, the
decompressed packet will be used with the Integrity Algorithm (and
its respective key) to compute a value that will be compared to the
ICV. If these values are not identical, the decompressed packet must
be dropped by the decompressor.
3.2.1. ICV Computation and Integrity Verification
In order to correctly verify the integrity of the decompressed
packets, the processing steps for RoHCoIPsec must be implemented in a
specific order, as given below.
For outbound packets that are to be processed by RoHC:
o An ICV is computed for the uncompressed packet via RoHCoIPsec's
Integrity Algorithm (and respective key)
o The packet is compressed by the RoHC process
o The ICV is prepended to the beginning of the compressed packet (in
front of the RoHC header)
o The security protocol is applied to the packet
For inbound packets that are to be decompressed by RoHC:
o A packet received on a RoHC-enabled SA is IPsec-processed
o The packet is decompressed by the RoHC process
o The decompressed packet is used with the Integrity Algorithm (and
its respective key) to compute a value that is compared to the ICV
(if these two values differ, the packet is dropped)
3.3. Nested IPComp and RoHCoIPsec Processing
IPComp ([IPCOMP]) is another mechanism that can be implemented to IPComp ([IPCOMP]) is another mechanism that can be implemented to
reduce the size of an IP datagram. If IPComp and RoHCoIPsec are reduce the size of an IP datagram. If IPComp and RoHCoIPsec are
implemented in a nested fashion, the order of the outbound and implemented in a nested fashion, the order of the outbound and
inbound processing steps must be carefully enumerated. inbound processing steps must be carefully enumerated.
For outbound packets that are to be processed by IPcomp and RoHC: For outbound packets that are to be processed by IPcomp and RoHC:
o The appropriate RoHC compression profile is applied to the packet o The ICV is computed for the uncompressed packet, and the
appropriate RoHC compression profile is applied to the packet
o IPComp is applied, and the packet is sent to the IPsec process o IPComp is applied, and the packet is sent to the IPsec process
o The security protocol is applied to the packet o The security protocol is applied to the packet
Conversely, for inbound packets that are to be both RoHC- and IPcomp- Conversely, for inbound packets that are to be both RoHC- and IPcomp-
decompressed: decompressed:
o A packet received on a RoHC-enabled SA is IPsec-processed o A packet received on a RoHC-enabled SA is IPsec-processed
o The datagram is decompressed based on the appropriate IPComp o The datagram is decompressed based on the appropriate IPComp
algorithm algorithm
o The packet is sent to the RoHC module for header decompression o The packet is sent to the RoHC module for header decompression and
integrity verification
3.3. CID Reuse
All RoHCoIPsec implementations that intend to reuse CIDs (i.e. remap
a previously used but now retired CID value in order to conserve CID
space) must support the ROHC-DOWN profile, as defined in [ROHC-DOWN].
This profile must be used to shut down the CID value before is can be
remapped.
4. Security Considerations 4. Security Considerations
A malfunctioning RoHC compressor (i.e., the compressor located at the A malfunctioning RoHC compressor (i.e., the compressor located at the
ingress of the IPsec tunnel) has the ability to send packets to the ingress of the IPsec tunnel) has the ability to send packets to the
decompressor (i.e., the decompressor located at the egress of the decompressor (i.e., the decompressor located at the egress of the
IPsec tunnel) that do not match the original packets emitted from the IPsec tunnel) that do not match the original packets emitted from the
end-hosts. Such a scenario will result in a decreased efficiency end-hosts. Such a scenario will result in a decreased efficiency
between compressor and decompressor. Furthermore, this may result in between compressor and decompressor. Furthermore, this may result in
Denial of Service, as the decompression of a significant number of Denial of Service, as the decompression of a significant number of
skipping to change at page 6, line 45 skipping to change at page 7, line 37
o Mr. Lars-Erik Jonnson o Mr. Lars-Erik Jonnson
o Mr. Pasi Eronen o Mr. Pasi Eronen
7. References 7. References
7.1. Normative References 7.1. Normative References
[IPSEC] Kent, S. and K. Seo, "Security Architecture for the [IPSEC] Kent, S. and K. Seo, "Security Architecture for the
Internet Protocol", RFC 4301, December 2005. Internet Protocol", RFC 4301, December 2005.
[ROHCOIPSEC]
Ertekin, E. and C. Christou, "Integration of Header
Compression over IPsec Security Associations", work in
progress , February 2007.
[ROHC] Bormann, C., Burmeister, C., Degermark, M., Fukushima, H., [ROHC] Bormann, C., Burmeister, C., Degermark, M., Fukushima, H.,
Hannu, H., Jonsson, L., Hakenberg, R., Koren, T., Le, K., Hannu, H., Jonsson, L., Hakenberg, R., Koren, T., Le, K.,
Liu, Z., Martensson, A., Miyazaki, A., Svanbro, K., Liu, Z., Martensson, A., Miyazaki, A., Svanbro, K.,
Wiebke, T., Yoshimura, T., and H. Zheng, "RObust Header Wiebke, T., Yoshimura, T., and H. Zheng, "RObust Header
Compression (ROHC): Framework and four profiles: RTP, UDP, Compression (ROHC): Framework and four profiles: RTP, UDP,
ESP, and uncompressed", RFC 3095, July 2001. ESP, and uncompressed", RFC 3095, July 2001.
[IPCOMP] Shacham, A., Monsour, R., Pereira, and Thomas, "IP Payload [IPCOMP] Shacham, A., Monsour, R., Pereira, and Thomas, "IP Payload
Compression Protocol (IPComp)", RFC 3173, September 2001. Compression Protocol (IPComp)", RFC 3173, September 2001.
skipping to change at page 7, line 24 skipping to change at page 8, line 22
Pezeshki, J., Ertekin, E., and C. Christou, "Extensions to Pezeshki, J., Ertekin, E., and C. Christou, "Extensions to
IKEv2 to Support Robust Header Compression over IPsec IKEv2 to Support Robust Header Compression over IPsec
(RoHCoIPsec)", work in progress , February 2007. (RoHCoIPsec)", work in progress , February 2007.
[AH] Kent, S., "IP Authentication Header", RFC 4302, [AH] Kent, S., "IP Authentication Header", RFC 4302,
December 2005. December 2005.
[ESP] Kent, S., "IP Encapsulating Security Payload (ESP)", [ESP] Kent, S., "IP Encapsulating Security Payload (ESP)",
RFC 4303, December 2005. RFC 4303, December 2005.
[ROHC-DOWN]
Bormann, C., "A ROHC Profile for CID shutdown (ROHC-
DOWN)", work in progress , July 2007.
7.2. Informative References 7.2. Informative References
[ROHCOIPSEC]
Ertekin, E., Christou, C., Jasani, R., and J. Pezeshki,
"Integration of Robust Header Compression (ROHC) over
IPsec Security Associations", work in progress ,
August 2007.
[ROHCPROF] [ROHCPROF]
IANA, ""RObust Header Compression (ROHC) Profile "RObust Header Compression (ROHC) Profile Identifiers",
Identifiers", IANA registry at: www.iana.org/assignments/rohc-pro-ids , October 2005.
http://www.iana.org/assignments/rohc-pro-ids".
[PROTOCOL] [PROTOCOL]
IANA, ""Assigned Internet Protocol Numbers", IANA registry IANA, ""Assigned Internet Protocol Numbers", IANA registry
at: http://www.iana.org/assignments/protocol-numbers". at: http://www.iana.org/assignments/protocol-numbers".
Authors' Addresses Authors' Addresses
Emre Ertekin Emre Ertekin
Booz Allen Hamilton Booz Allen Hamilton
13200 Woodland Park Dr. 13200 Woodland Park Dr.
 End of changes. 19 change blocks. 
54 lines changed or deleted 86 lines changed or added

This html diff was produced by rfcdiff 1.34. The latest version is available from http://tools.ietf.org/tools/rfcdiff/