RFC 5193

Protocol for Carrying Authentication for Network Access (PANA) Framework

πŸ“… published May 2008, from ietf

RFC 5193: Protocol for Carrying Authentication for Network Access (PANA) Framework πŸ¦‹

Okay bestie, this is RFC 5193, a PANA framework doc from the Network Working Group πŸ’–. It's Informational (so not an Internet standard, just useful info for the community 🧚), dated May 2008. The authors are P. Jayaraman (Net.Com), R. Lopez (Univ. of Murcia), Y. Ohba, Ed. (Toshiba), M. Parthasarathy (Nokia), and A. Yegin (Samsung). It doesn't obsolete or update anything, since the header doesn't list any. Iconic team πŸ‘‘

Status of This Memo

This memo gives information to the Internet community 🫢. It doesn't specify an Internet standard of any kind. Distribution of this memo is unlimited ✨.

Abstract

This doc defines the general Protocol for Carrying Authentication for Network Access (PANA) framework πŸ’…. That means the functional elements, the high-level call flow, and the deployment environments.

Table of Contents ✨

   1. Introduction ....................................................2
      1.1. Specification of Requirements ..............................2
   2. General PANA Framework ..........................................2
   3. Call Flow .......................................................5
   4. Environments ....................................................6
   5. Security Considerations .........................................8
   6. Acknowledgments .................................................8
   7. References ......................................................8
      7.1. Normative References .......................................8
      7.2. Informative References .....................................9

1. Introduction ✨

Okay so PANA (Protocol for carrying Authentication for Network Access) is a network access authentication protocol that doesn't care what link layer you're on πŸ¦‹. It runs between a client that wants network access and a server on the network side. PANA defines a new Extensible Authentication Protocol (EAP) [RFC3748] lower layer, and it runs over IP between the protocol endpoints. The way that's built is so clean 😭

The motivation and requirements for all this are in [RFC4058]. The protocol details are in [RFC5191] πŸ’œ. After a successful PANA authentication, you can get per-data-packet security using physical security, link-layer ciphering, or IPsec [PANA-IPSEC] πŸ”₯. The PANA server may or may not be colocated with the entity doing the per-packet access control function. When those two are separate, a protocol (e.g., [ANCP-PROTO]) may be used to carry info between the two nodes 🌸.

PANA is meant for any access network, no matter what the underlying security is 🌈. For example, the network might be physically secured, or it might get secured with cryptographic mechanisms after the client-network authentication succeeds. It is mandatory for a PANA deployment to implement behavior that ensures the integrity of PANA messages when the EAP method produces MSK. It is not mandatory to implement support for network security at the link layer or network layer, though πŸ™ˆ.

This doc sets up the general framework for describing how all these PANA and other network access authentication elements interact with each other 🧚. It especially considers the two basic types of deployment environments (see Section 4) ✨.

1.1. Specification of Requirements

In this doc, a few words signal how strict a requirement is, and 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. General PANA Framework ✨

PANA is designed to help clients get authenticated and authorized in access networks πŸ¦‹. It's an EAP [RFC3748] lower layer that carries EAP authentication methods, encapsulated inside EAP, between a client node and a server in the access network πŸ’–. PANA handles the authentication between those two entities, but it's only part of an overall AAA (Authentication, Authorization and Accounting) and access control framework πŸ‘‘. A AAA and access control framework using PANA is made up of four functional entities, and they're all in the figure below πŸ’….

Figure 1 shows these functional entities and the interfaces (protocols, APIs) among them 🌸.

                                                 RADIUS,
                                                 Diameter,
           +-----+       PANA        +-----+     LDAP, API, etc. +-----+
           | PaC |<----------------->| PAA |<------------------->| AS  |
           +-----+                   +-----+                     +-----+
              ^                         ^
              |                         |
              |         +-----+         |
      IKE,    +-------->| EP  |<--------+ ANCP, API, etc.
      4-way handshake,  +-----+
      etc.                 .
                           .
                           .
                           v
                      Data traffic

                       Figure 1: PANA Functional Model

PANA Client (PaC) πŸ’œ

The PaC is the client implementation of PANA. It lives on the node that's requesting network access 🧚. PaCs can be end hosts like laptops, PDAs, cell phones, desktop PCs, or routers connected to a network over a wired or wireless interface πŸ’». A PaC is responsible for requesting network access and for engaging in the authentication process using PANA ✨.

PANA Authentication Agent (PAA) πŸ”₯

The PAA is the server implementation of PANA πŸ’…. The PAA is in charge of interfacing with the PaCs so it can authenticate and authorize them for the network access service 🫢.

