draft-ietf-6man-oversized-header-chain-00.txt   draft-ietf-6man-oversized-header-chain-01.txt 
IPv6 maintenance Working Group (6man) F. Gont IPv6 maintenance Working Group (6man) F. Gont
Internet-Draft SI6 Networks / UTN-FRH Internet-Draft SI6 Networks / UTN-FRH
Updates: 2460 (if approved) V. Manral Updates: 2460 (if approved) V. Manral
Intended status: Standards Track Hewlett-Packard Corp. Intended status: Standards Track Hewlett-Packard Corp.
Expires: December 31, 2012 June 29, 2012 Expires: January 17, 2013 July 16, 2012
Security and Interoperability Implications of Oversized IPv6 Header Security and Interoperability Implications of Oversized IPv6 Header
Chains Chains
draft-ietf-6man-oversized-header-chain-00 draft-ietf-6man-oversized-header-chain-01
Abstract Abstract
The IPv6 specification allows IPv6 header chains of an arbitrary The IPv6 specification allows IPv6 header chains of an arbitrary
size. The specification also allows options which can in turn extend size. The specification also allows options which can in turn extend
each of the headers. In those scenarios in which the IPv6 header each of the headers. In those scenarios in which the IPv6 header
chain or options are unusually long and packets are fragmented, or chain or options are unusually long and packets are fragmented, or
scenarios in which the fragment size is very small, the first scenarios in which the fragment size is very small, the first
fragment of a packet may fail to include the entire IPv6 header fragment of a packet may fail to include the entire IPv6 header
chain. This document discusses the interoperability and security chain. This document discusses the interoperability and security
skipping to change at page 1, line 41 skipping to change at page 1, line 41
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on December 31, 2012. This Internet-Draft will expire on January 17, 2013.
Copyright Notice Copyright Notice
Copyright (c) 2012 IETF Trust and the persons identified as the Copyright (c) 2012 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Interoperability Implications of Oversized IPv6 Header 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4
Chains . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3. Interoperability Implications of Oversized IPv6 Header
3. Forwarding Implications of Oversized IPv6 Header Chains . . . 5 Chains . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4. Security Implications of Oversized IPv6 Header Chains . . . . 6 4. Forwarding Implications of Oversized IPv6 Header Chains . . . 6
5. Updating RFC 2460 . . . . . . . . . . . . . . . . . . . . . . 7 5. Security Implications of Oversized IPv6 Header Chains . . . . 7
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 6. Updating RFC 2460 . . . . . . . . . . . . . . . . . . . . . . 8
7. Security Considerations . . . . . . . . . . . . . . . . . . . 9 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 10 8. Security Considerations . . . . . . . . . . . . . . . . . . . 10
9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 11 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 11
9.1. Normative References . . . . . . . . . . . . . . . . . . . 11 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 12
9.2. Informative References . . . . . . . . . . . . . . . . . . 11 10.1. Normative References . . . . . . . . . . . . . . . . . . 12
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 12 10.2. Informative References . . . . . . . . . . . . . . . . . 12
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 13
1. Introduction 1. Introduction
[RFC2460] allows for an IPv6 header chain of an arbitrary size. It [RFC2460] allows for an IPv6 header chain of an arbitrary size. It
also allows the headers themselves to have options, which can change also allows the headers themselves to have options, which can change
the size of the headers. In those scenarios in which the IPv6 header the size of the headers. In those scenarios in which the IPv6 header
chain is unusually long and packets are fragmented, or scenarios in chain is unusually long and packets are fragmented, or scenarios in
which the fragment size is very small, the first fragment of a packet which the fragment size is very small, the first fragment of a packet
may fail to include the entire IPv6 header chain. This document may fail to include the entire IPv6 header chain. This document
discusses the interoperability and security problems of such traffic, discusses the interoperability and security problems of such traffic,
skipping to change at page 4, line 5 skipping to change at page 4, line 5
It should be noted that this requirement does not preclude the use of It should be noted that this requirement does not preclude the use of
e.g. IPv6 jumbo payloads but instead merely requires that all e.g. IPv6 jumbo payloads but instead merely requires that all
*headers*, starting from IPv6 base header and continuing up to the *headers*, starting from IPv6 base header and continuing up to the
upper layer header (e.g. TCP or the like) be present in the first upper layer header (e.g. TCP or the like) be present in the first
fragment. fragment.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119]. document are to be interpreted as described in RFC 2119 [RFC2119].
2. Interoperability Implications of Oversized IPv6 Header Chains 2. Terminology
Entire IPv6 header chain:
All protocol headers starting from the fixed IPv6 header till (and
including) the upper layer protocol header (TCP, UDP, etc. --
assuming there is one of those), including any intermediate IPv6
extension headers.
3. Interoperability Implications of Oversized IPv6 Header Chains
Some transition technologies, such as NAT64 [RFC6146], may need to Some transition technologies, such as NAT64 [RFC6146], may need to
have access to the entire IPv6 header chain in order to associate an have access to the entire IPv6 header chain in order to associate an
incoming IPv6 packet with an ongoing "session". incoming IPv6 packet with an ongoing "session".
For instance, Section 3.4 of [RFC6146] states that "The NAT64 MAY For instance, Section 3.4 of [RFC6146] states that "The NAT64 MAY
require that the UDP, TCP, or ICMP header be completely contained require that the UDP, TCP, or ICMP header be completely contained
within the fragment that contains fragment offset equal to zero". within the fragment that contains fragment offset equal to zero".
Failure to include the entire IPv6 header chain in the first-fragment Failure to include the entire IPv6 header chain in the first-fragment
may cause the translation function to fail, with the corresponding may cause the translation function to fail, with the corresponding
packets being dropped. packets being dropped.
3. Forwarding Implications of Oversized IPv6 Header Chains 4. Forwarding Implications of Oversized IPv6 Header Chains
A lot of the switches and Routers in the internet do hardware based A lot of the switches and Routers in the internet do hardware based
forwarding. To be able to achieve a level of throughput, there is a forwarding. To be able to achieve a level of throughput, there is a
fixed maximum number of clock cycles dedicated to each packet. fixed maximum number of clock cycles dedicated to each packet.
However with the use of unlimited options and header interleaving, However with the use of unlimited options and header interleaving,
larger packets with a lot of interleaving have to be forwarded to the larger packets with a lot of interleaving have to be forwarded to the
software. It is for this reason that the maximum size of valid software. It is for this reason that the maximum size of valid
packets with interleaved headers needs to be limited. packets with interleaved headers needs to be limited.
4. Security Implications of Oversized IPv6 Header Chains 5. Security Implications of Oversized IPv6 Header Chains
Most firewalls enforce they filtering policy based on the following Most firewalls enforce they filtering policy based on the following
parameters: parameters:
o Source IP address o Source IP address
o Destination IP address o Destination IP address
o Protocol type o Protocol type
skipping to change at page 7, line 5 skipping to change at page 8, line 5
such datagram will be effectively blocked. However, if the first such datagram will be effectively blocked. However, if the first
fragment fails to include the entire IPv6 header chain, they may have fragment fails to include the entire IPv6 header chain, they may have
no option other than "blindly" allowing or blocking the corresponding no option other than "blindly" allowing or blocking the corresponding
fragment. If they blindly allow the packet, then the firewall can be fragment. If they blindly allow the packet, then the firewall can be
easily circumvented by intentionally sending fragmented packets that easily circumvented by intentionally sending fragmented packets that
fail to include the entire IPv6 header chain in the first fragment. fail to include the entire IPv6 header chain in the first fragment.
On the other hand, first-fragments that fail to include the entire On the other hand, first-fragments that fail to include the entire
IPv6 header chain have never been formally deprecated and thus, in IPv6 header chain have never been formally deprecated and thus, in
theory, might be legitimately generated. theory, might be legitimately generated.
5. Updating RFC 2460 6. Updating RFC 2460
If a packet is fragmented, the first fragment of the packet (i.e., If a packet is fragmented, the first fragment of the packet (i.e.,
that with a Fragment Offset of 0) MUST contain the entire IPv6 header that with a Fragment Offset of 0) MUST contain the entire IPv6 header
chain. chain.
6. IANA Considerations 7. IANA Considerations
There are no IANA registries within this document. The RFC-Editor There are no IANA registries within this document. The RFC-Editor
can remove this section before publication of this document as an can remove this section before publication of this document as an
RFC. RFC.
7. Security Considerations 8. Security Considerations
This document describes the interoperability and security This document describes the interoperability and security
implications of IPv6 packets or first-fragments that fail to include implications of IPv6 packets or first-fragments that fail to include
the entire IPv6 header chain. The security implications include the the entire IPv6 header chain. The security implications include the
possibility of an attacker evading network security controls such as possibility of an attacker evading network security controls such as
firewalls and Network Intrusion Detection Systems (NIDS) [CPNI-IPv6]. firewalls and Network Intrusion Detection Systems (NIDS) [CPNI-IPv6].
This document updates RFC 2460 such that those packets are forbidden, This document updates RFC 2460 such that those packets are forbidden,
thus preventing the aforementioned issues. thus preventing the aforementioned issues.
8. Acknowledgements 9. Acknowledgements
The authors would like to thank (in alphabetical order) Ran Atkinson The authors would like to thank (in alphabetical order) Ran Atkinson,
and Dave Thaler for providing valuable comments on earlier versions Suresh Krishnan, and Dave Thaler for providing valuable comments on
of this document. earlier versions of this document.
9. References 10. References
9.1. Normative References 10.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997. Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6 [RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6
(IPv6) Specification", RFC 2460, December 1998. (IPv6) Specification", RFC 2460, December 1998.
9.2. Informative References 10.2. Informative References
[RFC6146] Bagnulo, M., Matthews, P., and I. van Beijnum, "Stateful [RFC6146] Bagnulo, M., Matthews, P., and I. van Beijnum, "Stateful
NAT64: Network Address and Protocol Translation from IPv6 NAT64: Network Address and Protocol Translation from IPv6
Clients to IPv4 Servers", RFC 6146, April 2011. Clients to IPv4 Servers", RFC 6146, April 2011.
[CPNI-IPv6] [CPNI-IPv6]
Gont, F., "Security Assessment of the Internet Protocol Gont, F., "Security Assessment of the Internet Protocol
version 6 (IPv6)", UK Centre for the Protection of version 6 (IPv6)", UK Centre for the Protection of
National Infrastructure, (available on request). National Infrastructure, (available on request).
 End of changes. 15 change blocks. 
28 lines changed or deleted 37 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/