# Securing IPv6 Neighbor Discovery Address Resolution with Voucher-Based Addressing
## 3 Voucher-Based Addressing
### Link Voucher Structure and Rules  
The Link Voucher is an optional attachment to NDP Router Advertisement and Redirect messages from a responsible Voucher Bearer. Link Vouchers dictate the parameters used by the local network's neighbors to generate and verify VBAs. By agreeing on these shared, distributed parameters during address generation, all neighbors can independently incorporate the same information to verify each other's addresses. Establishing a link-local baseline for distributing VBA generation parameters in the voucher enhances node privacy, because off-link nodes will not know all the address inputs. Figure 7 shows the binary structure of the Link Voucher NDP option and all its descriptive field names. Each field is completed, either statically or by the Voucher Bearer, as follows:  
Type  
The unique NDP Option Type identifier for LVs is 63. Length  
The total length of the LV from the type through its end, inclusive, in units of 8 octets. Expiration  
A 16-bit big-endian value storing the amount of time in seconds that the LV option should be considered legitimate when an update has not been received from the VB. This value is recommended to be set between 3600 (1 h) and 43,200 (12 h) s. Setting the value any lower or higher results in issues with over-rotations and under-rotations, respectively--two situations which can easily cause denial-of-service attacks when abused. Reserved  
Reserved for future use. This field is set to zero by senders and ignored by receivers. Timestamp  
A 64-bit value representing the local system time of the sender at the moment the LV option is constructed. VoucherID  
A pseudo-random 32-bit value which uniquely identifies a persistent LV instance. This must never change between distributions of the same unique voucher. Seed  
A 128-bit pseudo-random value used as an input in local VBA generation. This value must be the same for each voucher instance identified by a VoucherID, and it cannot be equal across different VoucherID values. Algorithm Type  
A Type-Length-Value field specifying exactly which type of key derivation function to use in VBA generation and its corresponding baseline difficulty. A variable-length field representing a unique public key value held by the VB issuing the LV option. It is used to sign the LV option and to authenticate any updates to future LV details. The exact mechanism of public key management is beyond the scope of this paper. More specifically, this field describes a Distinguished Encoding Rule (DER) structure containing an ECDSA [26] public key of type \"SubjectPublicKeyInfo\" according to Section 2 of RFC 5480 [27]. The public key structure is followed immediately by an adjacent DER-encoded ECDSA signature, derived using the private key corresponding to the PublicKey value. The ECDSA signature is computed over a series of sequential octets, constructed in the following order:  
1. The 16-bit Expiration value. 2. The 64-bit Timestamp value. 3. The 32-bit VoucherID value. 4. The 128-bit Seed value. 5. The variable-length contents of the Algorithm Type value, including its type and length values. The algorithm used in signature computation is \"ecdsa-with-SHA256\", as defined in Section 3.2 of RFC 5758 [28]. The signature must be a DER-encoded ASN.1 structure of the type \"ECDSA-Sig-Value\" (Section 2.2.3 of RFC 3279 [29]). The final expected data structure appears as the two adjacent DER structures depicted in Figure 8.  
Figure 7: The binary structure and fields of the Link Voucher NDP option. This is only considered valid by receivers when attached to Router Advertisement and Redirect messages. Neighbors receiving new vouchers will always trust them if they do not already have one stored for the given subnet ID. When neighbors first acquire and store an LV in their local cache or storage, they are required to validate this field and keep track of the current public key value used to sign the last known voucher.