RFC 2356 INFORMATIONAL MOBILE IP · FIREWALL · IPSEC

Sun's SKIP Firewall Traversal for Mobile IP

How a roaming Mobile IP laptop can negotiate its way past a SKIP firewall into its home network.

On rfc-editor.org ↗
PUBLISHED
June 1998
AUTHORS
G. Montenegro, V. Gupta
STREAM
IETF
TRAVERSAL EXTENSION TYPE
129
TRAVERSAL EXTENSION LENGTH
10
TRAVERSAL EXTENSION SIZE
12 octets
SOCKS ROUND TRIPS BEFORE DATA
4 minimum, 6 with GSS-API
SOCKS TCP PORT
1080
NAME SPACE FOR HOME-ADDRESS KEYING
NSID 1
DOI
10.17487/RFC2356

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                      G. Montenegro
Request for Comments: 2356                                      V. Gupta
Category: Informational                           Sun Microsystems, Inc.
                                                               June 1998


              Sun's SKIP Firewall Traversal for Mobile IP

Status of This Memo

   This memo provides information for the Internet community.  This memo
   does not specify an Internet standard of any kind.  Distribution of
   this memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (1998).  All Rights Reserved.

Abstract

   The Mobile IP specification establishes the mechanisms that enable a
   mobile host to maintain and use the same IP address as it changes its
   point of attachment to the network. Mobility implies higher security
   risks than static operation, because the traffic may at times take
   unforeseen network paths with unknown or unpredictable security
   characteristics. The Mobile IP specification makes no provisions for
   securing data traffic.  The mechanisms described in this document
   allow a mobile node out on a public sector of the internet to
   negotiate access past a SKIP firewall, and construct a secure channel
   into its home network.

   In addition to securing traffic, our mechanisms allow a mobile node
   to roam into regions that (1) impose ingress filtering, and (2) use a
   different address space.

Table of Contents

   1. Introduction ...............................................    2
   2. Mobility without a Firewall ................................    4
   3. Restrictions imposed by a Firewall .........................    4
   4. Two Firewall Options: Application relay and IP Security ....    5
   4.1 SOCKS version 5 [4] .......................................    5
   4.2 SKIP [3] ..................................................    6
   5. Agents and Mobile Node Configurations ......................    8
   6. Supporting Mobile IP: Secure Channel Configurations ........    9
   6.1 I: Encryption only Outside of Private Network .............    9
   6.2 II: End-to-End Encryption .................................   10
   6.3 III: End-to-End Encryption, Intermediate Authentication ...   10
   6.4 IV: Encryption Inside and Outside .........................   10
   6.5 Choosing a Secure Channel Configuration ...................   11
   7. Mobile IP Registration Procedure with a SKIP Firewall ......   11
   7.1. Registration Request through the Firewall ................   12
   7.1.1. On the Outside (Public) Network ........................   13
   7.1.2. On the Inside (Private) Network ........................   14
   7.2. Registration Reply through the Firewall ..................   14
   7.2.1. On the Inside (Private) Network ........................   15
   7.2.2. On the Outside (Public) Network ........................   15
   7.3. Traversal Extension ......................................   16
   8. Data Transfer ..............................................   18
   8.1. Data Packet From the Mobile Node to a Correspondent Node .   18
   8.2. Data Packet From a Correspondent Node to the Mobile Node .   19
   8.2.1 Within the Inside (Private) Network .....................   20
   8.2.2. On the Outside (Public) Network ........................   21
   9. Security Considerations ....................................   21
   Acknowledgements ..............................................   22
   References ....................................................   22
   Authors' Addresses ............................................   23
   Full Copyright Statement ......................................   24

1. Introduction

   This document specifies what support is required at the firewall, the
   Mobile IP [1] home agent and the Mobile IP mobile node to enable the
   latter to access a private network from the Internet.  For example, a
   company employee could attach his/her laptop to some Internet access
   point by:

      a)   Dialing into a PPP/SLIP account on an Internet service
           provider's network.

      b)   Connecting into a 10Base-T or similar LAN network available
           at, for example, an IETF terminal room, a local university,
           or another company's premises.

   Notice that in these examples, the mobile node's relevant interface
   (PPP or 10Base-T) is configured with an IP address different from
   that which it uses "normally" (i.e. at the office). Furthermore, the
   IP address used is not necessarily a fixed assignment. It may be
   assigned temporarily and dynamically at the beginning of the session
   (e.g. by IPCP in the PPP case, or DHCP in the 10Base-T case).

   The following discussion assumes a network configuration consisting
   of a private network separated by a firewall from the general
   Internet or public network.  The systems involved are:

      Private Network

           A protected network separated from the Internet by hosts
           enforcing access restrictions (firewalls). A private network
           may use a private address space, and its addresses may not
           even be routable by the general internet.

      Public Network

          The Internet at large. Hosts are able to communicate with each
          other throughout the public network without firewall-imposed
          restrictions.

      Mobile Node (MN)

          Its permanent address falls within the range of the private
          network. The user removes the system from its home network,
          and connects it to the Internet at another point.  The
          mechanisms outlined in this discussion render this mobility
          transparent:  the mobile node continues accessing its home
          network and its resources exactly as if it were still within
          it.  Notice that when the mobile node leaves its home
          network, it may migrate both within and outside of the
          private network's boundaries. As defined by Mobile IP [1], a
          mobile node uses a care-of address while roaming.

      Home Agent (HA) for the mobile node

         Serves as a location registry and router as described in the
         Mobile IP IETF draft.

      Foreign Agent (FA)

         Serves as a registration relayer and care of address for the
         mobile node as described in the Mobile IP IETF draft.

      Correspondent Node (CH)

         A system that is exchanging data packets with the mobile
         node.

      Firewall (FW)

         The system (or collection of systems) that enforces access
         control between the private network and the general Internet.
         It may do so by a combination of functions such as application
         gatewaying, packet filtering and cryptographic techniques.

   The mechanisms described in this document allow a mobile node out on
   a public sector of the network to negotiate access past a SKIP
   firewall, and construct a secure channel into its home network.  This
   enables it to communicate with correspondent nodes that belong to the
   private network, and, if bi-directional tunnels are used, with
   external hosts that are reachable when the mobile node is at home.
   The mobile node enjoys the same level of connectivity and privacy as
   it does when it is in its home network.

   This document does not address the scenario in which the mobile node
   attempts to access its private network, while within another private
   network.

   Sections 2 and 3 provide an overview of the environment being
   considered and the restrictions it imposes.  Section 4 examines
   firewall technologies. Section 5 discusses the best mode of operation
   of the participating entities from the point of view of Mobile IP.
   Section 6 discusses possible configuration for the secure channel.
   Finally, packet formats are the topic of sections 7 and 8.

