RFC 8136 INFORMATIONAL HUMOR · IPV6 · IPV4

Additional Transition Functionality for IPv6

An April 1st joke about security flags for both IPv4 and IPv6

On rfc-editor.org ↗
PUBLISHED
April 2017
AUTHORS
B. Carpenter, R. Hinden
STREAM
INDEPENDENT
PUBLICATION DATE
April 1, 2017
UFO OPTION TYPE
0x7g (not formally allocated)
DOI
10.17487/RFC8136

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
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
PROBLEMIPv4 has a security flag (RFC 3514, the 'evil bit') but IPv6 does not have an equivalent, creating an asymmetry between the two protocols.
MECHANISMThe RFC jokingly proposes that all IPv4 packets set the evil bit to 1, and defines an IPv6 security flag as the parity of the source address (odd number of 1 bits = True). An advanced option (UFO) adds a hop-by-hop flag field for more control.
IT'S A JOKEThis is an April 1st humor document and not a real specification. It plays on legal language about employment discrimination while explaining technical IPv6 concepts straight-faced.

§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.

§4References