base.txt | issue31.txt | |
---|---|---|
Skipping to change at page 3, line 28: | ||
11.2.3 Duplicate Address Detection DoS Attack . . . .48 | 11.2.3 Duplicate Address Detection DoS Attack . . . .48 | |
11.2.4 Router Solicitation and Advertisement Attacks 49 | 11.2.4 Router Solicitation and Advertisement Attacks 49 | |
11.2.5 Replay Attacks . . . . . . . . . . . . . . . .49 | 11.2.5 Replay Attacks . . . . . . . . . . . . . . . .49 | |
11.2.6 Neighbor Discovery DoS Attack . . . . . . . .49 | 11.2.6 Neighbor Discovery DoS Attack . . . . . . . .49 | |
11.3 Attacks against SEND Itself . . . . . . . . . . . . 50 | 11.3 Attacks against SEND Itself . . . . . . . . . . . . 50 | |
12. Protocol Constants . . . . . . . . . . . . . . . . . . . . 51 | 12. Protocol Constants . . . . . . . . . . . . . . . . . . . . 51 | |
13. IANA Considerations . . . . . . . . . . . . . . . . . . . 52 | 13. IANA Considerations . . . . . . . . . . . . . . . . . . . 52 | |
Normative References . . . . . . . . . . . . . . . . . . . 53 | Normative References . . . . . . . . . . . . . . . . . . . 53 | |
Informative References . . . . . . . . . . . . . . . . . . 54 | Informative References . . . . . . . . . . . . . . . . . . 54 | |
Authors' Addresses . . . . . . . . . . . . . . . . . . . . 55 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . 55 | |
A. Contributors . . . . . . . . . . . . . . . . . . . . . . . 56 | A. Contributors . . . . . . . . . . . . . . . . . . . . . . . 57 | |
B. Acknowledgements . . . . . . . . . . . . . . . . . . . . . 57 | B. Acknowledgements . . . . . . . . . . . . . . . . . . . . . 58 | |
C. Cache Management . . . . . . . . . . . . . . . . . . . . . 58 | C. Cache Management . . . . . . . . . . . . . . . . . . . . . 59 | |
D. Comparison to AH-Based Approach . . . . . . . . . . . . . 59 | D. Comparison to AH-Based Approach . . . . . . . . . . . . . 60 | |
Intellectual Property and Copyright Statements . . . . . . 62 | Intellectual Property and Copyright Statements . . . . . . 63 | |
1. Introduction | 1. Introduction | |
IPv6 defines the Neighbor Discovery Protocol (NDP) in RFC 2461 [7]. | IPv6 defines the Neighbor Discovery Protocol (NDP) in RFC 2461 [7]. | |
Nodes on the same link use NDP to discover each other's presence, to | Nodes on the same link use NDP to discover each other's presence, to | |
determine each other's link-layer addresses, to find routers, and to | determine each other's link-layer addresses, to find routers, and to | |
maintain reachability information about the paths to active | maintain reachability information about the paths to active | |
neighbors. NDP is used both by hosts and routers. Its functions | neighbors. NDP is used both by hosts and routers. Its functions | |
include Neighbor Discovery (ND), Router Discovery (RD), Address | include Neighbor Discovery (ND), Router Discovery (RD), Address | |
Autoconfiguration, Address Resolution, Neighbor Unreachability | Autoconfiguration, Address Resolution, Neighbor Unreachability | |
Skipping to change at page 7, line 46: | ||
specified in Section 8 of RFC 2461 [7]. It is similar to the | specified in Section 8 of RFC 2461 [7]. It is similar to the | |
ICMPv4 Redirect function [15]. | ICMPv4 Redirect function [15]. | |
o Address Autoconfiguration is used for automatically assigning | o Address Autoconfiguration is used for automatically assigning | |
addresses to a host [8]. This allows hosts to operate without | addresses to a host [8]. This allows hosts to operate without | |
explicit configuration related to IP connectivity. The Address | explicit configuration related to IP connectivity. The Address | |
Autoconfiguration mechanism defined in [8] is stateless. To | Autoconfiguration mechanism defined in [8] is stateless. To | |
create IP addresses, the hosts use any prefix information | create IP addresses, the hosts use any prefix information | |
delivered to them during Router Discovery, and then test the newly | delivered to them during Router Discovery, and then test the newly | |
formed addresses for uniqueness. A stateful mechanism, DHCPv6 | formed addresses for uniqueness. A stateful mechanism, DHCPv6 | |
[24], provides additional Autoconfiguration features. | [25], provides additional Autoconfiguration features. | |
o Duplicate Address Detection (DAD) is used for preventing address | o Duplicate Address Detection (DAD) is used for preventing address | |
collisions [8], for instance during Address Autoconfiguration. A | collisions [8], for instance during Address Autoconfiguration. A | |
node that intends to assign a new address to one of its interfaces | node that intends to assign a new address to one of its interfaces | |
first runs the DAD procedure to verify that there is no other node | first runs the DAD procedure to verify that there is no other node | |
using the same address. Since the rules forbid the use of an | using the same address. Since the rules forbid the use of an | |
address until it has been found unique, no higher layer traffic is | address until it has been found unique, no higher layer traffic is | |
possible until this procedure has been completed. Thus, | possible until this procedure has been completed. Thus, | |
preventing attacks against DAD can help ensure the availability of | preventing attacks against DAD can help ensure the availability of | |
communications for the node in question. | communications for the node in question. | |
Skipping to change at page 37, line 45: | ||
Upon receiving a message for which the receiver has no certificate | Upon receiving a message for which the receiver has no certificate | |
chain to a trust anchor, the receiver MAY use Authorization | chain to a trust anchor, the receiver MAY use Authorization | |
Delegation Discovery to learn the certificate chain of the peer. | Delegation Discovery to learn the certificate chain of the peer. | |
Nodes that use stateless address autoconfiguration, SHOULD generate a | Nodes that use stateless address autoconfiguration, SHOULD generate a | |
new CGA as specified in Section 4 of [12] for each new | new CGA as specified in Section 4 of [12] for each new | |
autoconfiguration run. The nodes MAY continue to use the same public | autoconfiguration run. The nodes MAY continue to use the same public | |
key and modifier, and start the process from Step 4. | key and modifier, and start the process from Step 4. | |
By default, a SEND-enabled node SHOULD use only CGAs as its own | ||
addresses. Other types of addresses MAY be used in testing, | ||
diagnostics or other purposes. However, this document does not | ||
describe how to choose between different types of addresses for | ||
different communications. A dynamic selection can be provided by an | ||
API, such as the one defined in [24]. | ||
This specification does not address the protection of Neighbor | This specification does not address the protection of Neighbor | |
Discovery packets for nodes that are configured with a static address | Discovery packets for nodes that are configured with a static address | |
(e.g., PREFIX::1). Future certificate chain based authorization | (e.g., PREFIX::1). Future certificate chain based authorization | |
specifications are needed for such nodes. | specifications are needed for such nodes. | |
It is outside the scope of this specification to describe the use of | It is outside the scope of this specification to describe the use of | |
trust anchor authorization between nodes with dynamically changing | trust anchor authorization between nodes with dynamically changing | |
addresses. Such dynamically changing addresses may be the result of | addresses. Such dynamically changing addresses may be the result of | |
stateful or stateless address autoconfiguration, or through the use | stateful or stateless address autoconfiguration, or through the use | |
of RFC 3041 [19] addresses. If the CGA method is not used, nodes | of RFC 3041 [19] addresses. If the CGA method is not used, nodes | |
Skipping to change at page 46, line 21: | ||
frame address and the IPv6 address. On an insecure link layer that | frame address and the IPv6 address. On an insecure link layer that | |
allows nodes to spoof the link layer address of other nodes, an | allows nodes to spoof the link layer address of other nodes, an | |
attacker could disrupt IP service by sending out a Neighbor | attacker could disrupt IP service by sending out a Neighbor | |
Advertisement having the source address on the link layer frame of a | Advertisement having the source address on the link layer frame of a | |
victim, a valid CGA address and a valid signature corresponding to | victim, a valid CGA address and a valid signature corresponding to | |
itself, and a Target Link-layer Address extension corresponding to | itself, and a Target Link-layer Address extension corresponding to | |
the victim. The attacker could then proceed to cause a traffic | the victim. The attacker could then proceed to cause a traffic | |
stream to bombard the victim in a DoS attack. To protect against | stream to bombard the victim in a DoS attack. To protect against | |
such attacks, link layer security MUST be used. An example of such | such attacks, link layer security MUST be used. An example of such | |
for 802 type networks is port-based access control defined in the | for 802 type networks is port-based access control defined in the | |
802.1X standard [28]. | 802.1X standard [29]. | |
Specifically, the 802.1X standard provides a mechanism by which a | Specifically, the 802.1X standard provides a mechanism by which a | |
nodes can be authenticated to a particular point of attachment to a | nodes can be authenticated to a particular point of attachment to a | |
LAN (called a "port" in the standard). If the MAC on frames sent by | LAN (called a "port" in the standard). If the MAC on frames sent by | |
a node does not correspond to the MAC of the node originally | a node does not correspond to the MAC of the node originally | |
authenticated to this port, then the point of attachment drops the | authenticated to this port, then the point of attachment drops the | |
frames. Authorization to use the port is determined by the MAC | frames. Authorization to use the port is determined by the MAC | |
address of the node that originally authenticated to the port. The | address of the node that originally authenticated to the port. The | |
way 802.1X protects against this attack is that, if a node | way 802.1X protects against this attack is that, if a node | |
authenticated to a particular port attempts to spoof the MAC address | authenticated to a particular port attempts to spoof the MAC address | |
Skipping to change at page 47, line 20: | ||
Multicast-Address-Specific Query to determine whether any listeners | Multicast-Address-Specific Query to determine whether any listeners | |
are still on the address, at which point the victim can respond to | are still on the address, at which point the victim can respond to | |
avoid being dropped from the group. This technique will work if the | avoid being dropped from the group. This technique will work if the | |
router on the link has not been compromised. Other attacks using MLD | router on the link has not been compromised. Other attacks using MLD | |
are possible, but they primarily lead to extraneous (but not | are possible, but they primarily lead to extraneous (but not | |
overwhelming) traffic. | overwhelming) traffic. | |
11.2 How SEND Counters Threats to Neighbor Discovery | 11.2 How SEND Counters Threats to Neighbor Discovery | |
The SEND protocol is designed to counter the threats to IPv6 Neighbor | The SEND protocol is designed to counter the threats to IPv6 Neighbor | |
Discovery, as outlined in [26]. The following subsections contain a | Discovery, as outlined in [27]. The following subsections contain a | |
regression of the SEND protocol against the threats, to illustrate | regression of the SEND protocol against the threats, to illustrate | |
what aspects of the protocol counter each threat. | what aspects of the protocol counter each threat. | |
11.2.1 Neighbor Solicitation/Advertisement Spoofing | 11.2.1 Neighbor Solicitation/Advertisement Spoofing | |
This threat is defined in Section 4.1.1 of [26]. The threat is that | This threat is defined in Section 4.1.1 of [27]. The threat is that | |
a spoofed Neighbor Solicitation or Neighbor Advertisement causes a | a spoofed Neighbor Solicitation or Neighbor Advertisement causes a | |
false entry in a node's Neighbor Cache. There are two cases: | false entry in a node's Neighbor Cache. There are two cases: | |
1. Entries made as a side effect of a Neighbor Solicitation or | 1. Entries made as a side effect of a Neighbor Solicitation or | |
Router Solicitation. There are two cases: | Router Solicitation. There are two cases: | |
1. A router receiving a Router Solicitation with a firm IPv6 | 1. A router receiving a Router Solicitation with a firm IPv6 | |
source address and a Target Link-Layer Address extension | source address and a Target Link-Layer Address extension | |
inserts an entry for the IPv6 address into its Neighbor | inserts an entry for the IPv6 address into its Neighbor | |
Cache. | Cache. | |
Skipping to change at page 48, line 29: | ||
the node's interface identifier either be a CGA, or that the node be | the node's interface identifier either be a CGA, or that the node be | |
able to produce a certificate authorizing that node to use the public | able to produce a certificate authorizing that node to use the public | |
key. | key. | |
The Neighbor Solicitation and Advertisement pairs implement a | The Neighbor Solicitation and Advertisement pairs implement a | |
challenge-response protocol, as explained in Section 7 and discussed | challenge-response protocol, as explained in Section 7 and discussed | |
in Section 11.2.5 below. | in Section 11.2.5 below. | |
11.2.2 Neighbor Unreachability Detection Failure | 11.2.2 Neighbor Unreachability Detection Failure | |
This attack is described in Section 4.1.2 of [26]. SEND counters | This attack is described in Section 4.1.2 of [27]. SEND counters | |
this attack by requiring a node responding to Neighbor Solicitations | this attack by requiring a node responding to Neighbor Solicitations | |
sent as NUD probes to include a Signature option and proof of | sent as NUD probes to include a Signature option and proof of | |
authorization to use the interface identifier in the address being | authorization to use the interface identifier in the address being | |
probed. If these prerequisites are not met, the node performing NUD | probed. If these prerequisites are not met, the node performing NUD | |
discards the responses. | discards the responses. | |
11.2.3 Duplicate Address Detection DoS Attack | 11.2.3 Duplicate Address Detection DoS Attack | |
This attack is described in Section 4.1.3 of [26]. SEND counters | This attack is described in Section 4.1.3 of [27]. SEND counters | |
this attack by requiring the Neighbor Advertisements sent as | this attack by requiring the Neighbor Advertisements sent as | |
responses to DAD to include a Signature option and proof of | responses to DAD to include a Signature option and proof of | |
authorization to use the interface identifier in the address being | authorization to use the interface identifier in the address being | |
tested. If these prerequisites are not met, the node performing DAD | tested. If these prerequisites are not met, the node performing DAD | |
discards the responses. | discards the responses. | |
When a SEND node is used on a link that also connects to non-SEND | When a SEND node is used on a link that also connects to non-SEND | |
nodes, the SEND node ignores any insecure Neighbor Solicitations or | nodes, the SEND node ignores any insecure Neighbor Solicitations or | |
Advertisements that may be send by the non-SEND nodes. This protects | Advertisements that may be send by the non-SEND nodes. This protects | |
the SEND node from DAD DoS attacks by non-SEND nodes or attackers | the SEND node from DAD DoS attacks by non-SEND nodes or attackers | |
simulating to non-SEND nodes, at the cost of a potential address | simulating to non-SEND nodes, at the cost of a potential address | |
collision between a SEND node and non-SEND node. The probability and | collision between a SEND node and non-SEND node. The probability and | |
effects of such an address collision are discussed in [12]. | effects of such an address collision are discussed in [12]. | |
11.2.4 Router Solicitation and Advertisement Attacks | 11.2.4 Router Solicitation and Advertisement Attacks | |
These attacks are described in Sections 4.2.1, 4.2.4, 4.2.5, 4.2.6, | These attacks are described in Sections 4.2.1, 4.2.4, 4.2.5, 4.2.6, | |
and 4.2.7 of [26]. SEND counters these attacks by requiring Router | and 4.2.7 of [27]. SEND counters these attacks by requiring Router | |
Advertisements to contain a Signature option, and that the signature | Advertisements to contain a Signature option, and that the signature | |
is calculated using the public key of a node that can prove its | is calculated using the public key of a node that can prove its | |
authorization to route the subnet prefixes contained in any Prefix | authorization to route the subnet prefixes contained in any Prefix | |
Information Options. The router proves its authorization by showing | Information Options. The router proves its authorization by showing | |
a certificate containing the specific prefix or the indication that | a certificate containing the specific prefix or the indication that | |
the router is allowed to route any prefix. A Router Advertisement | the router is allowed to route any prefix. A Router Advertisement | |
without these protections is dropped. | without these protections is dropped. | |
SEND does not protect against brute force attacks on the router, such | SEND does not protect against brute force attacks on the router, such | |
as DoS attacks, or compromise of the router, as described in Sections | as DoS attacks, or compromise of the router, as described in Sections | |
4.4.2 and 4.4.3 of [26]. | 4.4.2 and 4.4.3 of [27]. | |
11.2.5 Replay Attacks | 11.2.5 Replay Attacks | |
This attack is described in Section 4.3.1 of [26]. SEND protects | This attack is described in Section 4.3.1 of [27]. SEND protects | |
against attacks in Router Solicitation/Router Advertisement and | against attacks in Router Solicitation/Router Advertisement and | |
Neighbor Solicitation/Neighbor Advertisement transactions by | Neighbor Solicitation/Neighbor Advertisement transactions by | |
including a Nonce option in the solicitation and requiring the | including a Nonce option in the solicitation and requiring the | |
advertisement to include a matching option. Together with the | advertisement to include a matching option. Together with the | |
signatures this forms a challenge-response protocol. SEND protects | signatures this forms a challenge-response protocol. SEND protects | |
against attacks from unsolicited messages such as Neighbor | against attacks from unsolicited messages such as Neighbor | |
Advertisements, Router Advertisements, and Redirects by including a | Advertisements, Router Advertisements, and Redirects by including a | |
Timestamp option. A window of vulnerability for replay attacks | Timestamp option. A window of vulnerability for replay attacks | |
exists until the timestamp expires. | exists until the timestamp expires. | |
Skipping to change at page 49, line 46: | ||
containing the timestamp. The cached state allows the node to | containing the timestamp. The cached state allows the node to | |
protect itself against replayed messages. However, once the node | protect itself against replayed messages. However, once the node | |
flushes the state for whatever reason, an attacker can re-create the | flushes the state for whatever reason, an attacker can re-create the | |
state by replaying an old message while the timestamp is still valid. | state by replaying an old message while the timestamp is still valid. | |
Since most SEND nodes are likely to use fairly coarse grained | Since most SEND nodes are likely to use fairly coarse grained | |
timestamps, as explained in Section 5.3.1, this may affect some | timestamps, as explained in Section 5.3.1, this may affect some | |
nodes. | nodes. | |
11.2.6 Neighbor Discovery DoS Attack | 11.2.6 Neighbor Discovery DoS Attack | |
This attack is described in Section 4.3.2 of [26]. In this attack, | This attack is described in Section 4.3.2 of [27]. In this attack, | |
the attacker bombards the router with packets for fictitious | the attacker bombards the router with packets for fictitious | |
addresses on the link, causing the router to busy itself with | addresses on the link, causing the router to busy itself with | |
performing Neighbor Solicitations for addresses that do not exist. | performing Neighbor Solicitations for addresses that do not exist. | |
SEND does not address this threat because it can be addressed by | SEND does not address this threat because it can be addressed by | |
techniques such as rate limiting Neighbor Solicitations, restricting | techniques such as rate limiting Neighbor Solicitations, restricting | |
the amount of state reserved for unresolved solicitations, and clever | the amount of state reserved for unresolved solicitations, and clever | |
cache management. These are all techniques involved in implementing | cache management. These are all techniques involved in implementing | |
Neighbor Discovery on the router. | Neighbor Discovery on the router. | |
11.3 Attacks against SEND Itself | 11.3 Attacks against SEND Itself | |
Skipping to change at page 54, line 38: | ||
Addressing Architecture", RFC 3513, April 2003. | Addressing Architecture", RFC 3513, April 2003. | |
[22] Arkko, J., "Effects of ICMPv6 on IKE and IPsec Policies", | [22] Arkko, J., "Effects of ICMPv6 on IKE and IPsec Policies", | |
draft-arkko-icmpv6-ike-effects-02 (work in progress), March | draft-arkko-icmpv6-ike-effects-02 (work in progress), March | |
2003. | 2003. | |
[23] Arkko, J., "Manual SA Configuration for IPv6 Link Local | [23] Arkko, J., "Manual SA Configuration for IPv6 Link Local | |
Messages", draft-arkko-manual-icmpv6-sas-01 (work in progress), | Messages", draft-arkko-manual-icmpv6-sas-01 (work in progress), | |
June 2002. | June 2002. | |
[24] Droms, R., "Dynamic Host Configuration Protocol for IPv6 | [24] Nordmark, E., Chakrabarti, S. and J. Laganier, "IPv6 Socket API | |
for Address Selection", draft-chakrabarti-ipv6-addrselect-02 | ||
(work in progress), October 2003. | ||
[25] Droms, R., "Dynamic Host Configuration Protocol for IPv6 | ||
(DHCPv6)", draft-ietf-dhc-dhcpv6-28 (work in progress), | (DHCPv6)", draft-ietf-dhc-dhcpv6-28 (work in progress), | |
November 2002. | November 2002. | |
[25] Kent, S., "IP Encapsulating Security Payload (ESP)", | [26] Kent, S., "IP Encapsulating Security Payload (ESP)", | |
draft-ietf-ipsec-esp-v3-06 (work in progress), July 2003. | draft-ietf-ipsec-esp-v3-06 (work in progress), July 2003. | |
[26] Nikander, P., "IPv6 Neighbor Discovery trust models and | [27] Nikander, P., "IPv6 Neighbor Discovery trust models and | |
threats", draft-ietf-send-psreq-00 (work in progress), October | threats", draft-ietf-send-psreq-00 (work in progress), October | |
2002. | 2002. | |
[27] International Organization for Standardization, "The Directory | [28] International Organization for Standardization, "The Directory | |
- Authentication Framework", ISO Standard X.509, 2000. | - Authentication Framework", ISO Standard X.509, 2000. | |
[28] Institute of Electrical and Electronics Engineers, "Local and | [29] Institute of Electrical and Electronics Engineers, "Local and | |
Metropolitan Area Networks: Port-Based Network Access Control", | Metropolitan Area Networks: Port-Based Network Access Control", | |
IEEE Standard 802.1X, September 2001. | IEEE Standard 802.1X, September 2001. | |
Authors' Addresses | Authors' Addresses | |
Jari Arkko | Jari Arkko | |
Ericsson | Ericsson | |
Jorvas 02420 | Jorvas 02420 | |
Finland | Finland | |
End of changes. | ||
This html diff was produced by rfcdiff v0.42, available from http://www.levkowetz.com/ietf/tools/rfcdiff/ |