The PAA consults an authentication server to verify a PaC's credentials and rights πŸ¦‹. If the authentication server is on the same node as the PAA, an API is enough for that interaction. When they're separated (way more common in public access networks), a protocol needs to run between the two 🌈. AAA protocols like RADIUS [RFC2865] and Diameter [RFC3588] are commonly used for this πŸ’–.

The PAA is also responsible for updating the access control state (i.e., filters) when the authorization state gets created or deleted πŸ‘‘. The PAA tells the Enforcement Points (EPs) in the network about the updated state 🌸. If the PAA and EP are on the same node, an API is enough for that communication. Otherwise, a protocol is required to carry the authorized client attributes from the PAA to the EP πŸ™ˆ.

The PAA lives on a node that's typically called a NAS (network access server) in the access network 🧚. For example, that could be a BRAS (Broadband Remote Access Server) [DSL] in DSL networks, or a PDSN (Packet Data Serving Node) [3GPP2] in 3GPP2 networks πŸŽ€. The PAA may be one or more IP hops away from the PaCs ✨.

Authentication Server (AS) 🌟

The AS is the server implementation in charge of verifying the credentials of a PaC that's requesting network access service πŸ’…. It gets requests from the PAA on behalf of the PaCs, and it responds with the result of the verification together with the authorization parameters (e.g., allowed bandwidth, IP configuration, etc.) πŸ’–. This is the server that terminates the EAP and the EAP methods πŸ”₯. The AS might be hosted on the same node as the PAA, on a dedicated node in the access network, or on a central server somewhere in the Internet 🌈.

Enforcement Point (EP) πŸ¦‹

The EP is the access control implementation in charge of allowing access (data traffic) for authorized clients while blocking everyone else πŸ›‘οΈ. An EP learns the attributes of the authorized clients from the PAA πŸ‘‘.

The EP uses non-cryptographic or cryptographic filters to selectively allow and discard data packets πŸ’œ. These filters may be applied at the link layer or the IP layer [PANA-IPSEC]. When cryptographic access control is used, a secure association protocol [RFC3748] needs to run between the PaC and the EP 🫢. After the secure association protocol finishes, link- or network-layer per-packet security (for example TKIP, IPsec ESP) is enabled for integrity protection, data origin authentication, replay protection, and optionally confidentiality protection πŸ”.

An EP sits between the access network (the topology within reach of any client) and the accessed network (the topology within reach of only authorized clients) 🌸. It must be located strategically in a local area network to minimize access by unauthorized clients πŸ™ˆ. It is recommended but not mandated that the EP be on the path between the PaC and the PAA for that same reason 🧚. For example, the EP can be hosted on the switch directly connected to the clients in a wired network πŸ’». That way the EP can drop unauthorized packets before they reach any other client node or nodes beyond the local area network πŸ’….

Some of the entities may be colocated depending on the deployment scenario πŸ¦‹. For example, the PAA and EP would be on the same node (BRAS) in DSL networks. In that case, a simple API is enough between the PAA and EP ✨. In small enterprise deployments, the PAA and AS may be hosted on the same node (access router), which removes the need for a protocol run between the two 🌈. Whether to colocate these entities, and where they sit in the network topology, are deployment decisions that are out of the scope of this document πŸ’œ.

Part 2 is next, bestie, and it's where Section 3 (Call Flow) starts πŸ«ΆπŸ¦‹

3. Call Flow ✨

Okay so Figure 2 is basically the whole PANA dance, step by step, for getting a client onto the network πŸ’ƒ Here it is:

                  PaC             EP               PAA              AS
                   |               |                |                |
      IP address ->|               |                |                |
      config.      |       PANA    |                |      AAA       |
                   |<------------------------------>|<-------------->|
                   |               |  Provisioning  |                |
      (Optional)   |               |<-------------->|                |
      IP address ->|               |                |                |
      reconfig.    |   Sec.Assoc.  |                |                |
                   |<------------->|                |                |
                   |               |                |                |
                   |  Data traffic |                |                |
                   |<----------------->             |                |
                   |               |                |                |

Figure 2: PANA Signaling Flow πŸ¦‹

So the EP on the access network lets general data traffic through from any authorized PaC πŸ”“ But unauthorized PaCs only get a limited set of traffic, like PANA, DHCP, router discovery, etc. πŸ™ˆ This is giving newly attached clients just enough access to do PANA and get authorized for the unlimited service. Iconic, honestly πŸ‘‘

The PaC configures an IP address dynamically or statically before it runs PANA 🌸 After successful PANA authentication, depending on the deployment scenario, the PaC may need to reconfigure its IP address or configure additional IP address(es). For example, a link-local IPv6 address may be used for PANA, and then the PaC may be allowed to configure additional global IPv6 address(es) once it's authenticated ✨ Another example: a PaC may be limited to an IPv4 link-local address during PANA, and then allowed to reconfigure its interface with a non-link-local IPv4 address after authentication. Main character energy πŸŽ€ General-purpose applications cannot touch the interface until PANA authentication succeeds and the right IP address configuration is in place. No cap, the order matters πŸ’…

An initially unauthorized PaC kicks things off by discovering the PAA, and then does the EAP exchange over PANA 🧚 The PAA talks to the AS during all of this. Once the PAA gets the authentication and authorization result back from the AS, it tells the PaC how its network access request went πŸ’Œ

If the PaC is authorized to get on the network, the PAA also sends the PaC-specific attributes (e.g., IP address, cryptographic keys, etc.) to the EP, but using another protocol πŸš€ The EP takes that info and updates its filters so data traffic from and to the PaC can pass through. Lowkey the EP is the bouncer who finally gets the guest list 🫢

In case cryptographic access control needs to be turned on after PANA authentication, a secure association protocol runs between the PaC and the EP πŸ” The dynamic parameters that protocol needs (e.g., endpoint identity, shared secret) come from the successful PANA authentication. These parameters are used to authenticate the PaC to the EP and vice-versa as part of creating the security association. For example, see [PANA-IPSEC] for how it's done for IKE [RFC2409] [RFC4306], based on using a key-generating EAP method for PANA between the PaC and PAA. The secure association protocol exchange produces the security associations needed between the PaC and the EP to enable cryptographic data traffic protection. Per-packet cryptographic protection adds extra per-packet overhead, but that overhead only exists between the PaC and EP, so it won't affect communications beyond the EP πŸ₯Ή

Finally, the filters installed at the EP let general purpose data traffic flow between the PaC and the intranet/Internet 🌈 And we're there, bestie πŸŽ‰

4. Environments 🌍

PANA can be used on any network environment, whether there's already a lower-layer secure channel between the PaC and the EP before PANA, or one has to be enabled after successful PANA authentication πŸ¦„

With regard to network access authentication, there are two types of networks to think about πŸ‘€

a. Networks where a secure channel is already available prior to running PANA πŸ”’

This type of network is characterized by the existence of protection against spoofing and eavesdropping. Nevertheless, user authentication and authorization is still required for network connectivity. Not me thinking the security is "done" just because the channel is safe πŸ™ˆ

a.1. One example is a DSL network, where lower-layer security comes from physical means 🧡 Physical protection of the network wiring means that practically there's only one client that can send and receive IP packets on the link. Literally a private hallway πŸ’…

a.2. Another example is a cdma2000 network, where the lower-layer security comes from cryptographic protection πŸ“‘ By the time the client asks for network-layer services, it's already authenticated and authorized to access the radio channel, and link-layer ciphering is enabled. Very secure vibes πŸ”

The presence of a secure channel before the PANA exchange means you don't need to run a secure association protocol after PANA. The PANA session can be associated with the communication channel it was carried over. Also, the choice of EAP authentication method depends on whether this security is present while PANA is running ✨

b. Networks where a secure channel is created after running PANA πŸ› οΈ

These are the networks with no lower-layer protection before PANA runs. Successful PANA authentication enables generation of cryptographic keys, which are then used with a secure association protocol to enable per-packet cryptographic protection. Ooh, the keys are the reward πŸ—οΈ

PANA authentication runs on an insecure channel that's vulnerable to eavesdropping and spoofing 😬 So the choice of EAP method must be resilient to the possible attacks associated with such an environment. Furthermore, the EAP method must be able to create cryptographic keys that will later be used by the secure association protocol. Pick your EAP method wisely, babe πŸ’€

Whether to use:

b.1. link-layer per-packet security, or

b.2. network-layer per-packet security

is a deployment decision and outside the scope of this document 🧁 That decision also dictates the choice of the secure association protocol. If link-layer protection is used, the protocol would be link-layer specific. If IP-layer protection is used, the secure association protocol would be IKE, and the per-packet security would be provided by IPsec AH/ESP regardless of the underlying link-layer technology. It's all about the layers, fr fr πŸ“


5. Security Considerations πŸ”

Security is discussed throughout this document 😭 For protocol-specific security considerations, refer to [RFC4016] and [RFC5191]. Go read those, they're the real security tea β˜•οΈ

6. Acknowledgments 🫢

We would like to thank Bernard Aboba, Yacine El Mghazli, Randy Turner, Hannes Tschofenig, Lionel Morand, Mark Townsley, Jari Arkko, Pekka Savola, Tom Yu, Joel Halpern, Lakshminath Dondeti, David Black, and IEEE 802.11 Working Group for their valuable comments. Thank you, legends πŸ’œ