2. Mobility without a Firewall

   Suppose the mobile node is roaming throughout the general Internet,
   but its home network is not protected by a firewall. This is
   typically found in academic environment as opposed to corporate
    networks.

   This works as prescribed by Mobile IP [1]. The only proviso is that
   the mobile node would most probably operate with a co-located address
   instead of using a separate foreign agent's care-of address.  This is
   because, at least in the near term, it is far more likely to be able
   to secure a temporary care-of-address than it is to find a foreign
   agent already deployed at the site you are visiting. For example:

   -   Internet Service Provider: pre-assigns customers IP addresses,
       or assigns them out dynamically via PPP's address negotiation.

   -   An IETF terminal room may pre-assign addresses for your use or
       offer DHCP services.

   -   Other locations probably would offer DHCP services.

3. Restrictions imposed by a Firewall

   The firewall imposes restrictions on packets entering or leaving the
   private network. Packets are not allowed through unless they conform
   to a filtering specification, or unless there is a negotiation
   involving some sort of authentication.

   Another restriction is imposed by the separation between private
   addresses and general Internet addresses. Strictly speaking, this is
   not imposed by a firewall, but by the characteristics of the private
   network. For example, if a packet destined to an internal address
   originates in the general Internet, it will probably not be
   delivered.  It is not that the firewall drops it. Rather, the
   Internet's routing fabric is unable to process it. This elicits an
   ICMP host unreachable packet sent back to the originating node.

   Because of this, the firewall MUST be explicitly targeted as the
   destination node by outside packets seeking to enter the private
   network. The routing fabric in the general Internet will only see the
   public address of the firewall and route accordingly.  Once the
   packet arrives at the firewall, the real packet destined to a private
   address is recovered.

4. Two Firewall Options: Application relay and IP Security

   Before delving into any details, lets examine two technologies which
   may provide firewall support for mobile nodes:

   -   application relaying or proxying, or

   -   IP Security.

   To understand the implications, let's examine two specific schemes to
   accomplish the above: SOCKS version 5 and SKIP.

4.1 SOCKS version 5 [4]

   There is an effort within the authenticated firewall traversal WG
   (aft) of the IETF to provide a common interface for application
   relays.

   The solution being proposed is a revised specification of the SOCKS
   protocol. Version 5 has been extended to include UDP services as
   well.  The SOCKS solution requires that the mobile node -- or another
   node on its behalf -- establish a TCP session to exchange UDP traffic
   with the FW. It also has to use the SOCKS library to encapsulate the
   traffic meant for the FW. The steps required by a SOCKS solution are:

   -   TCP connection established to port 1080 (1.5 round trips)

   -   version identifier/method selection negotiation (1 round trip)

       -   method-dependent negotiation. For example, the
           Username/Password Authentication [5] requires 1 round trip:

           1. client sends a Username/Password request
           2. FW (server) responds

           The GSS-API negotiation requires at least 3 round trips:

           1. client context establishment (at least 1 round trip)
           2. client initial token/server reply (1 round trip)
           3. message protection subnegotiation (at least 1 round trip)

   -   (finally) SOCKS request/reply (1 round trip)

   This is a minimum of 4 (6 with GSS-API) round-trips before the client
   is able to pass data through the FW using the following header:

      +----+------+------+----------+----------+----------+
      |RSV | FRAG | ATYP | DST.ADDR | DST.PORT |   DATA   |
      +----+------+------+----------+----------+----------+
      | 2  |  1   |  1   | Variable |    2     | Variable |
      +----+------+------+----------+----------+----------+

   Bear in mind that the above must be done each time the mobile
   registers a new care-of address. In addition to this inefficiency,
   this scheme requires that we use UDP to encapsulate IP datagrams.
   There is at least one commercial network that does this, but it is
   not the best solution.

   Furthermore, SOCKS defines how to establish authenticated
   connections, but currently it does not provide a clear solution to
   the problem of encrypting the traffic.

   This header contains the relay information needed by all parties
   involved to reach those not directly reachable.

4.2 SKIP [3]

   Alternatively, traffic from the mobile node to the firewall could be
   encrypted and authenticated using a session-less IP security
   mechanism like SKIP. This obviates the need to set up a session just
   to exchange UDP traffic with the firewall.

   A solution based on SKIP is very attractive in this scenario, as no
   round trip times are incurred before the mobile node and the firewall
   achieve mutual trust: the firewall can start relaying packets for the
   mobile node as soon as it receives the first one.  This, of course,
   implies that SKIP is being used with AH [7] so that authentication
   information is contained in each packet.  Encryption by using ESP [6]
   is also assumed in this scenario, since the Internet at large is
   considered a hostile environment.  An ESP transform that provides
   both authentication and encryption could be used, in which case the
   AH header need not be included.

   The firewall and the mobile node may be previously configured with
   each other's authenticated Diffie-Hellman public components (also
   known as public values).  Alternatively, they could exchange them in
   real-time using any of the mechanisms defined by the SKIP protocol
   (on-line certificate directory service or certificate discovery
   protocol). Home agents and the firewall also MUST have, be able to
   exchange or obtain each other's public components.

   There are other proposals besides SKIP to achieve IP layer security.
   However, they are session-oriented key management solutions, and
   typically imply negotiations spanning several round-trip times before
   cryptographically secure communications are possible.  In this
   respect they raise similar concerns to those outlined previously in
   the discussion on SOCKS-based solutions.  Others have arrived at
   similar conclusions regarding the importance of session-less key
   management for Mobile IP applications [8].

   Another advantage of SKIP is its support for nomadic applications.
   Typically, two hosts communicating via a secure IP layer channel use
   the IP source and destination addresses on incoming packets to arrive
   at the appropriate security association. The SKIP header can easily
   supersede this default mechanism by including the key ID the
   recipient must use to obtain the right certificate.

   The key id is specified by two fields in the SKIP header:

      1) a name space identifier (NSID) to indicate which of the
         possible name spaces is being used, and,

      2) a master key identifier (MKID) that uniquely indicates (within
         the given name space) an id to use in fetching the proper
         certificate.

   As an example, by setting NSID to 1 and MKID to its home address, a
   mobile node tells a receiver "ignore the IP source and use my home
   address instead to look up my public component". Similarly, setting
   NSID to 8 enables using Unsigned Diffie-Hellman (UDH) certificates.

   In this case, the MKID is set to the MD5 hash of the DH public
   component [10].

   In addition to the NSID/MKID feature, Mobile IP is best supported by
   an appropriate policy at the SKIP firewall in the form of a "nomadic"
   access control list entry. This is an entry which is filtered by key
   ID, instead of by IP source address, as is the usual case. It
   translates to "allow access from any IP source address for a given
   NSID/MKID combination".  Furthermore, incoming packets MUST have an
   AH header, so that after properly authenticating them, the firewall
   establishes a "current address" or "dynamic binding" for the nomadic
   host.  The NSID/MKID combination determines which key should be used
   with the nomadic host [9].

   Notice that this supports Mobile IP, because the mobile node always
   initiates contact. Hence, the SKIP firewall has a chance to learn the
   mobile node's "current address" from an incoming packet before it
   attempts to encrypt an outgoing packet.

   However, this precludes the use of simultaneous bindings by a mobile
   node.  At the firewall, the last Registration Request sent by the
   mobile node replaces the association between its permanent address
   and any prior care-of address. In order to support simultaneous
   bindings the firewall must be able to interpret Mobile IP
   registration messages.

   Section 7.2.2 discusses another advantage of making the firewall
   understand Mobile IP packet formats.

   In what follows we assume a SKIP-based solution.

