base.txt   issue56.txt 
  Skipping to change at page 5, line 40:
The Neighbor Discovery function of the Neighbor Discovery Protocol The Neighbor Discovery function of the Neighbor Discovery Protocol
(NDP). NDP contains also other functions but ND. (NDP). NDP contains also other functions but ND.
Neighbor Unreachability Detection (NUD) Neighbor Unreachability Detection (NUD)
This mechanism is used for tracking the reachability of neighbors. This mechanism is used for tracking the reachability of neighbors.
Nonce Nonce
A random number generated by a node and used exactly once. In An unpredictable random or pseudorandom number generated by a node
SEND, nonces are used to ensure that a particular advertisement is and used exactly once. In SEND, nonces are used to ensure that a
linked to the solicitation that triggered it. particular advertisement is linked to the solicitation that
triggered it.
Router Authorization Certificate Router Authorization Certificate
An X.509v3 [10] certificate using the profile specified in Section An X.509v3 [10] certificate using the profile specified in Section
6.1.1. 6.1.1.
SEND node SEND node
An IPv6 node that implements this specification. An IPv6 node that implements this specification.
non-SEND node Non-SEND node
An IPv6 node that does not implement this specification but uses An IPv6 node that does not implement this specification but uses
only RFC 2461 and RFC 2462 mechanisms. only RFC 2461 and RFC 2462 mechanisms.
Router Discovery (RD) Router Discovery (RD)
Router Discovery allows the hosts to discover what routers exist Router Discovery allows the hosts to discover what routers exist
on the link, and what prefixes are available. Router Discovery is on the link, and what prefixes are available. Router Discovery is
a part of the Neighbor Discovery Protocol. a part of the Neighbor Discovery Protocol.
  Skipping to change at page 8, line 29:
The NDP messages follow the ICMPv6 message format. All NDP functions The NDP messages follow the ICMPv6 message format. All NDP functions
are realized using the Router Solicitation (RS), Router Advertisement are realized using the Router Solicitation (RS), Router Advertisement
(RA), Neighbor Solicitation (NS), Neighbor Advertisement (NA), and (RA), Neighbor Solicitation (NS), Neighbor Advertisement (NA), and
Redirect messages. An actual NDP message includes an NDP message Redirect messages. An actual NDP message includes an NDP message
header, consisting of an ICMPv6 header and ND message-specific data, header, consisting of an ICMPv6 header and ND message-specific data,
and zero or more NDP options. The NDP message options are formatted and zero or more NDP options. The NDP message options are formatted
in the Type-Length-Value format. in the Type-Length-Value format.
<------------NDP Message----------------> <------------NDP Message---------------->
*-------------------------------------------------------------* *-------------------------------------------------------------*
| IPv6 Header | ICMPv6 | ND message- | ND Message | | IPv6 Header | ICMPv6 | ND Message- | ND Message |
| Next Header = 58 | Header | specific | Options | | Next Header = 58 | Header | specific | Options |
| (ICMPv6) | | data | | | (ICMPv6) | | data | |
*-------------------------------------------------------------* *-------------------------------------------------------------*
<--NDP Message header--> <--NDP Message header-->
4. Secure Neighbor Discovery Overview 4. Secure Neighbor Discovery Overview
To secure the various functions, a set of new Neighbor Discovery To secure the various functions, a set of new Neighbor Discovery
options is introduced. They are used in to protect NDP messages. options is introduced. They are used in to protect NDP messages.
This specification introduces these options, an authorization This specification introduces these options, an authorization
  Skipping to change at page 9, line 27:
certify the authority of routers. A host and a router must have certify the authority of routers. A host and a router must have
at least one common trust anchor before the host can adopt the at least one common trust anchor before the host can adopt the
router as its default router. Delegation Chain Solicitation and router as its default router. Delegation Chain Solicitation and
Advertisement messages are used to discover a certificate chain to Advertisement messages are used to discover a certificate chain to
the trust anchor without requiring the actual Router Discovery the trust anchor without requiring the actual Router Discovery
messages to carry lengthy certificate chains. The receipt of a messages to carry lengthy certificate chains. The receipt of a
protected Router Advertisement message for which no certificate protected Router Advertisement message for which no certificate
chain is available triggers this process. chain is available triggers this process.
o Cryptographically Generated Addresses are used to assure that the o Cryptographically Generated Addresses are used to assure that the
sender of a Neighbor or Router Advertisement is the "owner" of the sender of a Neighbor Discovery message is the "owner" of the
claimed address. A public-private key pair needs to be generated claimed address. A public-private key pair needs to be generated
by all nodes before they can claim an address. A new NDP option, by all nodes before they can claim an address. A new NDP option,
the CGA option, is used to carry the public key and associated the CGA option, is used to carry the public key and associated
parameters. parameters.
This specification also allows one to use non-CGA addresses and to This specification also allows one to use non-CGA addresses and to
use certificates to authorize their use. However, the details of use certificates to authorize their use. However, the details of
such use have been left for future work. such use have been left for future work.
o A new NDP option, the Signature option, is used to protect all o A new NDP option, the Signature option, is used to protect all
  Skipping to change at page 12, line 24:
A random 128-bit number used in CGA generation. Its semantics are A random 128-bit number used in CGA generation. Its semantics are
defined in [12]. defined in [12].
Key Information Key Information
A variable length field containing the public key of the sender, A variable length field containing the public key of the sender,
represented as an ASN.1 type SubjectPublicKeyInfo [10], encoded as represented as an ASN.1 type SubjectPublicKeyInfo [10], encoded as
described in Section 4 of [12]. described in Section 4 of [12].
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 publicKey field in the Signature option are present, then the publicKey field in the CGA
former option MUST be the public key referred by the Key Hash option MUST be the public key referred by the Key Hash field in
field in the latter option. Packets received with two different the Signature option. Packets received with two different keys
keys MUST be silently discarded. Note that a future extension may MUST be silently discarded. Note that a future extension may
provide a mechanism which allows the owner of an address and the provide a mechanism which allows the owner of an address and the
signer to be different parties. signer to be different parties.
The length of the Key Information field is determined by the ASN.1 The length of the Key Information field is determined by the ASN.1
encoding. encoding.
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.
It begins after the ASN.1 encoding of the previous field has ends, It begins after the ASN.1 encoding of the previous field has
and continues to the end of the option, as specified by the Length ended, and continues to the end of the option, as specified by the
field. 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 in Router Solicitation messages not sent Advertisement messages, and in Router Solicitation messages not sent
with the unspecified source address. The CGA option MAY be present with the unspecified source address. The CGA option MAY be present
in other messages. in other messages.
A node sending a message using the CGA option MUST construct the A node sending a message using the CGA option MUST construct the
message as follows. message as follows.
  Skipping to change at page 14, line 7:
insecure messages. insecure messages.
Router Solicitation messages without the CGA option MUST be also Router Solicitation messages without the CGA option MUST be also
treated as insecure, unless the source address of the message is the treated as insecure, unless the source address of the message is the
unspecified address. unspecified address.
A message containing a CGA option MUST be checked as follows: A message containing a CGA option MUST be checked as follows:
If the interface has been configured to use CGA, the receiving If the interface has been configured to use CGA, the receiving
node MUST verify the source address of the packet using the node MUST verify the source address of the packet using the
algorithm described in Section 5 of [12]. The inputs for the algorithm described in Section 5 of [12]. The inputs to the
algorithm are the contents of the Collision Cnt, Modifier, and the algorithm are the claimed address, as defined in the previous
Key Information fields, the claimed address in the packet (as section, and the concatenation from left to right of the following
discussed in the previous section), and the minimum acceptable Sec data: the contents of the 8-octet Modifier field, the 8-octet
value. If the CGA verification is successful, the recipient subnet-prefix part of the claimed address, the content of the
proceeds with the cryptographically more time consuming check of 1-octet Collision Cnt field, and contents of the variable-length
the signature. Key Information Field.
Note that a receiver which does not support CGA or has not specified If the CGA verification is successful, the recipient proceeds with
the cryptographically more time consuming check of the signature.
Note that a receiver that does not support CGA or has not specified
its use for a given interface can still verify packets using trust its use for a given interface can still verify packets using trust
anchors, even if CGA had been used on a packet. In such a case, the anchors, even if CGA had been used on a packet. In such a case, the
CGA property of the address is simply left unverified. CGA property of the address is simply left unverified.
5.1.3 Configuration 5.1.3 Configuration
All nodes that support the verification of the CGA option MUST record All nodes that support the verification of the CGA option MUST record
the following configuration information: the following configuration information:
minbits minbits
  Skipping to change at page 14, line 37:
