RFC 6345
Protocol for Carrying Authentication for Network Access (PANA) Relay Element
RFC 6345: Protocol for Carrying Authentication for Network Access (PANA) Relay Element π
okay bestie, let's get the title block sorted first π
- Request for Comments: 6345
- Category: Standards Track
- Date: August 2011
- ISSN: 2070-1721
- Publisher: the Internet Engineering Task Force (IETF)
- Authors: P. Duffy (Cisco), S. Chakrabarti (Ericsson), R. Cragie (PG&E), Y. Ohba, Ed. (Toshiba), and A. Yegin (Samsung)
- Obsoletes / Updates: nothing is listed in the title block, so this one doesn't obsolete or update any other RFC π
Abstract π¦
okay so this doc specifies the PANA Relay Element functionality, which lets PANA messages travel between a PANA Client (PaC) and a PANA Authentication Agent (PAA) when the two nodes can't reach each other through regular IP routing. it's giving "the middleman that makes it work" energy π«Ά
Status of This Memo π
this is an Internet Standards Track document, bestie πΈ
it's a product of the Internet Engineering Task Force (IETF), so it represents the consensus of the IETF community. it got public review and was approved for publication by the Internet Engineering Steering Group (IESG). if you want more on Internet Standards, check Section 2 of RFC 5741.
info about the current status, any errata, and how to give feedback lives at http://www.rfc-editor.org/info/rfc6345 β¨
Copyright Notice Β©οΈ
Copyright (c) 2011 IETF Trust and the persons identified as the document authors. All rights reserved.
this doc is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) as they stand on the publication date. please read them carefully bc they explain your rights and restrictions. π
any Code Components pulled out of this document have to include the Simplified BSD License text, as described in Section 4.e of the Trust Legal Provisions. they come without warranty, as described in the Simplified BSD License.
Table of Contents ποΈ
1. Introduction ....................................................2
1.1. Specification of Requirements ..............................3
2. PANA Relay Element ..............................................3
3. Security of Messages Sent between PRE and PAA ...................5
4. PANA Messages for Relay Operation ...............................7
4.1. PANA-Relay .................................................7
5. PANA AVPs for Relay Operation ...................................7
5.1. PaC-Information AVP ........................................7
5.2. Relayed-Message AVP ........................................7
6. Security Considerations .........................................8
7. IANA Considerations ............................................10
8. Acknowledgments ................................................10
9. References .....................................................10
9.1. Normative References ......................................10
9.2. Informative References ....................................11
1. Introduction β¨
okay so PANA [RFC5191] is a UDP-based protocol. its whole job is doing Extensible Authentication Protocol (EAP) authentication between a PANA Client (PaC) and a PANA Authentication Agent (PAA). π
this doc specifies the PANA Relay Element (PRE) functionality. the PRE is what lets PANA messages move between a PaC and a PAA when the two nodes can't reach each other with regular IP routing. for example, in ZigBee IP [ZIGBEEIP], which runs on 6LoWPAN [RFC4944], a joining node (PaC) can only use a link-local IPv6 address to talk to a parent node before PANA authentication. the PAA usually lives in a 6LowPAN Border Router (6LBR) [6LoWPAN-ND], which is often multiple IP hops away from the PaC. so the PRE on the parent node relays PANA messages between the PaC and the PAA in this setup. it's the main character of this whole scenario π
1.1. Specification of Requirements π§
in this doc, a few words are capitalized on purpose, bc they carry real weight. the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" are to be interpreted as described in [RFC2119]. πΈ
2. PANA Relay Element πΈ
okay this section is the PRE tea β
a PANA Relay Element (PRE) is a node sitting between a PaC and a PAA. its job is relaying the PANA messages between them. the PRE doesn't need to keep per-PaC state. from the PaC's point of view, the PRE looks like the PAA. normal IP routing happens between the PRE and the PAA. a PAA can talk to multiple PREs, and a PRE can talk to multiple PAAs, and for each PaC it picks one PAA to talk to. π¦
by default, the PaC finds the PRE through the normal PAA discovery mechanism defined in [RFC5192]. PREs are assumed to be configured with the IP address(es) of the PAA(s). dynamic PAA discovery schemes for PREs are outside the scope of this doc, so we're not getting into that here π
the PRE and the PAA support the relay operation like this:
When the PRE receives a PANA message from the PaC, it makes a PANA-Relay (PRY) message (see Section 4.1). that PRY message contains a Relayed-Message AVP (see Section 5.2) and a PaC-Information AVP (see Section 5.1). the Relayed-Message AVP wraps the entire PANA Message the PRE got from the PaC. the PaC-Information AVP holds the PaC's IP address and the UDP port number it used to send the PANA messages. then the PRY message goes to the PAA. π
When the PAA gets the PRY message, it pulls the PaC-originated PANA message out of the Relayed-Message AVP, plus the PaC's IP address and UDP port number out of the PaC-Information AVP. the PaC-originated PANA message gets processed the same way it's specified in [RFC5191], with these exceptions:
(a) the IP address and port number in the PaC-Information AVP, together with the source IP address and UDP port number of the PRE, are used to identify the PaC among multiple PANA-Client-Initiation messages. those can come from different PaCs through the same PRE, or from more than one PaC with the same IP address and port number through different PREs. π₯
(b) the IP address and port number in the PaC-Information AVP are kept by the PAA in the PANA session attribute "IP address and UDP port number of the PaC" [RFC5191]. π
(c) the IP address and UDP port number of the PRE are kept by the PAA in a new PANA session attribute, "IP address and UDP port number of the PRE". a PANA session counts as a relayed PANA session if this attribute has a non-null value. π§
When the PAA originates a PANA message for a relayed PANA session, it sends a PRY message to the PRE's IP address and sets the destination UDP port number to the PRE's UDP port number stored in the PANA session attribute "IP address and UDP port number of the PRE". the PRY message has a Relayed-Message AVP holding the PAA-originated PANA message, and also a PaC-Information AVP holding the PaC's IP address and UDP port number. β¨
When the PRE gets the PRY message, it pulls the PAA-originated PANA message out of the Relayed-Message AVP, and the PaC's IP address and UDP port number out of the PaC-Information AVP. the PAA-originated PANA message then goes to the PaC's IP address, with the source UDP port number set to the PANA port number (716) and the destination UDP port number set to the UDP port number in the Relayed-Message AVP. π
the Session Identifier and Sequence Number of any PRY message are set to zero. PRY messages are never retransmitted by the PRE or the PAA. heads up though: the PANA message inside a Relayed-Message AVP may be retransmitted by the PaC or the PAA, which leads to a new PRY message carrying that same Relayed-Message AVP. π
A PAA that supports this specification MUST be able to process PRY messages for PaC-initiated PANA sessions. this one's non-negotiable π
this spec assumes there's at most one PRE between the PaC and the PAA. running the relay operation on a PANA message that's already relayed (i.e., carried inside a PRY message) is out of scope for this spec. π¦
Figure 1 is an example message flow with a PRE. bestie, look at this diagram, it's so clear π
PaC PRE PAA srcIP:port->dstIP:port
----- ----- ----- ----------------------
1. ---PCI--> IP1:p1 -> IP2a:716
2. ---PRY[P{IP1:p1},R{PCI}]--> IP2b:p2 -> IP3:716
3. <--PRY[P{IP1:p1},R{PAR}]--- IP3:716 -> IP2b:p2
4. <--PAR--- IP2a:716 -> IP1:p1
5. ---PAN--> IP1:p1 -> IP2a:716
6. ---PRY[P{IP1:p1},R{PAN}]--> IP2b:p2 -> IP3:716
7. <--PRY[P{IP1:p1},R{PAR}]--- IP3:716 -> IP2b:p2
8. <--PAR--- IP2a:716 -> IP1:p1
9. ---PAN--> IP1:p1 -> IP2a:716
10. ---PRY[P{IP1:p1},R{PAN}]--> IP2b:p2 -> IP3:716
IP1 is the IP address of PaC.
IP2a and IP2b are the IP addresses of PRE.
IP2a is used for communicating with PaC.
IP2b is used for communicating with PAA.
The two IP address may be the same.
IP3 is the IP address of PAA.
p1 is PaC-assigned UDP port number.
p2 is PRE-assigned UDP port number.
P: PaC-Information AVP
R: Relayed-Message AVP
Figure 1: Example Call Message for PANA Relay
3. Security of Messages Sent between PRE and PAA β¨
Okay bestie, so PRE/PAA security is OPTIONAL π«Ά because PANA messages are built to run over untrusted networks anyway. BUT if you do want a cryptographic mechanism, it SHOULD be IPsec π. If the device can't support IPsec, an alternative like DTLS [RFC4347] or link-layer cryptographic security, etc., may be used instead. This section explains how IPsec [RFC4301] can secure the PANA relay messages π.
When IPsec is in play, each PRE must have an established pairwise trust relationship with a PAA. So if messages from a PaC are getting relayed by a PRE to a PAA, the PRE and the PAA must be configured to use IPsec for the messages they swap π.
PREs and PAAs that support secure PRE to PAA communication use IPsec under these conditions:
Selectors PREs are manually configured with the addresses of
the PAAs to which PANA messages are to be forwarded.
PAAs that will be using IPsec for securing PANA
messages must also be configured with a list of the
PREs to which messages will be returned. The
selectors for the PREs and PAAs will be the pairs of
addresses defining PREs and PAAs that exchange PANA
messages on the PANA UDP port 716 in their source or
destination port.
Mode PREs and PAAs use transport mode and ESP. The
information in PANA messages is not generally
considered confidential, so encryption need not be
used (i.e., NULL encryption can be used).
Key management Because the PREs and PAA must be manually
configured, manually configured key management may
suffice, but does not provide defense against
replayed messages. Accordingly, IKE with preshared
secrets SHOULD be supported. IKE with public keys
MAY be supported.
Security policy PANA messages between PREs and PAAs should only be
accepted from PANA peers as identified in the local
configuration.
Authentication Shared keys, indexed to the source IP address of the
received PANA message, are adequate in this
application.
Availability Appropriate IPsec implementations are likely to be
available for PAAs and for PREs in more featureful
devices used in enterprise and core ISP networks.
IPsec is less likely to be available for PREs in
low-end devices primarily used in the home or small
office markets.
4. PANA Messages for Relay Operation π¦
4.1. PANA-Relay
The PANA-Relay (PRY) message is sent by the PRE to the PAA, or by the PAA to the PRE π. It contains one PaC-Information AVP and one Relayed-Message AVP. The PRY message SHOULD NOT carry other AVPs π .
In a PRE-originated PRY message, the PaC-Information AVP holds an IP address and the UDP port number of the PANA message that was originated by the PaC and is carried in the Relayed-Message AVP π§.
In a PAA-originated PRY message, the information in the PaC-Information AVP MUST be copied from the "IP address and UDP port number of the PaC" attribute of the associated PANA session [RFC5191] π.
The Session Identifier and Sequence Number field of any PRY message MUST be set to zero. A PRY message MUST NOT be retransmitted by the PRE or the PAA π.
PANA-Relay ::= < PANA-Header: 5 >
{ PaC-Information }
{ Relayed-Message }
*[ AVP ]
5. PANA AVPs for Relay Operation π
5.1. PaC-Information AVP
The PaC-Information AVP (AVP Code 10) is of type OctetString and contains an IP address (16-octet for an IPv6 address or 4-octet for an IPv4 address) followed by a 2-octet UDP port number of the PaC, both encoded in network-byte order πΈ.
5.2. Relayed-Message AVP
The Relayed-Message (AVP Code 11) is of type OctetString and contains a relayed PANA message excluding the UDP and IP headers π.
6. Security Considerations π₯
Okay, this section is serious, so read it with me π₯Ή. A PRE's main job is to help transport PANA messages between the PaC and the PAA. Relay operation between the PRE and the PAA forms an additional logical link for relaying the end-to-end PANA messages between the PaC and the PAA. In that sense, a PRE is kind of like a bridge or a router sitting between the PaC and the PAA when non-relayed PANA [RFC5191] is used π.
A PRE can pose certain threats to the relayed PANA messages π¬. It can delay or drop PANA messages sent by the PaC or the PAA. It can also spoof or modify PANA messages sent towards the PaC or the PAA. These threats are similar to what an on-path bridge/router (i.e., a man-in-the-middle, MitM) can pose to non-relayed PANA. EAP and PANA protocols are designed to operate over unsecure links where aforementioned threats can already exist. Even though these threats cannot be leveraged to gain unauthorized network access, or compromise of cryptographic keys (e.g., MK, MSK, EMSK, etc.), other damages such as preventing authentication to complete, or denial-of service are still possible π.
Even though the PRE-to-PAA relay path appears to be a separate additional logical link for transporting the PANA messages, the PRE may pose a few additional risks versus traditional on-path bridges and routers. The following explains the risks and mitigations of PRE as a relay device π§.
The PRE inserts PaC-Information AVP as the PaC-generated PANA packet is encapsulated in a PRY packet to the PAA. This AVP carries the IP address and the UDP port number values of the PANA packet as sent by the PAC. These values are already carried inside the IP and UDP headers with non-relayed PANA and they are not necessarily secured. EAP and PANA are designed to work in the absence of their protection. Therefore, no additional PANA-layer security is needed when these values are carried as PANA AVPs between the PRE and the PAA. If a future document defines additional payload AVPs for the PRY messages, there may be a need to define additional security for those messages π.
A rogue PRE can spoof PANA messages on behalf of a victim PaC and receive the PAA response irrespective of the location of the PRE with respect to the network topology. Achieving the same threat with non-relayed PANA requires the rogue node be an MitM, otherwise the spoofed packets may be dropped by the ingress filtering network elements, or the responses would be directly sent to the victim PaC IP address and may not be received by the rogue node. Nevertheless, such a rogue PRE cannot perform full initial authentication on behalf of the victim PaC unless it also holds the PaC's credentials (including the master key). Furthermore, any spoofed PANA messages after the initial authentication will fail the integrity checks at the PAA when a key-generating EAP method is used π΅οΈ.
The only state that can change on the PAA upon a rogue PRE sending a spoofed PRY is the IP address and UDP port number of the PRE stored as PANA session attributes, which impacts where the PAA sends the next PANA packet (i.e., to the rogue PRE instead of the legitimate PRE). The PAA also needs to handle the PaC-Information AVP in addition to the PaC-originated PANA message carried in the Relayed-Message AVP, so use of the PRE may impose additional storage requirements on the PAA. A rogue PRE generating a valid PANA packet requires it be a MitM in order to synch up with the PANA session state and attributes on the PaC. Such a MitM can already disturb the EAP and PANA even without playing the role of a PRE π«£.
An unauthorized node pretending to be a PAA can spoof the relayed PANA messages to the PRE in order to get them delivered to the PaC. While the harm caused by such spoofed packets are limited (due to the EAP and PANA design with unsecured network operation in mind), the processing of bogus packets can cause processing load on the PaC π¦.
Some of the risks stemming from the aforementioned threats are already handled by the EAP and PANA as described. The residual risks shall be mitigated using additional physical or cryptographic security in the network hosting the PREs and the PAAs. Access control lists implemented on the PRE, PAA, or intermediary firewalls supported by cryptographic or physical authentication/authorization are needed for protecting legitimate PRE and PAAs against rogue ones. Details of the cryptographic mechanisms using IPsec are specified in Section 3. Use of manually configured preshared keys for IPsec between PREs and PAAs does not defend against replayed PANA messages π‘οΈ.
PREs do not need to maintain per-PaC state; therefore, they are robust against resource consumption DoS (Denial-of-Service) attacks πͺ.
In the relay operation, the IP address of the PAA that is seen by the PaC (i.e., an IP address of the PRE) is different from the IP address of the PAA that is seen by the authentication server. If an EAP channel binding solution uses the IP address of the PAA as part of channel binding parameters, such a solution must take this into account. Note that the same issue arises even when non-relayed PANA is used and the PAA has one IP address configured on its interface facing the PaC and another IP address on the other interface facing the authentication server π.
7. IANA Considerations π·
As described in Sections 4 and 5, and following the new IANA allocation policy on PANA messages [RFC5872], one Message Type and two PANA AVP Codes have been assigned π.
- A Message Type of
5for PANA-Relay (PRY) message with the 'R' (Request) bit cleared. - A standard AVP Code of
10for PaC-Information AVP. - A standard AVP Code of
11for Relayed-Message AVP.
8. Acknowledgments π«Ά
The authors would like to thank Vlad Gherghisan, Shohei Watanabe, Richard Kelsey, Rafa Marin Lopez, Margaret Wasserman, Alan DeKok, Ralph Droms, Jari Arkko, Yoshifumi Nishida and Stephen Farrell for their valuable comments π.
9. References π
9.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC4301] Kent, S. and K. Seo, "Security Architecture for the
Internet Protocol", RFC 4301, December 2005.
[RFC5191] Forsberg, D., Ohba, Y., Patil, B., Tschofenig, H., and
A. Yegin, "Protocol for Carrying Authentication for
Network Access (PANA)", RFC 5191, May 2008.
[RFC5192] Morand, L., Yegin, A., Kumar, S., and S. Madanapalli,
"DHCP Options for Protocol for Carrying Authentication
for Network Access (PANA) Authentication Agents",
RFC 5192, May 2008.
[RFC5872] Arkko, J. and A. Yegin, "IANA Rules for the Protocol
for Carrying Authentication for Network Access (PANA)",
RFC 5872, May 2010.
9.2. Informative References β¨
okay so these are the friends this RFC name-drops for extra context, not the ones it needs to function, but they're still iconic π«Ά
[RFC4347] Rescorla, E. and N. Modadugu, "Datagram Transport Layer
Security", RFC 4347, April 2006.
[RFC4944] Montenegro, G., Kushalnagar, N., Hui, J., and D.
Culler, "Transmission of IPv6 Packets over IEEE
802.15.4 Networks", RFC 4944, September 2007.
[6LoWPAN-ND] Shelby, Z., Chakrabarti, S., and E. Nordmark, "Neighbor
Discovery Optimization for Low Power and Lossy Networks
(6LoWPAN)", Work in Progress, June 2011.
[ZIGBEEIP] ZigBee Alliance, "ZigBee IP Specification",
ZigBee 095023r10, Work in Progress, July 2010.
Authors' Addresses π
and these are the humans behind the whole thing, so you know exactly who to slide into the DMs about it π
Paul Duffy
Cisco Systems
200 Beaver Brook Road
Boxborough, MA 01719
USA
EMail: paduffy@cisco.com
Samita Chakrabarti
Ericsson
300 Holger Way
San Jose, CA 95135
USA
EMail: samita.chakrabarti@ericsson.com
Robert Cragie
Pacific Gas & Electric
Gridmerge Ltd., 89 Greenfield Crescent
Wakefield, WF4 4WA
UK
EMail: robert.cragie@gridmerge.com
Yoshihiro Ohba (editor)
Toshiba Corporate Research and Development Center
1 Komukai-Toshiba-cho
Saiwai-ku, Kawasaki, Kanagawa 212-8582
Japan
Phone: +81 44 549 2127
EMail: yoshihiro.ohba@toshiba.co.jp
Alper Yegin
Samsung
Istanbul
Turkey
EMail: a.yegin@partner.samsung.com
π¦ where this page comes from
- ietf: rfc6345 2011-08
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms