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