datatracker.ietf.org
Sign in
Version 5.6.2.p5, 2014-08-04
Report a bug

Defending against Sequence Number Attacks
RFC 6528

Internet Engineering Task Force (IETF)                           F. Gont
Request for Comments: 6528                        SI6 Networks / UTN-FRH
Obsoletes: 1948                                              S. Bellovin
Updates: 793                                         Columbia University
Category: Standards Track                                  February 2012
ISSN: 2070-1721

               Defending against Sequence Number Attacks

Abstract

   This document specifies an algorithm for the generation of TCP
   Initial Sequence Numbers (ISNs), such that the chances of an off-path
   attacker guessing the sequence numbers in use by a target connection
   are reduced.  This document revises (and formally obsoletes) RFC
   1948, and takes the ISN generation algorithm originally proposed in
   that document to Standards Track, formally updating RFC 793.

Status of This Memo

   This is an Internet Standards Track document.

   This document is a product of the Internet Engineering Task Force
   (IETF).  It represents the consensus of the IETF community.  It has
   received public review and has been approved for publication by the
   Internet Engineering Steering Group (IESG).  Further information on
   Internet Standards is available in Section 2 of RFC 5741.

   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/rfc6528.

Copyright Notice

   Copyright (c) 2012 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.  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.

Gont & Bellovin              Standards Track                    [Page 1]
RFC 6528        Defending against Sequence Number Attacks  February 2012

Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  2
   2.  Generation of Initial Sequence Numbers . . . . . . . . . . . .  3
   3.  Proposed Initial Sequence Number Generation Algorithm  . . . .  4
   4.  Security Considerations  . . . . . . . . . . . . . . . . . . .  5
   5.  Acknowledgements . . . . . . . . . . . . . . . . . . . . . . .  6
   6.  References . . . . . . . . . . . . . . . . . . . . . . . . . .  6
     6.1.  Normative References . . . . . . . . . . . . . . . . . . .  6
     6.2.  Informative References . . . . . . . . . . . . . . . . . .  7
   Appendix A.  Address-Based Trust-Relationship Exploitation
                Attacks . . . . . . . . . . . . . . . . . . . . . . . 10
     A.1.  Blind TCP Connection-Spoofing  . . . . . . . . . . . . . . 10
   Appendix B.  Changes from RFC 1948 . . . . . . . . . . . . . . . . 12

1.  Introduction

   For a long time, the Internet has experienced a number of off-path
   attacks against TCP connections.  These attacks have ranged from
   trust-relationship exploitation to denial-of-service attacks
   [CPNI-TCP].  Discussion of some of these attacks dates back to at
   least 1985, when Morris [Morris1985] described a form of attack based
   on guessing what sequence numbers TCP [RFC0793] will use for new
   connections between two known end-points.

   In 1996, RFC 1948 [RFC1948] proposed an algorithm for the selection
   of TCP Initial Sequence Numbers (ISNs), such that the chances of an
   off-path attacker guessing valid sequence numbers are reduced.  With
   the aforementioned algorithm, such attacks would remain possible if
   and only if the attacker already has the ability to perform "man-in-
   the-middle" attacks.

   This document revises (and formally obsoletes) RFC 1948, and takes
   the ISN generation algorithm originally proposed in that document to
   Standards Track.

   Section 2 provides a brief discussion of the requirements for a good
   ISN generation algorithm.  Section 3 specifies a good ISN selection
   algorithm.  Appendix A provides a discussion of the trust-
   relationship exploitation attacks that originally motivated the
   publication of RFC 1948 [RFC1948].  Finally, Appendix B lists the
   differences from RFC 1948 to this document.

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this

[include full document text]