7. References πŸ“š

7.1. Normative References

[RFC2119]    Bradner, S., "Key words for use in RFCs to Indicate
             Requirement Levels", BCP 14, RFC 2119, March 1997.

[RFC3748]    Aboba, B., Blunk, L., Vollbrecht, J., Carlson, J., and
             H. Levkowetz, Ed., "Extensible Authentication Protocol
             (EAP)", RFC 3748, June 2004.

[RFC2409]    Harkins, D. and D. Carrel, "The Internet Key Exchange
             (IKE)", RFC 2409, November 1998.

[RFC4306]    Kaufman, C., Ed., "Internet Key Exchange (IKEv2)
             Protocol", RFC 4306, December 2005.

[RFC4058]    Yegin, A., Ed., Ohba, Y., Penno, R., Tsirtsis, G., and
             C. Wang, "Protocol for Carrying Authentication for
             Network Access (PANA) Requirements", RFC 4058, May 2005.

[RFC5191]    Forsberg, D., Ohba, Y., Ed., Patil, B., Tschofenig, H.,
             and A. Yegin, "Protocol for Carrying Authentication for
             Network Access (PANA)", RFC 5191, May 2008.

[DSL]        DSL Forum Architecture and Transport Working Group, "DSL
             Forum TR-059 DSL Evolution - Architecture Requirements
             for the Support of QoS-Enabled IP Services", September
             2003.

7.2. Informative References

[RFC2865]    Rigney, C., Willens, S., Rubens, A., and W. Simpson,
             "Remote Authentication Dial In User Service (RADIUS)",
             RFC 2865, June 2000.

[RFC3588]    Calhoun, P., Loughney, J., Guttman, E., Zorn, G., and J.
             Arkko, "Diameter Base Protocol", RFC 3588, September
             2003.

[RFC4016]    Parthasarathy, M., "Protocol for Carrying Authentication
             and Network Access (PANA) Threat Analysis and Security
             Requirements", RFC 4016, March 2005.

[ANCP-PROTO] Wadhwa, S., Moisand, J., Subramanian, S., Haag, T., and
             N. Voigt, "Protocol for Access Node Control Mechanism in
             Broadband Networks", Work in Progress, November 2007.

[PANA-IPSEC] Parthasarathy, M., "PANA Enabling IPsec based Access
             Control", Work in Progress, July 2005.

[3GPP2]      3rd Generation Partnership Project 2, "cdma2000 Wireless
             IP Network Standard", 3GPP2 P.S0001-B/v2.0, September
             2004.

Authors' Addresses 🏑

Prakash Jayaraman
Network Equipment Technologies, Inc.
6900 Paseo Padre Parkway
Fremont, CA  94555
USA

Phone: +1 510 574 2305
EMail: prakash_jayaraman@net.com


Rafa Marin Lopez
University of Murcia
30100 Murcia
Spain

Phone: +34 968 398 501
EMail: rafa@um.es


Yoshihiro Ohba
Toshiba America Research, Inc.
1 Telcordia Drive
Piscateway, NJ  08854
USA

Phone: +1 732 699 5305
EMail: yohba@tari.toshiba.com


Mohan Parthasarathy
Nokia
313 Fairchild Drive
Mountain View, CA  94043
USA

Phone: +1 408 734 8820
EMail: mohanp@sbcglobal.net


Alper E. Yegin
Samsung
Istanbul,
Turkey

EMail: a.yegin@partner.samsung.com

Copyright (C) The IETF Trust (2008).

This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights.

This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM 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.

Intellectual Property ✨

okay so the IETF is being super clear here πŸ’… it takes no position on whether any Intellectual Property Rights (or other rights) someone claims over the tech in this doc are valid, or how far they reach. it also doesn't say it went hunting for those rights itself πŸ™ˆ and whether you can get a license for them is a whole separate question. if you want the rules on rights for RFC docs, check out BCP 78 and BCP 79 πŸ“š

now the paperwork side πŸ“ copies of IPR disclosures sent to the IETF Secretariat πŸ’Œ plus any license assurances that are available 🫢 (or the outcome of someone trying to get a general license or permission to use those proprietary rights as an implementer or user of this spec) can all be found in the IETF's online IPR repository at http://www.ietf.org/ipr 🌸

and last but not least, the IETF is literally begging anyone who knows about it πŸ₯Ί to speak up about copyrights, patents, patent applications, or other proprietary rights that might cover tech you'd need to implement this standard. just send the info to ietf-ipr@ietf.org πŸ’œ the more eyes the better, periodt ✨

πŸ“¦ where this page comes from