RFC 5873

Pre-Authentication Support for the Protocol for Carrying Authentication for Network Access (PANA)

πŸ“… published May 2010, from ietf

Pre-Authentication Support for the Protocol for Carrying Authentication for Network Access (PANA) πŸ’–

okay bestie, the title block first πŸŽ€ this is RFC 5873, written by Y. Ohba (Toshiba) and A. Yegin (Samsung), published in May 2010. It's an Experimental doc, not Standards Track, so it's for trying things out πŸ§ͺ. The ISSN is 2070-1721. Its header doesn't list anything it obsoletes or updates, so it's standing on its own ✨


Abstract

this doc adds an extension to PANA πŸ¦‹ that lets a PANA Client set up a PANA Security Association ahead of time with a PANA Authentication Agent in a different access network that it might move to later. it's proactive, so the setup happens before the move. iconic πŸ‘‘

Status of This Memo

not a Standards Track spec, babe πŸ™…β€β™€οΈ it's published so people can examine it, implement it experimentally, and evaluate it πŸ”

this doc defines an Experimental Protocol for the Internet community 🌈 it's a product of the IETF and was approved for publication by the IESG. not every IESG-approved doc is a candidate for any level of Internet Standard, so check out Section 2 of RFC 5741 for the details πŸ’…

for the current status, errata, and feedback, head to http://www.rfc-editor.org/info/rfc5873 ✨

Copyright (c) 2010 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 in effect on the publication date. please read these carefully, because they spell out your rights and restrictions for this doc 🫢 Code Components pulled from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions, and they come with no warranty, as the Simplified BSD License describes πŸ“

Table of Contents

1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . . . 2
  1.1.  Specification of Requirements . . . . . . . . . . . . . . . 2
2.  Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.  Pre-Authentication Procedure  . . . . . . . . . . . . . . . . . 3
4.  PANA Extensions . . . . . . . . . . . . . . . . . . . . . . . . 5
5.  Backward Compatibility  . . . . . . . . . . . . . . . . . . . . 6
6.  Security Considerations . . . . . . . . . . . . . . . . . . . . 6
7.  IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 7
8.  Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . 7
9.  References  . . . . . . . . . . . . . . . . . . . . . . . . . . 7
  9.1.  Normative References  . . . . . . . . . . . . . . . . . . . 7
  9.2.  Informative References  . . . . . . . . . . . . . . . . . . 7

1. Introduction ✨

okay so PANA [RFC5191] carries EAP messages between a PANA Client (PaC) and a PANA Authentication Agent (PAA) in the access network πŸ“‘ if the PaC is a mobile device that can move between access networks while its apps are running, it's critical that the handover happens seamlessly, so the apps don't lag during it 😭 when the handover means the PaC has to set up a PANA session with the PAA in the new network, the signaling for that session should be completed as fast as possible. see [RFC5836] for the handover latency requirements πŸš€

this doc extends the PANA protocol [RFC5191] so a PaC can run EAP authentication early and set up a PANA SA (Security Association) with a PAA in another access network it might move to πŸ¦‹ the goal is to realize direct pre-authentication as defined in [RFC5836]. how authorization and accounting work with this pre-authentication extension is out of scope for this doc πŸ™ˆ

1.1. Specification of Requirements

in this doc, several words signify the requirements of the spec. they're often capitalized πŸ”  the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119] πŸ’…

2. Terminology 🧠

these terms are used in this doc, on top of the ones defined in [RFC5191] πŸ’–

  • Serving Network: the access network the host is currently attached to.
  • Candidate Network: an access network that's a potential target of the host's handover.
  • Serving PAA (SPAA): a PAA in the serving network that provides network access authentication for a particular PaC.
  • Candidate PAA (CPAA): a PAA in a candidate network the PaC may move to. a CPAA for one PaC can be an SPAA for another PaC πŸ‘‘
  • Pre-authentication: this refers to EAP pre-authentication, which means using EAP to pre-establish EAP keying material on an authenticator before the peer shows up at the access network that authenticator serves [RFC5836]. in this doc, EAP pre-authentication happens between a PaC and a CPAA 🫢

3. Pre-Authentication Procedure πŸŽ€

a PaC that supports pre-authentication may set up a PANA session for each CPAA 🌸

there may be several ways for a PaC to discover a CPAA πŸ”Ž the output of those mechanisms is an IP address of the discovered CPAA. PANA pre-authentication then runs between the PaC and CPAA using that discovered IP address πŸ“ the IEEE 802.21 [802.21] Information Service MAY be used as a CPAA discovery mechanism ✨

there can be a bunch of criteria for picking a CPAA, plus timing for when to start pre-authentication and when the CPAA becomes the SPAA. those are implementation-specific, so they're outside this doc's scope 🧚

pre-authentication is started by a PaC in a way that's similar to normal authentication πŸ’œ a new 'E' (prE-authentication) bit is defined in the PANA header. when pre-authentication runs, the 'E' bit is set on PANA messages to show that this run is for pre-authentication. negotiating it works like this:

  • when a PaC starts pre-authentication, it sends a PANA-Client-Initiation (PCI) message with the 'E' bit set. the CPAA answers with a PANA-Auth-Request (PAR) message with the 'S' (Start) and 'E' bits set, but only if it supports pre-authentication. otherwise, the 'E' bit of the PAR message gets cleared per Section 6.2 of [RFC5191], which results in a negotiation failure πŸ™…β€β™€οΈ
  • once the PaC and CPAA have successfully negotiated pre-authentication using the 'S' and 'E' bits, the messages they exchange afterwards MUST have the 'E' bit set until the CPAA becomes the SPAA of the PaC. the PaC can do this with more than one CPAA πŸ” if the PaC and CPAA fail to negotiate pre-authentication, the PaC or CPAA that sent a message with both the 'S' and 'E' bits set MUST discard the message it got from the peer that had the 'S' bit set and the 'E' bit cleared. that will eventually end the PANA session πŸ’€

if IP reconfiguration is needed in the access network tied to the CPAA, the 'I' (IP Reconfiguration) bit in PAR messages used for pre-authentication between the PaC and CPAA is also set 🌐 that 'I' bit only takes effect after the CPAA becomes the SPAA ⭐

when a CPAA of the PaC becomes the SPAA (say, because the PaC moved), the PaC tells the PAA about the change using PANA-Notification-Request (PNR) and PANA-Notification-Answer (PNA) messages with the 'P' (Ping) bit set and the 'E' bit cleared. the 'E' bit MUST be cleared in the messages after that 🧹

a PANA SA is required for pre-authentication, so the PNR/PNA exchange can be securely tied back to the earlier authentication πŸ”

the PANA session between the PaC and a CPAA gets deleted by entering the termination phase of the PANA protocol πŸšͺ

here's an example call flow for pre-authentication, shown in Figure 1 πŸ“ˆ EAP authentication happens over PAR and PANA-Auth-Answer (PAN) exchanges, including the one with the 'C' (Complete) bit set πŸ’…

     PaC                                               CPAA
      |                                                 |
+------------------+                                    |
|Pre-authentication|                                    |
|trigger           |                                    |
+------------------+                                    |
      |                  PCI w/'E' bit set              |
      |------------------------------------------------>|
      |            PAR w/'S' and 'E' bits set           |
      |<------------------------------------------------|
      |            PAN w/'S' and 'E' bits set           |
      |------------------------------------------------>|
      |           PAR-PAN exchange w/'E' bit set        |
      |<----------------------------------------------->|
      |            PAR w/'C' and 'E' bits set           |
      |<------------------------------------------------|
      |            PAN w/'C' and 'E' bits set           |
      |------------------------------------------------>|
      .                        .                        .
      .                        .                        .
+----------+                                            |
| Movement |                                            |
+----------+                                            |
      |        PNR w/ 'P' bit set and w/o 'E' bit set   |
      |------------------------------------------------>|
      |                                        +-----------------+
      |                                        |CPAA becomes SPAA|
      |                                        +-----------------+
      |        PNA w/ 'P' bit set and w/o 'E' bit set   |
      |<------------------------------------------------|
      |                                                 |

Figure 1: Pre-Authentication Call Flow πŸ¦‹

4. PANA Extensions 🌈