5. Agents and Mobile Node Configurations

   Depending on which address it uses as its tunnel endpoint, the Mobile
   IP protocol specifies two ways in which a mobile node can register a
   mobility binding with its home agent.

      a)   an address advertised for that purpose by the foreign agent

      b)   an address belonging to one of the mobile node's interfaces
           (i.e. operation with a co-located address).

   From the firewall's point of view, the main difference between these
   two cases hinges on which node prepares the outermost encrypting
   encapsulation.  The firewall MUST be able to obtain the Diffie-
   Hellman public component of the node that creates the outermost SKIP
   header in an incoming packet. This is only possible to guarantee in
   case "b", because the mobile node and the firewall both belong to the
   same administrative domain. The problem is even more apparent when
   the mobile node attempts a Registration Request.  Here, the foreign
   agent is not just a relayer, it actually examines the packet sent by
   the mobile node, and modifies its agent services accordingly. In
   short, assuming the current specification of Mobile IP and the
   current lack of trust in the internet at large, only case "b" is
   possible. Case "a" would require an extension (e.g. a "relay"
   Registration Request), and modifying code at the home agent, the
   firewall and the foreign agent.

   Assuming that the firewall offers a secure relay service (i.e.
   decapsulation and forwarding of packets), the mobile node can reach
   addresses internal to the private network by encapsulating the
   packets in a SKIP header and directing them to the firewall.

   Therefore, It is simplest to assume that the mobile node operates
   with a co-located address.

6. Supporting Mobile IP: Secure Channel Configurations

   The mobile node participates in two different types of traffic:
   Mobile IP registration protocol and data. For the sake of simplicity,
   the following discussion evaluates different secure channel
   configurations by examining the initial Registration Request sent by
   the mobile node to its home agent.

   Assuming the mobile node operates with a co-located address, it can
   communicate directly with the firewall.  The latter is able to reach
   the home agent in the private network. Also, the firewall MUST be
   able to authenticate the mobile node.

   The following channel configurations assume the mobile node operates
   with a co-located address. The region between the HA (home agent) and
   the FW (firewall) is a private network. The region between the FW and
   the MN (mobile node) is the outside or public network.

6.1 I: Encryption only Outside of Private Network


   HA            FW                        MN
                  <=====================>  SKIP (AH + ESP)
    <----------------------------------->  Registration Request path

   The traffic is only encrypted between the mobile node out on the
   general Internet, and the firewall's external interface. This is
   minimum required. It is the most desirable configuration as the more
   expensive encrypted channel is only used where it is necessary: on
   the public network.

6.2 II: End-to-End Encryption

   Another possible configuration extends the encrypted tunnel through
   the firewall:

   HA            FW                        MN
    <===================================>  SKIP (AH + ESP)
    <----------------------------------->  Registration Request path

   This limits the firewall to perform a simple packet relay or
   gatewaying function. Even though this could be accomplished by using
   the proper destination NSID in the packet, in practice it is probably
   unrealizable. The reason is that this alternative is probably not
   very popular with computer security personnel, because authentication
   is not carried out by the firewall but by the home agent, and the
   latter's security is potentially much weaker than the former's.

6.3 III: End-to-End Encryption, Intermediate Authentication

   A third alternative is to allow the firewall to be party to the
   security association between the home agent and the mobile node.
   After verifying authentication (AH header), the firewall forwards the
   encrypted packet (ESP hdr) to the home agent.

   HA            FW                        MN
                  <+++++++++++++++++++++>  SKIP authentication
    <===================================>  SKIP encryption
    <----------------------------------->  Registration Request path

   Here, SKIP is used to provide intermediate authentication with end-
   to-end security. Although possible, this option implies that the
   participating entities disclose their pairwise long-term Diffie-
   Hellman shared secret to the intermediate node.

   Whereas Option 2 above is probably not agreeable to security and
   system administration personnel, option 3 is unsavory to the end
   user.

6.4 IV: Encryption Inside and Outside

   HA            FW                        MN
    <============><=====================>  SKIP (AH + ESP)
    <----------------------------------->  Registration Request path

   Traffic is encrypted on the public as well as on the private network.
   On the public network, encryption is dictated by a security
   association between the mobile node and the firewall.  On the private
   network, it is dictated by a security association between the home
   agent and the firewall.

6.5 Choosing a Secure Channel Configuration

   A potential problem in both options 2 and 3 is that their end-to-end
   channel components assume that the mobile node and the home agent can
   exchange IP traffic directly with each other. This is generally not
   the case, as the Internet routing fabric may not have routes to
   addresses that belong to private networks, and the private routing
   fabric may ignore how to route to public addresses -- or doing so may
   be administratively restricted.  Therefore, it is necessary for
   packets to be addressed directly to the firewall, and indirectly --
   via some tunneling or relaying capability -- to the real destination
   on the other side of the firewall.

   Options 1 and 4 are essentially equivalent. The latter may be
   considered overkill, because it uses encryption even within the
   private network, and this is generally not necessary. What is
   necessary even within the private network is for the home agent to
   add an encapsulation (not necessarily encrypted) so as to direct
   datagrams to the mobile node via the firewall. The type of
   encapsulation used determines the difference between options 1 and 4.
   Whereas option 4 uses SKIP, option 1 uses a cleartext encapsulation
   mechanism.  This is obtainable by, for example, using IP in IP
   encapsulation [2].

   Options 1 and 4 are mostly interchangeable. The difference is, of
   course, that the former does not protect the data from eavesdroppers
   within the private network itself. This may be unacceptable in
   certain cases. Traffic from some departments in a company (for
   example payroll or legal) may need to be encrypted as it traverses
   other sections of the company.

   In the interest of being conservative, in what follows we assume
   option 4 (i.e. traffic is encrypted on the general Internet, as well
   as within the private network.

   Since the firewall is party to the security associations governing
   encryption on both the public and private networks, it is always able
   to inspect the traffic being exchanged by the home agent and the
   mobile node. If this is of any concern, the home agent and mobile
   node could set up a bi-directional tunnel and encrypt it.

7. Mobile IP Registration Procedure with a SKIP Firewall

   When roaming within a private network, a mobile node sends
   Registration Requests directly to its home agent. On the public
   Internet, it MUST encapsulate the original Registration Request in a
   SKIP packet destined to the firewall.  The mobile node MUST
   distinguish between "inside" and "outside" addresses. This could be
   accomplished by a set of rules defining the address ranges.
   Nevertheless, actual installations may present serious difficulties
   in defining exactly what is a private address and what is not.

   Direct human input is a very effective method: it may be obvious to
   the user that the current point of attachment is outside its private
   network, and it should be possible to communicate this knowledge to
   the mobile node software.

   The home agent must also distinguish between "inside" and "outside"
   addresses, but lacks the potential benefit of direct user input.
   Accordingly, it should be possible for the mobile node to communicate
   that knowledge to the home agent. To accomplish this we define a
   Traversal Extension to the Registration Requests and Replies.  This
   extension is also useful when traversing multiple firewalls.

   In spite of the above mechanisms, errors in judgement are to be
   expected.  Accordingly, the firewall SHOULD be configured such that
   it will still perform its relaying duties even if they are
   unnecessarily required by a mobile node with an inside care-of
   address.

   Upon arriving at a foreign net and acquiring a care-of address, the
   mobile node must first -- before any data transfer is possible --
   initiate a registration procedure. This consists of an authenticated
   exchange by which the mobile node informs its home agent of its
   current whereabouts (i.e. its current care-of address), and receives
   an acknowledgement. This first step of the protocol is very
   convenient, because the SKIP firewall can use it to dynamically
   configure its packet filter.

   The remainder of this section shows the packet formats used.  Section
   7.1 discusses how a mobile node sends a Registration Request to its
   home agent via the SKIP firewall. Section 7.2 discusses how the home
   agent send the corresponding Registration Reply to the mobile node.
   Section 7.3 defines the Traversal Extension for use with Registration
   Requests and Replies.

7.1. Registration Request through the Firewall

   The mobile node arrives at a foreign net, and using mechanisms
   defined by Mobile IP, discovers it has moved away from home. It
   acquires a local address at the foreign site, and composes a
   Registration Request meant for its home agent.  The mobile node must
   decide whether this packet needs to be processed by SKIP or not.

   This is not a simple rule triggered by a given destination address.
   It must be applied whenever the following conditions are met:

      a)   the mobile node is using a care-of address that does not
           belong to the private network (i.e. the mobile node is
           currently "outside" its private network), and

      b)   either of:

           b1)   the source address of the packet is the mobile node's
                 home address (e.g. this packet's endpoints are
                 dictated by a connection initiated while at home), or

           b2)   the source address of the packet is the care-of
                 address and the destination address belongs to the
                 private network

   Since the above conditions are mobility related, it is best for the
   Mobile IP function in the node to evaluate them, and then request the
   appropriate security services from SKIP.

