Network Working Group K. Grewal
Internet Draft Intel Corporation
Intended status: Standards Track G. Montenegro
Expires: October 30, 2009 Microsoft Corporation
M. Bhatia
Alcatel-Lucent
April 30, 2009
Wrapped ESP for Traffic Visibility
draft-ietf-ipsecme-traffic-visibility-02.txt
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 30, 2009.
Copyright
Copyright (c) 2009 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 in effect on the date of
publication of this document (http://trustee.ietf.org/license-
info). Please review these documents carefully, as they describe
your rights and restrictions with respect to this document.
Abstract
Grewal, et. al. Expires October 31, 2009 [Page 1]
Internet-Draft WESP For Traffic Visibility April 2009
This document describes the Wrapped Encapsulating Security
Payload (WESP) protocol, which builds on top of ESP [RFC4303]
and is designed to allow intermediate devices to ascertain if
ESP-NULL is being employed and hence inspect the IPsec packets
for network monitoring and access control functions. Currently
in the IPsec standard, there is no way to differentiate between
ESP encryption and ESP NULL encryption by simply examining a
packet. This poses certain challenges to the intermediate
devices that need to deep inspect the packet before making a
decision on what should be done with that packet (Inspect and/or
Allow/Drop). The mechanism described in this document can be
used to easily disambiguate ESP-NULL from ESP encrypted packets,
without compromising on the security provided by ESP.
Table of Contents
1. Introduction...................................................2
1.1. Requirements Language.....................................4
1.2. Applicability Statement...................................4
2. Wrapped ESP (WESP) Header format...............................4
2.1. UDP Encapsulation.........................................6
2.2. Transport and Tunnel Mode Considerations..................7
2.2.1. Transport Mode Processing............................7
2.2.2. Tunnel Mode Processing...............................8
2.3. IKE Considerations........................................9
3. Security Considerations.......................................10
4. IANA Considerations...........................................11
5. Acknowledgments...............................................11
6. References....................................................11
6.1. Normative References.....................................11
6.2. Informative References...................................11
1. Introduction
Use of ESP within IPsec [RFC4303] specifies how ESP packet
encapsulation is performed. It also specifies that ESP can use
NULL encryption [RFC2410] while preserving data integrity and
authenticity. The exact encapsulation and algorithms employed
are negotiated out-of-band using, for example, IKEv2 [RFC4306]
and based on policy.
Enterprise environments typically employ numerous security
policies (and tools for enforcing them), as related to access
control, content screening, firewalls, network monitoring
functions, deep packet inspection, Intrusion Detection and
Prevention Systems (IDS and IPS), scanning and detection of
viruses and worms, etc. In order to enforce these policies,
network tools and intermediate devices require visibility into
Grewal, et. al. Expires October 31 2009 [Page 2]
Internet-Draft WESP For Traffic Visibility April 2009
packets, ranging from simple packet header inspection to deeper
payload examination. Network security protocols which encrypt
the data in transit prevent these network tools from performing
the aforementioned functions.
When employing IPsec within an enterprise environment, it is
desirable to employ ESP instead of AH [RFC4302], as AH does not
work in NAT environments. Furthermore, in order to preserve the
above network monitoring functions, it is desirable to use ESP-
NULL. In a mixed mode environment some packets containing
sensitive data employ a given encryption cipher suite, while
other packets employ ESP-NULL. For an intermediate device to
unambiguously distinguish which packets are leveraging ESP-NULL,
they would require knowledge of all the policies being employed
for each protected session. This is clearly not practical.
Heuristic-based methods can be employed to parse the packets,
but these can be very expensive, containing numerous rules based
on each different protocol and payload. Even then, the parsing
may not be robust in cases where fields within a given encrypted
packet happen to resemble the fields for a given protocol or
heuristic rule. This is even more problematic when different
length Initialization Vectors (IVs), Integrity Check Values
(ICVs) and padding are used for different security associations,
making it difficult to determine the start and end of the
payload data, let alone attempting any further parsing.
Furthermore, storage, lookup and cross-checking a set of
comprehensive rules against every packet adds cost to hardware
implementations and degrades performance. In cases where the
packets may be encrypted, it is also wasteful to check against
heuristics-based rules, when a simple exception policy (e.g.,
allow, drop or redirect) can be employed to handle the encrypted
packets. Because of the non-deterministic nature of heuristics-
based rules for disambiguating between encrypted and non-
encrypted data, an alternative method for enabling intermediate
devices to function in encrypted data environments needs to be
defined. Additionally there are many types and classes of
network devices employed within a given network and a
deterministic approach would provide a simple solution for all
these devices. Enterprise environments typically use both
stateful and stateless packet inspection mechanisms. The
previous considerations weigh particularly heavy on stateless
mechanisms such as router ACLs and NetFlow exporters.
Nevertheless, a deterministic approach provides a simple
solution for the myriad types of devices employed within a
network, regardless of their stateful or stateless nature.
This document defines a mechanism to provide additional
information in relevant IPsec packets so intermediate devices
Grewal, et. al. Expires October 31 2009 [Page 3]
Internet-Draft WESP For Traffic Visibility April 2009
can efficiently differentiate between encrypted ESP packets and
ESP packets with NULL encryption.
The document is consistent with the operation of ESP in NAT
environments [RFC3947].
The design principles for this protocol are the following:
o Allow easy identification and parsing of integrity-only IPsec
traffic
o Leverage the existing hardware IPsec parsing engines as much
as possible to minimize additional hardware design costs
o Minimize the packet overhead in the common case
1.1. Requirements Language
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 RFC 2119 [RFC2119].
1.2. Applicability Statement
The document is applicable only to the wrapped ESP header
defined below, and does not describe any changes to either ESP
[RFC4303] nor AH [RFC4302].
2. Wrapped ESP (WESP) Header format
The proposal is to define a protocol number for Wrapped ESP
encapsulation (WESP), which provides additional attributes in
each packet to assist in differentiating between encrypted and
non-encrypted data, as well as aid parsing of the packet. WESP
follows RFC 4303 for all IPv6 and IPv4 considerations (e.g.,
alignment considerations).
This extension essentially acts as a wrapper to the existing ESP
protocol and provides an additional 4 octets at the front of the
existing ESP packet.
This may be depicted as follows:
Grewal, et. al. Expires October 31 2009 [Page 4]
Internet-Draft WESP For Traffic Visibility April 2009
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Wrapped ESP Header |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Existing ESP Encapsulation |
~ ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1 WESP Packet Format
By preserving the body of the existing ESP packet format, a
compliant implementation can simply add in the new header,
without needing to change the body of the packet. The value of
the new protocol used to identify this new header is TBD via
IANA. Further details are shown below:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | Next Header | HdrLen | TrailerLen |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Existing ESP Encapsulation |
~ ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2 Detailed WESP Packet Format
Where:
Flags, 8 bits
2 bits: Version. Version is set to 0 by the transmitter and
validated by the receiver. Any modifications to the WESP header
in the future will require an update in the version number.
6 bits: reserved for future use. These MUST be set to zero
per this specification, but usage may be defined by other
specifications.
Note: To provide future compatibility, the version number is
negotiated by the control channel handshake. An implementation
compatible with this specification must set the version number
and the reserved bits to the values specified above when
Grewal, et. al. Expires October 31 2009 [Page 5]
Internet-Draft WESP For Traffic Visibility April 2009
transmitting a packet. On receiving a packet, these values must
be checked to ensure that they are as indicated above.
Next Header, 8 bits: If using ESP-NULL, this field MUST be
equal to the Next Header field in the ESP trailer. If using ESP
in encryption mode, this field MUST be set to zero..
HdrLen, 8 bits: Offset to the beginning of the Payload Data in
octets.
TrailerLen, 8 bits: Offset from the end of the packet to the
last byte of the payload data in octets.
As can be seen, this wrapped ESP format extends the standard ESP
header by the first 4 octets. The WESP header is integrity
protected, along with all the fields specified for ESP in RFC
4303.
2.1. UDP Encapsulation
This section describes a mechanism for running the new packet
format over the existing UDP encapsulation of ESP as defined in
RFC 3948. This allows leveraging the existing IKE negotiation of
the UDP port for NAT-T discovery and usage [RFC3947], as well as
preserving the existing UDP ports for ESP (port 4500). With UDP
encapsulation, the packet format can be depicted as follows.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Src Port (4500) | Dest Port (4500) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Length | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Protocol Identifier (value = 0x00000002) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | Next Header | HdrLen | TrailerLen |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Existing ESP Encapsulation |
~ ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 3 UDP-Encapsulated WESP Header
Where:
Grewal, et. al. Expires October 31 2009 [Page 6]
Internet-Draft WESP For Traffic Visibility April 2009
Source/Destination port (4500) and checksum: describes the UDP
encapsulation header, per RFC3948.
Protocol Identifier: new field to demultiplex between UDP
encapsulation of IKE, UDP encapsulation of ESP per RFC 3948, and
the UDP encapsulation in this specification.
According to RFC 3948, clause 2.2, a 4 octet value of zero (0)
immediately following the UDP header indicates a Non-ESP marker,
which can be used to assume that the data following that value
is an IKE packet. Similarly, a value greater then 255 indicates
that the packet is an ESP packet and the 4-octet value can be
treated as the ESP SPI. However, RFC 4303, clause 2.1 indicates
that the values 1-255 are reserved and cannot be used as the
SPI. We leverage that knowledge and use one of these reserved
values to indicate that the UDP encapsulated ESP header contains
this new packet format for ESP encapsulation.
The remaining fields in the packet have the same meaning as per
section 2 above.
2.2. Transport and Tunnel Mode Considerations
This extension is equally applicable for transport and tunnel
mode where the ESP Next Header field is used to differentiate
between these modes, as per the existing IPsec specifications.
2.2.1. Transport Mode Processing
In transport mode, ESP is inserted after the IP header and before a
next layer protocol, e.g., TCP, UDP, ICMP, etc. The following
diagrams illustrate how WESP is applied to the ESP transport mode for
a typical packet, on a "before and after" basis.
BEFORE APPLYING WESP - IPv4
-------------------------------------------------
|orig IP hdr | ESP | | | ESP | ESP|
|(any options)| Hdr | TCP | Data | Trailer | ICV|
-------------------------------------------------
|<----encryption ----->|
|<------- integrity -------->|
Grewal, et. al. Expires October 31 2009 [Page 7]
Internet-Draft WESP For Traffic Visibility April 2009
AFTER APPLYING WESP - IPv4
--------------------------------------------------------
|orig IP hdr | WESP | ESP | | | ESP |WESP|
|(any options)| Hdr | Hdr | TCP | Data | Trailer | ICV|
--------------------------------------------------------
|<---- encryption ---->|
|<----------- integrity ----------->|
BEFORE APPLYING WESP - IPv6
---------------------------------------------------------
| orig |hop-by-hop,dest*,| |dest| | | ESP | ESP|
|IP hdr|routing,fragment.|ESP|opt*|TCP|Data|Trailer| ICV|
---------------------------------------------------------
|<---- encryption --->|
|<------ integrity ------>|
AFTER APPLYING WESP - IPv6
--------------------------------------------------------------
| orig |hop-by-hop,dest*,| | |dest| | | ESP |WESP|
|IP hdr|routing,fragment.|WESP|ESP|opt*|TCP|Data|Trailer| ICV|
--------------------------------------------------------------
|<---- encryption --->|
|<-------- integrity --------->|
* = if present, could be before WESP, after ESP, or both
All other considerations are as per RFC 4303.
2.2.2. Tunnel Mode Processing
In tunnel mode, ESP is inserted after the new IP header and before
the original IP header, as per RFC 4303. The following diagram
illustrates how WESP is applied to the ESP tunnel mode for a typical
packet, on a "before and after" basis.
Grewal, et. al. Expires October 31 2009 [Page 8]
Internet-Draft WESP For Traffic Visibility April 2009
BEFORE APPLYING WESP - IPv4
-----------------------------------------------------------
| new IP hdr* | | orig IP hdr* | | | ESP | ESP|
|(any options)| ESP | (any options) |TCP|Data|Trailer| ICV|
-----------------------------------------------------------
|<--------- encryption --------->|
|<------------- integrity ------------>|
AFTER APPLYING WESP - IPv4
--------------------------------------------------------------
|new IP hdr* | | | orig IP hdr* | | | ESP |WESP|
|(any options)|WESP|ESP| (any options) |TCP|Data|Trailer| ICV|
--------------------------------------------------------------
|<--------- encryption --------->|
|<--------------- integrity ------------->|
BEFORE APPLYING WESP - IPv6
------------------------------------------------------------
| new* |new ext | | orig*|orig ext | | | ESP | ESP|
|IP hdr| hdrs* |ESP|IP hdr| hdrs * |TCP|Data|Trailer| ICV|
------------------------------------------------------------
|<--------- encryption ---------->|
|<------------ integrity ------------>|
AFTER APPLYING WESP - IPv6
-----------------------------------------------------------------
| new* |new ext | | | orig*|orig ext | | | ESP |WESP|
|IP hdr| hdrs* |WESP|ESP|IP hdr| hdrs * |TCP|Data|Trailer| ICV|
-----------------------------------------------------------------
|<--------- encryption ---------->|
|<--------------- integrity -------------->|
* = if present, construction of outer IP hdr/extensions and
modification of inner IP hdr/extensions is discussed in
the Security Architecture document.
All other considerations are as per RFC 4303.
2.3. IKE Considerations
This document assumes that WESP negotiation is performed using
IKEv2. In order to negotiate the new format of ESP encapsulation
Grewal, et. al. Expires October 31 2009 [Page 9]
Internet-Draft WESP For Traffic Visibility April 2009
via IKEv2 [RFC4306], both parties need to agree to use the new
packet format. This can be achieved using a notification method
similar to USE_TRANSPORT_MODE defined in RFC 4306.
The notification, USE_WESP_MODE (value TBD) MAY be included in a
request message that also includes an SA payload requesting a
CHILD_SA using ESP. It requests that the CHILD_SA use WESP mode
rather than ESP for the SA created. If the request is accepted,
the response MUST also include a notification of type
USE_WESP_MODE. If the responder declines the request, the
CHILD_SA will be established using ESP, as per RFC 4303. If
this is unacceptable to the initiator, the initiator MUST delete
the SA. Note: Except when using this option to negotiate WESP
mode, all CHILD_SAs will use standard ESP.
Negotiation of WESP in this manner preserves all other
negotiation parameters, including NAT-T [RFC3948]. NAT-T is
wholly compatible with this wrapped frame format and can be used
as-is, without any modifications, in environments where NAT is
present and needs to be taken into account.
3. Security Considerations
As this document augments the existing ESP encapsulation format,
UDP encapsulation definitions specified in RFC 3948 and IKE
negotiation of the new encapsulation, the security observations
made in those documents also apply here. In addition, as this
document allows intermediate device visibility into IPsec ESP
encapsulated frames for the purposes of network monitoring
functions, care should be taken not to send sensitive data over
connections using definitions from this document, based on
network domain/administrative policy. A strong key agreement
protocol, such as IKE, together with a strong policy engine
should be used to in determining appropriate security policy for
the given traffic streams and data over which it is being
employed.
ESP is end-to-end and it will be impossible for the intermediate
devices to verify that all the fields in the WESP header are
correct. It is thus possible to tweak the WESP header so that
the packet sneaks past the firewall if the fields in the WESP
header are set to something that the firewall will allow. The
endpoint thus must verify the sanity of the WESP header before
accepting the packet. In an extreme case, someone colluding with
the attacker, could change the WESP fields back to the original
values so that the attack goes unnoticed. However, this is not a
new problem and it already exists IPSec.
Grewal, et. al. Expires October 31 2009 [Page 10]
Internet-Draft WESP For Traffic Visibility April 2009
4. IANA Considerations
Reserving an appropriate value for this encapsulation as well as
a new value for the protocol in the IKE negotiation is TBD by
IANA.
5. Acknowledgments
The authors would like to acknowledge the following people for
their feedback on updating the definitions in this document.
David McGrew, Brian Weis, Philippe Joubert, Brian Swander, Yaron
Sheffer, Men Long, David Durham, Prashant Dewan, Marc Millier
among others.
This document was prepared using 2-Word-v2.0.template.doc.
6. References
6.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2410] Glenn, R. and S. Kent, "The NULL Encryption Algorithm
and Its Use With IPsec", RFC 2410, November 1998.
[RFC4303] Kent, S., "IP Encapsulating Security Payload (ESP)",
RFC 4303, December 2005.
6.2. Informative References
[RFC3947] Kivinen, T., Swander, B., Huttunen, A., and V.
Volpe, "Negotiation of NAT-Traversal in the IKE", RFC 3947,
January 2005.
[RFC3948] Huttunen, A., Swander, B., Volpe, V., DiBurro, L.,
and M. Stenberg, "UDP Encapsulation of IPsec ESP Packets", RFC
3948, January 2005.
[RFC4302] Kent, S., "IP Authentication Header", RFC 4302,
December 2005.
[RFC4306] Kaufman, C., "Internet Key Exchange (IKEv2)
Protocol", RFC 4306, December 2005.
Grewal, et. al. Expires October 31 2009 [Page 11]
Internet-Draft WESP For Traffic Visibility April 2009
Author's Addresses
Ken Grewal
Intel Corporation
2111 NE 25th Avenue, JF3-232
Hillsboro, OR 97124
USA
Phone:
Email: ken.grewal@intel.com
Gabriel Montenegro
Microsoft Corporation
One Microsoft Way
Redmond, WA 98052
USA
Phone:
Email: gabriel.montenegro@microsoft.com
Manav Bhatia
Alcatel-Lucent
Bangalore
India
Phone:
Email: manav@alcatel-lucent.com
Grewal, et. al. Expires October 31 2009 [Page 12]