a new 'E' (prE-authentication) bit is defined in the Flags field of the PANA header, like this πŸ‘‘

 0                   1
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|R S C A P I E r r r r r r r r r|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

'E' (prE-authentication) bit: when pre-authentication runs, the 'E' bit of PANA messages is set to show whether this PANA run is for pre-authentication πŸ™Œ the exact usage is described in Section 3. Bit 6 has been assigned by IANA πŸŽ€

5. Backward Compatibility πŸŽ€

Okay so bestie, backward compatibility between a PANA entity that doesn't support the pre-authentication extension and another PANA entity that does support it is handled like this πŸ’…βœ¨

When a PaC that supports the pre-authentication extension starts PANA pre-authentication by sending a PCI message with the E (prE-authentication) bit set to a PAA that does NOT support the extension, the PAA just ignores the E bit (per Section 6.2 of [RFC5191]) and tries to process the message as a normal authentication attempt πŸ™ˆ So the PaC gets back a PAR message with the E bit cleared. Lowkey awkward, but it works: the negotiation for pre-authentication fails, and the PANA session eventually gets terminated as described in Section 3 πŸ’€

6. Security Considerations πŸ”₯

Okay, this section is serious, so buckle up 😭 This spec is built on the PANA protocol, so it has the same security properties, with ONE big difference: pre-authenticating PaCs are not physically connected to the access network the PAA is associated with. They're connected to some other network somewhere else on the Internet 🌍 That distinction can create greater denial-of-service (DoS) vulnerability if appropriate measures aren't taken. An unprotected PAA can be forced to create state just by an attacker PaC sending PCI messages. Not me being dramatic, but this is a real risk πŸ’”

[RFC5191] explains how the PAA can stay stateless while responding to incoming PCIs. PAAs using pre-authentication SHOULD be following those guidelines (see [RFC5191], Section 4.1) 🧚

It's also recommended that PANA pre-authentication messages only be accepted from PaCs originating from well-known IP networks (e.g., physically adjacent networks) for a given PAA. These IP networks can be used with a whitelist implemented on either the firewall protecting the perimeter around the PAA or the PAA itself πŸ›‘οΈ This prevention measure SHOULD be used whenever it can be practically applied to a given deployment. Main character energy for security, periodt πŸ‘‘

7. IANA Considerations 🌸

As described in Section 4, and following the new IANA allocation policy on PANA messages [RFC5872], bit 6 of the Flags field of the PANA header has been assigned by IANA for the E (prE-authentication) bit πŸ¦‹

8. Acknowledgments 🫢

The authors would like to thank Basavaraj Patil, Ashutosh Dutta, Julien Bournelle, Sasikanth Bharadwaj, Subir Das, Rafa Marin Lopez, Lionel Morand, Victor Fajardo, Glen Zorn, Qin Wu, Jari Arkko, Pasi Eronen, and Joseph Salowey for their support and valuable feedback πŸ’–

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.

[RFC5191]  Forsberg, D., Ohba, Y., Patil, B., Tschofenig, H., and A.
           Yegin, "Protocol for Carrying Authentication for Network
           Access (PANA)", RFC 5191, 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

[RFC5836]  Ohba, Y., Ed., Wu, Q., Ed., and G. Zorn, Ed., "Extensible
           Authentication Protocol (EAP) Early Authentication Problem
           Statement", RFC 5836, April 2010.

[802.21]   IEEE, "Standard for Local and Metropolitan Area Networks:
           Media Independent Handover Services", LAN MAN Standards
           Committee of the IEEE Computer Society 802.21, 2008.

Authors' Addresses πŸ¦‹

Yoshihiro Ohba
Toshiba Corporate Research and Development Center
1 Komukai-Toshiba-cho
Saiwai-ku, Kawasaki, Kanagawa  212-8582
Japan

Phone: +81 44 549 2230
EMail: yoshihiro.ohba@toshiba.co.jp


Alper Yegin
Samsung
Istanbul
Turkey

EMail: alper.yegin@yegin.org

That's the whole spec, bestie!! You made it through πŸŒˆβœ¨πŸ’–

πŸ“¦ where this page comes from