7.1.1. On the Outside (Public) Network

   The SKIP module must use the firewall destination address and the
   firewall's certificate in order to address and encrypt the packet.
   It encrypts it using SKIP combined with the ESP [6] protocol and
   possibly the AH [7] protocol.

   The SKIP header's source NSID equals 1, indicating that the Master
   Key-ID is the mobile node's home address. Notice that the IP packet's
   source address corresponds to the care-of address -- an address whose
   corresponding public component is unknown to the firewall.

   It is also possible to use Unsigned Diffie-Hellman public components
   [10].  Doing so greatly reduces SKIP's infrastructure requirements,
   because there is no need for a Certificate Authority. Of course, for
   this to be possible the principals' names MUST be securely
   communicated.

   REGISTRATION REQUEST: BETWEEN THE MOBILE NODE AND THE FIREWALL
   +---------------+----------+----+-----+--------------+--------------+
   | IP Hdr (SKIP) | SKIP Hdr | AH | ESP | Inner IP Hdr | Reg. Request |
   +---------------+----------+----+-----+--------------+--------------+

     IP Hdr (SKIP):
        Source          mobile node's care-of address
        Destination     firewall's public (outside) address
     SKIP Hdr:
        Source          NSID = 1
                        Master Key-ID = IPv4 address of the mobile node
        Destination     NSID = 0
                        Master Key-ID = none
     Inner IP Hdr:
        Source          mobile node's care-of address
        Destination     home agent's address

7.1.2. On the Inside (Private) Network

   The SKIP Firewall's dynamic packet filtering uses this information to
   establish a dynamic binding between the care-of address and the
   mobile node's permanent home address.

   The destination NSID field in the above packet is zero, prompting the
   firewall to process the SKIP header and recover the internal packet.
   It then delivers the original packet to another outbound interface,
   because it is addressed to the home agent (an address within the
   private network). Assuming secure channel configuration number 4, the
   firewall encrypts the packet using SKIP before forwarding to the home
   agent.

   REGISTRATION REQUEST: BETWEEN THE FIREWALL AND THE HOME AGENT
   +---------------+----------+----+-----+--------------+--------------+
   | IP Hdr (SKIP) | SKIP Hdr | AH | ESP | Inner IP Hdr | Reg. Request |
   +---------------+----------+----+-----+--------------+--------------+

     IP Hdr (SKIP):
        Source          firewall's private (inside) address
        Destination     home agent's address

     SKIP Hdr:
        Source          NSID = 0
                        Master Key-ID = none
        Destination     NSID = 0
                        Master Key-ID = none
     Inner IP Hdr:
        Source          mobile node's care-of address
        Destination     home agent's address

7.2. Registration Reply through the Firewall

   The home agent processes the Registration Request, and composes a
   Registration Reply. Before responding, it examines the care-of
   address reported by the mobile node, and determines whether or not it
   corresponds to an outside address.  If so, the home agent needs to
   send all traffic back through the firewall.  The home agent can
   accomplish this by encapsulating the original Registration Reply in a
   SKIP packet destined to the firewall (i.e. we assume secure channel
   configuration number 4).

7.2.1. On the Inside (Private) Network

   The packet from the home agent to the mobile node via the SKIP
   Firewall has the same format as shown above. The relevant fields are:

   REGISTRATION REPLY: BETWEEN THE HOME AGENT AND THE FIREWALL
   +---------------+----------+----+-----+--------------+------------+
   | IP Hdr (SKIP) | SKIP Hdr | AH | ESP | Inner IP Hdr | Reg. Reply |
   +---------------+----------+----+-----+--------------+------------+

     IP Hdr (SKIP):
        Source          home agent's address
        Destination     firewall's private (inside) address

     SKIP Hdr:
        Source          NSID = 0
                        Master Key-ID = none
        Destination     NSID = 0
                        Master Key-ID = none
     Inner IP Hdr:
        Source          home agent's address
        Destination     mobile node's care-of address

7.2.2. On the Outside (Public) Network

   The SKIP Firewall recovers the original Registration Reply packet and
   looks at the destination address: the mobile node's care-of address.

   The SKIP Firewall's dynamic packet filtering used the initial
   Registration Request (Secton 7.1) to establish a dynamic mapping
   between the care-of address and the mobile node's Master Key-ID.
   Hence, before forwarding the Registration Reply, it encrypts it using
   the mobile node's public component.

   This dynamic binding capability and the use of tunneling mode ESP
   obviate the need to extend the Mobile IP protocol with a "relay
   Registration Request". However, it requires that the Registration
   Reply exit the private network through the same firewall that
   forwarded the corresponding Registration Request.

   Instead of obtaining the mobile node's permanent address from the
   dynamic binding, a Mobile IP aware firewall could also obtain it from
   the Registration Reply itself. This renders the firewall stateless,
   and lets Registration Requests and Replies traverse the periphery of
   the private network through different firewalls.

   REGISTRATION REPLY: BETWEEN THE FIREWALL AND THE MOBILE NODE
   +---------------+----------+----+-----+--------------+------------+
   | IP Hdr (SKIP) | SKIP Hdr | AH | ESP | Inner IP Hdr | Reg. Reply |
   +---------------+----------+----+-----+--------------+------------+

     IP Hdr (SKIP):
        Source          firewall's public (outside) address
        Destination     mobile node's care-of address

     SKIP Hdr:
        Source          NSID = 0
                        Master Key-ID = none
        Destination     NSID = 1
                        Master Key-ID = IPv4 addr of the mobile node
     Inner IP Hdr:
        Source          home agent's address
        Destination     mobile node's care-of address