The minimum acceptable key length for the public keys used in the The minimum acceptable key length for the public keys used in the
generation of the CGA address. The default SHOULD be 1024 bits. generation of the CGA address. The default SHOULD be 1024 bits.
Implementations MAY also set an upper limit in order to limit the Implementations MAY also set an upper limit in order to limit the
amount of computation they need to perform when verifying packets amount of computation they need to perform when verifying packets
that use these security associations. The upper limit SHOULD be that use these security associations. The upper limit SHOULD be
at least 2048 bits. Any implementation should follow prudent at least 2048 bits. Any implementation should follow prudent
cryptographic practice in determining the appropriate key lengths. cryptographic practice in determining the appropriate key lengths.
minSec minSec
The minimum acceptable Sec value, if CGA verification is required The minimum acceptable Sec value, if CGA verification is required.
(see Section 2 in [12]). This parameter is intended to facilitate This parameter is intended to facilitate future extensions and
future extensions and experimental work. Currently, the minSec experimental work. Currently, the minSec value SHOULD always be
value SHOULD always be set to zero. set to zero.
See Section 2 in [12].
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, including the used Sec Any information required to construct CGAs, including the used Sec
and Modifier values, and the CGA address itself. and Modifier values, and the CGA address itself.
5.2 Signature Option 5.2 Signature Option
The Signature option allows public-key based signatures to be The Signature option allows public-key based signatures to be
attached to NDP messages. Both trust anchor authentication and CGAs attached to NDP messages. Configured trust anchors, CGAs, or both
can be used. The format of the Signature option is described in the can be used as the trusted root. The format of the Signature option
following: is described in the following:
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 | Pad Length | Reserved | | Type | Length | Pad Length | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
| Key Hash | | Key Hash |
| | | |
| | | |
  Skipping to change at page 16, line 14:
Reserved Reserved
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.
Key Hash Key Hash
A 128-bit field contains the most significant (leftmost) 128-bits A 128-bit field contains the most significant (leftmost) 128-bits
of a SHA1 hash of the public key used for the constructing the of a SHA-1 hash of the public key used for the constructing the
signature. The SHA1 is taken over the presentation used in the signature. The SHA-1 is taken over the presentation used in the
Key Information field in the CGA option. Its purpose is to Key Information field in the CGA option. Its purpose is to
associate the signature to a particular key known by the receiver. associate the signature to a particular key known by the receiver.
Such a key can be either stored in the certificate cache of the Such a key can be either stored in the certificate cache of the
receiver, or be received in the CGA option in the same message. receiver, or be received in the CGA option in the same message.
Digital Signature Digital Signature
A variable length field contains the signature constructed using A variable length field contains a PKCS#1 signature constructed
the sender's private key, over the the following sequence of using the sender's private key, over the the following sequence of
octets: octets:
1. The 128-bit CGA Type Tag [12] value for SEND, 0x086F CA5E 10B2 1. The 128-bit CGA Message Type tag [12] value for SEND, 0x086F
00C9 9C8C E001 6427 7C08 (generated randomly). CA5E 10B2 00C9 9C8C E001 6427 7C08. (The tag value has been
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 Signature option.
The signature is constructed using the RSA algorithm and MUST be The signature value is computed with the RSASSA-PKCS1-v1_5
encoded as private key encryption in PKCS#1 format [13]. The algorithm and SHA-1 hash as defined in [13].
signature value is computed with the RSASSA-PKCS1-v1_5 algorithm
and SHA-1 hash as defined in [13].
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
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).
This variable length field contains padding, as many bytes as is This variable length field contains padding, as many bytes as is
given by the Pad Length Field. given by the Pad Length field.
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 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 Signature option.
A node sending a message using the Signature option MUST construct A node sending a message using the Signature option MUST construct
the message as follows: the message as follows:
  Skipping to change at page 18, line 10:
A message containing a Signature option MUST be checked as follows: A message containing a 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
Signature option. Signature option.
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, or one known by either one learned from a preceding CGA option, or one known by
other means. 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. exceed the length of the 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 19, line 46:
The construction and verification of this option is computationally The construction and verification of this option is computationally
expensive. In the NDP context, however, the hosts typically have the expensive. In the NDP context, however, the hosts typically have the
need to perform only a few signature operations as they enter a link, need to perform only a few signature operations as they enter a link,
and a few operations as they find a new on-link peer with which to and a few operations as they find a new on-link peer with which to
communicate. communicate.
Routers are required to perform a larger number of operations, Routers are required to perform a larger number of operations,
particularly when the frequency of router advertisements is high due particularly when the frequency of router advertisements is high due
to mobility requirements. Still, the number of required signature to mobility requirements. Still, the number of required signature
operations is on the order of a few dozen per second, some of which operations is on the order of a few dozen per second, some of which
can be precomputed as discussed below. A large number of router can be precomputed as explained below. A large number of router
solicitations may cause higher demand for performing asymmetric solicitations may cause higher demand for performing asymmetric
operations, although RFC 2461 limits the rate at which responses to operations, although RFC 2461 limits the rate at which responses to
solicitations can be sent. solicitations can be sent.
Signatures can be precomputed for unsolicited (multicast) Neighbor Signatures can be precomputed for unsolicited (multicast) Neighbor
and Router Advertisements, if the timing of such future and Router Advertisements, if the timing of such future
advertisements is known. Typically, solicited advertisements are advertisements is known. Typically, solicited advertisements are
sent to the unicast address from which the solicitation was sent. sent to the unicast address from which the solicitation was sent.
Given that the IPv6 header is covered by the signature, it is not Given that the IPv6 header is covered by the signature, it is not
possible to precompute solicited-for advertisements. possible to precompute solicited-for advertisements.
  Skipping to change at page 38, line 12:
