draft-ietf-lisp-sec-17.txt | draft-ietf-lisp-sec-18.txt | |||
---|---|---|---|---|
Network Working Group F. Maino | Network Working Group F. Maino | |||
Internet-Draft V. Ermagan | Internet-Draft Cisco Systems | |||
Intended status: Standards Track Cisco Systems | Intended status: Standards Track V. Ermagan | |||
Expires: June 2, 2019 A. Cabellos | Expires: December 4, 2019 Google | |||
A. Cabellos | ||||
Universitat Politecnica de Catalunya | Universitat Politecnica de Catalunya | |||
D. Saucez | D. Saucez | |||
INRIA | INRIA | |||
November 29, 2018 | June 2, 2019 | |||
LISP-Security (LISP-SEC) | LISP-Security (LISP-SEC) | |||
draft-ietf-lisp-sec-17 | draft-ietf-lisp-sec-18 | |||
Abstract | Abstract | |||
This memo specifies LISP-SEC, a set of security mechanisms that | This memo specifies LISP-SEC, a set of security mechanisms that | |||
provides origin authentication, integrity and anti-replay protection | provides origin authentication, integrity and anti-replay protection | |||
to LISP's EID-to-RLOC mapping data conveyed via mapping lookup | to LISP's EID-to-RLOC mapping data conveyed via mapping lookup | |||
process. LISP-SEC also enables verification of authorization on EID- | process. LISP-SEC also enables verification of authorization on EID- | |||
prefix claims in Map-Reply messages. | prefix claims in Map-Reply messages. | |||
Requirements Language | Requirements Language | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
document are to be interpreted as described in [RFC2119]. | document are to be interpreted as described in BCP14 [RFC2119] | |||
[RFC8174] when, and only when, they appear in all capitals, as shown | ||||
here. | ||||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on June 2, 2019. | This Internet-Draft will expire on December 4, 2019. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2018 IETF Trust and the persons identified as the | Copyright (c) 2019 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2. Definition of Terms . . . . . . . . . . . . . . . . . . . . . 3 | 2. Definition of Terms . . . . . . . . . . . . . . . . . . . . . 4 | |||
3. LISP-SEC Threat Model . . . . . . . . . . . . . . . . . . . . 4 | 3. LISP-SEC Threat Model . . . . . . . . . . . . . . . . . . . . 4 | |||
4. Protocol Operations . . . . . . . . . . . . . . . . . . . . . 5 | 4. Protocol Operations . . . . . . . . . . . . . . . . . . . . . 5 | |||
5. LISP-SEC Control Messages Details . . . . . . . . . . . . . . 7 | 5. LISP-SEC Control Messages Details . . . . . . . . . . . . . . 7 | |||
5.1. Encapsulated Control Message LISP-SEC Extensions . . . . 7 | 5.1. Encapsulated Control Message LISP-SEC Extensions . . . . 7 | |||
5.2. Map-Reply LISP-SEC Extensions . . . . . . . . . . . . . . 9 | 5.2. Map-Reply LISP-SEC Extensions . . . . . . . . . . . . . . 10 | |||
5.3. Map-Register LISP-SEC Extentions . . . . . . . . . . . . 11 | 5.3. Map-Register LISP-SEC Extentions . . . . . . . . . . . . 11 | |||
5.4. ITR Processing . . . . . . . . . . . . . . . . . . . . . 11 | 5.4. ITR Processing: Generating a Map-Request . . . . . . . . 12 | |||
5.4.1. Map-Reply Record Validation . . . . . . . . . . . . . 13 | 5.4.1. PITR Processing . . . . . . . . . . . . . . . . . . . 12 | |||
5.4.2. PITR Processing . . . . . . . . . . . . . . . . . . . 14 | 5.5. Encrypting and Decrypting an OTK . . . . . . . . . . . . 12 | |||
5.5. Encrypting and Decrypting an OTK . . . . . . . . . . . . 14 | 5.5.1. Unencrypted OTK . . . . . . . . . . . . . . . . . . . 14 | |||
5.6. Map-Resolver Processing . . . . . . . . . . . . . . . . . 15 | 5.6. Map-Resolver Processing . . . . . . . . . . . . . . . . . 14 | |||
5.7. Map-Server Processing . . . . . . . . . . . . . . . . . . 15 | 5.7. Map-Server Processing . . . . . . . . . . . . . . . . . . 15 | |||
5.7.1. Map-Server Processing in Proxy mode . . . . . . . . . 16 | 5.7.1. Generating a LISP-SEC Protected Encapsulated Map- | |||
5.8. ETR Processing . . . . . . . . . . . . . . . . . . . . . 16 | Request . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
6. Security Considerations . . . . . . . . . . . . . . . . . . . 17 | 5.7.2. Generating a Proxy Map-Reply . . . . . . . . . . . . 18 | |||
6.1. Mapping System Security . . . . . . . . . . . . . . . . . 17 | 5.8. ETR Processing . . . . . . . . . . . . . . . . . . . . . 18 | |||
6.2. Random Number Generation . . . . . . . . . . . . . . . . 17 | 5.9. ITR Processing: Receiving a Map-Reply . . . . . . . . . . 18 | |||
6.3. Map-Server and ETR Colocation . . . . . . . . . . . . . . 17 | 5.9.1. Map-Reply Record Validation . . . . . . . . . . . . . 20 | |||
6.4. Deploying LISP-SEC . . . . . . . . . . . . . . . . . . . 18 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 21 | |||
6.5. Shared Keys Provisioning . . . . . . . . . . . . . . . . 18 | 6.1. Mapping System Security . . . . . . . . . . . . . . . . . 21 | |||
6.6. Replay Attacks . . . . . . . . . . . . . . . . . . . . . 18 | 6.2. Random Number Generation . . . . . . . . . . . . . . . . 21 | |||
6.7. Message Privacy . . . . . . . . . . . . . . . . . . . . . 19 | 6.3. Map-Server and ETR Colocation . . . . . . . . . . . . . . 21 | |||
6.4. Deploying LISP-SEC . . . . . . . . . . . . . . . . . . . 21 | ||||
6.5. Shared Keys Provisioning . . . . . . . . . . . . . . . . 22 | ||||
6.6. Replay Attacks . . . . . . . . . . . . . . . . . . . . . 22 | ||||
6.7. Message Privacy . . . . . . . . . . . . . . . . . . . . . 22 | ||||
6.8. Denial of Service and Distributed Denial of Service | 6.8. Denial of Service and Distributed Denial of Service | |||
Attacks . . . . . . . . . . . . . . . . . . . . . . . . . 19 | Attacks . . . . . . . . . . . . . . . . . . . . . . . . . 23 | |||
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19 | 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 23 | |||
7.1. ECM AD Type Registry . . . . . . . . . . . . . . . . . . 19 | 7.1. ECM AD Type Registry . . . . . . . . . . . . . . . . . . 23 | |||
7.2. Map-Reply AD Type Registry . . . . . . . . . . . . . . . 19 | 7.2. Map-Reply AD Type Registry . . . . . . . . . . . . . . . 23 | |||
7.3. HMAC Functions . . . . . . . . . . . . . . . . . . . . . 20 | 7.3. HMAC Functions . . . . . . . . . . . . . . . . . . . . . 24 | |||
7.4. Key Wrap Functions . . . . . . . . . . . . . . . . . . . 20 | 7.4. Key Wrap Functions . . . . . . . . . . . . . . . . . . . 24 | |||
7.5. Key Derivation Functions . . . . . . . . . . . . . . . . 21 | 7.5. Key Derivation Functions . . . . . . . . . . . . . . . . 25 | |||
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 21 | 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 25 | |||
9. Normative References . . . . . . . . . . . . . . . . . . . . 21 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 25 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 23 | 9.1. Normative References . . . . . . . . . . . . . . . . . . 25 | |||
9.2. Informative References . . . . . . . . . . . . . . . . . 27 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 27 | ||||
1. Introduction | 1. Introduction | |||
The Locator/ID Separation Protocol | The Locator/ID Separation Protocol | |||
[I-D.ietf-lisp-rfc6830bis],[I-D.ietf-lisp-rfc6833bis] is a network- | [I-D.ietf-lisp-rfc6830bis],[I-D.ietf-lisp-rfc6833bis] is a network- | |||
layer-based protocol that enables separation of IP addresses into two | layer-based protocol that enables separation of IP addresses into two | |||
new numbering spaces: Endpoint Identifiers (EIDs) and Routing | new numbering spaces: Endpoint Identifiers (EIDs) and Routing | |||
Locators (RLOCs). EID-to-RLOC mappings are stored in a database, the | Locators (RLOCs). EID-to-RLOC mappings are stored in a database, the | |||
LISP Mapping System, and made available via the Map-Request/Map-Reply | LISP Mapping System, and made available via the Map-Request/Map-Reply | |||
lookup process. If these EID-to-RLOC mappings, carried through Map- | lookup process. If these EID-to-RLOC mappings, carried through Map- | |||
skipping to change at page 3, line 36 ¶ | skipping to change at page 3, line 42 ¶ | |||
[RFC7835], that includes a detailed description of "overclaiming" | [RFC7835], that includes a detailed description of "overclaiming" | |||
attack. | attack. | |||
This memo specifies LISP-SEC, a set of security mechanisms that | This memo specifies LISP-SEC, a set of security mechanisms that | |||
provides origin authentication, integrity and anti-replay protection | provides origin authentication, integrity and anti-replay protection | |||
to LISP's EID-to-RLOC mapping data conveyed via mapping lookup | to LISP's EID-to-RLOC mapping data conveyed via mapping lookup | |||
process. LISP-SEC also enables verification of authorization on EID- | process. LISP-SEC also enables verification of authorization on EID- | |||
prefix claims in Map-Reply messages, ensuring that the sender of a | prefix claims in Map-Reply messages, ensuring that the sender of a | |||
Map-Reply that provides the location for a given EID-prefix is | Map-Reply that provides the location for a given EID-prefix is | |||
entitled to do so according to the EID prefix registered in the | entitled to do so according to the EID prefix registered in the | |||
associated Map-Server. Map-Register security, including the right | associated Map-Server. Map-Register/Map-Notify security, including | |||
for a LISP entity to register an EID-prefix or to claim presence at | the right for a LISP entity to register an EID-prefix or to claim | |||
an RLOC, is out of the scope of LISP-SEC. Additional security | presence at an RLOC, is out of the scope of LISP-SEC as those | |||
considerations are described in Section 6. | protocols are protected by the security mechanisms specified in | |||
[I-D.ietf-lisp-rfc6833bis]. However, LISP-SEC extends the Map- | ||||
Register message to allow an ITR to securely downgrade to non LISP- | ||||
SEC Map-Requests. Additional security considerations are described | ||||
in Section 6. | ||||
2. Definition of Terms | 2. Definition of Terms | |||
One-Time Key (OTK): An ephemeral randomly generated key that must | One-Time Key (OTK): An ephemeral randomly generated key that must | |||
be used for a single Map-Request/Map-Reply exchange. | be used for a single Map-Request/Map-Reply exchange. | |||
ITR One-Time Key (ITR-OTK): The One-Time Key generated at the ITR. | ITR One-Time Key (ITR-OTK): The One-Time Key generated at the | |||
Ingress Tunnel Router (ITR). | ||||
MS One-Time Key (MS-OTK): The One-Time Key generated at the Map- | MS One-Time Key (MS-OTK): The One-Time Key generated at the Map- | |||
Server. | Server. | |||
Authentication Data (AD): Metadata that is included either in a | Authentication Data (AD): Metadata that is included either in a | |||
LISP Encapsulated Control Message (ECM) header, as defined in | LISP Encapsulated Control Message (ECM) header, as defined in | |||
Section 6.1.8 of [I-D.ietf-lisp-rfc6833bis], or in a Map-Reply | [I-D.ietf-lisp-rfc6833bis], or in a Map-Reply message to support | |||
message to support confidentiality, integrity protection, and | confidentiality, integrity protection, and verification of EID- | |||
verification of EID-prefix authorization. | prefix authorization. | |||
OTK Authentication Data (OTK-AD): The portion of ECM | OTK Authentication Data (OTK-AD): The portion of ECM | |||
Authentication Data that contains a One-Time Key. | Authentication Data that contains a One-Time Key. | |||
EID Authentication Data (EID-AD): The portion of ECM and Map-Reply | EID Authentication Data (EID-AD): The portion of ECM and Map-Reply | |||
Authentication Data used for verification of EID-prefix | Authentication Data used for verification of EID-prefix | |||
authorization. | authorization. | |||
Packet Authentication Data (PKT-AD): The portion of Map-Reply | Packet Authentication Data (PKT-AD): The portion of Map-Reply | |||
Authentication Data used to protect the integrity of the Map-Reply | Authentication Data used to protect the integrity of the Map-Reply | |||
skipping to change at page 4, line 44 ¶ | skipping to change at page 5, line 8 ¶ | |||
message to their intended destination ETR as identified by the EID, | message to their intended destination ETR as identified by the EID, | |||
and (2) no man-in-the-middle (MITM) attack can be mounted within the | and (2) no man-in-the-middle (MITM) attack can be mounted within the | |||
LISP Mapping System. How the Mapping System is protected from MITM | LISP Mapping System. How the Mapping System is protected from MITM | |||
attacks depends from the particular Mapping Systems used, and is out | attacks depends from the particular Mapping Systems used, and is out | |||
of the scope of this memo. Furthermore, while LISP-SEC enables | of the scope of this memo. Furthermore, while LISP-SEC enables | |||
detection of EID prefix overclaiming attacks, it assumes that Map- | detection of EID prefix overclaiming attacks, it assumes that Map- | |||
Servers can verify the EID prefix authorization at time of | Servers can verify the EID prefix authorization at time of | |||
registration. | registration. | |||
According to the threat model described in [RFC7835] LISP-SEC assumes | According to the threat model described in [RFC7835] LISP-SEC assumes | |||
that any kind of attack, including MITM attacks, can be mounted in | that any kind of attack, including MITM attacks, can be mounted | |||
the access network, outside of the boundaries of the LISP mapping | outside of the boundaries of the LISP mapping system. An on-path | |||
system. An on-path attacker, outside of the LISP mapping system can, | attacker, outside of the LISP mapping system can, for example, hijack | |||
for example, hijack Map-Request and Map-Reply messages, spoofing the | Map-Request and Map-Reply messages, spoofing the identity of a LISP | |||
identity of a LISP node. Another example of on-path attack, called | node. Another example of on-path attack, called overclaiming attack, | |||
overclaiming attack, can be mounted by a malicious Egress Tunnel | can be mounted by a malicious Egress Tunnel Router (ETR), by | |||
Router (ETR), by overclaiming the EID-prefixes for which it is | overclaiming the EID-prefixes for which it is authoritative. In this | |||
authoritative. In this way the ETR can maliciously redirect traffic | way the ETR can maliciously redirect traffic directed to a large | |||
directed to a large number of hosts. | number of hosts. | |||
4. Protocol Operations | 4. Protocol Operations | |||
The goal of the security mechanisms defined in | The goal of the security mechanisms defined in | |||
[I-D.ietf-lisp-rfc6833bis] is to prevent unauthorized insertion of | [I-D.ietf-lisp-rfc6833bis] is to prevent unauthorized insertion of | |||
mapping data by providing origin authentication and integrity | mapping data by providing origin authentication and integrity | |||
protection for the Map-Registration, and by using the nonce to detect | protection for the Map-Register, and by using the nonce to detect | |||
unsolicited Map-Reply sent by off-path attackers. | unsolicited Map-Reply sent by off-path attackers. | |||
LISP-SEC builds on top of the security mechanisms defined in | LISP-SEC builds on top of the security mechanisms defined in | |||
[I-D.ietf-lisp-rfc6833bis] to address the threats described in | [I-D.ietf-lisp-rfc6833bis] to address the threats described in | |||
Section 3 by leveraging the trust relationships existing among the | Section 3 by leveraging the trust relationships existing among the | |||
LISP entities participating to the exchange of the Map-Request/Map- | LISP entities participating to the exchange of the Map-Request/Map- | |||
Reply messages. Those trust relationships are used to securely | Reply messages. Those trust relationships are used to securely | |||
distribute a One-Time Key (OTK) that provides origin authentication, | distribute, as described in Section 7.4, a per-message One-Time Key | |||
integrity and anti-replay protection to mapping data conveyed via the | (OTK) that provides origin authentication, integrity and anti-replay | |||
mapping lookup process, and that effectively prevent overclaiming | protection to mapping data conveyed via the mapping lookup process, | |||
attacks. The processing of security parameters during the Map- | and that effectively prevent overclaiming attacks. The processing of | |||
Request/Map-Reply exchange is as follows: | security parameters during the Map-Request/Map-Reply exchange is as | |||
follows: | ||||
o The ITR-OTK is generated and stored at the ITR, and securely | o Per each Map-Request message a new ITR-OTK is generated and stored | |||
transported to the Map-Server. | at the ITR, and securely transported to the Map-Server. | |||
o The Map-Server uses the ITR-OTK to compute a Keyed-Hashing for | o The Map-Server uses the ITR-OTK to compute a Keyed-Hashing for | |||
Message Authentication (HMAC) [RFC2104] that protects the | Message Authentication (HMAC) [RFC2104] that protects the | |||
integrity of the mapping data known to the Map-Server to prevent | integrity of the mapping data known to the Map-Server to prevent | |||
overclaiming attacks. The Map-Server also derives a new OTK, the | overclaiming attacks. The Map-Server also derives a new OTK, the | |||
MS-OTK, that is passed to the ETR, by applying a Key Derivation | MS-OTK, that is passed to the ETR, by applying a Key Derivation | |||
Function (KDF) to the ITR-OTK. | Function (KDF) (e.g. [RFC5869]) to the ITR-OTK. | |||
o The ETR uses the MS-OTK to compute an HMAC that protects the | o The ETR uses the MS-OTK to compute an HMAC that protects the | |||
integrity of the Map-Reply sent to the ITR. | integrity of the Map-Reply sent to the ITR. | |||
o Finally, the ITR uses the stored ITR-OTK to verify the integrity | o Finally, the ITR uses the stored ITR-OTK to verify the integrity | |||
of the mapping data provided by both the Map-Server and the ETR, | of the mapping data provided by both the Map-Server and the ETR, | |||
and to verify that no overclaiming attacks were mounted along the | and to verify that no overclaiming attacks were mounted along the | |||
path between the Map-Server and the ITR. | path between the Map-Server and the ITR. | |||
Section 5 provides the detailed description of the LISP-SEC control | Section 5 provides the detailed description of the LISP-SEC control | |||
messages and their processing, while the rest of this section | messages and their processing, while the rest of this section | |||
describes the flow of protocol operations at each entity involved in | describes the flow of LISP protocol operations at each entity | |||
the Map-Request/Map-Reply exchange: | involved in the Map-Request/Map-Reply exchange: | |||
o The ITR, upon needing to transmit a Map-Request message, generates | 1. The ITR, upon needing to transmit a Map-Request message, | |||
and stores an OTK (ITR-OTK). This ITR-OTK is included into the | generates and stores an OTK (ITR-OTK). This ITR-OTK is included | |||
Encapsulated Control Message (ECM) that contains the Map-Request | into the Encapsulated Control Message (ECM) that contains the | |||
sent to the Map-Resolver. To provide confidentiality to the ITR- | Map-Request sent to the Map-Resolver. ITR-OTK confidentiality | |||
OTK over the path between the ITR and its Map-Resolver, the ITR- | and integrity protection MUST be provided in the path between the | |||
OTK SHOULD be encrypted using a preconfigured key shared between | ITR and the Map-Resolver. This can be achieved either by | |||
the ITR and the Map-Resolver, similar to the key shared between | encrypting the ITR-OTK with the pre-shared secret known to the | |||
the ETR and the Map-Server in order to secure ETR registration | ITR and the Map-Resolver (as specified in Section 5.5), or by | |||
[I-D.ietf-lisp-rfc6833bis]. | enabling DTLS between the ITR and the Map-Resolver. | |||
o The Map-Resolver decapsulates the ECM message, decrypts the ITR- | 2. The Map-Resolver decapsulates the ECM message, decrypts the ITR- | |||
OTK, if needed, and forwards through the Mapping System the | OTK, if needed, and forwards through the Mapping System the | |||
received Map-Request and the ITR-OTK, as part of a new ECM | received Map-Request and the ITR-OTK, as part of a new ECM | |||
message. As described in Section 5.6, the LISP Mapping System | message. The LISP Mapping System delivers the ECM to the | |||
delivers the ECM to the appropriate Map-Server, as identified by | appropriate Map-Server, as identified by the EID destination | |||
the EID destination address of the Map-Request. | address of the Map-Request. As mentioned in Section 3, how the | |||
Mapping System is protected from MITM attacks depends from the | ||||
particular Mapping Systems used, and is out of the scope of this | ||||
memo. | ||||
o The Map-Server is configured with the location mappings and policy | 3. The Map-Server is configured with the location mappings and | |||
information for the ETR responsible for the EID destination | policy information for the ETR responsible for the EID | |||
address. Using this preconfigured information, the Map-Server, | destination address. Using this preconfigured information, the | |||
after the decapsulation of the ECM message, finds the longest | Map-Server, after the decapsulation of the ECM message, finds the | |||
match EID-prefix that covers the requested EID in the received | longest match EID-prefix that covers the requested EID in the | |||
Map-Request. The Map-Server adds this EID-prefix, together with | received Map-Request. The Map-Server adds this EID-prefix, | |||
an HMAC computed using the ITR-OTK, to a new Encapsulated Control | together with an HMAC computed using the ITR-OTK, to a new | |||
Message that contains the received Map-Request. | Encapsulated Control Message that contains the received Map- | |||
Request. | ||||
o The Map-Server derives a new OTK, the MS-OTK, by applying a Key | 4. The Map-Server derives a new OTK, the MS-OTK, by applying a Key | |||
Derivation Function (KDF) to the ITR-OTK. This MS-OTK is included | Derivation Function (KDF) to the ITR-OTK. This MS-OTK is | |||
in the Encapsulated Control Message that the Map-Server uses to | included in the Encapsulated Control Message that the Map-Server | |||
forward the Map-Request to the ETR. To provide MS-OTK | uses to forward the Map-Request to the ETR. MS-OTK | |||
confidentiality over the path between the Map-Server and the ETR, | confidentiality and integrity protection MUST be provided in the | |||
the MS-OTK SHOULD be encrypted using the key shared between the | path between the Map-Server and the ETR. This can be achieved | |||
ETR and the Map-Server in order to secure ETR registration | either by encrypting the MS-OTK with the pre-shared secret known | |||
[I-D.ietf-lisp-rfc6833bis]. | to the Map-Server and the ETR (as specified in Section 5.5), or | |||
by enabling DTLS between the Map-Server and the ETR. | ||||
o If the Map-Server is acting in proxy mode, as specified in | 5. If the Map-Server is acting in proxy mode, as specified in | |||
[I-D.ietf-lisp-rfc6833bis], the ETR is not involved in the | [I-D.ietf-lisp-rfc6833bis], the ETR is not involved in the | |||
generation of the Map-Reply. In this case the Map-Server | generation of the Map-Reply and steps 6 and 7 are skipped. In | |||
generates the Map-Reply on behalf of the ETR as described below. | this case the Map-Server generates the Map-Reply on behalf of the | |||
ETR as described in Section 5.7.2. | ||||
o The ETR, upon receiving the ECM encapsulated Map-Request from the | 6. The ETR, upon receiving the ECM encapsulated Map-Request from the | |||
Map-Server, decrypts the MS-OTK, if needed, and originates a | Map-Server, decrypts the MS-OTK, if needed, and originates a Map- | |||
standard Map-Reply that contains the EID-to-RLOC mapping | Reply that contains the EID-to-RLOC mapping information as | |||
information as specified in [I-D.ietf-lisp-rfc6833bis]. | specified in [I-D.ietf-lisp-rfc6833bis]. | |||
o The ETR computes an HMAC over this standard Map-Reply, keyed with | 7. The ETR computes an HMAC over the Map-Reply, keyed with MS-OTK to | |||
MS-OTK to protect the integrity of the whole Map-Reply. The ETR | protect the integrity of the whole Map-Reply. The ETR also | |||
also copies the EID-prefix authorization data that the Map-Server | copies the EID-prefix authorization data that the Map-Server | |||
included in the ECM encapsulated Map-Request into the Map-Reply | included in the ECM encapsulated Map-Request into the Map-Reply | |||
message. The ETR then sends this complete Map-Reply message to | message. The ETR then sends the complete Map-Reply message to | |||
the requesting ITR. | the requesting ITR. | |||
o The ITR, upon receiving the Map-Reply, uses the locally stored | 8. The ITR, upon receiving the Map-Reply, uses the locally stored | |||
ITR-OTK to verify the integrity of the EID-prefix authorization | ITR-OTK to verify the integrity of the EID-prefix authorization | |||
data included in the Map-Reply by the Map-Server. The ITR | data included in the Map-Reply by the Map-Server. The ITR | |||
computes the MS-OTK by applying the same KDF used by the Map- | computes the MS-OTK by applying the same KDF (as specified in the | |||
Server, and verifies the integrity of the Map-Reply. If the | ECM encapsulated Map-Reply) used by the Map-Server, and verifies | |||
integrity checks fail, the Map-Reply MUST be discarded. Also, if | the integrity of the Map-Reply. If the integrity checks fail, | |||
the EID-prefixes claimed by the ETR in the Map-Reply are not equal | the Map-Reply MUST be discarded. Also, if the EID-prefixes | |||
or more specific than the EID-prefix authorization data inserted | claimed by the ETR in the Map-Reply are not equal or more | |||
by the Map-Server, the ITR MUST discard the Map-Reply. | specific than the EID-prefix authorization data inserted by the | |||
Map-Server, the ITR MUST discard the Map-Reply. | ||||
5. LISP-SEC Control Messages Details | 5. LISP-SEC Control Messages Details | |||
LISP-SEC metadata associated with a Map-Request is transported within | LISP-SEC metadata associated with a Map-Request is transported within | |||
the Encapsulated Control Message that contains the Map-Request. | the Encapsulated Control Message that contains the Map-Request. | |||
LISP-SEC metadata associated with the Map-Reply is transported within | LISP-SEC metadata associated with the Map-Reply is transported within | |||
the Map-Reply itself. | the Map-Reply itself. | |||
5.1. Encapsulated Control Message LISP-SEC Extensions | 5.1. Encapsulated Control Message LISP-SEC Extensions | |||
LISP-SEC uses the ECM (Encapsulated Control Message) defined in | LISP-SEC uses the ECM defined in [I-D.ietf-lisp-rfc6833bis] with S | |||
[I-D.ietf-lisp-rfc6833bis] with Type set to 8, and S bit set to 1 to | bit set to 1 to indicate that the LISP header includes Authentication | |||
indicate that the LISP header includes Authentication Data (AD). The | Data (AD). The format of the LISP-SEC ECM Authentication Data is | |||
format of the LISP-SEC ECM Authentication Data is defined in the | defined in Figure 1 . OTK-AD stands for One-Time Key Authentication | |||
following figure. OTK-AD stands for One-Time Key Authentication Data | Data and EID-AD stands for EID Authentication Data. | |||
and EID-AD stands for EID Authentication Data. | ||||
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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ECM AD Type |V| Reserved | Requested HMAC ID | | | ECM AD Type |V| Unassigned | Requested HMAC ID | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\ | |||
| OTK Length | OTK Encryption ID | | | | OTK Length | Key ID | OTK Wrap. ID | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | |||
| One-Time-Key Preamble ... | | | | One-Time-Key Preamble ... | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+OTK-AD | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+OTK-AD | |||
| ... One-Time-Key Preamble | | | | ... One-Time-Key Preamble | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | |||
~ One-Time Key (128 bits) ~/ | ~ One-Time Key (128 bits) ~/ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ <---+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ <---+ | |||
| EID-AD Length | KDF ID | | | | EID-AD Length | KDF ID | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | |||
| Record Count | Reserved | EID HMAC ID |EID-AD | | Record Count |E| Unassigned | EID HMAC ID |EID-AD | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\ | | |||
| Reserved | EID mask-len | EID-AFI | | | | | Unassigned | EID mask-len | EID-AFI | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Rec | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Rec | | |||
~ EID-prefix ... ~ | | | ~ EID-prefix ... ~ | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+/ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+/ | | |||
~ EID HMAC ~ | | ~ EID HMAC ~ | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ <---+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ <---+ | |||
LISP-SEC ECM Authentication Data | Figure 1: LISP-SEC ECM Authentication Data | |||
ECM AD Type: 1 (LISP-SEC Authentication Data). See Section 7. | ECM AD Type: 1 (LISP-SEC Authentication Data). See Section 7. | |||
V: Key Version bit. This bit is toggled when the sender switches | V: Key Version bit. This bit is toggled when the sender switches | |||
to a new OTK wrapping key | to a new OTK wrapping key | |||
Reserved: Set to 0 on transmission and ignored on receipt. | Unassigned: Set to 0 on transmission and ignored on receipt. | |||
Requested HMAC ID: The HMAC algorithm requested by the ITR. See | Requested HMAC ID: The HMAC algorithm, that will be used to | |||
Section 5.4 for details. | protect the mappings, requested by the ITR. See Section 5.4 for | |||
details, and Section 7.3 for HMAC IDs that MUST be supported. | ||||
OTK Length: The length (in bytes) of the OTK Authentication Data | OTK Length: The length (in bytes) of the OTK Authentication Data | |||
(OTK-AD), that contains the OTK Preamble and the OTK. | (OTK-AD), that contains the OTK Preamble and the OTK. | |||
OTK Encryption ID: The identifier of the key wrapping algorithm | Key ID: The identifier of the pre-shared secret shared by an ITR | |||
used to encrypt the One-Time-Key. When a 128-bit OTK is sent | and the Map-Resolver, and by the Map-Server and an ETR. Per- | |||
unencrypted by the Map-Resolver, the OTK Encryption ID is set to | message keys are derived from the pre-shared secret to encrypt, | |||
NULL_KEY_WRAP_128. See Section 5.5 for more details. | authenticate the origin and protect the integrity of the OTK. The | |||
Key ID allows to rotate between multiple pre-shared secrets in a | ||||
non disruptive way. | ||||
OTK Wrapping ID: The identifier of the key derivation function and | ||||
of the key wrapping algorithm used to encrypt the One-Time-Key. | ||||
See Section 5.5 for more details, and Section 7.4 for Wrapping IDs | ||||
that MUST be supported. | ||||
One-Time-Key Preamble: set to 0 if the OTK is not encrypted. When | One-Time-Key Preamble: set to 0 if the OTK is not encrypted. When | |||
the OTK is encrypted, this field MAY carry additional metadata | the OTK is encrypted, this field MAY carry additional metadata | |||
resulting from the key wrapping operation. When a 128-bit OTK is | resulting from the key wrapping operation. When a 128-bit OTK is | |||
sent unencrypted by Map-Resolver, the OTK Preamble is set to | sent unencrypted by Map-Resolver, the OTK Preamble is set to | |||
0x0000000000000000 (64 bits). See Section 5.5 for details. | 0x0000000000000000 (64 bits). See Section 5.5.1 for details. | |||
One-Time-Key: the OTK encrypted (or not) as specified by OTK | One-Time-Key: the OTK wrapped as specified by OTK Wrapping ID. | |||
Encryption ID. See Section 5.5 for details. | See Section 5.5 for details. | |||
EID-AD Length: length (in bytes) of the EID Authentication Data | EID-AD Length: length (in bytes) of the EID Authentication Data | |||
(EID-AD). The ITR MUST set EID-AD Length to 4 bytes, as it only | (EID-AD). The ITR MUST set EID-AD Length to 4 bytes, as it only | |||
fills the KDF ID field, and all the remaining fields part of the | fills the KDF ID field, and all the remaining fields part of the | |||
EID-AD are not present. An EID-AD MAY contain multiple EID- | EID-AD are not present. An EID-AD MAY contain multiple EID- | |||
records. Each EID-record is 4-byte long plus the length of the | records. Each EID-record is 4-byte long plus the length of the | |||
AFI-encoded EID-prefix. | AFI-encoded EID-prefix. | |||
KDF ID: Identifier of the Key Derivation Function used to derive | KDF ID: Identifier of the Key Derivation Function used to derive | |||
the MS-OTK. The ITR MAY use this field to indicate the | the MS-OTK. The ITR MAY use this field to indicate the | |||
recommended KDF algorithm, according to local policy. The Map- | recommended KDF algorithm, according to local policy. The Map- | |||
Server can overwrite the KDF ID if it does not support the KDF ID | Server can overwrite the KDF ID if it does not support the KDF ID | |||
recommended by the ITR. See Section 5.4 for more details. | recommended by the ITR. See Section 5.4 for more details, and | |||
Section 7.5 for KDF IDs that MUST be supported. | ||||
Record Count: The number of records in this Map-Request message. | Record Count: The number of records in this Map-Request message. | |||
A record is comprised of the portion of the packet that is labeled | A record is comprised of the portion of the packet that is labeled | |||
'Rec' above and occurs the number of times equal to Record Count. | 'Rec' above and occurs the number of times equal to Record Count. | |||
Reserved: Set to 0 on transmission and ignored on receipt. | E: ETR-Cant-Sign bit. This bit is set to 1 to signal to the ITR | |||
that at least one of the ETRs authoritative for the EID prefixes | ||||
of this Map-Reply has not enabled LISP-SEC. This allows the ITR | ||||
to securely downgrade to non LISP-SEC requests, as specified in | ||||
Section 5.7, if so desired. | ||||
Unassigned: Set to 0 on transmission and ignored on receipt. | ||||
EID HMAC ID: Identifier of the HMAC algorithm used to protect the | EID HMAC ID: Identifier of the HMAC algorithm used to protect the | |||
integrity of the EID-AD. This field is filled by Map-Server that | integrity of the EID-AD. This field is filled by Map-Server that | |||
computed the EID-prefix HMAC. See Section 5.4 for more details. | computed the EID-prefix HMAC. See Section 5.4 for more details, | |||
and Section 7.3 for HMAC IDs that MUST be supported. | ||||
EID mask-len: Mask length for EID-prefix. | EID mask-len: Mask length for EID-prefix. | |||
EID-AFI: Address family of EID-prefix according to [RFC5226] | EID-AFI: Address family of EID-prefix according to [RFC5226] | |||
EID-prefix: The Map-Server uses this field to specify the EID- | EID-prefix: The Map-Server uses this field to specify the EID- | |||
prefix that the destination ETR is authoritative for, and is the | prefix that the destination ETR is authoritative for, and is the | |||
longest match for the requested EID. | longest match for the requested EID. | |||
EID HMAC: HMAC of the EID-AD computed and inserted by Map-Server. | EID HMAC: HMAC of the EID-AD computed and inserted by Map-Server. | |||
Before computing the HMAC operation the EID HMAC field MUST be set | Before computing the HMAC operation the EID HMAC field MUST be set | |||
to 0. The HMAC covers the entire EID-AD. | to 0. The HMAC MUST cover the entire EID-AD. | |||
5.2. Map-Reply LISP-SEC Extensions | 5.2. Map-Reply LISP-SEC Extensions | |||
LISP-SEC uses the Map-Reply defined in [I-D.ietf-lisp-rfc6833bis], | LISP-SEC uses the Map-Reply defined in [I-D.ietf-lisp-rfc6833bis], | |||
with Type set to 2, and S bit set to 1 to indicate that the Map-Reply | with Type set to 2, and S-bit set to 1 to indicate that the Map-Reply | |||
message includes Authentication Data (AD). The format of the LISP- | message includes Authentication Data (AD). The format of the LISP- | |||
SEC Map-Reply Authentication Data is defined in the following figure. | SEC Map-Reply Authentication Data is defined in Figure 2. PKT-AD is | |||
the Packet Authentication Data that covers the Map-Reply payload. | ||||
PKT-AD is the Packet Authentication Data that covers the Map-Reply | ||||
payload. | ||||
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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| MR AD Type | Reserved | | | MR AD Type | Unassigned | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ <---+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ <---+ | |||
| EID-AD Length | KDF ID | | | | EID-AD Length | KDF ID | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | |||
| Record Count | Reserved | EID HMAC ID |EID-AD | | Record Count | Unassigned | EID HMAC ID |EID-AD | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\ | | |||
| Reserved | EID mask-len | EID-AFI | | | | | Unassigned | EID mask-len | EID-AFI | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Rec | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Rec | | |||
~ EID-prefix ... ~ | | | ~ EID-prefix ... ~ | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+/ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+/ | | |||
~ EID HMAC ~ | | ~ EID HMAC ~ | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ <---+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ <---+ | |||
| PKT-AD Length | PKT HMAC ID |\ | | PKT-AD Length | PKT HMAC ID |\ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | |||
~ PKT HMAC ~PKT-AD | ~ PKT HMAC ~PKT-AD | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+/ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+/ | |||
LISP-SEC Map-Reply Authentication Data | Figure 2: LISP-SEC Map-Reply Authentication Data | |||
MR AD Type: 1 (LISP-SEC Authentication Data). See Section 7. | MR AD Type: 1 (LISP-SEC Authentication Data). See Section 7. | |||
EID-AD Length: length (in bytes) of the EID-AD. An EID-AD MAY | EID-AD Length: length (in bytes) of the EID-AD. An EID-AD MAY | |||
contain multiple EID-records. Each EID-record is 4-byte long plus | contain multiple EID-records. Each EID-record is 4-byte long plus | |||
the length of the AFI-encoded EID-prefix. | the length of the AFI-encoded EID-prefix. | |||
KDF ID: Identifier of the Key Derivation Function used to derive | KDF ID: Identifier of the Key Derivation Function used to derive | |||
MS-OTK. See Section 5.7 for more details. | MS-OTK. See Section 5.7 for more details, and Section 7.5 for KDF | |||
IDs that MUST be supported. | ||||
Record Count: The number of records in this Map-Reply message. A | Record Count: The number of records in this Map-Reply message. A | |||
record is comprised of the portion of the packet that is labeled | record is comprised of the portion of the packet that is labeled | |||
'Rec' above and occurs the number of times equal to Record Count. | 'Rec' above and occurs the number of times equal to Record Count. | |||
Reserved: Set to 0 on transmission and ignored on receipt. | Unassigned: Set to 0 on transmission and ignored on receipt. | |||
EID HMAC ID: Identifier of the HMAC algorithm used to protect the | EID HMAC ID: Identifier of the HMAC algorithm used to protect the | |||
integrity of the EID-AD. See Section 5.7 for more details. | integrity of the EID-AD. See Section 5.7 for more details, and | |||
Section 7.3 for HMAC IDs that MUST be supported. | ||||
EID mask-len: Mask length for EID-prefix. | EID mask-len: Mask length for EID-prefix. | |||
EID-AFI: Address family of EID-prefix according to [RFC5226]. | EID-AFI: Address family of EID-prefix according to [RFC8060]. | |||
EID-prefix: This field contains an EID-prefix that the destination | EID-prefix: This field contains an EID-prefix that the destination | |||
ETR is authoritative for, and is the longest match for the | ETR is authoritative for, and is the longest match for the | |||
requested EID. | requested EID. | |||
EID HMAC: HMAC of the EID-AD, as computed by the Map-Server. | EID HMAC: HMAC of the EID-AD, as computed by the Map-Server. | |||
Before computing the HMAC operation the EID HMAC field MUST be set | Before computing the HMAC operation the EID HMAC field MUST be set | |||
to 0. The HMAC covers the entire EID-AD. | to 0. The HMAC covers the entire EID-AD. | |||
PKT-AD Length: length (in bytes) of the Packet Authentication Data | PKT-AD Length: length (in bytes) of the Packet Authentication Data | |||
(PKT-AD). | (PKT-AD). | |||
PKT HMAC ID: Identifier of the HMAC algorithm used to protect the | PKT HMAC ID: Identifier of the HMAC algorithm used to protect the | |||
integrity of the Map-reply. | integrity of the Map-Reply. See Section 7.3 for HMAC IDs that | |||
MUST be supported. | ||||
PKT HMAC: HMAC of the whole Map-Reply packet, including the LISP- | PKT HMAC: HMAC of the whole Map-Reply packet, including the LISP- | |||
SEC Authentication Data. The scope of the authentication goes | SEC Authentication Data. The scope of the authentication goes | |||
from the Map-Reply Type field to the PKT HMAC field included. | from the Map-Reply Type field to the PKT HMAC field included. | |||
Before computing the HMAC operation the PKT HMAC field MUST be set | Before computing the HMAC operation the PKT HMAC field MUST be set | |||
to 0. See Section 5.8 for more details. | to 0. See Section 5.8 for more details. | |||
5.3. Map-Register LISP-SEC Extentions | 5.3. Map-Register LISP-SEC Extentions | |||
This memo is allocating one of the bits marked as Reserved in the | This memo is allocating one of the bits marked as Unassigned in the | |||
Map-Register message defined in Section 6.1.6 of | Map-Register message defined in [I-D.ietf-lisp-rfc6833bis]. More | |||
[I-D.ietf-lisp-rfc6833bis]. More precisely, the second bit after the | precisely, the second bit after the Type field in a Map-Register | |||
Type field in a Map-Register message is allocated as the S bit. The | message is allocated as the S bit. The S bit indicates to the Map- | |||
S bit indicates to the Map-Server that the registering ETR is LISP- | Server that the registering ETR is LISP-SEC enabled. An ETR that | |||
SEC enabled. An ETR that supports LISP-SEC MUST set the S bit in its | supports LISP-SEC MUST set the S bit in its Map-Register messages. | |||
Map-Register messages. | ||||
5.4. ITR Processing | 5.4. ITR Processing: Generating a Map-Request | |||
Upon creating a Map-Request, the ITR generates a random ITR-OTK that | Upon creating a Map-Request, the ITR generates a random ITR-OTK that | |||
is stored locally, together with the nonce generated as specified in | is stored locally (until the corresponding Map-Reply is received), | |||
together with the nonce generated as specified in | ||||
[I-D.ietf-lisp-rfc6833bis]. | [I-D.ietf-lisp-rfc6833bis]. | |||
ITR-OTK confidentiality and integrity protection MUST be provided in | ||||
the path between the ITR and the Map-Resolver. This can be achieved | ||||
either by encrypting the ITR-OTK with the pre-shared secret known to | ||||
the ITR and the Map-Resolver (see Section 5.5), or by enabling DTLS | ||||
between the ITR and the Map-Resolver. | ||||
The Map-Request MUST be encapsulated in an ECM, with the S-bit set to | The Map-Request MUST be encapsulated in an ECM, with the S-bit set to | |||
1, to indicate the presence of Authentication Data. If the ITR and | 1, to indicate the presence of Authentication Data. | |||
the Map-Resolver are configured with a shared key, the ITR-OTK | ||||
confidentiality SHOULD be protected by wrapping the ITR-OTK with the | ITR-OTK is wrapped with the algorithm specified by the OTK Wrapping | |||
algorithm specified by the OTK Encryption ID field. See Section 5.5 | ID field. See Section 5.5 for further details on OTK encryption. If | |||
for further details on OTK encryption. | the NULL-KEY-WRAP-128 algorithm is selected and DTLS is not enabled | |||
in the path between the ITR and the Map-Resolver, the Map-Request | ||||
MUST be dropped and an appropiate log action SHOULD be taken. | ||||
The Requested HMAC ID field contains the suggested HMAC algorithm to | The Requested HMAC ID field contains the suggested HMAC algorithm to | |||
be used by the Map-Server and the ETR to protect the integrity of the | be used by the Map-Server and the ETR to protect the integrity of the | |||
ECM Authentication data and of the Map-Reply. | ECM Authentication data and of the Map-Reply. | |||
The KDF ID field specifies the suggested key derivation function to | The KDF ID field specifies the suggested key derivation function to | |||
be used by the Map-Server to derive the MS-OTK. A KDF Value of NONE | be used by the Map-Server to derive the MS-OTK. A KDF Value of NONE | |||
(0), MAY be used to specify that the ITR has no preferred KDF ID. | (0), MAY be used to specify that the ITR has no preferred KDF ID. | |||
The EID-AD length is set to 4 bytes, since the Authentication Data | The EID-AD length is set to 4 bytes, since the Authentication Data | |||
does not contain EID-prefix Authentication Data, and the EID-AD | does not contain EID-prefix Authentication Data, and the EID-AD | |||
contains only the KDF ID field. | contains only the KDF ID field. | |||
In response to an encapsulated Map-Request that has the S-bit set, an | 5.4.1. PITR Processing | |||
ITR MUST receive a Map-Reply with the S-bit set, that includes an | ||||
EID-AD and a PKT-AD. If the Map-Reply does not include both ADs, the | ||||
ITR MUST discard it. In response to an encapsulated Map-Request with | ||||
S-bit set to 0, the ITR expects a Map-Reply with S-bit set to 0, and | ||||
the ITR SHOULD discard the Map-Reply if the S-bit is set. | ||||
Upon receiving a Map-Reply, the ITR must verify the integrity of both | ||||
the EID-AD and the PKT-AD, and MUST discard the Map-Reply if one of | ||||
the integrity checks fails. After processing the Map-Reply, the ITR | ||||
must discard the <nonce,ITK-OTK> pair associated to the Map-Reply | ||||
The integrity of the EID-AD is verified using the locally stored ITR- | ||||
OTK to re-compute the HMAC of the EID-AD using the algorithm | ||||
specified in the EID HMAC ID field. If the EID HMAC ID field does | ||||
not match the Requested HMAC ID the ITR SHOULD discard the Map-Reply | ||||
and send, at the first opportunity it needs to, a new Map-Request | ||||
with a different Requested HMAC ID field, according to ITR's local | ||||
policy. The scope of the HMAC operation covers the entire EID-AD, | ||||
from the EID-AD Length field to the EID HMAC field, which must be set | ||||
to 0 before the computation of the HMAC. | ||||
ITR MUST set the EID HMAC ID field to 0 before computing the HMAC. | ||||
To verify the integrity of the PKT-AD, first the MS-OTK is derived | ||||
from the locally stored ITR-OTK using the algorithm specified in the | ||||
KDF ID field. This is because the PKT-AD is generated by the ETR | ||||
using the MS-OTK. If the KDF ID in the Map-Reply does not match the | ||||
KDF ID requested in the Map-Request, the ITR SHOULD discard the Map- | ||||
Reply and send, at the first opportunity it needs to, a new Map- | ||||
Request with a different KDF ID, according to ITR's local policy. | ||||
The derived MS-OTK is then used to re-compute the HMAC of the PKT-AD | ||||
using the Algorithm specified in the PKT HMAC ID field. If the PKT | ||||
HMAC ID field does not match the Requested HMAC ID the ITR SHOULD | ||||
discard the Map-Reply and send, at the first opportunity it needs to, | ||||
a new Map-Request with a different Requested HMAC ID according to | ||||
ITR's local policy or until all HMAC IDs supported by the ITR have | ||||
been attempted. | ||||
Each individual Map-Reply EID-record is considered valid only if: (1) | The processing performed by a PITR is equivalent to the processing of | |||
both EID-AD and PKT-AD are valid, and (2) the intersection of the | an ITR. However, if the PITR is directly connected to a Mapping | |||
EID-prefix in the Map-Reply EID-record with one of the EID-prefixes | System such as LISP+ALT [RFC6836], the PITR performs the functions of | |||
contained in the EID-AD is not empty. After identifying the Map- | both the ITR and the Map-Resolver forwarding the Map-Request | |||
Reply record as valid, the ITR sets the EID-prefix in the Map-Reply | encapsulated in an ECM header that includes the Authentication Data | |||
record to the value of the intersection set computed before, and adds | fields as described in Section 5.6. | |||
the Map-Reply EID-record to its EID-to-RLOC cache, as described in | ||||
[I-D.ietf-lisp-rfc6833bis]. An example of Map-Reply record | ||||
validation is provided in Section 5.4.1. | ||||
The ITR SHOULD send SMR triggered Map-Requests over the mapping | 5.5. Encrypting and Decrypting an OTK | |||
system in order to receive a secure Map-Reply. If an ITR accepts | ||||
piggybacked Map-Replies, it SHOULD also send a Map-Request over the | ||||
mapping system in order to verify the piggybacked Map-Reply with a | ||||
secure Map-Reply. | ||||
5.4.1. Map-Reply Record Validation | MS-OTK confidentiality and integrity protection MUST be provided in | |||
the path between the Map-Server and the ETR. This can be achieved | ||||
either by enabling DTLS between the Map-Server and the ITR or by | ||||
encrypting the MS-OTK with the pre-shared secret known to the Map- | ||||
Server and the ETR [I-D.ietf-lisp-rfc6833bis]. | ||||
The payload of a Map-Reply may contain multiple EID-records. The | Similarly, ITR-OTK confidentiality and integrity protection MUST be | |||
whole Map-Reply is signed by the ETR, with the PKT HMAC, to provide | provided in the path between the ITR and the Map-Resolver. This can | |||
integrity protection and origin authentication to the EID-prefix | be achieved either by enabling DTLS between the Map-Server and the | |||
records claimed by the ETR. The Authentication Data field of a Map- | ITR, or by encrypting the ITR-OTK with the pre-shared secret known to | |||
Reply may contain multiple EID-records in the EID-AD. The EID-AD is | the ITR and the Map-Resolver. The ITR/Map-Resolver pre-shared key is | |||
signed by the Map-Server, with the EID HMAC, to provide integrity | similar to the Map-Server/ETR pre-shared key. However, to prevent | |||
protection and origin authentication to the EID-prefix records | ETR's overclaiming attacks, the ITR/Map-Resolver pre-shared secret | |||
inserted by the Map-Server. | MUST have a different value than the Map-Server/ETR pre-shared | |||
secret. | ||||
Upon receiving a Map-Reply with the S-bit set, the ITR first checks | This section describes OTK processing in the ITR/Map-Resolver path, | |||
the validity of both the EID HMAC and of the PKT-AD HMAC. If either | as well as in the Map-Server/ETR path. | |||
one of the HMACs is not valid, a log action MUST be taken and the | ||||
Map-Reply MUST NOT be processed any further. If both HMACs are | ||||
valid, the ITR proceeds with validating each individual EID-record | ||||
claimed by the ETR by computing the intersection of each one of the | ||||
EID-prefix contained in the payload of the Map-Reply with each one of | ||||
the EID-prefixes contained in the EID-AD. An EID-record is valid | ||||
only if at least one of the intersections is not the empty set. | ||||
For instance, the Map-Reply payload contains 3 mapping record EID- | It's important to note that, to prevent ETR's overclaiming attacks, | |||
prefixes: | the ITR/Map-Resolver pre-shared secret MUST be different from the | |||
Map-Server/ETR pre-shared secret. | ||||
2001:db8:0102::/48 | The OTK is wrapped using the algorithm specified in the OTK Wrapping | |||
ID field. This field identifies both the: | ||||
2001:db8:0103::/48 | o Key Encryption Algorithm used to encrypt the wrapped OTK, as well | |||
as the | ||||
2001:db8:0200::/40 | o Key Derivation Function used to derive a per-message encryption | |||
key. | ||||
The EID-AD contains two EID-prefixes: | Implementations of this specification MUST support OTK Wrapping ID | |||
AES-KEY-WRAP-128+HKDF-SHA256 that specifies the use of the HKDF- | ||||
SHA256 Key Derivation Function specified in[RFC4868] to derive a per- | ||||
message encryption key (per-msg-key), as well as the AES-KEY-WRAP-128 | ||||
Key Wrap algorithm used to encrypt a 128-bit OTK, according to | ||||
[RFC3394]. | ||||
2001:db8:0103::/48 | The key wrapping process for OTK Wrapping ID AES-KEY-WRAP-128+HKDF- | |||
SHA256 is described below: | ||||
2001:db8:0203::/48 | 1. The KDF algorithm is identified by the field 'OTK Wrapping ID' | |||
according to the table in Section Section 7.4. | ||||
The EID-record with EID-prefix 2001:db8:0102::/48 is not eligible to | 2. The Key Wrap algorithm is identified by the field 'OTK Wrapping | |||
be used by the ITR since it is not included in any of the EID-ADs | ID' according to the table in Section Section 7.4. | |||
signed by the Map-Server. A log action MUST be taken. | ||||
The EID-record with EID-prefix 2001:db8:0103::/48 is eligible to be | 3. If the NULL-KEY-WRAP-128 algorithm (defined in (Section 7.4)) is | |||
used by the ITR because it matches the second EID-prefix contained in | selected and DTLS is not enabled, the Map-Request MUST be dropped | |||
the EID-AD. | and an appropiate log action SHOULD be taken. | |||
The EID-record with EID-prefix 2001:db8:0200::/40 is not eligible to | 4. The pre-shared secret used to derive the per-msg-key is | |||
be used by the ITR since it is not included in any of the EID-ADs | represented by PSK[Key ID], that is the pre-shared secret | |||
signed by the Map-Server. A log action MUST be taken. In this last | identified by the 'Key ID'. | |||
example the ETR is trying to over claim the EID-prefix | ||||
2001:db8:0200::/40, but the Map-Server authorized only | ||||
2001:db8:0203::/48, hence the EID-record is discarded. | ||||
5.4.2. PITR Processing | 5. The per-message encryption key key is computed as: | |||
The processing performed by a PITR is equivalent to the processing of | * per-msg-key = KDF( nonce + s + PSK[Key ID] ) | |||
an ITR. However, if the PITR is directly connected to a Mapping | ||||
System such as LISP+ALT [RFC6836], the PITR performs the functions of | ||||
both the ITR and the Map-Resolver forwarding the Map-Request | ||||
encapsulated in an ECM header that includes the Authentication Data | ||||
fields as described in Section 5.6. | ||||
5.5. Encrypting and Decrypting an OTK | * where the nonce is the value in the Nonce field of the Map- | |||
Request, and | ||||
MS-OTK confidentiality is required in the path between the Map-Server | * 's' is the string "OTK-Key-Wrap" | |||
and the ETR, the MS-OTK SHOULD be encrypted using the preconfigured | ||||
key shared between the Map-Server and the ETR for the purpose of | ||||
securing ETR registration [I-D.ietf-lisp-rfc6833bis]. Similarly, if | ||||
ITR-OTK confidentiality is required in the path between the ITR and | ||||
the Map-Resolver, the ITR-OTK SHOULD be encrypted with a key shared | ||||
between the ITR and the Map-Resolver. | ||||
The OTK is encrypted using the algorithm specified in the OTK | 6. According to [RFC3394] the per-msg-key is used to wrap the OTK | |||
Encryption ID field. When the AES Key Wrap algorithm is used to | with AES-KEY-WRAP-128. The AES Key Wrap Initialization Value | |||
encrypt a 128-bit OTK, according to [RFC3394], the AES Key Wrap | MUST be set to 0xA6A6A6A6A6A6A6A6 (64 bits). The output of the | |||
Initialization Value MUST be set to 0xA6A6A6A6A6A6A6A6 (64 bits). | AES Key Wrap operation is 192-bit long. The most significant | |||
The output of the AES Key Wrap operation is 192-bit long. The most | 64-bit are copied in the One-Time Key Preamble field, while the | |||
significant 64-bit are copied in the One-Time Key Preamble field, | 128 less significant bits are copied in the One-Time Key field of | |||
while the 128 less significant bits are copied in the One-Time Key | the LISP-SEC Authentication Data. | |||
field of the LISP-SEC Authentication Data. | ||||
When decrypting an encrypted OTK the receiver MUST verify that the | When decrypting an encrypted OTK the receiver MUST verify that the | |||
Initialization Value resulting from the AES Key Wrap decryption | Initialization Value resulting from the AES Key Wrap decryption | |||
operation is equal to 0xA6A6A6A6A6A6A6A6. If this verification fails | operation is equal to 0xA6A6A6A6A6A6A6A6. If this verification fails | |||
the receiver MUST discard the entire message. | the receiver MUST discard the entire message. | |||
When a 128-bit OTK is sent unencrypted the OTK Encryption ID is set | 5.5.1. Unencrypted OTK | |||
to NULL_KEY_WRAP_128, and the OTK Preamble is set to | ||||
0x0000000000000000 (64 bits). | MS-OTK confidentiality and integrity protection MUST be provided in | |||
the path between the Map-Server and the ETR. Similarly, ITR-OTK | ||||
confidentiality and integrity protection MUST be provided in the path | ||||
between the ITR and the Map-Resolver. | ||||
However, when DTLS is enabled the OTK MAY be sent unencrypted as | ||||
transport layer security is providing confidentiality and integrity | ||||
protection. | ||||
When a 128-bit OTK is sent unencrypted the OTK Wrapping ID is set to | ||||
NULL_KEY_WRAP_128, and the OTK Preamble is set to 0x0000000000000000 | ||||
(64 bits). | ||||
5.6. Map-Resolver Processing | 5.6. Map-Resolver Processing | |||
Upon receiving an encapsulated Map-Request with the S-bit set, the | Upon receiving an encapsulated Map-Request with the S-bit set, the | |||
Map-Resolver decapsulates the ECM message. The ITR-OTK, if | Map-Resolver decapsulates the ECM message. The ITR-OTK, if | |||
encrypted, is decrypted as specified in Section 5.5. | encrypted, is decrypted as specified in Section 5.5. | |||
Protecting the confidentiality of the ITR-OTK and, in general, the | Protecting the confidentiality of the ITR-OTK and, in general, the | |||
security of how the Map-Request is handed by the Map-Resolver to the | security of how the Map-Request is handed by the Map-Resolver to the | |||
Map-Server, is specific to the particular Mapping System used, and | Map-Server, is specific to the particular Mapping System used, and | |||
skipping to change at page 15, line 37 ¶ | skipping to change at page 15, line 22 ¶ | |||
header with the S-bit set, that contains the unencrypted ITR-OTK, as | header with the S-bit set, that contains the unencrypted ITR-OTK, as | |||
specified in Section 5.5, and the other data derived from the ECM | specified in Section 5.5, and the other data derived from the ECM | |||
Authentication Data of the received encapsulated Map-Request. | Authentication Data of the received encapsulated Map-Request. | |||
The Map-Resolver then forwards to the Map-Server the received Map- | The Map-Resolver then forwards to the Map-Server the received Map- | |||
Request, encapsulated in the new ECM header that includes the newly | Request, encapsulated in the new ECM header that includes the newly | |||
computed Authentication Data fields. | computed Authentication Data fields. | |||
5.7. Map-Server Processing | 5.7. Map-Server Processing | |||
Upon receiving an ECM encapsulated Map-Request with the S-bit set, | Upon receiving an ECM encapsulated Map-Request with the S-bit set to | |||
the Map-Server process the Map-Request according to the value of the | 1, the Map-Server process the Map-Request according to the value of | |||
S-bit contained in the Map-Register sent by the ETR during | the security-capable S-bit and of the proxy map-reply P-bit contained | |||
registration. | in the Map-Register sent by the ETRs authoritative for that prefix | |||
during registration. | ||||
If the S-bit contained in the Map-Register was clear the Map-Server | Processing of the Map-Request MUST proceed in the order described in | |||
decapsulates the ECM and generates a new ECM encapsulated Map-Request | the table below, applying the processing corresponding to the first | |||
that does not contain an ECM Authentication Data, as specified in | rule that matches the conditions indicated in the first column: | |||
[I-D.ietf-lisp-rfc6833bis]. The Map-Server does not perform any | ||||
further LISP-SEC processing, and the Map-Reply will not be protected. | ||||
If the S-bit contained in the Map-Register was set the Map-Server | +----------------+--------------------------------------------------+ | |||
decapsulates the ECM and generates a new ECM Authentication Data. | | Matching | Processing | | |||
The Authentication Data includes the OTK-AD and the EID-AD, that | | Condition | | | |||
contains EID-prefix authorization information, that are ultimately | +----------------+--------------------------------------------------+ | |||
sent to the requesting ITR. | | 1. At least | The Map-Server MUST generate a LISP-SEC | | |||
| one of the | protected Map-Reply as specified in Section | | ||||
| ETRs | 5.7.2. The ETR-Cant-Sign E-bit in the EID | | ||||
| authoritative | Authentication Data (EID-AD) MUST be set to 0. | | ||||
| for the EID | | | ||||
| prefix | | | ||||
| included in | | | ||||
| the Map- | | | ||||
| Request | | | ||||
| registered | | | ||||
| with the P-bit | | | ||||
| set to 1 | | | ||||
| | | | ||||
| 2. At least | The Map-Server MUST generate a LISP-SEC | | ||||
| one of the | protected Encapsulated Map-Request (as specified | | ||||
| ETRs | in Section 5.7.1), to be sent to one of the | | ||||
| authoritative | authoritative ETRs that registered with the | | ||||
| for the EID | S-bit set to 1 (and the P-bit set to 0). If | | ||||
| prefix | there is at least one ETR that registered with | | ||||
| included in | the S-bit set to 0, the ETR-Cant-Sign E-bit of | | ||||
| the Map- | the EID-AD MUST be set to 1 to signal the ITR | | ||||
| Request | that a non LISP-SEC Map-Request might reach | | ||||
| registered | additional ETRs that have LISP-SEC disabled. | | ||||
| with the S-bit | | | ||||
| set to 1 | | | ||||
| | | | ||||
| 3. All the | The Map-Server MUST send a Negative Map-Reply | | ||||
| ETRs | protected with LISP-SEC, as described in Section | | ||||
| authoritative | 5.7.2. The ETR-Cant-Sign E-bit MUST be set to 1 | | ||||
| for the EID | to signal the ITR that a non LISP-SEC Map- | | ||||
| prefix | Request might reach additional ETRs that have | | ||||
| included in | LISP-SEC disabled. | | ||||
| the Map- | | | ||||
| Request | | | ||||
| registered | | | ||||
| with the S-bit | | | ||||
| set to 0 | | | ||||
+----------------+--------------------------------------------------+ | ||||
In this way the ITR that sent a LISP-SEC protected Map-Request always | ||||
receives a LISP-SEC protected Map-Reply. However, the ETR-Cant-Sign | ||||
E-bit set to 1 specifies that a non LISP-SEC Map-Request might reach | ||||
additional ETRs that have LISP-SEC disabled. This mechanism allows | ||||
the ITR to securely downgrade to non LISP-SEC requests, if so | ||||
desired. | ||||
5.7.1. Generating a LISP-SEC Protected Encapsulated Map-Request | ||||
The Map-Server decapsulates the ECM and generates a new ECM | ||||
Authentication Data. The Authentication Data includes the OTK-AD and | ||||
the EID-AD, that contains EID-prefix authorization information, that | ||||
are eventually received by the requesting ITR. | ||||
The Map-Server updates the OTK-AD by deriving a new OTK (MS-OTK) from | The Map-Server updates the OTK-AD by deriving a new OTK (MS-OTK) from | |||
the ITR-OTK received with the Map-Request. MS-OTK is derived | the ITR-OTK received with the Map-Request. MS-OTK is derived | |||
applying the key derivation function specified in the KDF ID field. | applying the key derivation function specified in the KDF ID field. | |||
If the algorithm specified in the KDF ID field is not supported, the | If the algorithm specified in the KDF ID field is not supported, the | |||
Map-Server uses a different algorithm to derive the key and updates | Map-Server uses a different algorithm to derive the key and updates | |||
the KDF ID field accordingly. | the KDF ID field accordingly. | |||
The Map-Server and the ETR MUST be configured with a shared key for | MS-OTK confidentiality and integrity protection MUST be provided in | |||
mapping registration according to [I-D.ietf-lisp-rfc6833bis]. If MS- | the path between the Map-Server and the ETR. This can be achieved | |||
OTK confidentiality is required, then the MS-OTK SHOULD be encrypted, | either by enabling DTLS between the Map-Server and the ETR, or by | |||
by wrapping the MS-OTK with the algorithm specified by the OTK | encrypting the MS-OTK with the pre-shared secret known to the Map- | |||
Encryption ID field as specified in Section 5.5. | Server and the ETR. | |||
The Map-Request MUST be encapsulated in an ECM, with the S-bit set to | ||||
1, to indicate the presence of Authentication Data. | ||||
MS-OTK is wrapped with the algorithm specified by the OTK Wrapping ID | ||||
field. See Section 5.5 for further details on OTK encryption. If | ||||
the NULL-KEY-WRAP-128 algorithm is selected and DTLS is not enabled | ||||
in the path between the Map-Server and the ETR, the Map-Request MUST | ||||
be dropped and an appropiate log action SHOULD be taken. | ||||
The Map-Server includes in the EID-AD the longest match registered | The Map-Server includes in the EID-AD the longest match registered | |||
EID-prefix for the destination EID, and an HMAC of this EID-prefix. | EID-prefix for the destination EID, and an HMAC of this EID-prefix. | |||
The HMAC is keyed with the ITR-OTK contained in the received ECM | The HMAC is keyed with the ITR-OTK contained in the received ECM | |||
Authentication Data, and the HMAC algorithm is chosen according to | Authentication Data, and the HMAC algorithm is chosen according to | |||
the Requested HMAC ID field. If The Map-Server does not support this | the Requested HMAC ID field. If The Map-Server does not support this | |||
algorithm, the Map-Server uses a different algorithm and specifies it | algorithm, the Map-Server uses a different algorithm and specifies it | |||
in the EID HMAC ID field. The scope of the HMAC operation covers the | in the EID HMAC ID field. The scope of the HMAC operation covers the | |||
entire EID-AD, from the EID-AD Length field to the EID HMAC field, | entire EID-AD, from the EID-AD Length field to the EID HMAC field, | |||
which must be set to 0 before the computation. | which must be set to 0 before the computation. | |||
The Map-Server then forwards the updated ECM encapsulated Map- | The Map-Server then forwards the updated ECM encapsulated Map- | |||
Request, that contains the OTK-AD, the EID-AD, and the received Map- | Request, that contains the OTK-AD, the EID-AD, and the received Map- | |||
Request to an authoritative ETR as specified in | Request to an authoritative ETR as specified in | |||
[I-D.ietf-lisp-rfc6833bis]. | [I-D.ietf-lisp-rfc6833bis]. | |||
5.7.1. Map-Server Processing in Proxy mode | 5.7.2. Generating a Proxy Map-Reply | |||
If the Map-Server is in proxy mode, it generates a Map-Reply, as | LISP-SEC proxy Map-Reply are generated according to | |||
specified in [I-D.ietf-lisp-rfc6833bis], with the S-bit set to 1. | [I-D.ietf-lisp-rfc6833bis], with the Map-Replay S-bit set to 1. The | |||
The Map-Reply includes the Authentication Data that contains the EID- | Map-Reply includes the Authentication Data that contains the EID-AD, | |||
AD, computed as specified in Section 5.7, as well as the PKT-AD | computed as specified in Section 5.7.1, as well as the PKT-AD | |||
computed as specified in Section 5.8. | computed as specified in Section 5.8. | |||
5.8. ETR Processing | 5.8. ETR Processing | |||
Upon receiving an ECM encapsulated Map-Request with the S-bit set, | Upon receiving an ECM encapsulated Map-Request with the S-bit set, | |||
the ETR decapsulates the ECM message. The OTK field, if encrypted, | the ETR decapsulates the ECM message. The OTK field, if encrypted, | |||
is decrypted as specified in Section 5.5 to obtain the unencrypted | is decrypted as specified in Section 5.5 to obtain the unencrypted | |||
MS-OTK. | MS-OTK. | |||
The ETR then generates a Map-Reply as specified in | The ETR then generates a Map-Reply as specified in | |||
skipping to change at page 17, line 15 ¶ | skipping to change at page 18, line 35 ¶ | |||
The EID-AD is copied from the Authentication Data of the received | The EID-AD is copied from the Authentication Data of the received | |||
encapsulated Map-Request. | encapsulated Map-Request. | |||
The PKT-AD contains the HMAC of the whole Map-Reply packet, keyed | The PKT-AD contains the HMAC of the whole Map-Reply packet, keyed | |||
with the MS-OTK and computed using the HMAC algorithm specified in | with the MS-OTK and computed using the HMAC algorithm specified in | |||
the Requested HMAC ID field of the received encapsulated Map-Request. | the Requested HMAC ID field of the received encapsulated Map-Request. | |||
If the ETR does not support the Requested HMAC ID, it uses a | If the ETR does not support the Requested HMAC ID, it uses a | |||
different algorithm and updates the PKT HMAC ID field accordingly. | different algorithm and updates the PKT HMAC ID field accordingly. | |||
The scope of the HMAC operation covers the entire PKT-AD, from the | The scope of the HMAC operation covers the entire PKT-AD, from the | |||
Map-Reply Type field to the PKT HMAC field, which must be set to 0 | Map-Reply Type field to the PKT HMAC field, which must be set to 0 | |||
before the computation. | bendlfore the computation. | |||
Finally the ETR sends the Map-Reply to the requesting ITR as | Finally the ETR sends the Map-Reply to the requesting ITR as | |||
specified in [I-D.ietf-lisp-rfc6833bis]. | specified in [I-D.ietf-lisp-rfc6833bis]. | |||
5.9. ITR Processing: Receiving a Map-Reply | ||||
In response to an encapsulated Map-Request that has the S-bit set, an | ||||
ITR MUST receive a Map-Reply with the S-bit set, that includes an | ||||
EID-AD and a PKT-AD. If the Map-Reply does not include both ADs, the | ||||
ITR MUST discard it. In response to an encapsulated Map-Request with | ||||
S-bit set to 0, the ITR expects a Map-Reply with S-bit set to 0, and | ||||
the ITR SHOULD discard the Map-Reply if the S-bit is set. | ||||
Upon receiving a Map-Reply, the ITR must verify the integrity of both | ||||
the EID-AD and the PKT-AD, and MUST discard the Map-Reply if one of | ||||
the integrity checks fails. After processing the Map-Reply, the ITR | ||||
must discard the <nonce,ITK-OTK> pair associated to the Map-Reply | ||||
The integrity of the EID-AD is verified using the ITR-OTK (stored | ||||
locally for the duration of this exchange) to re-compute the HMAC of | ||||
the EID-AD using the algorithm specified in the EID HMAC ID field. | ||||
If the EID HMAC ID field does not match the Requested HMAC ID the ITR | ||||
SHOULD discard the Map-Reply and send, at the first opportunity it | ||||
needs to, a new Map-Request with a different Requested HMAC ID field, | ||||
according to ITR's local policy. The scope of the HMAC operation | ||||
covers the entire EID-AD, from the EID-AD Length field to the EID | ||||
HMAC field, which must be set to 0 before the computation of the | ||||
HMAC. | ||||
ITR MUST set the EID HMAC ID field to 0 before computing the HMAC. | ||||
To verify the integrity of the PKT-AD, first the MS-OTK is derived | ||||
from the locally stored ITR-OTK using the algorithm specified in the | ||||
KDF ID field. This is because the PKT-AD is generated by the ETR | ||||
using the MS-OTK. If the KDF ID in the Map-Reply does not match the | ||||
KDF ID requested in the Map-Request, the ITR SHOULD discard the Map- | ||||
Reply and send, at the first opportunity it needs to, a new Map- | ||||
Request with a different KDF ID, according to ITR's local policy. | ||||
Without consistent configuration of involved entities, extra delays | ||||
may be experienced. However, since HKDF-SHA1-128 is specified as | ||||
mandatory to implement in Section 7.5, the process will eventually | ||||
converge. | ||||
The derived MS-OTK is then used to re-compute the HMAC of the PKT-AD | ||||
using the Algorithm specified in the PKT HMAC ID field. If the PKT | ||||
HMAC ID field does not match the Requested HMAC ID the ITR SHOULD | ||||
discard the Map-Reply and send, at the first opportunity it needs to, | ||||
a new Map-Request with a different Requested HMAC ID according to | ||||
ITR's local policy or until all HMAC IDs supported by the ITR have | ||||
been attempted. | ||||
Each individual Map-Reply EID-record is considered valid only if: (1) | ||||
both EID-AD and PKT-AD are valid, and (2) the intersection of the | ||||
EID-prefix in the Map-Reply EID-record with one of the EID-prefixes | ||||
contained in the EID-AD is not empty. After identifying the Map- | ||||
Reply record as valid, the ITR sets the EID-prefix in the Map-Reply | ||||
record to the value of the intersection set computed before, and adds | ||||
the Map-Reply EID-record to its EID-to-RLOC cache, as described in | ||||
[I-D.ietf-lisp-rfc6833bis]. An example of Map-Reply record | ||||
validation is provided in Section 5.9.1. | ||||
The ITR SHOULD send SMR triggered Map-Requests over the mapping | ||||
system in order to receive a secure Map-Reply. If an ITR accepts | ||||
piggybacked Map-Replies, it SHOULD also send a Map-Request over the | ||||
mapping system in order to verify the piggybacked Map-Reply with a | ||||
secure Map-Reply. | ||||
5.9.1. Map-Reply Record Validation | ||||
The payload of a Map-Reply may contain multiple EID-records. The | ||||
whole Map-Reply is signed by the ETR, with the PKT HMAC, to provide | ||||
integrity protection and origin authentication to the EID-prefix | ||||
records claimed by the ETR. The Authentication Data field of a Map- | ||||
Reply may contain multiple EID-records in the EID-AD. The EID-AD is | ||||
signed by the Map-Server, with the EID HMAC, to provide integrity | ||||
protection and origin authentication to the EID-prefix records | ||||
inserted by the Map-Server. | ||||
Upon receiving a Map-Reply with the S-bit set, the ITR first checks | ||||
the validity of both the EID HMAC and of the PKT-AD HMAC. If either | ||||
one of the HMACs is not valid, a log action MUST be taken and the | ||||
Map-Reply MUST NOT be processed any further. If both HMACs are | ||||
valid, the ITR proceeds with validating each individual EID-record | ||||
claimed by the ETR by computing the intersection of each one of the | ||||
EID-prefix contained in the payload of the Map-Reply with each one of | ||||
the EID-prefixes contained in the EID-AD. An EID-record is valid | ||||
only if at least one of the intersections is not the empty set. | ||||
For instance, the Map-Reply payload contains 3 mapping record EID- | ||||
prefixes: | ||||
2001:db8:102::/48 | ||||
2001:db8:103::/48 | ||||
2001:db8:200::/40 | ||||
The EID-AD contains two EID-prefixes: | ||||
2001:db8:103::/48 | ||||
2001:db8:203::/48 | ||||
The EID-record with EID-prefix 2001:db8:102::/48 is not eligible to | ||||
be used by the ITR since it is not included in any of the EID-ADs | ||||
signed by the Map-Server. A log action MUST be taken. | ||||
The EID-record with EID-prefix 2001:db8:103::/48 is eligible to be | ||||
used by the ITR because it matches the second EID-prefix contained in | ||||
the EID-AD. | ||||
The EID-record with EID-prefix 2001:db8:200::/40 is not eligible to | ||||
be used by the ITR since it is not included in any of the EID-ADs | ||||
signed by the Map-Server. A log action MUST be taken. In this last | ||||
example the ETR is trying to over claim the EID-prefix | ||||
2001:db8:200::/40, but the Map-Server authorized only | ||||
2001:db8:203::/48, hence the EID-record is discarded. | ||||
6. Security Considerations | 6. Security Considerations | |||
6.1. Mapping System Security | 6.1. Mapping System Security | |||
The LISP-SEC threat model described in Section 3, assumes that the | The LISP-SEC threat model described in Section 3, assumes that the | |||
LISP Mapping System is working properly and eventually delivers Map- | LISP Mapping System is working properly and eventually delivers Map- | |||
Request messages to a Map-Server that is authoritative for the | Request messages to a Map-Server that is authoritative for the | |||
requested EID. | requested EID. | |||
It is assumed that the Mapping System ensures the confidentiality of | It is assumed that the Mapping System ensures the confidentiality of | |||
skipping to change at page 19, line 36 ¶ | skipping to change at page 23, line 25 ¶ | |||
7.1. ECM AD Type Registry | 7.1. ECM AD Type Registry | |||
IANA is requested to create the "ECM Authentication Data Type" | IANA is requested to create the "ECM Authentication Data Type" | |||
registry with values 0-255, for use in the ECM LISP-SEC Extensions | registry with values 0-255, for use in the ECM LISP-SEC Extensions | |||
Section 5.1. The registry MUST be initially populated with the | Section 5.1. The registry MUST be initially populated with the | |||
following values: | following values: | |||
Name Value Defined In | Name Value Defined In | |||
------------------------------------------------- | ------------------------------------------------- | |||
Reserved 0 This memo | Unassigned 0 This memo | |||
LISP-SEC-ECM-EXT 1 This memo | LISP-SEC-ECM-EXT 1 This memo | |||
HMAC Functions | HMAC Functions | |||
Values 2-255 are unassigned. They are to be assigned according to | Values 2-255 are unassigned. They are to be assigned according to | |||
the "Specification Required" policy defined in [RFC5226]. | the "Specification Required" policy defined in [RFC5226]. | |||
7.2. Map-Reply AD Type Registry | 7.2. Map-Reply AD Type Registry | |||
IANA is requested to create the "Map-Reply Authentication Data Type" | IANA is requested to create the "Map-Reply Authentication Data Type" | |||
registry with values 0-255, for use in the Map-Reply LISP-SEC | registry with values 0-255, for use in the Map-Reply LISP-SEC | |||
Extensions Section 5.2. The registry MUST be initially populated | Extensions Section 5.2. The registry MUST be initially populated | |||
with the following values: | with the following values: | |||
Name Value Defined In | Name Value Defined In | |||
------------------------------------------------- | ------------------------------------------------- | |||
Reserved 0 This memo | Unassigned 0 This memo | |||
LISP-SEC-MR-EXT 1 This memo | LISP-SEC-MR-EXT 1 This memo | |||
HMAC Functions | HMAC Functions | |||
Values 2-255 are unassigned. They are to be assigned according to | Values 2-255 are unassigned. They are to be assigned according to | |||
the "Specification Required" policy defined in [RFC5226]. | the "Specification Required" policy defined in [RFC5226]. | |||
7.3. HMAC Functions | 7.3. HMAC Functions | |||
IANA is requested to create the "LISP-SEC Authentication Data HMAC | IANA is requested to create the "LISP-SEC Authentication Data HMAC | |||
skipping to change at page 20, line 41 ¶ | skipping to change at page 24, line 31 ¶ | |||
AUTH-HMAC-SHA-1-96 MUST be supported, AUTH-HMAC-SHA-256-128 SHOULD be | AUTH-HMAC-SHA-1-96 MUST be supported, AUTH-HMAC-SHA-256-128 SHOULD be | |||
supported. | supported. | |||
7.4. Key Wrap Functions | 7.4. Key Wrap Functions | |||
IANA is requested to create the "LISP-SEC Authentication Data Key | IANA is requested to create the "LISP-SEC Authentication Data Key | |||
Wrap ID" registry with values 0-65535 for use as OTK key wrap | Wrap ID" registry with values 0-65535 for use as OTK key wrap | |||
algorithms ID in the LISP-SEC Authentication Data: | algorithms ID in the LISP-SEC Authentication Data: | |||
Name Number Defined In | Name Number KEY WRAP KDF | |||
------------------------------------------------- | ----------------------------------------------------------------- | |||
Reserved 0 This memo | Unassigned 0 None None | |||
NULL-KEY-WRAP-128 1 This memo | NULL-KEY-WRAP-128 1 This memo None | |||
AES-KEY-WRAP-128 2 [RFC3394] | AES-KEY-WRAP-128+HKDF-SHA256 2 [RFC3394] [RFC4868] | |||
Key Wrap Functions | Key Wrap Functions | |||
Values 3-65535 are unassigned. They are to be assigned according to | Values 3-65535 are unassigned. They are to be assigned according to | |||
the "Specification Required" policy defined in [RFC5226]. | the "Specification Required" policy defined in [RFC5226]. | |||
NULL-KEY-WRAP-128, and AES-KEY-WRAP-128 MUST be supported. | NULL-KEY-WRAP-128, and AES-KEY-WRAP-128+HKDF-SHA256 MUST be | |||
supported. | ||||
NULL-KEY-WRAP-128 is used to carry an unencrypted 128-bit OTK, with a | NULL-KEY-WRAP-128 is used to carry an unencrypted 128-bit OTK, with a | |||
64-bit preamble set to 0x0000000000000000 (64 bits). | 64-bit preamble set to 0x0000000000000000 (64 bits). | |||
7.5. Key Derivation Functions | 7.5. Key Derivation Functions | |||
IANA is requested to create the "LISP-SEC Authentication Data Key | IANA is requested to create the "LISP-SEC Authentication Data Key | |||
Derivation Function ID" registry with values 0-65535 for use as KDF | Derivation Function ID" registry with values 0-65535 for use as KDF | |||
ID in the LISP-SEC Authentication Data: | ID in the LISP-SEC Authentication Data: | |||
skipping to change at page 21, line 38 ¶ | skipping to change at page 25, line 30 ¶ | |||
HKDF-SHA1-128 MUST be supported | HKDF-SHA1-128 MUST be supported | |||
8. Acknowledgements | 8. Acknowledgements | |||
The authors would like to acknowledge Pere Monclus, Dave Meyer, Dino | The authors would like to acknowledge Pere Monclus, Dave Meyer, Dino | |||
Farinacci, Brian Weis, David McGrew, Darrel Lewis and Landon Curt | Farinacci, Brian Weis, David McGrew, Darrel Lewis and Landon Curt | |||
Noll for their valuable suggestions provided during the preparation | Noll for their valuable suggestions provided during the preparation | |||
of this document. | of this document. | |||
9. Normative References | 9. References | |||
[I-D.ietf-lisp-rfc6830bis] | 9.1. Normative References | |||
Farinacci, D., Fuller, V., Meyer, D., Lewis, D., and A. | ||||
Cabellos-Aparicio, "The Locator/ID Separation Protocol | ||||
(LISP)", draft-ietf-lisp-rfc6830bis-26 (work in progress), | ||||
November 2018. | ||||
[I-D.ietf-lisp-rfc6833bis] | [I-D.ietf-lisp-rfc6833bis] | |||
Fuller, V., Farinacci, D., and A. Cabellos-Aparicio, | Fuller, V., Farinacci, D., and A. Cabellos-Aparicio, | |||
"Locator/ID Separation Protocol (LISP) Control-Plane", | "Locator/ID Separation Protocol (LISP) Control-Plane", | |||
draft-ietf-lisp-rfc6833bis-22 (work in progress), November | draft-ietf-lisp-rfc6833bis-24 (work in progress), February | |||
2018. | 2019. | |||
[RFC2104] Krawczyk, H., Bellare, M., and R. Canetti, "HMAC: Keyed- | [RFC2104] Krawczyk, H., Bellare, M., and R. Canetti, "HMAC: Keyed- | |||
Hashing for Message Authentication", RFC 2104, | Hashing for Message Authentication", RFC 2104, | |||
DOI 10.17487/RFC2104, February 1997, <https://www.rfc- | DOI 10.17487/RFC2104, February 1997, <https://www.rfc- | |||
editor.org/info/rfc2104>. | editor.org/info/rfc2104>. | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, <https://www.rfc- | DOI 10.17487/RFC2119, March 1997, <https://www.rfc- | |||
editor.org/info/rfc2119>. | editor.org/info/rfc2119>. | |||
[RFC3394] Schaad, J. and R. Housley, "Advanced Encryption Standard | [RFC3394] Schaad, J. and R. Housley, "Advanced Encryption Standard | |||
(AES) Key Wrap Algorithm", RFC 3394, DOI 10.17487/RFC3394, | (AES) Key Wrap Algorithm", RFC 3394, DOI 10.17487/RFC3394, | |||
September 2002, <https://www.rfc-editor.org/info/rfc3394>. | September 2002, <https://www.rfc-editor.org/info/rfc3394>. | |||
[RFC4086] Eastlake 3rd, D., Schiller, J., and S. Crocker, | [RFC4086] Eastlake 3rd, D., Schiller, J., and S. Crocker, | |||
"Randomness Requirements for Security", BCP 106, RFC 4086, | "Randomness Requirements for Security", BCP 106, RFC 4086, | |||
DOI 10.17487/RFC4086, June 2005, <https://www.rfc- | DOI 10.17487/RFC4086, June 2005, <https://www.rfc- | |||
editor.org/info/rfc4086>. | editor.org/info/rfc4086>. | |||
[RFC4868] Kelly, S. and S. Frankel, "Using HMAC-SHA-256, HMAC-SHA- | ||||
384, and HMAC-SHA-512 with IPsec", RFC 4868, | ||||
DOI 10.17487/RFC4868, May 2007, <https://www.rfc- | ||||
editor.org/info/rfc4868>. | ||||
[RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an | [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an | |||
IANA Considerations Section in RFCs", RFC 5226, | IANA Considerations Section in RFCs", RFC 5226, | |||
DOI 10.17487/RFC5226, May 2008, <https://www.rfc- | DOI 10.17487/RFC5226, May 2008, <https://www.rfc- | |||
editor.org/info/rfc5226>. | editor.org/info/rfc5226>. | |||
[RFC5869] Krawczyk, H. and P. Eronen, "HMAC-based Extract-and-Expand | [RFC5869] Krawczyk, H. and P. Eronen, "HMAC-based Extract-and-Expand | |||
Key Derivation Function (HKDF)", RFC 5869, | Key Derivation Function (HKDF)", RFC 5869, | |||
DOI 10.17487/RFC5869, May 2010, <https://www.rfc- | DOI 10.17487/RFC5869, May 2010, <https://www.rfc- | |||
editor.org/info/rfc5869>. | editor.org/info/rfc5869>. | |||
[RFC6234] Eastlake 3rd, D. and T. Hansen, "US Secure Hash Algorithms | ||||
(SHA and SHA-based HMAC and HKDF)", RFC 6234, | ||||
DOI 10.17487/RFC6234, May 2011, <https://www.rfc- | ||||
editor.org/info/rfc6234>. | ||||
[RFC6347] Rescorla, E. and N. Modadugu, "Datagram Transport Layer | [RFC6347] Rescorla, E. and N. Modadugu, "Datagram Transport Layer | |||
Security Version 1.2", RFC 6347, DOI 10.17487/RFC6347, | Security Version 1.2", RFC 6347, DOI 10.17487/RFC6347, | |||
January 2012, <https://www.rfc-editor.org/info/rfc6347>. | January 2012, <https://www.rfc-editor.org/info/rfc6347>. | |||
[RFC6836] Fuller, V., Farinacci, D., Meyer, D., and D. Lewis, | [RFC6836] Fuller, V., Farinacci, D., Meyer, D., and D. Lewis, | |||
"Locator/ID Separation Protocol Alternative Logical | "Locator/ID Separation Protocol Alternative Logical | |||
Topology (LISP+ALT)", RFC 6836, DOI 10.17487/RFC6836, | Topology (LISP+ALT)", RFC 6836, DOI 10.17487/RFC6836, | |||
January 2013, <https://www.rfc-editor.org/info/rfc6836>. | January 2013, <https://www.rfc-editor.org/info/rfc6836>. | |||
[RFC7835] Saucez, D., Iannone, L., and O. Bonaventure, "Locator/ID | [RFC7835] Saucez, D., Iannone, L., and O. Bonaventure, "Locator/ID | |||
Separation Protocol (LISP) Threat Analysis", RFC 7835, | Separation Protocol (LISP) Threat Analysis", RFC 7835, | |||
DOI 10.17487/RFC7835, April 2016, <https://www.rfc- | DOI 10.17487/RFC7835, April 2016, <https://www.rfc- | |||
editor.org/info/rfc7835>. | editor.org/info/rfc7835>. | |||
[RFC8060] Farinacci, D., Meyer, D., and J. Snijders, "LISP Canonical | ||||
Address Format (LCAF)", RFC 8060, DOI 10.17487/RFC8060, | ||||
February 2017, <https://www.rfc-editor.org/info/rfc8060>. | ||||
[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>. | ||||
9.2. Informative References | ||||
[I-D.ietf-lisp-rfc6830bis] | ||||
Farinacci, D., Fuller, V., Meyer, D., Lewis, D., and A. | ||||
Cabellos-Aparicio, "The Locator/ID Separation Protocol | ||||
(LISP)", draft-ietf-lisp-rfc6830bis-26 (work in progress), | ||||
November 2018. | ||||
Authors' Addresses | Authors' Addresses | |||
Fabio Maino | Fabio Maino | |||
Cisco Systems | Cisco Systems | |||
170 Tasman Drive | 170 Tasman Drive | |||
San Jose, California 95134 | San Jose, California 95134 | |||
USA | USA | |||
Email: fmaino@cisco.com | Email: fmaino@cisco.com | |||
Vina Ermagan | Vina Ermagan | |||
Cisco Systems | ||||
170 Tasman Drive | California | |||
San Jose, California 95134 | ||||
USA | USA | |||
Email: vermagan@cisco.com | Email: ermagan@gmail.com | |||
Albert Cabellos | Albert Cabellos | |||
Universitat Politecnica de Catalunya | Universitat Politecnica de Catalunya | |||
c/ Jordi Girona s/n | c/ Jordi Girona s/n | |||
Barcelona 08034 | Barcelona 08034 | |||
Spain | Spain | |||
Email: acabello@ac.upc.edu | Email: acabello@ac.upc.edu | |||
Damien Saucez | Damien Saucez | |||
End of changes. 102 change blocks. | ||||
338 lines changed or deleted | 527 lines changed or added | |||
This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |