Network Working Group J. Pezeshki Internet-Draft E. Ertekin
Expires: August 28, 2007Intended status: Experimental R. Jasani Expires: December 3, 2007 C. Christou Booz Allen Hamilton February 24,June 1, 2007 IKEv2 Extensions to Support Robust Header Compression over IPsec (HCoIPsec) draft-ietf-rohc-ikev2-extensions-hcoipsec-01(RoHCoIPsec) draft-ietf-rohc-ikev2-extensions-hcoipsec-02 Status of this Memo By submitting this Internet-Draft, each author represents that any 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 aware will be disclosed, in accordance with Section 6 of BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire on August 28,December 3, 2007. Copyright Notice Copyright (C) The IETF Trust (2007). Abstract When using Robust Header Compression (HC) schemes (e.g. ROHC(RoHC [ROHC]) in conjunction with IPsec [IPSEC] (i.e. [HCOIPSEC])[RoHCOIPSEC]) a mechanism is needed to negotiate ROHCRoHC configuration parameters between end-points prior to operation. Internet Key Exchange (IKE) is a mechanism which can be leveraged to handle these negotiations. This document specifies extensions to Internet Key Exchange (IKEv2 [IKEV2]) that will allow ROHCRoHC and its associated configuration parameters to be negotiated for IPsec security associations (SAs). Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Header CompressionRoHC Channel Negotiation . . . . . . . . . . . . . . . . . . . 3 2.1. Negotiation of Header CompressionRoHC Channel Parameters . . . . . . . . . . 3 2.1.1. Profiles Suboption . . . . . . . . . . . . . . . . . . 6 3. Security Considerations . . . . . . . . . . . . . . . . . . . 7 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 5. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 7 6. References . . . . . . . . . . . . . . . . . . . . . . . . . . 8 6.1.Normative References . . . . . . . . . . . . . . . . . . . 8 6.2. Informative References . . . . . . . . . . . . . . . .. . 8 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 8 Intellectual Property and Copyright Statements . . . . . . . . . . 10 1. Introduction Increased packet header overhead due to IPsec protection can result in inefficient utilization of bandwidth. Coupling HCRoHC with IPsec offers an efficient way to transfer protected IP traffic. HC schemes requireFor proper RoHCoIPsec [ROHCOIPSEC] operation, RoHC requires configuration parameters to be negotiated between the compressor and decompressor, prior to operation. Current specifications of hop-by- hop ROHCRoHC schemes negotiate these parameters through a link-layer protocol such as Point-to-Point Protocol (PPP) (i.e. ROHCRoHC over PPP [ROHCPPP]). Similarly, key exchange protocols (e.g. IKEv2) exist, whichare commonly used to negotiate parameters between IPsec peers before a SA can be established. This document proposes the use of IPsec's parameter negotiation mechanism, IKE,IKEv2 to handle ROHCRoHC channel configuration for HCoIPsec. VariousRoHCoIPsec, and details various extensions to IKEv2, designedIKEv2 which are intended to provide this functionality, are detailed within this document.functionality. 2. Header CompressionRoHC Channel Negotiation The initialization of a ROHCRoHC session requires the negotiation of a set of configuration parameters (e.g. maximum context identifier length,MAX_CID, etc.). As such, a mechanism must exist for a ROHCRoHC enabled device to share a list of supported HCRoHC parameters with its peer, and for the peer to select the appropriate parameters from this list. Similarly, negotiable parameters must also be shared between IPsec peers before a SA can be established. To perform this negotiation, a key exchange protocol, IKEv2, is commonly used. IKEv2 is an extensible protocol that negotiates parameters via request/response message pairs (i.e. exchanges). A set of extensions to IKEv2 can be defined, which will allow for ROHCRoHC parameters to be negotiated during the creation and rekeying of Child SAs. This new Notify payload will contain values for the set of ROHCRoHC parameters to be negotiated between the two ROHCRoHC peers. 2.1. Negotiation of Header CompressionRoHC Channel Parameters ROHCRoHC configuration parameters will be negotiated at either the establishment or rekeying of a Child SA. Specifically, a Notify payload will be used during the IKE_AUTH and CREATE_CHILD_SA exchanges to negotiate the HCoIPsecRoHCoIPsec session. The Notify payload sent by the initiator will contain the configuration parameters for the ROHCRoHC scheme. Upon receipt of the initiator's request, the responder will either ignore the payload (if it doesn't support ROHCRoHC or the proposed parameters) or respond with a Notify payload that contains the accepted negotiableRoHC channel parameters. A new Notify Message Type value, denoted ROHC_SUPPORTED, will be added to indicate that the Notify payload is conveying ROHCRoHC channel parameters. As defined in [IPSEC],[IKEV2], the Notify payload is specified as follows: 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! Next Payload !C! RESERVED ! Payload Length ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! Protocol ID ! SPI Size ! Notify Message Type ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! ! ~ Notification Data ~ ! ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 1: Notify Payload To negotiate HCoIPsec,RoHCoIPsec, the values for the fields in the Notify payload are defined as follows: Next Payload (1 octet) Identifier for the payload type of the next payload in the message. If the current payload is the last in the message, then this field will be 0. The Next Payload value of the previous payload must be 41, indicating that this current payload is a Notify Payload. Critical (1 bit) This value is set to zero, indicating that the recipient must skip this payload if it does not understand the payload type code in the Next Payload field of the previous payload. RESERVED (7 bits) Must be sent as zero, and must be ignored on receipt. Payload Length (2 octets) Length in octets of the current payload, including the generic payload header.header (the generic payload header is defined in [IKEV2], section 3.2). Protocol ID (1 octet) If this notification concerns an existing SA, this field indicates the type of that SA (i.e. IKE_SA, AH [AH], or ESP [ESP]). Since the ROHCRoHC parameters are set at SA creation, and thus do not relate to an existing SA, this field must be set to zero. SPI Size (1 octet) Length in octets of the SPI as defined by the IPsec protocol ID. This value must be set to zero, since no SPI is applicable (ROHC(RoHC parameters are set at SA creation, thus the SPI has not been defined). Notify Message Type (2 octets) Specifies the type of notification message. This field must be set to ROHC_SUPPORTED. ROHCRoHC configuration parameters will be communicated via a new Notify message type, denoted ROHC_SUPPORTED. The ROHCRoHC configuration parameters will be listed within the Notification Data field in the following format: 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! HC!ROHC PRMTR LNTH !LNTH! MAX_CID ! MRRU... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ...MRRU ! MAX_HEADER ! ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + ! ! ~ suboptions... ~ ! ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 2: Notification Data field HCROHC PARAMETER LENGTH (1 octet) >= 7 (i.e. the combined length of HCRoHC PARAMETER LENGTH, MAX_CID, MRRU, and MAX_HEADER) MAX_CID (2 octets) The MAX_CID field indicates the maximum value of a context identifier. This value must be at least 0 and at most 16383 (The value 0 implies having one context). Suggested value: 15 Note: The value of LARGE_CIDS will be implicitly determined by this value (i.e. if MAX_CID is <= 15, LARGE_CIDS will be assumed to be 0). MRRU (2 octets) The MRRU field indicates the maximum reconstructed reception unit (see [ROHC], section 5.1.1). Suggested value: 0 Note:The MRRU value is used in conjunction with the segmentation protocol defined in ROHC.RoHC. Since a HCoIPsec compressor and decompressorRoHCoIPsec will generally be separated byimplemented across multiple link-layer "hops", segmentation will not normally be needed.required. In these cases the MRRU value shouldwill be set to zero, indicating that no segmented ROHC segmented-header packetssegment headers are allowed on the channel. MAX_HEADER (2 octets) The largest header size in octets that may be compressed. Suggested value: 168 octets Note: The MAX_HEADER parameter is not used for all ROHCRoHC profiles. If none of the ROHCRoHC profiles require this field, this value is ignored. suboptions The suboptions field consists of one or more suboptions. Each suboption consists of a type field, a length field and zero or more parameter octets, as defined by the suboption type. The value of the length field indicates the length of the suboption in its entirety, including the lengths of the type and length fields. 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! Type ! Length ! Parameters... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 3: Suboption Note: When a pair of SAs are created (one in each direction), the ROHCRoHC channel parameter FEEDBACK_FOR is set implicitly to the other SA of the pair (i.e. the SA pointing in the reverse direction). 2.1.1. Profiles Suboption The set of profiles to be enabled on a Child SA is subject to negotiation. 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! Type ! Length ! Profiles... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 4: Profiles suboption Type 1 Length 2n+2 Value n octet-pairs in ascending order, each octet-pair specifying a ROHCRoHC profile supported. Values negotiated are assigned in the ROHCRoHC profile identifiers registry [ROHCPROF]. 3. Security Considerations The negotiated HC schemes andRoHC parameters negotiated via IKEv2 do not add any new vulnerabilities beyond those associated with the normal operation of IKEv2. 4. IANA Considerations This document defines a new Notify Message Type. Therefore, if the proposal is accepted,IANA is requested to allocate onone value from the IKEv2 Notify Message Types registry to indicate ROHC_SUPPORTED. 5. Acknowledgments The authors would like to thank Mr. Sean O'Keeffe, Mr. James Kohler, and Ms. Linda Noone of the Department of Defense, as well as Mr. Rich Espy of OPnet for their contributions and support in the development of this document. The authors would also like to thank Mr. Tero Kivinen for providing his technical expertise for this document. In addition, the authors would like to thank the following for their numerous reviews and comments to this document: Dr. Stephen Kent Dr. Carsten Bormann Mr. Lars-Erik Jonnson Finally, the authors would also like to thank Mr. Tom Conkle, Ms. Michele Casey, and Mr. Etzel Brower. 6. References 6.1.Normative References [ROHC] Bormann, C., Burmeister, C., Degermark, M., Fukushima, H., Hannu, H., Jonsson, L., Hakenberg, R., Koren, T., Le, K., Liu, Z., Martensson, A., Miyazaki, A., Svanbro, K., Wiebke, T., Yoshimura, T., and H. Zheng, "RObust Header Compression (ROHC): Framework and four profiles: RTP, UDP, ESP, and uncompressed", RFC 3095, July 2001. [IPSEC] Kent, S. and K. Seo, "Security Architecture for the Internet Protocol", RFC 4301, December 2005. [HCOIPSEC][RoHCOIPSEC] Ertekin, E., Christou, C., and R. Jasani, "Integration of Robust Header Compression over IPsec Security Associations", work in progress , February 2007.June 2006. [IKEV2] Kaufman, C., "Internet Key Exchange (IKEv2) Protocol", RFC 4306, December 2005. [ROHCPROF] "RObust Header Compression (ROHC) Profile Identifiers", www.iana.org/assignments/ROHC-pro-ids , October 2005. 6.2. Informative References[ROHCPPP] Bormann, C., "Robust Header Compression (ROHC) over PPP", RFC 3241, April 2002. [AH] Kent, S., "IP Authentication Header", RFC 4302, December 2005. [ESP] Kent, S., "IP Encapsulating Security Payload (ESP)", RFC 4303, December 2005. [ROHCPROF] "RObust Header Compression (ROHC) Profile Identifiers", www.iana.org/assignments/ROHC-pro-ids , October 2005. Authors' Addresses Jonah Pezeshki Booz Allen Hamilton 13200 Woodland Park Dr. Herndon, VA 20171 US Email: firstname.lastname@example.org Emre Ertekin Booz Allen Hamilton 13200 Woodland Park Dr. Herndon, VA 20171 US Email: email@example.com Rohan Jasani Booz Allen Hamilton 13200 Woodland Park Dr. Herndon, VA 20171 US Email: firstname.lastname@example.org Chris Christou Booz Allen Hamilton 13200 Woodland Park Dr. Herndon, VA 20171 US Email: email@example.com Full Copyright Statement Copyright (C) The IETF Trust (2007). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights. This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Intellectual Property The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79. Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at firstname.lastname@example.org. Acknowledgment Funding for the RFC Editor function is provided by the IETF Administrative Support Activity (IASA).