Additional Transition Functionality for IPv6
An April 1st joke about security flags for both IPv4 and IPv6
Carpenter, B. and R. Hinden, "Additional Transition Functionality for IPv6", RFC 8136, DOI 10.17487/RFC8136, April 2017, <https://www.rfc-editor.org/info/rfc8136>.
@misc{rfc8136,
series = {Request for Comments},
number = 8136,
howpublished = {RFC 8136},
publisher = {RFC Editor},
doi = {10.17487/RFC8136},
url = {https://www.rfc-editor.org/info/rfc8136},
author = {B. Carpenter and R. Hinden},
title = {{Additional Transition Functionality for IPv6}},
pagetotal = 7,
year = 2017,
month = apr,
} RFC text
Contents
Independent Submission B. Carpenter
Request for Comments: 8136 Univ. of Auckland
Category: Informational R. Hinden
ISSN: 2070-1721 Check Point Software
1 April 2017
Additional Transition Functionality for IPv6
Abstract
This document proposes an additional mechanism intended to both
facilitate transition from IPv4 to IPv6 and improve the latter's
security and privacy.
Status of This Memo
This document is not an Internet Standards Track specification; it is
published for informational purposes.
This is a contribution to the RFC Series, independently of any other
RFC stream. The RFC Editor has chosen to publish this document at
its discretion and makes no statement about its value for
implementation or deployment. Documents approved for publication by
the RFC Editor are not a candidate for any level of Internet
Standard; see Section 2 of RFC 7841.
Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
http://www.rfc-editor.org/info/rfc8136.
Copyright Notice
Copyright (c) 2017 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 2
2. Required Function of All IPv4 Nodes . . . . . . . . . . . . . 2
3. Security Flag for IPv6 Packets . . . . . . . . . . . . . . . 3
4. Advanced Solution . . . . . . . . . . . . . . . . . . . . . . 4
4.1. Privacy Extension . . . . . . . . . . . . . . . . . . . . 4
5. Security Considerations . . . . . . . . . . . . . . . . . . . 5
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 5
7.1. Normative References . . . . . . . . . . . . . . . . . . 5
7.2. Informative References . . . . . . . . . . . . . . . . . 6
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 7
1. Introduction
In a recent statement [IABv6], the Internet Architecture Board deemed
that the Internet Engineering Task Force is expected to "stop
requiring IPv4 compatibility in new or extended protocols" and that
future work will "optimize for and depend on IPv6". In the interest
of promoting these goals, this memo makes an important change to IPv4
node requirements [RFC1122] and adds a missing security feature to
IPv6 [RFC2460].
1.1. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are not to be interpreted as described in
[RFC2119].
2. Required Function of All IPv4 Nodes
To ensure that all routers, firewalls, load balancers, and other
forms of middleboxes can readily identify IPv4 packets and deal with
them appropriately (selective dropping, switching to the slow path
through a router, sending them to the longest path first, etc.), all
IPv4 nodes MUST set the security flag defined by [RFC3514] to 1.
This should be sufficient to ensure that implementers of dual stack
applications prefer IPv6 when given the choice, and that the Happy
Eyeballs algorithm [RFC6555] will usually favour the IPv6 path.
3. Security Flag for IPv6 Packets
The above requirement will somewhat nullify the practical effect of
the IPv4 security flag for benign traffic, but this disadvantage can
readily be overcome by adding an equivalent flag for IPv6; in fact,
this is highly desirable to maintain feature equivalence between IPv4
and IPv6. Fortunately, this can easily be achieved since IPv6
supplies so many bits. The solution defined here is that the
Security Flag bit for an IPv6 packet is simply the parity of the
source address of the packet. In other words, if the source address
contains an odd number of 1s, the flag is True; otherwise, it's
False. All other considerations for the flag are exactly as
described in [RFC3514].
For an interface whose IPv6 address is set by Stateless Address
Autoconfiguration [RFC4862], it is the host itself that determines
the state of its security flag, by choosing an appropriate Interface
Identifier value. Fortunately this is now possible and compatible
with [RFC7136], [RFC7217], [RFC7421], and [RFC7721].
For an interface whose IPv6 address is set by DHCPv6 [RFC3315] or
manually, the network administrator is free to choose an Interface
Identifier that provides the desired security flag that is also
compatible with [RFC7721].
An exception case is a link with a 127-bit prefix [RFC6164]. Since
there is only one bit available as an Interface Identifier, one end
or the other will inevitably have its security flag set, and the
other won't. In this case, the node at one end will simply interpret
the other end's security flag to mean the opposite of what it says,
and vice versa.
Since RFC 6164 is designed for links between routers, in the case
where different ISPs are at each end of the link, it is normal
operational practice for one ISP to consider the other ISP to be
evil.
4. Advanced Solution
In the event that the previous solution proves too simple to deploy
in practice, a more advanced solution is also defined. It uses a new
IPv6 hop-by-hop User Security Flag Option (UFO).
The UFO is a hop-by-hop option that can be included in any IPv6
packet. Multiple UFOs MUST NOT be present in the packet. The UFO
has no alignment requirement. Its format is 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option Type | Option Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| UserSecFlag |
+-+-+-+-+-+-+-+-+
User Security Flag Option Layout
Option Type
8-bit identifier of the type of option. The option identifier
for the User Security Flag Option (0x7g) has not been allocated
by the IANA.
Option Length
8-bit unsigned integer. The length of the option (excluding the
Option Type and Option Length fields). The value MUST be 1.
UserSecFlag
8-bit unsigned integer. Bit 0 has the functionality defined in
[RFC3514]. The other bits are reserved and MUST be zero or one.
4.1. Privacy Extension
The mechanism can be extended to add a privacy flag. With the
mechanism of Section 3, the privacy flag could be encoded by using
quaternary parity (CRC-2) to obtain an extra bit. However, this
would waste considerable amounts of address space and SHOULD NOT be
done. With the UFO mechanism, bit 1 of UserSecFlag is defined as the
privacy flag. If set, it means that the packet contains private
information and MUST NOT be inspected en route. All firewalls,
monitoring devices, and government agencies MUST respect this rule.
This option is expected to be much more computationally efficient
than conventional privacy techniques like IPsec and Transport Layer
Security (TLS) as no encryption or key management is required to
achieve the desired privacy.
5. Security Considerations
The security considerations of [RFC3514] now apply to IPv6. However,
with the security flag being set for all IPv4 packets, there is a
risk that all IPv4 traffic will now be treated as a very distributed
denial-of-service attack.
Given the recent experience with very large scale DDoS attacks from
Internet of Things (IoT) devices like IP Cameras, phishing attacks,
malware, etc., that occur on the IPv4 Internet, it is a safe
assumption that all IPv4 packets are evil.
Since the mechanism described in Section 3 is compatible with
[RFC7721], address privacy is not impacted. Also, with that
mechanism, exactly half the IPv6 address space will indicate that the
security flag is set, so we can assert that the IPv6 Internet is only
half evil.
6. IANA Considerations
This document does not require any IANA actions.
7. References
7.1. Normative References
[RFC1122] Braden, R., Ed., "Requirements for Internet Hosts -
Communication Layers", STD 3, RFC 1122,
DOI 10.17487/RFC1122, October 1989,
<http://www.rfc-editor.org/info/rfc1122>.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<http://www.rfc-editor.org/info/rfc2119>.
[RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6
(IPv6) Specification", RFC 2460, DOI 10.17487/RFC2460,
December 1998, <http://www.rfc-editor.org/info/rfc2460>.
[RFC3315] Droms, R., Ed., Bound, J., Volz, B., Lemon, T., Perkins,
C., and M. Carney, "Dynamic Host Configuration Protocol
for IPv6 (DHCPv6)", RFC 3315, DOI 10.17487/RFC3315, July
2003, <http://www.rfc-editor.org/info/rfc3315>.
[RFC4862] Thomson, S., Narten, T., and T. Jinmei, "IPv6 Stateless
Address Autoconfiguration", RFC 4862,
DOI 10.17487/RFC4862, September 2007,
<http://www.rfc-editor.org/info/rfc4862>.
[RFC6164] Kohno, M., Nitzan, B., Bush, R., Matsuzaki, Y., Colitti,
L., and T. Narten, "Using 127-Bit IPv6 Prefixes on Inter-
Router Links", RFC 6164, DOI 10.17487/RFC6164, April 2011,
<http://www.rfc-editor.org/info/rfc6164>.
[RFC6555] Wing, D. and A. Yourtchenko, "Happy Eyeballs: Success with
Dual-Stack Hosts", RFC 6555, DOI 10.17487/RFC6555, April
2012, <http://www.rfc-editor.org/info/rfc6555>.
[RFC7136] Carpenter, B. and S. Jiang, "Significance of IPv6
Interface Identifiers", RFC 7136, DOI 10.17487/RFC7136,
February 2014, <http://www.rfc-editor.org/info/rfc7136>.
[RFC7217] Gont, F., "A Method for Generating Semantically Opaque
Interface Identifiers with IPv6 Stateless Address
Autoconfiguration (SLAAC)", RFC 7217,
DOI 10.17487/RFC7217, April 2014,
<http://www.rfc-editor.org/info/rfc7217>.
7.2. Informative References
[IABv6] IAB, "IAB Statement on IPv6", November 2016,
<https://www.iab.org/2016/11/07/iab-statement-on-ipv6/>.
[RFC3514] Bellovin, S., "The Security Flag in the IPv4 Header",
RFC 3514, DOI 10.17487/RFC3514, April 2003,
<http://www.rfc-editor.org/info/rfc3514>.
[RFC7421] Carpenter, B., Ed., Chown, T., Gont, F., Jiang, S.,
Petrescu, A., and A. Yourtchenko, "Analysis of the 64-bit
Boundary in IPv6 Addressing", RFC 7421,
DOI 10.17487/RFC7421, January 2015,
<http://www.rfc-editor.org/info/rfc7421>.
[RFC7721] Cooper, A., Gont, F., and D. Thaler, "Security and Privacy
Considerations for IPv6 Address Generation Mechanisms",
RFC 7721, DOI 10.17487/RFC7721, March 2016,
<http://www.rfc-editor.org/info/rfc7721>.
Authors' Addresses
Brian Carpenter
Department of Computer Science
University of Auckland
PB 92019
Auckland 1142
New Zealand
Email: brian.e.carpenter@gmail.com
Robert M. Hinden
Check Point Software
959 Skyway Road
San Carlos CA 94070
United States of America
Email: bob.hinden@gmail.com
AI ELI5
On this page
§1The Joke Setup
This is an April 1st humor RFC, not a real specification. It humorously proposes solving an IPv6 security feature gap by requiring all IPv4 packets to set the evil bit (from RFC 3514) to 1, then defining an equivalent mechanism for IPv6.
The document uses employment law language to discuss packet discrimination, calling issues like TTL-based dropping 'age-based termination' and IP-version filtering 'discrimination.' Despite the humorous framing, the technical details are accurate to RFC specifications.
The authors joke that networks discriminate against packets in unfair ways, like employers might discriminate against job applicants. The funny part is using employment law to talk about computers.
§2The Proposals (Not to be Implemented)
The RFC proposes two approaches. The first defines the IPv6 security flag as the parity of the source address: if the source IPv6 address contains an odd number of 1 bits, the flag is True; otherwise False. Hosts can control this flag by choosing the Interface Identifier when they autoconfigure their address.
The advanced solution introduces a hop-by-hop User Security Flag Option (UFO) with a UserSecFlag field. Bit 0 carries the main security flag, and bit 1 optionally encodes a privacy flag. When the privacy flag is set, the RFC jokes that firewalls and governments 'MUST respect' the privacy request—a pun on the idea that nothing can guarantee actual privacy.
One funny idea uses the address itself to store the flag. The other creates a new message option with a silly name (UFO).
§3The Outcome
With all IPv4 packets marked as evil and the IPv6 flag defined by address parity, exactly half of the IPv6 address space would indicate the security flag is set, leading to the humorous conclusion that 'the IPv6 Internet is only half evil.' The RFC notes that implementing this would likely cause routers to treat all IPv4 traffic as a distributed denial-of-service attack.
The privacy flag extension is particularly absurd: simply adding a flag and requesting respect is proposed as being more computationally efficient than real encryption like IPsec or TLS.
If you do all this, the jokes say half the internet is evil and privacy is solved by asking nicely.