7.3. Traversal Extension

   The Traversal Extension MAY be included by mobile nodes in
   Registration Requests, and by home agents in Registration Replies.
   As per Section 3.6.1.3 of [1], the Traversal Extension must appear
   before the Mobile-Home Authentication Extension.  A Traversal
   Extension is an explicit notification that there are one or more
   traversal points (firewalls, fireridges, etc) between the mobile node
   and its home agent. Negotiating access past these systems may imply a
   new authentication header, and possibly a new encapsulating header
   (perhaps as part of tunnel-mode ESP) whose IP destination address is
   the traversal address.

   Negotiating access past traversal points does not necessarily require
   cryptographic techniques.  For example, systems at the boundary
   between separate IP address spaces must be explicitly targetted
   (perhaps using unencrypted IP in IP encapsulation).

   A mobile node SHOULD include one Traversal Extension per traversal
   point in its Registration Requests. If present, their order MUST
   exactly match the order in which packets encounter them as they flow
   from the mobile node towards the home agent.

   Notice that there may be additional firewalls along the way, but the
   list of traversal points SHOULD only include those systems with which
   an explicit negotiation is required.

   Similarly, the home agent SHOULD include one Traversal Extension per
   traversal point in its Registration Replies.  If present, their order
   MUST exactly match the order in which packets encounter them as they
   flow from the home agent to the mobile node.

   A Traversal Extension does not include any indication about how
   access is negotiated. Presumably, this information is obtained
   through separate means. This document does not attempt to solve the
   firewall discovery problem, that is, it does not specify how to
   discover the list of traversal points.

   As per section 1.9 of [1], the fact that the type value falls within
   the range 128 to 255 implies that if a home agent or a mobile node
   encounter a Traversal Extension in a Registration Request or Reply,
   they may silently ignore it. This is consistent with the fact that
   the Traversal Extension is essentially a hint.

    0                   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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Type      |    Length     |        Reserved               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                 MN to HA Traversal Address                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                 HA to MN Traversal Address                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Type

        129

      Length

         10

      Reserved

         0

      MN to HA Traversal Address

         The IP address of the an intermediate system or firewall
         encountered by datagrams sent by the mobile node towards the
         home agent. Typically, this is the external address of a
         firewall or firewall complex.

         This field MUST be initialized in Registration Requests.  In
         Registration Replies, it is typically all 0's, otherwise, the
         mobile node SHOULD interpret it as a hint.

      HA to MN Traversal Address

         The IP address of an intermediate system or firewall
         encountered by datagrams sent by the home agent towards the
         mobile node. Typically, this is the internal address of a
         firewall or firewall complex.

         This field MUST be initialized in Registration Replies.  In
         Registration Requests, it is typically all 0's, otherwise, the
         home agent SHOULD interpret it as a hint.

8. Data Transfer

   Data transfer proceeds along lines similar to the Registration
   Request outlined above.  Section 8.1 discusses data traffic sent by a
   mobile node to a correspondent node. Section 8.2 shows packet formats
   for the reverse traffic being tunneled by the home agent to the
   mobile node.

8.1. Data Packet From the Mobile Node to a Correspondent Node

   The mobile node composes a packet destined to a correspondent node
   located within the private network.

   The Mobile IP function in the mobile node examines the Inner IP
   header, and determines that it satisfies conditions "a" and "b1" from
   Section 7.1. The mobile node requests the proper encryption and
   encapsulation services from SKIP.

   Thus, the mobile node with a co-located address sends encrypted
   traffic to the firewall, using the following format:

   DATA PACKET: FROM THE MOBILE NODE VIA THE FIREWALL
   +---------------+----------+----+-----+--------------+------+
   | IP Hdr (SKIP) | SKIP Hdr | AH | ESP | Inner IP Hdr | ULP  |
   +---------------+----------+----+-----+--------------+------+

     IP Hdr (SKIP):
        Source          mobile node's care-of address
        Destination     public (outside) address on the firewall
     SKIP Hdr:
        Source          NSID = 1
                        Master Key-ID = IPv4 address of the mobile node
        Destination     NSID = 0
                        Master Key-ID = none
     Inner IP Hdr:
        Source          mobile node's home address
        Destination     correspondent node's address

   The SKIP Firewall intercepts this packet, decrypts the Inner IP Hdr
   and upper-layer payload (ULP) and checks the destination address.
   Since the packet is destined to a correspondent node in the private
   network, the "Inner" IP datagram is delivered internally.  Once the
   SKIP firewall injects this packet into the private network, it is
   routed independently of its source address.

   As this last assumption is not always true, the mobile node may
   construct a bi-directional tunnel with its home agent. Doing so,
   guarantees that the "Inner IP Hdr" is:

     Inner IP Hdr:
        Source          care-of address
        Destination     home agent address

   When at home, communication between the the mobile node and certain
   external correspondent nodes may need to go through application-
   specific firewalls or proxies, different from the SKIP firewall.
   While on the public network, the mobile node's communication with
   these hosts, MUST use a bi-directional tunnel.

8.2. Data Packet From a Correspondent Node to the Mobile Node

   The home agent intercepts a packet from a correspondent node to the
   mobile node. It encapsulates it such that the Mobile IP encapsulating
   IP header's source and destination addresses are the home agent and
   care-of addresses, respectively. This would suffice for delivery
   within the private network. Since the current care-of address of the
   mobile node is not within the private network, this packet MUST be
   sent via the firewall. The home agent can accomplish this by
   encapsulating the datagram in a SKIP packet destined to the firewall
   (i.e. we assume secure channel configuration number 4).

8.2.1 Within the Inside (Private) Network

   From the home agent to the private (inside) address of the firewall
   the packet format is:

   DATA PACKET: BETWEEN THE HOME AGENT AND THE FIREWALL
   +--------+------+----+-----+--------+--------+-----+
   | IP Hdr | SKIP | AH | ESP | mobip  | Inner  | ULP |
   | (SKIP) | Hdr  |    |     | IP Hdr | IP Hdr |     |
   +--------+------+----+-----+--------+--------+-----+

     IP Hdr (SKIP):
        Source          home agent's address
        Destination     private (inside) address on the firewall

     SKIP Hdr:
        Source          NSID = 0
                        Master Key-ID = none
        Destination     NSID = 0
                        Master Key-ID = none

     Mobile-IP IP Hdr:
        Source          home agent's address
        Destination     care-of address

     Inner IP Hdr:
        Source          correspondent node's address
        Destination     mobile node's address

     ULP:               upper-layer payload

   The packet format above does not require the firewall to have a
   dynamic binding. The association between the mobile node's permanent
   address and it care-of address can be deduced from the contents of
   the "Mobile-IP IP Hdr" and the "Inner IP Hdr".

   Nevertheless, a nomadic binding is an assurance that currently the
   mobile node is, in fact, at the care-of address.

