draft-ietf-tcpm-tcp-antispoof-04.txt | draft-ietf-tcpm-tcp-antispoof-05.txt | |||
---|---|---|---|---|
IETF TCPM WG J. Touch | IETF TCPM WG J. Touch | |||
Internet Draft USC/ISI | Internet Draft USC/ISI | |||
Expires: November 2006 May 15, 2006 | Expires: April 2007 October 22, 2006 | |||
Defending TCP Against Spoofing Attacks | Defending TCP Against Spoofing Attacks | |||
draft-ietf-tcpm-tcp-antispoof-04.txt | draft-ietf-tcpm-tcp-antispoof-05.txt | |||
Status of this Memo | Status of this Memo | |||
By submitting this Internet-Draft, each author represents that | By submitting this Internet-Draft, each author represents that | |||
any applicable patent or other IPR claims of which he or she is | any applicable patent or other IPR claims of which he or she is | |||
aware have been or will be disclosed, and any of which he or she | aware have been or will be disclosed, and any of which he or she | |||
becomes aware will be disclosed, in accordance with Section 6 of | becomes aware will be disclosed, in accordance with Section 6 of | |||
BCP 79. | BCP 79. | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
skipping to change at page 1, line 33 | skipping to change at page 1, line 33 | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
The list of current Internet-Drafts can be accessed at | The list of current Internet-Drafts can be accessed at | |||
http://www.ietf.org/ietf/1id-abstracts.txt | http://www.ietf.org/ietf/1id-abstracts.txt | |||
The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
http://www.ietf.org/shadow.html | http://www.ietf.org/shadow.html | |||
This Internet-Draft will expire on November 15, 2006. | This Internet-Draft will expire on April 22, 2007. | |||
Abstract | Abstract | |||
Recent analysis of potential attacks on core Internet infrastructure | Recent analysis of potential attacks on core Internet infrastructure | |||
indicates an increased vulnerability of TCP connections to spurious | indicates an increased vulnerability of TCP connections to spurious | |||
resets (RSTs), sent with forged IP source addresses (spoofing). TCP | resets (RSTs), sent with forged IP source addresses (spoofing). TCP | |||
has always been susceptible to such RST spoofing attacks, which were | has always been susceptible to such RST spoofing attacks, which were | |||
indirectly protected by checking that the RST sequence number was | indirectly protected by checking that the RST sequence number was | |||
inside the current receive window, as well as via the obfuscation of | inside the current receive window, as well as via the obfuscation of | |||
TCP endpoint and port numbers. For pairs of well-known endpoints | TCP endpoint and port numbers. For pairs of well-known endpoints | |||
often over predictable port pairs, such as BGP or between web servers | often over predictable port pairs, such as BGP or between web servers | |||
and well-known large-scale caches, increases in the path bandwidth- | and well-known large-scale caches, increases in the path bandwidth- | |||
delay product of a connection have sufficiently increased the receive | delay product of a connection have sufficiently increased the receive | |||
window space that off-path third parties can brute-force generate a | window space that off-path third parties can brute-force generate a | |||
viable RST sequence number. The susceptibility to attack increases | viable RST sequence number. The susceptibility to attack increases | |||
as the square of the bandwidth, thus presents a significant | with the square of the bandwidth, thus presents a significant | |||
vulnerability for recent high-speed networks. This document | vulnerability for recent high-speed networks. This document | |||
addresses this vulnerability, discussing proposed solutions at the | addresses this vulnerability, discussing proposed solutions at the | |||
transport level and their inherent challenges, as well as existing | transport level and their inherent challenges, as well as existing | |||
network level solutions and the feasibility of their deployment. | network level solutions and the feasibility of their deployment. | |||
This document focuses on vulnerabilities due to spoofed TCP segments, | This document focuses on vulnerabilities due to spoofed TCP segments, | |||
and includes a discussion of related ICMP spoofing attacks on TCP | and includes a discussion of related ICMP spoofing attacks on TCP | |||
connections. | connections. | |||
Table of Contents | Table of Contents | |||
skipping to change at page 2, line 34 | skipping to change at page 2, line 34 | |||
3.1. Transport Layer Solutions................................10 | 3.1. Transport Layer Solutions................................10 | |||
3.1.1. TCP MD5 Authentication..............................11 | 3.1.1. TCP MD5 Authentication..............................11 | |||
3.1.2. TCP RST Window Attenuation..........................11 | 3.1.2. TCP RST Window Attenuation..........................11 | |||
3.1.3. TCP Timestamp Authentication........................12 | 3.1.3. TCP Timestamp Authentication........................12 | |||
3.1.4. Other TCP Cookies...................................13 | 3.1.4. Other TCP Cookies...................................13 | |||
3.1.5. Other TCP Considerations............................13 | 3.1.5. Other TCP Considerations............................13 | |||
3.1.6. Other Transport Protocol Solutions..................14 | 3.1.6. Other Transport Protocol Solutions..................14 | |||
3.2. Network Layer (IP) Solutions.............................14 | 3.2. Network Layer (IP) Solutions.............................14 | |||
3.2.1. Address filtering...................................15 | 3.2.1. Address filtering...................................15 | |||
3.2.2. IPsec...............................................16 | 3.2.2. IPsec...............................................16 | |||
4. ICMP..........................................................16 | 4. ICMP..........................................................17 | |||
5. Issues........................................................17 | 5. Issues........................................................18 | |||
5.1. Transport Layer (e.g., TCP)..............................18 | 5.1. Transport Layer (e.g., TCP)..............................18 | |||
5.2. Network Layer (IP).......................................19 | 5.2. Network Layer (IP).......................................19 | |||
5.3. Application Layer........................................20 | 5.3. Application Layer........................................21 | |||
5.4. Link Layer...............................................21 | 5.4. Link Layer...............................................21 | |||
5.5. Issues Discussion........................................21 | 5.5. Issues Discussion........................................22 | |||
6. Security Considerations.......................................22 | 6. Security Considerations.......................................22 | |||
7. IANA Considerations...........................................22 | 7. IANA Considerations...........................................23 | |||
8. Conclusions...................................................22 | 8. Conclusions...................................................23 | |||
9. Acknowledgments...............................................23 | 9. Acknowledgments...............................................23 | |||
10. References...................................................23 | 10. References...................................................23 | |||
10.1. Normative References....................................23 | 10.1. Normative References....................................23 | |||
10.2. Informative References..................................23 | 10.2. Informative References..................................24 | |||
Author's Addresses...............................................27 | Author's Addresses...............................................27 | |||
Intellectual Property Statement..................................27 | Intellectual Property Statement..................................27 | |||
Disclaimer of Validity...........................................27 | Disclaimer of Validity...........................................28 | |||
Copyright Statement..............................................28 | Copyright Statement..............................................28 | |||
Acknowledgment...................................................28 | Acknowledgment...................................................28 | |||
1. Introduction | 1. Introduction | |||
Analysis of the Internet infrastructure has been recently | Analysis of the Internet infrastructure has been recently | |||
demonstrated new version of a vulnerability in BGP connections | demonstrated new version of a vulnerability in BGP connections | |||
between core routers using an attack based on RST spoofing from off- | between core routers using an attack based on RST spoofing from off- | |||
path attackers [9][10][43]. This attack has been known for nearly | path attackers [9][10][45]. This attack has been known for nearly | |||
six years [19]. Such connections, typically using TCP, can be | six years [20]. Such connections, typically using TCP, can be | |||
susceptible to off-path third-party reset (RST) segments with forged | susceptible to off-path third-party reset (RST) segments with forged | |||
source addresses (spoofed), which terminate the TCP connection. BGP | source addresses (spoofed), which terminate the TCP connection. BGP | |||
routers react to a terminated TCP connection in various ways which | routers react to a terminated TCP connection in various ways which | |||
can amplify the impact of an attack, ranging from restarting the | can amplify the impact of an attack, ranging from restarting the | |||
connection to deciding that the other router is unreachable and thus | connection to deciding that the other router is unreachable and thus | |||
flushing the BGP routes [33]. This sort of attack affects other | flushing the BGP routes [34]. This sort of attack affects other | |||
protocols besides BGP, involving any long-lived connection between | protocols besides BGP, involving any long-lived connection between | |||
well-known endpoints. The impact on Internet infrastructure can be | well-known endpoints. The impact on Internet infrastructure can be | |||
substantial (esp. for the BGP case), and warrants immediate | substantial (esp. for the BGP case), and warrants immediate | |||
attention. | attention. | |||
TCP, like many other protocols, can be susceptible to these off-path | TCP, like many other protocols, can be susceptible to these off-path | |||
third-party spoofing attacks. Such attacks rely on the increase of | third-party spoofing attacks. Such attacks rely on the increase of | |||
commodity platforms supporting public access to previously privileged | commodity platforms supporting public access to previously privileged | |||
resources, such as system-level (i.e., root) access. Given such | resources, such as system-level (i.e., root) access. Given such | |||
access, it is trivial for anyone to generate a packet with any header | access, it is trivial for anyone to generate a packet with any header | |||
desired. | desired. | |||
This, coupled with the lack of sufficient address filtering to drop | This, coupled with the lack of sufficient address filtering to drop | |||
such spoofed traffic, can increase the potential for off-path third- | such spoofed traffic, can increase the potential for off-path third- | |||
party spoofing attacks [9][10][43]. Proposed solutions include the | party spoofing attacks [9][10][45]. Proposed solutions include the | |||
deployment of existing Internet network and transport security as | deployment of existing Internet network and transport security as | |||
well as modifications to transport protocols that reduce its | well as modifications to transport protocols that reduce its | |||
vulnerability to generated attacks [13][15][19][36][42]. | vulnerability to generated attacks [13][15][20][38][44]. | |||
One way to defeat spoofing is to validate the segments of a | One way to defeat spoofing is to validate the segments of a | |||
connection, either at the transport level or the network level. TCP | connection, either at the transport level or the network level. TCP | |||
with MD5 extensions provides this authentication at the transport | with MD5 extensions provides this authentication at the transport | |||
level, and IPsec provides authentication at the network level | level, and IPsec provides authentication at the network level | |||
[18][19][22][25]. In both cases their deployment overhead may be | [19][20][23][26]. In both cases their deployment overhead may be | |||
prohibitive, e.g., it may not feasible for public services, such as | prohibitive, e.g., it may not feasible for public services, such as | |||
web servers, to be configured with the appropriate certificate | web servers, to be configured with the appropriate certificate | |||
authorities of large numbers of peers (for IPsec using IKE), or | authorities of large numbers of peers (for IPsec using IKE), or | |||
shared secrets (for IPsec in shared-secret mode, or TCP/MD5), because | shared secrets (for IPsec in shared-secret mode, or TCP/MD5), because | |||
many clients may need to be configured rapidly without external | many clients may need to be configured rapidly without external | |||
assistance. Services from public web servers connecting to large- | assistance. Services from public web servers connecting to large- | |||
scale caches to BGP with larger numbers of peers can fall into this | scale caches to BGP with larger numbers of peers can fall into this | |||
category. | category. | |||
The remainder of this document outlines the recent attack scenario in | The remainder of this document outlines the recent attack scenario in | |||
detail and describes and compares a variety of solutions, including | detail and describes and compares a variety of solutions, including | |||
existing solutions based on TCP/MD5 and IPsec, as well as recently | existing solutions based on TCP/MD5 and IPsec, as well as recently | |||
proposed solutions, including modifications to TCP's RST processing | proposed solutions, including modifications to TCP's RST processing | |||
[36], modifications to TCP's timestamp processing [31], and | [38], modifications to TCP's timestamp processing [32], and | |||
modifications to IPsec and TCP/MD5 keying [41]. This document | modifications to IPsec and TCP/MD5 keying [43]. This document | |||
focuses on spoofing of TCP segments, although a discussion of related | focuses on spoofing of TCP segments, although a discussion of related | |||
spoofing of ICMP packets based on spoofed TCP contents is also | spoofing of ICMP packets based on spoofed TCP contents is also | |||
discussed. | discussed. | |||
Note that the description of these attacks is not new; attacks using | Note that the description of these attacks is not new; attacks using | |||
RSTs on BGP have been known since 1998, and were the reason for the | RSTs on BGP have been known since 1998, and were the reason for the | |||
development of TCP/MD5 [19]. The recent attack scenario was first | development of TCP/MD5 [20]. The recent attack scenario was first | |||
documented by Convery at a NANOG meeting in 2003, but that analysis | documented by Convery at a NANOG meeting in 2003, but that analysis | |||
assumed the entire sequence space (2^32 packets) needed to be covered | assumed the entire sequence space (2^32 packets) needed to be covered | |||
for an attack to succeed [10]. Watson's more detailed analysis | for an attack to succeed [10]. Watson's more detailed analysis | |||
discovered that a single packet anywhere in the current window could | discovered that a single packet anywhere in the current window could | |||
succeed at an attack [43]. This document adds the observation that | succeed at an attack [45]. This document adds the observation that | |||
susceptibility to attack goes as the square of bandwidth, due to the | susceptibility to attack goes as the square of bandwidth, due to the | |||
coupling between the linear increase in receive window size and | coupling between the linear increase in receive window size and | |||
linear increase in rate an attacker, as well as comparing the variety | linear increase in rate a potential attack, as well as comparing the | |||
of more recent proposals, including modifications to TCP, use of | variety of more recent proposals, including modifications to TCP, use | |||
IPsec, and use of TCP/MD5 to resist such attacks. | of IPsec, and use of TCP/MD5 to resist such attacks. | |||
2. Background | 2. Background | |||
The recent analysis of potential attacks on BGP has again raised the | The recent analysis of potential attacks on BGP has again raised the | |||
issue of TCP's vulnerability to off-path third-party spoofing attacks | issue of TCP's vulnerability to off-path third-party spoofing attacks | |||
[9][10][43]. A variety of such attacks have been known for several | [9][10][45]. A variety of such attacks have been known for several | |||
years, including sending RSTs, SYNs, and even ACKs in an attempt to | years, including sending RSTs, SYNs, and even ACKs in an attempt to | |||
affect an existing connection or to load down servers. These attacks | affect an existing connection or to load down servers. These attacks | |||
often combine external knowledge (e.g., to indicate the IP addresses | often combine external knowledge (e.g., to indicate the IP addresses | |||
to attack, the destination port number, and sometimes the ISN) with | to attack, the destination port number, and sometimes the ISN) with | |||
brute-force capabilities enabled by modern computers and network | brute-force capabilities enabled by modern computers and network | |||
bandwidths (e.g., to scan all source ports or an entire window | bandwidths (e.g., to scan all source ports or an entire window | |||
space). Overall, such attacks are countered by the use of some form | space). Overall, such attacks are countered by the use of some form | |||
of authentication at the network (e.g., IPsec), transport (e.g., SYN | of authentication at the network (e.g., IPsec), transport (e.g., SYN | |||
cookies, TCP/MD5), or other layers. TCP already includes a weak form | cookies, TCP/MD5), or other layers. TCP already includes a weak form | |||
of such authentication in its check of segment sequence numbers | of such authentication in its check of segment sequence numbers | |||
against the current receiver window. Increases in the bandwidth- | against the current receiver window. Increases in the bandwidth- | |||
delay product for certain long connections have sufficiently weakened | delay product for certain long connections have sufficiently weakened | |||
this type of weak authentication to make reliance on it inadvisable. | this type of weak authentication to make reliance on it inadvisable. | |||
2.1. Review of TCP Windows | 2.1. Review of TCP Windows | |||
Before proceeding, it is useful to review the terminology and | Before proceeding, it is useful to review the terminology and | |||
components of TCP's windowing algorithm. TCP connections have three | components of TCP's windowing algorithm. TCP connections have three | |||
kinds of windows [1][32]: | kinds of windows [1][33]: | |||
o Send window (SND.WND): the latest send window size. | o Send window (SND.WND): the latest send window size. | |||
o Receive window (RCV.WND): the latest advertised receive window | o Receive window (RCV.WND): the latest advertised receive window | |||
size. | size. | |||
o Congestion window (CWND): the window determined by congestion | o Congestion window (CWND): the window determined by congestion | |||
feedback that limits how much of RCV.WND can be in-flight in a | feedback that limits how much of RCV.WND can be in-flight in a | |||
round trip time. | round trip time. | |||
skipping to change at page 5, line 35 | skipping to change at page 5, line 35 | |||
SND.WND determines how much data the sender is willing to store on | SND.WND determines how much data the sender is willing to store on | |||
its side for possible retransmission due to loss, and RCV.WND | its side for possible retransmission due to loss, and RCV.WND | |||
determines the ability of the receiver to accommodate that loss and | determines the ability of the receiver to accommodate that loss and | |||
reorder received packets. CWND never grows beyond RCV.WND. | reorder received packets. CWND never grows beyond RCV.WND. | |||
High bandwidth-delay product networks need CWND to be sufficiently | High bandwidth-delay product networks need CWND to be sufficiently | |||
large to accommodate as much data would be in transit in a round trip | large to accommodate as much data would be in transit in a round trip | |||
time, otherwise their performance will suffer. As a result, it is | time, otherwise their performance will suffer. As a result, it is | |||
recommended that users and various automatic programs increase | recommended that users and various automatic programs increase | |||
RCV.WND to at least the size of bandwidth*delay (the bandwidth-delay | RCV.WND to at least the size of bandwidth*delay (the bandwidth-delay | |||
product) [21][34]. | product) [22][35]. | |||
As the bandwidth-delay product of the network increases, however, | As the bandwidth-delay product of the network increases, however, | |||
such increases in the advertised receive window can cause increased | such increases in the advertised receive window can cause increased | |||
susceptibility to spoofing attacks, as the remainder of this document | susceptibility to spoofing attacks, as the remainder of this document | |||
shows. This assumes, however, that the receive window size (e.g., | shows. This assumes, however, that the receive window size (e.g., | |||
via increased receive socket buffer configuration) is increased with | via increased receive socket buffer configuration) is increased with | |||
the increased bandwidth-delay product; if not, then connection | the increased bandwidth-delay product; if not, then connection | |||
performance will degrade, but susceptibility to spoofing attacks will | performance will degrade, but susceptibility to spoofing attacks will | |||
increase only linearly (with the rate at which the attacker can send | increase only linearly (with the rate at which the attacker can send | |||
spoofed packets), not as the square of the bandwidth. Note that | spoofed packets), not as the square of the bandwidth. Note that | |||
either increase depends on the receive window itself, and is | either increase depends on the receive window itself, and is | |||
independent of the congestion state or amount of data transmitted. | independent of the congestion state or amount of data transmitted. | |||
2.2. Recent BGP Attacks Using TCP RSTs | 2.2. Recent BGP Attacks Using TCP RSTs | |||
BGP represents a particular vulnerability to spoofing attacks because | BGP represents a particular vulnerability to spoofing attacks because | |||
it uses TCP connectivity to infer routability, so losing a TCP | it uses TCP connectivity to infer routability, so losing a TCP | |||
connection with a BGP peer can result in the flushing of routes to | connection with a BGP peer can result in the flushing of routes to | |||
that peer [33]. | that peer [34]. | |||
Until six years ago, such connections were assumed difficult to | Until six years ago, such connections were assumed difficult to | |||
attack because they were described by a few comparatively obscure | attack because they were described by a few comparatively obscure | |||
parameters [19]. Most TCP connections are protected by multiple | parameters [20]. Most TCP connections are protected by multiple | |||
levels of obfuscation except at the endpoints of the connection: | levels of obfuscation except at the endpoints of the connection: | |||
o Both endpoint addresses are usually not well-known; although server | o Both endpoint addresses are usually not well-known; although server | |||
addresses are advertised, clients are somewhat anonymous. | addresses are advertised, clients are somewhat anonymous. | |||
o Both port numbers are usually not well-known; the server's usually | o Both port numbers are usually not well-known; the server's usually | |||
is advertised (representing the service), but the client's is | is advertised (representing the service), but the client's is | |||
typically sufficiently unpredictable to an off-path third-party. | typically sufficiently unpredictable to an off-path third-party. | |||
o Valid sequence number space is not well-known. | o Valid sequence number space is not well-known. | |||
skipping to change at page 7, line 6 | skipping to change at page 7, line 6 | |||
2.3. TCP RST Vulnerability | 2.3. TCP RST Vulnerability | |||
TCP has a known vulnerability to third-party spoofed segments. SYN | TCP has a known vulnerability to third-party spoofed segments. SYN | |||
flooding consumes server resources in half-open connections, | flooding consumes server resources in half-open connections, | |||
affecting the server's ability to open new connections [4][11]. ACK | affecting the server's ability to open new connections [4][11]. ACK | |||
spoofing can cause connections to transmit too much data too quickly, | spoofing can cause connections to transmit too much data too quickly, | |||
creating network congestion and segment loss, causing connections to | creating network congestion and segment loss, causing connections to | |||
slow to a crawl. In the most recent attacks on BGP, RSTs cause | slow to a crawl. In the most recent attacks on BGP, RSTs cause | |||
connections to be dropped. As noted earlier, some BGP | connections to be dropped. As noted earlier, some BGP | |||
implementations interpret TCP connection termination, or a series of | implementations interpret TCP connection termination, or a series of | |||
such failures, as a network failure [33]. This causes routers to | such failures, as a network failure [34]. This causes routers to | |||
drop the BGP routing information already exchanged, in addition to | drop the BGP routing information already exchanged, in addition to | |||
inhibiting their ongoing exchanges, thus amplifying the impact of the | inhibiting their ongoing exchanges, thus amplifying the impact of the | |||
attack. The result can affect routing paths throughout the Internet. | attack. The result can affect routing paths throughout the Internet. | |||
The dangerous effects of RSTs on TCP have been known for many years, | The dangerous effects of RSTs on TCP have been known for many years, | |||
even when used by the legitimate endpoints of a connection. TCP RSTs | even when used by the legitimate endpoints of a connection. TCP RSTs | |||
cause the receiver to drop all connection state; because the source | cause the receiver to drop all connection state; because the source | |||
is not required to maintain a TIME_WAIT state, such a RST can cause | is not required to maintain a TIME_WAIT state, such a RST can cause | |||
premature reuse of address/port pairs, potentially allowing segments | premature reuse of address/port pairs, potentially allowing segments | |||
from a previous connection to contaminate the data of a new | from a previous connection to contaminate the data of a new | |||
skipping to change at page 8, line 7 | skipping to change at page 8, line 7 | |||
index of the next byte to be transmitted or received. For RSTs, this | index of the next byte to be transmitted or received. For RSTs, this | |||
is relevant because legitimate RSTs use the next sequence number in | is relevant because legitimate RSTs use the next sequence number in | |||
the transmitter window, and the receiver checks that incoming RSTs | the transmitter window, and the receiver checks that incoming RSTs | |||
have a sequence number in the expected receive window. Such | have a sequence number in the expected receive window. Such | |||
processing is intended to eliminate duplicate segments (somewhat moot | processing is intended to eliminate duplicate segments (somewhat moot | |||
for RSTs, though), and to drop RSTs which were part of previous | for RSTs, though), and to drop RSTs which were part of previous | |||
connections. | connections. | |||
TCP uses two window mechanisms, a primary mechanism which uses a | TCP uses two window mechanisms, a primary mechanism which uses a | |||
space of 32 bits, and a secondary mechanism which scales this window | space of 32 bits, and a secondary mechanism which scales this window | |||
[21][32]. The valid advertised receive window is a fraction, not to | [22][33]. The valid advertised receive window is a fraction, not to | |||
exceed approximately half, of this space, or ~2 billion (2 * 10^9, | exceed approximately half, of this space, or ~2 billion (2 * 10^9, | |||
i.e., 2E9 or 2 U.S. billion). Under typical configurations, the | i.e., 2E9 or 2 U.S. billion). Under typical configurations, the | |||
majority of TCP connections open to a very small fraction of this | majority of TCP connections open to a very small fraction of this | |||
space, e.g., 10,000-60,000(approximately 5-100 segments). This is | space, e.g., 10,000-60,000(approximately 5-100 segments). This is | |||
because the advertised receive window typically matches the receive | because the advertised receive window typically matches the receive | |||
socket buffer size. It is recommended that this buffer be tuned to | socket buffer size. It is recommended that this buffer be tuned to | |||
match the needs of the connection, either manually or by automatic | match the needs of the connection, either manually or by automatic | |||
external means [34]. | external means [35]. | |||
On a low-loss path, the advertised receive window should be | On a low-loss path, the advertised receive window should be | |||
configured to match the path bandwidth-delay product, including | configured to match the path bandwidth-delay product, including | |||
buffering delays (assume 1 packet/hop) [34]. Many paths in the | buffering delays (assume 1 packet/hop) [35]. Many paths in the | |||
Internet have end-to-end bandwidths of under 1 Mbps, latencies under | Internet have end-to-end bandwidths of under 1 Mbps, latencies under | |||
100ms, and are under 15 hops, resulting in fairly small advertised | 100ms, and are under 15 hops, resulting in fairly small advertised | |||
receive windows as above (under 35,000 bytes). Under these | receive windows as above (under 35,000 bytes). Under these | |||
conditions, and further assuming that the initial sequence number is | conditions, and further assuming that the initial sequence number is | |||
suitably (pseudo-randomly) chosen, a valid guessed sequence number | suitably (pseudo-randomly) chosen, a valid guessed sequence number | |||
would have odds of 1 in 57,000 of falling within the advertised | would have odds of 1 in 57,000 of falling within the advertised | |||
receive window. Put differently, a blind (i.e., off-path) attacker | receive window. Put differently, a blind (i.e., off-path) attacker | |||
would need to send 57,000 RSTs with suitably spaced sequence number | would need to send 57,000 RSTs with suitably spaced sequence number | |||
guesses to successfully reset a connection. At 1 Mbps, 57,000 (40 | guesses to successfully reset a connection. At 1 Mbps, 57,000 (40 | |||
byte) RSTs would take over 50 minutes to transmit, and, as noted | byte) RSTs would take over 50 minutes to transmit, and, as noted | |||
skipping to change at page 10, line 5 | skipping to change at page 10, line 5 | |||
Of these assumptions, the last two are more notable. The issue of | Of these assumptions, the last two are more notable. The issue of | |||
receive socket buffers was discussed in Sec. 2. Figure 1 summarized | receive socket buffers was discussed in Sec. 2. Figure 1 summarized | |||
the time to an successful attack based on large advertised receive | the time to an successful attack based on large advertised receive | |||
windows, but many current commercial routers have limits of 128KB for | windows, but many current commercial routers have limits of 128KB for | |||
large devices, 32KB for medium, and as little as 4KB for modest ones. | large devices, 32KB for medium, and as little as 4KB for modest ones. | |||
Figure 2 shows the time and bandwidths needed to accomplish an attack | Figure 2 shows the time and bandwidths needed to accomplish an attack | |||
BGP sessions in the time shown for 100ms latencies; for even short- | BGP sessions in the time shown for 100ms latencies; for even short- | |||
range network latencies (10ms), these sessions can be still be | range network latencies (10ms), these sessions can be still be | |||
attacked over short timescales (minutes to hours). | attacked over short timescales (minutes to hours). | |||
BW needed BW*delay RSTs needed Time needed | BW BW*delay RSTs needed Time needed | |||
------------------------------------------------------------ | ------------------------------------------------------------ | |||
10 Mbps 0.128 MB 33,555 1 second | 10 Mbps 0.128 MB 33,555 1 second | |||
3 Mbps 0.032 MB 134,218 40 seconds | 3 Mbps 0.032 MB 134,218 40 seconds | |||
300 Kbps 0.004 MB 1,073,742 1 hour | 300 Kbps 0.004 MB 1,073,742 1 hour | |||
Figure 2 Time needed to kill a connection with limited buffers | Figure 2 Time needed to kill a connection with limited buffers | |||
The issue of the attack bandwidth is considered reasonable as | The issue of the attack bandwidth is considered reasonable as | |||
follows: | follows: | |||
skipping to change at page 11, line 9 | skipping to change at page 11, line 9 | |||
authenticated before they affect connection management. TCP has a | authenticated before they affect connection management. TCP has a | |||
variety of current and proposed mechanisms to increase the | variety of current and proposed mechanisms to increase the | |||
authentication of segments, protecting against both off-path and on- | authentication of segments, protecting against both off-path and on- | |||
path third-party spoofing attacks. Other transport protocols, such | path third-party spoofing attacks. Other transport protocols, such | |||
as SCTP and DCCP, also have limited antispoofing mechanisms. | as SCTP and DCCP, also have limited antispoofing mechanisms. | |||
3.1.1. TCP MD5 Authentication | 3.1.1. TCP MD5 Authentication | |||
An extension to TCP supporting MD5 authentication was developed in | An extension to TCP supporting MD5 authentication was developed in | |||
1998 specifically to authenticate BGP connections (although it can be | 1998 specifically to authenticate BGP connections (although it can be | |||
used for any TCP connection) [19]. The extension relies on a pre- | used for any TCP connection) [20]. The extension relies on a pre- | |||
shared secret key to authenticate the entire TCP segment, including | shared secret key to authenticate the entire TCP segment, including | |||
the data, TCP header, and TCP pseudo-header (certain fields of the IP | the data, TCP header, and TCP pseudo-header (certain fields of the IP | |||
header). All segments are protected, including RSTs, to be accepted | header). All segments are protected, including RSTs, to be accepted | |||
only when their signature matches. This option, although widely | only when their signature matches. This option, although widely | |||
deployed in Internet routers, is considered undeployable for | deployed in Internet routers, is considered undeployable for | |||
widespread use because the need for pre-shared keys [3][27]. It | widespread use because the need for pre-shared keys [3][28]. It | |||
further is considered computationally expensive for either hosts or | further is considered computationally expensive for either hosts or | |||
routers due to the overhead of MD5 [39][40]. | routers due to the overhead of MD5 [41][42]. | |||
There are also concerns about the use of MD5 due to recent collision- | There are also concerns about the use of MD5 due to recent collision- | |||
based attacks [20]. Similar concerns exist for SHA-1, and the IETF | based attacks [21]. Similar concerns exist for SHA-1, and the IETF | |||
is currently evaluating how these attacks impact the recommendation | is currently evaluating how these attacks impact the recommendation | |||
for using these hashes, both in TCP/MD5 and in the IPsec suite. For | for using these hashes, both in TCP/MD5 and in the IPsec suite. For | |||
the purposes of this discussion, the particular algorithm used in | the purposes of this discussion, the particular algorithm used in | |||
either protocol suite is not the focus, and there is ongoing work to | either protocol suite is not the focus, and there is ongoing work to | |||
allow TCP/MD5 to evolve to a more general TCP security option [6]. | allow TCP/MD5 to evolve to a more general TCP security option [6]. | |||
3.1.2. TCP RST Window Attenuation | 3.1.2. TCP RST Window Attenuation | |||
A recent proposal extends TCP to further constrain received RST to | A recent proposal extends TCP to further constrain received RST to | |||
match the expected next sequence number [36]. This restores TCP's | match the expected next sequence number [38]. This restores TCP's | |||
resistance to spurious RSTs, effectively limiting the receive window | resistance to spurious RSTs, effectively limiting the receive window | |||
for RSTs to a single number. As a result, an attacker would need to | for RSTs to a single number. As a result, an attacker would need to | |||
send 2^32 different packets to brute-force guess the sequence number | send 2^32 different packets to brute-force guess the sequence number | |||
(worst case, average would be half that); this makes TCP's | (worst case, average would be half that); this makes TCP's | |||
vulnerability to attack independent of the size of the receive window | vulnerability to attack independent of the size of the receive window | |||
(RCV.WND). The extension further modifies the RST receiver to react | (RCV.WND). The extension further modifies the RST receiver to react | |||
to incorrectly-numbered RSTs, by sending a zero-length ACK. If the | to incorrectly-numbered RSTs, by sending a zero-length ACK. If the | |||
RST source is legitimate, upon receipt of an ACK the closed source | RST source is legitimate, upon receipt of an ACK the closed source | |||
would presumably emit a RST with the sequence number matching the | would presumably emit a RST with the sequence number matching the | |||
ACK, correctly resetting the intended recipient. This modification | ACK, correctly resetting the intended recipient. This modification | |||
skipping to change at page 12, line 11 | skipping to change at page 12, line 11 | |||
recommendation - although this can be omitted, allowing timeouts to | recommendation - although this can be omitted, allowing timeouts to | |||
suffice. The advantage to this proposal is that it can be deployed | suffice. The advantage to this proposal is that it can be deployed | |||
incrementally and has benefit to the endpoint on which it is | incrementally and has benefit to the endpoint on which it is | |||
deployed. The other advantage to this proposal is that the window | deployed. The other advantage to this proposal is that the window | |||
attenuation described here makes the vulnerability to spoofed RST | attenuation described here makes the vulnerability to spoofed RST | |||
packets independent of the size of the receive window. | packets independent of the size of the receive window. | |||
A variant of this proposal uses a different value to attenuate the | A variant of this proposal uses a different value to attenuate the | |||
window of viable RSTs. It requires RSTs to carry the initial | window of viable RSTs. It requires RSTs to carry the initial | |||
sequence number rather than the next expected sequence number, i.e., | sequence number rather than the next expected sequence number, i.e., | |||
the value negotiated on connection establishment [38][44]. This | the value negotiated on connection establishment [40][46]. This | |||
proposal has the advantage of using an explicitly negotiated value, | proposal has the advantage of using an explicitly negotiated value, | |||
but at the cost of changing the behavior of an unmodified endpoint to | but at the cost of changing the behavior of an unmodified endpoint to | |||
a currently valid RST. It would thus be more difficult, without | a currently valid RST. It would thus be more difficult, without | |||
additional mechanism, to deploy incrementally. | additional mechanism, to deploy incrementally. | |||
Another variant of this proposal involves increasing TCP's window | Another variant of this proposal involves increasing TCP's window | |||
space, rather than decreasing the valid range for RSTs, i.e., | space, rather than decreasing the valid range for RSTs, i.e., | |||
increasing the sequence space from 32 bits to 64 bits. This has the | increasing the sequence space from 32 bits to 64 bits. This has the | |||
equivalent effect - the ratio of the valid sequence numbers for any | equivalent effect - the ratio of the valid sequence numbers for any | |||
segment to the overall sequence number space is significantly | segment to the overall sequence number space is significantly | |||
skipping to change at page 12, line 40 | skipping to change at page 12, line 40 | |||
A converse variant of increasing TCP's window space is to decrease | A converse variant of increasing TCP's window space is to decrease | |||
the receive window (RCV.WND) explicitly, which would further reduce | the receive window (RCV.WND) explicitly, which would further reduce | |||
the effectiveness of spoofed RSTs with random sequence numbers. This | the effectiveness of spoofed RSTs with random sequence numbers. This | |||
alternative may reduce the throughput of the connection, if the | alternative may reduce the throughput of the connection, if the | |||
advertised receive window is smaller than the bandwidth-delay product | advertised receive window is smaller than the bandwidth-delay product | |||
of the connection. | of the connection. | |||
3.1.3. TCP Timestamp Authentication | 3.1.3. TCP Timestamp Authentication | |||
Another way to authenticate TCP segments is via its timestamp option, | Another way to authenticate TCP segments is via its timestamp option, | |||
using the value as a sort of authentication [31]. This requires that | using the value as a sort of authentication [32]. This requires that | |||
the receiver TCP discard segments whose timestamp is outside the | the receiver TCP discard segments whose timestamp is outside the | |||
accepted window, which is derived from the timestamps of other | accepted window, which is derived from the timestamps of other | |||
packets from the same connection. This technique uses an existing | packets from the same connection. This technique uses an existing | |||
TCP option, but also requires modified TCP control processing (with | TCP option, but also requires modified TCP control processing (with | |||
the same caveats) and may be difficult to deploy incrementally | the same caveats) and may be difficult to deploy incrementally | |||
without further modifications. Additionally, the timestamp value may | without further modifications. Additionally, the timestamp value may | |||
be easier to guess because it can be derived predictably, either | be easier to guess because it can be derived predictably, either | |||
assuming it represents actual time at the host, or by probing the | assuming it represents actual time at the host, or by probing the | |||
host using unrelated benign traffic. | host using unrelated benign traffic. | |||
skipping to change at page 13, line 28 | skipping to change at page 13, line 28 | |||
reasonably correlation to local time. These variants of cookies are | reasonably correlation to local time. These variants of cookies are | |||
similar in spirit to TCP SYN cookies, again patching a vulnerability | similar in spirit to TCP SYN cookies, again patching a vulnerability | |||
to off-path third-party spoofing attacks based on a (fairly weak, | to off-path third-party spoofing attacks based on a (fairly weak, | |||
excepting MD5) form of authentication. Another form of cookie is the | excepting MD5) form of authentication. Another form of cookie is the | |||
source port itself, which can be randomized but provides only 16 bits | source port itself, which can be randomized but provides only 16 bits | |||
of protection (65,000 combinations), which may be exhaustively | of protection (65,000 combinations), which may be exhaustively | |||
attacked. This can be combined with destination port randomization | attacked. This can be combined with destination port randomization | |||
as well, but that would require a separate coordination mechanism (so | as well, but that would require a separate coordination mechanism (so | |||
both parties know which ports to use), which is equivalent to (and as | both parties know which ports to use), which is equivalent to (and as | |||
infeasible for large-scale deployments as) exchanging a shared secret | infeasible for large-scale deployments as) exchanging a shared secret | |||
[35]. | [36]. | |||
3.1.5. Other TCP Considerations | 3.1.5. Other TCP Considerations | |||
The analysis of the potential for RST spoofing above assumes that the | The analysis of the potential for RST spoofing above assumes that the | |||
advertised receive window is opened to the maximum extent suggested | advertised receive window is opened to the maximum extent suggested | |||
by the bandwidth-delay product of the end-to-end path, and that the | by the bandwidth-delay product of the end-to-end path, and that the | |||
window is opened to an appreciable fraction of the overall sequence | window is opened to an appreciable fraction of the overall sequence | |||
number space. As noted earlier, for most common cases, connections | number space. As noted earlier, for most common cases, connections | |||
are too brief or over bandwidths too low for such a large window to | are too brief or over bandwidths too low for such a large window to | |||
be useful. Expanding TCP's sequence number space is a direct way to | be useful. Expanding TCP's sequence number space is a direct way to | |||
further avoid such vulnerability, even for long connections over | further avoid such vulnerability, even for long connections over | |||
emerging bandwidths. If either manual tuning or automatic tuning of | emerging bandwidths. If either manual tuning or automatic tuning of | |||
the advertised receive window (via receive buffer tuning) is not | the advertised receive window (via receive buffer tuning) is not | |||
provided, this is not an issue (although connection performance will | provided, this is not an issue (although connection performance will | |||
suffer) [34]. | suffer) [35]. | |||
It is may be sufficient for the endpoint to limit the advertised | It is may be sufficient for the endpoint to limit the advertised | |||
receive window by deliberately leaving it small. If the receive | receive window by deliberately leaving it small. If the receive | |||
socket buffer is limited, e.g., to the ubiquitous default of 64KB, | socket buffer is limited, e.g., to the ubiquitous default of 64KB, | |||
the advertised receive window will not be as vulnerable even for very | the advertised receive window will not be as vulnerable even for very | |||
long connections over very high bandwidths. The vulnerability will | long connections over very high bandwidths. The vulnerability will | |||
grow linearly with the increased network speed, but not as the | grow linearly with the increased network speed, but not as the | |||
square. The consequence is lower sustained throughput, where only | square. The consequence is lower sustained throughput, where only | |||
one window's worth of data per round trip time (RTT) is exchanged. | one window's worth of data per round trip time (RTT) is exchanged. | |||
This will keep the connection open longer; for long-lived connections | This will keep the connection open longer; for long-lived connections | |||
skipping to change at page 14, line 24 | skipping to change at page 14, line 24 | |||
exchanged quickly enough with bandwidth reduced due to the smaller | exchanged quickly enough with bandwidth reduced due to the smaller | |||
buffers, or perhaps that the advertised receive window is opened only | buffers, or perhaps that the advertised receive window is opened only | |||
during a large burst exchange (e.g., via some other signal between | during a large burst exchange (e.g., via some other signal between | |||
the two routers). | the two routers). | |||
3.1.6. Other Transport Protocol Solutions | 3.1.6. Other Transport Protocol Solutions | |||
Segment authentication has been addressed at the transport layer in | Segment authentication has been addressed at the transport layer in | |||
other protocols. Both SCTP and DCCP include cookies for connection | other protocols. Both SCTP and DCCP include cookies for connection | |||
establishment and use them to authenticate a variety of other control | establishment and use them to authenticate a variety of other control | |||
messages [26][37]. The inclusion of such mechanism at the transport | messages [27][39]. The inclusion of such mechanism at the transport | |||
protocol, although emerging as standard practice, complicates the | protocol, although emerging as standard practice, complicates the | |||
design and implementation of new protocols [29]. As new attacks are | design and implementation of new protocols [30]. As new attacks are | |||
discovered (SYN floods, RSTs, etc.), each protocol must be modified | discovered (SYN floods, RSTs, etc.), each protocol must be modified | |||
individually to compensate. A network solution may be more | individually to compensate. A network solution may be more | |||
appropriate and efficient. | appropriate and efficient. | |||
It should be noted that RST attacks which rely on brute-force are | It should be noted that RST attacks which rely on brute-force are | |||
relatively easy for intrusion detection software to detect at the TCP | relatively easy for intrusion detection software to detect at the TCP | |||
layer. Any connection that receives a large number of invalid - | layer. Any connection that receives a large number of invalid - | |||
outside-window - RSTs might have subsequent RSTs blocked, to defeat | outside-window - RSTs might have subsequent RSTs blocked, to defeat | |||
such attacks. This would have the side-effect of blocking legitimate | such attacks. This would have the side-effect of blocking legitimate | |||
RSTs to that connection, which might then interfere with cleaning up | RSTs to that connection, which might then interfere with cleaning up | |||
skipping to change at page 15, line 12 | skipping to change at page 15, line 12 | |||
of the packet source. IPsec requires cooperation between the | of the packet source. IPsec requires cooperation between the | |||
endpoints wanting to avoid attack on their connection, which | endpoints wanting to avoid attack on their connection, which | |||
currently involves pre-existing shared knowledge of either a shared | currently involves pre-existing shared knowledge of either a shared | |||
key or shared certificate authority. | key or shared certificate authority. | |||
3.2.1. Address filtering | 3.2.1. Address filtering | |||
Address filtering is often proposed as an alternative to protocol | Address filtering is often proposed as an alternative to protocol | |||
mechanisms to defeat IP source address spoofing [2][13]. Address | mechanisms to defeat IP source address spoofing [2][13]. Address | |||
filtering restricts traffic from downstream sources across transit | filtering restricts traffic from downstream sources across transit | |||
networks based on the IP source address. It can also restrict core- | networks based on the IP source address. A kind of filtering already | |||
to-edge paths to reject traffic that should have originated further | occurs at the endpoints of a connection, because attack messages must | |||
toward the edge. It cannot restrict traffic from edges lacking | match the socket pair to succeed; again, note that such attacks | |||
filtering through the core to a particular edge, i.e., from upstream | require knowing the entire socket pair, and are unlikely except in | |||
sources. As a result, each border router must perform the | particular cases. This section discusses filtering based on address | |||
appropriate filtering for overall protection to result; failure of | only, typically done at the borders of an AS. | |||
any border router to filter defeats the protection of all | ||||
participants inside the border, ultimately. Address filtering at the | It can also restrict core-to-edge paths to reject traffic that should | |||
border can protect those inside the border from some kinds of | have originated further toward the edge. It cannot restrict traffic | |||
spoofing, because only interior addresses should originate inside the | from edges lacking filtering through the core to a particular edge. | |||
border. It cannot, however, protect connections originating outside | As a result, each border router must perform the appropriate | |||
the border except to restrict where the traffic enters from, e.g., if | filtering for overall protection to result; failure of any border | |||
it expected from one AS and not another. | router to filter defeats the protection of all participants inside | |||
the border, and potentially those outside as well. Address filtering | ||||
at the border can protect those inside the border from some kinds of | ||||
spoofing, i.e., connections among those inside a border, because only | ||||
interior addresses should originate inside the border. It cannot, | ||||
however, protect connections including connections outside the border | ||||
except to restrict where the traffic enters from, e.g., if it | ||||
expected from one AS and not another. | ||||
As a result, address filtering is not a local solution that can be | As a result, address filtering is not a local solution that can be | |||
deployed to protect communicating pairs, but rather relies on a | deployed to protect communicating pairs, but rather relies on a | |||
distributed infrastructure of trusted gateways filtering forged | distributed infrastructure of trusted gateways filtering forged | |||
traffic where it enters the network. It is not feasible for local, | traffic where it enters the network. It is not feasible for local, | |||
incremental deployment, and relies too heavily on distributed | incremental deployment, and relies heavily on distributed | |||
cooperation. Although useful to reduce the load of spoofed traffic, | cooperation. Although useful to reduce the load of spoofed traffic, | |||
it is insufficient to protect particular connections from attack | it is insufficient to protect particular connections from attack | |||
[28]. | [29]. | |||
A more recent variant of address filtering checks the IP TTL field, | A more recent variant of address filtering checks the IP TTL field, | |||
relying on the TTL set by the other end of the connection [15]. This | relying on the TTL set by the other end of the connection [15]. This | |||
technique has been used to provide filtering for BGP. It assumes the | technique has been used to provide filtering for BGP. It assumes the | |||
connection source TTL is set to 255; packets at the receiver are | connection source TTL is set to 255; packets at the receiver are | |||
checked for TTL=255, and others are dropped. This restricts traffic | checked for TTL=255, and others are dropped. This restricts traffic | |||
to one hop upstream of the receiver (i.e., a BGP router), but those | to one hop upstream of the receiver (i.e., a BGP router), but those | |||
hops could include other user programs at those nodes (e.g., the BGP | hops could include other user programs at those nodes (e.g., the BGP | |||
router's peer) or any traffic those nodes accept via tunnels - | router's peer) or any traffic those nodes accept via tunnels - | |||
because tunnels need not decrement TTLs [30] (see Sec. 5.1 of [15]). | because tunnels need not decrement TTLs, notaby for "bump in the | |||
This method works only where all traffic from the other end of the | wire" (BITW) or BITW-equivalent scenarios [31] (see also Sec. 5.1 of | |||
tunnel is trusted, i.e., where it does not originate or transit | [15]). TTL filtering works only where all traffic from the other end | |||
spoofed traffic. The use of TTL rather than link or network security | of the tunnel is trusted, i.e., where it does not originate or | |||
also assumes an untampered point-to-point link, where no other | transit spoofed traffic. The use of TTL rather than link or network | |||
traffic can be spoofed onto a link. | security also assumes an untampered point-to-point link, where no | |||
other traffic can be spoofed onto a link. | ||||
This method of filtering works best where traffic originates one hop | This method of filtering works best where traffic originates one hop | |||
away, so that the address filtering is based on the trust of only | away, so that the address filtering is based on the trust of only | |||
directly-connected (tunneled or otherwise) nodes. Like conventional | directly-connected (tunneled or otherwise) nodes. Like conventional | |||
address filtering, this reduces spoofing traffic in general, but is | address filtering, this reduces spoofing traffic in general, but is | |||
not considered a reliable security mechanism because it relies on | not considered a reliable security mechanism because it relies on | |||
distributed filtering (e.g., the fact that upstream nodes do not | distributed filtering (e.g., the fact that upstream nodes do not | |||
terminate tunnels arbitrarily). | terminate tunnels arbitrarily). | |||
3.2.2. IPsec | 3.2.2. IPsec | |||
skipping to change at page 16, line 38 | skipping to change at page 16, line 44 | |||
many end-system operating systems. More importantly, it relies on | many end-system operating systems. More importantly, it relies on | |||
preshared keys, signed X.509 certificates, or a third-party (e.g., | preshared keys, signed X.509 certificates, or a third-party (e.g., | |||
Kerberos) public key infrastructure to establish and exchange keying | Kerberos) public key infrastructure to establish and exchange keying | |||
information (e.g., via IKE). These present challenges when using | information (e.g., via IKE). These present challenges when using | |||
IPsec to secure traffic to a well-known server, whose clients may not | IPsec to secure traffic to a well-known server, whose clients may not | |||
support IPsec or may not have registered with a previously-known | support IPsec or may not have registered with a previously-known | |||
certificate authority (CA). | certificate authority (CA). | |||
These keying challenges are being addressed in the IETF in ways that | These keying challenges are being addressed in the IETF in ways that | |||
will enable servers secure associations with other parties without | will enable servers secure associations with other parties without | |||
advance coordination [41][42]. This can be especially useful for | advance coordination [43][44]. This can be especially useful for | |||
publicly-available servers, or for protecting connections to servers | publicly-available servers, or for protecting connections to servers | |||
that - for whatever reason - have not, or will not deploy | that - for whatever reason - have not, or will not deploy | |||
conventional IPsec certificates (i.e., core Internet BGP routers). | conventional IPsec certificates (i.e., core Internet BGP routers). | |||
4. ICMP | 4. ICMP | |||
Just as spoofed TCP packets can terminate a connection, so too can | Just as spoofed TCP packets can terminate a connection, so too can | |||
spoofed ICMP packets. TCP headers can be included inside certain | spoofed ICMP packets. ICMP can be used to launch a variety of | |||
ICMP messages [7]. There have been recent suggestions to validate | attacks on TCP including connection resets, path-MTU attacks, and can | |||
the sequence number of TCP headers when they occur inside ICMP | also be used to attack the host with non-TCP 'ping of death' and | |||
messages [17]. This sequence checking is similar to checks that | 'smurf attacks', etc. [37]. ICMP thus represents a substantial | |||
would occur for conventional data packets in TCP, but is being | threat to TCP, but this is not the focus of this document, although a | |||
proposed in the spirit of the RST window attenuation described in | number of protections are discussed below because some are comparable | |||
Section 3.1.2. | to TCP anti-spoofing techniques. Note also that ICMP attacks on TCP | |||
assume that the socket pair is known by the attacker, which is | ||||
unlikely except for a subset of services between pairs of widely- | ||||
known endpoints. | ||||
TCP headers can be included inside certain ICMP messages [7]. There | ||||
have been recent suggestions to validate the sequence number of TCP | ||||
headers when they occur inside ICMP messages [17]. This sequence | ||||
checking is similar to checks that would occur for conventional data | ||||
packets in TCP, but is being proposed in the spirit of the RST window | ||||
attenuation described in Section 3.1.2. | ||||
Some such checks may be reasonable, especially where they parallel | Some such checks may be reasonable, especially where they parallel | |||
the validations already performed by TCP processing, notably where | the validations already performed by TCP processing, notably where | |||
they emulate the semantics of such processing. For example, the TCP | they emulate the semantics of such processing. For example, the TCP | |||
checksum should be validated (if the entire TCP segment is contained | checksum should be validated (if the entire TCP segment is contained | |||
in the ICMP message) before any fields of the TCP header are | in the ICMP message) before any fields of the TCP header are | |||
examined, to avoid reacting to corrupted packets. Similarly, if the | examined, to avoid reacting to corrupted packets. Similarly, if the | |||
TCP MD5 option is present, its signature should probably be validated | TCP MD5 option is present, its signature should probably be validated | |||
before considering the contents of the message. | before considering the contents of the message. Such validation can | |||
ensure that the packet was not corrupted prior to the ICMP generation | ||||
Such validation can ensure that the packet was not corrupted prior to | (checksum), that the packet was one sent by the source (IPsec or | |||
the ICMP generation (checksum), that the packet was one sent by the | TCP/MD5 authenticated), or that the packet was not in the network for | |||
source (IPsec or TCP/MD5 authenticated), or that the packet was not | an excess of 2*MSL (valid sequence number). | |||
in the network for an excess of 2*MSL (valid sequence number). | ||||
ICMP presents a particular challenge because some messages can reset | ICMP presents a particular challenge because some messages can reset | |||
a connection more easily - with less validation - than even some | a connection more easily - with less validation - than even some | |||
spoofed TCP segments. However, fixing such messages to be 'in | spoofed TCP segments. One other proposed alternative is to change | |||
window' is insufficient protection, as this document shows for | TCP's reaction to ICMPs after a connection is established; that may | |||
spoofed data. ICMP packets can be authenticated when originating at | leave TCP susceptible during connection establishment and modifies | |||
known, trusted endpoints, such as endpoints of connections or routers | TCP's reaction to certain valid network events [18]. This considers | |||
in known domains with pre-existing IPsec associations. Unfortunately, | the context-sensitivity of ICMP messages, as does IPsec in some | |||
they also can originate at other places in the network. As a result, | tunneled configurations, but the recommendations are ambiguous | |||
many networks filter all ICMP packets because validation may not be | regarding such filtering [26]. | |||
Ultimately, requiring TCP ICMP messages to be 'in window' may be | ||||
insufficient protection, as this document shows for spoofed data. | ||||
ICMP packets can be authenticated when originating at known, trusted | ||||
endpoints, such as endpoints of connections or routers in known | ||||
domains with pre-existing IPsec associations. Unfortunately, they | ||||
also can originate at other places in the network. In addition, some | ||||
networks filter all ICMP packets because validation may not be | ||||
possible, especially because they can be injected from anywhere in a | possible, especially because they can be injected from anywhere in a | |||
network, and so cannot be selectively address filtered. As a result, | network, and so cannot be easily and locally address filtered [26]. | |||
they are not addressed separately in the issues or security | As a result, they are not addressed separately in the issues or | |||
considerations of this document further. | security considerations of this document further. | |||
5. Issues | 5. Issues | |||
There are a number of existing and proposed solutions addressing the | There are a number of existing and proposed solutions addressing the | |||
vulnerability of transport protocols in general (and TCP in specific) | vulnerability of transport protocols in general (and TCP in specific) | |||
to off-path third-party spoofing attacks. As shown, these operate at | to off-path third-party spoofing attacks. As shown, these operate at | |||
the transport or network layer. Transport solutions require separate | the transport or network layer. Transport solutions require separate | |||
modification of each transport protocol, addressing network identity | modification of each transport protocol, addressing network identity | |||
spoofing separately in the context of each transport association. | spoofing separately in the context of each transport association. | |||
Network solutions require distributed coordination (filtering) or can | Network solutions require distributed coordination (filtering) or can | |||
skipping to change at page 18, line 26 | skipping to change at page 18, line 47 | |||
As noted earlier, transport layer solutions require separate | As noted earlier, transport layer solutions require separate | |||
modification of all transport protocols to include authentication. | modification of all transport protocols to include authentication. | |||
Not all transport protocols support negotiated endpoint state (e.g., | Not all transport protocols support negotiated endpoint state (e.g., | |||
UDP), and legacy protocols have been notoriously difficult to safely | UDP), and legacy protocols have been notoriously difficult to safely | |||
augment. Not all authentication solutions are created equal either, | augment. Not all authentication solutions are created equal either, | |||
and relying on a variety of transport solutions exposes end-systems | and relying on a variety of transport solutions exposes end-systems | |||
to increased potential for incorrectly specified or implemented | to increased potential for incorrectly specified or implemented | |||
solutions. Transport authentication has often been developed piece- | solutions. Transport authentication has often been developed piece- | |||
wise, in response to specific attacks, e.g., SYN cookies and RST | wise, in response to specific attacks, e.g., SYN cookies and RST | |||
window attenuation [4][36]. | window attenuation [4][38]. | |||
Transport layer solutions are not only per-protocol, but often per- | Transport layer solutions are not only per-protocol, but often per- | |||
connection. This has both advantages and drawbacks. One advantage | connection. This has both advantages and drawbacks. One advantage | |||
to transport layer solutions is that they can protect the transport | to transport layer solutions is that they can protect the transport | |||
protocol when lower layers have failed, e.g., due to bugs in | protocol when lower layers have failed, e.g., due to bugs in | |||
implementation. TCP already includes a variety of packet validation | implementation. TCP already includes a variety of packet validation | |||
mechanisms to protect in these cases, e.g., checking that RSTs are | mechanisms to protect in these cases, e.g., checking that RSTs are | |||
in-window. More strict checks can increase the protections provided, | in-window. More strict checks can increase the protections provided, | |||
e.g., to protect against misaddressed RSTs that end up in-window (via | e.g., to protect against misaddressed RSTs that end up in-window (via | |||
TCPsecure) or to protect against connection interruption due to RSTs, | TCPsecure) or to protect against connection interruption due to RSTs, | |||
SYNs, or data injection from misaddressed packets (TCP/MD5) [36]. | SYNs, or data injection from misaddressed packets (TCP/MD5) [38]. | |||
Another advantage is that transport layer protections can be more | Another advantage is that transport layer protections can be more | |||
specifically limited to a particular connection. Because each | specifically limited to a particular connection. Because each | |||
connection negotiates its state separately, that state can be more | connection negotiates its state separately, that state can be more | |||
specifically tied to that connection. This is both an advantage and | specifically tied to that connection. This is both an advantage and | |||
a drawback. It can make it easier to tie security to an individual | a drawback. It can make it easier to tie security to an individual | |||
connection, although in practice a shared secret or certificate will | connection, although in practice a shared secret or certificate will | |||
generally be shared across multiple connections. | generally be shared across multiple connections. | |||
As a drawback, each transport connection needs to negotiate and | As a drawback, each transport connection needs to negotiate and | |||
skipping to change at page 19, line 29 | skipping to change at page 20, line 6 | |||
packets it emits. Such a network level solution protects all | packets it emits. Such a network level solution protects all | |||
transport protocols as a result, including both legacy and emerging | transport protocols as a result, including both legacy and emerging | |||
protocols, and reduces the complexity of these protocols as well. A | protocols, and reduces the complexity of these protocols as well. A | |||
shared solution also reduces protocol overhead, and decouples the | shared solution also reduces protocol overhead, and decouples the | |||
management (and refreshing) of authentication state from that of | management (and refreshing) of authentication state from that of | |||
individual transport connections. Finally, a network layer solution | individual transport connections. Finally, a network layer solution | |||
protects not only the transport layer but the network layer as well, | protects not only the transport layer but the network layer as well, | |||
e.g., from IGMP, and some kinds of ICMP (Sec. 4), spoofing attacks. | e.g., from IGMP, and some kinds of ICMP (Sec. 4), spoofing attacks. | |||
The IETF Proposed Standard protocol for network layer authentication | The IETF Proposed Standard protocol for network layer authentication | |||
is IPsec [25]. IPsec specifies the overall architecture, including | is IPsec [26]. IPsec specifies the overall architecture, including | |||
header authentication (AH) [23] and encapsulation (ESP) modes [24]. | header authentication (AH) [24] and encapsulation (ESP) modes [25]. | |||
AH authenticates both the IP header and IP data, whereas ESP | AH authenticates both the IP header and IP data, whereas ESP | |||
authenticates only the IP data (e.g., transport header and payload). | authenticates only the IP data (e.g., transport header and payload). | |||
AH is deprecated since ESP is more efficient and the Security | AH is deprecated since ESP is more efficient and the Security | |||
Parameters Index (SPI) includes sufficient information to verify the | Parameters Index (SPI) includes sufficient information to verify the | |||
IP header anyway. These two modes describe the security applied to | IP header anyway. These two modes describe the security applied to | |||
individual packets within the IPsec system; key exchange and | individual packets within the IPsec system; key exchange and | |||
management is performed either out-of-band (via pre-shared keys) or | management is performed either out-of-band (via pre-shared keys) or | |||
by an automated key exchange protocol IKE [18][22]. | by an automated key exchange protocol IKE [19][23]. | |||
IPsec already provides authentication of an IP header and its data | IPsec already provides authentication of an IP header and its data | |||
contents sufficient to defeat both on-path and off-path third-party | contents sufficient to defeat both on-path and off-path third-party | |||
spoofing attacks. IKE can configure authentication between two | spoofing attacks. IKE can configure authentication between two | |||
endpoints on a per-endpoint, per-protocol, or per-connection basis, | endpoints on a per-endpoint, per-protocol, or per-connection basis, | |||
as desired. IKE also can perform automatic periodic re-keying, | as desired. IKE also can perform automatic periodic re-keying, | |||
further defeating crypto-analysis based on snooping (clandestine data | further defeating crypto-analysis based on snooping (clandestine data | |||
collection). The use of IPsec is already commonly strongly | collection). The use of IPsec is already commonly strongly | |||
recommended for protected infrastructure. | recommended for protected infrastructure. | |||
Existing IPsec is not appropriate for many deployments. It is | Existing IPsec is not appropriate for many deployments. It is | |||
computationally intensive both in key management and individual | computationally intensive both in key management and individual | |||
packet authentication [39]. This computational overhead can be | packet authentication [41]. This computational overhead can be | |||
prohibitive, and so often requires additional hardware, especially in | prohibitive, and so often requires additional hardware, especially in | |||
commercial routers. As importantly, IKE is not anonymous; keys can | commercial routers. As importantly, IKE is not anonymous; keys can | |||
be exchanged between parties only if they trust each others' X.509 | be exchanged between parties only if they trust each others' X.509 | |||
certificates, trust some other third-party to help with key | certificates, trust some other third-party to help with key | |||
generation (e.g., Kerberos), or pre-share a key. These certificates | generation (e.g., Kerberos), or pre-share a key. These certificates | |||
provide identification (the other party knows who you are) only where | provide identification (the other party knows who you are) only where | |||
the certificates themselves are signed by certificate authorities | the certificates themselves are signed by certificate authorities | |||
(CAs) that both parties already trust. To a large extent, the CAs | (CAs) that both parties already trust. To a large extent, the CAs | |||
themselves are the pre-shared keys which help IKE establish security | themselves are the pre-shared keys which help IKE establish security | |||
association keys, which are then used in the authentication | association keys, which are then used in the authentication | |||
algorithms. | algorithms. | |||
Alternative mechanisms are under development to address this | Alternative mechanisms are under development to address this | |||
limitation, to allow publicly-accessible servers to secure | limitation, to allow publicly-accessible servers to secure | |||
connections to clients not known in advance, or to allow unilateral | connections to clients not known in advance, or to allow unilateral | |||
relaxation of identity validation so that the remaining protections | relaxation of identity validation so that the remaining protections | |||
of IPsec to be available [41][42]. In particular, these mechanisms | of IPsec to be available [43][44]. In particular, these mechanisms | |||
can prevent a client (but without knowing who that client is) from | can prevent a client (but without knowing who that client is) from | |||
being affected by spoofing from other clients, even when the | being affected by spoofing from other clients, even when the | |||
attackers are on the same communications path. | attackers are on the same communications path. | |||
IPsec, although widely available both in commercial routers and | IPsec, although widely available both in commercial routers and | |||
commodity end-systems, is not often used except between parties that | commodity end-systems, is not often used except between parties that | |||
already have a preexisting relationship (employee/employer, between | already have a preexisting relationship (employee/employer, between | |||
two ISPs, etc.). Servers to anonymous clients (e.g., customer/ | two ISPs, etc.). Servers to anonymous clients (e.g., customer/ | |||
business) or more open services (e.g., BGP, where routers may have | business) or more open services (e.g., BGP, where routers may have | |||
large numbers of peers) are unmanageable, due to the breadth and flux | large numbers of peers) are unmanageable, due to the breadth and flux | |||
skipping to change at page 22, line 11 | skipping to change at page 22, line 36 | |||
spoofing attacks. For spoofing, the primary issue is whether packets | spoofing attacks. For spoofing, the primary issue is whether packets | |||
are coming from the same party the server can reach. Only the IP | are coming from the same party the server can reach. Only the IP | |||
header is fundamentally in question, so securing the entire packet | header is fundamentally in question, so securing the entire packet | |||
(1) is computational overkill. It is sufficient to authenticate the | (1) is computational overkill. It is sufficient to authenticate the | |||
other party as "a party you have exchanged packets with", rather than | other party as "a party you have exchanged packets with", rather than | |||
establishing their trusted identity ("Bill" vs. "Bob") as in (2). | establishing their trusted identity ("Bill" vs. "Bob") as in (2). | |||
Finally, many cookie systems use clear-text (unencrypted), fixed | Finally, many cookie systems use clear-text (unencrypted), fixed | |||
cookie values, providing reasonable (1 in 2^{cookie-size}) protection | cookie values, providing reasonable (1 in 2^{cookie-size}) protection | |||
against off-path third-party spoof attacks, but not addressing on- | against off-path third-party spoof attacks, but not addressing on- | |||
path attacks at all. Such potential solutions are discussed in the | path attacks at all. Such potential solutions are discussed in the | |||
BTNS documents [5][41][42]. Note also that NULL Encryption in IPsec | BTNS documents [5][43][44]. Note also that NULL Encryption in IPsec | |||
applies a variant of this cookie, where the SPI is the cookie, and no | applies a variant of this cookie, where the SPI is the cookie, and no | |||
further encryption is applied [16]. | further encryption is applied [16]. | |||
6. Security Considerations | 6. Security Considerations | |||
This entire document focuses on increasing the security of transport | This entire document focuses on increasing the security of transport | |||
protocols and their resistance to spoofing attacks. Security is | protocols and their resistance to spoofing attacks. Security is | |||
addressed throughout. | addressed throughout. | |||
This document describes a number of techniques for defeating spoofing | This document describes a number of techniques for defeating spoofing | |||
skipping to change at page 23, line 12 | skipping to change at page 23, line 35 | |||
This document describes the details of the recent BGP spoofing | This document describes the details of the recent BGP spoofing | |||
attacks involving spurious RSTs which could be used to shutdown TCP | attacks involving spurious RSTs which could be used to shutdown TCP | |||
connections. It summarizes and discusses a variety of current and | connections. It summarizes and discusses a variety of current and | |||
proposed solutions at various protocol layers. | proposed solutions at various protocol layers. | |||
9. Acknowledgments | 9. Acknowledgments | |||
This document was inspired by discussions in the TCPM WG | This document was inspired by discussions in the TCPM WG | |||
<http://www.ietf.org/html.charters/tcpm-charter.html> about the | <http://www.ietf.org/html.charters/tcpm-charter.html> about the | |||
recent spoofed RST attacks on BGP routers, including R. Stewart's | recent spoofed RST attacks on BGP routers, including R. Stewart's | |||
draft (which is now edited by M. Dalal) [36][38]. The analysis of | draft (which is now edited by M. Dalal) [38][40]. The analysis of | |||
the attack issues, alternate solutions, and the anonymous security | the attack issues, alternate solutions, and the anonymous security | |||
proposed solutions were the result of discussions on that list as | proposed solutions were the result of discussions on that list as | |||
well as with USC/ISI's T. Faber, A. Falk, G. Finn, and Y. Wang. R. | well as with USC/ISI's T. Faber, A. Falk, G. Finn, and Y. Wang. R. | |||
Atkinson suggested the UDP variant of TCP/MD5, P. Goyette suggested | Atkinson suggested the UDP variant of TCP/MD5, P. Goyette suggested | |||
using the ISN to seed TCP/MD5, and L. Wood suggested using the ISN to | using the ISN to seed TCP/MD5, and L. Wood suggested using the ISN to | |||
validate RSTs. Other improvements are due to the input of various | validate RSTs. Other improvements are due to the input of various | |||
members of the IETF's TCPM WG, notably detailed feedback from P. | members of the IETF's TCPM WG, notably detailed feedback from F. Gont | |||
Savola. | and P. Savola. | |||
10. References | 10. References | |||
10.1. Normative References | 10.1. Normative References | |||
None. | None. | |||
10.2. Informative References | 10.2. Informative References | |||
[1] Allman, M., V. Paxson, W. Stephens, "TCP Congestion Control," | [1] Allman, M., V. Paxson, W. Stephens, "TCP Congestion Control," | |||
RFC 2581, Apr. 1999. | RFC 2581, Apr. 1999. | |||
[2] Baker, F. and P. Savola, "Ingress Filtering for Multihomed | [2] Baker, F. and P. Savola, "Ingress Filtering for Multihomed | |||
Networks," RFC 3704 / BCP 84, Mar. 2004. | Networks," RFC 3704 / BCP 84, Mar. 2004. | |||
[3] Bellovin, S. and A. Zinin, "Standards Maturity Variance | [3] Bellovin, S. and A. Zinin, "Standards Maturity Variance | |||
Regarding the TCP MD5 Signature Option (RFC 2385) and the BGP-4 | Regarding the TCP MD5 Signature Option (RFC 2385) and the BGP-4 | |||
Specification," (work in progress), | Specification," RFC 4278 (Informational), Jan. 2006. | |||
draft-iesg-tcpmd5app-01.txt, Sept. 2004. | ||||
[4] Bernstein, D., "SYN cookies - http://cr.yp.to/syncookies.html", | [4] Bernstein, D., "SYN cookies - http://cr.yp.to/syncookies.html", | |||
1997. | 1997. | |||
[5] Better Than Nothing Security [BTNS] WG web pages, | [5] Better Than Nothing Security [BTNS] WG web pages, | |||
http://www.postel.org/anonsec | http://www.postel.org/anonsec | |||
[6] Bonica, R., et al., "Authentication for TCP-based Routing and | [6] Bonica, R., et al., "Authentication for TCP-based Routing and | |||
Management Protocols," draft-bonica-tcp-auth-04, (work in | Management Protocols," draft-bonica-tcp-auth-05, (work in | |||
progress), Feb. 2006. | progress), Jul. 2006. | |||
[7] Braden, R., "Requirements for Internet Hosts -- Communication | [7] Braden, R., "Requirements for Internet Hosts -- Communication | |||
Layers," RFC 1122, Oct. 1989. | Layers," RFC 1122, Oct. 1989. | |||
[8] Braden, R., "TIME-WAIT Assassination Hazards in TCP", RFC 1337, | [8] Braden, R., "TIME-WAIT Assassination Hazards in TCP", RFC 1337, | |||
May 1992. | May 1992. | |||
[9] CERT alert: "Technical Cyber Security Alert TA04-111A: | [9] CERT alert: "Technical Cyber Security Alert TA04-111A: | |||
Vulnerabilities in TCP -- | Vulnerabilities in TCP -- | |||
http://www.us-cert.gov/cas/techalerts/TA04-111A.html", April 20 | http://www.us-cert.gov/cas/techalerts/TA04-111A.html", April 20 | |||
2004. | 2004. | |||
[10] Convery, S. and M. Franz, "BGP Vulnerability Testing: | [10] Convery, S. and M. Franz, "BGP Vulnerability Testing: | |||
Separating Fact from FUD", 2003, | Separating Fact from FUD", 2003, | |||
http://www.nanog.org/mtg-0306/pdf/franz.pdf | http://www.nanog.org/mtg-0306/pdf/franz.pdf | |||
[11] Eddy, W., "TCP SYN Flooding Attacks and Common Mitigations," | [11] Eddy, W., "TCP SYN Flooding Attacks and Common Mitigations," | |||
draft-eddy-syn-flood-02.txt (work in progress), April 2006. | draft-ietf-tcpm-syn-flood-00.txt (work in progress), Jul. 2006. | |||
[12] Faber, T., J. Touch, and W. Yue, "The TIME-WAIT state in TCP | [12] Faber, T., J. Touch, and W. Yue, "The TIME-WAIT state in TCP | |||
and Its Effect on Busy Servers", Proc. Infocom 1999 pp. 1573- | and Its Effect on Busy Servers", Proc. Infocom 1999 pp. 1573- | |||
1583, Mar. 1999. | 1583, Mar. 1999. | |||
[13] Ferguson, P. and D. Senie, "Network Ingress Ingress Filtering: | [13] Ferguson, P. and D. Senie, "Network Ingress Ingress Filtering: | |||
Defeating Denial of Service Attacks which employ IP Address | Defeating Denial of Service Attacks which employ IP Address | |||
Spoofing," RFC 2827 / BCP 38, May 2000. | Spoofing," RFC 2827 / BCP 38, May 2000. | |||
[14] Floyd, S., "Inappropriate TCP Resets Considered Harmful", BCP | [14] Floyd, S., "Inappropriate TCP Resets Considered Harmful", BCP | |||
60, RFC 3360, Aug. 2002. | 60, RFC 3360, Aug. 2002. | |||
[15] Gill, V., J. Heasley, and D. Meyer, "The Generalized TTL | [15] Gill, V., J. Heasley, and D. Meyer, "The Generalized TTL | |||
Security Mechanism (GTSM)," RFC 3682 (Experimental), Feb. 2004. | Security Mechanism (GTSM)," RFC 3682 (Experimental), Feb. 2004. | |||
[16] Glenn, R. and S. Kent, "The NULL Encryption Algorithm and Its | [16] Glenn, R. and S. Kent, "The NULL Encryption Algorithm and Its | |||
Use With IPsec", RFC 2410 (Standards Track), Nov. 1998. | Use With IPsec", RFC 2410 (Standards Track), Nov. 1998. | |||
[17] Gont, F., "ICMP attacks against TCP," draft-gont-tcpm-icmp- | [17] Gont, F., "ICMP attacks against TCP," draft-gont-tcpm-icmp- | |||
attacks-05.txt, (work in progress), Oct. 2005. | attacks-05.txt, (expired work in progress), Oct. 2005. | |||
[18] Harkins, D. and D. Carrel, "The Internet Key Exchange (IKE)", | [18] Gont, F., "TCP's Reaction to Soft Errors," draft-ietf-tcpm-tcp- | |||
soft-errors-02.txt, (work in progress), Oct. 2006. | ||||
[19] Harkins, D. and D. Carrel, "The Internet Key Exchange (IKE)", | ||||
RFC 2409 (Standards Track), Nov. 1998. | RFC 2409 (Standards Track), Nov. 1998. | |||
[19] Heffernan, A., "Protection of BGP Sessions via the TCP MD5 | [20] Heffernan, A., "Protection of BGP Sessions via the TCP MD5 | |||
Signature Option", RFC 2385 (Standards Track), Aug. 1998. | Signature Option", RFC 2385 (Standards Track), Aug. 1998. | |||
[20] Housley, R., Post to IETF Discussion mailing list regarding his | [21] Housley, R., Post to IETF Discussion mailing list regarding his | |||
IETF 64 Security Area presentation, | IETF 64 Security Area presentation, | |||
ID=7.0.0.10.2.20051124135914.00f50558@vigilsec.com, Nov. 24, | ID=7.0.0.10.2.20051124135914.00f50558@vigilsec.com, Nov. 24, | |||
2005, http://www1.ietf.org/mail- | 2005, http://www1.ietf.org/mail- | |||
archive/ietf/Current/maillist.html | archive/ietf/Current/maillist.html | |||
[21] Jacobson, V., B. Braden, and D. Borman, "TCP Extensions for | [22] Jacobson, V., B. Braden, and D. Borman, "TCP Extensions for | |||
High Performance", RFC 1323, May 1992. | High Performance", RFC 1323, May 1992. | |||
[22] Kaufman, C., "Internet Key Exchange (IKEv2) Protocol", RFC 4306 | [23] Kaufman, C., "Internet Key Exchange (IKEv2) Protocol", RFC 4306 | |||
(Standards Track), Dec. 2005. | (Standards Track), Dec. 2005. | |||
[23] Kent, S., "IP Authentication Header", RFC 4302 (Standards | [24] Kent, S., "IP Authentication Header", RFC 4302 (Standards | |||
Track), Dec. 2005. | Track), Dec. 2005. | |||
[24] Kent, S, "IP Encapsulating Security Payload (ESP)", RFC 4303 | [25] Kent, S, "IP Encapsulating Security Payload (ESP)", RFC 4303 | |||
(Standards Track), Dec. 2005. | (Standards Track), Dec. 2005. | |||
[25] Kent, S. and K. Seo, "Security Architecture for the Internet | [26] Kent, S. and K. Seo, "Security Architecture for the Internet | |||
Protocol", RFC 4301, Dec. 2005. | Protocol", RFC 4301, Dec. 2005. | |||
[26] Kohler, E., M. Handley, and S. Floyd, "Datagram Congestion | [27] Kohler, E., M. Handley, and S. Floyd, "Datagram Congestion | |||
Control Protocol (DCCP)", draft-ietf-dccp-spec-13 (work in | Control Protocol (DCCP)", RFC 4340 (Proposed Standard), Dec. | |||
progress), Dec. 2005. | 2005. | |||
[27] Leech, M., "Key Management Considerations for the TCP MD5 | [28] Leech, M., "Key Management Considerations for the TCP MD5 | |||
Signature Option," RFC 3562 (Informational), July 2003. | Signature Option," RFC 3562 (Informational), July 2003. | |||
[28] Moore, D., G. Voelker, and S. Savage, "Inferring Internet | [29] Moore, D., G. Voelker, and S. Savage, "Inferring Internet | |||
Denial-of-Service Activity," Proc. Usenix Security Symposium, | Denial-of-Service Activity," Proc. Usenix Security Symposium, | |||
Aug. 2001. | Aug. 2001. | |||
[29] O'Malley, S. and L. Peterson, "TCP Extensions Considered | [30] O'Malley, S. and L. Peterson, "TCP Extensions Considered | |||
Harmful", RFC 1263, October 1991. | Harmful", RFC 1263, October 1991. | |||
[30] Perkins, C., "IP Encapsulation within IP," RFC 2003 (Standards | [31] Perkins, C., "IP Encapsulation within IP," RFC 2003 (Standards | |||
Track), Oct. 1996. | Track), Oct. 1996. | |||
[31] Poon, K., "Use of TCP timestamp option to defend against blind | [32] Poon, K., "Use of TCP timestamp option to defend against blind | |||
spoofing attack," draft-poon-tcp-tstamp-mod-01 (expired work in | spoofing attack," draft-poon-tcp-tstamp-mod-01 (expired work in | |||
progress), Oct. 2004. | progress), Oct. 2004. | |||
[32] Postel, J., "Transmission Control Protocol," RFC 793 / STD 7, | [33] Postel, J., "Transmission Control Protocol," RFC 793 / STD 7, | |||
Sep. 1981. | Sep. 1981. | |||
[33] Rekhter, Y. and T. Li, (eds.), "A Border Gateway Protocol 4 | [34] Rekhter, Y. and T. Li, (eds.), "A Border Gateway Protocol 4 | |||
(BGP-4)," RFC 1771 (Standards Track), Mar. 1995. | (BGP-4)," RFC 1771 (Standards Track), Mar. 1995. | |||
[34] Semke, J., J. Mahdavi, M. Mathis, "Automatic TCP Buffer | [35] Semke, J., J. Mahdavi, M. Mathis, "Automatic TCP Buffer | |||
Tuning", ACM SIGCOMM '98/ Computer Communication Review, volume | Tuning", ACM SIGCOMM '98/ Computer Communication Review, volume | |||
28, number 4, Oct. 1998. | 28, number 4, Oct. 1998. | |||
[35] Shepard, T., "Reassign Port Number option for TCP," draft- | [36] Shepard, T., "Reassign Port Number option for TCP," draft- | |||
sheard-tcp-reassign-port-number-00.txt (work in progress), Jul. | sheard-tcp-reassign-port-number-00.txt (expired work in | |||
2004. | progress), Jul. 2004. | |||
[36] Stewart, R. and M. Dalal, "Improving TCP's Robustness to Blind | [37] Shirey, R., "Internet Security Glossary, Version 2," draft- | |||
In-Window Attacks", draft-ietf-tcpm-tcpsecure-04 (work in | shirey-secgloss-v2-07.txt (work in progress), Sep. 2006. | |||
progress), Feb. 2005. | ||||
[37] Stewart, R., Q. Xie, K. Morneault, C. Sharp, H. Schwarzbauer, | [38] Stewart, R. and M. Dalal, "Improving TCP's Robustness to Blind | |||
In-Window Attacks", draft-ietf-tcpm-tcpsecure-05 (work in | ||||
progress), Jun. 2006. | ||||
[39] Stewart, R., Q. Xie, K. Morneault, C. Sharp, H. Schwarzbauer, | ||||
T. Taylor, I. Rytina, M. Kalla, L. Zhang, and V. Paxson, | T. Taylor, I. Rytina, M. Kalla, L. Zhang, and V. Paxson, | |||
"Stream Control Transmission Protocol," RFC 2960 (Standards | "Stream Control Transmission Protocol," RFC 2960 (Standards | |||
Track), Oct. 2000. | Track), Oct. 2000. | |||
[38] TCPM: IETF TCPM Working Group and mailing list, | [40] TCPM: IETF TCPM Working Group and mailing list, | |||
http://www.ietf.org/html.charters/tcpm-charter.html. | http://www.ietf.org/html.charters/tcpm-charter.html. | |||
[39] Touch, J., "Report on MD5 Performance," RFC 1810 | [41] Touch, J., "Report on MD5 Performance," RFC 1810 | |||
(Informational), Jun. 1995. | (Informational), Jun. 1995. | |||
[40] Touch, J., "Performance Analysis of MD5," Proc. Sigcomm 1995 | [42] Touch, J., "Performance Analysis of MD5," Proc. Sigcomm 1995 | |||
pp. 77-86, Mar. 1999. | pp. 77-86, Mar. 1999. | |||
[41] Touch, J., "ANONsec: Anonymous Security to Defend Against | [43] Touch, J., "ANONsec: Anonymous Security to Defend Against | |||
Spoofing Attacks," draft-touch-anonsec-00 (expired work in | Spoofing Attacks," draft-touch-anonsec-00 (expired work in | |||
progress), May 2004. | progress), May 2004. | |||
[42] Touch, J., D. Black, and Y. Wang, "Problem and Applicability | [44] Touch, J., D. Black, and Y. Wang, "Problem and Applicability | |||
Statement for Better Than Nothing Security (BTNS)," | Statement for Better Than Nothing Security (BTNS)," | |||
draft-ietf-btns-prob-and-applic-02 (work in progress), Feb. | draft-ietf-btns-prob-and-applic-04 (work in progress), Sep. | |||
2006. | 2006. | |||
[43] Watson, P., "Slipping in the Window: TCP Reset attacks," | [45] Watson, P., "Slipping in the Window: TCP Reset attacks," | |||
Presentation at 2004 CanSecWest. | Presentation at 2004 CanSecWest. | |||
http://www.cansecwest.com/archives.html | http://www.cansecwest.com/archives.html | |||
[44] Wood, L., Post to TCPM mailing list regarding use of ISN in | [46] Wood, L., Post to TCPM mailing list regarding use of ISN in | |||
RSTs, ID=Pine.GSO.4.50.0404232249570.5889- | RSTs, ID=Pine.GSO.4.50.0404232249570.5889- | |||
100000@argos.ee.surrey.ac.uk, Apr. 23, 2004. | 100000@argos.ee.surrey.ac.uk, Apr. 23, 2004. | |||
http://www1.ietf.org/mail- | http://www1.ietf.org/mail- | |||
archive/web/tcpm/current/msg00213.html | archive/web/tcpm/current/msg00213.html | |||
Author's Addresses | Author's Addresses | |||
Joe Touch | Joe Touch | |||
USC/ISI | USC/ISI | |||
4676 Admiralty Way | 4676 Admiralty Way | |||
End of changes. 90 change blocks. | ||||
142 lines changed or deleted | 172 lines changed or added | |||
This html diff was produced by rfcdiff 1.33. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |