RFC 2520
NHRP with Mobile NHCs
RFC 2520: NHRP with Mobile NHCs ๐ฆ
okay bestie, so RFC 2520 is titled NHRP with Mobile NHCs ๐ It came out of the Network Working Group in February 1999 and is marked Experimental. The authors are J. Luciani (Nortel Networks), H. Suzuki (Cisco Systems), N. Doraswamy (Nortel Networks), and D. Horton (CiTR Pty Ltd). The title block doesn't list anything it obsoletes or updates, so it's standing on its own ๐
Status of this Memo ๐
this one is an Experimental Protocol for the Internet community ๐งช it's not an Internet standard of any kind. they actually want feedback and suggestions for improvement, so go for it ๐ and the memo can be shared freely, distribution is unlimited โจ
Copyright Notice ยฉ๏ธ
Copyright (C) The Internet Society (1999). All Rights Reserved. ๐ธ
Abstract ๐ฆ
so this doc extends NHRP [1] so that Mobile NHCs can register with an NHS in their home LIS and attach to it in an authenticated way ๐
a Mobile NHC is an NHC that doesn't have enough config to find a specific serving NHS in its home LIS ๐งญ but it has a way to find some NHS (which might or might not be the serving one) and attach to that. as [1] describes, an NHC can attach to a 'surrogate' NHS using something like an anycast address ๐ฐ๏ธ then the NHC uses that surrogate to send an NHRP Registration Request toward its home LIS, where the serving NHS lives ๐จ
here's the tea โ [1] does packet authentication hop by hop, and for a mobile NHC it's not practical to have a security relationship with every surrogate NHS ๐ญ so it's presumably desirable to have end to end only authentication for a mobile NHC's registration. this doc describes an authentication extension for NHRP with exactly those end to end only semantics ๐
1. Introduction โจ
the keywords MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL, when they appear in this document, are to be interpreted as described in [4] ๐
this doc is an extension for Mobile NHCs that want to register with their home LIS but first connect to a non-serving NHS to do it ๐ง the reader is encouraged to check out [1] for more details on the NHRP registration process ๐
2.0 Definition of the NHRP Mobile NHC Authentication Extension ๐
Compulsory = 1
Type = 10 (proposed)
Length = variable
the NHRP Mobile NHC Authentication Extension rides along in NHRP Registration packets to carry end to end authentication Information ๐ซถ it's different from the NHRP Authentication Extension in [1], which has hop by hop semantics ๐
you use this new extension when a mobile NHC first connects to an NHS that isn't one of its serving NHSs, and the mobile NHC and that non-serving NHS aren't in a security relationship ๐ the mobile NHC does this so it can send an NHRP Registration Request, through normal routing and forwarding, to one of its serving NHSs, which it does have a security relationship with ๐ as [1] defines it, a serving NHS is an NHS in the NHC's home LIS that the NHC will register with ๐ when that serving NHS gets the Registration Request, it does three things: it authenticates the sender NHC, sets up a VC to the NHC, and then sends an NHRP Resolution Reply back on that new VC ๐ฆ
heads up, [1] says a transit NHS (like the one the mobile NHC first connects to) must ignore an extension it doesn't understand, and an NHS must not change the order of extensions in an NHRP packet ๐ง so the end to end semantics of this extension survive without messing with existing implementations โจ
if a serving NHS gets a packet that fails the hop by hop authentication test from [1], then the NHS MUST generate an Error Indication of type Authentication Failure and discard the packet ๐ซ BUT when the NHRP Mobile NHC Authentication Extension is used like we just described, sending an Error Indication isn't possible ๐ญ there's no route back toward the mobile NHC, assuming no VC already exists between the mobile NHC and the serving NHS that got the Registration Request ๐ in that case the Registration Request is just dropped ๐ฅ
2.1 Header Format ๐
the authentication header looks like this ๐
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved | Security Parameter Index (SPI)|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Src Addr... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+-+-+-+-+-+-+-+-+-+-+ Authentication Data... -+-+-+-+-+-+-+-+-+-+
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
the Security Parameter Index (SPI) is basically an index into a table that holds the keys and other info, like a hash algorithm ๐๏ธ Src and Dst either talk offline using manual keying, or online using a key management protocol, to fill that table up ๐ the sending NHRP entity is always the one that allocates the SPI and the parameters tied to it ๐
the Src Addr field is variable length ๐ it holds the address assigned to the outgoing interface ๐ its length comes from the source protocol length field in the mandatory part of the NHRP header โจ the tuple <spi, src addr> uniquely identifies the key and the other parameters used in authentication ๐
the length of the authentication data field depends on the hash algorithm in use ๐งฎ the Authentication Data field holds the keyed hash calculated over these fields: the fixed part (with hop count, packet size and checksum treated as if they were set to zero), the mandatory part, and extensions up to and including the Mobile NHC Authentication extension ๐ซถ
ok this part is so important ๐ฅน [1] defines an explicit ordering of extensions, like this:
- (a) If the Responder Address extension exists then it must appear before the Authentication Extension.
- (b) Any extensions that may be modified in transit (e.g., Forward Transit Extension, Hop by Hop Authentication Extension) must appear after the Mobile NHC Authentication Extension.
2.2 SPI and Security Parameters Negotiation ๐
SPI's can be negotiated manually or with an Internet Key Management protocol ๐ค Manual keying MUST be supported, no exceptions ๐ the following parameters are tied to the tuple <SPI, src>: lifetime, Algorithm, and Key ๐๏ธ Lifetime is how many seconds the key stays valid ๐ฐ๏ธ with manual keying that duration can be infinite โพ๏ธ also, to support manual keying better, there can be multiple tuples active at the same time (Dst being the same) ๐ธ
Algorithm is the hash algorithm the two entities agreed on ๐ง HMAC-MD5-128 [2] is the default and MUST be implemented ๐ other algorithms MAY be supported by defining new values ๐ฆ IANA assigns the numbers that identify the algorithm being used, as described in [1] ๐
any Internet standard key management protocol MAY so be used to negotiate the SPI and parameters ๐ง
2.3 Message Processing ๐
unauthenticated 'Mobile' Registration Request processing goes like this, per [1] ๐บ๏ธ
- the NHC puts the internetwork address of a serving NHS in the
Destination Protocol Addressfield; if the NHS address is unknown, then the NHC puts in its own internetwork address. Aresponder addressextension is optionally added. ๐ท - the non-serving NHS forwards the packet along the routed path based on the contents of the
Destination Protocol Addressfield. ๐ค๏ธ - the serving NHS that gets the NHRP Registration Request sets up a direct VCC to the NHC after authenticating the request ๐
- the serving NHS then sends the NHRP Registration Reply back to the NHC on that new VCC. the NHS MUST wait some configured interval before doing this reply, so no race condition happens between the VC setup and sending the NHRP reply packet โณ
- the NHC then sends all NHRP traffic to the serving NHS on the direct VCC ๐
when the NHC adds the authentication extension header, it does a table look up to fetch the SPI and the security parameters based on the outgoing interface address ๐ if there are no entries in the table and key management is supported, the NHC kicks off the key management protocol to fetch the parameters it needs ๐ the NHC builds the Authentication Extension payload and calculates the hash by zeroing out the authentication data field ๐งฎ the result goes in the authentication data field ๐ the src address field in the payload is the internetwork address assigned to the outgoing interface ๐
if key management isn't supported and authentication is mandatory, the packet gets dropped and that's logged ๐
on the receiving end, the serving NHS fetches the parameters based on the SPI and the internetwork address in the authentication extension payload ๐ the authentication data field gets extracted before it's zeroed out so the hash can be calculated ๐ง it computes the hash over the entire payload, and if the hash doesn't match, an "abnormal event" has occurred ๐จ
the keys a mobile NHC uses to talk to the serving NHS in NHRP Registration Requests can be reused in later resolution and purge requests sent directly to the serving NHS after it gets the NHRP Registration Reply ๐ but the authentication extension defined in [1] MUST be used when these keys are applied to resolution and purge packets ๐
Hop by Hop Authentication[1] and End to End authentication MAY be used together to protect against both spoofing and denial of service attacks ๐ก๏ธ if only an end-to-end Mobile NHC Authentication Extension is present, it MAY be the policy of each transit NHS to reject the NHRP Registration Request based on needing Hop by Hop authentication to be present ๐ง that kind of requirement is a local matter ๐
2.4 Security Considerations ๐
Okay, bestie, this one is serious. The keys you pick have to be strong, because the security of the whole system depends on choosing them properly. Weak keys and the whole thing falls apart ๐
End-to-end authentication ๐ก๏ธ shuts down spoofing attacks on the home subnet, and it does that by not leaning on the chain of trust, which could already be compromised. More on end-to-end authentication is in [3]. โจ
Hop-by-hop authentication ๐ช stops denial of service attacks by putting access control at the very first point of contact with the NHRP infrastructure. Bouncer energy ๐
Security for this extension works on an end-to-end basis ๐. Data can only be trusted as much as you trust the endpoint entities along the path it traveled. A chain of trust gets set up among the NHRP entities on the path of the NHRP Message, and if security in one NHRP entity gets compromised, security in the entire NHRP domain is compromised too. One weak link and the whole group chat gets leaked ๐ญ
Data integrity covers the entire NHRP payload, up to and including the Mobile NHC Authentication Extension ๐. This guarantees that the data and extensions covered by this authentication hash weren't modified, and that the source is authenticated too. But if the authentication extension isn't used, or the security is compromised, NHRP entities are open to spoofing attacks, active attacks, and passive attacks. Not me being exposed like that ๐
There is no mechanism to encrypt the messages ๐ซฃ. The assumption is that a standard layer 3 confidentiality mechanism will be used to encrypt and decrypt messages. It is recommended to use an Internet standard key management protocol to negotiate the keys between the neighbors. And if you negotiate keys some other way and send them in clear text, the security is completely compromised. Please don't do that, periodt ๐ซ๐
References ๐
- [1] Luciani, J., Katz, D., Piscitello, D., Cole, B. and N. Doraswamy, "NBMA Next Hop Resolution Protocol (NHRP)", RFC 2332, April 1998.
- [2] Krawczyk, H., Bellare, M. and R. Canetti, "HMAC: Keyed Hashing for Message Authentication", RFC 2104, February 1997.
- [3] Perkins, C., "IP Mobility Support", RFC 2002, October 1996.
- [4] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
Authors' Addresses ๐ซถ
Here are the squad members who made this happen ๐
James V. Luciani
Nortel Networks
3 Federal Street
Mail Stop: BL3-03
Billerica, MA 01821
Phone: +1 978 916 4734
EMail: luciani@baynetworks.com
Hiroshi Suzuki
Cisco Systems
170 West Tasman Dr.
San Jose, CA 96134
Phone: +1 408 525 6006
EMail: hsuzuki@cisco.com
Naganand Doraswamy
Nortel Networks
3 Federal Street
Mail Stop: BL3-03
Billerica, MA 01821
Phone: +1 978 916 4734
EMail: naganand@baynetworks.com
David Horton
CiTR PTY Ltd
Level 2 North Tower
339 Coronation Drive
Milton, Australia 4064
Phone: +61 7 32592222
EMail: d.horton@citr.com.au
Full Copyright Statement โ๏ธ
Copyright (C) The Internet Society (1999). All Rights Reserved.
This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.
The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. ๐
๐ฆ where this page comes from
- ietf: rfc2520 1999-02
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms