draft-ietf-rohc-ikev2-extensions-hcoipsec-08.txt   draft-ietf-rohc-ikev2-extensions-hcoipsec-09.txt 
Network Working Group E. Ertekin Network Working Group E. Ertekin
Internet-Draft C. Christou Internet-Draft C. Christou
Expires: August 6, 2009 R. Jasani Expires: February 13, 2010 R. Jasani
Booz Allen Hamilton Booz Allen Hamilton
T. Kivinen T. Kivinen
Safenet, Inc. Safenet, Inc.
C. Bormann C. Bormann
Universitaet Bremen TZI Universitaet Bremen TZI
February 2, 2009 August 12, 2009
IKEv2 Extensions to Support Robust Header Compression over IPsec IKEv2 Extensions to Support Robust Header Compression over IPsec
(ROHCoIPsec) (ROHCoIPsec)
draft-ietf-rohc-ikev2-extensions-hcoipsec-08 draft-ietf-rohc-ikev2-extensions-hcoipsec-09
Status of this Memo Status of this Memo
This Internet-Draft is submitted to IETF in full conformance with the This Internet-Draft is submitted to IETF in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79. This document may contain material
from IETF Documents or IETF Contributions published or made publicly
available before November 10, 2008. The person(s) controlling the
copyright in some of this material may not have granted the IETF
Trust the right to allow modifications of such material outside the
IETF Standards Process. Without obtaining an adequate license from
the person(s) controlling the copyright in such materials, this
document may not be modified outside the IETF Standards Process, and
derivative works of it may not be created outside the IETF Standards
Process, except to format it for publication as an RFC or to
translate it into languages other than English.
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
other groups may also distribute working documents as Internet- other groups may also distribute working documents as Internet-
Drafts. Drafts.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
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 August 6, 2009. This Internet-Draft will expire on February 13, 2010.
Copyright Notice Copyright Notice
Copyright (c) 2009 IETF Trust and the persons identified as the Copyright (c) 2009 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents in effect on the date of
(http://trustee.ietf.org/license-info) in effect on the date of publication of this document (http://trustee.ietf.org/license-info).
publication of this document. Please review these documents Please review these documents carefully, as they describe your rights
carefully, as they describe your rights and restrictions with respect and restrictions with respect to this document.
to this document.
Abstract Abstract
In order to integrate ROHC with IPsec [ROHCOIPSEC], a mechanism is In order to integrate ROHC with IPsec [ROHCOIPSEC], a mechanism is
needed to signal ROHC channel parameters between end-points. needed to signal ROHC channel parameters between end-points.
Internet Key Exchange (IKE) is a mechanism which can be leveraged to Internet Key Exchange (IKE) is a mechanism which can be leveraged to
exchange these parameters. This document specifies extensions to exchange these parameters. This document specifies extensions to
IKEv2 [IKEV2] that will allow ROHC and its associated channel IKEv2 [IKEV2] that will allow ROHC and its associated channel
parameters to be signaled for IPsec security associations (SAs). parameters to be signaled for IPsec security associations (SAs).
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4
2. ROHC Channel Initialization for ROHCoIPsec . . . . . . . . . . 3 2. ROHC Channel Initialization for ROHCoIPsec . . . . . . . . . . 4
2.1. ROHC Channel Parameters that are Signaled . . . . . . . . . 3 2.1. ROHC Channel Parameters that are Signaled . . . . . . . . 4
2.1.1. ROHC_SUPPORTED Notify Message . . . . . . . . . . . . . 4 2.1.1. ROHC_SUPPORTED Notify Message . . . . . . . . . . . . 5
2.1.2. ROHC Attribute Types . . . . . . . . . . . . . . . . . 5 2.1.2. ROHC Attribute Types . . . . . . . . . . . . . . . . . 6
2.2. ROHC Channel Parameters that are Implicitly Set . . . . . . 7 2.2. ROHC Channel Parameters that are Implicitly Set . . . . . 9
3. Security Considerations . . . . . . . . . . . . . . . . . . . . 7 3. Security Considerations . . . . . . . . . . . . . . . . . . . 9
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 7 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9
5. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . 8 5. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 10
6. References . . . . . . . . . . . . . . . . . . . . . . . . . . 9 6. References . . . . . . . . . . . . . . . . . . . . . . . . . . 10
6.1. Normative References . . . . . . . . . . . . . . . . . . . 9 6.1. Normative References . . . . . . . . . . . . . . . . . . . 10
6.2. Informative References . . . . . . . . . . . . . . . . . . 9 6.2. Informative References . . . . . . . . . . . . . . . . . . 11
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 9 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 11
1. Introduction 1. Introduction
Increased packet header overhead due to IPsec [IPSEC] can result in Increased packet header overhead due to IPsec [IPSEC] can result in
the inefficient utilization of bandwidth. Coupling ROHC [ROHC] with the inefficient utilization of bandwidth. Coupling ROHC [ROHC] with
IPsec offers an efficient way to transfer protected IP traffic. IPsec offers an efficient way to transfer protected IP traffic.
ROHCoIPsec [ROHCOIPSEC] requires configuration parameters to be ROHCoIPsec [ROHCOIPSEC] requires configuration parameters to be
initialized at the compressor and decompressor. Current initialized at the compressor and decompressor. Current
specifications for hop-by-hop ROHC negotiate these parameters through specifications for hop-by-hop ROHC negotiate these parameters through
skipping to change at page 5, line 41 skipping to change at page 6, line 41
Value is 2 octets and the ROHC Attribute Length field is not Value is 2 octets and the ROHC Attribute Length field is not
present. present.
o ROHC Attribute Value (variable length) - Value of the ROHC o ROHC Attribute Value (variable length) - Value of the ROHC
Attribute associated with the ROHC Attribute Type. If the AF bit Attribute associated with the ROHC Attribute Type. If the AF bit
is a zero (0), this field's length is defined by the ROHC is a zero (0), this field's length is defined by the ROHC
Attribute Length field. If the AF bit is a one (1), the length of Attribute Length field. If the AF bit is a one (1), the length of
the ROHC Attribute Value is 2 octets. the ROHC Attribute Value is 2 octets.
2.1.2. ROHC Attribute Types 2.1.2. ROHC Attribute Types
This section describes four ROHC Attribute Types: MAX_CID, This section describes five ROHC Attribute Types: MAX_CID,
ROHC_PROFILES, ROHC_INTEG, and ROHC_ICV_LEN. The value which defines ROHC_PROFILE, ROHC_INTEG, ROHC_ICV_LEN, and MRRU. The value
each ROHC Attribute Type is specified in Section 4. allocated for each ROHC Attribute Type is specified in Section 4.
Maximum Context Identifier (MAX_CID, AF = 1) Maximum Context Identifier (MAX_CID, AF = 1)
The MAX_CID attribute is a mandatory attribute. Exactly one The MAX_CID attribute is a mandatory attribute. Exactly one
MAX_CID attribute must be sent. The MAX_CID field indicates the MAX_CID attribute must be sent. The MAX_CID field indicates the
maximum value of a context Identifier supported by the ROHCoIPsec maximum value of a context Identifier supported by the ROHCoIPsec
decompressor. This attribute value is two octets in length. The decompressor. This attribute value is two octets in length. The
range of values for MAX_CID must be at least 0 and at most 16383 range of values for MAX_CID must be at least 0 and at most 16383
(the value 0 implies having one context). The recipient of the (the value 0 implies having one context). The recipient of the
MAX_CID Attribute must only use up to MAX_CID context identifiers MAX_CID Attribute must only use up to MAX_CID context identifiers
for compression. for compression.
Suggested value: 15
ROHC Profile (ROHC_PROFILE, AF = 1) ROHC Profile (ROHC_PROFILE, AF = 1)
The ROHC_PROFILE attribute is a mandatory attribute. At least one The ROHC_PROFILE attribute is a mandatory attribute. Each
ROHC_PROFILE attribute(s) must be sent. A ROHC_PROFILE attribute ROHC_PROFILE attribute has a fixed length of 4 octets, and its
contains a two-octet profile supported by the ROHCoIPsec attribute value is a two-octet long profile identifier. There may
decompressor. The recipient of a ROHC_PROFILE attribute(s) must be one or more ROHC_PROFILE attribute(s) included in the
only use the profile(s) proposed for compression. ROHC_SUPPORTED Notify Message. If multiple ROHC_PROFILE
attributes are sent, the order is arbitrary. The recipient of a
ROHC_PROFILE attribute(s) must only use the profile(s) proposed
for compression.
Several common profiles are defined in [ROHCV1] and [ROHCV2]. Several common profiles are defined in [ROHCV1] and [ROHCV2].
Note, however, that two versions of the same profile must not be Note, however, that two versions of the same profile must not be
signaled. For example, if a ROHCoIPsec decompressor supports both signaled. For example, if a ROHCoIPsec decompressor supports both
ROHCv1 UDP and ROHCv2 UDP profiles, both profiles must not be ROHCv1 UDP (0x0002) and ROHCv2 UDP (0x0102), both profiles must
signaled. not be signaled. This restriction is needed, as packets
compressed by ROHC express only the 8 least significant bits of
the profile identifier; since the 8 least significant bits for
corresponding profiles in ROHCv1 and ROHCv2 are identical, the
decompressor is not capable of determining the ROHC version that
was used to compress the packet.
Integrity Algorithm for Verification of Decompressed Headers Integrity Algorithm for Verification of Decompressed Headers
(ROHC_INTEG, AF = 1) (ROHC_INTEG, AF = 1)
The ROHC_INTEG attribute is a mandatory attribute. There must be The ROHC_INTEG attribute is a mandatory attribute. There must be
at least one ROHC_INTEG attribute contained within the at least one ROHC_INTEG attribute contained within the
ROHC_SUPPORTED Notify message. The attribute contains an ROHC_SUPPORTED Notify message. The attribute contains an
integrity algorithm that is used to ensure the integrity of the integrity algorithm that is used to ensure the integrity of the
decompressed packets (i.e. ensure that the packet headers are decompressed packets (i.e. ensure that the packet headers are
properly decompressed). The integrity algorithm is represented by properly decompressed).
a two octet value that corresponds to the value listed in [IKEV2-
PARA] "For Transform Type 3 (Integrity Algorithm)" section. Upon Authentication algorithms that must be supported are specified in
receipt of the ROHC_INTEG attribute(s), the responder must select Section 3.2 of [CRYPTO-ALG]. More explicitly, the implementation
exactly one of proposed algorithms and send the selected algorithm conformance requirements for authentication algorithms are as
back to the initiator. The selected integrity algorithm must be follows:
used in both directions.
Requirement Algorithm
----------- ----------------
Must AUTH_HMAC_SHA1_96
Should+ AUTH_AES_XCBC_MAC_96
May AUTH_HMAC_MD5_96
The integrity algorithm is represented by a two octet value that
corresponds to the value listed in [IKEV2-PARA] "For Transform
Type 3 (Integrity Algorithm)" section. Upon receipt of the
ROHC_INTEG attribute(s), the responder must select exactly one of
proposed algorithms and send the selected algorithm back to the
initiator. The selected integrity algorithm must be used in both
directions.
It is noted that: It is noted that:
1. The key for this Integrity Algorithm is computed using the 1. The key for this Integrity Algorithm is computed using the
same method as is used to compute IPsec's Integrity Algorithm same method as is used to compute IPsec's Integrity Algorithm
key ([IKEV2], Section 2.17). key ([IKEV2], Section 2.17). When a ROHC-enabled CHILD_SA is
rekeyed, the key associated with this integrity algorithm is
rekeyed as well.
2. A ROHCoIPsec initiator may signal a value of zero (0x0000) in 2. A ROHCoIPsec initiator may signal a value of zero (0x0000) in
a ROHC_INTEG attribute. This corresponds to "NONE" in the a ROHC_INTEG attribute. This corresponds to "NONE" in the
Integrity Algorithm Transform ID registry. The ROHCoIPsec Integrity Algorithm Transform ID registry. The ROHCoIPsec
responder may select this value by responding to the initiator responder may select this value by responding to the initiator
with a ROHC_INTEG attribute of zero (0x0000). In this with a ROHC_INTEG attribute of zero (0x0000). In this
scenario, no integrity algorithm is applied in either scenario, no integrity algorithm is applied in either
direction. direction.
Integrity Algorithm Length (ROHC_ICV_LEN, AF = 1) Integrity Algorithm Length (ROHC_ICV_LEN, AF = 1)
The ROHC_ICV_LEN attribute is an optional attribute. There may be The ROHC_ICV_LEN attribute is an optional attribute. There may be
skipping to change at page 7, line 19 skipping to change at page 8, line 42
truncated to ROHC_ICV_LEN bytes by taking the first ROHC_ICV_LEN truncated to ROHC_ICV_LEN bytes by taking the first ROHC_ICV_LEN
bytes of the output. Both the initiator and responder announce bytes of the output. Both the initiator and responder announce
their preference for their own ICV length. The recipient of the their preference for their own ICV length. The recipient of the
ROHC_ICV_LEN attribute must truncate the ICV to the length ROHC_ICV_LEN attribute must truncate the ICV to the length
contained in the message. If ROHC_ICV_LEN length is zero, then no contained in the message. If ROHC_ICV_LEN length is zero, then no
ICV is calculated or sent. If no ROHC_ICV_LEN attribute is sent ICV is calculated or sent. If no ROHC_ICV_LEN attribute is sent
at all or the ROHC_ICV_LEN is larger than the length of the ICV of at all or the ROHC_ICV_LEN is larger than the length of the ICV of
selected algorithm, then the full ICV length as specified by the selected algorithm, then the full ICV length as specified by the
ROHC_INTEG algorithm is sent. ROHC_INTEG algorithm is sent.
Maximum reconstructed reception unit (MRRU, AF = 1)
The MRRU attribute is an optional attribute. There may be zero or
one MRRU attribute contained within the ROHC_SUPPORTED Notify
message. If present, the attribute value is two octets in length.
The attribute specifies the size of the largest reconstructed unit
in octets that the ROHCoIPsec decompressor is expected to
reassemble from ROHC segments. This size includes the CRC, and
the ROHC ICV. If MRRU is 0 or if no MRRU attribute is sent, no
segment headers are allowed on the ROHCoIPsec channel.
If an unknown ROHC Attribute Type Value is received, it is silently If an unknown ROHC Attribute Type Value is received, it is silently
ignored. ignored.
2.2. ROHC Channel Parameters that are Implicitly Set 2.2. ROHC Channel Parameters that are Implicitly Set
The following ROHC channel parameters are not signaled: The following ROHC channel parameters are not signaled:
o LARGE_CIDS: This value is implicitly determined by the value of o LARGE_CIDS: This value is implicitly determined by the value of
MAX_CID (e.g. if MAX_CID is <= 15, LARGE_CIDS is assumed to be 0). MAX_CID (e.g. if MAX_CID is <= 15, LARGE_CIDS is assumed to be 0).
o MRRU: IPsec implementations will always implement path MTU
discovery; therefore, ROHC packets will never need to use ROHC
segmentation over an IPsec SA. As a result, this value will
always be zero, and does not need to be signaled.
o FEEDBACK_FOR: When a pair of SAs are created (one in each o FEEDBACK_FOR: When a pair of SAs are created (one in each
direction), the ROHC channel parameter FEEDBACK_FOR is set direction), the ROHC channel parameter FEEDBACK_FOR is set
implicitly to the other SA of the pair (i.e. the SA pointing in implicitly to the other SA of the pair (i.e. the SA pointing in
the reverse direction). the reverse direction).
3. Security Considerations 3. Security Considerations
The ROHC channel parameters signaled via IKEv2 do not add any new The ROHC channel parameters signaled via IKEv2 do not add any new
vulnerabilities beyond those associated with the normal operation of vulnerabilities beyond those associated with the normal operation of
IKEv2. IKEv2.
skipping to change at page 8, line 14 skipping to change at page 9, line 41
In addition, IANA is requested to allocate a "ROHC Attribute Types" In addition, IANA is requested to allocate a "ROHC Attribute Types"
registry in the IKEv2 Parameters Registry [IKEV2-PARA]. Within the registry in the IKEv2 Parameters Registry [IKEV2-PARA]. Within the
"ROHC Attribute Types" registry, this document allocates the "ROHC Attribute Types" registry, this document allocates the
following values: following values:
Registry Registry
Value ROHC Attribute Type Reference Value ROHC Attribute Type Reference
------------------------------------------------------------------ ------------------------------------------------------------------
0 RESERVED [rfcThis] 0 RESERVED [rfcThis]
1 Maximum value of context identifier (MAX_CID) [rfcThis] 1 Maximum Context Identifier (MAX_CID) [rfcThis]
2 ROHC Profile (ROHC_PROFILE) [rfcThis] 2 ROHC Profile (ROHC_PROFILE) [rfcThis]
3 ROHC Integrity Algorithm (ROHC_INTEG) [rfcThis] 3 ROHC Integrity Algorithm (ROHC_INTEG) [rfcThis]
4 ROHC ICV Length in bytes (ROHC_ICV_LEN) [rfcThis] 4 ROHC ICV Length in bytes (ROHC_ICV_LEN) [rfcThis]
5-65536 Unassigned 5 Maximum Reconstructed Reception Unit (MRRU) [rfcThis]
6-65536 Unassigned
Following the policies outlined in [IANA-CONSIDERATIONS], the IANA Following the policies outlined in [IANA-CONSIDERATIONS], the IANA
policy for assigning new values for the ROHC Attribute Types registry policy for assigning new values for the ROHC Attribute Types registry
shall be Specification Required: values and their meanings must be shall be Specification Required: values and their meanings must be
documented in a permanent and readily available public specification, documented in a permanent and readily available public specification,
in sufficient detail so that interoperability between independent in sufficient detail so that interoperability between independent
implementations is possible. implementations is possible.
5. Acknowledgments 5. Acknowledgments
skipping to change at page 8, line 41 skipping to change at page 10, line 23
Espy of OPnet for their contributions and support in the development Espy of OPnet for their contributions and support in the development
of this document. of this document.
The authors would also like to thank Mr. Yoav Nir, and Mr. Robert A The authors would also like to thank Mr. Yoav Nir, and Mr. Robert A
Stangarone Jr.: both served as committed document reviewers for this Stangarone Jr.: both served as committed document reviewers for this
specification. specification.
In addition, the authors would like to thank the following for their In addition, the authors would like to thank the following for their
numerous reviews and comments to this document: numerous reviews and comments to this document:
o Mr. Magnus Westerlund
o Dr. Stephen Kent o Dr. Stephen Kent
o Mr. Lars-Erik Jonsson o Mr. Lars-Erik Jonsson
o Mr. Pasi Eronen o Mr. Pasi Eronen
o Dr. Jonah Pezeshki o Dr. Jonah Pezeshki
o Mr. Carl Knutsson o Mr. Carl Knutsson
o Dr. Joseph Touch o Dr. Joseph Touch
Finally, the authors would also like to thank Mr. Tom Conkle, Ms. Finally, the authors would also like to thank Mr. Tom Conkle, Ms.
Michele Casey, and Mr. Etzel Brower. Michele Casey, and Mr. Etzel Brower.
skipping to change at page 9, line 34 skipping to change at page 11, line 17
[ROHCV2] Pelletier, G. and K. Sandlund, "RObust Header Compression [ROHCV2] Pelletier, G. and K. Sandlund, "RObust Header Compression
Version 2 (ROHCv2): Profiles for RTP, UDP, IP, ESP and UDP Version 2 (ROHCv2): Profiles for RTP, UDP, IP, ESP and UDP
Lite", RFC 5225, April 2008. Lite", RFC 5225, April 2008.
6.2. Informative References 6.2. Informative References
[ROHCOIPSEC] [ROHCOIPSEC]
Ertekin, E., Jasani, R., Christou, C., and C. Bormann, Ertekin, E., Jasani, R., Christou, C., and C. Bormann,
"Integration of Header Compression over IPsec Security "Integration of Header Compression over IPsec Security
Associations", work in progress , February 2009. Associations", work in progress , August 2009.
[ROHC-PPP] [ROHC-PPP]
Bormann, C., "Robust Header Compression (ROHC) over PPP", Bormann, C., "Robust Header Compression (ROHC) over PPP",
RFC 3241, April 2002. RFC 3241, April 2002.
[CRYPTO-ALG]
Manral, V., "Cryptographic Algorithm Implementation
Requirements for Encapsulating Security Payload (ESP) and
Authentication Header (AH)", RFC 4835, April 2007.
[IKEV2-PARA] [IKEV2-PARA]
IANA, "IKEv2 Parameters, IANA, "IKEv2 Parameters,
http://www.iana.org/assignments/ikev2-parameters", http://www.iana.org/assignments/ikev2-parameters",
January 2008. January 2008.
[IANA-CONSIDERATIONS] [IANA-CONSIDERATIONS]
Narten, T. and H. Alvestrand, "Guidelines for Writing an Narten, T. and H. Alvestrand, "Guidelines for Writing an
IANA Considerations Section in RFCs", RFC 5226, IANA Considerations Section in RFCs", RFC 5226,
October 1998. October 1998.
skipping to change at page 10, line 29 skipping to change at page 12, line 18
US US
Email: christou_chris@bah.com Email: christou_chris@bah.com
Rohan Jasani Rohan Jasani
Booz Allen Hamilton Booz Allen Hamilton
13200 Woodland Park Dr. 13200 Woodland Park Dr.
Herndon, VA 20171 Herndon, VA 20171
US US
Email: jasani_rohan@bah.com Email: ro@breakcheck.com
Tero Kivinen Tero Kivinen
Safenet, Inc. Safenet, Inc.
Fredrikinkatu 47 Fredrikinkatu 47
HELSINKI HELSINKI
FI FI
Email: kivinen@safenet-inc.com Email: kivinen@safenet-inc.com
Carsten Bormann Carsten Bormann
 End of changes. 21 change blocks. 
51 lines changed or deleted 93 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/