One document matched: draft-arora-ipsecme-ikev2-alt-tunnel-addresses-00.txt



IPSECME WG                                               Jitender Arora 
Internet Draft                                           Prashant Kumar 
Intended status: Informational                              Acme Packet 
Expires: October 22, 2011                                April 22, 2010 
    
                   Alternate Tunnel Addresses for IKEv2 
        draft-arora-ipsecme-ikev2-alt-tunnel-addresses-00
    
Status of this Memo 
    
   This Internet-Draft is submitted to IETF in full conformance with 
   the provisions of BCP 78 and 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 October 22, 2011.  
    
Copyright and License Notice 
    
   Copyright (c) 2010 IETF Trust and the persons identified as the 
   document authors.  All rights reserved.  
        
   This document is subject to BCP 78 and the IETF Trust's Legal 
   Provisions Relating to IETF Documents 
   (http://trustee.ietf.org/license-info) in effect on the date of 
   publication of this document.  Please review these documents 
   carefully, as they describe your rights and restrictions with 
   respect to this document.  Code Components extracted from this 
   document must include Simplified BSD License text as described in 
   Section 4.e of the Trust Legal Provisions and are provided without 
   warranty as described in the BSD License. 




 
 
Arora & Kumar          Expires October 18, 2010               [Page 1] 
Internet-Draft                                              April 2010 
 
 
Abstract 
    
  IKEv2 is a protocol for setting up Virtual Private Network (VPN) 
  tunnels from a remote location to a gateway so that the VPN client 
  can access services in the network behind the gateway. Currently the   
  IKE SAs and tunnel mode Ipsec SA's are created implicitly between the  
  IP addresses that are used when the IKE_SA is established. These IP  
  addresses are then used as the outer (tunnel header) addresses  
  for tunnel mode IPSEC packets (transport mode IPsec SAs are beyond  
  the scope of this document). This document defines an IKEv2 extension  
  that allows the outer tunnel header addresses for the tunnel mode  
  IPSEC packets to be different than the IKE peer IP addresses. 
  
Table of Contents 
    
   1.    Introduction................................................2 
   2.    Terminology.................................................3 
   3.    IKEv2 IKE_AUTH exchange with different Tunnel Address.......3 
   4.    IKEv2 CREATE_CHILD_SA exchange with different Tunnel Address4 
   5.    Usage Scenarios.............................................5 
      5.1.   IKEv2 signaling and the IPSEC tunnel mode traffic on 
      different addresses............................................5 
   6.    NAT Scenarios and Routing issues............................5 
   7.    Alternate Tunnel address messages...........................6 
      7.1.   DIFFERENT_TUNNEL_ADDRESS_SUPPORTED.....................6 
      7.2.   TUNNEL_ADDRESS.........................................6 
   8.    IANA Considerations.........................................7 
   9.    Security Considerations.....................................8 
      9.1.   Different Tunnel Addresses and Hijacking...............8 
   10.   Acknowledgements............................................9 
   11.   Informative References......................................9 
      11.1.  Normative References...................................9 
      11.2.  Informative References.................................9 
   Author's Address.................................................10 
    
    
1. Introduction 
    
  IKEv2 [2] is used for setting up IPsec [8] based VPNs.  Currently the   
  IKE SAs and tunnel mode Ipsec SA's are created implicitly between the  
  IP addresses that are used when the IKE_SA is established. These IP  
  addresses are then used as the outer (tunnel header) addresses  
  for tunnel mode IPSEC packets. This imposes a limitation that all the   
  Ikev2 signaling and the IPSEC traffic needs to go to the same address  
  on the gateway. This document defines an IKEv2 extension that allows  
  the outer tunnel header addresses for the tunnel mode IPSEC packets  
Arora & Kumar                   Page 2                       4/22/2010 
 
                        Expires - October 2011                [Page 2] 
Internet-Draft                                              April 2010 
 
 
  to be different than the IKE peer IP addresses.  
 
  This document proposes an alternate Tunnel address mechanism for 
  IKEv2 that enables a VPN gateway or the VPN client use the different   
  tunnel address for the IPSEC packets than the one which is being  
  used for the IKE negotiation. The tunnel address can be specified 
  during the IKE_AUTH exchange and also during the CREATE_CHILD_SA  
  exchange.  
 
2. Terminology 
    
  The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 
  "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 
  document are to be interpreted as described in [1]. 
 
3. IKEv2 IKE_AUTH exchange with different Tunnel Address 
 
  This section describes the use of different Tunnel Address mechanism     
  during the IKE_AUTH exchange. The use of different tunnel address  
  during CREATE_CHILD_SA exchange are explained in subsequent  
  sections. 
 
  The VPN client indicates support for the IKEv2 different tunnel  
  address mechanism and the willingness to send or receive the traffic  
  on tunnel addresses different than the IKE peer addresses by  
  including a DIFFERENT_TUNNEL_ADDRESS_SUPPORTED notification message  
  in the initial IKE_SA_INIT request. If the VPN gateway supports this  
  it will also send the DIFFERENT_TUNNEL_ADDRESS_SUPPORTED message  
  back to the client in the IKE_SA_INIT response. 
 
       Initiator                    Responder (VPN GW) 
       ---------                    ------------------------- 
 
    (IKE_IP_I:500 -> IKE_IP_R:500) 
    HDR(A,0), SAi1, KEi, Ni,   --> 
    N(DIFFERENT_TUNNEL_ADDRESS_SUPPORTED) 
 
                              (IKE_IP_R:500 -> IKE_IP_I:500) 
                          <-- HDR(A,0),  
                              N(DIFFERENT_TUNNEL_ADDRESS_SUPPORTED) 
 
 
  Once the Gateway gets the notification that the different tunnel  
  address is supported by the endpoint, it can choose to assign the  
Arora & Kumar                   Page 3                       4/22/2010 
 
                        Expires - October 2011                [Page 3] 
Internet-Draft                                              April 2010 
 
 
  tunnel address which is different than the address which is used for  
  the IKEv2 signaling. Similarly the endpoint on getting the  
  notification that the gateway supports the different tunnel address  
  can chose to assign the different tunnel address. The following  
  IKE_AUTH exchange describes this: 
 
 
       Initiator                   Responder (VPN GW) 
       ---------                   --------------------------- 
    (IKE_IP_I:500 -> IKE_IP_R:500) 
    HDR(A,B), SK {IDi, [CERT,] [CERTREQ,] 
    [IDr,]AUTH, SAi2, TSi, TSr, [N(TUNNEL_ADDRESS)]} --> 
 
                              (IKE_IP_R:500 -> IKE_IP_I:500) 
                          <-- HDR(A,B), SK {IDr, [CERT,] AUTH, 
                               SAr2, TSi, TSr, [N(TUNNEL_ADDRESS)]} 
 
  The client will tell the TUNNEL-SRC-ADDRESS (client side) and the  
  Gateway will tell the TUNNEL-DST-ADDRESS (gateway side). If only one  
  side tells the different tunnel address, the IKE-address will be  
  used as the other side's TUNNEL address. 
 
4. IKEv2 CREATE_CHILD_SA exchange with different Tunnel Address 
 
  This section describes the use of different Tunnel Address mechanism     
  during the CREATE_CHILD_SA exchange.  
   
  Please refer to section 3 for the DIFFERENT_TUNNEL_ADDRESS_SUPPORTED  
  notification message during the IKE_SA_INIT exchange. 
 
  Once the Gateway gets the notification that the different tunnel  
  address is supported by the endpoint, it can choose to assign the  
  tunnel address which is different than the address which is used for  
  the IKEv2 signaling during the CREATE_CHILD_SA request. Similarly  
  the endpoint on getting the notification that the gateway supports  
  the different tunnel address can chose to assign the different  
  tunnel address. The following CREATE_CHILD_SA exchange describes  
  this: 
 
 





Arora & Kumar                   Page 4                       4/22/2010 
 
                        Expires - October 2011                [Page 4] 
Internet-Draft                                              April 2010 
 
 
       Initiator                   Responder (VPN GW) 
       ---------                   --------------------------- 
    (IKE_IP_I:500 -> IKE_IP_R:500) 
    HDR(A,B), SK {{[N], SA, Ni, [KEi], 
     TSi, TSr, [N(TUNNEL_ADDRESS)]} --> 
 
                              (IKE_IP_R:500 -> IKE_IP_I:500) 
                          <-- HDR(A,B), SK {SA, Nr, [KEr], 
                               TSi, TSr, [N(TUNNEL_ADDRESS)]} 
 
   The client will tell the TUNNEL-SRC-ADDRESS (client side) and the 
   Gateway will tell the TUNNEL-DST-ADDRESS (gateway side). If only one 
   side tells the different tunnel address, the IKE-address will be 
   used as the other side's TUNNEL address. 
    
    
5. Usage Scenarios 
 
5.1. IKEv2 signaling and the IPSEC tunnel mode traffic on different 
    addresses 
    
   Currently it is not possible to separate the IKEv2 signaling and the 
   IPSEC traffic on different IP addresses. There are applications 
   where we would like to have different addresses for signaling and 
   the IPSEC traffic coming to the gateway. One of these applications 
   can be load balancing of IPSEC tunnels. In this model, all the IKEv2 
   signaling from the clients will go through the IKEv2 load Balancer 
   to the selected gateway on a particular IP address, where as the 
   IPSEC traffic from clients will go directly to the gateway 
   (bypassing the load balancer) on different address. So in this case 
   the signaling and the traffic will reach the selected Gateway at 
   different addresses. 
    
6. NAT Scenarios and Routing issues 
    
   In some scenarios, the network may contain NATs or stateful packet 
   filters (for brevity, the rest of this document simply describes 
   NATs).  The NAT Traversal feature specified in [IKEv2] allows IKEv2 
   to work through NATs in many cases, and this draft will leverage 
   this functionality.  
    
   If the Gateway or the client determines that there is a NAT in front 
   of them, they will not change the tunnel address and will keep the 
   tunnel address same as the IKE address. If we try to solve this 
   issue, it will add a lot of complexity to the [IKEv2] protocol.  
    

Arora & Kumar                   Page 5                       4/22/2010 
 
                        Expires - October 2011                [Page 5] 
Internet-Draft                                              April 2010 
 
 
   The issues related to the routing of the IPSEC traffic between the 
   negotiated Tunnel Addresses is beyond the scope of this document. 
   The network operators need to take care of the routing between the 
   VPN clients and the Gateway. 
    
7. Alternate Tunnel address messages 
 
7.1. DIFFERENT_TUNNEL_ADDRESS_SUPPORTED 
 
  The DIFFERENT_TUNNEL_ADDRESS_SUPPORTED payload is included in the  
  initial IKE_SA_INIT request by the initiator or the  
  IKE_SA_INIT_RESPONSE by responder to indicate support for the IKEv2  
  different tunnel address mechanism described in this document. 
 
                         1                   2                   3 
     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(=0)| SPI Size (=0) |      Notify Message Type      | 
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
 
  The 'Next Payload', 'Payload Length', 'Protocol ID', 'SPI Size' and 
  the 'Notify Message Type' fields are the same as described in  
  Section 3.10 of [2].  The 'SPI Size' field MUST be set to 0 to 
  indicate that the SPI is not present in this message.  The 'Protocol  
  ID' MUST be set to 0, since the notification is not specific to a  
  particular security association. 
 
  The 'Payload Length' field is set to the length in octets of the 
  entire payload, including the generic payload header.  The 'Notify 
  Message Type' field is set to indicate the  
  DIFFERENT_TUNNEL_ADDRESS_SUPPORTED Payload <value to be assigned by  
  IANA>. 
 
7.2. TUNNEL_ADDRESS 
 
  The TUNNEL_ADDRESS payload is included in an IKE_AUTH request or  
  response and also in the CREATE_CHILD_SA request or response if the  
  initiator or the responder wants to use the different address for  
  the tunnel address (different than the address used for the IKEv2  
  signaling.  
    
  The message includes the IP address to be used for the tunnel src  
Arora & Kumar                   Page 6                       4/22/2010 
 
                        Expires - October 2011                [Page 6] 
Internet-Draft                                              April 2010 
 
 
  (client) or the tunnel destination (gateway). 
 
                         1                   2                   3 
     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(=0)| SPI Size (=0) |      Notify Message Type      | 
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    | IP Type |                     |                               | 
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    ~                   IPv4 or the IPv6 address                   ~ 
    |                                                               | 
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
 
  The 'Next Payload', 'Payload Length', 'Protocol ID', 'SPI Size' and 
  the 'Notify Message Type' fields are the same as described in  
  Section 3.10 of [2].  The 'SPI Size' field MUST be set to 0 to  
  indicate that the SPI is not present in this message.  The 'Protocol    
  ID' MUST be set to (2) to indicate AH or (3) to indicate ESP, since  
  the notification is specific to an IPSEC Security Associations.  
  The 'Payload Length' field is set to the length in octets of the 
  entire payload, including the generic payload header.  'Notify 
  Message Type' field is set to indicate the TUNNEL_ADDRESS payload  
  <value to be assigned by IANA>.  The IP Type' field indicates the IP  
  address type. The following values are valid in the TUNNEL ADDRESS  
  payload. 
 
      1 - IPv4 address  
      2 - IPv6 address 
      
  The IPv4 address, the IPv6 address MUST be encoded as described in  
  section 3.5 of [2]. 
    
8.   IANA Considerations 
 
  This document defines two new IKEv2 Notification Message types as 
  described in Section 7. The two Notify Message Types must be 
  assigned values between 16396 and 40959. 
 
   o  DIFFERENT_TUNNEL_ADDRESS_SUPPORTED 
   o  TUNNEL_ADDRESS 
 
Arora & Kumar                   Page 7                       4/22/2010 
 
                        Expires - October 2011                [Page 7] 
Internet-Draft                                              April 2010 
 
 
  This document creates a new namespace called the "IP Type".  This is  
  used to indicate the type of IP address being used. 
 
      1 - IPv4 Tunnel address 
      2 - IPv6 Tunnel address 
 
  Values '0', and 4-240 are reserved.  New values can be allocated by 
  Expert Review [9].  Values 241-255 are set aside for private use.  A 
  specification that extends this registry MUST also mention which of 
  the new values are valid in which Notification payload. 
    
9. Security Considerations 
    
  The main goals of this specification are to maintain the security 
  offered by usual IKEv2 procedures and to counter any threats    
  introduced by this draft in an appropriate manner.  This section  
  describes new security considerations introduced by this draft.  See  
  [IKEv2] for security considerations for IKEv2 in general. 
 
9.1. Different Tunnel Addresses and Hijacking 
 
   The payloads relating to different tunnel addresses are encrypted, 
   integrity protected, and replay protected using the IKE_SA.  This 
   assures that no one except the participants can, for instance, give  
   a control message to use the different tunnel address. 
 
   However, as with normal IKEv2, the actual IP addresses in the IP 
   header are not covered by the integrity protection.  This means that 
   a NAT between the parties (or an attacker acting as a NAT) can  
   modify the addresses and cause incorrect tunnel header (outer) IP  
   addresses to be used for IPsec SAs.  The scope of this attack is  
   limited mainly to denial of service because all traffic is protected  
   using IPsec. 
 
   This attack can only be launched by on-path attackers that are 
   capable of modifying IKEv2 messages carrying NAT detection  
   indications (such as Dead Peer Detection messages).  By modifying  
   the IP header of these packets, the attackers can lead the peers to  
   believe a new NAT or a changed NAT binding exists between them.  The  
   attack can continue as long as the attacker is on the path,  
   modifying the IKEv2 messages. 
 


Arora & Kumar                   Page 8                       4/22/2010 
 
                        Expires - October 2011                [Page 8] 
Internet-Draft                                              April 2010 
 
 
    
10.  Acknowledgements 

    Thanks to Bob Penfield and others for their input.
    
11.  Informative References 
 
11.1.     Normative References 
 
  [1]  Bradner, S., "Key words for use in RFCs to Indicate Requirement 
       Levels", BCP 14, RFC 2119, March 1997. 
 
  [2]  Kaufman, C., "Internet Key Exchange (IKEv2) Protocol", RFC  
       4306, December 2005. 
 
11.2.     Informative References 
 
  [3]  Johnson, D., Perkins, C., and J. Arkko, "Mobility Support in 
       IPv6", RFC 3775, June 2004. 
 
  [4]  Giaretta, G., Kempf, J., and V. Devarapalli, "Mobile IPv6 
       Bootstrapping in Split Scenario", RFC 5026, October 2007. 
 
  [5]  Haley, B., Devarapalli, V., Deng, H., and J. Kempf, "Mobility 
       Header Home Agent Switch Message", RFC 5142, January 2008. 
 
  [6]  Eronen, P. and J. Korhonen, "Multiple Authentication Exchanges 
       in the Internet Key Exchange (IKEv2) Protocol", RFC 4739, 
       November 2006. 
 
  [7]  Weniger, K. and F. Dupont, "IKEv2-based Home Agent Assignment  
       In Mobile IPv6/NEMO Bootstrapping", draft-dupont-ikev2- 
       haassign-02 (work in progress), January 2007. 
 
  [8]  Kent, S. and K. Seo, "Security Architecture for the Internet 
       Protocol", RFC 4301, December 2005. 
 
  [9]  Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA 
       Considerations Section in RFCs", BCP 26, RFC 5226, May 2008. 
   
  [10] V. Devarapalli and K. Weniger, "Redirect Mechanism for the 
       Internet Key Exchange Protocol Version 2 (IKEv2)", RFC 5685,    
       November 2009 



Arora & Kumar                   Page 9                       4/22/2010 
 
                        Expires - October 2011                [Page 9] 
Internet-Draft                                              April 2010 
 
 
 
 
    
Author's Address

   Jitender Arora
   Acme Packet
   71 Third Ave.
   Burlington, MA 01803, USA
   Email: jarora@acmepacket.com
    
   Prashant Kumar
   Acme Packet
   71 Third Ave.
   Burlington, MA 01803, USA
   Email: pkumar@acmepacket.com
    
    































Arora & Kumar                  Page 10                      4/22/2010 
 
                        Expires - October 2011               [Page 10] 

PAFTECH AB 2003-20262026-04-24 01:46:43