8.2.2. On the Outside (Public) Network

   The SKIP firewall intercepts the packet, and recovers the Mobile IP
   encapsulated datagram. Before sending it out, the dynamic packet
   filter configured by the original Registration Request triggers
   encryption of this packet, this time by the SKIP firewall for
   consumption by the mobile node.  The resultant packet is:

   DATA PACKET: BETWEEN THE FIREWALL AND THE MOBILE NODE
   +--------+------+----+-----+--------+--------+-----+
   | IP Hdr | SKIP | AH | ESP | mobip  | Inner  | ULP |
   | (SKIP) | Hdr  |    |     | IP Hdr | IP Hdr |     |
   +--------+------+----+-----+--------+--------+-----+

     IP Hdr (SKIP):
        Source          firewall's public (outside) address
        Destination     mobile node's care-of address

     SKIP Hdr:
        Source          NSID = 0
                        Master Key-ID = none
        Destination     NSID = 1
                        Master Key-ID = IPv4 address of the mobile node

     Mobile-IP IP Hdr:
        Source          home agent's address
        Destination     care-of address

     Inner IP Hdr:
        Source          correspondent node's address
        Destination     mobile node's address

     ULP:               upper-layer payload

   At the mobile node, SKIP processes the packets sent by the firewall.
   Eventually, the inner IP header and the upper-layer packet (ULP) are
   retrieved and passed on.

9. Security Considerations

   The topic of this document is security. Nevertheless, it is
   imperative to point out the perils involved in allowing a flow of IP
   packets through a firewall. In essence, the mobile host itself MUST
   also take on responsibility for securing the private network, because
   it extends its periphery. This does not mean it stops exchanging
   unencrypted IP packets with hosts on the public network.  For
   example, it MAY have to do so in order to satisfy billing
   requirements imposed by the foreign site, or to renew its DHCP lease.

   In the latter case it might filter not only on IP source address, but
   also on protocol and port numbers.

   Therefore, it MUST have some firewall capabilities, otherwise, any
   malicious individual that gains access to it will have gained access
   to the private network as well.

Acknowledgements

   Ideas in this document have benefited from discussions with at least
   the following people: Bill Danielson, Martin Patterson, Tom Markson,
   Rich Skrenta, Atsushi Shimbo, Behfar Razavi, Avinash Agrawal, Tsutomu
   Shimomura and Don Hoffman. Jim Solomon has also provided many helpful
   comments on this document.

References

   [1] Perkins, C., "IP Mobility Support", RFC 2002, October 1996.

   [2] Perkins, C., "IP Encapsulation within IP", RFC 2003, October
       1996.

   [3] A. Aziz and M. Patterson, Design and Implementation of SKIP,
       available on-line at http://skip.incog.com/inet-95.ps. A
       previous version of the paper was presented at INET '95 under
       the title Simple Key Management for Internet Protocols (SKIP),
       and appears in the conference proceedings under that title.

   [4] Leech, M., Ganis, M., Lee, Y, Kuris, R., Koblas, D., and
       L. Jones, "SOCKS Protocol Version 5", RFC 1928, March 1996.

   [5] Leech, M., "Username/Password Authentication for SOCKS V5",
       RFC 1929, March 1996.

   [6] Atkinson, R., "IP Encapsulating Payload", RFC 1827, August
       1995.

   [7] Atkinson, R., "IP Authentication Header", RFC 1826, August
       1995.

   [8] Stephen Kent, message to the IETF's IPSEC mailing list,
       Message-Id: <v02130500ae569a3e904e@[128.89.30.29]>, September
       6, 1996.

   [9] Tom Markson, private communication, June 12, 1996.

   [10] A. Aziz, T. Markson, H. Prafullchandra. Encoding of an
        Unsigned Diffie-Hellman Public Value. Available on-line as
        http://skip.incog.com/spec/EUDH.html.

Authors' Addresses

   Gabriel E. Montenegro
   Sun Microsystems, Inc.
   901 San Antonio Road
   Mailstop UMPK 15-214
   Mountain View, California 94303

   Phone: (415)786-6288
   Fax: (415)786-6445
   EMail: gabriel.montenegro@Eng.Sun.COM


   Vipul Gupta
   Sun Microsystems, Inc.
   901 San Antonio Road
   Mailstop UMPK 15-214
   Mountain View, California 94303

   Phone: (415)786-3614
   Fax: (415)786-6445
   EMail: vipul.gupta@Eng.Sun.COM

Full Copyright Statement

   Copyright (C) The Internet Society (1998).  All Rights Reserved.

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works.  However, this
   document itself may not be modified in any way, such as by removing
   the copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of
   developing Internet standards in which case the procedures for
   copyrights defined in the Internet Standards process must be
   followed, or as required to translate it into languages other than
   English.

   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assigns.

   This document and the information contained herein is provided on an
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
   TASK FORCE DISCLAIMS 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.

ISO Plain Language

On this page
PROBLEMMobile IP provides no security for data traffic, and a mobile node roaming on the public Internet cannot simply reach its private home network through the firewall.
MECHANISMThe mobile node wraps its Mobile IP registration and data packets in SKIP headers addressed to the firewall, which authenticates it, relays the packets inward and sets up a dynamic binding for traffic coming back. An optional Traversal Extension names the firewalls on the path.
WHY IT MATTERSA roaming node gets a secure channel into its home network. The memo is Informational and leaves open how a node discovers the firewalls on its path.

§1The Problem, the Players and the Firewall's Limits

The Mobile IP specification establishes the mechanisms that let a mobile host keep the same IP address as it changes its point of attachment. Mobility implies higher security risks than static operation, because the traffic may at times take unforeseen network paths with unknown or unpredictable security characteristics, and the Mobile IP specification makes no provision for securing data traffic. The mechanisms in this document let a mobile node out on a public part of the Internet negotiate access past a SKIP firewall and construct a secure channel into its home network. They also let it roam into regions that impose ingress filtering and use a different address space.

The document describes what support is needed at the firewall, the Mobile IP home agent and the mobile node, for example so that an employee can attach a laptop to a PPP or SLIP account at an Internet service provider, or to a 10Base-T network in a terminal room or another company's premises. The relevant interface is configured with an IP address different from the one used at the office, and that address may be assigned temporarily and dynamically, by IPCP in the PPP case or by DHCP in the 10Base-T case.

The setting is a private network separated by a firewall from the general Internet. The private network may use a private address space whose addresses are not even routable by the general Internet. The mobile node has its permanent address inside the private network but connects from elsewhere, and as Mobile IP defines, it uses a care-of address while roaming. The home agent serves as a location registry and router, the foreign agent as a registration relayer and source of the care-of address, and the correspondent node is the system exchanging data with the mobile node. The firewall enforces access control between the private network and the Internet, perhaps by a combination of application gatewaying, packet filtering and cryptographic techniques.

