Internet DRAFT - draft-nishida-tcpm-disabling-paws

draft-nishida-tcpm-disabling-paws







Network Working Group                                         Y. Nishida
Internet-Draft                                        GE Global Research
Intended status: Experimental                              June 20, 2018
Expires: December 22, 2018


          Disabling PAWS When Other Protections Are Available
                  draft-nishida-tcpm-disabling-paws-00

Abstract

   PAWS provides protection against old duplicated segments caused by
   wrapped sequence or earlier incarnated connections.  One drawback of
   PAWS is that it requires to place timestamp option in all segments,
   which consumes 10-12 bytes in the option space of TCP.  In addition,
   since PAWS just checks if timestamps is older or not, the protection
   logic is not very strong against malicious attacks or cannot work
   properly in some situations.  On the other hand, some other
   technologies which can provide stronger protections than PAWS are
   becoming available these days.  In this document, we propose to
   utilize other protection mechanisms as replacements of PAWS when they
   are available.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://datatracker.ietf.org/drafts/current/.

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

   This Internet-Draft will expire on December 22, 2018.

Copyright Notice

   Copyright (c) 2018 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
   (https://trustee.ietf.org/license-info) in effect on the date of



Nishida                 Expires December 22, 2018               [Page 1]

Internet-Draft               Disabling PAWS                    June 2018


   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Conventions and Terminology . . . . . . . . . . . . . . . . .   3
   3.  Possible Mechanisms AS Replacements of PAWS . . . . . . . . .   3
     3.1.  TCP Increased Security (tcpinc) . . . . . . . . . . . . .   3
     3.2.  Multipath TCP . . . . . . . . . . . . . . . . . . . . . .   4
     3.3.  TLS . . . . . . . . . . . . . . . . . . . . . . . . . . .   4
   4.  Duplicates from Earlier Connection Incarnations . . . . . . .   5
   5.  Security Considerations . . . . . . . . . . . . . . . . . . .   5
   6.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   5
   7.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   5
     7.1.  Normative References  . . . . . . . . . . . . . . . . . .   5
     7.2.  Informative References  . . . . . . . . . . . . . . . . .   6
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . .   7

1.  Introduction

   PAWS (Protect Against Wrapped Sequences) defined in [RFC7323] is a
   technique that can identify old duplicate segments in a TCP
   connection or segments from earlier incarnated connections.  PAWS
   utilizes timestamp option in TCP segments.  When both TCP endpoints
   agree to use PAWS, all segments belong to this connection will have
   the options, which consumes 10-12 bytes of 40 bytes option space.  As
   recent TCP connections use option space for other TCP extensions such
   as [RFC2018], [RFC5925] and [RFC6824], this feature tends to be
   considered as expensive these days.

   Timestamp option is also used for RTTM (Round Trip Time Measurement).
   Gathering many RTT samples from the timestamp in every TCP segment
   may look useful approach to improve RTO estimations.  However, some
   research results shows taking a few timestamps per RTT can be
   sufficient [MALLMAN99].  Also, some TCP implementations record the
   transmission time of each packet.  In this case, timestamp option is
   not necessary to measure RTTs.

   The basic idea of PAWS is that a received segment is considered as an
   old duplicate if the timestamp in it is less than the timestamps
   recently received on a connection.  The timestamp values used in PAWS
   is 32-bit unsigned integers.  Hence, when PAWS compares two timestamp
   values: t1, t2, it regards t2 as "newer than t1" if 0 < (t2 - t1) <



Nishida                 Expires December 22, 2018               [Page 2]

Internet-Draft               Disabling PAWS                    June 2018


   2^31, otherwise t2 is considered as "older than t1".  This logic
   presumes timestamp is monotonically increased across connections,
   however, it can be confused in some cases such as where multiple
   nodes are behind the same NAT.  In addition, if malicious attackers
   try to cheat the PAWS logic with random timestamp values, there will
   be 50% of chance for success on each try.  This basically means PAWS
   can hardly contribute to securing TCP connections.  On the other
   hand, several technologies which can be utilized for the same purpose
   are becoming available.

   Based on these observations, we propose to utilize other mechanisms
   as replacements of PAWS when it is possible.  The goal of the
   proposal in the draft is to provide stronger protections for old
   duplicated segments while facilitating the use of TCP option space by
   suppressing timestamp options.  Another benefit of the proposal is
   that it can contribute to facilitating recycling of TCP connections
   in TIME_WAIT stat, which will be useful for busy servers.

2.  Conventions and Terminology

   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 [RFC2119].

3.  Possible Mechanisms AS Replacements of PAWS

   In this section, we present several possible mechanisms that can be
   used as replacements of PAWS.  When these mechanisms are available
   and are activated in a TCP connection, PAWS can be disabled as it
   will be redundant.  In order to disable PAWS protection, a simple
   signaling mechanism will be needed as this will require agreement on
   both ends.  We discuss how to utilize these mechanisms and how to
   disable PAWS safely below.

3.1.  TCP Increased Security (tcpinc)

   Currently, TCP extensions that can provide unauthenticated encryption
   and integrity protection to TCP streams have been actively discussed
   in IETF [TCPINC].  As these proposed extensions is based on
   encryption algorithms, old duplicated segments in the same connection
   or segments from early connections with the same 4 tuples will easily
   be identified.  In addition, it will be harder for malicious attacks
   to cheat this protections.  To utilize this feature as a replacement
   of PAWS, we propose to update the encryption negotiation option (TCP-
   ENO) [I-D.ietf-tcpinc-tcpeno] by using 1 bit of global suboption in
   initial suboption byte.  This bit indicates that the end point
   supports disabling PAWS.  After endpoints confirm that both ends
   support disabling PAWS and encryption negotiation has been



Nishida                 Expires December 22, 2018               [Page 3]

Internet-Draft               Disabling PAWS                    June 2018


   successful, they will disable PAWS and will use timestamp options
   only for RTTM.  However, in case TCP-ENO has failed or either side
   does not support disabling PAWS, PAWS MUST NOT be disabled if the use
   of TS option is negotiated.

3.2.  Multipath TCP

   Multipath TCP [RFC6824] can also be used for a replacement of PAWS.
   Multipath TCP maintains 64 bits sequence number space in the session
   and use DSS (Data Sequence Signal) option for this purpose in
   addition to the sequence number field in the TCP header.  This DSS
   option can be served to provide the same protections as PAWS.  By
   checking Data sequence number is DSS option, it can identify old
   duplicated segments.  Because the data sequence number in the option
   should be exactly matched with the number stored in the session,
   MPTCP can provide stronger protection than PAWS.  One way to signal
   disabling PAWS information is to use MP_EXPERIMENTAL option defined
   in [I-D.ietf-mptcp-rfc6824bis] during initial connection setup.  Or,
   using 'B' bit in MP_CAPABLE option and extend MP_CAPABLE option to
   convey the info.  Another requirement for disabling PAWS in an MPTCP
   session is that DSS mapping should be put in all data segments in the
   session.  In case an MPTCP session falls back to TCP during SYN
   negotiation or either side does not support disabling PAWS, PAWS MUST
   not be disabled if the use of TS option is negotiated.

3.3.  TLS

   When TLS [RFC5246] is used for a TCP connection, old duplicated
   segments can be identified as segments in the connection are
   protected by encryption algorithms.  One difficulty for using TLS as
   a replacement of PAWS is that it will be hard for TCP layer to know
   whether TLS is used or not.  One possible way is to presume the use
   of TLS from port numbers (e.g. 443).  Or, providing APIs to signal
   TCP layer can be another way although this will require to update
   applications.  In addition, TCP needs to check if the other end
   supports disabling PAWS.  In order for this, we will need to define a
   new TCP option in order to be used during SYN exchange.  Another
   possibility is to utilize timestamp values in SYN segments in order
   to encode the feature negotiation information.  An example of using
   timestamp value in SYN segments for feature negotiation is described
   in [I-D.scheffenegger-tcpm-timestamp-negotiation].  When either side
   does not support disabling PAWS, PAWS MUST not be disabled if the use
   of TS option is negotiated.








Nishida                 Expires December 22, 2018               [Page 4]

Internet-Draft               Disabling PAWS                    June 2018


4.  Duplicates from Earlier Connection Incarnations

   As described in [RFC7323], the main purpose of PAWS is to protect
   against old duplicates from the same connection.  In addition, it is
   expected to provide additional security against old duplicates from
   earlier connections.  Although this feature is not strongly
   encouraged in the RFC, some implementations support it.  We believe
   the protection described above can be used for this purpose as well.
   By using encryption logics or extended sequence number space, they
   can distinguish between the packets from the current connection and
   the packets from earlier connections.  The protections will even be
   stronger than the protection PAWS can provide.  We believe the
   replacements of PAWS will also be able to facilitate recycling the
   connections in TIME_WAIT.  For example, it was reported some
   implementations replaced the connections in TIME_WAIT by a new
   incoming connection with the same 4 tuples when its timestamp is
   newer than the one in TIME_WAIT.  However, this logic will not work
   properly when multiple clients behind NAT or when a node doesn't
   maintain global timestamp offset across all TCP connections.  On the
   other hand, when a TCP connection can utilize the protections
   described above, it can recycle the connection in TIME_WAIT with more
   robust algorithms.

5.  Security Considerations

   TBD

6.  IANA Considerations

   This document may uses the Experimental Option Experiment Identifier
   defined in [RFC6994].  In this case, an application for this
   codepoint in the IANA TCP Experimental Option ExID registry will be
   submitted.

7.  References

7.1.  Normative References

   [I-D.ietf-mptcp-rfc6824bis]
              Ford, A., Raiciu, C., Handley, M., Bonaventure, O., and C.
              Paasch, "TCP Extensions for Multipath Operation with
              Multiple Addresses", draft-ietf-mptcp-rfc6824bis-11 (work
              in progress), May 2018.

   [I-D.ietf-tcpinc-tcpeno]
              Bittau, A., Giffin, D., Handley, M., Mazieres, D., and E.
              Smith, "TCP-ENO: Encryption Negotiation Option", draft-
              ietf-tcpinc-tcpeno-18 (work in progress), November 2017.



Nishida                 Expires December 22, 2018               [Page 5]

Internet-Draft               Disabling PAWS                    June 2018


   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.

   [RFC5246]  Dierks, T. and E. Rescorla, "The Transport Layer Security
              (TLS) Protocol Version 1.2", RFC 5246,
              DOI 10.17487/RFC5246, August 2008,
              <https://www.rfc-editor.org/info/rfc5246>.

   [RFC6824]  Ford, A., Raiciu, C., Handley, M., and O. Bonaventure,
              "TCP Extensions for Multipath Operation with Multiple
              Addresses", RFC 6824, DOI 10.17487/RFC6824, January 2013,
              <https://www.rfc-editor.org/info/rfc6824>.

   [RFC7323]  Borman, D., Braden, B., Jacobson, V., and R.
              Scheffenegger, Ed., "TCP Extensions for High Performance",
              RFC 7323, DOI 10.17487/RFC7323, September 2014,
              <https://www.rfc-editor.org/info/rfc7323>.

7.2.  Informative References

   [I-D.scheffenegger-tcpm-timestamp-negotiation]
              Scheffenegger, R., Kuehlewind, M., and B. Trammell,
              "Additional negotiation in the TCP Timestamp Option field
              during the TCP handshake", draft-scheffenegger-tcpm-
              timestamp-negotiation-05 (work in progress), October 2012.

   [MALLMAN99]
              Allman, M. and V. Paxson, "On Estimating End-to-End
              Network Path Properties", Proceedings of the ACM SIGCOMM ,
              September 1999.

   [RFC2018]  Mathis, M., Mahdavi, J., Floyd, S., and A. Romanow, "TCP
              Selective Acknowledgment Options", RFC 2018,
              DOI 10.17487/RFC2018, October 1996,
              <https://www.rfc-editor.org/info/rfc2018>.

   [RFC5925]  Touch, J., Mankin, A., and R. Bonica, "The TCP
              Authentication Option", RFC 5925, DOI 10.17487/RFC5925,
              June 2010, <https://www.rfc-editor.org/info/rfc5925>.

   [RFC6994]  Touch, J., "Shared Use of Experimental TCP Options",
              RFC 6994, DOI 10.17487/RFC6994, August 2013,
              <https://www.rfc-editor.org/info/rfc6994>.

   [TCPINC]   The IETF, "The TCPINC Working Group,
              https://datatracker.ietf.org/wg/tcpinc/documents/", 2014.



Nishida                 Expires December 22, 2018               [Page 6]

Internet-Draft               Disabling PAWS                    June 2018


Author's Address

   Yoshifumi Nishida
   GE Global Research
   2623 Camino Ramon
   San Ramon, CA   94583
   USA

   Email: nishida@wide.ad.jp










































Nishida                 Expires December 22, 2018               [Page 7]