base.txt | issue80.txt | |||
---|---|---|---|---|
skipping to change at page 2, line 18 | skipping to change at page 2, line 18 | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
1.1 Specification of Requirements . . . . . . . . . . . . 4 | 1.1 Specification of Requirements . . . . . . . . . . . . 4 | |||
2. Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 2. Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
3. Neighbor and Router Discovery Overview . . . . . . . . . . . 7 | 3. Neighbor and Router Discovery Overview . . . . . . . . . . . 7 | |||
4. Secure Neighbor Discovery Overview . . . . . . . . . . . . . 9 | 4. Secure Neighbor Discovery Overview . . . . . . . . . . . . . 9 | |||
5. Neighbor Discovery Protocol Options . . . . . . . . . . . . 11 | 5. Neighbor Discovery Protocol Options . . . . . . . . . . . . 11 | |||
5.1 CGA Option . . . . . . . . . . . . . . . . . . . . . . 11 | 5.1 CGA Option . . . . . . . . . . . . . . . . . . . . . . 11 | |||
5.1.1 Processing Rules for Senders . . . . . . . . . . 12 | 5.1.1 Processing Rules for Senders . . . . . . . . . . 12 | |||
5.1.2 Processing Rules for Receivers . . . . . . . . . 13 | 5.1.2 Processing Rules for Receivers . . . . . . . . . 13 | |||
5.1.3 Configuration . . . . . . . . . . . . . . . . . 14 | 5.1.3 Configuration . . . . . . . . . . . . . . . . . 14 | |||
5.2 Signature Option . . . . . . . . . . . . . . . . . . . 14 | 5.2 RSA Signature Option . . . . . . . . . . . . . . . . . 14 | |||
5.2.1 Processing Rules for Senders . . . . . . . . . . 16 | 5.2.1 Processing Rules for Senders . . . . . . . . . . 16 | |||
5.2.2 Processing Rules for Receivers . . . . . . . . . 17 | 5.2.2 Processing Rules for Receivers . . . . . . . . . 17 | |||
5.2.3 Configuration . . . . . . . . . . . . . . . . . 18 | 5.2.3 Configuration . . . . . . . . . . . . . . . . . 18 | |||
5.2.4 Performance Considerations . . . . . . . . . . . 19 | 5.2.4 Performance Considerations . . . . . . . . . . . 19 | |||
5.3 Timestamp and Nonce options . . . . . . . . . . . . . 19 | 5.3 Timestamp and Nonce options . . . . . . . . . . . . . 19 | |||
5.3.1 Timestamp Option . . . . . . . . . . . . . . . . 19 | 5.3.1 Timestamp Option . . . . . . . . . . . . . . . . 19 | |||
5.3.2 Nonce Option . . . . . . . . . . . . . . . . . . 20 | 5.3.2 Nonce Option . . . . . . . . . . . . . . . . . . 20 | |||
5.3.3 Processing rules for senders . . . . . . . . . . 21 | 5.3.3 Processing rules for senders . . . . . . . . . . 21 | |||
5.3.4 Processing rules for receivers . . . . . . . . . 22 | 5.3.4 Processing rules for receivers . . . . . . . . . 22 | |||
6. Authorization Delegation Discovery . . . . . . . . . . . . . 25 | 6. Authorization Delegation Discovery . . . . . . . . . . . . . 25 | |||
skipping to change at page 9, line 37 | skipping to change at page 9, line 37 | |||
o Cryptographically Generated Addresses are used to assure that the | o Cryptographically Generated Addresses are used to assure that the | |||
sender of a Neighbor Discovery message is the "owner" of the | sender of a Neighbor Discovery message is the "owner" of the | |||
claimed address. A public-private key pair is generated by all | claimed address. A public-private key pair is generated by all | |||
nodes before they can claim an address. A new NDP option, the CGA | nodes before they can claim an address. A new NDP option, the CGA | |||
option, is used to carry the public key and associated parameters. | option, is used to carry the public key and associated parameters. | |||
This specification also allows a node to use non-CGAs with | This specification also allows a node to use non-CGAs with | |||
certificates to authorize their use. However, the details of such | certificates to authorize their use. However, the details of such | |||
use are beyond the scope of this specification. | use are beyond the scope of this specification. | |||
o A new NDP option, the Signature option, is used to protect all | o A new NDP option, the RSA Signature option, is used to protect all | |||
messages relating to Neighbor and Router discovery. | messages relating to Neighbor and Router discovery. | |||
Public key signatures protect the integrity of the messages and | Public key signatures protect the integrity of the messages and | |||
authenticate the identity of their sender. The authority of a | authenticate the identity of their sender. The authority of a | |||
public key is established either with the authorization delegation | public key is established either with the authorization delegation | |||
process, using certificates, or through the address ownership | process, using certificates, or through the address ownership | |||
proof mechanism, using CGAs, or both, depending on configuration | proof mechanism, using CGAs, or both, depending on configuration | |||
and the type of the message protected. | and the type of the message protected. | |||
Note: RSA is mandated because having multiple signature algorithms | ||||
would break compatibility between implementations or increase | ||||
implementation complexity by forcing implementation of multiple | ||||
algorithms and the mechanism to select among them. A second | ||||
signature algorithm is only necessary as a recovery mechanism, in | ||||
case RSA is found to be insecure. If that happens, a stronger | ||||
signature algorithm can be selected and SEND can be revised. The | ||||
relationship between the new algorithm and the RSA-based SEND | ||||
described in this document would be similar to that between the | ||||
RSA-based SEND and Neighbor Discovery without SEND. Information | ||||
signed with the stronger algorithm has precedence over that signed | ||||
with RSA, in the same way as RSA-signed information now takes | ||||
precedence over unsigned information. Implementations of the | ||||
current and revised specs would still be compatible. | ||||
o In order to prevent replay attacks, two new Neighbor Discovery | o In order to prevent replay attacks, two new Neighbor Discovery | |||
options, Timestamp and Nonce, are introduced. Given that Neighbor | options, Timestamp and Nonce, are introduced. Given that Neighbor | |||
and Router Discovery messages are in some cases sent to multicast | and Router Discovery messages are in some cases sent to multicast | |||
addresses, the Timestamp option offers replay protection without | addresses, the Timestamp option offers replay protection without | |||
any previously established state or sequence numbers. When the | any previously established state or sequence numbers. When the | |||
messages are used in solicitation - advertisement pairs, they are | messages are used in solicitation - advertisement pairs, they are | |||
protected using the Nonce option. | protected using the Nonce option. | |||
5. Neighbor Discovery Protocol Options | 5. Neighbor Discovery Protocol Options | |||
skipping to change at page 12, line 11 | skipping to change at page 12, line 11 | |||
An 8-bit field reserved for future use. The value MUST be | An 8-bit field reserved for future use. The value MUST be | |||
initialized to zero by the sender, and MUST be ignored by the | initialized to zero by the sender, and MUST be ignored by the | |||
receiver. | receiver. | |||
CGA Parameters | CGA Parameters | |||
A variable length field containing the CGA Parameters data | A variable length field containing the CGA Parameters data | |||
structure described in Section 4 of [13]. | structure described in Section 4 of [13]. | |||
This specification requires that if both the CGA option and the | This specification requires that if both the CGA option and the | |||
Signature option are present, then the public key found from the | RSA Signature option are present, then the public key found from | |||
CGA Parameters field in the CGA option MUST be the public key | the CGA Parameters field in the CGA option MUST be the public key | |||
referred by the Key Hash field in the Signature option. Packets | referred by the Key Hash field in the RSA Signature option. | |||
received with two different keys MUST be silently discarded. Note | Packets received with two different keys MUST be silently | |||
that a future extension may provide a mechanism which allows the | discarded. Note that a future extension may provide a mechanism | |||
owner of an address and the signer to be different parties. | which allows the owner of an address and the signer to be | |||
different parties. | ||||
Padding | Padding | |||
A variable length field making the option length a multiple of 8, | A variable length field making the option length a multiple of 8, | |||
containing as many octets as specified in the Pad Length field. | containing as many octets as specified in the Pad Length field. | |||
5.1.1 Processing Rules for Senders | 5.1.1 Processing Rules for Senders | |||
The CGA option MUST be present in all Neighbor Solicitation and | The CGA option MUST be present in all Neighbor Solicitation and | |||
Advertisement messages, and MUST be present in Router Solicitation | Advertisement messages, and MUST be present in Router Solicitation | |||
skipping to change at page 14, line 26 | skipping to change at page 14, line 28 | |||
least 2048 bits. Any implementation should follow prudent | least 2048 bits. Any implementation should follow prudent | |||
cryptographic practice in determining the appropriate key lengths. | cryptographic practice in determining the appropriate key lengths. | |||
All nodes that support the sending of the CGA option MUST record the | All nodes that support the sending of the CGA option MUST record the | |||
following configuration information: | following configuration information: | |||
CGA parameters | CGA parameters | |||
Any information required to construct CGAs, as described in [13]. | Any information required to construct CGAs, as described in [13]. | |||
5.2 Signature Option | 5.2 RSA Signature Option | |||
The Signature option allows public-key based signatures to be | The RSA Signature option allows public-key based signatures to be | |||
attached to NDP messages. Configured trust anchors, CGAs, or both are | attached to NDP messages. Configured trust anchors, CGAs, or both are | |||
supported as the trusted root. The format of the Signature option is | supported as the trusted root. The format of the RSA Signature | |||
described in the following diagram: | option is described in the following diagram: | |||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length | Reserved | | | Type | Length | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | |||
| Key Hash | | | Key Hash | | |||
| | | | | | |||
| | | | | | |||
skipping to change at page 15, line 29 | skipping to change at page 15, line 29 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | |||
. . | . . | |||
. Padding . | . Padding . | |||
. . | . . | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Type | Type | |||
TBD <To be assigned by IANA for Signature>. | TBD <To be assigned by IANA for RSA Signature>. | |||
Length | Length | |||
The length of the option (including the Type, Length, Reserved, | The length of the option (including the Type, Length, Reserved, | |||
Key Hash, Digital Signature, and Padding fields) in units of 8 | Key Hash, Digital Signature, and Padding fields) in units of 8 | |||
octets. | octets. | |||
Reserved | Reserved | |||
A 16-bit field reserved for future use. The value MUST be | A 16-bit field reserved for future use. The value MUST be | |||
skipping to change at page 16, line 23 | skipping to change at page 16, line 23 | |||
generated randomly by the editor of this specification.). | generated randomly by the editor of this specification.). | |||
2. The 128-bit Source Address field from the IP header. | 2. The 128-bit Source Address field from the IP header. | |||
3. The 128-bit Destination Address field from the IP header. | 3. The 128-bit Destination Address field from the IP header. | |||
4. The 32-bit ICMP header. | 4. The 32-bit ICMP header. | |||
5. The NDP message header. | 5. The NDP message header. | |||
6. All NDP options preceding the Signature option. | 6. All NDP options preceding the RSA Signature option. | |||
The signature value is computed with the RSASSA-PKCS1-v1_5 | The signature value is computed with the RSASSA-PKCS1-v1_5 | |||
algorithm and SHA-1 hash as defined in [14]. | algorithm and SHA-1 hash as defined in [14]. | |||
This field starts after the Key Hash field. The length of the | This field starts after the Key Hash field. The length of the | |||
Digital Signature field is determined by the length of the | Digital Signature field is determined by the length of the RSA | |||
Signature option minus the length of the other fields (including | Signature option minus the length of the other fields (including | |||
the variable length Pad field). | the variable length Pad field). | |||
Padding | Padding | |||
This variable length field contains padding, as many bytes as | This variable length field contains padding, as many bytes as | |||
remains after end of the signature. | remains after end of the signature. | |||
5.2.1 Processing Rules for Senders | 5.2.1 Processing Rules for Senders | |||
Neighbor Solicitation, Neighbor Advertisement, Router Advertisement, | Neighbor Solicitation, Neighbor Advertisement, Router Advertisement, | |||
and Redirect messages MUST contain the Signature option. Router | and Redirect messages MUST contain the RSA Signature option. Router | |||
Solicitation messages not sent with the unspecified source address | Solicitation messages not sent with the unspecified source address | |||
MUST contain the Signature option. | MUST contain the RSA Signature option. | |||
A node sending a message using the Signature option MUST construct | A node sending a message using the RSA Signature option MUST | |||
the message as follows: | construct the message as follows: | |||
o The message is constructed in its entirety, without the Signature | o The message is constructed in its entirety, without the RSA | |||
option. | Signature option. | |||
o The Signature option is added as the last option in the message. | o The RSA Signature option is added as the last option in the | |||
message. | ||||
o The data to be signed is constructed as explained in Section 5.2, | o The data to be signed is constructed as explained in Section 5.2, | |||
under the description of the Digital Signature field. | under the description of the Digital Signature field. | |||
o The message, in the form defined above, is signed using the | o The message, in the form defined above, is signed using the | |||
configured private key, and the resulting PKCS#1 signature is put | configured private key, and the resulting PKCS#1 signature is put | |||
to the Digital Signature field. | to the Digital Signature field. | |||
5.2.2 Processing Rules for Receivers | 5.2.2 Processing Rules for Receivers | |||
Neighbor Solicitation, Neighbor Advertisement, Router Advertisement, | Neighbor Solicitation, Neighbor Advertisement, Router Advertisement, | |||
and Redirect messages without the Signature option MUST be treated as | and Redirect messages without the RSA Signature option MUST be | |||
insecure, i.e., processed in the same way as NDP messages sent by a | treated as insecure, i.e., processed in the same way as NDP messages | |||
non-SEND node. See Section 8. | sent by a non-SEND node. See Section 8. | |||
Router Solicitation messages without the Signature option MUST be | Router Solicitation messages without the RSA Signature option MUST be | |||
also treated as insecure, unless the source address of the message is | also treated as insecure, unless the source address of the message is | |||
the unspecified address. | the unspecified address. | |||
Redirect, Neighbor Solicitation, Neighbor Advertisement, Router | Redirect, Neighbor Solicitation, Neighbor Advertisement, Router | |||
Solicitation, and Router Advertisement messages containing a | Solicitation, and Router Advertisement messages containing an RSA | |||
Signature option MUST be checked as follows: | Signature option MUST be checked as follows: | |||
o The receiver MUST ignore any options the come after the first | o The receiver MUST ignore any options the come after the first RSA | |||
Signature option. (The options are ignored for both signature | Signature option. (The options are ignored for both signature | |||
verification and NDP processing purposes.) | verification and NDP processing purposes.) | |||
o The Key Hash field MUST indicate the use of a known public key, | o The Key Hash field MUST indicate the use of a known public key, | |||
either one learned from a preceding CGA option in the same | either one learned from a preceding CGA option in the same | |||
message, or one known by other means. | message, or one known by other means. | |||
o The Digital Signature field MUST have correct encoding, and not | o The Digital Signature field MUST have correct encoding, and not | |||
exceed the length of the Signature option minus the Padding. | exceed the length of the RSA Signature option minus the Padding. | |||
o The Digital Signature verification MUST show that the signature | o The Digital Signature verification MUST show that the signature | |||
has been calculated as specified in the previous section. | has been calculated as specified in the previous section. | |||
o If the use of a trust anchor has been configured, a valid | o If the use of a trust anchor has been configured, a valid | |||
authorization delegation chain MUST be known between the | authorization delegation chain MUST be known between the | |||
receiver's trust anchor and the sender's public key. | receiver's trust anchor and the sender's public key. | |||
Note that the receiver may verify just the CGA property of a | Note that the receiver may verify just the CGA property of a | |||
packet, even if, in addition to CGA, the sender has used a trust | packet, even if, in addition to CGA, the sender has used a trust | |||
skipping to change at page 18, line 12 | skipping to change at page 18, line 14 | |||
Messages that do not pass all the above tests MUST be silently | Messages that do not pass all the above tests MUST be silently | |||
discarded if the host has been configured to only accept secure ND | discarded if the host has been configured to only accept secure ND | |||
messages. The messages MAY be accepted it the host has been | messages. The messages MAY be accepted it the host has been | |||
configured to accept both secure and insecure messages, but MUST be | configured to accept both secure and insecure messages, but MUST be | |||
treated as an insecure message. The receiver MAY also otherwise | treated as an insecure message. The receiver MAY also otherwise | |||
silently discard packets, e.g., as a response to an apparent CPU | silently discard packets, e.g., as a response to an apparent CPU | |||
exhausting DoS attack. | exhausting DoS attack. | |||
5.2.3 Configuration | 5.2.3 Configuration | |||
All nodes that support the reception of the Signature options MUST be | All nodes that support the reception of the RSA Signature options | |||
configured with the following information for each separate NDP | MUST be configured with the following information for each separate | |||
message type: | NDP message type: | |||
authorization method | authorization method | |||
This parameter determines the method through which the authority | This parameter determines the method through which the authority | |||
of the sender is determined. It can have four values: | of the sender is determined. It can have four values: | |||
trust anchor | trust anchor | |||
The authority of the sender is verified as described in Section | The authority of the sender is verified as described in Section | |||
6.1. The sender may claim additional authorization through the | 6.1. The sender may claim additional authorization through the | |||
skipping to change at page 18, line 47 | skipping to change at page 18, line 49 | |||
trust anchor or CGA | trust anchor or CGA | |||
Either the trust anchor or the CGA verification is required. | Either the trust anchor or the CGA verification is required. | |||
anchor | anchor | |||
The public keys and names of the allowed trust anchor(s), if the | The public keys and names of the allowed trust anchor(s), if the | |||
authorization method is not set to CGA. | authorization method is not set to CGA. | |||
All nodes that support the sending of Signature options MUST record | All nodes that support the sending of RSA Signature options MUST | |||
the following configuration information: | record the following configuration information: | |||
keypair | keypair | |||
A public-private key pair. If authorization delegation is in use, | A public-private key pair. If authorization delegation is in use, | |||
there must exist a delegation chain from a trust anchor to this | there must exist a delegation chain from a trust anchor to this | |||
key pair. | key pair. | |||
CGA flag | CGA flag | |||
A flag that indicates whether CGA is used or not. This flag may be | A flag that indicates whether CGA is used or not. This flag may be | |||
skipping to change at page 22, line 14 | skipping to change at page 22, line 14 | |||
5.3.4 Processing rules for receivers | 5.3.4 Processing rules for receivers | |||
The processing of the Nonce and Timestamp options depends on whether | The processing of the Nonce and Timestamp options depends on whether | |||
a packet is a solicited advertisement. A system may implement the | a packet is a solicited advertisement. A system may implement the | |||
distinction in various ways. Section 5.3.4.1 defines the processing | distinction in various ways. Section 5.3.4.1 defines the processing | |||
rules for solicited advertisements. Section 5.3.4.2 defines the | rules for solicited advertisements. Section 5.3.4.2 defines the | |||
processing rules for all other messages. | processing rules for all other messages. | |||
In addition, the following rules apply in all cases: | In addition, the following rules apply in all cases: | |||
o Messages received with the Signature option but without the | o Messages received with the RSA Signature option but without the | |||
Timestamp option MUST be silently discarded. | Timestamp option MUST be silently discarded. | |||
o Solicitation messages received with the Signature option but | o Solicitation messages received with the RSA Signature option but | |||
without the Nonce option MUST be silently discarded. | without the Nonce option MUST be silently discarded. | |||
o Advertisements sent to a unicast destination address with the | o Advertisements sent to a unicast destination address with the RSA | |||
Signature option but without a Nonce option MUST be silently | Signature option but without a Nonce option MUST be silently | |||
discarded. | discarded. | |||
o An implementation MAY utilize some mechanism such as a timestamp | o An implementation MAY utilize some mechanism such as a timestamp | |||
cache to strengthen resistance to replay attacks. When there is a | cache to strengthen resistance to replay attacks. When there is a | |||
very large number of nodes on the same link, or when a cache | very large number of nodes on the same link, or when a cache | |||
filling attack is in progress, it is possible that the cache | filling attack is in progress, it is possible that the cache | |||
holding the most recent timestamp per sender becomes full. In | holding the most recent timestamp per sender becomes full. In | |||
this case the node MUST remove some entries from the cache or | this case the node MUST remove some entries from the cache or | |||
refuse some new requested entries. The specific policy as to | refuse some new requested entries. The specific policy as to | |||
skipping to change at page 23, line 29 | skipping to change at page 23, line 29 | |||
o The receive time of the last received and accepted SEND message. | o The receive time of the last received and accepted SEND message. | |||
This is called RDlast. | This is called RDlast. | |||
o The time stamp in the last received and accepted SEND message. | o The time stamp in the last received and accepted SEND message. | |||
This is called TSlast. | This is called TSlast. | |||
An accepted SEND message is any successfully verified Neighbor | An accepted SEND message is any successfully verified Neighbor | |||
Solicitation, Neighbor Advertisement, Router Solicitation, Router | Solicitation, Neighbor Advertisement, Router Solicitation, Router | |||
Advertisement, or Redirect message from the given peer. It is | Advertisement, or Redirect message from the given peer. It is | |||
required that the Signature option has been used in such a message | required that the RSA Signature option has been used in such a | |||
before it can update the above variables. | message before it can update the above variables. | |||
Receivers SHOULD then check the Timestamp field as follows: | Receivers SHOULD then check the Timestamp field as follows: | |||
o When a message is received from a new peer, i.e., one that is not | o When a message is received from a new peer, i.e., one that is not | |||
stored in the cache, the received timestamp, TSnew, is checked and | stored in the cache, the received timestamp, TSnew, is checked and | |||
the packet is accepted if the timestamp is recent enough with | the packet is accepted if the timestamp is recent enough with | |||
respect to the reception time of the packet, RDnew: | respect to the reception time of the packet, RDnew: | |||
-Delta < (RDnew - TSnew) < +Delta | -Delta < (RDnew - TSnew) < +Delta | |||
skipping to change at page 44, line 19 | skipping to change at page 44, line 19 | |||
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. A router receiving a Router Solicitation | Router Solicitation. A router receiving a Router Solicitation | |||
with a Target Link-Layer Address extension and the IPv6 source | with a Target Link-Layer Address extension and the IPv6 source | |||
address not equal to the unspecified address inserts an entry for | address not equal to the unspecified address inserts an entry for | |||
the IPv6 address into its Neighbor Cache. Also, a node performing | the IPv6 address into its Neighbor Cache. Also, a node performing | |||
Duplicate Address Detection (DAD) that receives a Neighbor | Duplicate Address Detection (DAD) that receives a Neighbor | |||
Solicitation for the same address regards the situation as a | Solicitation for the same address regards the situation as a | |||
collision and ceases to solicit for the address. | collision and ceases to solicit for the address. | |||
In either case, SEND counters these treats by requiring the | In either case, SEND counters these treats by requiring the RSA | |||
Signature and CGA options to be present in such solicitations. | Signature and CGA options to be present in such solicitations. | |||
SEND nodes can send Router Solicitation messages with a CGA | SEND nodes can send Router Solicitation messages with a CGA | |||
source address and a CGA option, which the router can verify, so | source address and a CGA option, which the router can verify, so | |||
the Neighbor Cache binding is correct. If a SEND node must send | the Neighbor Cache binding is correct. If a SEND node must send | |||
a Router Solicitation with the unspecified address, the router | a Router Solicitation with the unspecified address, the router | |||
will not update its Neighbor Cache, as per RFC 2461. | will not update its Neighbor Cache, as per RFC 2461. | |||
2. Entries made as a result of a Neighbor Advertisement message. | 2. Entries made as a result of a Neighbor Advertisement message. | |||
SEND counters this threat by requiring the Signature and CGA | SEND counters this threat by requiring the RSA Signature and CGA | |||
options to be present in these advertisements. | options to be present in these advertisements. | |||
See also Section 9.2.5, below, for discussion about replay protection | See also Section 9.2.5, below, for discussion about replay protection | |||
and timestamps. | and timestamps. | |||
9.2.2 Neighbor Unreachability Detection Failure | 9.2.2 Neighbor Unreachability Detection Failure | |||
This attack is described in Section 4.1.2 of [24]. SEND counters | This attack is described in Section 4.1.2 of [24]. 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 an RSA 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. | |||
9.2.3 Duplicate Address Detection DoS Attack | 9.2.3 Duplicate Address Detection DoS Attack | |||
This attack is described in Section 4.1.3 of [24]. SEND counters | This attack is described in Section 4.1.3 of [24]. 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 an RSA 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 performing DAD, it may listen for address | When a SEND node is performing DAD, it may listen for address | |||
collisions from non-SEND nodes for the first address it generates, | collisions from non-SEND nodes for the first address it generates, | |||
but not for new attempts. This protects the SEND node from DAD DoS | but not for new attempts. This protects the SEND node from DAD DoS | |||
attacks by non-SEND nodes or attackers simulating to non-SEND nodes, | attacks by non-SEND nodes or attackers simulating to non-SEND nodes, | |||
at the cost of a potential address collision between a SEND node and | at the cost of a potential address collision between a SEND node and | |||
non-SEND node. The probability and effects of such an address | non-SEND node. The probability and effects of such an address | |||
collision are discussed in [13]. | collision are discussed in [13]. | |||
9.2.4 Router Solicitation and Advertisement Attacks | 9.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 [24]. SEND counters these attacks by requiring Router | and 4.2.7 of [24]. SEND counters these attacks by requiring Router | |||
Advertisements to contain a Signature option, and that the signature | Advertisements to contain an RSA Signature option, and that the | |||
is calculated using the public key of a node that can prove its | signature is calculated using the public key of a node that can prove | |||
authorization to route the subnet prefixes contained in any Prefix | its authorization to route the subnet prefixes contained in any | |||
Information Options. The router proves its authorization by showing | Prefix Information Options. The router proves its authorization by | |||
a certificate containing the specific prefix or the indication that | showing a certificate containing the specific prefix or the | |||
the router is allowed to route any prefix. A Router Advertisement | indication that the router is allowed to route any prefix. A Router | |||
without these protections is discarded. | Advertisement without these protections is discarded. | |||
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 [24]. | 4.4.2 and 4.4.3 of [24]. | |||
9.2.5 Replay Attacks | 9.2.5 Replay Attacks | |||
This attack is described in Section 4.3.1 of [24]. SEND protects | This attack is described in Section 4.3.1 of [24]. 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 | |||
skipping to change at page 46, line 38 | skipping to change at page 46, line 38 | |||
the verification process described in Section 5.2.2. In this process, | the verification process described in Section 5.2.2. In this process, | |||
a simple hash verification of the CGA property of the address is | a simple hash verification of the CGA property of the address is | |||
performed before performing the more expensive signature | performed before performing the more expensive signature | |||
verification. However, even if the CGA verification succeeds, no | verification. However, even if the CGA verification succeeds, no | |||
claims about the validity of the message can be made, until the | claims about the validity of the message can be made, until the | |||
signature has been checked. | signature has been checked. | |||
When trust anchors and certificates are used for address validation | When trust anchors and certificates are used for address validation | |||
in SEND, the defenses are not quite as effective. Implementations | in SEND, the defenses are not quite as effective. Implementations | |||
SHOULD track the resources devoted to the processing of packets | SHOULD track the resources devoted to the processing of packets | |||
received with the Signature option, and start selectively discarding | received with the RSA Signature option, and start selectively | |||
packets if too many resources are spent. Implementations MAY also | discarding packets if too many resources are spent. Implementations | |||
first discard packets that are not protected with CGA. | MAY also first discard packets that are not protected with CGA. | |||
The Authorization Delegation Discovery process may also be vulnerable | The Authorization Delegation Discovery process may also be vulnerable | |||
to Denial-of-Service attacks. An attack may target a router by | to Denial-of-Service attacks. An attack may target a router by | |||
requesting a large number of delegation chains to be discovered for | requesting a large number of delegation chains to be discovered for | |||
different trust anchors. Routers SHOULD defend against such attacks | different trust anchors. Routers SHOULD defend against such attacks | |||
by caching discovered information (including negative responses) and | by caching discovered information (including negative responses) and | |||
by limiting the number of different discovery processes they engage | by limiting the number of different discovery processes they engage | |||
in. | in. | |||
Attackers may also target hosts by sending a large number of | Attackers may also target hosts by sending a large number of | |||
skipping to change at page 50, line 22 | skipping to change at page 50, line 22 | |||
o The Delegation Chain Advertisement message, described in Section | o The Delegation Chain Advertisement message, described in Section | |||
6.2.2. | 6.2.2. | |||
This document defines six new Neighbor Discovery Protocol [7] | This document defines six new Neighbor Discovery Protocol [7] | |||
options, which must be assigned Option Type values within the option | options, which must be assigned Option Type values within the option | |||
numbering space for Neighbor Discovery Protocol messages: | numbering space for Neighbor Discovery Protocol messages: | |||
o The CGA option, described in Section 5.1. | o The CGA option, described in Section 5.1. | |||
o The Signature option, described in Section 5.2. | o The RSA Signature option, described in Section 5.2. | |||
o The Timestamp option, described in Section 5.3.1. | o The Timestamp option, described in Section 5.3.1. | |||
o The Nonce option, described in Section 5.3.2. | o The Nonce option, described in Section 5.3.2. | |||
o The Trust Anchor option, described in Section 6.2.3. | o The Trust Anchor option, described in Section 6.2.3. | |||
o The Certificate option, described in Section 6.2.4. | o The Certificate option, described in Section 6.2.4. | |||
This document defines a new 128-bit value under the CGA Message Type | This document defines a new 128-bit value under the CGA Message Type | |||
End of changes. | ||||
This html diff was produced by rfcdiff v1.06, available from http://www.levkowetz.com/ietf/tools/rfcdiff/ |