The firewall imposes restrictions on packets entering or leaving the private network: a packet is not allowed through unless it conforms to a filtering specification, or unless there is a negotiation involving some sort of authentication. A second restriction comes from the separation between private and public addresses. Strictly speaking this is not imposed by the firewall but by the character of the private network: a packet destined for an internal address that originates in the general Internet will probably not be delivered, not because the firewall drops it but because the Internet's routing fabric cannot process it, which elicits an ICMP host unreachable packet back to the sender. Because of this, the firewall must be explicitly targeted as the destination node by outside packets seeking to enter the private network; the routing fabric will only see the public address of the firewall, and once the packet arrives there the real packet is recovered.

A laptop that travels takes its address with it, but the office firewall and the office address range stay behind. The laptop has to knock on the firewall's door, be recognised, and have its packets carried inside.

§4Two Firewall Options: SOCKS and SKIP

The memo examines two ways a firewall could support mobile nodes: application relaying or proxying, and IP Security. It looks at two specific schemes, SOCKS version 5 and SKIP.

The SOCKS solution, from the IETF's authenticated firewall traversal working group, requires the mobile node, or another node on its behalf, to establish a TCP session with the firewall to exchange UDP traffic with it, and to use the SOCKS library to encapsulate the traffic. The steps are a TCP connection to port 1080, which takes 1.5 round trips, then a version identifier and method selection negotiation taking 1 round trip, then a method-dependent negotiation, where username and password authentication takes 1 round trip and GSS-API negotiation requires at least 3 round trips, and finally the SOCKS request and reply taking 1 round trip. That is a minimum of 4 round trips, or 6 with GSS-API, before the client can pass data through the firewall. The memo notes that all of this must be done each time the mobile node registers a new care-of address, that the scheme requires UDP to encapsulate IP datagrams, and that SOCKS defines how to establish authenticated connections but does not provide a clear solution to encrypting the traffic.

The SKIP alternative encrypts and authenticates the traffic from the mobile node to the firewall with a session-less IP security mechanism, which removes the need to set up a session just to exchange UDP traffic. The memo finds this very attractive, because no round trip times are incurred before the mobile node and the firewall achieve mutual trust: the firewall can start relaying packets for the mobile node as soon as it receives the first one. That implies SKIP is used with the IP Authentication Header so that authentication information is in each packet, and encryption with ESP is also assumed because the Internet at large is considered a hostile environment; an ESP transform providing both authentication and encryption could be used instead, in which case the AH header is not needed.

The firewall and the mobile node may be previously configured with each other's authenticated Diffie-Hellman public components, or they may exchange them in real time using one of the mechanisms the SKIP protocol defines. Home agents and the firewall must likewise have or be able to exchange each other's public components. The memo notes that other proposals for IP layer security are session-oriented and typically imply negotiations spanning several round trips before cryptographically secure communications are possible, which raises the same concerns as the SOCKS approach.

SKIP also supports nomadic applications. Two hosts using a secure IP layer channel normally use the IP source and destination addresses on incoming packets to arrive at the right security association, and the SKIP header can supersede that by including the key ID the recipient must use to obtain the right certificate. That key ID is given by two fields, a name space identifier and a master key identifier that uniquely indicates, within that name space, the id to use in fetching the proper certificate. Setting the name space identifier to 1 and the master key ID to the home address tells a receiver to ignore the IP source and use the home address to look up the public component, and setting it to 8 enables Unsigned Diffie-Hellman certificates, where the master key ID is the MD5 hash of the Diffie-Hellman public component. Mobile IP is best supported by a nomadic access control list entry at the SKIP firewall, an entry filtered by key ID instead of by IP source address, which translates to allowing access from any IP source address for a given name space and master key ID combination. Incoming packets must have an AH header, so that after authenticating them the firewall establishes a current address, or dynamic binding, for the nomadic host. This supports Mobile IP because the mobile node always initiates contact, giving the firewall a chance to learn its current address before encrypting an outgoing packet. It does preclude simultaneous bindings, because the last Registration Request replaces the association between the permanent address and any prior care-of address; supporting those would require the firewall to interpret Mobile IP registration messages.

The alternative to a firewall that relays applications is a firewall that simply protects packets. The first needs a long conversation before any data flows; the second needs none, because every packet carries its own proof of who sent it.

§6Secure Channel Configurations

The mobile node takes part in two kinds of traffic, the Mobile IP registration protocol and data, and the memo evaluates secure channel configurations by looking at the initial Registration Request sent to the home agent. Assuming the mobile node operates with a co-located address, it can communicate directly with the firewall, the firewall can reach the home agent inside the private network, and the firewall must be able to authenticate the mobile node.

Configuration I encrypts only between the mobile node out on the general Internet and the firewall's external interface. This is the minimum required, and the memo calls it the most desirable configuration, because the more expensive encrypted channel is used only where it is necessary, on the public network. Configuration II extends the encrypted tunnel through the firewall, so the firewall is limited to a simple relay or gateway function. The memo says this is probably unrealizable in practice, because it is unlikely to be popular with computer security personnel, since authentication would be carried out by the home agent rather than by the firewall, and the home agent's security is potentially much weaker. Configuration III allows the firewall to be party to the security association between the home agent and the mobile node: after verifying the AH header, the firewall forwards the encrypted packet to the home agent. The memo says this implies the participating entities disclose their pairwise long-term Diffie-Hellman shared secret to the intermediate node, and calls it unsavory to the end user, while configuration II is probably not agreeable to security and system administration personnel. Configuration IV encrypts traffic on the public network and on the private network, with a security association between the mobile node and the firewall outside and one between the home agent and the firewall inside.

A potential problem in configurations II and III is that their end-to-end channel components assume the mobile node and the home agent can exchange IP traffic directly, which is generally not the case, because the Internet routing fabric may not have routes to private addresses and the private routing fabric may ignore or be restricted from routing to public addresses. Packets therefore have to be addressed directly to the firewall and indirectly to the real destination on the other side. Configurations I and IV are essentially equivalent, and the memo notes that the latter may be considered overkill because it encrypts even within the private network, which is generally unnecessary; what is needed inside the private network is for the home agent to add an encapsulation, not necessarily encrypted, to direct datagrams to the mobile node via the firewall, which the memo says is obtainable with IP in IP encapsulation. The difference is that configuration I does not protect data from eavesdroppers inside the private network, which may be unacceptable when traffic from some departments, such as payroll or legal, crosses other parts of the company. In the interest of being conservative the memo assumes configuration IV. It also notes that because the firewall is party to the security associations on both networks it can always inspect the traffic, and that if this is a concern the home agent and mobile node could set up a bi-directional tunnel and encrypt it.

There are four places to put the encryption: only on the public network, straight from the laptop to the home agent, with the firewall in the middle checking, or on both networks. The memo settles on protecting both networks, and explains what each other choice costs.

THE FOUR SECURE CHANNEL CONFIGURATIONS
  • I: encryption outside onlyEncrypted on the public network only. The minimum required.
  • II: end-to-end encryptionThe tunnel runs through the firewall. The firewall only relays.
  • III: end-to-end with intermediate authenticationThe firewall checks the packet and forwards it encrypted.
  • IV: encryption inside and outsideEncrypted on the public network and inside the private network.

§7Registration and Data Transfer

