draft-ietf-pana-pana-14.txt   draft-ietf-pana-pana-15.txt 
PANA Working Group D. Forsberg PANA Working Group D. Forsberg
Internet-Draft Nokia Internet-Draft Nokia
Intended status: Standards Track Y. Ohba (Ed.) Intended status: Standards Track Y. Ohba (Ed.)
Expires: September 4, 2007 Toshiba Expires: November 4, 2007 Toshiba
B. Patil B. Patil
Nokia Nokia
H. Tschofenig H. Tschofenig
Siemens Siemens
A. Yegin A. Yegin
Samsung Samsung
March 3, 2007 May 3, 2007
Protocol for Carrying Authentication for Network Access (PANA) Protocol for Carrying Authentication for Network Access (PANA)
draft-ietf-pana-pana-14 draft-ietf-pana-pana-15
Status of this Memo Status of this Memo
By submitting this Internet-Draft, each author represents that any By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79. aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
skipping to change at page 1, line 41 skipping to change at page 1, line 41
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."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on September 4, 2007. This Internet-Draft will expire on November 4, 2007.
Copyright Notice Copyright Notice
Copyright (C) The IETF Trust (2007). Copyright (C) The IETF Trust (2007).
Abstract Abstract
This document defines the Protocol for Carrying Authentication for This document defines the Protocol for Carrying Authentication for
Network Access (PANA), a network-layer transport for Extensible Network Access (PANA), a network-layer transport for Extensible
Authentication Protocol (EAP) to enable network access authentication Authentication Protocol (EAP) to enable network access authentication
between clients and access networks. PANA protocol specification between clients and access networks. In EAP terms, PANA is a UDP-
covers the client-to-network access authentication part of an overall based EAP lower layer that runs between the EAP peer and the EAP
secure network access framework, which additionally includes other authenticator.
protocols and mechanisms for service provisioning, access control as
a result of initial authentication, and accounting.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 5 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1. Specification of Requirements . . . . . . . . . . . . . . 5 1.1. Specification of Requirements . . . . . . . . . . . . . . 4
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 6 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5
3. Protocol Overview . . . . . . . . . . . . . . . . . . . . . . 8 3. Protocol Overview . . . . . . . . . . . . . . . . . . . . . . 7
4. Protocol Details . . . . . . . . . . . . . . . . . . . . . . . 10 4. Protocol Details . . . . . . . . . . . . . . . . . . . . . . . 9
4.1. Transport Layer . . . . . . . . . . . . . . . . . . . . . 10 4.1. Authentication and Authorization Phase . . . . . . . . . . 9
4.2. High-Level Attribute-Value Pair Description . . . . . . . 10 4.2. Access Phase . . . . . . . . . . . . . . . . . . . . . . . 12
4.3. Handshake Phase . . . . . . . . . . . . . . . . . . . . . 10 4.3. Re-authentication Phase . . . . . . . . . . . . . . . . . 12
4.4. Authentication and Authorization Phase . . . . . . . . . . 12 4.4. Termination Phase . . . . . . . . . . . . . . . . . . . . 14
4.5. Access Phase . . . . . . . . . . . . . . . . . . . . . . . 14 5. Processing Rules . . . . . . . . . . . . . . . . . . . . . . . 15
4.6. Re-authentication Phase . . . . . . . . . . . . . . . . . 15 5.1. Fragmentation . . . . . . . . . . . . . . . . . . . . . . 15
4.7. Termination Phase . . . . . . . . . . . . . . . . . . . . 16 5.2. Sequence Number and Retransmission . . . . . . . . . . . . 15
5. Processing Rules . . . . . . . . . . . . . . . . . . . . . . . 17 5.3. PANA Security Association . . . . . . . . . . . . . . . . 16
5.1. Fragmentation . . . . . . . . . . . . . . . . . . . . . . 17 5.4. Message Authentication . . . . . . . . . . . . . . . . . . 18
5.2. Sequence Number and Retransmission . . . . . . . . . . . . 17 5.5. Message Validity Check . . . . . . . . . . . . . . . . . . 18
5.3. PANA Security Association . . . . . . . . . . . . . . . . 18 5.6. PaC Updating its IP Address . . . . . . . . . . . . . . . 19
5.4. Message Authentication . . . . . . . . . . . . . . . . . . 19 5.7. Session Lifetime . . . . . . . . . . . . . . . . . . . . . 20
5.5. Message Validity Check . . . . . . . . . . . . . . . . . . 20 6. Message Format . . . . . . . . . . . . . . . . . . . . . . . . 21
5.6. PaC Updating its IP Address . . . . . . . . . . . . . . . 21 6.1. IP and UDP Headers . . . . . . . . . . . . . . . . . . . . 21
5.7. Session Lifetime . . . . . . . . . . . . . . . . . . . . . 21 6.2. PANA Message Header . . . . . . . . . . . . . . . . . . . 21
5.8. Error Handling . . . . . . . . . . . . . . . . . . . . . . 22 6.3. AVP Format . . . . . . . . . . . . . . . . . . . . . . . . 23
6. Message Format . . . . . . . . . . . . . . . . . . . . . . . . 24 7. PANA Messages . . . . . . . . . . . . . . . . . . . . . . . . 26
6.1. IP and UDP Headers . . . . . . . . . . . . . . . . . . . . 24 7.1. PANA-Client-Initiation (PCI) . . . . . . . . . . . . . . . 28
6.2. PANA Message Header . . . . . . . . . . . . . . . . . . . 24 7.2. PANA-Auth-Request (PAR) . . . . . . . . . . . . . . . . . 28
6.3. AVP Format . . . . . . . . . . . . . . . . . . . . . . . . 26 7.3. PANA-Auth-Answer (PAN) . . . . . . . . . . . . . . . . . . 29
7. PANA Messages . . . . . . . . . . . . . . . . . . . . . . . . 29 7.4. PANA-Termination-Request (PTR) . . . . . . . . . . . . . . 29
7.1. PANA-Client-Initiation (PCI) . . . . . . . . . . . . . . . 31 7.5. PANA-Termination-Answer (PTA) . . . . . . . . . . . . . . 29
7.2. PANA-Start-Request (PSR) . . . . . . . . . . . . . . . . . 31 7.6. PANA-Notification-Request (PNR) . . . . . . . . . . . . . 29
7.3. PANA-Start-Answer (PSA) . . . . . . . . . . . . . . . . . 31 7.7. PANA-Notification-Answer (PNA) . . . . . . . . . . . . . . 30
7.4. PANA-Auth-Request (PAR) . . . . . . . . . . . . . . . . . 32 8. AVPs in PANA . . . . . . . . . . . . . . . . . . . . . . . . . 31
7.5. PANA-Auth-Answer (PAN) . . . . . . . . . . . . . . . . . . 32 8.1. Algorithm AVP . . . . . . . . . . . . . . . . . . . . . . 31
7.6. PANA-Reauth-Request (PRR) . . . . . . . . . . . . . . . . 32 8.2. AUTH AVP . . . . . . . . . . . . . . . . . . . . . . . . . 32
7.7. PANA-Reauth-Answer (PRA) . . . . . . . . . . . . . . . . . 32 8.3. EAP-Payload AVP . . . . . . . . . . . . . . . . . . . . . 32
7.8. PANA-Bind-Request (PBR) . . . . . . . . . . . . . . . . . 32 8.4. Key-Id AVP . . . . . . . . . . . . . . . . . . . . . . . . 32
7.9. PANA-Bind-Answer (PBA) . . . . . . . . . . . . . . . . . . 33 8.5. Nonce AVP . . . . . . . . . . . . . . . . . . . . . . . . 32
7.10. PANA-Ping-Request (PPR) . . . . . . . . . . . . . . . . . 33 8.6. Result-Code AVP . . . . . . . . . . . . . . . . . . . . . 33
7.11. PANA-Ping-Answer (PPA) . . . . . . . . . . . . . . . . . . 33 8.7. Session-Lifetime AVP . . . . . . . . . . . . . . . . . . . 33
7.12. PANA-Termination-Request (PTR) . . . . . . . . . . . . . . 33 8.8. Termination-Cause AVP . . . . . . . . . . . . . . . . . . 33
7.13. PANA-Termination-Answer (PTA) . . . . . . . . . . . . . . 34 9. Retransmission Timers . . . . . . . . . . . . . . . . . . . . 35
7.14. PANA-Error-Request (PER) . . . . . . . . . . . . . . . . . 34 9.1. Transmission and Retransmission Parameters . . . . . . . . 36
7.15. PANA-Error-Answer (PEA) . . . . . . . . . . . . . . . . . 34 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 37
7.16. PANA-Update-Request (PUR) . . . . . . . . . . . . . . . . 34 10.1. PANA UDP Port Number . . . . . . . . . . . . . . . . . . . 37
7.17. PANA-Update-Answer (PUA) . . . . . . . . . . . . . . . . . 34 10.2. PANA Message Header . . . . . . . . . . . . . . . . . . . 37
8. AVPs in PANA . . . . . . . . . . . . . . . . . . . . . . . . . 36 10.2.1. Version . . . . . . . . . . . . . . . . . . . . . . . 37
8.1. Algorithm AVP . . . . . . . . . . . . . . . . . . . . . . 37 10.2.2. Message Type . . . . . . . . . . . . . . . . . . . . 37
8.2. AUTH AVP . . . . . . . . . . . . . . . . . . . . . . . . . 37 10.2.3. Flags . . . . . . . . . . . . . . . . . . . . . . . . 38
8.3. EAP-Payload AVP . . . . . . . . . . . . . . . . . . . . . 37 10.3. AVP Header . . . . . . . . . . . . . . . . . . . . . . . . 38
8.4. Failed-AVP AVP . . . . . . . . . . . . . . . . . . . . . . 38 10.3.1. AVP Code . . . . . . . . . . . . . . . . . . . . . . 38
8.5. Failed-Message-Header AVP . . . . . . . . . . . . . . . . 38 10.3.2. Flags . . . . . . . . . . . . . . . . . . . . . . . . 39
8.6. Key-Id AVP . . . . . . . . . . . . . . . . . . . . . . . . 38 10.4. AVP Values . . . . . . . . . . . . . . . . . . . . . . . . 39
8.7. Nonce AVP . . . . . . . . . . . . . . . . . . . . . . . . 38 10.4.1. Result-Code AVP Values . . . . . . . . . . . . . . . 39
8.8. Result-Code AVP . . . . . . . . . . . . . . . . . . . . . 39 10.4.2. Termination-Cause AVP Values . . . . . . . . . . . . 39
8.8.1. Authentication Results Codes . . . . . . . . . . . . . 39 11. Security Considerations . . . . . . . . . . . . . . . . . . . 40
8.8.2. Protocol Error Result Codes . . . . . . . . . . . . . 39 11.1. General Security Measures . . . . . . . . . . . . . . . . 40
8.9. Session-Lifetime AVP . . . . . . . . . . . . . . . . . . . 42 11.2. Initial Exchange . . . . . . . . . . . . . . . . . . . . . 41
8.10. Termination-Cause AVP . . . . . . . . . . . . . . . . . . 42 11.3. EAP Methods . . . . . . . . . . . . . . . . . . . . . . . 42
9. Retransmission Timers . . . . . . . . . . . . . . . . . . . . 43 11.4. Cryptographic Keys . . . . . . . . . . . . . . . . . . . . 42
9.1. Transmission and Retransmission Parameters . . . . . . . . 44 11.5. Per-packet Ciphering . . . . . . . . . . . . . . . . . . . 42
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 46 11.6. PAA-to-EP Communication . . . . . . . . . . . . . . . . . 43
10.1. PANA UDP Port Number . . . . . . . . . . . . . . . . . . . 46 11.7. Liveness Test . . . . . . . . . . . . . . . . . . . . . . 43
10.2. PANA Message Header . . . . . . . . . . . . . . . . . . . 46 11.8. Early Termination of a Session . . . . . . . . . . . . . . 43
10.2.1. Version . . . . . . . . . . . . . . . . . . . . . . . 46 12. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 44
10.2.2. Message Type . . . . . . . . . . . . . . . . . . . . . 46 13. References . . . . . . . . . . . . . . . . . . . . . . . . . . 45
10.2.3. Flags . . . . . . . . . . . . . . . . . . . . . . . . 47 13.1. Normative References . . . . . . . . . . . . . . . . . . . 45
10.3. AVP Header . . . . . . . . . . . . . . . . . . . . . . . . 47 13.2. Informative References . . . . . . . . . . . . . . . . . . 45
10.3.1. AVP Code . . . . . . . . . . . . . . . . . . . . . . . 47 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 47
10.3.2. Flags . . . . . . . . . . . . . . . . . . . . . . . . 48 Intellectual Property and Copyright Statements . . . . . . . . . . 49
10.4. AVP Values . . . . . . . . . . . . . . . . . . . . . . . . 48
10.4.1. Result-Code AVP Values . . . . . . . . . . . . . . . . 48
10.4.2. Termination-Cause AVP Values . . . . . . . . . . . . . 48
11. Security Considerations . . . . . . . . . . . . . . . . . . . 49
11.1. General Security Measures . . . . . . . . . . . . . . . . 49
11.2. Handshake . . . . . . . . . . . . . . . . . . . . . . . . 50
11.3. EAP Methods . . . . . . . . . . . . . . . . . . . . . . . 51
11.4. Cryptographic Keys . . . . . . . . . . . . . . . . . . . . 51
11.5. Per-packet Ciphering . . . . . . . . . . . . . . . . . . . 51
11.6. PAA-to-EP Communication . . . . . . . . . . . . . . . . . 52
11.7. Liveness Test . . . . . . . . . . . . . . . . . . . . . . 52
11.8. Early Termination of a Session . . . . . . . . . . . . . . 52
12. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 53
13. References . . . . . . . . . . . . . . . . . . . . . . . . . . 54
13.1. Normative References . . . . . . . . . . . . . . . . . . . 54
13.2. Informative References . . . . . . . . . . . . . . . . . . 54
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 56
Intellectual Property and Copyright Statements . . . . . . . . . . 58
1. Introduction 1. Introduction
Providing secure network access service requires access control based Providing secure network access service requires access control based
on the authentication and authorization of the clients and the access on the authentication and authorization of the clients and the access
networks. Client-to-network authentication provides parameters that networks. Client-to-network authentication provides parameters that
are needed to police the traffic flow through the enforcement points. are needed to police the traffic flow through the enforcement points.
A protocol is needed to carry authentication methods between the A protocol is needed to carry authentication methods between the
client and the access network. client and the access network.
Scope of this work is identified as designing a network layer Scope of this work is identified as designing a network layer
transport for network access authentication methods. The Extensible transport for network access authentication methods. The Extensible
Authentication Protocol (EAP) [RFC3748] provides such authentication Authentication Protocol (EAP) [RFC3748] provides such authentication
methods. In other words, PANA will carry EAP which can carry various methods. In other words, PANA carries EAP which can carry various
authentication methods. By the virtue of enabling transport of EAP authentication methods. By the virtue of enabling transport of EAP
above IP, any authentication method that can be carried as an EAP above IP, any authentication method that can be carried as an EAP
method is made available to PANA and hence to any link-layer method is made available to PANA and hence to any link-layer
technology. There is a clear division of labor between PANA (an EAP technology. There is a clear division of labor between PANA (an EAP
lower layer), EAP and EAP methods as described in [RFC3748]. lower layer), EAP and EAP methods as described in [RFC3748].
Various environments and usage models for PANA are identified in Various environments and usage models for PANA are identified in
Appendix A of [RFC4058]. Potential security threats for Appendix A of [RFC4058]. Potential security threats for
network-layer access authentication protocol are discussed in network-layer access authentication protocol are discussed in
[RFC4016]. These have been essential in defining the requirements [RFC4016]. These have been essential in defining the requirements
skipping to change at page 6, line 27 skipping to change at page 5, line 27
The protocol entity in the access network whose responsibility is The protocol entity in the access network whose responsibility is
to verify the credentials provided by a PANA client (PaC) and to verify the credentials provided by a PANA client (PaC) and
authorize network access to the access device. The PAA and the authorize network access to the access device. The PAA and the
EAP authenticator (and optionally the EAP server) are co-located EAP authenticator (and optionally the EAP server) are co-located
in the same node. Note the authentication and authorization in the same node. Note the authentication and authorization
procedure can, according to the EAP model, also be offloaded to procedure can, according to the EAP model, also be offloaded to
the backend AAA infrastructure. the backend AAA infrastructure.
PANA Session: PANA Session:
A PANA session begins with the handshake between the PANA Client A PANA session is established between the PANA Client (PaC) and
(PaC) and the PANA Authentication Agent (PAA), and terminates as a the PANA Authentication Agent (PAA), and terminates as a result of
result of an authentication or liveness test failure, a message an authentication and authorization or liveness test failure, a
delivery failure after retransmissions reach maximum values, message delivery failure after retransmissions reach maximum
session lifetime expiration, or an explicit termination message. values, session lifetime expiration, an explicit termination
A fixed session identifier is maintained throughout a session. A message or any event that causes discontinuation of the access
session cannot be shared across multiple network interfaces. service. A fixed session identifier is maintained throughout a
session. A session cannot be shared across multiple network
interfaces.
Session Lifetime: Session Lifetime:
A duration that is associated with a PANA session. For an A duration that is associated with a PANA session. For an
established PANA session, the session lifetime is bound to the established PANA session, the session lifetime is bound to the
lifetime of the current authorization given to the PaC. The lifetime of the current authorization given to the PaC. The
session lifetime can be updated by a new round of EAP session lifetime can be extended by a new round of EAP
authentication before it expires. authentication before it expires. Until a PANA session is
established, the lifetime SHOULD be set to a value that allows the
PaC to detect a failed session in a reasonable amount of time.
Session Identifier: Session Identifier:
This identifier is used to uniquely identify a PANA session on the This identifier is used to uniquely identify a PANA session on the
PaC and the PAA. It is included in PANA messages to bind the PaC and the PAA. It is included in PANA messages to bind the
message to a specific PANA session. This bidirectional identifier message to a specific PANA session. This bidirectional identifier
is allocated by the PAA in handshake phase and freed when the is allocated by the PAA in the initial request message and freed
session terminates. The session identifier is assigned by the PAA when the session terminates. The session identifier is assigned
and unique within the PAA during the lifetime of the session. by the PAA and unique within the PAA.
PANA Security Association (PANA SA): PANA Security Association (PANA SA):
A PANA security association is formed between the PaC and the PAA A PANA security association is formed between the PaC and the PAA
by sharing cryptographic keying material and associated context. by sharing cryptographic keying material and associated context.
The formed duplex security association is used to protect the The formed duplex security association is used to protect the
bidirectional PANA signaling traffic between the PaC and PAA. bidirectional PANA signaling traffic between the PaC and PAA.
Enforcement Point (EP): Enforcement Point (EP):
A node on the access network where per-packet enforcement policies A node on the access network where per-packet enforcement policies
(i.e., filters) are applied on the inbound and outbound traffic of (i.e., filters) are applied on the inbound and outbound traffic of
access devices. The EP and the PAA may be co-located. EPs should access devices. The EP and the PAA may be co-located. EPs should
prevent data traffic from and to any unauthorized client unless prevent data traffic from and to any unauthorized client unless
it's either PANA or one of the other allowed traffic types (e.g., it's either PANA or one of the other allowed traffic types (e.g.,
ARP, IPv6 neighbor discovery, DHCP, etc.). Detailed enforcement ARP, IPv6 neighbor discovery, DHCP, etc.).
policies may be specified in deployment-specific PANA
applicability documents.
Master Session Key (MSK): Master Session Key (MSK):
A key derived by the EAP peer and the EAP server and transported A key derived by the EAP peer and the EAP server and transported
to the EAP authenticator [RFC3748]. to the EAP authenticator [RFC3748].
For additional terminology definitions see the PANA framework For additional terminology definitions see the PANA framework
document [I-D.ietf-pana-framework]. document [I-D.ietf-pana-framework].
3. Protocol Overview 3. Protocol Overview
The PANA protocol is run between a client (PaC) and a server (PAA) in The PANA protocol is run between a client (PaC) and a server (PAA) in
order to perform authentication and authorization for the network order to perform authentication and authorization for the network
access service. access service.
The protocol messaging consists of a series of request and responses, The protocol messaging consists of a series of requests and answers,
some of which may be initiated by either end. Each message can carry some of which may be initiated by either end. Each message can carry
zero or more AVPs within the payload. The main payload of PANA is zero or more AVPs within the payload. The main payload of PANA is
EAP which performs authentication. PANA helps the PaC and PAA EAP which performs authentication. PANA helps the PaC and PAA
establish an EAP session. establish an EAP session.
PANA is a UDP-based protocol. It has its own retransmission PANA is a UDP-based protocol. It has its own retransmission
mechanism to reliably deliver messages. mechanism to reliably deliver messages.
PANA messages are sent between the PaC and PAA as part of a PANA PANA messages are sent between the PaC and PAA as part of a PANA
session. A PANA session consists of distinct phases: session. A PANA session consists of distinct phases:
o Handshake phase: This is the phase that initiates a new PANA o Authentication and authorization phase: This is the phase that
session. The handshake phase can be triggered by both the PaC and initiates a new PANA session and executes EAP between the PAA and
the PAA. PaC. The PANA session can be initiated by both the PaC and the
PAA. The EAP payload (which carry an EAP method inside) is what
o Authentication and authorization phase: Immediately following the is used for authentication. The PAA conveys the result of
handshake phase is the EAP execution between the PAA and PaC. The authentication and authorization to the PaC at the end of this
EAP payload (which carry an EAP method inside) is what is used for phase.
authentication. The PAA conveys the result of authentication and
authorization to the PaC at the end of this phase.
o Access phase: After a successful authentication and authorization o Access phase: After a successful authentication and authorization
the host gains access to the network and can send and receive IP the access device gains access to the network and can send and
data traffic through the EP(s). At any time during this phase, receive IP traffic through the EP(s). At any time during this
the PaC and PAA may optionally send PANA ping messages to test phase, the PaC and PAA may optionally send PANA notification
liveness of the PANA session on the peer. messages to test liveness of the PANA session on the peer.
o Re-authentication phase: During the access phase, the PAA must o Re-authentication phase: During the access phase, the PAA may, and
initiate re-authentication before the PANA session lifetime the PaC should, initiate re-authentication if they want to update
expires. EAP is carried by PANA to perform authentication. This the PANA session lifetime before the PANA session lifetime
phase may be optionally triggered by both the PaC and the PAA expires. EAP is carried by PANA to perform re-authentication.
without any respect to the session lifetime. The session moves to This phase may be optionally triggered by both the PaC and the PAA
this phase from the access phase, and returns back there upon without any respect to the session lifetime. The re-
successful re-authentication. authentication phase is a sub-phase of the access phase. The
session moves to this sub-phase from the access phase when re-
authentication starts, and returns back there upon successful re-
authentication.
o Termination phase: The PaC or PAA may choose to discontinue the o Termination phase: The PaC or PAA may choose to discontinue the
access service at any time. An explicit disconnect message can be access service at any time. An explicit disconnect message can be
sent by either end. If either the PaC or the PAA disconnects sent by either end. If either the PaC or the PAA disconnects
without engaging in termination messaging, it is expected that without engaging in termination messaging, it is expected that
either the expiration of a finite session lifetime or failed either the expiration of a finite session lifetime or failed
liveness tests would clean up the session at the other end. liveness tests would clean up the session at the other end.
PaC PAA Message
-----------------------------------------------------
// Handshake phase
-----> PANA-Client-Initiation
<----- PANA-Start-Request
-----> PANA-Start-Answer
// Authentication and authorization phase
<----- PANA-Auth-Request /* EAP Request */
-----> PANA-Auth-Answer
-----> PANA-Auth-Request /* EAP Response */
<----- PANA-Auth-Answer
<----- PANA-Bind-Request /* EAP Success */
-----> PANA-Bind-Answer
// Access phase (IP data traffic allowed)
<----- PANA-Ping-Request
-----> PANA-Ping-Answer
// Termination phase
-----> PANA-Termination-Request
<----- PANA-Termination-Answer
Figure 1: Illustration of PANA messages in a session
Note that depending on the environment and deployment the protocol
flow depicted in Figure 1 can be abbreviated (An unsolicited
PANA-Start-Request message can be sent without
PANA-Client-Initiation, EAP responses can be piggybacked on the
PANA-Auth-Answers, and PANA-Ping and PANA-Termination messages are
optional to use).
Cryptographic protection of messages between the PaC and PAA is Cryptographic protection of messages between the PaC and PAA is
possible as soon as EAP in conjunction with the EAP method exports a possible as soon as EAP in conjunction with the EAP method exports a
shared key. That shared key is used to create a PANA SA. The PANA shared key. That shared key is used to create a PANA SA. The PANA
SA helps generate per-message authentication codes that provide SA helps generate per-message authentication codes that provide
integrity protection and authentication. integrity protection and authentication.
Throughout the lifetime of a session, various problems found with the
incoming messages can generate a PANA error message sent in response.
4. Protocol Details 4. Protocol Details
The following sections explain in detail the various phases of a PANA The following sections explain in detail the various phases of a PANA
session. session.
4.1. Transport Layer 4.1. Authentication and Authorization Phase
PANA uses UDP as its transport layer protocol. The UDP port number
is To Be Assigned by IANA. All messages are always unicast.
4.2. High-Level Attribute-Value Pair Description
The payload of any PANA message consists of zero or more AVPs
(Attribute Value Pairs). The subsequent sections refer to these
AVPs, therefore the list of AVPs are provided with a brief
description before more extensive descriptions are included later in
the document (see Section 8).
o Algorithm AVP: contains a pseudo-random function and an integrity
algorithm.
o AUTH AVP: contains a Message Authentication Code that integrity
protects the PANA message.
o EAP AVP: contains an EAP PDU.
o Failed-AVP: contains an offending AVP that caused a failure.
o Failed-Message-Header AVP: contains the header of an offending
message that caused a failure.
o Key-Id AVP: contains an MSK identifier.
o Nonce AVP: contains a randomly chosen value [RFC4086] that is used
in cryptographic key computations.
o Result-Code AVP: contains information about the protocol execution
results.
o Session-Lifetime AVP: contains the duration of authorized access.
o Termination-Cause AVP: contains the reason of session termination.
4.3. Handshake Phase
The handshake phase can be initiated by either the PaC or the PAA. The main task of the authentication and authorization phase is to
establish a PANA session and carry EAP messages between the PaC and
the PAA. The PANA session can be initiated by either the PaC or the
PAA.
PaC-initiated Handshake: PaC-initiated Session:
When the PaC initiates the handshake phase, it sends a When the PaC initiates a PANA session, it sends a
PANA-Client-Initiation message to the PAA. When the PaC is not PANA-Client-Initiation message to the PAA. When the PaC is not
configured with an IP address of the PAA before initiating the configured with an IP address of the PAA before initiating the
handshake phase, DHCP [I-D.ietf-dhc-paa-option] is used as the PANA session, DHCP [I-D.ietf-dhc-paa-option] is used as the
default method for dynamically configuring the IP address of the default method for dynamically configuring the IP address of the
PAA. Alternative methods for dynamically discovering the IP PAA. Alternative methods for dynamically discovering the IP
address of the PAA may be used for PaC-initiated handshake but address of the PAA may be used for PaC-initiated session but they
they are outside the scope of this specification. The PAA that are outside the scope of this specification. The PAA that
receives the PANA-Client-Initiation message MUST respond with a receives the PANA-Client-Initiation message MUST respond to the
PANA-Start-Request message sent to the PaC. PaC with a PANA-Auth-Request message.
PAA-initiated Handshake: PAA-initiated Session:
When the PAA knows the IP address of the PaC, it MAY send an When the PAA knows the IP address of the PaC, it MAY send an
unsolicited PANA-Start-Request to the PaC. The details of how PAA unsolicited PANA-Auth-Request to the PaC. The details of how PAA
can learn the IP address of the PaC are outside the scope of this can learn the IP address of the PaC are outside the scope of this
specification. specification.
A session identifier for the session is assigned by the PAA in the A session identifier for the session is assigned by the PAA and
handshake phase and carried in the PANA-Start-Request message. The carried in the initial PANA-Auth-Request message. The same session
same session identifier MUST be carried in the subsequent messages identifier MUST be carried in the subsequent messages exchanged
exchanged between the PAA and PaC throughout the session. between the PAA and PaC throughout the session.
When the PaC receives a PANA-Start-Request message from a PAA, it When the PaC receives the initial PANA-Auth-Request message from a
responds with a PANA-Start-Answer message if it wishes to enter the PAA, it responds with a PANA-Auth-Answer message, if it wishes to
authentication and authorization phase. continue the PANA session.
The PAA SHOULD limit the rate it processes incoming The initial PANA-Auth-Request and PANA-Auth-Answer messages MUST have
PANA-Client-Initiation messages in order not to subject itself to 'S' (Start) bit set, regardless of whether the session is initiated
denial-of service attacks. Details of rate limiting are outside the by the PaC or the PAA. Non-initial PANA-Auth-Request and
scope of this specification. PANA-Auth-Answer messages as well as any other messages MUST NOT have
'S' bit set.
An Algorithm AVP MAY be included in the PANA-Start-Request in order The PAA SHOULD limit the rate it processes incoming PANA-Client-
to indicate required and available capabilities for the network Initiation messages to provide robustness against denial-of service
(DoS) attacks. Details of rate limiting are outside the scope of
this specification.
An Algorithm AVP MAY be included in the initial PANA-Auth-Request in
order to indicate required and available capabilities for the network
access. This AVP MAY be used by the PaC for assessing the capability access. This AVP MAY be used by the PaC for assessing the capability
match even before the authentication takes place. Since this AVP is match even before the authentication takes place. Since this AVP is
provided during the insecure handshake phase, there are certain provided in the insecure initial request, there are certain security
security risks involved in using the provided information. See risks involved in using the provided information. See Section 11 for
Section 11 for further discussion on this. further discussion on this.
The initial EAP Request message MAY be carried by the
PANA-Start-Request message (as opposed to by a later
PANA-Auth-Request message) in order to reduce the number of
round-trips. If the initial EAP Request message is carried in the
PANA-Start-Request message, an EAP Response message MUST be carried
in the PANA-Start-Answer message returned to the PAA.
In order to prevent potential DoS attacks, the PAA SHOULD refrain
from timeout-based retransmission of the PANA-Start-Request message
in response to a PaC-initiated handshake. For this reason, the PaC
MUST retransmit the PANA-Client-Initiation message until it enters
the authentication and authorization phase by receiving the first
PANA-Auth-Request message from the PAA.
It is possible that both the PAA and the PaC initiate the handshake
procedure at the same time, i.e., the PAA sends a PANA-Start-Request
message while the PaC sends a PANA-Client-Initiation message. To
resolve the race condition, the PAA SHOULD silently discard the
PANA-Client-Initiation message received from the PaC after it has
sent a PANA-Start-Request message. The PAA uses the source IP
address and the source port number of the PANA-Client-Initiation
message to identify the PaC in the handshake phase.
Figure 2 shows an example sequence for PaC-initiated handshake.
PaC PAA Message(sequence number)[AVPs]
------------------------------------------------------
-----> PANA-Client-Initiation(0)
<----- PANA-Start-Request(x)
-----> PANA-Start-Answer(x)
(continued to the authentication and
authorization phase)
Figure 2: Example sequence for PaC-initiated handshake phase If the PAA wants to stay stateless in response to a
PANA-Client-Initiation message, it SHOULD NOT include an EAP-Payload
AVP in the initial PANA-Auth-Request message, and it SHOULD NOT re-
transmit the message on a timer. For this reason, the PaC MUST
retransmit the PANA-Client-Initiation message until it receives the
second PANA-Auth-Request message (not a retransmission of the initial
one) from the PAA.
4.4. Authentication and Authorization Phase It is possible that both the PAA and the PaC initiate the PANA
session at the same time, i.e., the PAA unsolicitedly sends the
initial PANA-Auth-Request message while the PaC sends a
PANA-Client-Initiation message. To resolve the race condition, the
PAA SHOULD silently discard the PANA-Client-Initiation message
received from the PaC after it has sent the initial PANA-Auth-Request
message. The PAA uses the source IP address and the source port
number of the PANA-Client-Initiation message to identify the PaC
among multiple PANA-Client-Initiation messages sent from different
PaCs.
The main task of the authentication and authorization phase is to EAP messages are carried in PANA-Auth-Request messages.
carry EAP messages between the PaC and the PAA. EAP Request and
Response messages are carried in PANA-Auth-Request messages.
PANA-Auth-Answer messages are simply used to acknowledge receipt of PANA-Auth-Answer messages are simply used to acknowledge receipt of
the requests. As an optimization, a PANA-Auth-Answer message MAY the requests. As an optimization, a PANA-Auth-Answer message sent
include the EAP Response message. This optimization SHOULD NOT be from the PaC MAY include the EAP message. This optimization SHOULD
used when it takes time to generate the EAP Response message (due to, NOT be used when it takes time to generate the EAP message (due to,
e.g., intervention of human input), in which case returning an e.g., intervention of human input), in which case returning an
PANA-Auth-Answer message without piggybacking an EAP Response message PANA-Auth-Answer message without piggybacking an EAP message can
can avoid unnecessary retransmission of the PANA-Auth-Request avoid unnecessary retransmission of the PANA-Auth-Request message.
message. Another optimization allows optionally carrying the first
EAP Request/Response message in PANA-Start-Request/Answer message as
described in Section 4.3.
A Nonce AVP MUST be included in the first PANA-Auth-Request and A Nonce AVP MUST be included in the first PANA-Auth-Request and
PANA-Auth-Answer messages. PANA-Auth-Answer messages following the initial PANA-Auth-Request and
PANA-Auth-Answer messages (i.e. with 'S' (Start) bit set), and MUST
NOT be included in any other message, except during re-authentication
procedures (see Section 4.3).
The result of PANA authentication is carried in a PANA-Bind-Request The result of PANA authentication is carried in the last
message sent from the PAA to the PaC. This message carries the EAP PANA-Auth-Request message sent from the PAA to the PaC. This message
authentication result and the result of PANA authentication. The carries the EAP authentication result and the result of PANA
PANA-Bind-Request message MUST be acknowledged with a authentication. The last PANA-Auth-Request message MUST be
PANA-Bind-Answer (PBA) message. Figure 3 shows an example sequence acknowledged with a PANA-Auth-Answer message. The last
in the authentication and authorization phase. PANA-Auth-Request and PANA-Auth-Answer messages MUST have 'C'
(Complete) bit set, and any other message MUST NOT have 'C' bit set.
Figure 1 shows an example sequence in the authentication and
authorization phase for a PaC-initiated session.
PaC PAA Message(sequence number)[AVPs] PaC PAA Message(sequence number)[AVPs]
-------------------------------------------------------------------- --------------------------------------------------------------------
(continued from the handshake phase) -----> PANA-Client-Initiation(0)
<----- PANA-Auth-Request(x+1)[Nonce, EAP{Request}] <----- PANA-Auth-Request(x) // 'S' bit set
-----> PANA-Auth-Answer(x+1)[Nonce] // No piggybacking EAP Resp. -----> PANA-Auth-Answer(x) // 'S' bit set
-----> PANA-Auth-Request(y)[EAP{Response}] <----- PANA-Auth-Request(x+1)[Nonce, EAP-Payload]
-----> PANA-Auth-Answer(x+1)[Nonce] // No piggybacking EAP
-----> PANA-Auth-Request(y)[EAP-Payload]
<----- PANA-Auth-Answer(y) <----- PANA-Auth-Answer(y)
<----- PANA-Auth-Request(x+2)[EAP{Request}] <----- PANA-Auth-Request(x+2)[EAP-Payload]
-----> PANA-Auth-Answer(x+2)[EAP{Response}] -----> PANA-Auth-Answer(x+2)[EAP-Payload]
<----- PANA-Bind-Request(x+3)[Result-Code, EAP{Success}, Key-Id, // Piggybacking EAP
Algorithm, Lifetime, AUTH] <----- PANA-Auth-Request(x+3)[Result-Code, EAP-Payload,
-----> PANA-Bind-Answer(x+3)[Key-Id, AUTH] Key-Id, Algorithm,
Session-Lifetime, AUTH]
// 'C' bit set
-----> PANA-Auth-Answer(x+3)[Key-Id, AUTH]
// 'C' bit set
Figure 3: Example sequence for the authentication and authorization Figure 1: Example sequence for the authentication and authorization
phase phase for a PaC-initiated session ("Piggybacking EAP" is the case in
which an EAP-Payload AVP is carried in PAN.)
When an EAP method that is capable of deriving keys is used during When an EAP method that is capable of deriving keys is used during
the authentication and authorization phase and the keys are the authentication and authorization phase and the keys are
successfully derived, the PANA message that carries the EAP Success successfully derived, the last PANA-Auth-Request message with 'C'
message (i.e., a PANA-Bind-Request message) MUST contain a Key-Id AVP (Complete) bit set MUST contain a Key-Id AVP and an AUTH AVP, and an
and an AUTH AVP, and an Algorithm AVP for the first derivation of Algorithm AVP for the first derivation of keys in the session, and
keys in the session, and any subsequent message MUST contain an AUTH any subsequent message MUST contain an AUTH AVP. An Algorithm AVP
AVP. An Algorithm AVP MUST NOT be contained in a PANA-Bind-Request MUST NOT be contained in any PANA-Auth-Request message after the
message after the first derivation of keys in the session. first derivation of keys in the session.
EAP authentication can fail at a pass-through authenticator without EAP authentication can fail at a pass-through authenticator without
sending an EAP Failure message [RFC4137]. When this occurs, the PAA sending an EAP Failure message [RFC4137]. When this occurs, the PAA
SHOULD silently terminate the session, expecting that a session SHOULD silently terminate the session, expecting that a session
timeout on the PaC will clean up the state on the PaC. timeout on the PaC will clean up the state on the PaC.
There is a case where EAP authentication succeeds with producing an There is a case where EAP authentication succeeds with producing an
EAP Success message but network access authorization fails due to, EAP Success message but network access authorization fails due to,
e.g., authorization rejected by a AAA or authorization locally e.g., authorization rejected by a AAA or authorization locally
rejected by the PAA. When this occurs, the PAA MUST send a rejected by the PAA. When this occurs, the PAA MUST send the last
PANA-Bind-Request with a result code PANA_AUTHORIZATION_REJECTED. If PANA-Auth-Request with a result code PANA_AUTHORIZATION_REJECTED. If
an MSK is established between the PaC and the PAA by the time when an MSK is available, the last PANA-Auth-Request and PANA-Auth-Answer
the EAP Success message is generated by the EAP server (this is the messages with 'C' (Complete) bit set MUST be protected with an AUTH
case when the EAP method provides protected success indication), the AVP and carry a Key-Id AVP. The last PANA-Auth-Request message MUST
PANA-Bind-Request and PANA-Bind-Answer messages MUST be protected also carry an Algorithm AVP if it is for the first derivation of keys
with an AUTH AVP and carry a Key-Id AVP. The PANA-Bind-Request in the session. The PANA session MUST be terminated immediately
message MUST also carry an Algorithm AVP if it is for the first after the last PANA-Auth message exchange.
derivation of keys in the session. The MSK and the PANA session MUST
be deleted immediately after the PANA-Bind message exchange.
4.5. Access Phase 4.2. Access Phase
Once the authentication and authorization phase or the Once the authentication and authorization phase successfully
re-authentication phase successfully completes, the PaC gains access completes, the PaC gains access to the network and can send and
to the network and can send and receive IP data traffic through the receive IP data traffic through the EP(s) and the PANA session enters
EP(s) and the PANA session enters the access phase. In this phase, the access phase. In this phase, PANA-Notification-Request and
PANA-Ping-Request and PANA-Ping-Answer messages can be used for PANA-Notification-Answer messages with 'P' (Ping) bit set (ping
request and ping answer messages, respectively) can be used for
testing the liveness of the PANA session on the PANA peer. Both the testing the liveness of the PANA session on the PANA peer. Both the
PaC and the PAA are allowed to send a PANA-Ping-Request message to PaC and the PAA are allowed to send a ping request to the
the communicating peer whenever they need to make sure the communicating peer whenever they need to make sure the availability
availability of the session on the peer and expect the peer to return of the session on the peer and expect the peer to return a ping
a PANA-Ping-Answer message. Both PANA-Ping-Request and answer message. The ping request and answer messages MUST be
PANA-Ping-Answer messages MUST be protected with an AUTH AVP when a protected with an AUTH AVP when a PANA SA is available. A ping
PANA SA is available. request MUST NOT be sent in the authentication and authorization
phase, re-authentication phase and termination phase.
Implementations MUST limit the rate of performing this test. The PaC Implementations MUST limit the rate of performing this test. The PaC
and the PAA can handle rate limitation on their own, they do not have and the PAA can handle rate limitation on their own, they do not have
to perform any coordination with each other. There is no negotiation to perform any coordination with each other. There is no negotiation
of timers for this purpose. Additionally, an implementation MAY of timers for this purpose. Additionally, an implementation MAY
rate-limit processing the incoming PANA-Ping-Requests. It should be rate-limit processing the incoming ping requests. It should be noted
noted that if a PAA or PaC which considers its connectivity lost that if a PAA or PaC which considers its connectivity lost after a
after a relatively small number of unresponsive pings coupled with a relatively small number of unresponsive pings coupled with a peer
peer that is aggressively rate-limiting the PANA-Ping messages, that is aggressively rate-limiting the ping request and answer
false-positives could result. Care should be taken when messages, false-positives could result. Therefore, a PAA or PaC
rate-limiting PANA-Ping messages to periodically respond, and a PAA should not rely on frequent ping operation to quickly determine loss
or PaC should not rely on PANA-Ping messages to quickly determine of connectivity.
loss of connectivity.
Figure 4 and Figure 5 show liveness tests as they are initiated by
the PaC and the PAA respectively.
PaC PAA Message(sequence number)[AVPs]
------------------------------------------------------
-----> PANA-Ping-Request(q)[AUTH]
<----- PANA-Ping-Answer(q)[AUTH]
Figure 4: Example sequence for PaC-initiated liveness test
PaC PAA Message(sequence number)[AVPs]
------------------------------------------------------
<----- PANA-Ping-Request(p)[AUTH]
-----> PANA-Ping-Answer(p)[AUTH]
Figure 5: Example sequence for PAA-initiated liveness test
4.6. Re-authentication Phase 4.3. Re-authentication Phase
The PANA session in the access phase can enter the re-authentication The PANA session in the access phase can enter the re-authentication
phase to extend the current session lifetime by re-executing EAP. phase to extend the current session lifetime by re-executing EAP.
Once the re-authentication phase successfully completes, the session Once the re-authentication phase successfully completes, the session
re-enters the access phase. Otherwise, the session is deleted. re-enters the access phase. Otherwise, the session is terminated.
When the PaC wants to initiate re-authentication, it sends a When the PaC initiates re-authentication, it sends a
PANA-Reauth-Request message to the PAA. This message MUST contain PANA-Notification-Request message with 'A' bit set (a
the session identifier assigned to the session being re-authentication request message) to the PAA. This message MUST
contain the session identifier assigned to the session being
re-authenticated. If the PAA already has an established PANA session re-authenticated. If the PAA already has an established PANA session
for the PaC with the matching session identifier, it MUST first for the PaC with the matching session identifier, it MUST first
respond with a PANA-Reauth-Answer message, followed by a respond with a PANA-Notification-Answer message with 'A' bit set (a
PANA-Auth-Request message that starts a new EAP authentication. If re-authentication answer message), followed by a PANA-Auth-Request
the PAA cannot identify the session, it MUST silently discard the message that starts a new EAP authentication. If the PAA cannot
message. A Nonce AVP MUST be included in the first PANA-Auth-Request identify the session, it MUST silently discard the message. The
and PANA-Auth-Answer messages in the re-authentication phase. first PANA-Auth-Request and PANA-Auth-Answer messages in the
re-authentication phase MUST have 'S' bit cleared and carry a Nonce
AVP.
The PaC may receive a PANA-Auth-Request before receiving the answer The PaC may receive a PANA-Auth-Request before receiving the answer
to its outstanding PANA-Reauth-Request. This condition can arise due to its outstanding re-authentication request message. This condition
to packet re-ordering or a race condition between the PaC and PAA can arise due to packet re-ordering or a race condition between the
when they both attempt to engage in re-authentication. The PaC MUST PaC and PAA when they both attempt to engage in re-authentication.
keep discarding the received PANA-Auth-Requests until it receives the The PaC MUST keep discarding the received PANA-Auth-Requests until it
answer to its request. receives the answer to its request.
When the PAA initiates re-authentication, it sends a When the PAA initiates re-authentication, it sends a
PANA-Auth-Request message containing the session identifier for the PANA-Auth-Request message containing the session identifier for the
PaC to enter the re-authentication phase. The PAA SHOULD initiate PaC. The PAA MUST initiate EAP re-authentication before the current
EAP re-authentication before the current session lifetime expires. session lifetime expires.
Re-authentication of an on-going PANA session MUST NOT reset the Re-authentication of an on-going PANA session MUST NOT reset the
sequence numbers. sequence numbers.
For any re-authentication, if there is an established PANA SA, For any re-authentication, if there is an established PANA SA, re-
PANA-Reauth-Request, PANA-Reauth-Answer, PANA-Auth-Request and authentication request and answer messages and subsequent
PANA-Auth-Answer messages MUST be protected by adding an AUTH AVP to PANA-Auth-Request and PANA-Auth-Answer messages MUST be protected
each message. with an AUTH AVP. The final PANA-Auth-Request and PANA-Auth-Answer
messages and any subsequent PANA message MUST be protected by using
the key generated from the latest EAP authentication.
PaC PAA Message(sequence number)[AVPs] PaC PAA Message(sequence number)[AVPs]
------------------------------------------------------ ------------------------------------------------------
-----> PANA-Reauth-Request(q)[AUTH] -----> PANA-Notification-Request(q)[AUTH] // 'A' bit set
<----- PANA-Reauth-Answer(q)[AUTH] <----- PANA-Notification-Answer(q)[AUTH] // 'A' bit set
<----- PANA-Auth-Request(p)[EAP{Request}, AUTH] <----- PANA-Auth-Request(p)[EAP-Payload, Nonce, AUTH]
-----> PANA-Auth-Answer(p)[AUTH] // No piggybacking EAP Resp. -----> PANA-Auth-Answer(p)[AUTH, Nonce]
-----> PANA-Auth-Request(q+1)[EAP{Response}, AUTH] -----> PANA-Auth-Request(q+1)[EAP-Payload, AUTH]
<----- PANA-Auth-Answer(q+1)[AUTH] // No piggybacking EAP Resp. <----- PANA-Auth-Answer(q+1)[AUTH]
<----- PANA-Auth-Request(p+1)[EAP{Request}, AUTH] <----- PANA-Auth-Request(p+1)[EAP-Payload, AUTH]
-----> PANA-Auth-Answer(p+1)[EAP{Response}, AUTH] -----> PANA-Auth-Answer(p+1)[EAP-Payload, AUTH]
<----- PANA-Bind-Request(p+2)[Result-Code, EAP{Success}, Key-Id, <----- PANA-Auth-Request(p+2)[Result-Code, EAP-Payload,
Algorithm, Lifetime, AUTH] Key-Id, Algorithm,
-----> PANA-Bind-Answer(p+2)[Key-Id, AUTH] Session-Lifetime, AUTH]
// 'C' bit set
-----> PANA-Auth-Answer(p+2)[Key-Id, AUTH]// 'C' bit set
Figure 6: Example sequence for the re-authentication phase initiated Figure 2: Example sequence for the re-authentication phase initiated
by PaC by PaC
4.7. Termination Phase 4.4. Termination Phase
A procedure for explicitly terminating a PANA session can be A procedure for explicitly terminating a PANA session can be
initiated either from the PaC (i.e., disconnect indication) or from initiated either from the PaC (i.e., disconnect indication) or from
the PAA (i.e., session revocation). The PANA-Termination-Request and the PAA (i.e., session revocation). The PANA-Termination-Request and
PANA-Termination-Answer message exchanges are used for disconnect PANA-Termination-Answer message exchanges are used for disconnect
indication and session revocation procedures. indication and session revocation procedures.
The reason for termination is indicated in the Termination-Cause AVP. The reason for termination is indicated in the Termination-Cause AVP.
When there is an established PANA SA between the PaC and the PAA, all When there is an established PANA SA between the PaC and the PAA, all
messages exchanged during the termination phase MUST be protected messages exchanged during the termination phase MUST be protected
with an AUTH AVP. When the sender of the PANA-Termination-Request with an AUTH AVP. When the sender of the PANA-Termination-Request
message receives a valid acknowledgment, all states maintained for message receives a valid acknowledgment, all states maintained for
the PANA session MUST be deleted immediately. the PANA session MUST be terminated immediately.
PaC PAA Message(sequence number)[AVPs]
------------------------------------------------------
-----> PANA-Termination-Request(q)[AUTH]
<----- PANA-Termination-Answer(q)[AUTH]
Figure 7: Example sequence for the termination phase triggered by PaC
5. Processing Rules 5. Processing Rules
5.1. Fragmentation 5.1. Fragmentation
PANA does not provide fragmentation of PANA messages. Instead, it PANA does not provide fragmentation of PANA messages. Instead, it
relies on fragmentation provided by EAP methods and IP layer when relies on fragmentation provided by EAP methods and IP layer when
needed. needed.
5.2. Sequence Number and Retransmission 5.2. Sequence Number and Retransmission
PANA uses sequence numbers to provide ordered and reliable delivery PANA uses sequence numbers to provide ordered and reliable delivery
of messages. of messages.
The PaC and PAA maintain two sequence numbers: the next one to be The PaC and PAA maintain two sequence numbers: One is for setting the
used for a request it initiates and the next one it expects to see in sequence number of the next outgoing request, the other is for
a request from the other end. These sequence numbers are 32-bit matching the sequence number of the next incoming request. These
unsigned numbers. They are monotonically incremented by 1 as new sequence numbers are 32-bit unsigned numbers. They are monotonically
requests are generated and received, and wrapped to zero on the next incremented by 1 as new requests are generated and received, and
message after 2^32-1. Answers always contain the same sequence wrapped to zero on the next message after 2^32-1. Answers always
number as the corresponding request. Retransmissions reuse the contain the same sequence number as the corresponding request.
sequence number contained in the original packet. Retransmissions reuse the sequence number contained in the original
packet.
The initial sequence numbers (ISN) are randomly picked by the PaC and The initial sequence numbers (ISN) are randomly picked by the PaC and
PAA as they send their very first request messages. PAA as they send their very first request messages.
PANA-Client-Initiation message carries sequence number 0. PANA-Client-Initiation message carries sequence number 0.
When a request message is received, it is considered valid in terms When a request message is received, it is considered valid in terms
of sequence numbers if and only if its sequence number matches the of sequence numbers if and only if its sequence number matches the
expected value. This check does not apply to the expected value. This check does not apply to the
PANA-Client-Initiation and PANA-Start-Request messages. PANA-Client-Initiation message and the initial PANA-Auth-Request
message.
When an answer message is received, it is considered valid in terms When an answer message is received, it is considered valid in terms
of sequence numbers if and only if its sequence number matches that of sequence numbers if and only if its sequence number matches that
of the currently outstanding request. A peer can only have one of the currently outstanding request. A peer can only have one
outstanding request at a time. outstanding request at a time.
PANA request messages are retransmitted based on a timer until a PANA request messages are retransmitted based on a timer until an
response is received (in which case the retransmission timer is answer is received (in which case the retransmission timer is
stopped) or the number of retransmission reaches the maximum value stopped) or the number of retransmission reaches the maximum value
(in which case the PANA session MUST be deleted immediately). (in which case the PANA session MUST be terminated immediately).
The retransmission timers SHOULD be calculated as described in The retransmission timers SHOULD be calculated as described in
Section 9 unless a given deployment chooses to use its own Section 9 unless a given deployment chooses to use its own
retransmission timers optimized for the underlying link-layer retransmission timers optimized for the underlying link-layer
characteristics. characteristics.
Unless dropped due to rate limiting, the PaC and PAA MUST respond to Unless dropped due to rate limiting, the PaC and PAA MUST respond to
all duplicate request messages received. The last transmitted answer all duplicate request messages received. The last transmitted answer
MAY be cached in case it is not received by the peer and that MAY be cached in case it is not received by the peer and that
generates a retransmission of the last request. When available, the generates a retransmission of the last request. When available, the
cached answer can be used instead of fully processing the cached answer can be used instead of fully processing the
retransmitted request and forming a new answer from scratch. retransmitted request and forming a new answer from scratch.
5.3. PANA Security Association 5.3. PANA Security Association
A PANA SA is created as an attribute of a PANA session when EAP A PANA SA is created as an attribute of a PANA session when EAP
authentication succeeds with a creation of an MSK. A PANA SA is not authentication succeeds with a creation of an MSK. A PANA SA is not
created when the PANA authentication fails or no MSK is produced by created when the PANA authentication fails or no MSK is produced by
any EAP authentication method. When a new MSK is derived in the PANA the EAP authentication method. When a new MSK is derived in the PANA
re-authentication phase, any key derived from the old MSK MUST be re-authentication phase, any key derived from the old MSK MUST be
updated to a new one that is derived from the new MSK. In order to updated to a new one that is derived from the new MSK. In order to
distinguish the new MSK from old ones, one Key-Id AVP MUST be carried distinguish the new MSK from old ones, one Key-Id AVP MUST be carried
in PANA-Bind-Request and PANA-Bind-Answer messages at the end of the in the last PANA-Auth-Request and PANA-Auth-Answer messages with 'C'
EAP authentication which resulted in deriving a new MSK. The Key-Id (Complete) bit set at the end of the EAP authentication which
AVP is of type Unsigned32 and MUST contain a value that uniquely resulted in deriving a new MSK. The Key-Id AVP is of type Unsigned32
identifies the MSK within the PANA session. The PANA-Bind-Answer and MUST contain a value that uniquely identifies the MSK within the
message sent in response to a PANA-Bind-Request message with a Key-Id PANA session. The last PANA-Auth-Answer message with 'C' (Complete)
AVP MUST contain a Key-Id AVP with the same MSK identifier carried in bit set in response to the last PANA-Auth-Request message with 'C'
the request. PANA-Bind-Request and PANA-Bind-Answer messages with a (Complete) bit set MUST contain a Key-Id AVP with the same MSK
Key-Id AVP MUST also carry an AUTH AVP whose value is computed by identifier carried in the request. The last PANA-Auth-Request and
using the new PANA_AUTH_KEY derived from the new MSK. Although the PANA-Auth-Answer messages with a Key-Id AVP MUST also carry an AUTH
specification does not mandate a particular method for calculation of AVP whose value is computed by using the new PANA_AUTH_KEY derived
the Key-Id AVP value, a simple method is to use monotonically from the new MSK. Although the specification does not mandate a
increasing numbers. particular method for calculation of the Key-Id AVP value, a simple
method is to use monotonically increasing numbers.
The PANA session lifetime is bounded by the authorization lifetime The PANA session lifetime is bounded by the authorization lifetime
granted by the authentication server (same as the MSK lifetime). The granted by the authentication server (same as the MSK lifetime). The
lifetime of the PANA SA (hence the PANA_AUTH_KEY) is the same as the lifetime of the PANA SA (hence the PANA_AUTH_KEY) is the same as the
lifetime of the PANA session. The created PANA SA is deleted when lifetime of the PANA session. The created PANA SA is deleted when
the corresponding PANA session is deleted. the corresponding PANA session is terminated.
PANA SA attributes as well as PANA session attributes are listed PANA SA attributes as well as PANA session attributes are listed
below: below:
PANA Session attributes: PANA Session attributes:
* Session Identifier * Session Identifier
* IP address and UDP port number of the PaC. * IP address and UDP port number of the PaC.
* IP address and UDP port number of the PAA * IP address and UDP port number of the PAA.
* Sequence number of the last transmitted request * Sequence number for the next outgoing request
* Sequence number for the next incoming request
* Sequence number of the last received request
* Last transmitted message payload * Last transmitted message payload
* Retransmission interval * Retransmission interval
* Session lifetime * Session lifetime
* PANA SA attributes * PANA SA attributes
PANA SA attributes: PANA SA attributes:
skipping to change at page 19, line 36 skipping to change at page 17, line 41
* Integrity algorithm * Integrity algorithm
The PANA_AUTH_KEY is derived from the available MSK and it is used to The PANA_AUTH_KEY is derived from the available MSK and it is used to
integrity protect PANA messages. The PANA_AUTH_KEY is computed in integrity protect PANA messages. The PANA_AUTH_KEY is computed in
the following way: the following way:
PANA_AUTH_KEY = prf+(MSK, PaC_nonce|PAA_nonce|Session_ID|Key_ID) PANA_AUTH_KEY = prf+(MSK, PaC_nonce|PAA_nonce|Session_ID|Key_ID)
where the prf+ function is defined in IKEv2 [RFC4306]. The where the prf+ function is defined in IKEv2 [RFC4306]. The
pseudo-random function to be used for the prf+ function is specified pseudo-random function to be used for the prf+ function is specified
in the Algorithm AVP in a PANA-Bind-Request message. The length of in the Algorithm AVP in the last PANA-Auth-Request message. The
PANA_AUTH_KEY depends on the integrity algorithm in use. See length of PANA_AUTH_KEY depends on the integrity algorithm in use.
Section 5.4 for the detailed usage of the PANA_AUTH_KEY. PaC_nonce See Section 5.4 for the detailed usage of the PANA_AUTH_KEY.
and PAA_nonce are values of the Nonce AVP carried in the first PaC_nonce and PAA_nonce are values of the Nonce AVP carried in the
PANA-Auth-Answer and PANA-Auth-Request messages in the authentication first non-initial PANA-Auth-Answer and PANA-Auth-Request messages in
and authorization phase or the re-authentication phase, respectively. the authentication and authorization phase or the first
Session_ID is the session identifier of the session. Key_ID is the PANA-Auth-Answer and PANA-Auth-Request messages in the
value of the Key-ID AVP. re-authentication phase, respectively. Session_ID is the session
identifier of the session. Key_ID is the value of the Key-Id AVP.
5.4. Message Authentication 5.4. Message Authentication
A PANA message can contain an AUTH AVP for cryptographically A PANA message can contain an AUTH AVP for cryptographically
protecting the message. protecting the message.
When an AUTH AVP is included in a PANA message, the value field of When an AUTH AVP is included in a PANA message, the value field of
the AUTH AVP is calculated by using the PANA_AUTH_KEY in the the AUTH AVP is calculated by using the PANA_AUTH_KEY in the
following way: following way:
AUTH AVP value = PANA_AUTH_HASH(PANA_AUTH_KEY, PANA_PDU) AUTH AVP value = PANA_AUTH_HASH(PANA_AUTH_KEY, PANA_PDU)
where PANA_PDU is the PANA message including the PANA header, with where PANA_PDU is the PANA message including the PANA header, with
the AUTH AVP value field first initialized to 0. PANA_AUTH_HASH the AUTH AVP value field first initialized to 0. PANA_AUTH_HASH
represents the integrity algorithm specified in the Algorithm AVP in represents the integrity algorithm specified in the Algorithm AVP in
a PANA-Bind-Request message. The PaC and PAA MUST use the same the last PANA-Auth-Request message. The PaC and PAA MUST use the
integrity algorithm to calculate an AUTH AVP they originate and same integrity algorithm to calculate an AUTH AVP they originate and
receive. The algorithm is determined by the PAA. When the PaC does receive. The algorithm is determined by the PAA. When the PaC does
not support the integrity algorithm specified in the not support the integrity algorithm specified in the last
PANA-Bind-Request message, it MUST silently discard the message. PANA-Auth-Request message, it MUST silently discard the message.
5.5. Message Validity Check 5.5. Message Validity Check
When a PANA message is received, the message is considered to be When a PANA message is received, the message is considered to be
invalid at least when one of the following conditions are not met: invalid at least when one of the following conditions are not met:
o Each field in the message header contains a valid value including o Each field in the message header contains a valid value including
sequence number, message length, message type, version number, sequence number, message length, message type, version number,
flags, session identifier, etc. flags, session identifier, etc.
o The message type is one of the expected types in the current o The message type is one of the expected types in the current
state. Specifically the following messages are unexpected and state. Specifically the following messages are unexpected and
invalid: invalid:
* In the handshake phase: * In the authentication and authorization phase and the
re-authentication phase:
+ PANA-Termination-Request and PANA-Ping-Request. + PANA-Client-Initiation after completion of the initial
PANA-Auth-Request and PANA-Auth-Answer exchange.
+ PANA-Bind-Request. + Re-authentication request.
+ PANA-Update-Request. + The last PANA-Auth-Request as well as ping request before
completion of the initial PANA-Auth-Request and
PANA-Auth-Answer exchange.
+ PANA-Reauth-Request. + The initial PANA-Auth-Request after a PaC receives a valid
non-initial PANA-Auth-Request.
+ PANA-Error-Request. + PANA-Termination-Request.
* In the authentication and authorization phase and the * In the re-authentication phase:
re-authentication phase:
+ PANA-Client-Initiation. + PANA-Client-Initiation.
+ PANA-Update-Request. + The initial PANA-Auth-Request.
+ PANA-Start-Request after a PaC receives the first valid
PANA-Auth-Request.
+ PANA-Termination-Request before the PaC receives the first
successful PANA-Bind-Request.
* In the access phase: * In the access phase:
+ PANA-Start-Request as well as a non-duplicate + PANA-Auth-Request.
PANA-Bind-Request.
+ PANA-Client-Initiation. + PANA-Client-Initiation.
* In the termination phase: * In the termination phase:
+ PANA-Client-Initiation. + PANA-Client-Initiation.
+ All requests but PANA-Termination-Request. + All requests but PANA-Termination-Request and ping request.
o The message payload contains a valid set of AVPs allowed for the o The message payload contains a valid set of AVPs allowed for the
message type and there is no missing AVP that needs to be included message type and there is no missing AVP that needs to be included
in the payload and no AVP, which needs to be at a fixed position, in the payload and no AVP, which needs to be at a fixed position,
is included in a position different from this fixed position. is included in a position different from this fixed position.
o Each AVP is decoded correctly. o Each AVP is decoded correctly.
o When an AUTH AVP is included, the AVP value matches the hash value o When an AUTH AVP is included, the AVP value matches the hash value
computed against the received message. computed against the received message.
o When an Algorithm AVP is included, the algorithms indicated in the
AVP value is supported.
Invalid messages MUST be discarded in order to provide robustness Invalid messages MUST be discarded in order to provide robustness
against DoS attacks. In addition, an error notification message MAY against DoS attacks.
be returned to the sender. See Section 5.8 for details.
5.6. PaC Updating its IP Address 5.6. PaC Updating its IP Address
A PaC's IP address used for PANA can change in certain situations, A PaC's IP address used for PANA can change in certain situations,
e.g., when the PaC moves from one IP link to another within the same e.g., when the PaC moves from one IP link to another within the same
PAA's realm. In order to maintain the PANA session, the PAA needs to PAA's realm. In order to maintain the PANA session, the PAA needs to
be notified about the change of PaC address. be notified about the change of PaC address.
After the PaC has changed its IP address used for PANA, it MUST send After the PaC has changed its IP address used for PANA, it MUST send
a PANA-Update-Request message to the PAA. The PAA MUST update the any valid PANA message. If the message that carries the new PaC IP
PANA session with the new PaC address carried in the Source Address address in the Source Address field of the IP header is valid, the
field of the IP header and return a PANA-Update-Answer message. If PAA MUST update the PANA session with the new PaC address. If there
there is an established PANA SA, both PANA-Update-Request and is an established PANA SA, the message MUST be protected with an AUTH
PANA-Update-Answer messages MUST be protected with an AUTH AVP. AVP.
5.7. Session Lifetime 5.7. Session Lifetime
The authentication and authorization phase determines the PANA The authentication and authorization phase determines the PANA
session lifetime when the network access authorization succeeds. The session lifetime and the lifetime is indicated to the PaC When the
Session-Lifetime AVP MAY be optionally included in the network access authorization succeeds. For this purpose, when the
PANA-Bind-Request message to inform the PaC about the valid lifetime last PANA-Auth-Request message (i.e., with 'C' (Complete) bit set) in
of the PANA session. It MUST be ignored when included in other PANA authentication and authorization phase or re-authentication phase
messages. carries a Result-Code AVP with a value of PANA_SUCCESS, a Session-
Lifetime AVP MUST also be carried in the message. A Session-Lifetime
When the Session-Lifetime AVP is not included in the AVP MUST be ignored when included in other PANA messages.
PANA-Bind-Request message then the PaC has no knowledge about a PANA
session limitation and must therefore conclude that the session is
not limited.
The lifetime is a non-negotiable parameter that can be used by the The lifetime is a non-negotiable parameter that can be used by the
PaC to manage PANA-related state. The PaC does not have to perform PaC to manage PANA-related state. The PaC MUST initiate the re-
any actions when the lifetime expires, other than purging local authentication phase before the current session lifetime expires if
state. The PAA SHOULD initiate the PANA re-authentication phase it wants to extend the session.
before the current session lifetime expires.
The PaC and the PAA MAY use information obtained outside PANA (e.g., The PaC and the PAA MAY use information obtained outside PANA (e.g.,
lower-layer indications) to expedite the detection of a disconnected lower-layer indications) to expedite the detection of a disconnected
peer. Availability and reliability of such indications MAY depend on peer. Availability and reliability of such indications MAY depend on
a specific link-layer or network topology and are therefore only a specific link-layer or network topology and are therefore only
hints. A PANA peer SHOULD use the PANA-Ping message exchange to hints. A PANA peer SHOULD use the ping request and answer exchange
verify that a peer is, in fact, no longer alive, unless information to verify that a peer is, in fact, no longer alive, unless
obtained outside PANA is being used to expedite the detection of a information obtained outside PANA is being used to expedite the
disconnected peer. detection of a disconnected peer.
The session lifetime parameter is not related to the transmission of The session lifetime parameter is not related to the transmission of
PANA-Ping-Request messages. These messages can be used for ping request messages. These messages can be used for asynchronously
asynchronously verifying the liveness of the peer. The decision to verifying the liveness of the peer. The decision to send a ping
send a PANA-Ping-Request message is taken locally and does not request message is taken locally and does not require coordination
require coordination between the peers. between the peers.
5.8. Error Handling
A PANA-Error-Request message MAY be sent by either the PaC or the PAA
when a badly formed PANA message is received or in case of other
errors. The receiver of this request MUST respond with a
PANA-Error-Answer message.
An adversary might craft erroneous PANA messages to launch a Denial
of Service attack. Unless the PaC or the PAA performs a
rate-limitation of the generated PANA-Error-Request messages it may
be overburdened by responding to bogus messages. Note that a
PANA-Error-Answer message that is sent in response to a
PANA-Error-Request message does not require either the PaC or the PAA
to create a PANA protocol state.
If an error message is sent unprotected (i.e., without using an AUTH
AVP) then the error message MUST be processed such that the receiver
does not change its PANA protocol state.
6. Message Format 6. Message Format
This section defines message formats for PANA protocol. This section defines message formats for PANA protocol.
6.1. IP and UDP Headers 6.1. IP and UDP Headers
Any PANA message is unicast between the PaC and the PAA. Any PANA message is unicast between the PaC and the PAA.
When the PANA message is sent in response to a request, the UDP For any PANA message sent from the peer that has initiated the PANA
source and destination ports of the response message MUST be copied session, the UDP source port is set to any number and the destination
from the destination and source ports of the request message, port is set to the assigned PANA port number (to be assigned by
respectively. IANA). For any PANA message sent from the other peer, the source
port is set to the assigned PANA port number (to be assigned by IANA)
For other PANA messages, the source port MUST be set to a value and the destination port is copied from the source port of the last
chosen by the sender and the destination port MUST be set to the received message. In case both the PaC and PAA initiates the session
assigned PANA port (To Be Assigned by IANA). (i.e., PANA-Client-Initiation and unsolicited PANA-Auth-Request
messages cross each other), then the PaC is identified as the
initiator.
6.2. PANA Message Header 6.2. PANA Message Header
A summary of the PANA message header format is shown below. The A summary of the PANA message header format is shown below. The
fields are transmitted in network byte order. fields are transmitted in network byte order.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Version | Reserved | Message Length | | Version | Reserved | Message Length |
skipping to change at page 25, line 17 skipping to change at page 22, line 17
The Message Length field is two octets and indicates the length of The Message Length field is two octets and indicates the length of
the PANA message including the header fields. the PANA message including the header fields.
Flags Flags
The Flags field is two octets. The following bits are assigned: The Flags field is two octets. The following bits are assigned:
0 1 0 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|R r r r r r r r r r r r r r r r| |R S C A P r r r r r r r r r r r|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
R(equest) R (Request)
If set, the message is a request. If cleared, the message is If set, the message is a request. If cleared, the message is
an answer. an answer.
r(eserved) S (Start)
If set, the message is the first PANA-Auth-Request or PANA-
Auth-Answer in authentication and authorization phase. For
other messages, this bit MUST be cleared.
C (Complete)
If set, the message is the last PANA-Auth-Request or PANA-Auth-
Answer in authentication and authorization phase. For other
messages this bit MUST be cleared.
A (re-Authentication)
If set, the message is a PANA-Notification-Request or PANA-
Notification-Answer to initiate re-authentication. For other
messages this bit MUST be cleared.
P (Ping)
If set, the message is a PANA-Notification-Request or PANA-
Notification-Answer for liveness test. For other messages this
bit MUST be cleared.
r (reserved)
These flag bits are reserved for future use, and MUST be set to These flag bits are reserved for future use, and MUST be set to
zero, and ignored by the receiver. zero, and ignored by the receiver.
Message Type Message Type
The Message Type field is two octets, and is used in order to The Message Type field is two octets, and is used in order to
communicate the message type with the message. The 16-bit address communicate the message type with the message. The 16-bit address
space is managed by IANA [ianaweb]. space is managed by IANA [ianaweb].
skipping to change at page 26, line 46 skipping to change at page 24, line 35
The AVP Flags field is two octets. The following bits are The AVP Flags field is two octets. The following bits are
assigned: assigned:
0 1 0 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|V M r r r r r r r r r r r r r r| |V M r r r r r r r r r r r r r r|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
V(endor) V (Vendor)
The 'V' bit, known as the Vendor-Specific bit, indicates The 'V' bit, known as the Vendor-Specific bit, indicates
whether the optional Vendor-Id field is present in the AVP whether the optional Vendor-Id field is present in the AVP
header. When set the AVP Code belongs to the specific vendor header. When set the AVP Code belongs to the specific vendor
code address space. code address space.
M(andatory) M (Mandatory)
The 'M' Bit, known as the Mandatory bit, indicates whether The 'M' Bit, known as the Mandatory bit, indicates whether
support of the AVP is required. If an AVP with the 'M' bit set support of the AVP is required. If an AVP with the 'M' bit set
is received by the PaC or PAA and either the AVP or its value is received by the PaC or PAA and either the AVP or its value
is unrecognized, the message MUST be rejected and the receiver is unrecognized, the message MUST be considered as invalid.
MUST send a PANA-Error-Request message. If the AVP was AVPs with the 'M' bit cleared are informational only and a
unrecognized the PANA-Error-Request message result code MUST be receiver that receives a message with such an AVP that is not
PANA_AVP_UNSUPPORTED. If the AVP value was unrecognized the recognized, or whose value is not recognized, MAY simply ignore
PANA-Error-Request message result code MUST be the AVP.
PANA_INVALID_AVP_DATA. In either case the PANA-Error-Request
message MUST carry a Failed-AVP AVP containing the offending
mandatory AVP. AVPs with the 'M' bit cleared are informational
only and a receiver that receives a message with such an AVP
that is not recognized, or whose value is not recognized, MAY
simply ignore the AVP.
r(eserved) r (reserved)
These flag bits are reserved for future use, and MUST be set to These flag bits are reserved for future use, and MUST be set to
zero, and ignored by the receiver. zero, and ignored by the receiver.
AVP Length AVP Length
The AVP Length field is two octets, and indicates the number of The AVP Length field is two octets, and indicates the number of
octets in the Value field. The length of the AVP Code, AVP octets in the Value field. The length of the AVP Code, AVP
Length, AVP Flags, Reserved and Vendor-Id fields are not counted Length, AVP Flags, Reserved and Vendor-Id fields are not counted
in the AVP Length value. in the AVP Length value.
skipping to change at page 29, line 8 skipping to change at page 26, line 8
determined by the AVP Code and Vendor-Id fields. The length of determined by the AVP Code and Vendor-Id fields. The length of
the Value field is determined by the AVP Length field. the Value field is determined by the AVP Length field.
Unless otherwise noted, AVPs defined in this document will have the Unless otherwise noted, AVPs defined in this document will have the
following default AVP Flags field settings: The 'M' bit MUST be set. following default AVP Flags field settings: The 'M' bit MUST be set.
The 'V' bit MUST NOT be set. The 'V' bit MUST NOT be set.
7. PANA Messages 7. PANA Messages
Each Request/Answer message pair is assigned a Sequence Number, and Each Request/Answer message pair is assigned a Sequence Number, and
the sub-type (i.e., request or answer) is identified via the 'R' bit the sub-type (i.e., request or answer) is identified via the 'R'
in the Message Flags field of the PANA message header. (Request) bit in the Message Flags field of the PANA message header.
Every PANA message MUST contain a message ID in its header's Message Every PANA message MUST contain a message type in its header's
Type field, which is used to determine the action that is to be taken Message Type field, which is used to determine the action that is to
for a particular message. Figure 8 lists all PANA messages defined be taken for a particular message. Figure 3 lists all PANA messages
in this document: defined in this document:
Message-Name Abbrev. ID PaC<->PAA Ref. Message-Name Abbrev. ID PaC<->PAA Ref.
---------------------------------------------------------- ----------------------------------------------------------
PANA-Client-Initiation PCI 1 --------> 7.1 PANA-Client-Initiation PCI 1 --------> 7.1
PANA-Start-Request PSR 2 <-------- 7.2 PANA-Auth-Request PAR 2 <-------> 7.2
PANA-Start-Answer PSA 2 --------> 7.3 PANA-Auth-Answer PAN 2 <-------> 7.3
PANA-Auth-Request PAR 3 <-------> 7.4 PANA-Termination-Request PTR 3 <-------> 7.4
PANA-Auth-Answer PAN 3 <-------> 7.5 PANA-Termination-Answer PTA 3 <-------> 7.5
PANA-Reauth-Request PRR 4 --------> 7.6 PANA-Notification-Request PNR 4 <-------> 7.6
PANA-Reauth-Answer PRA 4 <-------- 7.7 PANA-Notification-Answer PNA 4 <-------> 7.7
PANA-Bind-Request PBR 5 <-------- 7.8
PANA-Bind-Answer PBA 5 --------> 7.9
PANA-Ping-Request PPR 6 <-------> 7.10
PANA-Ping-Answer PPA 6 <-------> 7.11
PANA-Termination-Request PTR 7 <-------> 7.12
PANA-Termination-Answer PTA 7 <-------> 7.13
PANA-Error-Request PER 8 <-------> 7.14
PANA-Error-Answer PEA 8 <-------> 7.15
PANA-Update-Request PUR 9 <-------> 7.16
PANA-Update-Answer PUA 9 <-------> 7.17
----------------------------------------------------------- -----------------------------------------------------------
Figure 8: Table of PANA Messages Figure 3: Table of PANA Messages
Every PANA message defined MUST include a corresponding ABNF Every PANA message defined MUST include a corresponding ABNF
[RFC2234] specification, which is used to define the AVPs that MUST [RFC2234] specification, which is used to define the AVPs that MUST
or MAY be present. The following format is used in the definition: or MAY be present. The following format is used in the definition:
message-def = Message-Name "::=" PANA-message message-def = Message-Name "::=" PANA-message
message-name = PANA-name message-name = PANA-name
PANA-name = ALPHA *(ALPHA / DIGIT / "-") PANA-name = ALPHA *(ALPHA / DIGIT / "-")
PANA-message = header [ *fixed] [ *required] [ *optional] PANA-message = header [ *fixed] [ *required] [ *optional]
[ *fixed] [ *fixed]
header = "< PANA-Header: " Message-Type header = "< PANA-Header: " Message-Type
[r-bit] ">" [r-bit] [s-bit] [c-bit] [a-bit] [p-bit] ">"
Message-Type = 1*DIGIT Message-Type = 1*DIGIT
; The Message Type assigned to the message ; The Message Type assigned to the message
r-bit = ", REQ" r-bit = ", REQ"
; If present, the 'R' bit in the Message ; If present, the 'R' bit in the Message
; Flags is set, indicating that the message ; Flags is set, indicating that the message
; is a request, as opposed to an answer. ; is a request, as opposed to an answer.
s-bit = ", STA"
; If present, the 'S' bit in the Message
; Flags is set, indicating that the message
; is the initial PAR or PAN in authentication
; and authorization phase.
c-bit = ", COM"
; If present, the 'C' bit in the Message
; Flags is set, indicating that the message
; is the final PAR and PAN in authentication
; and authorization phase or re-authentication
; phase.
a-bit = ", REA"
; If present, the 'A' bit in the Message
; Flags is set, indicating that the message
; is a re-authentication request or answer.
p-bit = ", PIN"
; If present, the 'P' bit in the Message
; Flags is set, indicating that the message
; is a ping request or answer.
fixed = [qual] "<" avp-spec ">" fixed = [qual] "<" avp-spec ">"
; Defines the fixed position of an AVP. ; Defines the fixed position of an AVP.
required = [qual] "{" avp-spec "}" required = [qual] "{" avp-spec "}"
; The AVP MUST be present and can appear ; The AVP MUST be present and can appear
; anywhere in the message. ; anywhere in the message.
optional = [qual] "[" avp-name "]" optional = [qual] "[" avp-name "]"
; The avp-name in the 'optional' rule cannot ; The avp-name in the 'optional' rule cannot
; evaluate to any AVP Name which is included ; evaluate to any AVP Name which is included
skipping to change at page 31, line 17 skipping to change at page 28, line 31
; The avp-spec has to be an AVP Name, defined ; The avp-spec has to be an AVP Name, defined
; in the base or extended PANA protocol ; in the base or extended PANA protocol
; specifications. ; specifications.
avp-name = avp-spec / "AVP" avp-name = avp-spec / "AVP"
; The string "AVP" stands for *any* arbitrary ; The string "AVP" stands for *any* arbitrary
; AVP Name, which does not conflict with the ; AVP Name, which does not conflict with the
; required or fixed position AVPs defined in ; required or fixed position AVPs defined in
; the message definition. ; the message definition.
Example-Request ::= < "PANA-Header: 9999999, REQ >
{ Result-Code }
* [ AVP ]
0*1 < AUTH >
7.1. PANA-Client-Initiation (PCI) 7.1. PANA-Client-Initiation (PCI)
The PANA-Client-Initiation (PCI) message is used for PaC-initiated The PANA-Client-Initiation (PCI) message is used for PaC-initiated
handshake. The Sequence Number and Session Identifier fields in this session. The Sequence Number and Session Identifier fields in this
message MUST be set to zero (0). message MUST be set to zero (0).
PANA-Client-Initiation ::= < PANA-Header: 1 > PANA-Client-Initiation ::= < PANA-Header: 1 >
* [ AVP ] * [ AVP ]
7.2. PANA-Start-Request (PSR) 7.2. PANA-Auth-Request (PAR)
The PANA-Start-Request (PSR) message is sent by the PAA to the PaC to
start PANA authentication. The PAA sets the Sequence Number field to
an initial random value and sets the Session Identifier field to a
newly assigned value.
PANA-Start-Request ::= < PANA-Header: 2, REQ >
[ EAP-Payload ]
[ Algorithm ]
* [ AVP ]
7.3. PANA-Start-Answer (PSA) The PANA-Auth-Request (PAR) message is either sent by the PAA or the
PaC.
The PANA-Start-Answer (PSA) message is sent by the PaC to the PAA in The message MUST NOT have both 'S' and 'C' bits set.
response to a PANA-Start-Request message. This message completes the
handshake to start PANA authentication.
PANA-Start-Answer ::= < PANA-Header: 2 > PANA-Auth-Request ::= < PANA-Header: 2, REQ[,STA][,COM] >
[ EAP-Payload ] [ EAP-Payload ]
* [ AVP ] [ Algorithm ]
7.4. PANA-Auth-Request (PAR)
The PANA-Auth-Request (PAR) message is either sent by the PAA or the
PaC. Its main task is to carry an EAP-Payload AVP.
PANA-Auth-Request ::= < PANA-Header: 3, REQ >
< EAP-Payload >
[ Nonce ] [ Nonce ]
[ Result-Code ]
[ Session-Lifetime ]
[ Key-Id ]
* [ AVP ] * [ AVP ]
0*1 < AUTH > 0*1 < AUTH >
7.5. PANA-Auth-Answer (PAN) 7.3. PANA-Auth-Answer (PAN)
The PANA-Auth-Answer (PAN) message is sent by either the PaC or the The PANA-Auth-Answer (PAN) message is sent by either the PaC or the
PAA in response to a PANA-Auth-Request message. It MAY carry an PAA in response to a PANA-Auth-Request message.
EAP-Payload AVP.
PANA-Auth-Answer ::= < PANA-Header: 3 >
[ Nonce ]
[ EAP-Payload ]
* [ AVP ]
0*1 < AUTH >
7.6. PANA-Reauth-Request (PRR)
The PANA-Reauth-Request (PRR) message is sent by the PaC to the PAA
to re-initiate EAP authentication.
PANA-Reauth-Request ::= < PANA-Header: 4, REQ >
* [ AVP ]
0*1 < AUTH >
7.7. PANA-Reauth-Answer (PRA)
The PANA-Reauth-Answer (PRA) message is sent by the PAA to the PaC in
response to a PANA-Reauth-Request message.
PANA-Reauth-Answer ::= < PANA-Header: 4 >
* [ AVP ]
0*1 < AUTH >
7.8. PANA-Bind-Request (PBR)
The PANA-Bind-Request (PBR) message is sent by the PAA to the PaC to The message MUST NOT have both 'S' and 'C' bits set.
deliver the result of PANA authentication.
PANA-Bind-Request ::= < PANA-Header: 5, REQ > PANA-Auth-Answer ::= < PANA-Header: 2 [,STA][,COM] >
{ Result-Code } [ Nonce ]
[ EAP-Payload ] [ EAP-Payload ]
[ Session-Lifetime ]
[ Key-Id ]
[ Algorithm ]
* [ AVP ]
0*1 < AUTH >
7.9. PANA-Bind-Answer (PBA)
The PANA-Bind-Answer (PBA) message is sent by the PaC to the PAA in
response to a PANA-Bind-Request message.
PANA-Bind-Answer ::= < PANA-Header: 5 >
[ Key-Id ] [ Key-Id ]
* [ AVP ] * [ AVP ]
0*1 < AUTH > 0*1 < AUTH >
7.10. PANA-Ping-Request (PPR) 7.4. PANA-Termination-Request (PTR)
The PANA-Ping-Request (PPR) message is either sent by the PaC or the
PAA for performing liveness test.
PANA-Ping-Request ::= < PANA-Header: 6, REQ >
* [ AVP ]
0*1 < AUTH >
7.11. PANA-Ping-Answer (PPA)
The PANA-Ping-Answer (PPA) message is sent in response to a
PANA-Ping-Request.
PANA-Ping-Answer ::= < PANA-Header: 6 >
* [ AVP ]
0*1 < AUTH >
7.12. PANA-Termination-Request (PTR)
The PANA-Termination-Request (PTR) message is sent either by the PaC The PANA-Termination-Request (PTR) message is sent either by the PaC
or the PAA to terminate a PANA session. or the PAA to terminate a PANA session.
PANA-Termination-Request ::= < PANA-Header: 7, REQ > PANA-Termination-Request ::= < PANA-Header: 3, REQ >
< Termination-Cause > < Termination-Cause >
* [ AVP ] * [ AVP ]
0*1 < AUTH > 0*1 < AUTH >
7.13. PANA-Termination-Answer (PTA) 7.5. PANA-Termination-Answer (PTA)
The PANA-Termination-Answer (PTA) message is sent either by the PaC The PANA-Termination-Answer (PTA) message is sent either by the PaC
or the PAA in response to PANA-Termination-Request. or the PAA in response to PANA-Termination-Request.
PANA-Termination-Answer ::= < PANA-Header: 7 > PANA-Termination-Answer ::= < PANA-Header: 3 >
* [ AVP ] * [ AVP ]
0*1 < AUTH > 0*1 < AUTH >
7.14. PANA-Error-Request (PER) 7.6. PANA-Notification-Request (PNR)
The PANA-Error-Request (PER) message is sent either by the PaC or the
PAA to report an error with the last received PANA message. This
message MUST contain one Failed-Message-Header AVP which carries the
content of the PANA message header of the erroneous message.
PANA-Error-Request ::= < PANA-Header: 8, REQ >
< Result-Code >
{ Failed-Message-Header }
* [ Failed-AVP ]
* [ AVP ]
0*1 < AUTH >
7.15. PANA-Error-Answer (PEA) The PANA-Notification-Request (PNR) message is sent either by the PaC
or the PAA for signaling re-authentication and performing liveness
test.
The PANA-Error-Answer (PEA) message is sent in response to a The message MUST have one of 'A' and 'P' bits exclusively set.
PANA-Error-Request.
PANA-Error-Answer ::= < PANA-Header: 8 > PANA-Notification-Request ::= < PANA-Header: 4, REQ[,REA][,PIN] >
* [ AVP ] * [ AVP ]
0*1 < AUTH > 0*1 < AUTH >
7.16. PANA-Update-Request (PUR) 7.7. PANA-Notification-Answer (PNA)
The PANA-Update-Request (PUR) message is sent either by the PaC or
the PAA to deliver attribute updates. In the scope of this
specification only the IP address the PaC can be updated via this
message.
PANA-Update-Request ::= < PANA-Header: 9, REQ >
* [ AVP ]
0*1 < AUTH >
7.17. PANA-Update-Answer (PUA) The PANA-Notification-Answer (PNA) message is sent by the PAA (PaC)
to the PaC (PAA) in response to a PANA-Notification-Request from the
PaC (PAA).
The PANA-Update-Answer (PUA) message is sent by the PAA (PaC) to the The message MUST have one of 'A' and 'P' bits exclusively set.
PaC (PAA) in response to a PANA-Update-Request from the PaC (PAA).
PANA-Update-Answer ::= < PANA-Header: 9 > PANA-Notification-Answer ::= < PANA-Header: 4, REQ[,REA][,PIN] >
* [ AVP ] * [ AVP ]
0*1 < AUTH > 0*1 < AUTH >
8. AVPs in PANA 8. AVPs in PANA
This document uses AVP Value Format such as 'OctetString' and This document uses AVP Value Format such as 'OctetString' and
'Unsigned32' as defined in Section 4.2 of [RFC3588]. The definitions 'Unsigned32' as defined in Section 4.2 of [RFC3588]. The definitions
of these data formats are not repeated in this document. of these data formats are not repeated in this document.
The following tables lists the AVPs used in this document, and The following table lists the AVPs used in this document, and
specifies in which PANA messages they MAY, or MAY NOT be present. specifies in which PANA messages they MAY, or MAY NOT be present.
The table uses the following symbols: The table uses the following symbols:
0 The AVP MUST NOT be present in the message. 0 The AVP MUST NOT be present in the message.
0+ Zero or more instances of the AVP MAY be present in the
message.
0-1 Zero or one instance of the AVP MAY be present in the message. 0-1 Zero or one instance of the AVP MAY be present in the message.
It is considered an error if there are more than one instance It is considered an error if there are more than one instance
of the AVP. of the AVP.
1 One instance of the AVP MUST be present in the message. 1 One instance of the AVP MUST be present in the message.
+-------------------------------------------+ +---------------------------+
| Message Type |
+---+---+---+---+---+---+---+---+---+---+---+
Attribute Name |PCI|PSR|PSA|PAR|PAN|PRR|PRA|PBR|PBA|PPR|PPA|
----------------------+---+---+---+---+---+---+---+---+---+---+---+
Algorithm | 0 |0-1| 0 | 0 | 0 | 0 | 0 |0-1| 0 | 0 | 0 |
AUTH | 0 | 0 | 0 |0-1|0-1|0-1|0-1|0-1|0-1|0-1|0-1|
EAP-Payload | 0 |0-1|0-1| 1 |0-1| 0 | 0 |0-1| 0 | 0 | 0 |
Failed-AVP | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Failed-Message-Header | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Key-Id | 0 | 0 | 0 | 0 | 0 | 0 | 0 |0-1|0-1| 0 | 0 |
Nonce | 0 | 0 | 0 |0-1|0-1| 0 | 0 | 0 | 0 | 0 | 0 |
Result-Code | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
Session-Lifetime | 0 | 0 | 0 | 0 | 0 | 0 | 0 |0-1| 0 | 0 | 0 |
Termination-Cause | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
----------------------+---+---+---+---+---+---+---+---+---+---+---+
Figure 9: AVP Occurrence Table (1/2)
+-----------------------+
| Message Type | | Message Type |
+---+---+---+---+---+---+ +---+---+---+---+---+---+---+
Attribute Name |PTR|PTA|PER|PEA|PUR|PUA| Attribute Name |PCI|PAR|PAN|PTR|PTA|PNR|PNA|
----------------------+---+---+---+---+---+---+ ----------------------+---+---+---+---+---+---+---+
Algorithm | 0 | 0 | 0 | 0 | 0 | 0 | Algorithm | 0 |0-1| 0 | 0 | 0 | 0 | 0 |
AUTH |0-1|0-1|0-1|0-1|0-1|0-1| AUTH | 0 |0-1|0-1|0-1|0-1|0-1|0-1|
EAP-Payload | 0 | 0 | 0 | 0 | 0 | 0 | EAP-Payload | 0 |0-1|0-1| 0 | 0 | 0 | 0 |
Failed-AVP | 0 | 0 | 0+| 0 | 0 | 0 | Key-Id | 0 |0-1|0-1| 0 | 0 | 0 | 0 |
Failed-Message-Header | 0 | 0 | 1 | 0 | 0 | 0 | Nonce | 0 |0-1|0-1| 0 | 0 | 0 | 0 |
Key-Id | 0 | 0 | 0 | 0 | 0 | 0 | Result-Code | 0 |0-1| 0 | 0 | 0 | 0 | 0 |
Nonce | 0 | 0 | 0 | 0 | 0 | 0 | Session-Lifetime | 0 |0-1| 0 | 0 | 0 | 0 | 0 |
Result-Code | 0 | 0 | 1 | 0 | 0 | 0 | Termination-Cause | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
Session-Lifetime | 0 | 0 | 0 | 0 | 0 | 0 | ----------------------+---+---+---+---+---+---+---+
Termination-Cause | 1 | 0 | 0 | 0 | 0 | 0 |
----------------------+---+---+---+---+---+---+
Figure 10: AVP Occurrence Table (2/2) Figure 4: AVP Occurrence Table
8.1. Algorithm AVP 8.1. Algorithm AVP
The Algorithm AVP (AVP Code 1) is used for conveying the The Algorithm AVP (AVP Code 1) is used for conveying the
pseudo-random function to derive PANA_AUTH_KEY as well as the pseudo-random function to derive PANA_AUTH_KEY as well as the
integrity algorithm to compute an AUTH AVP. The AVP data is of type integrity algorithm to compute an AUTH AVP. The AVP data is of type
Unsigned32. Unsigned32.
The first 16-bit of the AVP data contains an IKEv2 Transform ID of The first 16-bit of the AVP data contains an IKEv2 Transform ID of
Transform Type 2 [RFC4306] corresponding to the key derivation Transform Type 2 [RFC4306] corresponding to the key derivation
skipping to change at page 37, line 46 skipping to change at page 32, line 17
All PANA implementations MUST support PRF_HMAC_SHA1 (2) [RFC2104] for All PANA implementations MUST support PRF_HMAC_SHA1 (2) [RFC2104] for
the key derivation algorithm and AUTH_HMAC_SHA1_160 (7) [RFC4595] the key derivation algorithm and AUTH_HMAC_SHA1_160 (7) [RFC4595]
corresponding to the integrity algorithm. corresponding to the integrity algorithm.
8.2. AUTH AVP 8.2. AUTH AVP
The AUTH AVP (AVP Code 2) is used to integrity protect PANA messages. The AUTH AVP (AVP Code 2) is used to integrity protect PANA messages.
The AVP data payload contains the Message Authentication Code encoded The AVP data payload contains the Message Authentication Code encoded
in network byte order. The AVP length varies depending on the in network byte order. The AVP length varies depending on the
integrity algorithm specified in an Algorithm AVP. integrity algorithm specified in an Algorithm AVP. The AVP data is
of type OctetString.
8.3. EAP-Payload AVP 8.3. EAP-Payload AVP
The EAP-Payload AVP (AVP Code 3) is used for encapsulating the actual The EAP-Payload AVP (AVP Code 3) is used for encapsulating the actual
EAP message that is being exchanged between the EAP peer and the EAP EAP message that is being exchanged between the EAP peer and the EAP
authenticator. The AVP data is of type OctetString. authenticator. The AVP data is of type OctetString.
8.4. Failed-AVP AVP 8.4. Key-Id AVP
The Failed-AVP AVP (AVP Code 4) provides debugging information in
cases where a message is rejected or not fully processed due to
erroneous information in a specific AVP. The AVP data is of type
Grouped. The format of the Failed-AVP AVP using the ABNF grammar
defined in [RFC3588] for Grouped AVP is as follows.
<Failed-AVP> ::= < AVP Header: 4 >
1* {AVP}
In case of a failed grouped AVP, the Failed-AVP contains the whole
grouped AVP. In case of a failed AVP inside a grouped AVP, the
Failed-AVP contains the single offending AVP.
8.5. Failed-Message-Header AVP
The Failed-Message-Header AVP (AVP Code 5) provides debugging
information in cases where a message is rejected or not fully
processed due to erroneous information in the message. The AVP data
is of type OctetString. The AVP data contains the 16-octet header of
the message that caused the error.
8.6. Key-Id AVP
The Key-Id AVP (AVP Code 6) is of type Integer32, and contains an MSK The Key-Id AVP (AVP Code 4) is of type Integer32, and contains an MSK
identifier. The MSK identifier is assigned by PAA and MUST be unique identifier. The MSK identifier is assigned by PAA and MUST be unique
within the PANA session. within the PANA session.
8.7. Nonce AVP 8.5. Nonce AVP
The Nonce AVP (AVP Code 7) carries a randomly chosen value that is The Nonce AVP (AVP Code 5) carries a randomly chosen value that is
used in cryptographic key computations. The recommendations in used in cryptographic key computations. The recommendations in
[RFC4086] apply with regard to generation of random values. The AVP [RFC4086] apply with regard to generation of random values. The AVP
data is of type OctetString and it contains a randomly generated data is of type OctetString and it contains a randomly generated
value in opaque format. The data length MUST be between 8 and 256 value in opaque format. The data length MUST be between 8 and 256
octets inclusive. octets inclusive.
The length of the nonces are determined based on the available The length of the nonces are determined based on the available
pseudo-random functions (PRFs) and the degree of trust placed into pseudo-random functions (PRFs) and the degree of trust placed into
the two PaC and the PAA to compute random values. The length of the the two PaC and the PAA to compute random values. The length of the
random value for the nonce is determined whether random value for the nonce is determined whether
1. The PaC and the PAA each are likely to be able to compute a 1. The PaC and the PAA each are likely to be able to compute a
random nonce (according to [RFC4086]). The length of the nonce random nonce (according to [RFC4086]). The length of the nonce
has to be 1/2 the length of the PRF key (e.g., 10 octets in the has to be 1/2 the length of the PRF key (e.g., 10 octets in the
case of HMAC-SHA1). case of HMAC-SHA1).
2. The PaC and the PAA each are not trusted with regard to the 2. The PaC and the PAA each are not trusted with regard to the
computation a random nonce (according to [RFC4086]). The length computation of a random nonce (according to [RFC4086]). The
of the nonce has to have the full length of the PRF key (e.g., 20 length of the nonce has to have the full length of the PRF key
octets in the case of HMAC-SHA1). (e.g., 20 octets in the case of HMAC-SHA1).
Furthermore, the strongest available PRF available for PANA has to be Furthermore, the strongest available PRF available for PANA has to be
considered in this computation. Currently, only a single PRF (namely considered in this computation. Currently, only a single PRF (namely
HMAC-SHA1) is available and therefore the maximum output length is 20 HMAC-SHA1) is available and therefore the maximum output length is 20
octets). The recommended maximum length of the nonce value is octets). The maximum length of the nonce value in PANA Version 1
therefore currently 20 octets. SHOULD be therefore 20 octets.
8.8. Result-Code AVP
The Result-Code AVP (AVP Code 8) is of type Unsigned32 and indicates
whether an EAP authentication was completed successfully or whether
an error occurred. Result-Code AVP values are described in the
subsequent sections.
8.8.1. Authentication Results Codes 8.6. Result-Code AVP
These result code values inform the PaC about the authentication and The Result-Code AVP (AVP Code 6) is of type Unsigned32 and indicates
authorization result. The authentication result and authorization whether an EAP authentication was completed successfully. Result-
result can be different as described below, but only one result is Code AVP values are described below.
returned to the PaC. These codes are used with PANA-Bind-Request
message.
PANA_SUCCESS 0 PANA_SUCCESS 0
Both authentication and authorization processes are successful. Both authentication and authorization processes are successful.
PANA_AUTHENTICATION_REJECTED 1 PANA_AUTHENTICATION_REJECTED 1
Authentication has failed. When this error is returned, it is Authentication has failed. When this error is returned, it is
assumed that authorization is automatically failed. assumed that authorization is automatically failed.
PANA_AUTHORIZATION_REJECTED 2 PANA_AUTHORIZATION_REJECTED 2
The authorization process has failed. This error could occur when The authorization process has failed. This error could occur when
authorization is rejected by a AAA server or rejected locally by a authorization is rejected by a AAA server or rejected locally by a
PAA, even if the authentication procedure has succeeded. PAA, even if the authentication procedure has succeeded.
8.8.2. Protocol Error Result Codes 8.7. Session-Lifetime AVP
These codes are used with PANA-Error-Request messages. Unless stated
otherwise, they can be generated by both the PaC and the PAA.
PANA_MESSAGE_UNSUPPORTED 1001
Message type not recognized or supported.
PANA_UNABLE_TO_DELIVER 1002
The PAA was unable to deliver the EAP payload to the
authentication server. Only the PAA can generate this code.
PANA_INVALID_HDR_BITS 1003
A message was received whose bits in the PANA message header were
either set to an invalid combination, or to a value that is
inconsistent with the message type definition.
PANA_INVALID_AVP_FLAGS 1004
A message was received that included an AVP whose flag bits are
set to an unrecognized value, or that is inconsistent with the
AVP's definition.
PANA_AVP_UNSUPPORTED 1005
The received message contained an AVP that is not recognized or
supported and was marked with the Mandatory bit. A PANA message
with this error MUST contain one or more Failed-AVP AVP containing
the AVPs that caused the failure.
PANA_INVALID_AVP_DATA 1006
The message contained an AVP with an invalid value in its data
portion. A PANA message indicating this error MUST include the
offending AVPs within a Failed-AVP AVP.
PANA_MISSING_AVP 1007
The message did not contain an AVP that is required by the message
type definition. If this value is sent in the Result-Code AVP, a
Failed-AVP AVP SHOULD be included in the message. The Failed-AVP
AVP MUST contain an example of the missing AVP complete with the
Vendor-Id if applicable. The value field of the missing AVP
should be of correct minimum length and contain zeroes.
PANA_RESOURCES_EXCEEDED 1008
A message was received that cannot be authorized because the
client has already expended allowed resources. An example of this
error condition is a client that is restricted to one PANA session
and attempts to establish a second session. Only the PAA can
generate this code.
PANA_CONTRADICTING_AVPS 1009
The PAA has detected AVPs in the message that contradicted each
other, and is not willing to provide service to the client. One
or more Failed-AVP AVPs MUST be present, containing the AVPs that
contradicted each other. Only the PAA can generate this code.
PANA_AVP_NOT_ALLOWED 1010
A message was received with an AVP that MUST NOT be present. The
Failed-AVP AVP MUST be included and contain a copy of the
offending AVP.
PANA_AVP_OCCURS_TOO_MANY_TIMES 1011
A message was received that included an AVP that appeared more
often than permitted in the message definition. The Failed-AVP
AVP MUST be included and contain a copy of the first instance of
the offending AVP that exceeded the maximum number of occurrences.
PANA_UNSUPPORTED_VERSION 1012
This error is returned when a message was received, whose version
number is unsupported.
PANA_UNABLE_TO_COMPLY 1013
This error is returned when a request is rejected for unspecified
reasons. For example, when an EAP authentication fails at an EAP
pass-through authenticator without passing an EAP Failure message
to the PAA, a Result-Code AVP with this error code is carried in
the PANA-Error-Request message.
PANA_INVALID_AVP_LENGTH 1014
The message contained an AVP with an invalid length. The
PANA-Error-Request message indicating this error MUST include the
offending AVPs within a Failed-AVP AVP.
PANA_INVALID_MESSAGE_LENGTH 1015
This error is returned when a message is received with an invalid
message length.
8.9. Session-Lifetime AVP
The Session-Lifetime AVP (AVP Code 9) contains the number of seconds The Session-Lifetime AVP (AVP Code 7) contains the number of seconds
remaining before the current session is considered expired. The AVP remaining before the current session is considered expired. The AVP
data is of type Unsigned32. data is of type Unsigned32.
8.10. Termination-Cause AVP 8.8. Termination-Cause AVP
The Termination-Cause AVP (AVP Code 10) is used for indicating the The Termination-Cause AVP (AVP Code 8) is used for indicating the
reason why a session is terminated by the requester. The AVP data is reason why a session is terminated by the requester. The AVP data is
of type Enumerated. The following Termination-Cause data values are of type Enumerated. The following Termination-Cause data values are
used with PANA. used with PANA.
LOGOUT 1 (PaC -> PAA) LOGOUT 1 (PaC -> PAA)
The client initiated a disconnect The client initiated a disconnect
ADMINISTRATIVE 4 (PAA -> PaC) ADMINISTRATIVE 4 (PAA -> PaC)
The client was not granted access, or was disconnected, due to The client was not granted access, or was disconnected, due to
administrative reasons. administrative reasons.
SESSION_TIMEOUT 8 (PAA -> PaC) SESSION_TIMEOUT 8 (PAA -> PaC)
The session has timed out, and service has been terminated. The session has timed out, and service has been terminated.
9. Retransmission Timers 9. Retransmission Timers
skipping to change at page 43, line 12 skipping to change at page 35, line 12
The session has timed out, and service has been terminated. The session has timed out, and service has been terminated.
9. Retransmission Timers 9. Retransmission Timers
The PANA protocol provides retransmissions for the The PANA protocol provides retransmissions for the
PANA-Client-Initiation message and all request messages. PANA-Client-Initiation message and all request messages.
PANA retransmission timers are based on the model used in DHCPv6 PANA retransmission timers are based on the model used in DHCPv6
[RFC3315]. Variables used here are also borrowed from this [RFC3315]. Variables used here are also borrowed from this
specification. PANA is a request response like protocol. The specification. PANA is a request/response-based protocol. The
message exchange terminates when the request sender successfully message exchange terminates when the requester successfully receives
receives the appropriate answer, or when a protected the answer or the message exchange is considered to have failed
PANA-Error-Request message for the request is received, or when the according to the retransmission mechanism described below.
message exchange is considered to have failed according to the
retransmission mechanism described below.
The retransmission behavior is controlled and described by the The retransmission behavior is controlled and described by the
following variables: following variables:
RT Retransmission timeout RT Retransmission timeout
IRT Initial retransmission time IRT Initial retransmission time
MRC Maximum retransmission count MRC Maximum retransmission count
skipping to change at page 46, line 32 skipping to change at page 37, line 32
for comment and review, and MUST include a pointer to a public for comment and review, and MUST include a pointer to a public
specification. Before a period of 30 days has passed, the Designated specification. Before a period of 30 days has passed, the Designated
Expert will either approve or deny the registration request and Expert will either approve or deny the registration request and
publish a notice of the decision to the PANA WG mailing list or its publish a notice of the decision to the PANA WG mailing list or its
successor. A denial notice must be justified by an explanation and, successor. A denial notice must be justified by an explanation and,
in the cases where it is possible, concrete suggestions on how the in the cases where it is possible, concrete suggestions on how the
request can be modified so as to become acceptable. request can be modified so as to become acceptable.
10.1. PANA UDP Port Number 10.1. PANA UDP Port Number
PANA uses one well-known UDP port number (Section 4.1, Section 4.3 PANA uses one well-known UDP port number Section 6.1), which needs to
and Section 6.1), which needs to be assigned by the IANA. be assigned by the IANA.
10.2. PANA Message Header 10.2. PANA Message Header
As defined in Section 6.2, the PANA message header contains two As defined in Section 6.2, the PANA message header contains two
fields that requires IANA namespace management; the Version, Message fields that requires IANA namespace management; the Version, Message
Type and Flags fields. Type and Flags fields.
10.2.1. Version 10.2.1. Version
The Version namespace is used to identify PANA versions. The Version The Version namespace is used to identify PANA versions. The Version
values are assigned by Standards Action [IANA]. This document values are assigned by Standards Action [IANA]. This document
defines the Version 1. defines the Version 1.
10.2.2. Message Type 10.2.2. Message Type
The Message Type namespace is used to identify PANA messages. Values The Message Type namespace is used to identify PANA messages. Values
0-65,519 are for permanent, standard message types, allocated by IETF 0-65,519 are for permanent, standard message types, allocated by IETF
Consensus [IANA]. This document defines the Message Types 1-9. See Consensus [IANA]. This document defines the Message Types 1-4. See
Section 7.1 through Section 7.17 for the assignment of the namespace Section 7.1 through Section 7.7 for the assignment of the namespace
in this specification. in this specification.
The values 65,520 and 65,535 (hexadecimal values 0xfff0 - 0xffff) are The values 65,520 and 65,535 (hexadecimal values 0xfff0 - 0xffff) are
reserved for experimental messages. As these codes are only for reserved for experimental messages. As these codes are only for
experimental and testing purposes, no guarantee is made for experimental and testing purposes, no guarantee is made for
interoperability between the communicating PaC and PAA using interoperability between the communicating PaC and PAA using
experimental commands, as outlined in [IANA-EXP]. experimental commands, as outlined in [IANA-EXP].
10.2.3. Flags 10.2.3. Flags
There are 16 bits in the Flags field of the PANA message header. There are 16 bits in the Flags field of the PANA message header.
This document assigns bit 0 ('R'equest). The remaining bits MUST This document assigns bit 0 ('R'), 1 ('S'), 2 ('C'), 3 ('A') and 4
only be assigned via a Standards Action [IANA]. ('P'). The remaining bits MUST only be assigned via a Standards
Action [IANA].
10.3. AVP Header 10.3. AVP Header
As defined in Section 6.3, the AVP header contains three fields that As defined in Section 6.3, the AVP header contains three fields that
requires IANA namespace management; the AVP Code, AVP Flags and requires IANA namespace management; the AVP Code, AVP Flags and
Vendor-Id fields where only the AVP Code and AVP Flags create new Vendor-Id fields where only the AVP Code and AVP Flags create new
namespaces. namespaces.
10.3.1. AVP Code 10.3.1. AVP Code
The 16-bit AVP Code namespace is used to identify attributes. There The 16-bit AVP Code namespace is used to identify attributes. There
are multiple namespaces. Vendors can have their own AVP Codes are multiple namespaces. Vendors can have their own AVP Codes
namespace which will be identified by their Vendor-ID (also known as namespace which will be identified by their Vendor-ID (also known as
Enterprise-Number) and they control the assignments of their Enterprise-Number) and they control the assignments of their
vendor-specific AVP codes within their own namespace. The absence of vendor-specific AVP codes within their own namespace. The absence of
a Vendor-ID identifies the IETF IANA controlled AVP Codes namespace. a Vendor-ID identifies the IETF IANA controlled AVP Codes namespace.
The AVP Codes and sometimes also possible values in an AVP are The AVP Codes and sometimes also possible values in an AVP are
controlled and maintained by IANA. controlled and maintained by IANA.
AVP Code 0 is not used. This document defines the AVP Codes 1-10. AVP Code 0 is not used. This document defines the AVP Codes 1-10.
See Section 8.1 through Section 8.10 for the assignment of the See Section 8.1 through Section 8.8 for the assignment of the
namespace in this specification. namespace in this specification.
AVPs may be allocated following Designated Expert with Specification AVPs may be allocated following Designated Expert with Specification
Required [IANA] or Standards Action. AVPs with 'M' bit set MUST be Required [IANA] or Standards Action. AVPs with 'M' bit set MUST be
allocated by Standards Action. allocated by Standards Action.
Note that PANA defines a mechanism for Vendor-Specific AVPs, where Note that PANA defines a mechanism for Vendor-Specific AVPs, where
the Vendor-Id field in the AVP header is set to a non-zero value. the Vendor-Id field in the AVP header is set to a non-zero value.
Vendor-Specific AVPs codes are for Private Use and should be Vendor-Specific AVPs codes are for Private Use and should be
encouraged instead of allocation of global attribute types, for encouraged instead of allocation of global attribute types, for
functions specific only to one vendor's implementation of PANA, where functions specific only to one vendor's implementation of PANA, where
no interoperability is deemed useful. Where a Vendor-Specific AVP is no interoperability is deemed useful. Where a Vendor-Specific AVP is
implemented by more than one vendor, allocation of global AVPs should implemented by more than one vendor, allocation of global AVPs should
be encouraged instead. be encouraged instead.
10.3.2. Flags 10.3.2. Flags
There are 16 bits in the AVP Flags field of the AVP header, defined There are 16 bits in the AVP Flags field of the AVP header, defined
in Section 6.3. This document assigns bit 0 ('V'endor Specific) and in Section 6.3. This document assigns bit 0 ('V') and bit 1 ('M').
bit 1 ('M'andatory). The remaining bits should only be assigned via The remaining bits should only be assigned via a Standards Action .
a Standards Action .
10.4. AVP Values 10.4. AVP Values
Certain AVPs in PANA define a list of values with various meanings. Certain AVPs in PANA define a list of values with various meanings.
For attributes other than those specified in this section, adding For attributes other than those specified in this section, adding
additional values to the list can be done on a First Come, First additional values to the list can be done on a First Come, First
Served basis by IANA [IANA]. Served basis by IANA [IANA].
10.4.1. Result-Code AVP Values 10.4.1. Result-Code AVP Values
As defined in Section 8.8.1 and Section 8.8.2 the Result-Code AVP As defined in Section 8.6 the Result-Code AVP (AVP Code 6) defines
(AVP Code 8) defines the values 0-3 and 1001-1015. the values 0-2.
All remaining values are available for assignment via IETF Consensus All remaining values are available for assignment via IETF Consensus
[IANA]. [IANA].
10.4.2. Termination-Cause AVP Values 10.4.2. Termination-Cause AVP Values
As defined in Section 8.10, the Termination-Cause AVP (AVP Code 10) As defined in Section 8.8, the Termination-Cause AVP (AVP Code 8)
defines the values 1, 4 and 8. defines the values 1, 4 and 8.
All remaining values are available for assignment via IETF Consensus All remaining values are available for assignment via IETF Consensus
[IANA]. [IANA].
11. Security Considerations 11. Security Considerations
The PANA protocol defines a UDP-based EAP encapsulation that runs The PANA protocol defines a UDP-based EAP encapsulation that runs
between two IP-enabled nodes. Various security threats that are between two IP-enabled nodes. Various security threats that are
relevant to a protocol of this nature are outlined in [RFC4016]. relevant to a protocol of this nature are outlined in [RFC4016].
skipping to change at page 49, line 50 skipping to change at page 40, line 50
Furthermore, impact of replay attacks is reduced as any stale message Furthermore, impact of replay attacks is reduced as any stale message
(i.e., a request or answer with an unexpected sequence number and/or (i.e., a request or answer with an unexpected sequence number and/or
a session identifier for a non-existing session) and any duplicate a session identifier for a non-existing session) and any duplicate
answer are immediately discarded, and a duplicate request can trigger answer are immediately discarded, and a duplicate request can trigger
transmission of the cached answer (i.e., no need to process the transmission of the cached answer (i.e., no need to process the
request and generate a new answer). request and generate a new answer).
The PANA framework defines EP which is ideally located on a network The PANA framework defines EP which is ideally located on a network
device that can filter traffic from the PaCs before the traffic device that can filter traffic from the PaCs before the traffic
enters the Internet/intranet. A set of filters can be used to enters the Internet/intranet. A set of filters can be used to
discard unauthorized packets, such as a PANA-Start-Request message discard unauthorized packets, such as the initial PANA-Auth-Request
that is received from the segment of the access network where only message that is received from the segment of the access network where
the PaCs are supposed to be connected. only the PaCs are supposed to be connected (i.e., preventing PAA
impersonation).
The protocol also provides authentication and integrity protection to The protocol also provides authentication and integrity protection to
PANA messages when the used EAP method can generate cryptographic PANA messages when the used EAP method can generate cryptographic
session keys. A PANA SA is generated based on the MSK exported by session keys. A PANA SA is generated based on the MSK exported by
the EAP method. This SA is used for generating an AUTH AVP to the EAP method. This SA is used for generating an AUTH AVP to
protect the PANA message header and payload (including the complete protect the PANA message header and payload (including the complete
EAP message). EAP message).
The cryptographic protection prevents an adversary from acting as a The cryptographic protection prevents an adversary from acting as a
man-in-the-middle, injecting messages, replaying messages and man-in-the-middle, injecting messages, replaying messages and
modifying the content of the exchanged messages. Any packet that modifying the content of the exchanged messages. Any packet that
fails to pass the AUTH verification is silently discarded. The fails to pass the AUTH verification is silently discarded. The
earliest this protection can be enabled is when the very first earliest this protection can be enabled is when the PANA-Auth-Request
PANA-Bind-Request message that signals a successful authentication is message that signals a successful authentication (EAP Success) is
generated. Starting with these messages, any subsequent PANA message generated. Starting with these messages, any subsequent PANA message
until the session gets torn down can be cryptographically protected. until the session gets torn down can be cryptographically protected.
The lifetime of the PANA SA is set to PANA session lifetime which is The lifetime of the PANA SA is set to PANA session lifetime which is
bounded by the authorization lifetime granted by the authentication bounded by the authorization lifetime granted by the authentication
server. An implementation MAY add a tolerance period to that value. server. An implementation MAY add a grace period to that value.
Unless the PANA session is extended by executing another EAP Unless the PANA session is extended by executing another EAP
authentication, the PANA SA is removed when the current session authentication, the PANA SA is removed when the current session
expires. expires.
The ability to use cryptographic protection within PANA is determined The ability to use cryptographic protection within PANA is determined
by the used EAP method, which is generally dictated by the deployment by the used EAP method, which is generally dictated by the deployment
environment. Insecure lower-layers necessitate use of key-generating environment. Insecure lower-layers necessitate use of key-generating
EAP methods. In networks where lower-layers are already secured, EAP methods. In networks where lower-layers are already secured,
cryptographic protection of PANA messages is not necessary. cryptographic protection of PANA messages is not necessary.
11.2. Handshake 11.2. Initial Exchange
The handshake phase is vulnerable to spoofing attacks as these The initial PANA-Auth-Request and PANA-Auth-Answer exchange is
messages are not authenticated and integrity protected. In order to vulnerable to spoofing attacks as these messages are not
prevent very basic denial-of service attacks an adversary should not authenticated and integrity protected. In order to prevent very
be able to cause state creation by sending PANA-Client-Initiation basic DoS attacks an adversary should not be able to cause state
messages to the PAA. This protection is achieved by allowing the creation by sending PANA-Client-Initiation messages to the PAA. This
responder (PAA) to create as less amount of state as possible in the protection is achieved by allowing the responder (PAA) to create as
first round of message exchange. However, it is difficult to prevent little amount of state as possible in the initial message exchange.
all spoofing attacks in the handshake phase entirely. However, it is difficult to prevent all spoofing attacks in the
initial message exchange entirely.
In networks where lower-layers are not secured prior to running PANA, In networks where lower-layers are not secured prior to running PANA,
the capability discovery enabled through inclusion of an Algorithm the capability discovery enabled through inclusion of an Algorithm
AVP in a PANA-Start-Request message is susceptible to spoofing AVP in the initial PANA-Auth-Request message is susceptible to
leading to denial-of service attacks. Therefore, usage of this AVP spoofing leading to DoS attacks. Therefore, usage of this AVP during
during the handshake phase in such insecure networks is NOT the initial message exchange in such insecure networks is NOT
RECOMMENDED. The same AVP is delivered via an integrity-protected RECOMMENDED. The same AVP is delivered with integrity protection via
PANA-Bind-Request upon successful authentication. the last PANA-Auth-Request message upon successful authentication.
11.3. EAP Methods 11.3. EAP Methods
Eavesdropping EAP messages might cause problems when the EAP method Eavesdropping EAP messages might cause problems when the EAP method
is weak and enables dictionary or replay attacks or even allows an is weak and enables dictionary or replay attacks or even allows an
adversary to learn the long-term password directly. Furthermore, if adversary to learn the long-term password directly. Furthermore, if
the optional EAP Response/Identity payload is used then it allows the the optional EAP Response/Identity payload is used then it allows the
adversary to learn the identity of the PaC. In such a case a privacy adversary to learn the identity of the PaC. In such a case a privacy
problem is prevalent. problem is prevalent.
skipping to change at page 52, line 21 skipping to change at page 43, line 22
authentication, integrity and replay protection. authentication, integrity and replay protection.
11.7. Liveness Test 11.7. Liveness Test
A PANA session is associated with a session lifetime. The session is A PANA session is associated with a session lifetime. The session is
terminated unless it is refreshed by a new round of EAP terminated unless it is refreshed by a new round of EAP
authentication before it expires. Therefore, at the latest a authentication before it expires. Therefore, at the latest a
disconnected client can be detected when its session expires. A disconnected client can be detected when its session expires. A
disconnect may also be detected earlier by using PANA ping messages. disconnect may also be detected earlier by using PANA ping messages.
A request message can be generated by either PaC or PAA at any time A request message can be generated by either PaC or PAA at any time
and the peer must respond with an answer message. A successful in access phase, expecting the peer to respond with an answer
round-trip of this exchange is a simple verification that the peer is message. A successful round-trip of this exchange is a simple
alive. verification that the peer is alive.
This test can be engaged when there is a possibility that the peer This test can be engaged when there is a possibility that the peer
might have disconnected (e.g., after the discontinuation of data might have disconnected (e.g., after the discontinuation of data
traffic for an extended period of time). Periodic use of this traffic for an extended period of time). Periodic use of this
exchange as a keep-alive requires additional care as it might result exchange as a keep-alive requires additional care as it might result
in congestion and hence false alarms. in congestion and hence false alarms.
This exchange is cryptographically protected when a PANA SA is This exchange is cryptographically protected when a PANA SA is
available in order to prevent threats associated with the abuse of available in order to prevent threats associated with the abuse of
this functionality. this functionality.
Any valid PANA answer message received in response to a recently sent Any valid PANA answer message received in response to a recently sent
request message can be taken as an indication of peer's liveness. request message can be taken as an indication of peer's liveness.
The PaC or PAA MAY forgo sending an explicit PANA-Ping-Request if a The PaC or PAA MAY forgo sending an explicit ping request message if
recent exchange has already confirmed that the peer is alive. a recent exchange has already confirmed that the peer is alive.
11.8. Early Termination of a Session 11.8. Early Termination of a Session
The PANA protocol supports the ability for both the PaC and the PAA The PANA protocol supports the ability for both the PaC and the PAA
to transmit a tear-down message before the session lifetime expires. to transmit a tear-down message before the session lifetime expires.
This message causes state removal, a stop of the accounting procedure This message causes state removal, a stop of the accounting procedure
and removes the installed per-PaC state on the EP(s). This message and removes the installed per-PaC state on the EP(s). This message
is cryptographically protected when PANA SA is present. is cryptographically protected when PANA SA is present.
12. Acknowledgments 12. Acknowledgments
We would like to thank Mark Townsley, Jari Arkko, Mohan We would like to thank Mark Townsley, Jari Arkko, Mohan
Parthasarathy, Julien Bournelle, Rafael Marin Lopez, Pasi Eronen, Parthasarathy, Julien Bournelle, Rafael Marin Lopez, Pasi Eronen,
Randy Turner, Erik Nordmark, Lionel Morand, Avi Lior, Susan Thomson, Randy Turner, Erik Nordmark, Lionel Morand, Avi Lior, Susan Thomson,
Giaretta Gerardo, Joseph Salowey, Sasikanth Bharadwaj, Spencer Giaretta Gerardo, Joseph Salowey, Sasikanth Bharadwaj, Spencer
Dawkins, Tom Yu, Bernard Aboba and all members of the PANA working Dawkins, Tom Yu, Bernard Aboba, Subir Das and all members of the PANA
group for their valuable comments to this document. working group for their valuable comments to this document.
13. References 13. References
13.1. Normative References 13.1. Normative References
[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,
February 1997. February 1997.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
 End of changes. 162 change blocks. 
910 lines changed or deleted 562 lines changed or added

This html diff was produced by rfcdiff 1.33. The latest version is available from http://tools.ietf.org/tools/rfcdiff/