solicitation. This makes Denial-of-Service attacks against the solicitation. This makes Denial-of-Service attacks against the
mechanism harder (see Section 9.3). mechanism harder (see Section 9.3).
7. Addressing 7. Addressing
7.1 CGA Addresses 7.1 CGA Addresses
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 of the generation
algorithm.
By default, a SEND-enabled node SHOULD use only CGAs as its own By default, a SEND-enabled node SHOULD use only CGAs as its own
addresses. Other types of addresses MAY be used in testing, addresses. Other types of addresses MAY be used in testing,
diagnostics or other purposes. However, this document does not diagnostics or other purposes. However, this document does not
describe how to choose between different types of addresses for describe how to choose between different types of addresses for
different communications. A dynamic selection can be provided by an different communications. A dynamic selection can be provided by an
API, such as the one defined in [23]. API, such as the one defined in [23].
7.2 Redirect Addresses 7.2 Redirect Addresses
  Skipping to change at page 41, line 6:
When performing Duplicate Address Detection for the first When performing Duplicate Address Detection for the first
tentative address, accept both secured and insecure Neighbor tentative address, accept both secured and insecure Neighbor
Advertisements and Solicitations received as response to the Advertisements and Solicitations received as response to the
Neighbor Solicitations. When performing Duplicate Address Neighbor Solicitations. When performing Duplicate Address
Detection for the second or third tentative address, ignore Detection for the second or third tentative address, ignore
insecure Neighbor Advertisements and Solicitations. insecure Neighbor Advertisements and Solicitations.
o The node SHOULD have a configuration option that causes it to o The node SHOULD have a configuration option that causes it to
ignore insecure advertisements even when performing Duplicate ignore insecure advertisements even when performing Duplicate
Address Detection for the first tentative address. This Address Detection for the first tentative address. This
configuration option SHOULD be disabled by default. This is configuration option SHOULD be disabled by default. This is a
recovery mechanism, in case attacks against the first address recovery mechanism, in case attacks against the first address
become common. become common.
o The Neighbor Cache, Prefix List and Default Router list entries o The Neighbor Cache, Prefix List and Default Router list entries
MUST have a secured/insecure flag that indicates whether the MUST have a secured/insecure flag that indicates whether the
message that caused the creation or last update of the entry was message that caused the creation or last update of the entry was
secured or insecure. Received insecure messages MUST NOT cause secured or insecure. Received insecure messages MUST NOT cause
changes to existing secured entries in the Neighbor Cache, Prefix changes to existing secured entries in the Neighbor Cache, Prefix
List or Default Router List. Received secured messages cause an List or Default Router List. Received secured messages MUST cause
update of the matching entries and flagging of them as secured. an update of the matching entries and flagging of them as secured.
o The conceptual sending algorithm is modified so that an insecure o The conceptual sending algorithm is modified so that an insecure
router is selected only if there is no reachable SEND router for router is selected only if there is no reachable SEND router for
the prefix. That is, the algorithm for selecting a default router the prefix. That is, the algorithm for selecting a default router
favors reachable SEND routers over reachable non-SEND ones. favors reachable SEND routers over reachable non-SEND ones.
o A SEND node SHOULD have a configuration option that causes it to o A SEND node SHOULD have a configuration option that causes it to
ignore all insecure Neighbor Solicitation and Advertisement, ignore all insecure Neighbor Solicitation and Advertisement,
Router Solicitation and Advertisement, and Redirect messages. Router Solicitation and Advertisement, and Redirect messages.
This can be used to enforce SEND-only networks. This can be used to enforce SEND-only networks.
 End of changes. 

This html diff was produced by rfcdiff v0.42, available from http://www.levkowetz.com/ietf/tools/rfcdiff/