base.txt | issue92.txt | |||
---|---|---|---|---|
skipping to change at page 2, line 43 | skipping to change at page 2, line 43 | |||
6.2.2 Delegation Chain Advertisement Message Format . 30 | 6.2.2 Delegation Chain Advertisement Message Format . 30 | |||
6.2.3 Trust Anchor Option . . . . . . . . . . . . . . 33 | 6.2.3 Trust Anchor Option . . . . . . . . . . . . . . 33 | |||
6.2.4 Certificate Option . . . . . . . . . . . . . . . 34 | 6.2.4 Certificate Option . . . . . . . . . . . . . . . 34 | |||
6.2.5 Processing Rules for Routers . . . . . . . . . . 35 | 6.2.5 Processing Rules for Routers . . . . . . . . . . 35 | |||
6.2.6 Processing Rules for Hosts . . . . . . . . . . . 36 | 6.2.6 Processing Rules for Hosts . . . . . . . . . . . 36 | |||
7. Addressing . . . . . . . . . . . . . . . . . . . . . . . . . 39 | 7. Addressing . . . . . . . . . . . . . . . . . . . . . . . . . 39 | |||
7.1 CGAs . . . . . . . . . . . . . . . . . . . . . . . . . 39 | 7.1 CGAs . . . . . . . . . . . . . . . . . . . . . . . . . 39 | |||
7.2 Redirect Addresses . . . . . . . . . . . . . . . . . . 39 | 7.2 Redirect Addresses . . . . . . . . . . . . . . . . . . 39 | |||
7.3 Advertised Prefixes . . . . . . . . . . . . . . . . . 39 | 7.3 Advertised Prefixes . . . . . . . . . . . . . . . . . 39 | |||
7.4 Limitations . . . . . . . . . . . . . . . . . . . . . 40 | 7.4 Limitations . . . . . . . . . . . . . . . . . . . . . 40 | |||
8. Transition Issues . . . . . . . . . . . . . . . . . . . . . 41 | 8. Transition Issues . . . . . . . . . . . . . . . . . . . . . 42 | |||
9. Security Considerations . . . . . . . . . . . . . . . . . . 43 | 9. Security Considerations . . . . . . . . . . . . . . . . . . 44 | |||
9.1 Threats to the Local Link Not Covered by SEND . . . . 43 | 9.1 Threats to the Local Link Not Covered by SEND . . . . 44 | |||
9.2 How SEND Counters Threats to NDP . . . . . . . . . . . 43 | 9.2 How SEND Counters Threats to NDP . . . . . . . . . . . 44 | |||
9.2.1 Neighbor Solicitation/Advertisement Spoofing . . 44 | 9.2.1 Neighbor Solicitation/Advertisement Spoofing . . 45 | |||
9.2.2 Neighbor Unreachability Detection Failure . . . 44 | 9.2.2 Neighbor Unreachability Detection Failure . . . 45 | |||
9.2.3 Duplicate Address Detection DoS Attack . . . . . 44 | 9.2.3 Duplicate Address Detection DoS Attack . . . . . 45 | |||
9.2.4 Router Solicitation and Advertisement Attacks . 45 | 9.2.4 Router Solicitation and Advertisement Attacks . 46 | |||
9.2.5 Replay Attacks . . . . . . . . . . . . . . . . . 45 | 9.2.5 Replay Attacks . . . . . . . . . . . . . . . . . 46 | |||
9.2.6 Neighbor Discovery DoS Attack . . . . . . . . . 46 | 9.2.6 Neighbor Discovery DoS Attack . . . . . . . . . 47 | |||
9.3 Attacks against SEND Itself . . . . . . . . . . . . . 46 | 9.3 Attacks against SEND Itself . . . . . . . . . . . . . 47 | |||
10. Protocol Constants . . . . . . . . . . . . . . . . . . . . . 48 | 10. Protocol Constants . . . . . . . . . . . . . . . . . . . . . 49 | |||
11. Protocol Variables . . . . . . . . . . . . . . . . . . . . . 49 | 11. Protocol Variables . . . . . . . . . . . . . . . . . . . . . 50 | |||
12. IANA Considerations . . . . . . . . . . . . . . . . . . . . 50 | 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . 51 | |||
Normative References . . . . . . . . . . . . . . . . . . . . 51 | Normative References . . . . . . . . . . . . . . . . . . . . 52 | |||
Informative References . . . . . . . . . . . . . . . . . . . 53 | Informative References . . . . . . . . . . . . . . . . . . . 54 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 53 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 54 | |||
A. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 55 | A. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 56 | |||
B. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . 56 | B. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . 57 | |||
C. Cache Management . . . . . . . . . . . . . . . . . . . . . . 57 | C. Cache Management . . . . . . . . . . . . . . . . . . . . . . 58 | |||
D. Message Size When Carrying Certificates . . . . . . . . . . 58 | D. Message Size When Carrying Certificates . . . . . . . . . . 59 | |||
Intellectual Property and Copyright Statements . . . . . . . 59 | Intellectual Property and Copyright Statements . . . . . . . 60 | |||
1. Introduction | 1. Introduction | |||
IPv6 defines the Neighbor Discovery Protocol (NDP) in RFCs 2461 [7] | IPv6 defines the Neighbor Discovery Protocol (NDP) in RFCs 2461 [7] | |||
and 2462 [8]. Nodes on the same link use NDP to discover each | and 2462 [8]. Nodes on the same link use NDP to discover each | |||
other's presence, to determine each other's link-layer addresses, to | other's presence, to determine each other's link-layer addresses, to | |||
find routers, and to maintain reachability information about the | find routers, and to maintain reachability information about the | |||
paths to active neighbors. NDP is used both by hosts and routers. | paths to active neighbors. NDP is used both by hosts and routers. | |||
Its functions include Neighbor Discovery (ND), Router Discovery (RD), | Its functions include Neighbor Discovery (ND), Router Discovery (RD), | |||
Address Autoconfiguration, Address Resolution, Neighbor | Address Autoconfiguration, Address Resolution, Neighbor | |||
skipping to change at page 16, line 19 | skipping to change at page 16, line 19 | |||
octets: | octets: | |||
1. The 128-bit CGA Message Type tag [13] value for SEND, 0x086F | 1. The 128-bit CGA Message Type tag [13] value for SEND, 0x086F | |||
CA5E 10B2 00C9 9C8C E001 6427 7C08. (The tag value has been | CA5E 10B2 00C9 9C8C E001 6427 7C08. (The tag value has been | |||
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 8-bit Type, 8-bit Code, and 16-bit Checksum fields from | |||
the ICMP header. | ||||
5. The NDP message header. | 5. The NDP message header, starting from the octet after the ICMP | |||
Checksum field and continuing up to but not including NDP | ||||
options. | ||||
6. All NDP options preceding the RSA 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 RSA | 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). | |||
skipping to change at page 17, line 30 | skipping to change at page 17, line 33 | |||
sent by a non-SEND node. See Section 8. | sent by a non-SEND node. See Section 8. | |||
Router Solicitation messages without the RSA 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 an RSA | 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 RSA | o The receiver MUST ignore any options that 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 RSA Signature option minus the Padding. | exceed the length of the RSA Signature option minus the Padding. | |||
skipping to change at page 18, line 16 | skipping to change at page 18, line 19 | |||
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 RSA Signature options | All nodes that support the reception of the RSA Signature options | |||
MUST be configured with the following information for each separate | MUST allow the following information to be configured for each | |||
NDP message type: | separate 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 23, line 21 | skipping to change at page 23, line 21 | |||
If the message is accepted, the receiver SHOULD store the receive | If the message is accepted, the receiver SHOULD store the receive | |||
time of the message and the time stamp time in the message, as | time of the message and the time stamp time in the message, as | |||
specified in Section 5.3.4.2. | specified in Section 5.3.4.2. | |||
5.3.4.2 Processing all other messages | 5.3.4.2 Processing all other messages | |||
Receivers SHOULD be configured with an allowed timestamp Delta value, | Receivers SHOULD be configured with an allowed timestamp Delta value, | |||
a "fuzz factor" for comparisons, and an allowed clock drift | a "fuzz factor" for comparisons, and an allowed clock drift | |||
parameter. The recommended default value for the allowed Delta is | parameter. The recommended default value for the allowed Delta is | |||
TIMESTAMP_DELTA, for fuzz factor TIMESTAMP_FUZZ, and for clock drift | TIMESTAMP_DELTA, for fuzz factor TIMESTAMP_FUZZ, and for clock drift | |||
TIMESTAMP_DRIFT (see Section 11. | TIMESTAMP_DRIFT (see Section 11). | |||
To facilitate timestamp checking, each node SHOULD store the | To facilitate timestamp checking, each node SHOULD store the | |||
following information for each peer: | following information for each peer: | |||
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. | |||
skipping to change at page 34, line 13 | skipping to change at page 34, line 13 | |||
DER encoded X.501 certificate Name, represented and encoded | DER encoded X.501 certificate Name, represented and encoded | |||
exactly as in the matching X.509v3 trust anchor certificate. | exactly as in the matching X.509v3 trust anchor certificate. | |||
When the Name Type field is set to 2, the Name field contains a | When the Name Type field is set to 2, the Name field contains a | |||
Fully Qualified Domain Name of the trust anchor, for example, | Fully Qualified Domain Name of the trust anchor, for example, | |||
"trustanchor.example.com". The name is stored as a string, in the | "trustanchor.example.com". The name is stored as a string, in the | |||
"preferred name syntax" DNS format, as specified in RFC 1034 [1] | "preferred name syntax" DNS format, as specified in RFC 1034 [1] | |||
Section 3.5. Additionally, the restrictions discussed in RFC 3280 | Section 3.5. Additionally, the restrictions discussed in RFC 3280 | |||
[10] Section 4.2.1.7 apply. | [10] Section 4.2.1.7 apply. | |||
In the FQDN case the Name field is an "IDN-unaware domain name | In the FQDN case, the Name field is an "IDN-unaware domain name | |||
slot" as defined in [11]. That is, it can contain only ASCII | slot" as defined in [11]. That is, it can contain only ASCII | |||
characters. An implementation MAY support internationalized | characters. An implementation MAY support internationalized | |||
domain names (IDNs) using the ToASCII operation; see [11] for more | domain names (IDNs) using the ToASCII operation; see [11] for more | |||
information. | information. | |||
All systems MUST support the DER Encoded X.501 Name. | All systems MUST support the DER Encoded X.501 Name. | |||
Implementations MAY support the FQDN name type. | Implementations MAY support the FQDN name type. | |||
Padding | Padding | |||
skipping to change at page 39, line 25 | skipping to change at page 39, line 25 | |||
7.2 Redirect Addresses | 7.2 Redirect Addresses | |||
If the Target Address and Destination Address fields in the ICMP | If the Target Address and Destination Address fields in the ICMP | |||
Redirect message are equal, then this message is used to inform hosts | Redirect message are equal, then this message is used to inform hosts | |||
that a destination is in fact a neighbor. In this case the receiver | that a destination is in fact a neighbor. In this case the receiver | |||
MUST verify that the given address falls within the range defined by | MUST verify that the given address falls within the range defined by | |||
the router's certificate. Redirect messages failing this check MUST | the router's certificate. Redirect messages failing this check MUST | |||
be treated as insecure, as described in Section 7.3. | be treated as insecure, as described in Section 7.3. | |||
Note that RFC 2461 rules prevent a host from accepting a Redirect | Note that RFC 2461 rules prevent a host from accepting a Redirect | |||
message from a router that is not its default router. This prevents | message from a router that the host is not using to reach the | |||
an attacker from tricking a node into redirecting traffic when the | destination mentioned in the redirect. This prevents an attacker from | |||
attacker is not the default router. | tricking a node into redirecting traffic when the attacker is not the | |||
default router. | ||||
7.3 Advertised Prefixes | 7.3 Advertised Prefixes | |||
The router's certificate defines the address range(s) that it is | The router's certificate defines the address range(s) that it is | |||
allowed to advertise securely. A router MAY, however, advertise a | allowed to advertise securely. A router MAY, however, advertise a | |||
combination of certified and uncertified prefixes. Uncertified | combination of certified and uncertified prefixes. Uncertified | |||
prefixes are treated as insecure, i.e., processed in the same way as | prefixes are treated as insecure, i.e., processed in the same way as | |||
insecure router advertisements sent by non-SEND routers. The | insecure router advertisements sent by non-SEND routers. The | |||
processing of insecure messages is specified in Section 8. Note that | processing of insecure messages is specified in Section 8. Note that | |||
SEND nodes that do not attempt to interoperate with non-SEND nodes | SEND nodes that do not attempt to interoperate with non-SEND nodes | |||
skipping to change at page 40, line 29 | skipping to change at page 40, line 29 | |||
available. If the node is performing stateful autoconfiguration, it | available. If the node is performing stateful autoconfiguration, it | |||
SHOULD check the address provided by the DHCP server against the | SHOULD check the address provided by the DHCP server against the | |||
certified prefixes and SHOULD NOT use the address if the prefix is | certified prefixes and SHOULD NOT use the address if the prefix is | |||
not certified. | not certified. | |||
7.4 Limitations | 7.4 Limitations | |||
This specification does not address the protection of NDP packets for | This specification does not address the protection of NDP packets for | |||
nodes that are configured with a static address (e.g., PREFIX::1). | nodes that are configured with a static address (e.g., PREFIX::1). | |||
Future certificate chain-based authorization specifications are | Future certificate chain-based authorization specifications are | |||
needed for such nodes. | needed for such nodes. This specification also does not apply to | |||
addresses generated by the IPv6 stateless address autoconfiguration | ||||
using other fixed forms of interface identifiers (such as EUI-64) as | ||||
a basis. | ||||
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 [18] addresses. If the CGA method is not used, nodes | of RFC 3041 [18] addresses. If the CGA method is not used, nodes | |||
would be required to exchange certificate chains that terminate in a | would be required to exchange certificate chains that terminate in a | |||
certificate authorizing a node to use an IP address having a | certificate authorizing a node to use an IP address having a | |||
particular interface identifier. This specification does not specify | particular interface identifier. This specification does not specify | |||
the format of such certificates, since there are currently a few | the format of such certificates, since there are currently a few | |||
skipping to change at page 41, line 22 | skipping to change at page 42, line 22 | |||
messages but give priority to "secured" ones. Here, the "secured" | messages but give priority to "secured" ones. Here, the "secured" | |||
messages are ones that contain a valid signature option, as specified | messages are ones that contain a valid signature option, as specified | |||
above, and "insecure" messages are ones that contain no signature | above, and "insecure" messages are ones that contain no signature | |||
option. | option. | |||
A SEND node SHOULD have a configuration option that causes it to | A SEND node SHOULD have a configuration option that causes it to | |||
ignore all insecure Neighbor Solicitation and Advertisement, Router | ignore all insecure Neighbor Solicitation and Advertisement, Router | |||
Solicitation and Advertisement, and Redirect messages. This can be | Solicitation and Advertisement, and Redirect messages. This can be | |||
used to enforce SEND-only networks. The default for this | used to enforce SEND-only networks. The default for this | |||
configuration option SHOULD be that both secure and insecure messages | configuration option SHOULD be that both secure and insecure messages | |||
are allowed. A SEND node MAY also have a configuration option that | are allowed. | |||
causes it to disable the use of SEND even the messages it sends | ||||
itself. | ||||
SEND nodes MUST send only secured messages. Plain (non-SEND) | A SEND node MAY also have a configuration option that causes it to | |||
Neighbor Discovery nodes will obviously send only insecure messages. | disable the use of SEND completely, even for the messages it sends | |||
Per RFC 2461 [7], such nodes will ignore the unknown options and will | itself. The default for this configuration option SHOULD be that SEND | |||
treat secured messages in the same way as they treat insecure ones. | is used. Plain (non-SEND) Neighbor Discovery nodes will obviously | |||
Secured and insecure nodes share the same network resources, such as | send only insecure messages. Per RFC 2461 [7], such nodes will | |||
prefixes and address spaces. | ignore the unknown options and will treat secured messages in the | |||
same way as they treat insecure ones. Secured and insecure nodes | ||||
share the same network resources, such as prefixes and address | ||||
spaces. | ||||
In a mixed environment SEND nodes follow the protocols defined in RFC | SEND nodes configured to use SEND at least in their own messages | |||
2461 and RFC 2462 with the following exceptions: | behave in a mixed environment as is explained below. | |||
Protocols defined in RFC 2461 and RFC 2462 are followed with the | ||||
following exceptions: | ||||
o All solicitations sent by a SEND node MUST be secured. | o All solicitations sent by a SEND node MUST be secured. | |||
o Unsolicited advertisements sent by a SEND node MUST be secured. | o Unsolicited advertisements sent by a SEND node MUST be secured. | |||
o A SEND node MUST send a secured advertisement in response to a | o A SEND node MUST send a secured advertisement in response to a | |||
secured solicitation. Advertisements sent in response to an | secured solicitation. Advertisements sent in response to an | |||
insecure solicitation MUST be secured as well, but MUST NOT | insecure solicitation MUST be secured as well, but MUST NOT | |||
contain the Nonce option. | contain the Nonce option. | |||
End of changes. | ||||
This html diff was produced by rfcdiff v1.06, available from http://www.levkowetz.com/ietf/tools/rfcdiff/ |