When roaming within a private network, the mobile node sends Registration Requests directly to its home agent. On the public Internet it must encapsulate the original Registration Request in a SKIP packet destined to the firewall. The mobile node must distinguish between inside and outside addresses, which could be done by rules defining the address ranges, though actual installations may present serious difficulties in defining exactly what is a private address and what is not. Direct human input is effective, since it may be obvious to the user that the current point of attachment is outside the private network. The home agent must also distinguish between the two, and lacks the benefit of direct user input, so the memo defines a Traversal Extension to carry that knowledge in Registration Requests and Replies. Because errors in judgement are to be expected, the firewall should be configured to keep relaying even when a mobile node with an inside care-of address asks it to.

The rule for whether to use SKIP is not a simple one keyed on a destination address. It applies when the mobile node is using a care-of address that does not belong to the private network and either the source address of the packet is the mobile node's home address, or the source address is the care-of address and the destination address belongs to the private network. Because these conditions are mobility related, it is best for the Mobile IP function in the node to evaluate them and then request the appropriate security services from SKIP.

On the outside network, the SKIP module uses the firewall's destination address and certificate to address and encrypt the packet, with SKIP combined with ESP and possibly AH. The SKIP header's source name space identifier equals 1, indicating that the master key ID is the mobile node's home address, while the IP packet's source address is the care-of address, whose public component is unknown to the firewall. Inside the private network, the firewall's dynamic packet filtering establishes a dynamic binding between the care-of address and the mobile node's permanent home address. The destination name space identifier is zero, which prompts the firewall to process the SKIP header and recover the internal packet, which it then delivers to another outbound interface because it is addressed to the home agent, encrypting it with SKIP before forwarding under configuration IV.

The home agent examines the care-of address reported by the mobile node and, if it is an outside address, sends all traffic back through the firewall by encapsulating the Registration Reply in a SKIP packet destined to the firewall. On the outside, the firewall recovers the original reply and, using the dynamic binding set up by the original Registration Request, encrypts it with the mobile node's public component. This dynamic binding capability and the use of tunnelling mode ESP remove the need to extend Mobile IP with a relay Registration Request, but require the Registration Reply to leave the private network through the same firewall that forwarded the Request. A Mobile IP aware firewall could instead take the permanent address from the Registration Reply itself, which renders the firewall stateless and lets Requests and Replies traverse the periphery of the private network through different firewalls.

Data transfer proceeds along similar lines. A data packet from the mobile node to a correspondent node inside the private network has the same shape as the Registration Request, with the source address the care-of address, the destination the firewall's public address, and the inner IP header running from the mobile node's home address to the correspondent node. The firewall decrypts the inner header and payload, checks the destination address, and delivers the inner datagram internally, after which it is routed independently of its source address. Since that assumption is not always true, the mobile node may construct a bi-directional tunnel with its home agent, which guarantees that the inner IP header runs from the care-of address to the home agent. On the way back, the home agent intercepts the packet from the correspondent node, encapsulates it so that the Mobile IP header runs from the home agent to the care-of address, and sends it via the firewall in a SKIP packet. The dynamic packet filter configured by the original Registration Request triggers the encryption of that packet by the firewall for the mobile node, and the mobile node finally recovers the inner IP header and the upper-layer payload.

The first thing the laptop does when it lands somewhere new is register with its home agent, and it does that by sending the registration to the firewall wrapped in protection. The firewall checks it, learns where the laptop now is, and passes it inside. Everything afterwards follows the same path, in both directions.

REGISTRATION THROUGH THE FIREWALL
Mobile NodeFirewallHome Agent
  1. SKIP packet, Registration RequestSource name space 1, master key ID the home address.
  2. SKIP packet, Registration RequestThe firewall sets up the dynamic binding and forwards it inside.
  3. SKIP packet, Registration Reply
  4. SKIP packet, Registration ReplyEncrypted with the public component of the mobile node.

§7.3The Traversal Extension

The Traversal Extension may be included by mobile nodes in Registration Requests and by home agents in Registration Replies, and must appear before the Mobile-Home Authentication Extension. It is an explicit notification that there are one or more traversal points, such as firewalls or fireridges, between the mobile node and its home agent. Negotiating access past these systems may imply a new authentication header and possibly a new encapsulating header, perhaps as part of tunnelling mode ESP, whose IP destination address is the traversal address. Negotiating access past traversal points does not necessarily require cryptographic techniques: systems at the boundary between separate address spaces must be explicitly targeted, perhaps using unencrypted IP in IP encapsulation.

A mobile node should include one Traversal Extension per traversal point in its Registration Requests, and if several are present their order must exactly match the order in which packets encounter them as they flow from the mobile node towards the home agent. There may be additional firewalls along the way, but the list should only include those systems with which an explicit negotiation is required. The home agent should likewise include one extension per traversal point in its Replies, in the order the packets encounter them on the way back.

A Traversal Extension does not include any indication of how access is negotiated, and that information is presumably obtained through separate means. The memo says explicitly that it does not attempt to solve the firewall discovery problem, that is, it does not specify how to discover the list of traversal points. Because the type value falls within the range 128 to 255, a home agent or mobile node that meets a Traversal Extension may silently ignore it, which is consistent with the extension being essentially a hint.

The extension itself is a fixed layout: a type of 129, a length of 10, a reserved field of 0, an MN to HA Traversal Address and an HA to MN Traversal Address. The MN to HA field holds the IP address of an intermediate system or firewall encountered by datagrams sent by the mobile node towards the home agent, typically the external address of a firewall, and must be initialised in Registration Requests. In Registration Replies it is typically all zeros, otherwise the mobile node should interpret it as a hint. The HA to MN field holds the address of a system encountered by datagrams sent by the home agent towards the mobile node, typically the internal address of a firewall, and must be initialised in Registration Replies, while in Registration Requests it is typically all zeros.

The extension is a note attached to the registration that names the firewalls on the way, so the home agent knows where to send the reply. It says nothing about how the laptop found them, and the memo does not solve that problem.

THE TRAVERSAL EXTENSION LAYOUT
Traversal Extension
FieldNameSizeValueDescription
TYPEType1 byte129Extension type. A value in 128 to 255 means it may be ignored.
LENGTHLength1 byte10Length of the extension.
RESERVEDReserved2 bytes0Reserved field.
MN-TO-HAMN to HA Traversal Address4 bytesFirewall met by packets going from the mobile node toward the home agent.
HA-TO-MNHA to MN Traversal Address4 bytesFirewall met by packets going from the home agent toward the mobile node.

§9Security Considerations

The memo says the topic of the document is security, but that it is imperative to point out the perils involved in allowing a flow of IP packets through a firewall. In essence, the mobile host itself must also take on responsibility for securing the private network, because it extends its periphery. This does not mean it stops exchanging unencrypted IP packets with hosts on the public network; it may have to do so to satisfy billing requirements imposed by the foreign site, or to renew its DHCP lease. In the latter case the firewall might filter not only on IP source address but also on protocol and port numbers. Therefore, the mobile host must have some firewall capabilities, otherwise any malicious individual who gains access to it will have gained access to the private network as well.

A laptop that is let inside the firewall is now a door into the office network, so it has to keep its own defences. The memo is blunt about that.

§7References