Internet DRAFT - draft-ev-6man-cga-light
draft-ev-6man-cga-light
IPv6 Maintenance (6man) Working Group E. Vasilenko
Internet Draft Huawei Technologies
Updates: None
Intended status: Standards Track September 22, 2022
Expires: March 2023
Cryptographically Generated Addresses (CGA) Light
draft-ev-6man-cga-light-01
Abstract
This document specifies a method for securely associating link-layer
addresses (MAC) to the IPv6 address by a cryptography method similar
to blockchain mining.
It permits guarantee security at the IPv6 layer to the same degree
as at the link layer (that node is dependent on anyway).
Status of this Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six
months and may be updated, replaced, or obsoleted by other documents
at any time. It is inappropriate to use Internet-Drafts as
reference material or to cite them other than as "work in progress."
This Internet-Draft will expire on March 2021.
Copyright Notice
Copyright (c) 2022 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
Expires March 22, 2023 [Page 1]
Internet-Draft ND-prefix-robustness September 2022
carefully, as they describe your rights and restrictions with
respect to this document. Code Components extracted from this
document must include Simplified BSD License text as described in
Section 4.e of the Trust Legal Provisions and are provided without
warranty as described in the Simplified BSD License.
Table of Contents
1. Terminology and pre-requisite..................................2
2. Introduction...................................................3
3. Strength Evaluation............................................5
4. IID generation technical details...............................6
5. IID validation technical details..............................10
6. ND extensions to exchange relevant information................11
7. Compatibility with other ND functionality.....................12
8. Security Considerations.......................................13
9. IANA Considerations...........................................14
10. References...................................................14
10.1. Normative References....................................14
10.2. Informative References..................................15
11. Acknowledgments..............................................16
1. Terminology and pre-requisite
Many terms are inherited from [CGA] and [SEND].
Information for IID - the collection of information needed to
distinguish IIDs generated for different purposes in
compliance with other standards; local information to the
node.
Digest of IID information - hash from "Information for IID"; public
information distributed by ND.
Chg parameter - a number between 0 and 15 (4 bits) that participates
in the calculation (A+B*Chg) of leading zero bits that should
be in a validated hash; "A" and "B" are constants fixed in
this specification
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in
Expires March 22, 2023 [Page 2]
Internet-Draft ND-prefix-robustness September 2022
BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here.
2. Introduction
There are many attack vectors to ND. [ND Trust Model] section 4.1
has the name "Non-router related threats" and could be summarized:
. A malicious node could answer DAD for any request of a
legitimate node (denial of service attack)
. A malicious node could poison the cache of another node
(especially the router) to intercept traffic directed to
another node (man in the middle attack); it is possible for
neighbor solicitation and neighbor advertisement in many
different cases.
The potential bunch of attacks based on the above is discussed in
detail in [ND MITM] section 3:
. Rewrite cache by unsolicited NA
. Be the first and suppress DAD
. Win the race just after DAD
The [SEND] plus [CGA] have proposed cryptographic solutions to the
problem. The [CGA] was positioned as dependent on [SEND] not a
separate solution, it was used primarily to avoid unnecessary
signature verifications (pre-check) for denial of service requests.
Unfortunately, [SEND] has a pre-request to organize PKI (public key
infrastructure) which is a well-known problem for enterprises. It is
assumed that trusted anchor management in the [SEND] solution was
the primary reason for low adoption.
The same problem is relevant to the [HBA] solution that needs
distribution and management for symmetric keys.
Effectively, it could be said that previous solutions have low
adoption for the same reason as IPSec: a challenge to organize key
management.
Blockchain's general success has shown that cryptography could be
valuable even in a situation when the trusted anchor is not
considered.
This document is based on the [CGA] with minor modifications needed
to satisfy the requirements of many other standards developed since
then. This document fulfills the [CGA] promise: "The protection
works without a certification authority or any security
infrastructure".
Expires March 22, 2023 [Page 3]
Internet-Draft ND-prefix-robustness September 2022
The [CGA] was associating the "public key" to "IID" as a backup to
public key management in the certification authority.
In contrast, this document proposes a "Link-layer" to "IPv6"
addresses associated with cryptography assurance.
Link-layer address to IP layer address mapping is the primary
function of [ND] protocol that is protected by this specification.
The link-layer address is cryptographically protected in the case of
wireless and very often protected in the case of wireline (802.1x).
It is possible to have the link with nodes supporting this
specification and legacy nodes that could not check the address
ownership. ND cache could be poisoned on unprotected nodes in a
mixed environment. The router is the key target for ND cache
poisoning. Hence, router support for this specification is
especially valuable.
A reminder that hash function is by design has no correlation
between output and input. Hence, only brute input trials are needed
to find output with any desired property (like some number of
leading zeroes).
The protection principles here are the same as for blockchain mining
or [CGA]: the legal node needs 2^(A+B*Chg+1-1) calculations on
average for IID mining but the malicious node would need
2^(A+B*Chg+60-1) calculations on average because in addition to the
same amount of leading zeroes it needs additionally the particular
combination of 60 trailing bits at the same time. "+1" in the above
calculations is because the hash is double for mining. "-1" in the
above calculation is because of the average (50% probability).
Hence, the intruder needs 2^59 times more hash calculations to find
a proper "Digest of IID information" that would match his link-layer
address (MAC).
[Hash in Sec] has a discussion that if many hash algorithms are
available on the link then intruder can attack the weakest. [Hash in
Sec] has proposed to encode hash type in the IID (borrowing security
level space), IANA "CGA SEC" registry has been created. Hence, [CGA]
security level ("Sec" parameter) has a different meaning from the
"Chg" parameter used in this specification.
Attack vector on hash type downgrade has been dealt with in this
specification by rewrite rules of ND cache where hash type is
considered.
Let's overview IID mining:
Expires March 22, 2023 [Page 4]
Internet-Draft ND-prefix-robustness September 2022
0. Choose the Chg parameter that points to how many leading zeroes
should be in the hash on step 3.
1. Initially, all relevant information for IID creation is
concatenated in the clear text block that would be named
"Information for IID". It is primarily the information needed
for:
a. Guaranty IID uniqueness (Time, Nonce, Collision count)
b. Guaranty stable but different IID for different link
attachments (interface name, network name)
2. Then "Information for IID" is hashed. The result is the "Digest
of IID information" that would be made public by [ND] protocol.
3. "Digest of IID information" is concatenated with Prefix and link-
layer (MAC) and then hashed again.
4. If the hash result of step 3 already has the needed number of
leading zeroes then 60 lowest bits are used for IID and
"Information for IID" should be saved in non-volatile memory.
Else (not enough leading zeroes) any bits (Nonce, Time) or fields
order in the "Information for IID" should be changed and this
algorithm loops to step 2.
The algorithm convergence may need 2^(A+B*Chg) calculations in an
average of the selected hash function, it has a good probability to
converge for 2^(A+B*Chg+1) hash calculations.
Any other node may do a simple check of validity for the
Prefix/IID/Link-Layer combination before rewriting ND cache:
0. Extract Chg from 4 high order IID bits.
1. Hash the "Digest of IID information" concatenated with Prefix and
link-layer address (MAC).
2. Check that the leading A+B*Chg bits of the hash are zeroes.
Discard ND update otherwise.
3. Check that the trailing 60 bits of the hash are equal to the IID
claimed by the node. Discard ND update otherwise.
4. Accept ND update.
3. Strength Evaluation
Bitcoin is a good reference for such a type of evaluation.
It uses a double hash like this specification, the type is SHA-256.
The different hash algorithms (SHA-512 is recommended below for this
specification) may improve security that would be ignored for this
estimation.
Bitcoin has started from the requirement for 32 bits leading zeroes
(for the genesis block) and has moved to 80 bits now.
It has surpassed 200EH/s (2*10^20 hashes per second) to crack 80
Expires March 22, 2023 [Page 5]
Internet-Draft ND-prefix-robustness September 2022
bits for 10 minutes on average.
The principal difference is that the Bitcoin block (to hash) is much
bigger (around 1MB+-50%) compare needed to CGA (around 280B). Hence,
Bitcoin's difficulty is around 2^12 bigger just because of the
bigger input.
Let's justify the "A" and "B" parameters for "A+B*Chg" leading
zeroes.
"A" leading zeroes should be easy to calculate even for the smallest
system. The smallest IoT system may spend as high as 200us for one
SHA-256 in software (hardware acceleration is available very often
then the performance is better). 1 minute is the assumption for the
time permitted to spend for mining then A=8 leading zeroes that are
needed for mining at a minimum.
The challenge for the intruder would be 2^67 hashes. The whole
Bitcoin infrastructure would crack it for 18us. It would be just a
problem to persuade mining owners to proceed.
Let "B" would be big enough for the whole Bitcoin infrastructure
would not crack IID in 1000 years. 1000 years is different from 10
min in 2^26. Additionally, our hashed block is 2^12 smaller. Hence,
it should be an 80+26+12=118 bits challenge. Then B=4.
The challenge for mining IID would be 2^68. Some GPUs are capable of
3GH/s then IID mining would be around 3000 years on one GPU which is
probably a good room for growth. It means that the Chg parameter at
the highest values (>12) would be seen as very rare for some time.
Summary: for respective A+B*Chg, A=8, B=4.
Chg is transmitted in every ND update as the high-order bits of IID.
It is the compromise between the possibility of mining on the
smallest node and maximum protection that is desired to achieve in
the future for a very important server.
In general, knowing the node capability for the number of hashes per
second (for chosen hash type) - it is easy to predict the average
time of mining for the specific level of protection (Chg parameter).
4. IID generation technical details
IID generation should be done separately per every link/network
according to [Different IIDs]. It would be needed to perform this
procedure after any new prefix (PIO) announcement or link-layer
address change.
The implementation MAY have the capability to get initial parameters
from the configuration when it is possible to do mining on a
Expires March 22, 2023 [Page 6]
Internet-Draft ND-prefix-robustness September 2022
different system. In that case, the target system SHOULD go through
the algorithm below anyway to check the consistency. It would cost 2
hash calculations to check that all data are consistent.
Decide about the needed level of protection for the address. Chg
parameter has 4 bits that permit 16 levels of protection, every next
level of protection would request "B" additional zero leading bits
in the second hash mining. All nodes SHOULD have a possibility of
administrator configuration for the level of IID protection (Chg
parameter) on every sub-interface. The default protection level for
the particular system is up to the implementer.
Like all other cases in cryptography, even well-protected IID (high
levels of Chg) MUST be refreshed after some time.
Pay attention that Chg increase by one would increase the strength
of IID by 2^B. It does not permit giving default configuration
recommendations because different hash algorithms by themselves may
have different strengths and different target systems may have a few
orders of magnitude different attractiveness for an intruder that
may bring principally different resources for mining.
Hence, the table of lifetimes for every level of Chg is
implementation-specific. It may be different for different hash
algorithms.
Reminder, that [IID significance] has deprecated special meaning for
"u" and "g" bits in IID. Hence, all 64 bits are available for our
specification. 4 bits were used for the protection level. Hence, 60
bits are left for random ID.
Step 1:
As discussed in [Temporary addresses] that "Information for IID"
should have a prefix, link-layer address, network name, time, DAD
counter, and some nonce to make it possible for temporary address
generation. Prefix and link-layer addresses would be added to the
second hash calculation. Hence, initially, the "Information for IID"
text should have:
. Nonce to easy change the "Information for IID" hash
. Time in any format, better to follow [Temporary addresses]
assumptions
. Network name (like SSID) for links that have such parameter
. DAD collision count that is regulated by other specifications
. Any other parameters are permitted because all parameters of
"Information for IID" have local meaning - they would be not
advertised by [ND]
Expires March 22, 2023 [Page 7]
Internet-Draft ND-prefix-robustness September 2022
The size of the parameters is up to the implementer. An especially
big block of "Information for IID" may affect the performance of IID
mining.
The order of information concatenation is not important. Moreover,
as it would be shown later the order may be changed during the
mining process.
Special warning about Nonce size. It is RECOMMENDED to choose it
longer than chosen A+B*Chg bits. Or else would be the same problem
as for Bitcoin: Nonce could be looped around, but mining is not
successful yet. In this case, like for Bitcoin, it is possible to
change parameters (for example, read new time) or reorder the above-
mentioned fields or introduce extraNonce as an additional field to
the "Information for IID". To avoid this additional algorithm
complexity, it is better to define Nonce as A+B*15 bits which should
be enough for the most secure IID mining. Anyway, it is a local
implementation matter.
It does not make sense to spend resources on additional mathematical
functions upon "Information for IID" because later it would be
hashed anyway for good randomization. The hash function is good
enough to satisfy [Temporary addresses] requirements.
Step 2:
Then "Information for IID" is hashed. The result is the "Digest of
IID information" that would be made public by [ND] protocol together
with the corresponding link-layer address and prefix intended for
IID.
The hash at this stage has local significance. Hence, the hash type
may be different from the hash type in Step 3 which should be
synchronized between nodes on the link. Simplicity should have both
hashes of the same type.
Step 3:
"Digest of IID information" is concatenated with Prefix and link-
layer address into one block that is hashed again.
It is MANDATORY to keep the order and size mentioned in this Step
parameters to have consistent hash results on all nodes of the link
(to check validity).
"Digest of IID information" on the input MUST have the same size as
the output of the chosen hash type for this step. If there is any
Expires March 22, 2023 [Page 8]
Internet-Draft ND-prefix-robustness September 2022
difference then Digest should be truncated or fitted with leading
zeroes. Most probably, both steps (step 2 and step 3) would use the
same hash type then the hash size would be equal automatically.
The prefix MUST be populated with trailing zeroes up to 128 bits to
support any prefix boundary in the future.
Link Layer address MUST be fitted leading zeroes to 64 bits to be
capable to accommodate any L2 technology.
Step 4:
Check for how many leading zeroes the second hash has (from the
previous step). Mining SHOULD be processed till A+B*Chg leading bits
are zeroed.
If successful then the resulted "Information for IID" and "Digest of
IID information" SHOULD be memorized in non-volatile memory.
Else "Information for IID" should be modified and the mining
algorithm should be looped to step 2.
"Information for IID" has many ways to be modified:
. Increment Nonce
. Reorder fields in the "Information for IID"
. Change fields (update time)
. Add field (like extraNonce)
It is potentially possible in Step 4 to memorize the "Information
for IID" for the best result seen. Then it is possible to break from
the mining with the correction of the Chg to the achieved number.
Hence, it is possible to loop in the mining cycle for a limited
time. It is NOT RECOMMENDED because it does not permit achieving the
desired level of security. But it may be needed for the high
protection levels (high Chg) or on systems with low hash processing
rates to avoid the system hanging in the mining for an unaccepted
period.
Step 5:
According to the [SLAAC] procedure, the new IID should be checked
for uniqueness by DAD. If DAD is positive then Collision Counter in
the "Information for IID" is incremented and the mining is looped to
step 2. It is up to other specifications to regulate how many
collisions are tolerable and what to do after it would be reached
(for example, ask a manual intervention).
Expires March 22, 2023 [Page 9]
Internet-Draft ND-prefix-robustness September 2022
5. IID validation technical details
The validation node SHOULD check the IP/Link-layer pair association
before any modification in the ND cache. And even after the validity
is checked, there is an additional procedure to check overwrite
rights (see at the end of this section).
Every record in the ND cache should have a flag "validated" and
additional fields used for validation (at least "Digest of IID
information" and hash type). Let's call legacy ND records and
updates as Not-Protected.
The validating node should receive an ND message with all needed
information (hash algorithm type, "Digest of IID information",
Prefix, link-layer address) by mechanisms specified in section 6.
Partial presence of needed parameters (for example "Digest of IID
information" is present but the hash type is absent) is treated as
an update request from a node not supporting this specification
(Not-Protected node).
The mining challenge parameter (Chg) should be extracted from 4
high-order bits of IID.
See details in section 4. Step 3 for the importance of the order and
size of all concatenated fields to get consistent results. Then hash
the "Digest of IID information" concatenated with Prefix and link-
layer address. Resulted hash should be checked for:
. leading A+B*Chg bits of the hash are zero
. trailing 60 bits of the hash are equal to the IID claimed by
the node
If any check is negative then the ND update MUST be dropped. The
update that claims to be protected but failed validation should not
be considered in principle.
If both checks are positive then proceed to the final check that is
especially needed in the mixed environment:
. The Not-Protected record SHOULD be overwritten by a Validated
ND update.
. The Validated record SHOULD be overwritten by a Validated ND
update that satisfies two checks: 1) equal or high permitted
hash type number (see section 6. about the possibility to
exclude some hash types from consideration) and 2) high Chg
parameter (more leading zeroes for protection).
Expires March 22, 2023 [Page 10]
Internet-Draft ND-prefix-robustness September 2022
. The Validated record MUST NOT be overwritten by 1) a Not-
Protected ND update or 2) by a Validated update with an equal
or lower protection level (the smaller or equal Chg parameter)
or 3) by a Validated update with lower permitted (see section
6. about the possibility to exclude some has types from
consideration) hash type number. Effectively, the last rule may
be presented in a simpler form: The Validated record MUST NOT
be overwritten in all other cases.
6. ND extensions to exchange relevant information
For the other node to check address ownership, it needs "Digest of
IID information" concatenated with Prefix and link-layer address.
Three parameters and the type of the hash function should be
advertised.
ND option 39 (Crypto-ID Parameters) would be reused for the hash
type signaling. All other parameters delivered by this option except
hash function type would be ignored for this specification. Crypto-
Type number 1 is pointing to SHA-512 which is RECOMMENDED as the
default. Crypto-type section of the [ICMPv6] registry currently has
types 0 or 2 that choose SHA-256. Crypto-type registry may be
extended as needed. Different nodes can have different crypto-types
on the link, hence, nodes (especially routers) may need to support
all active hash types on the link.
Nodes MUST have the capability to restrict the list of hash types
accepted on the link. It is needed to block failed or weak hash
algorithms in the future. The implementation MAY just treat such
updates as Not-Protected without checking the validity and following
rewrite rules for Not-Protected updates. It is RECOMMENDED that by
default node should accept in ND updates only the hash type that the
node itself is using for mining, all other hash types are better to
provision consciously.
It is the primary purpose of ND to deliver a link-layer address.
[ND] protocol is already asking to include link-layer address
options for all relevant cases:
. It should be included for Router Solicitation (except the IP
address is still unspecified)
. It may be omitted for Router Advertisement
. It must be included for multicast and should be included for
unicast of Neighbor Solicitation
. It must be included for multicast and should be included for
unicast of Neighbor Advertisement (except IP address is still
unspecified)
Expires March 22, 2023 [Page 11]
Internet-Draft ND-prefix-robustness September 2022
Hence, it may be assumed that the link-layer address would be
available at the time needed.
ND protocol is based on IP. Hence, the prefix could be extracted
from the source IP address.
The only parameter left is the "Digest of IID information".
It is defined in this specification:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Digest |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ of IID information (hash) ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The type number is TBD by IANA.
"Digest of IID information" and "Crypto-type" options SHOULD be sent
in all cases when link-layer information is sent, i.e. on all
occasions when [ND] uses option 1 (source link-layer address) or
option 2 (target link-layer address).
If the node does not support this specification or requested hash
type then it could not protect other node address ownership. Hence,
it is mandatory to support this specification and all needed hash
types at least on routers.
7. Compatibility with other ND functionality
This specification applies to all types of IPv6 addresses: LLA, ULA,
and GUA.
IID generation should be done separately per every link/network
according to [Different IIDs]. It is important for privacy. There is
a discussion in the industry that link-layer addresses should be
changed too to get better privacy. It is not a problem for the
proposed algorithm to have a separate MAC for the separate link.
Expires March 22, 2023 [Page 12]
Internet-Draft ND-prefix-robustness September 2022
[Temporary addresses] recommendations have been reused in the
proposed algorithm for compliance. It is not a problem to change the
link-layer address together with IID at the time of mining (to have
the link-layer address temporary too).
ND Proxy claims the ownership of link-layer addresses on different
media. Hence, it would be operational for its primary purpose - to
interconnect separate media. ND Proxy fully impersonalizes the
IP/Link-layer relationship for the different media. ND Proxy does
not need to do mining - it should reuse all parameters received from
the original node owning the IP/Link-layer association.
This specification does not influence the protocol exchange. Hence,
it is compatible with [ND] and its many modifications (Optimistic
DAD, NUD improvements, Gratuitous ND, Multihoming, etc).
The proposal may replace deep snooping and automatic filtering by
SAVI.
Many node redundancy schemes share link-layer addresses (MAC) then
it is not a problem to share "Information for IID" between such
nodes and keep IP to link-layer association protected.
The load balancer should have no problem distributing traffic
between unique IP/Link-layer pairs.
There is a special situation with Anycast if it is localized on one
link because the same IP could not have a different link-layer
address. Hence, this specification should be disabled on the routers
for this link.
Anycast distributed between links (a more typical situation) is not
a problem because the IP to the link-layer association has a local
significance for the link.
A duplicate link-layer address initiates flapping which is a typical
problem for switching infrastructure. It should be investigated
anyway. Switches typically have the functionality to automatically
suppress flapping link-layer addresses or ports.
8. Security Considerations
This document closes some ND vulnerabilities by cryptographic
methods popular in the blockchain. IP Address ownership is securely
associated with the link-layer address.
Expires March 22, 2023 [Page 13]
Internet-Draft ND-prefix-robustness September 2022
This specification does not prevent replay attacks. If the victim
node is absent on the link then the malicious node could change his
link-layer address (MAC) to the victims' then claim IP/Link-layer
association replaying previously saved ND messages. It may not
happen for link layers that are protected by themselves (typically
encryption implemented on any wireless). If successful, then the
intruder may impersonate the absent victim and ask for credentials
as a minimum. It has a low probability because the server is
typically always available but the client is not receiving incoming
connections. As it was stated in the abstract the level of
protection is equal to the level of link layer protection. If it is
possible to impersonate the address at the link-layer then IP layer
protection would not help, certification authority and end-to-end
traffic encryption are needed.
Replay protection needs different Nonce included into every message
then encrypt and decrepit every message that is a very expensive
proposition for [ND].
Canceling a trusted anchor would make all nodes equal that does not
permit the restriction of the router's functionality to particular
nodes. Hence, this specification could not deprecate [RA-Guard] and
[RA-Guard+].
This specification does not prevent denial of service attacks in
general. It is possible to generate many legal IP/Link-layer
associations (presumably with a low level of mining by Chg
parameter) and try to overwhelm other nodes on the link with
additional states.
9. IANA Considerations
The new option "Digest of IID information Option" is specified with
the type number TBD.
It is registered in the section "IPv6 Neighbor Discovery Option
Formats" of the [ICMPv6] registry.
10. References
10.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, DOI
10.17487/RFC2119, March 1997, <https://www.rfc-
editor.org/info/rfc2119>.
Expires March 22, 2023 [Page 14]
Internet-Draft ND-prefix-robustness September 2022
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>.
[ND] Narten, T., Nordmark, E., Simpson, W., and H. Soliman,
"Neighbor Discovery for IP version 6 (IPv6)", RFC 4861,
DOI 10.17487/RFC4861, September 2007, <https://www.rfc-
editor.org/info/rfc4861>.
[SLAAC] Thomson, S., Narten, T., and T. Jinmei, "IPv6 Stateless
Address Autoconfiguration", RFC 4862, DOI
10.17487/RFC4862, September 2007, <https://www.rfc-
editor.org/info/rfc4862>.
[IID significance] B. Carpenter, S. Jiang, D. Thaler, W. Liu,
"Significance of IPv6 Interface Identifiers", RFC 7136,
DOI 10.17487/RFC7136, February 2014, <https://www.rfc-
editor.org/info/rfc7136>.
[Different IIDs] F. Gont, A. Cooper, D. Thaler, W. Liu,
"Recommendation on Stable IPv6 Interface Identifiers", RFC
8064, DOI 10.17487/RFC8064, February 2017,
<https://www.rfc-editor.org/info/rfc8064>.
[Temporary addresses] F. Gont, S. Krishnan, T. Narten, R. Draves,
"Temporary Address Extensions for Stateless Address
Autoconfiguration in IPv6", RFC 8981, DOI
10.17487/RFC8981, February 2021, <https://www.rfc-
editor.org/info/rfc8981>.
[ND Trust Model] P. Nikander, J. Kempf, E. Nordmark, "IPv6 Neighbor
Discovery (ND) Trust Models and Threats", RFC 3756, DOI
10.17487/RFC3756, May 2004, <https://www.rfc-
editor.org/info/rfc3756>.
10.2. Informative References
[SEND] J. Arkko, J. Kempf, B. Zill, P. Nikander, "SEcure Neighbor
Discovery (SEND)", RFC 3971, DOI 10.17487/RFC3971, June
2004, <https://www.rfc-editor.org/info/rfc3971>.
[HBA] M. Bagnulo, "Hash-Based Addresses (HBA)", RFC 5535, DOI
10.17487/RFC5535, June 2009, <https://www.rfc-
editor.org/info/rfc5535>.
Expires March 22, 2023 [Page 15]
Internet-Draft ND-prefix-robustness September 2022
[CGA] T. Aura, "Cryptographically Generated Addresses (CGA)", RFC
3972, DOI 10.17487/RFC3972, March 2005, <https://www.rfc-
editor.org/info/rfc3972>.
[Hash in Sec] M. Bagnulo, J. Arkko, "Support for Multiple Hash
Algorithms in Cryptographically Generated Addresses
(CGAs)", RFC 4982, DOI 10.17487/RFC4982, July 2007,
<https://www.rfc-editor.org/info/rfc4982>.
[ICMPv6] IANA, "Internet Control Message Protocol version 6 (ICMPv6)
Parameters", <http://www.iana.org/assignments/icmpv6-
parameters/>.
[RA-Guard] E. Levy-Abegnoli, G. Van de Velde, C. Popoviciu, J.
Mohacsi, "IPv6 Router Advertisement Guard", RFC 6105, DOI
10.17487/RFC6105, February 2011, <https://www.rfc-
editor.org/info/rfc6105>.
[RA-Guard+] F. Gont, "Implementation Advice for IPv6 Router
Advertisement Guard (RA-Guard)", RFC 7113, DOI
10.17487/RFC7113, February 2014, <https://www.rfc-
editor.org/info/rfc7113>.
[ND MITM] E. Vasilenko, X. Xiao, " ND improvement to prevent Man-in-
the-middle attack", draft-vasilenko-6man-nd-mitm-
protection-00 (work in progress), September 2020.
11. Acknowledgments
Thanks to the 6man working group for problem discussion.
Authors' Addresses
Eduard Vasilenko
Huawei Technologies
17/4 Krylatskaya st, Moscow, Russia 121614
Email: vasilenko.eduard@huawei.com
Expires March 22, 2023 [Page 16]