draft-ietf-pana-pana-04.txt   draft-ietf-pana-pana-05.txt 
PANA Working Group D. Forsberg PANA Working Group D. Forsberg
Internet-Draft Nokia Internet-Draft Nokia
Expires: November 5, 2004 Y. Ohba (Ed.) Expires: January 15, 2005 Y. Ohba (Ed.)
Toshiba Toshiba
B. Patil B. Patil
Nokia Nokia
H. Tschofenig H. Tschofenig
Siemens Siemens
A. Yegin A. Yegin
Samsung Samsung
May 7, 2004 July 17, 2004
Protocol for Carrying Authentication for Network Access (PANA) Protocol for Carrying Authentication for Network Access (PANA)
draft-ietf-pana-pana-04 draft-ietf-pana-pana-05
Status of this Memo Status of this Memo
This document is an Internet-Draft and is in full conformance with By submitting this Internet-Draft, I certify that any applicable
all provisions of Section 10 of RFC2026. patent or other IPR claims of which I am aware have been disclosed,
and any of which I become aware will be disclosed, in accordance with
RFC 3668.
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 other Task Force (IETF), its areas, and its working groups. Note that
groups may also distribute working documents as Internet-Drafts. other groups may also distribute working documents as
Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
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 http:// The list of current Internet-Drafts can be accessed at
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 November 5, 2004. This Internet-Draft will expire on January 15, 2005.
Copyright Notice Copyright Notice
Copyright (C) The Internet Society (2004). All Rights Reserved. Copyright (C) The Internet Society (2004). All Rights Reserved.
Abstract Abstract
This document defines the Protocol for Carrying Authentication for This document defines the Protocol for Carrying Authentication for
Network Access (PANA), a link-layer agnostic transport for Extensible Network Access (PANA), a link-layer agnostic 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 can carry any between clients and access networks. PANA can carry any
authentication method that can be specified as an EAP method, and can authentication method that can be specified as an EAP method, and can
be used on any link that can carry IP. PANA covers the be used on any link that can carry IP. PANA covers the
client-to-network access authentication part of an overall secure client-to-network access authentication part of an overall secure
network access framework, which additionally includes other protocols network access framework, which additionally includes other protocols
and mechanisms for service provisioning, access control as a result and mechanisms for service provisioning, access control as a result
of initial authentication, and accounting. of initial authentication, and accounting.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . 5 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1 Specification of Requirements . . . . . . . . . . . . . . 5 1.1 Specification of Requirements . . . . . . . . . . . . . . 5
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 6 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . 6
3. Protocol Overview . . . . . . . . . . . . . . . . . . . . 8 3. Protocol Overview . . . . . . . . . . . . . . . . . . . . . 8
4. Protocol Details . . . . . . . . . . . . . . . . . . . . . 10 3.1 Illustration of a Complete Message Sequence . . . . . . . 9
4.1 Common Processing Rules . . . . . . . . . . . . . . . . . 10 4. Protocol Details . . . . . . . . . . . . . . . . . . . . . . 11
4.1.1 Payload Encoding . . . . . . . . . . . . . . . . . . . . . 10 4.1 Common Processing Rules . . . . . . . . . . . . . . . . . 11
4.1.2 Transport Layer Protocol . . . . . . . . . . . . . . . . . 11 4.1.1 Payload Encoding . . . . . . . . . . . . . . . . . . . 11
4.1.3 Fragmentation . . . . . . . . . . . . . . . . . . . . . . 11 4.1.2 Transport Layer Protocol . . . . . . . . . . . . . . . 12
4.1.4 Sequence Number and Retransmission . . . . . . . . . . . . 11 4.1.3 Fragmentation . . . . . . . . . . . . . . . . . . . . 12
4.1.5 PANA Security Association . . . . . . . . . . . . . . . . 12 4.1.4 Sequence Number and Retransmission . . . . . . . . . . 12
4.1.6 Message Authentication Code . . . . . . . . . . . . . . . 14 4.1.5 PANA Security Association . . . . . . . . . . . . . . 13
4.1.7 Message Validity Check . . . . . . . . . . . . . . . . . . 14 4.1.6 Message Authentication Code . . . . . . . . . . . . . 15
4.1.8 Error Handling . . . . . . . . . . . . . . . . . . . . . . 15 4.1.7 Message Validity Check . . . . . . . . . . . . . . . . 15
4.2 Discovery and Initial Handshake Phase . . . . . . . . . . 16 4.1.8 Error Handling . . . . . . . . . . . . . . . . . . . . 17
4.3 Authentication Phase . . . . . . . . . . . . . . . . . . . 19 4.2 Discovery and Initial Handshake Phase . . . . . . . . . . 17
4.4 Re-authentication . . . . . . . . . . . . . . . . . . . . 22 4.2.1 Discovery and Initial Handshake with NAP-ISP
4.5 Termination Phase . . . . . . . . . . . . . . . . . . . . 23 Authentication Separation . . . . . . . . . . . . . . 20
4.6 Illustration of a Complete Message Sequence . . . . . . . 24 4.3 Authentication Phase . . . . . . . . . . . . . . . . . . . 21
4.7 Device ID Choice . . . . . . . . . . . . . . . . . . . . . 27 4.4 Re-authentication . . . . . . . . . . . . . . . . . . . . 24
4.8 Session Lifetime . . . . . . . . . . . . . . . . . . . . . 27 4.5 Termination Phase . . . . . . . . . . . . . . . . . . . . 26
4.9 Mobility Handling . . . . . . . . . . . . . . . . . . . . 28 4.6 Example Sequence for NAP and ISP Separate
4.10 Support for Separate EP . . . . . . . . . . . . . . . . . 30 Authentications . . . . . . . . . . . . . . . . . . . . . 26
5. PANA Security Association Establishment . . . . . . . . . 31 4.7 Responding to Duplicate Requests . . . . . . . . . . . . . 28
6. Message Formats . . . . . . . . . . . . . . . . . . . . . 32 4.8 Device ID Choice . . . . . . . . . . . . . . . . . . . . . 29
6.1 IP and UDP Headers . . . . . . . . . . . . . . . . . . . . 32 4.9 Updating PaC' Address . . . . . . . . . . . . . . . . . . 29
6.2 PANA Header . . . . . . . . . . . . . . . . . . . . . . . 32 4.10 Session Lifetime . . . . . . . . . . . . . . . . . . . . 30
6.3 AVP Header . . . . . . . . . . . . . . . . . . . . . . . . 34 4.11 Retransmission of Duplicate Answers . . . . . . . . . . 31
6.4 PANA Messages . . . . . . . . . . . . . . . . . . . . . . 36 4.12 Mobility Handling . . . . . . . . . . . . . . . . . . . 31
6.4.1 Message Specifications . . . . . . . . . . . . . . . . . . 36 4.13 Support for Separate EP . . . . . . . . . . . . . . . . 33
6.4.2 PANA-PAA-Discover (PDI) . . . . . . . . . . . . . . . . . 37 5. PANA Security Association Establishment . . . . . . . . . . 34
6.4.3 PANA-Start-Request (PSR) . . . . . . . . . . . . . . . . . 37 6. Message Formats . . . . . . . . . . . . . . . . . . . . . . 35
6.4.4 PANA-Start-Answer (PSA) . . . . . . . . . . . . . . . . . 37 6.1 IP and UDP Headers . . . . . . . . . . . . . . . . . . . . 35
6.4.5 PANA-Auth-Request (PAR) . . . . . . . . . . . . . . . . . 38 6.2 PANA Header . . . . . . . . . . . . . . . . . . . . . . . 35
6.4.6 PANA-Auth-Answer (PAN) . . . . . . . . . . . . . . . . . . 38 6.3 AVP Header . . . . . . . . . . . . . . . . . . . . . . . . 37
6.4.7 PANA-Bind-Request (PBR) . . . . . . . . . . . . . . . . . 38 6.4 PANA Messages . . . . . . . . . . . . . . . . . . . . . . 39
6.4.8 PANA-Bind-Answer (PBA) . . . . . . . . . . . . . . . . . . 38 6.4.1 Message Specifications . . . . . . . . . . . . . . . . 39
6.4.9 PANA-Reauth-Request (PRAR) . . . . . . . . . . . . . . . . 39 6.4.2 PANA-PAA-Discover (PDI) . . . . . . . . . . . . . . . 40
6.4.10 PANA-Reauth-Answer (PRAA) . . . . . . . . . . . . . . . . 39 6.4.3 PANA-Start-Request (PSR) . . . . . . . . . . . . . . . 40
6.4.11 PANA-Termination-Request (PTR) . . . . . . . . . . . . . . 39 6.4.4 PANA-Start-Answer (PSA) . . . . . . . . . . . . . . . 40
6.4.12 PANA-Termination-Answer (PTA) . . . . . . . . . . . . . . 39 6.4.5 PANA-Auth-Request (PAR) . . . . . . . . . . . . . . . 41
6.4.13 PANA-Error (PER) . . . . . . . . . . . . . . . . . . . . . 40 6.4.6 PANA-Auth-Answer (PAN) . . . . . . . . . . . . . . . . 41
6.4.14 PANA-FirstAuth-End-Request (PFER) . . . . . . . . . . . . 40 6.4.7 PANA-Bind-Request (PBR) . . . . . . . . . . . . . . . 41
6.4.15 PANA-FirstAuth-End-Answer (PFEA) . . . . . . . . . . . . . 40 6.4.8 PANA-Bind-Answer (PBA) . . . . . . . . . . . . . . . . 42
6.5 AVPs in PANA . . . . . . . . . . . . . . . . . . . . . . . 40 6.4.9 PANA-Reauth-Request (PRAR) . . . . . . . . . . . . . . 42
6.5.1 MAC AVP . . . . . . . . . . . . . . . . . . . . . . . . . 41 6.4.10 PANA-Reauth-Answer (PRAA) . . . . . . . . . . . . . 42
6.5.2 Device-Id AVP . . . . . . . . . . . . . . . . . . . . . . 41 6.4.11 PANA-Termination-Request (PTR) . . . . . . . . . . . 42
6.5.3 Session-Id AVP . . . . . . . . . . . . . . . . . . . . . . 41 6.4.12 PANA-Termination-Answer (PTA) . . . . . . . . . . . 43
6.5.4 Cookie AVP . . . . . . . . . . . . . . . . . . . . . . . . 42 6.4.13 PANA-Error (PER) . . . . . . . . . . . . . . . . . . 43
6.5.5 Protection-Capability AVP . . . . . . . . . . . . . . . . 42 6.4.14 PANA-FirstAuth-End-Request (PFER) . . . . . . . . . 43
6.5.6 Termination-Cause AVP . . . . . . . . . . . . . . . . . . 42 6.4.15 PANA-FirstAuth-End-Answer (PFEA) . . . . . . . . . . 43
6.5.7 Result-Code AVP . . . . . . . . . . . . . . . . . . . . . 42 6.4.16 PANA-Update-Request (PUR) . . . . . . . . . . . . . 44
6.5.8 EAP-Payload AVP . . . . . . . . . . . . . . . . . . . . . 46 6.4.17 PANA-Update-Answer (PUA) . . . . . . . . . . . . . . 44
6.5.9 Session-Lifetime AVP . . . . . . . . . . . . . . . . . . . 46 6.5 AVPs in PANA . . . . . . . . . . . . . . . . . . . . . . . 44
6.5.10 Failed-AVP AVP . . . . . . . . . . . . . . . . . . . . . . 46 6.5.1 MAC AVP . . . . . . . . . . . . . . . . . . . . . . . 44
6.5.11 NAP-Information AVP . . . . . . . . . . . . . . . . . . . 46 6.5.2 Device-Id AVP . . . . . . . . . . . . . . . . . . . . 45
6.5.12 ISP-Information AVP . . . . . . . . . . . . . . . . . . . 47 6.5.3 Session-Id AVP . . . . . . . . . . . . . . . . . . . . 45
6.5.13 Provider-Identifier AVP . . . . . . . . . . . . . . . . . 47 6.5.4 Cookie AVP . . . . . . . . . . . . . . . . . . . . . . 45
6.5.14 Provider-Name AVP . . . . . . . . . . . . . . . . . . . . 47 6.5.5 Protection-Capability AVP . . . . . . . . . . . . . . 45
6.5.15 EP-Device-Id AVP . . . . . . . . . . . . . . . . . . . . . 47 6.5.6 Termination-Cause AVP . . . . . . . . . . . . . . . . 45
6.5.16 Key-Id AVP . . . . . . . . . . . . . . . . . . . . . . . . 47 6.5.7 Result-Code AVP . . . . . . . . . . . . . . . . . . . 46
6.5.17 Post-PANA-Address-Configuration (PPAC) AVP . . . . . . . . 47 6.5.8 EAP-Payload AVP . . . . . . . . . . . . . . . . . . . 50
6.5.18 Nonce AVP . . . . . . . . . . . . . . . . . . . . . . . . 48 6.5.9 Session-Lifetime AVP . . . . . . . . . . . . . . . . . 50
6.6 AVP Occurrence Table . . . . . . . . . . . . . . . . . . . 49 6.5.10 Failed-AVP AVP . . . . . . . . . . . . . . . . . . . 50
7. PANA Protocol Message Retransmissions . . . . . . . . . . 51 6.5.11 NAP-Information AVP . . . . . . . . . . . . . . . . 50
7.1 Transmission and Retransmission Parameters . . . . . . . . 53 6.5.12 ISP-Information AVP . . . . . . . . . . . . . . . . 50
8. IANA Considerations . . . . . . . . . . . . . . . . . . . 54 6.5.13 Provider-Identifier AVP . . . . . . . . . . . . . . 50
8.1 PANA UDP Port Number . . . . . . . . . . . . . . . . . . . 54 6.5.14 Provider-Name AVP . . . . . . . . . . . . . . . . . 51
8.2 PANA Multicast Address . . . . . . . . . . . . . . . . . . 54 6.5.15 EP-Device-Id AVP . . . . . . . . . . . . . . . . . . 51
8.3 PANA Header . . . . . . . . . . . . . . . . . . . . . . . 54 6.5.16 Key-Id AVP . . . . . . . . . . . . . . . . . . . . . 51
8.3.1 Message Type . . . . . . . . . . . . . . . . . . . . . . . 54 6.5.17 Post-PANA-Address-Configuration (PPAC) AVP . . . . . 51
8.3.2 Flags . . . . . . . . . . . . . . . . . . . . . . . . . . 54 6.5.18 Nonce AVP . . . . . . . . . . . . . . . . . . . . . 52
8.4 AVP Header . . . . . . . . . . . . . . . . . . . . . . . . 54 6.5.19 IP-Address AVP . . . . . . . . . . . . . . . . . . . 52
8.4.1 AVP Code . . . . . . . . . . . . . . . . . . . . . . . . . 54 6.6 AVP Occurrence Table . . . . . . . . . . . . . . . . . . . 52
8.4.2 Flags . . . . . . . . . . . . . . . . . . . . . . . . . . 55 7. PANA Protocol Message Retransmissions . . . . . . . . . . . 56
8.4.3 Vendor Id . . . . . . . . . . . . . . . . . . . . . . . . 55 7.1 Transmission and Retransmission Parameters . . . . . . . . 58
8.5 AVP Values . . . . . . . . . . . . . . . . . . . . . . . . 55 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . 59
8.5.1 MAC AVP Values . . . . . . . . . . . . . . . . . . . . . . 55 8.1 PANA UDP Port Number . . . . . . . . . . . . . . . . . . . 59
8.5.2 Device-Id AVP Values . . . . . . . . . . . . . . . . . . . 55 8.2 PANA Multicast Address . . . . . . . . . . . . . . . . . . 59
8.5.3 Protection-Capability AVP Values . . . . . . . . . . . . . 55 8.3 PANA Header . . . . . . . . . . . . . . . . . . . . . . . 59
8.5.4 Result-Code AVP Values . . . . . . . . . . . . . . . . . . 55 8.3.1 Message Type . . . . . . . . . . . . . . . . . . . . . 59
8.5.5 Termination-Cause AVP Values . . . . . . . . . . . . . . . 55 8.3.2 Flags . . . . . . . . . . . . . . . . . . . . . . . . 60
8.5.6 Provider-Identifier AVP Values . . . . . . . . . . . . . . 55 8.4 AVP Header . . . . . . . . . . . . . . . . . . . . . . . . 60
8.5.7 Post-PANA-Address-Configuration AVP Values . . . . . . . . 55 8.4.1 AVP Code . . . . . . . . . . . . . . . . . . . . . . . 60
9. Security Considerations . . . . . . . . . . . . . . . . . 56 8.4.2 Flags . . . . . . . . . . . . . . . . . . . . . . . . 61
10. Open Issues and Change History . . . . . . . . . . . . . . 62 8.5 AVP Values . . . . . . . . . . . . . . . . . . . . . . . . 61
11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . 63 8.5.1 Algorithm Values of MAC AVP . . . . . . . . . . . . . 61
Normative References . . . . . . . . . . . . . . . . . . . 64 8.5.2 Protection-Capability AVP Values . . . . . . . . . . . 61
Informative References . . . . . . . . . . . . . . . . . . 66 8.5.3 Termination-Cause AVP Values . . . . . . . . . . . . . 61
Authors' Addresses . . . . . . . . . . . . . . . . . . . . 69 8.5.4 Result-Code AVP Values . . . . . . . . . . . . . . . . 61
Intellectual Property and Copyright Statements . . . . . . 71 8.5.5 Post-PANA-Address-Configuration AVP Values . . . . . . 62
9. Security Considerations . . . . . . . . . . . . . . . . . . 63
10. Open Issues and Change History . . . . . . . . . . . . . . . 69
11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . 70
12. References . . . . . . . . . . . . . . . . . . . . . . . . . 71
12.1 Normative References . . . . . . . . . . . . . . . . . . . 71
12.2 Informative References . . . . . . . . . . . . . . . . . . 72
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 75
Intellectual Property and Copyright Statements . . . . . . . 77
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. Initial and subsequent client-to-network authentication networks. Initial and subsequent client-to-network authentication
provides parameters that are needed to police the traffic flow provides parameters that are needed to police the traffic flow
through the enforcement points. A protocol is needed to carry through the enforcement points. A protocol is needed to carry
authentication methods between the client and the access network. authentication methods between the client and the access network.
Currently there is no standard network-layer solution for Currently there is no standard network-layer solution for
authenticating clients for network access. authenticating clients for network access. Appendix A of
[I-D.ietf-pana-usage-scenarios] describes the problem statement that [I-D.ietf-pana-requirements] describes the problem statement that led
led to the development of PANA. to the development of PANA.
Scope of this work is identified as designing a link-layer agnostic Scope of this work is identified as designing a link-layer agnostic
transport for network access authentication methods. The Extensible transport for network access authentication methods. The Extensible
Authentication Protocol (EAP) [I-D.ietf-eap-rfc2284bis] provides such Authentication Protocol (EAP) [RFC3748] provides such authentication
authentication methods. In other words, PANA will carry EAP which methods. In other words, PANA will carry EAP which can carry various
can carry various authentication methods. By the virtue of enabling authentication methods. By the virtue of enabling transport of EAP
transport of EAP above IP, any authentication method that can be above IP, any authentication method that can be carried as an EAP
carried as an EAP method is made available to PANA and hence to any method is made available to PANA and hence to any link-layer
link-layer technology. There is a clear division of labor between technology. There is a clear division of labor between PANA, EAP and
PANA, EAP and EAP methods. EAP methods.
Various environments and usage models for PANA are identified in the Various environments and usage models for PANA are identified in
[I-D.ietf-pana-usage-scenarios] Internet-Draft. Potential security Appendix A of [I-D.ietf-pana-requirements]. Potential security
threats for network-layer access authentication protocol are threats for network-layer access authentication protocol are
discussed in [I-D.ietf-pana-threats-eval] draft. These two drafts discussed in [I-D.ietf-pana-threats-eval]. These have been essential
have been essential in defining the requirements in defining the requirements [I-D.ietf-pana-requirements] on the PANA
[I-D.ietf-pana-requirements] on the PANA protocol. Note that some of protocol. Note that some of these requirements are imposed by the
these requirements are imposed by the chosen payload, EAP chosen payload, EAP [RFC3748].
[I-D.ietf-eap-rfc2284bis].
There are components that are part of a complete secure network There are components that are part of a complete secure network
solution but are outside of the PANA protocol specification, solution but are outside of the PANA protocol specification,
including IP address configuration, authentication method choice, including IP address configuration, authentication method choice,
filter rule installation, data traffic protection and PAA-EP filter rule installation, data traffic protection and PAA-EP
protocol. These components are described in separate documents protocol. These components are described in separate documents (see
[I-D.ietf-pana-framework][I-D.ietf-pana-snmp]. [I-D.ietf-pana-framework] and [I-D.ietf-pana-snmp]).
1.1 Specification of Requirements 1.1 Specification of Requirements
In this document, several words are used to signify the requirements In this document, several words are used to signify the requirements
of the specification. These words are often capitalized. The key of the specification. These words are often capitalized. The key
words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
"SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document
are to be interpreted as described in [RFC2119]. are to be interpreted as described in [RFC2119].
2. Terminology 2. Terminology
This section describes some terms introduced in this document: This section describes some terms introduced in this document:
PANA Session: PANA Session:
PANA session is defined as the exchange of messages between the A PANA session begins with the initial handshake between the PANA
PANA Client (PaC) and the PANA Authentication Agent (PAA) to Client (PaC) and the PANA Authentication Agent (PAA), and
authenticate a user (PaC) for network access. If the terminates by an authentication failure, a timeout, or an explicit
authentication is unsuccessful, the session is terminated. The termination message. A fixed session identifier is maintained
session is considered as active until there is a disconnect throughout a session. A session cannot be shared across multiple
indication by the PaC or the PAA terminates it. A distinct PANA physical network interfaces. A distinct PANA session is
session is associated with a pair of device identifiers of PaC and associated with the device identifiers of PaC and PAA.
PAA. For example, if the PaC has two interfaces connected to the
same IP link with different IP addresses and IP address is used as
a device identifier, a distinct PANA session will be created per
interface if both interfaces addresses need to be authorized for
network access.
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
PAA and PaC. It is included in PANA messages to bind the message PAA and PaC. It includes an identifier of the PAA, therefore it
to a specific PANA session. cannot be shared across multiple PAAs. It is included in PANA
messages to bind the message to a specific PANA session. This
bidirectional identifier is allocated by the PAA following the
initial handshake and freed when the session terminates.
PANA Security Association: PANA Security Association:
A PANA security association is a relationship between the PaC and A PANA security association is a relationship between the PaC and
PAA, formed by the sharing of cryptographic keying material and PAA, formed by the sharing of cryptographic keying material and
associated context. Security associations are duplex. That is, associated context. Security associations are duplex. That is,
one security association is needed to protect the bidirectional one security association is needed to protect the bidirectional
traffic between the PaC and the PAA. traffic between the PaC and the PAA.
PANA Client (PaC): PANA Client (PaC):
skipping to change at page 7, line 7 skipping to change at page 7, line 7
Device Identifier (DI): Device Identifier (DI):
The identifier used by the network as a handle to control and The identifier used by the network as a handle to control and
police the network access of a client. Depending on the access police the network access of a client. Depending on the access
technology, this identifier might contain any of IP address, technology, this identifier might contain any of IP address,
link-layer address, switch port number, etc. of a connected link-layer address, switch port number, etc. of a connected
device. device.
PANA Authentication Agent (PAA): PANA Authentication Agent (PAA):
The access network side entity of the protocol whose The protocol entity in the access network side whose
responsibility is to verify the credentials provided by a PANA responsibility is to verify the credentials provided by a PANA
client and grant network access service to the device associated client and grant network access service to the device associated
with the client and identified by a DI. with the client and identified by a DI. Note the authentication
and authorization procedure can, according to the EAP model, be
also offloaded to the backend AAA infrastructure.
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
client devices. Information such as DI and (optionally) client devices. Information such as the DI and (optionally)
cryptographic keys are provided by PAA per client for constructing cryptographic keys are provided by the PAA per client for
filters on the EP. constructing filters on the EP.
Network Access Provider (NAP): Network Access Provider (NAP):
A service provider that provides physical and link-layer A service provider that provides physical and link-layer
connectivity to an access network it manages. connectivity to an access network it manages.
AAA-Key: AAA-Key:
A key derived by the EAP peer and EAP server and transported to A key derived by the EAP peer and EAP server and transported to
the authenticator [I-D.ietf-eap-keying]. the authenticator [I-D.ietf-eap-keying].
3. Protocol Overview 3. Protocol Overview
The PANA protocol involves two functional entities namely the PaC and The PANA protocol involves two functional entities namely the PaC and
the PAA. The protocol resides above the transport layer and the the PAA. The protocol resides above the transport layer and the
details are explained in Section 4. details are explained in Section 4.
The placement of the entities used in PANA largely depends on a The placement of the entities used in PANA largely depends on a
certain architecture. The PAA may optionally interact with a AAA selected architecture. The PAA may optionally interact with a AAA
backend to authenticate the user (PaC). The EP, mentioned in the backend to authenticate the user (PaC). The EP, mentioned in the
context with PANA, is a logical entity. There is, however, the option context with PANA, is a logical entity. In case that the PAA and the
that the EP is not physically co-located with the PAA. In case that EP are co-located only an API is required for intercommunication
the PAA and the EP are co-located only an API is required for instead of a separate protocol. In the case where the PAA is
intercommunication instead of a separate protocol. In the case where separated from the EP, a separate protocol will be used between the
the PAA is separated from the EP, a separate protocol will be used PAA and the EP for managing access control. A description of this
between the PAA and the EP for managing access control. The protocol protocol is outside the scope of this draft and is covered in
and messaging between the PAA and EP for access authorization is [I-D.ietf-pana-snmp].
outside the scope of this draft and will be dealt separately. Figure
1 illustrates the interactions in a simplified manner: Figure 1 illustrates the interactions in a simplified manner:
PaC EP PAA AAA PaC EP PAA AAA
--- --- --- --- --- --- --- ---
PAA Discovery PAA Discovery
<---------------------o------------> (1) <---------------------o------------> (1)
PANA Authentication AAA interaction PANA Authentication AAA interaction
<----------------------------------><------------> (2) <----------------------------------><------------> (2)
Authorization Authorization
<------------- (3) <------------- (3)
Figure 1: PANA Framework Figure 1: PANA Framework
PANA supports authentication of a PaC using various EAP methods. The PANA supports authentication of a PaC using various EAP methods. The
EAP method used depends on the level of security required for the EAP EAP method used depends on the level of security required for the EAP
messaging itself. PANA does not secure the data traffic itself. messaging itself. PANA does not secure the data traffic itself.
However, EAP methods that enable key exchange may allow other However, EAP methods that enable key exchange may allow other
protocols to be bootstrapped for securing the data traffic protocols to be bootstrapped for securing the data traffic (e.g.,
[I-D.ietf-pana-ipsec]. [I-D.ietf-pana-ipsec]).
From a state machine aspect, PANA protocol consists of three phases From a state machine point of view, the PANA protocol consists of
three phases
1. Discovery and initial handshake phase 1. Discovery and initial handshake phase
2. Authentication phase 2. Authentication phase
3. Termination phase 3. Termination phase
In the first phase, an IP address of PAA is discovered and a PANA In the first phase, an IP address of PAA is discovered and a PANA
session is established between PaC and PAA. EAP messages are session is established between PaC and PAA. EAP messages are
exchanged and a PANA SA is established in the second phase. The exchanged and a PANA SA is established in the second phase. The PANA
established PANA session as well as a PANA SA is deleted in the third session as well as the PANA SA is deleted in the third phase.
phase.
In addition, PANA defines the following two types of
re-authentication procedures that are performed while an established
PANA session exists.
1. Re-authentication based on EAP
2. Re-authentication based on PANA-Reauth exchange
The former type of re-authentication is used mainly for extending
authorization lifetime or for updating the cryptographic keying
material of a PANA SA. The latter type of re-authentication is used
mainly for maintaining the presence of the communicating peers each
other so that the established PANA session can be terminated as soon
as the presence of the peer is lost.
3.1 Illustration of a Complete Message Sequence
A complete PANA message sequence is illustrated in Figure 2. The
example assumes the following scenario:
o The PaC initiates the discovery and initial handshake phase by
multicasting a PANA-PAA-Discover message. The PAA responds with a
PANA-Start-Request message with a cookie to be stateless in the
discovery and initial handshake phase. At the end of the the
discovery and initial handshake phase, the PaC sends a
PANA-Start-Answer message with a cookie in response to the
PANA-Start-Request.
o An EAP authentication method with a single round trip is used in
the authentication phase. A AAA-Key is derived from the EAP
method and used for establishing a PANA SA.
o At the end of the authentication phase, the PAA sends a
PANA-Bind-Request message and the PaC responds with a
PANA-Bind-Answer message. These messages contains a MAC AVP and a
Key-Id AVP, as well as other AVPs for which usages are explained
in Section 4, to securely establish a PANA session with a PANA SA.
o After the PANA SA is established, all messages are integrity and
replay protected with MAC AVPs.
o Re-authentication based on the PANA-Reauth-Request/ PANA-Reauth
exchange is performed.
o The PaC initiates termination of the PANA session by sending a
PANA-Termination-Request message.
o Sequence numbers in PANA headers are not shown.
PaC PAA Message[AVPs]
-----------------------------------------------------
// Discovery and initial handshake phase
-----> PANA-PAA-Discover
<----- PANA-Start-Request[Nonce, Cookie]
-----> PANA-Start-Request-Answer[Nonce, Cookie]
// Authentication phase
<----- PANA-Auth-Request[Session-Id, EAP]
-----> PANA-Auth-Answer[Session-Id, EAP]
<----- PANA-Auth-Request[Session-Id, EAP]
-----> PANA-Auth-Answer[Session-Id, EAP]
<----- PANA-Bind-Request[Session-Id, EAP{Success},
Device-Id, Lifetime, Protection-Cap., Key-Id, MAC]
-----> PANA-Bind-Answer[Session-Id, Device-Id, Key-Id, MAC]
// Re-authentication based on PANA-Reauth exchange
<----- PANA-Reauth-Request[Session-Id, MAC]
-----> PANA-Reauth-Answer[Session-Id, MAC]
// Termination phase
-----> PANA-Termination-Request[Session-Id, MAC]
<----- PANA-Termination-Answer[Session-Id, MAC]
Figure 2: A Complete Message Sequence
4. Protocol Details 4. Protocol Details
4.1 Common Processing Rules 4.1 Common Processing Rules
4.1.1 Payload Encoding 4.1.1 Payload Encoding
The payload of any PANA message consists of zero or more AVPs The payload of any PANA message consists of zero or more AVPs
(Attribute Value Pairs). A brief description of the AVPs defined in (Attribute Value Pairs). A brief description of the AVPs defined in
this document is listed below: this document is listed below:
skipping to change at page 11, line 8 skipping to change at page 12, line 8
on a NAP and an ISP, respectively. on a NAP and an ISP, respectively.
o Key-Id AVP: contains a AAA-Key identifier. o Key-Id AVP: contains a AAA-Key identifier.
o PPAC AVP: Post-PANA-Address-Configuration AVP. Conveys the list o PPAC AVP: Post-PANA-Address-Configuration AVP. Conveys the list
of IP address configuration methods available when sent by the of IP address configuration methods available when sent by the
PAA, and the chosen method when sent by the PaC. PAA, and the chosen method when sent by the PaC.
o Nonce AVP: contains a randomly chosen value. o Nonce AVP: contains a randomly chosen value.
o IP-Address AVP: contains an IP Address of a PaC.
4.1.2 Transport Layer Protocol 4.1.2 Transport Layer Protocol
PANA uses UDP as its transport layer protocol. The UDP port number PANA uses UDP as its transport layer protocol. The UDP port number
is TBD. All messages except for PANA-PAA-Discover are always is TBD. All messages except for PANA-PAA-Discover are always
unicast. PANA-PAA-Discover MAY be unicasted when the PaC knows the unicast. PANA-PAA-Discover MAY be unicasted when the PaC knows the
IP address of the PAA. IP address of the PAA.
4.1.3 Fragmentation 4.1.3 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.
4.1.4 Sequence Number and Retransmission 4.1.4 Sequence Number and Retransmission
PANA uses sequence numbers to provide ordered delivery of EAP PANA uses sequence numbers to provide ordered delivery of EAP
messages. The design involves use of two sequence numbers to prevent messages. The design involves use of two sequence numbers to prevent
some of the DoS attacks on the sequencing scheme. Every PANA packet some of the DoS attacks on the sequencing scheme. Every PANA packet
include one transmitted sequence number (tseq) and one received includes one transmitted sequence number (tseq) and one received
sequence number (rseq) in the PANA header. See [1] for detailed sequence number (rseq) in the PANA header. See [1] for detailed
explanation on why two sequence numbers are needed. explanation on why two sequence numbers are needed.
The two sequence number fields have the same length of 32 bits and The two sequence number fields have the same length of 32 bits and
appear in PANA header. tseq starts from initial sequence number appear in PANA header. The transmission sequence number starts from
(ISN) and is monotonically increased by 1. The serial number initial sequence number (ISN) and is monotonically increased by 1.
arithmetic defined in [RFC1982] is used for sequence number This rule applies to all PANA messages but PANA-PAA-Discover. The
operation. The ISNs are exchanged between PaC and PAA during the serial number arithmetic defined in [RFC1982] is used for sequence
discovery and initial handshake phase (see Section 4.2). The rules number operation. The ISNs are exchanged between PaC and PAA during
that govern the sequence numbers in other phases are described as the discovery and initial handshake phase (see Section 4.2). The
follows. rules that govern the sequence numbers in other phases are described
as follows.
o When a message is sent, a new sequence number is placed on the o When a message is sent, a new sequence number is placed on the
tseq field of message regardless of whether it is sent as a result tseq field of message regardless of whether it is sent as a result
of retransmission or not. When a message is sent, rseq is copied of retransmission or not. When a message is sent, rseq is copied
from the tseq field of the last accepted message. from the tseq field of the last accepted message.
o When a message is received, it is considered valid in terms of o When a message is received, it is considered valid in terms of
sequence numbers if and only if (i) its tseq is greater than the sequence numbers if and only if (i) its tseq is greater than the
tseq of the last accepted message and (ii) its rseq falls in the tseq of the last accepted message and (ii) its rseq falls in the
range between the tseq of the last acknowledged message + 1 and range between the tseq of the last acknowledged message and the
the tseq of the last transmitted message. tseq of the last transmitted message.
PANA relies on EAP-layer retransmissions, or for example NAS PANA relies on EAP-layer retransmissions, or for example NAS
functionality [I-D.ietf-aaa-eap], for retransmitting EAP Requests functionality [I-D.ietf-aaa-eap], for retransmitting EAP Requests
based on timer. Other PANA layer messages that require a response based on timer. Other PANA layer messages that require a response
from the communicating peer are retransmitted based on timer at from the communicating peer are retransmitted based on timer at
PANA-layer until a response is received (in which case the PANA-layer until a response is received (in which case the
retransmission timer is stopped) or the number of retransmission retransmission timer is stopped) or the number of retransmission
reaches the maximum value (in which case the PANA session MUST be reaches the maximum value (in which case the PANA session MUST be
deleted immediately). For PANA-layer retransmission, the deleted immediately). For PANA-layer retransmission, the
retransmission timer SHOULD be calculated as described in [RFC2988] retransmission timer SHOULD be calculated as described in [RFC2988]
skipping to change at page 12, line 39 skipping to change at page 13, line 41
PANA-FirstAuth-End-Request and PANA-FirstAuth-End-Answer messages at PANA-FirstAuth-End-Request and PANA-FirstAuth-End-Answer messages at
the end of the EAP authentication which resulted in deriving a new the end of the EAP authentication which resulted in deriving a new
AAA-Key. The Key-Id AVP is of type Unsigned32 and MUST contain a AAA-Key. The Key-Id AVP is of type Unsigned32 and MUST contain a
value that uniquely identifies the AAA-Key within the PANA session. value that uniquely identifies the AAA-Key within the PANA session.
The PANA-Bind-Answer message (or the PANA-FirstAuth-End-Answer The PANA-Bind-Answer message (or the PANA-FirstAuth-End-Answer
message) sent in response to a PANA-Bind-Request message (or a message) sent in response to a PANA-Bind-Request message (or a
PANA-FirstAuth-End-Request message) with a Key-Id AVP MUST contain a PANA-FirstAuth-End-Request message) with a Key-Id AVP MUST contain a
Key-Id AVP with the same AAA-Key identifier carried in the request. Key-Id AVP with the same AAA-Key identifier carried in the request.
PANA-Bind-Request, PANA-Bind-Answer, PANA-FirstAuth-End-Request and PANA-Bind-Request, PANA-Bind-Answer, PANA-FirstAuth-End-Request and
PANA-FirstAuth-End-Answer messages with a Key-Id AVP MUST also carry PANA-FirstAuth-End-Answer messages with a Key-Id AVP MUST also carry
a MAC AVP whose value is computed by using the new PANA-MAC-Key a MAC AVP whose value is computed by using the new PANA-MAC-KEY
derived from the new AAA-Key (or the new pair of AAA-Keys when the derived from the new AAA-Key (or the new pair of AAA-Keys when the
PANA_MAC_KEY is derived from two AAA-Keys). Although the PANA_MAC_KEY is derived from two AAA-Keys). Although the
specification does not mandate a particular method for calculation of specification does not mandate a particular method for calculation of
Key-Id AVP value, a simple method is to use monotonically increasing Key-Id AVP value, a simple method is to use monotonically increasing
numbers." numbers.
The created PANA SA is deleted when the corresponding PANA session is The created PANA SA is deleted when the corresponding PANA session is
deleted. The lifetime of the PANA SA is the same as the lifetime of deleted. The lifetime of the PANA SA is the same as the lifetime of
the PANA session for simplicity. the PANA session for simplicity.
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-Id * Session-Id
* Device-Id of PaC * Device-Id of PaC
* Device-Id of PAA * Device-Id of PAA
* List of device identifiers of EPs * IP address of PaC (may be the same as the Device-Id of PaC)
* Initial tseq of PaC (ISN_pac) * IP address of PAA (may be the same as the Device-Id of PAA)
* Initial tseq of PAA (ISN_paa) * List of device identifiers of EPs
* Last transmitted tseq value * Last transmitted tseq value
* Last received rseq value * Last received rseq value
* Last transmitted message payload * Last transmitted message payload
* Retransmission interval * Retransmission interval
* Session lifetime * Session lifetime
* Protection-Capability * Protection-Capability
* PANA SA attributes: * PANA SA attributes:
+ AAA-Key + Nonce generated by PaC (PaC_nonce)
+ AAA-Key Identifier + Nonce generated by PAA (PAA_nonce)
+ PANA_MAC_Key + AAA-Key
The PANA_MAC_Key is used to integrity protect PANA messages. When + AAA-Key Identifier
the PANA_MAC_Key is derived from a single AAA-Key, it is computed in
the following way:
PANA_MAC_KEY = The first N bits of + PANA_MAC_KEY
HMAC_SHA1(AAA-Key, ISN_pac | ISN_paa | Session-ID)
where the value of N depends on the integrity protection algorithm in The PANA_MAC_Key is used to integrity protect PANA messages and
use, i.e., N=160 for HMAC-SHA1. derived from AAA-Key(s). When two AAA-Keys (AAA-Key1 and AAA-Key2)
are generated as a result of double EAP authentication (see Section
4.3) the compound AAA-Key can be computed as follows ('|' indicates
concatenation):
When the PANA_MAC_Key is derived from two AAA-Keys, it is computed in AAA-Key = AAA-Key1 | AAA-Key2
the following way: The PANA_MAC_KEY is computed in the following way:
PANA_MAC_KEY = The first N bits of PANA_MAC_KEY = The first N bits of
HMAC_SHA1(AAA-Key1 | AAA-Key2, ISN_pac | ISN_paa | HMAC_SHA1(AAA-Key, PaC_nonce | PAA_nonce | Session-ID)
Session-ID)
where AAA-Key1 and AAA-Key2 are AAA-Keys for the first and second EAP
authentication in a single PANA authentication phase, respectively.
The length of AAA-Key, AAA-Key1 and AAA-Key2 MUST be N bits or where the value of N depends on the integrity protection algorithm in
longer. See Section 4.1.6 for the detailed usage of the use, i.e., N=160 for HMAC-SHA1. The length of AAA-Key MUST be N bits
PANA_MAC_Key. or longer. See Section Section 4.1.6 for the detailed usage of the
PANA_MAC_KEY.
4.1.6 Message Authentication Code 4.1.6 Message Authentication Code
A PANA message can contain a MAC (Message Authentication Code) AVP A PANA message can contain a MAC (Message Authentication Code) AVP
for cryptographically protecting the message. for cryptographically protecting the message.
When a MAC AVP is included in a PANA message, the value field of the When a MAC AVP is included in a PANA message, the value field of the
MAC AVP is calculated by using the PANA_MAC_Key in the following way: MAC AVP is calculated by using the PANA_MAC_KEY in the following way:
MAC AVP value = PANA_MAC_PRF(PANA_MAC_Key, PANA_PDU) MAC AVP value = PANA_MAC_PRF(PANA_MAC_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 MAC AVP value field first initialized to 0. PANA_MAC_PRF the MAC AVP value field first initialized to 0. PANA_MAC_PRF
represents the pseudo random function corresponding to the MAC represents the pseudo random function corresponding to the MAC
algorithm specified in the MAC AVP. In this version of draft, algorithm specified in the MAC AVP. In this version of draft,
PANA_MAC_PRF is HMAC-SHA1. The PaC and PAA MUST use the same PANA_MAC_PRF is HMAC-SHA1. The PaC and PAA MUST use the same
algorithm to calculate a MAC AVP they originate and receive. The algorithm to calculate a MAC AVP they originate and receive. The
algorithm is determined by the PAA when a PANA-Bind-Request with a algorithm is determined by the PAA when a PANA-Bind-Request with a
MAC AVP is sent. When the PaC does not support the MAC algorithm MAC AVP is sent. When the PaC does not support the MAC algorithm
specified in the PANA-Bind-Request message, it MUST silently discard specified in the PANA-Bind-Request message, it MUST silently discard
skipping to change at page 15, line 7 skipping to change at page 16, line 7
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, etc. flags, etc.
o When a device identifier of the communication peer is bound to the o When a device identifier of the communication peer is bound to the
PANA session, it matches the device identifier carried in MAC and/ PANA session, it matches the device identifier carried in MAC and/
or IP header(s), or other auxiliary indetifier provided by the or IP header(s), or other auxiliary indetifier provided by the
lower-layers (e.g., circuit ID). lower-layers (e.g., circuit ID).
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. state. Specifically the following messages are unexpected and
invalid:
* In discovery and initial handshake phase:
+ PANA-Termination-Request and PANA-Reauth-Request.
+ PANA-Bind-Request.
+ PANA-Update-Request.
* In authentication phase:
+ PANA-PAA-Discover.
+ PANA-Termination-Request and PANA-Reauth-Request.
+ PANA-Update-Request.
+ PANA-Start-Request after a PaC receives the first valid
PANA-Auth-Request.
* After successful PANA authentication:
+ PANA-Start-Request as well as a non-duplicate
PANA-Bind-Request (see section Section 4.7 for definition of
duplicate requests).
+ PANA-PAA-Discover without a Session-Id AVP.
* In termination phase:
+ PANA-PAA-Discover.
+ All requests but PANA-Termination-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. in the payload.
o Each AVP is decoded correctly. o Each AVP is decoded correctly.
o When a MAC AVP is included, the AVP value matches the MAC value o When a MAC AVP is included, the AVP value matches the MAC value
computed against the received message. computed against the received message.
skipping to change at page 15, line 29 skipping to change at page 17, line 16
identifier type contained in the AVP is supported (this check is identifier type contained in the AVP is supported (this check is
for both PaC and PAA) and is the requested one (this check is for for both PaC and PAA) and is the requested one (this check is for
PAA only) and the device identifier value contained in the AVP PAA only) and the device identifier value contained in the AVP
matches the value extracted from the lower-layer encapsulation matches the value extracted from the lower-layer encapsulation
header corresponding to the device identifier type contained in header corresponding to the device identifier type contained in
the AVP. Note that a Device-Id AVP carries the PaC's device the AVP. Note that a Device-Id AVP carries the PaC's device
identifier in messages from PaC to PAA and PAA's device identifier identifier in messages from PaC to PAA and PAA's device identifier
in messages from PAA to PaC. in messages from PAA to PaC.
Invalid messages MUST be discarded in order to provide robustness Invalid messages MUST be discarded in order to provide robustness
against DoS attacks and an unprotected. In addition, a against DoS attacks. In addition, a non-acknowledged error
non-acknowledged error notification message MAY be returned to the notification message MAY be returned to the sender. See Section
sender. See Section 4.1.8 for details. 4.1.8 for details.
4.1.8 Error Handling 4.1.8 Error Handling
PANA-Error message MAY be sent by either PaC or PAA when a badly PANA-Error message MAY be sent by either PaC or PAA when a badly
formed PANA message is received or in case of other errors. If the formed PANA message is received or in case of other errors. If the
cause of this error message was a request message (e.g., cause of this error message was a request message (e.g.,
PANA-PAA-Discover or *-Request), then the request MAY be PANA-PAA-Discover or *-Request), then the request MAY be
retransmitted immediately without waiting for its retransmission retransmitted immediately without waiting for its retransmission
timer to go off. If the cause of the error was a response message, timer to go off. If the cause of the error was a response message,
the receiver of the PANA-Error message SHOULD NOT resend the same the receiver of the PANA-Error message SHOULD NOT resend the same
skipping to change at page 16, line 8 skipping to change at page 17, line 43
configurable parameter. configurable parameter.
When an error message is sent unprotected with MAC AVP and the When an error message is sent unprotected with MAC AVP and the
lower-layer is insecure, the error message is treated as an lower-layer is insecure, the error message is treated as an
informational message. The receiver of such an error message MUST informational message. The receiver of such an error message MUST
NOT change its state unless the error persists and the PANA session NOT change its state unless the error persists and the PANA session
is not making any progress. is not making any progress.
4.2 Discovery and Initial Handshake Phase 4.2 Discovery and Initial Handshake Phase
When a PaC attaches to a network, and knows that it has to discover When a PaC attaches to a network, and knows that it has to discover a
PAA for PANA, it SHOULD send a PANA-PAA-Discover message to a PAA, it SHOULD send a PANA-PAA-Discover message to a well-known link
well-known link local multicast address (TBD) and UDP port (TBD). local multicast address (TBD) and UDP port (TBD). The PANA PAA
PANA PAA discovery assumes that PaC and PAA are one hop away from discovery assumes that PaC and PAA are one hop away from each other.
each other. If PaC knows the IP address of the PAA (some If the PaC knows the IP address of the PAA (based on
pre-configuration), it MAY unicast the PANA discovery message to that pre-configuration), it MAY unicast the PANA discovery message to that
address. PAA SHOULD answer to the PANA-PAA-Discover message with a address. The PAA SHOULD respond to the PANA-PAA-Discover message
PANA-Start-Request message. with a PANA-Start-Request message.
When the PAA receives such a request, or upon receiving some lower When the PAA receives such a request, or upon receiving some lower
layer indications of a new PaC, PAA SHOULD unicast a layer indications of a new PaC, the PAA SHOULD unicast a
PANA-Start-Request message. PANA-Start-Request message.
There can be multiple PAAs on the link. The authentication and There can be multiple PAAs on the link. The authentication and
authorization result does not depend on which PAA is chosen by the authorization result does not depend on which PAA is chosen by the
PaC. By default the PaC MAY choose the PAA that sent the first PaC. By default the PaC MAY choose the PAA that sent the first
response. response.
PaC MAY also choose to start sending packets before getting The PaC MAY also choose to start sending packets before getting
authenticated. In that case, the network MAY detect this and send an authenticated. In that case, the network may detect this and the PAA
unsolicited PANA-Start-Request message to PaC in addition to MAY send an unsolicited PANA-Start-Request message to the PaC in
filtering the unauthorized traffic. EP is the node that can detect addition to filtering the unauthorized traffic. The EP is the node
such activity. PAA-to-EP protocol MAY be used for this purpose. that can detect such activity. The PAA-to-EP protocol MAY be used
for this purpose.
A PANA-Start-Request message MAY carry a Cookie AVP that contains a A PANA-Start-Request message MAY carry a Cookie AVP that contains a
cookie. The rseq field of the header is set to zero (0). The tseq cookie. The rseq field of the header is set to zero (0). The tseq
field of the header contains the initial sequence number. The cookie field of the header contains the initial sequence number. The cookie
is used for preventing the PAA from resource consumption DoS attacks is used for preventing the PAA from resource consumption DoS attacks
by blind attackers. The cookie is computed in such a way that it does by blind attackers. The cookie is computed in such a way that it
not require any per-session state maintenance on the PAA in order to does not require any per-session state maintenance on the PAA in
verify the cookie returned in a PANA-Start-Answer message. The exact order to verify the cookie returned in a PANA-Start-Answer message.
algorithms and syntax used for generating cookies does not affect The exact algorithms and syntax used for generating cookies does not
interoperability and hence is not specified here. An example affect interoperability and hence is not specified here. An example
algorithm is described below. algorithm is described below.
Cookie = Cookie =
<secret-version> | HMAC_SHA1( <Device-Id of PaC> | <secret> ) <secret-version> | HMAC_SHA1( <Device-Id of PaC> , <secret> )
where <secret> is a randomly generated secret known only to the PAA, where <secret> is a randomly generated secret known only to the PAA,
<secret-version> is an index used for choosing the secret for <secret-version> is an index used for choosing the secret for
generating the cookie and '|' indicates concatenation. The secret- generating the cookie and '|' indicates concatenation. The
version should be changed frequently enough to prevent replay secret-version should be changed frequently enough to prevent replay
attacks. The secret key is locally known to the PAA only and valid attacks. The secret key is valid for a certain time frame.
for a certain time frame.
Protection-Capability and Post-PANA-Address-Configuration AVPs MAY be
optionally included in the PANA-Start-Request in order to indicate
required and available capabilities for the network access. These
AVPs MAY be used by the PaC for assessing the capability match even
before the authentication takes place. But these AVPs are provided
during the insecure discovery phase, there are certain security risks
involved in using the provided information. See Section 9 for further
discussion on this.
PAA MAY enable NAP-ISP authentication separation by setting the
S-flag of the message header of the PANA-Start-Request. Also, the
PANA-Start-Request MAY contain zero or one NAP-Information AVP and
zero or more ISP-Information AVPs to advertise the information on the
NAP and/or ISPs.
When a PaC receives the PANA-Start-Request message in response to the
PANA-PAA-Discover message, it responds with a PANA-Start-Answer
message if it wishes to enter the authentication phase. The
PANA-Start-Answer message contains the initial sequence numbers in
the tseq and rseq fields of the PANA header, a copy of the received
Cookie (if any) as the PANA payload.
If the S-flag of the received PANA-Start-Request message is not set,
PaC MUST NOT set the S-flag in the PANA-Start-Answer message sent
back to the PAA. In this case, PaC MAY indicate its choice of ISP by
including an ISP-Information AVP in the PANA-Start-Answer message.
When a AAA backend is used, the identity of the destination AAA
server or realm MUST be determined based on the explicitly chosen
ISP. When the ISP-Information AVP is not present, the access network
MAY rely on the client identifier carried in the EAP authentication
method to make this determination.
If the S-flag of the received PANA-Start-Request message is set, PaC
can indicate its desire to perform separate EAP authentication for
NAP and ISP by setting the S-flag in the PANA-Start-Answer message.
If the S-flag in the PANA-Start-Answer message is not set, only one
authentication is performed and the processing occurs as described
earlier. If the S-flag in the PANA-Start-Answer message is set, the
determination of the destination AAA server or realm for ISP
authentication is performed as described earlier. In addition, where
backend AAA servers are used for NAP authentication, the NAP is
considered the ultimate AAA realm, and the destination AAA server for
this authentication is determined entirely by the local configuration
on the access server hosting PAA (NAS).
The PaC can choose an ISP and contain an ISP-Information AVP for the
chosen ISP in a PANA-Start-Answer message even when there is no
ISP-Information AVP contained in the PANA-Start-Request message.
When the PAA receives the PANA-Start-Answer message from the PaC, it When the PAA receives the PANA-Start-Answer message from the PaC, it
verifies the cookie. The cookie is considered as valid if the verifies the cookie. The cookie is considered as valid if the
received cookie has the expected value. If the computed cookie is received cookie has the expected value. If the computed cookie is
valid, the protocol enters the authentication phase. Otherwise, it valid, the protocol enters the authentication phase. Otherwise, it
MUST silently discard the received message. MUST silently discard the received message.
Initial EAP Request MAY be optionally carried by the Initial EAP Request MAY be optionally carried by the
PANA-Start-Request (as opposed to by a later PANA-Auth-Request) PANA-Start-Request (as opposed to by a later PANA-Auth-Request)
message in order to reduce the number of round-trips. This message in order to reduce the number of round-trips. This
optimization SHOULD NOT be used if the PAA discovery is desired to be optimization SHOULD NOT be used if the PAA discovery is desired to be
stateless. stateless.
When the S-flag is set in a PANA-Start-Request message, the initial Protection-Capability and Post-PANA-Address-Configuration AVPs MAY be
EAP Request MUST NOT be carried in the PANA-Start-Request message. optionally included in the PANA-Start-Request in order to indicate
(If the initial EAP Request were contained in the PANA-Start-Request required and available capabilities for the network access. These
message during the S-flag negotiation, the PaC cannot tell whether AVPs MAY be used by the PaC for assessing the capability match even
the EAP Request is for NAP authentication or ISP authentication.) before the authentication takes place. But these AVPs are provided
during the insecure discovery phase, there are certain security risks
involved in using the provided information. See Section 9 for
further discussion on this.
If the initial EAP Request message is carried in the If the initial EAP Request message is carried in the
PANA-Start-Request message, an EAP Response message MUST be carried PANA-Start-Request message, an EAP Response message MUST be carried
in the PANA-Start-Answer message returned to the PAA. in the PANA-Start-Answer message returned to the PAA.
In any case, PANA MUST NOT generate an EAP message on behalf of EAP In any case, PANA MUST NOT generate an EAP message on behalf of EAP
peer or EAP (pass-through) authenticator. peer or EAP (pass-through) authenticator.
The PANA-Start-Request/Answer exchange is needed before entering The PANA-Start-Request/Answer exchange is needed before entering
authentication phase even when the PaC is pre-configured with PAAs IP authentication phase even when the PaC is pre-configured with PAAs IP
address and the PANA-PAA-Discover message is unicast. address and the PANA-PAA-Discover message is unicast.
A Nonce AVP MUST be included in PANA-Start-Request and
PANA-Start-Answer messages.
A PANA-Start-Request message that carries a Cookie AVP is never A PANA-Start-Request message that carries a Cookie AVP is never
retransmitted. A PANA-Start-Request message that does not carry a retransmitted. A PANA-Start-Request message that does not carry a
Cookie AVP is retransmitted based on timer. A PANA-Start-Answer Cookie AVP is retransmitted based on timer. A PANA-Start-Answer
message that carries a Cookie AVP is retransmitted based on timer. A message that carries a Cookie AVP is retransmitted based on timer. A
PANA-Start-Answer message that does not carry a Cookie AVP is never PANA-Start-Answer message that does not carry a Cookie AVP is never
retransmitted based on timer. retransmitted based on timer.
It is possible that both PAA and PaC initiate the discovery and It is possible that both PAA and PaC initiate the discovery and
initial handshake procedure at the same time, i.e., the PAA sends a initial handshake procedure at the same time, i.e., the PAA sends a
PANA-Start-Request message while the PaC sends a PANA-PAA-Discover PANA-Start-Request message while the PaC sends a PANA-PAA-Discover
message. To resolve the race condition, the PAA SHOULD silently message. To resolve the race condition, the PAA SHOULD silently
discard the PANA-PAA-Discover message received from the PaC after it discard the PANA-PAA-Discover message received from the PaC after it
has sent a PANA-Start-Request message with creating a state (i.e., no has sent a PANA-Start-Request message with creating a state (i.e., no
Cookie AVP included) for the PaC. In this case PAA will retransmit Cookie AVP included) for the PaC. In this case PAA will retransmit
PANA-Start-Request based on a timer, if PaC doesn't respond in time PANA-Start-Request based on a timer, if PaC doesn't respond in time
(message was lost for example). If PAA had sent stateless (message was lost for example). If PAA had sent stateless
PANA-Start-Request message (i.e., a Cookie AVP was included), then it PANA-Start-Request message (i.e., a Cookie AVP was included), then it
SHOULD answer to the PANA-PAA-Discover message. SHOULD answer to the PANA-PAA-Discover message.
PaC PAA Message Figure 3 shows an example sequence for the discovery and initial
handshake phase when a PANA-PAA-Discover message is sent by a PaC.
Figure 4 shows an example sequence for the discovery and initial
handshake phase that is triggered by data traffic.
PaC PAA Message(tseq,rseq)[AVPs]
------------------------------------------------------ ------------------------------------------------------
-----> PANA-PAA-Discover(0,0) -----> PANA-PAA-Discover(0,0)
<----- PANA-Start-Request(x,0)[Cookie] <----- PANA-Start-Request(x,0)[Nonce, Cookie]
-----> PANA-Start-Answer(y,x)[Cookie] -----> PANA-Start-Answer(y,x)[Nonce, Cookie]
(continued to authentication phase) (continued to authentication phase)
Figure 2: Example Sequence for Discovery and Initial Handshake Phase Figure 3: Example Sequence for Discovery and Initial Handshake Phase
when PANA-PAA-Discover is sent by PaC when PANA-PAA-Discover is sent by PaC
PaC EP PAA Message PaC EP PAA Message(tseq,rseq)[AVPs]
------------------------------------------------------ ------------------------------------------------------
---->o (Data packet arrival or L2 trigger) ---->o (Data packet arrival or L2 trigger)
------> PAA-to-EP protocol, or another mechanism ------> PAA-to-EP protocol, or another mechanism
<------------ PANA-Start-Request(x,0)[Cookie] <------------ PANA-Start-Request(x,0)[Nonce, Cookie]
------------> PANA-Start-Answer(y,x)[Cookie] ------------> PANA-Start-Answer(y,x)[Nonce, Cookie]
(continued to authentication phase) (continued to authentication phase)
Figure 3: Example Sequence for Discovery and Initial Handshake when Figure 4: Example Sequence for Discovery and Initial Handshake when
discovery is triggered by data traffic discovery is triggered by data traffic
4.2.1 Discovery and Initial Handshake with NAP-ISP Authentication
Separation
In the discovery and initial handshake phase, a PAA MAY enable
NAP-ISP authentication separation ([I-D.ietf-pana-framework]) by
setting the S-flag of the message header of the PANA-Start-Request.
Also, the PANA-Start-Request MAY contain zero or one NAP-Information
AVP and zero or more ISP-Information AVPs to advertise the
information on the NAP and/or ISPs.
When a PaC receives the PANA-Start-Request message in response to the
PANA-PAA-Discover message, it responds with a PANA-Start-Answer
message if it wishes to enter the authentication phase. The
PANA-Start-Answer message contains the initial sequence numbers in
the tseq and rseq fields of the PANA header, a copy of the received
Cookie (if any) as the PANA payload.
If the S-flag of the received PANA-Start-Request message is not set,
PaC MUST NOT set the S-flag in the PANA-Start-Answer message sent
back to the PAA. In this case, PaC MAY indicate its choice of ISP by
including an ISP-Information AVP in the PANA-Start-Answer message.
When a AAA backend is used, the identity of the destination AAA
server or realm MUST be determined based on the explicitly chosen
ISP. When the ISP-Information AVP is not present, the access network
MAY rely on the client identifier carried in the EAP authentication
method to make this determination.
If the S-flag of the received PANA-Start-Request message is set, PaC
can indicate its desire to perform separate EAP authentication for
NAP and ISP by setting the S-flag in the PANA-Start-Answer message.
If the S-flag in the PANA-Start-Answer message is not set, only one
authentication is performed and the processing occurs as described in
Section 4.2. If the S-flag in the PANA-Start-Answer message is set,
the determination of the destination AAA server or realm for ISP
authentication is performed as described earlier. In addition, where
backend AAA servers are used for NAP authentication, the NAP is
considered the ultimate AAA realm, and the destination AAA server for
this authentication is determined entirely by the local configuration
on the access server hosting PAA (NAS).
The PaC can choose an ISP and contain an ISP-Information AVP for the
chosen ISP in a PANA-Start-Answer message even when there is no
ISP-Information AVP contained in the PANA-Start-Request message.
When the S-flag is set in a PANA-Start-Request message, the initial
EAP Request MUST NOT be carried in the PANA-Start-Request message.
(If the initial EAP Request were contained in the PANA-Start-Request
message during the S-flag negotiation, the PaC cannot tell whether
the EAP Request is for NAP authentication or ISP authentication.)
4.3 Authentication Phase 4.3 Authentication Phase
The main task in authentication phase is to carry EAP messages The main task in authentication phase is to carry EAP messages
between PaC and PAA. EAP Request messages are carried in PANA- between PaC and PAA. EAP Request messages are carried in
Auth-Request messages and optionally carried in PANA-Start-Request PANA-Auth-Request messages and optionally carried in
messages. EAP Response messages are carried in PANA-Auth-Answer PANA-Start-Request messages. EAP Response messages are carried in
messages and optionally carried in PANA-Start-Answer messages. When PANA-Auth-Answer messages and optionally carried in PANA-Start-Answer
an EAP Success/Failure message is sent from a PAA, the message is messages. When an EAP Success/Failure message is sent from a PAA,
carried in a PANA-Bind-Request (PBR) or PANA-FirstAuth-End-Request the message is carried in a PANA-Bind-Request (PBR) or
(PFER) message. The PANA-FirstAuth-End-Reques message MUST be used PANA-FirstAuth-End-Request (PFER) message. The
at the end of the first EAP when the PaC and PAA have negotiated PANA-FirstAuth-End-Reques message MUST be used at the end of the
during the discovery and initial handshake phase to perform separate first EAP when the PaC and PAA have negotiated during the discovery
NAP and ISP authentications in a single PANA authentication phase. and initial handshake phase to perform separate NAP and ISP
Otherwise, the PANA-Bind-Request message MUST be used. The authentications in a single PANA authentication phase. Otherwise,
PANA-Bind-Request and PANA-FirstAuth-End-Request messages MUST be the PANA-Bind-Request message MUST be used. The PANA-Bind-Request
acknowledged with a PANA-Bind-Answer (PBA) and a and PANA-FirstAuth-End-Request messages MUST be acknowledged with a
PANA-FirstAuth-End-Answer (PFEA) messages, respectively. PANA-Bind-Answer (PBA) and a PANA-FirstAuth-End-Answer (PFEA)
messages, respectively. Figure 5 shows an example sequence for the
authentication phase without separating NAP and ISP authentications.
PaC PAA Message(tseq,rseq)[AVPs]
-------------------------------------------------
(continued from discovery and initial handshake phase)
<----- PANA-Auth-Request(x+1,y)[Session-Id, EAP{Request}]
-----> PANA-Auth-Answer(y+1,x+1)[Session-Id, EAP{Response}]
.
.
<----- PANA-Auth-Request (x+2,y+1)[Session-Id, EAP{Request}]
-----> PANA-Auth-Answer (y+2,x+2)[Session-Id, EAP{Response}]
<----- PANA-Bind-Request(x+3,y+2)
[Session-Id, EAP{Success}, Device-Id, Lifetime,
Protection-Cap., PPAC, MAC]
-----> PANA-Bind-Answer(y+3,x+3)
[Session-Id, Device-Id, PPAC, MAC]
Figure 5: Example Sequence in Authentication Phase
When the PaC and PAA have negotiated during the discovery and initial When the PaC and PAA have negotiated during the discovery and initial
handshake phase to perform separate NAP and ISP authentications, the handshake phase to perform separate NAP and ISP authentications, the
S-flag of PANA-Auth-Request and PANA-Auth-Answer messages MUST be S-flag of PANA-Auth-Request and PANA-Auth-Answer messages MUST be
set. Otherwise, the S-flag MUST NOT be set. set. Otherwise, the S-flag MUST NOT be set.
When separate NAP and ISP authentications are performed, the PAA When separate NAP and ISP authentications are performed, the PAA
determines the execution order of NAP authentication and ISP determines the execution order of NAP authentication and ISP
authentication. In this case, the PAA can indicate which EAP authentication. In this case, the PAA can indicate which EAP
authentication is currently occurring by using N-flag in the PANA authentication is currently occurring by using N-flag in the PANA
skipping to change at page 20, line 24 skipping to change at page 22, line 46
EAP authentication has failed, the PAA can choose not to perform the EAP authentication has failed, the PAA can choose not to perform the
second EAP authentication by clearing the S-flag of the second EAP authentication by clearing the S-flag of the
PANA-FirstAuth-End-Request message. In this case, the S-flag of the PANA-FirstAuth-End-Request message. In this case, the S-flag of the
PANA-FirstAuth-End-Answer message sent by the PaC MUST be cleared. PANA-FirstAuth-End-Answer message sent by the PaC MUST be cleared.
If the S-flag of the PANA-FirstAuth-End-Request message is set when If the S-flag of the PANA-FirstAuth-End-Request message is set when
the first EAP authentication has failed, the PaC can choose not to the first EAP authentication has failed, the PaC can choose not to
perform the second EAP authentication by clearing the S-flag of the perform the second EAP authentication by clearing the S-flag of the
PANA-FirstAuth-End-Answer message. If the first EAP authentication PANA-FirstAuth-End-Answer message. If the first EAP authentication
failed and the S-flag is not set in the PANA-FirstAuth-End-Answer failed and the S-flag is not set in the PANA-FirstAuth-End-Answer
message as a result of those operations, the PANA session MUST be message as a result of those operations, the PANA session MUST be
immediately deleted. Otherwise, the second EAP authentication MUST be immediately deleted. Otherwise, the second EAP authentication MUST
performed. be performed.
Currently, use of multiple EAP methods in PANA is designed only for Currently, use of multiple EAP methods in PANA is designed only for
NAP-ISP authentication separation. It is not for arbitrary EAP NAP-ISP authentication separation. It is not for arbitrary EAP
method sequencing, or giving the PaC another chance when an method sequencing, or giving the PaC another chance when an
authentication method fails. The NAP and ISP authentication are authentication method fails. The NAP and ISP authentication are
considered completely independent. Presence or success of one should considered completely independent. Presence or success of one should
not effect the other. Making a network access authorization decision not effect the other. Making a network access authorization decision
based on the success or failure of each authentication is a network based on the success or failure of each authentication is a network
policy issue. policy issue.
skipping to change at page 21, line 6 skipping to change at page 23, line 28
successful, the PANA-FirstAuth-End-Request and successful, the PANA-FirstAuth-End-Request and
PANA-FirstAuth-End-Answer messages as well as PANA-Auth-Request and PANA-FirstAuth-End-Answer messages as well as PANA-Auth-Request and
PANA-Auth-Answer messages in the second EAP authentication MUST be PANA-Auth-Answer messages in the second EAP authentication MUST be
protected with the key derived from the AAA-Key for the first EAP protected with the key derived from the AAA-Key for the first EAP
authentication. The PANA-Bind-Request and PANA-Bind-Answer messages authentication. The PANA-Bind-Request and PANA-Bind-Answer messages
and all subsequent PANA messages MUST be protected either with the and all subsequent PANA messages MUST be protected either with the
AAA-Key for the first EAP authentication if the first EAP AAA-Key for the first EAP authentication if the first EAP
authentication succeeds and the second EAP authentication fails, or authentication succeeds and the second EAP authentication fails, or
with the AAA-Key for the second EAP authentication if the first EAP with the AAA-Key for the second EAP authentication if the first EAP
authentication fails and the second EAP authentication succeeds, or authentication fails and the second EAP authentication succeeds, or
with the compound key derived from the two AAA-Keys, one for the with the compound AAA-Key derived from the two AAA-Keys, one for the
first EAP authentication and the other from the second EAP first EAP authentication and the other from the second EAP
authentication, if both the first and second EAP authentications authentication, if both the first and second EAP authentications
succeed (see Section 4.1.5 for how the compound key is derived). succeed.
The PANA-Bind-Request and the PANA-Bind-Answer message exchange is The PANA-Bind-Request and the PANA-Bind-Answer message exchange is
also used for binding device identifiers of the PaC and the PAA to also used for binding device identifiers of the PaC and the PAA to
the PANA SA when the identifiers are either IP or MAC addresses. To the PANA SA when the identifiers are either IP or MAC addresses. To
achieve this, the PANA-Bind-Request and the PANA-Bind-Answer SHOULD achieve this, the PANA-Bind-Request and the PANA-Bind-Answer SHOULD
contain a device identifier of the PAA and the PaC, respectively, in contain a device identifier of the PAA and the PaC, respectively, in
a Device-Id AVP. Device identifier exchange that is protected by a a Device-Id AVP. Device identifier exchange that is protected by a
MAC AVP prevents man-in-the-middle attacks. The PaC MUST use the MAC AVP prevents man-in-the-middle attacks. The PaC MUST use the
same type of device identifier as contained in the PANA-Bind-Request same type of device identifier as contained in the PANA-Bind-Request
message. The PANA-Bind-Request message MAY also contain a message. The PANA-Bind-Request message MAY also contain a
skipping to change at page 22, line 13 skipping to change at page 24, line 35
e.g., authorization rejected by a AAA proxy or authorization locally e.g., authorization rejected by a AAA proxy or authorization locally
rejected by a PAA. When this occurs, the PAA MUST send rejected by a PAA. When this occurs, the PAA MUST send
PANA-Bind-Request with a result code PANA_AUTHORIZATION_REJECTED. If PANA-Bind-Request with a result code PANA_AUTHORIZATION_REJECTED. If
a AAA-Key is established between PaC and PAA by the time when the a AAA-Key is established between PaC and PAA by the time when the
EAP-Success is generated by the EAP server (this is the case when the EAP-Success is generated by the EAP server (this is the case when the
EAP method provides protected success indication), the this PANA-Bind EAP method provides protected success indication), the this PANA-Bind
message exchange MUST be protected with a MAC AVP and with carrying a message exchange MUST be protected with a MAC AVP and with carrying a
Key-Id AVP. The AAA-Key and the PANA session MUST be deleted after Key-Id AVP. The AAA-Key and the PANA session MUST be deleted after
the PANA-Bind message exchange. the PANA-Bind message exchange.
PaC PAA Message(tseq,rseq)[AVPs]
-------------------------------------------------
(continued from discovery and initial handshake phase)
<----- PANA-Auth-Request(x+1,y)[EAP{Request}]
-----> PANA-Auth-Answer(y+1,x+1)[EAP{Response}]
.
.
<----- PANA-Auth-Request (x+2,y+1)[EAP{Request}]
-----> PANA-Auth-Answer (y+2,x+2)[EAP{Response}]
<----- PANA-Bind-Request(x+3,y+2)
[EAP{Success}, Device-Id, Lifetime, Protection-Cap.,
PPAC, MAC]
-----> PANA-Bind-Answer(y+3,x+3)[Device-Id, PPAC, MAC]
Figure 4: Example Sequence in Authentication Phase
4.4 Re-authentication 4.4 Re-authentication
There are two types of re-authentication supported by PANA. There are two types of re-authentication supported by PANA.
The first type of re-authentication is based on EAP by entering an The first type of re-authentication is based on EAP by entering an
authentication phase. In this case, some or all message exchanges authentication phase. In this case, some or all message exchanges
for discovery and initial handshake phase MAY be omitted in the for discovery and initial handshake phase MAY be omitted in the
following way. When a PaC wants to initiate EAP-based following way. When a PaC wants to initiate EAP-based
re-authentication, it sends a unicast PANA-PAA-Discovery message to re-authentication, it sends a unicast PANA-PAA-Discovery message to
the PAA. This message MUST contain a Session-Id AVP which is used the PAA. This message MUST contain a Session-Id AVP which is used
skipping to change at page 23, line 5 skipping to change at page 25, line 10
to start an authentication phase. If the PAA can not recognize the to start an authentication phase. If the PAA can not recognize the
session identifier, it proceeds with regular authentication by session identifier, it proceeds with regular authentication by
sending back PANA-Start-Request. When the PAA initiates EAP-based sending back PANA-Start-Request. When the PAA initiates EAP-based
re-authentication, it sends a PANA-Auth-Request message containing re-authentication, it sends a PANA-Auth-Request message containing
the session identifier for the PaC to enter an authentication phase. the session identifier for the PaC to enter an authentication phase.
PAA SHOULD initiate EAP authentication before the current session PAA SHOULD initiate EAP authentication before the current session
lifetime expires. In both cases, the tseq and rseq values are lifetime expires. In both cases, the tseq and rseq values are
inherited from the previous (re-)authentication. For any EAP-based inherited from the previous (re-)authentication. For any EAP-based
re-authentication, if there is an established PANA SA, re-authentication, if there is an established PANA SA,
PANA-Auth-Request and PANA-Auth-Answer messages MUST be protected by PANA-Auth-Request and PANA-Auth-Answer messages MUST be protected by
adding a MAC AVP to each message. adding a MAC AVP to each message. Any subsequent EAP-based
authentication MUST be performed with the same ISP and NAP that was
selected during the initial authentication. An example sequence for
the EAP-based re-authentication initiated by a PaC is shown in Figure
6.
PaC PAA Message
------------------------------------------------------
-----> PANA-PAA-Discover(0,0)[Session-Id]
<----- PANA-Auth-Request(p,q)[Session-Id, EAP, MAC]
-----> PANA-Auth-Answer(q+1,p)[Session-Id, EAP, MAC]
<----- PANA-Auth-Request(p+1,q+1)[Session-Id, EAP, MAC]
-----> PANA-Auth-Answer(q+2,p+1)[Session-Id, EAP, MAC]
<----- PANA-Bind-Request(p+2,q+2)
[Session-Id, EAP{Success}, Device-Id, Key-Id,
Lifetime, Protection-Cap., PPAC, MAC]
-----> PANA-Bind-Answer(q+3,p+2)
[Session-Id, Device-Id, Key-Id, PPAC, MAC]
Figure 6: Example Sequence for EAP-based re-authentication initiated
by PaC
The second type of re-authentication is based on a single protected The second type of re-authentication is based on a single protected
message exchange without entering the authentication phase. message exchange without entering the authentication phase.
PANA-Reauth-Request and PANA-Reauth-Answer messages are used for this PANA-Reauth-Request and PANA-Reauth-Answer messages are used for this
purpose. If there is an established PANA SA, both the PaC and the purpose. If there is an established PANA session, both the PaC and
PAA are allowed to send a PANA-Reauth-Request message to the the PAA are allowed to send a PANA-Reauth-Request message to the
communicating peer whenever it needs to make sure the availability of communicating peer whenever they need to make sure the availability
the PANA SA on the peer and expect the peer to return a PANA- of the session on the peer and expect the peer to return a
Reauth-Answer message. Both PANA-Reauth-Request/ PANA-Reauth-Answer PANA-Reauth-Answer message. Both PANA-Reauth-Request and
messages MUST be protected with a MAC AVP. PANA-Reauth-Answer messages MUST be protected with a MAC AVP when a
PANA SA is available.
Implementations MUST limit the rate of performing re-authentication Implementations MUST limit the rate of performing re-authentication
for both types of re-authentication. The PaC and the PAA can handle for both types of re-authentication. The PaC and the PAA can handle
rate limitation on their own, they don't have to perform any rate limitation on their own, they do not have to perform any
coordination with each other. There is no negotiation of timers for coordination with each other. There is no negotiation of timers for
this purpose. this purpose.
Figure 7 and Figure 8 show re-authentication procedures based on
PANA-Reauth exchange initiated by a PaC and a PAA, respectively.
PaC PAA Message(tseq,rseq)[AVPs] PaC PAA Message(tseq,rseq)[AVPs]
------------------------------------------------------ ------------------------------------------------------
-----> PANA-Reauth-Request(q,p)[MAC] -----> PANA-Reauth-Request(q,p)[Session-Id, MAC]
<----- PANA-Reauth-Answer(p+1,q)[MAC] <----- PANA-Reauth-Answer(p+1,q)[Session-Id, MAC]
Figure 5: Example Sequence for PaC-initiated second type Figure 7: Example Sequence for PaC-initiated second type
Re-authentication Re-authentication
PaC PAA Message(tseq,rseq)[AVPs] PaC PAA Message(tseq,rseq)[AVPs]
------------------------------------------------------ ------------------------------------------------------
<----- PANA-Reauth-Request(p,q)[MAC] <----- PANA-Reauth-Request(p,q)[Session-Id, MAC]
-----> PANA-Reauth-Answer(q+1,p)[MAC] -----> PANA-Reauth-Answer(q+1,p)[Session-Id, MAC]
Figure 6: Example Sequence for PAA-initiated second type Figure 8: Example Sequence for PAA-initiated second type
Re-authentication Re-authentication
4.5 Termination Phase 4.5 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 PaC (i.e., disconnect indication) or from PAA initiated either from PaC (i.e., disconnect indication) or from PAA
(i.e., session revocation). The PANA-Termination-Request and the (i.e., session revocation). The PANA-Termination-Request and the
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.
skipping to change at page 24, line 4 skipping to change at page 26, line 30
4.5 Termination Phase 4.5 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 PaC (i.e., disconnect indication) or from PAA initiated either from PaC (i.e., disconnect indication) or from PAA
(i.e., session revocation). The PANA-Termination-Request and the (i.e., session revocation). The PANA-Termination-Request and the
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 established between the PaC and When there is an established PANA SA established between the PaC and
the PAA, all messages exchanged during the termination phase MUST be the PAA, all messages exchanged during the termination phase MUST be
protected with a MAC AVP. When the sender of the protected with a MAC AVP. When the sender of the
PANA-Termination-Request receives a valid acknowledgment, all states PANA-Termination-Request receives a valid acknowledgment, all states
maintained for the PANA session MUST be deleted immediately. maintained for the PANA session MUST be deleted immediately.
PaC PAA Message(tseq,rseq)[AVPs] PaC PAA Message(tseq,rseq)[AVPs]
------------------------------------------------------ ------------------------------------------------------
-----> PANA-Termination-Request(q,p)[MAC] -----> PANA-Termination-Request(q,p)[Session-Id, MAC]
<----- PANA-Termination-Answer(p+1,q)[MAC] <----- PANA-Termination-Answer(p+1,q)[Session-Id, MAC]
Figure 7: Example Sequence for Session Termination
4.6 Illustration of a Complete Message Sequence
A complete PANA message sequence is illustrated in Figure 8. The
example assumes the following scenario:
o PaC multicasts PANA-PAA-Discover message
o The ISNs used by the PAA and the PaC are x and y, respectively.
o A single EAP sequence is used in authentication phase.
o An EAP authentication method with a single round trip is used in
the EAP sequence.
o The EAP authentication method derives keys. The PANA SA is
established based on the unique and fresh session key provided by
the EAP method.
o After PANA SA is established, all messages are integrity and
replay protected with the MAC AVP.
o Re-authentication based on the PANA-Reauth-Request/ PANA-Reauth-
Answer exchange is performed.
o The PANA session is terminated as a result of the PANA-
Termination-Request indication from the PaC.
PaC PAA Message(tseq,rseq)[AVPs]
-----------------------------------------------------
// Discovery and initial handshake phase
-----> PANA-PAA-Discover (0,0)
<----- PANA-Start-Request (x,0)[Cookie]
-----> PANA-Start-Request-Answer (y,x)[Cookie]
// Authentication phase
<----- PANA-Auth-Request(x+1,y)[EAP]
-----> PANA-Auth-Answer(y+1,x+1)[EAP]
<----- PANA-Auth-Request(x+2,y+1)[EAP]
-----> PANA-Auth-Answer(y+2,x+2)[EAP]
<----- PANA-Bind-Request(x+3,y+2)
[EAP{Success}, Device-Id, Lifetime, Protection-Cap., MAC]
-----> PANA-Bind-Answer(y+3,x+3)[Device-Id, MAC]
// Re-authentication
<----- PANA-Reauth-Request (x+4,y+3)[MAC]
-----> PANA-Reauth-Answer (y+4,x+4)[MAC]
// Termination phase Figure 9: Example Sequence for Session Termination
-----> PANA-Termination-Request(y+5,x+4)[MAC]
<----- PANA-Termination-Answer (x+5,y+5)[MAC]
Figure 8: A Complete Message Sequence 4.6 Example Sequence for NAP and ISP Separate Authentications
Another PANA message sequence is illustrated in Figure 9. The example A PANA message sequence where NAP and ISP separate authentications
assumes the following scenario: occur is illustrated in Figure 10. The example assumes the following
scenario:
o PaC multicasts PANA-PAA-Discover message o The PaC multicasts PANA-PAA-Discover message.
o The ISNs used by the PAA and the PaC are x and y, respectively. o The ISNs used by the PAA and the PaC are x and y, respectively.
o PAA offers NAP and ISP separate authentication, as well as a o The PAA offers NAP and ISP separate authentications, as well as a
choice of ISP from "ISP1" and "ISP2". PaC accepts the offer from choice of ISP from "ISP1" and "ISP2". The PaC accepts the offer
PAA, with choosing "ISP1" as the ISP. from PAA, with choosing "ISP1" as the ISP.
o An EAP sequence for NAP authentication and an EAP sequence for ISP o An EAP sequence for NAP authentication and an EAP sequence for ISP
authentication is performed in this order in authentication phase. authentication is performed in this order in authentication phase.
o An EAP authentication method with a single round trip is used in o An EAP authentication method with a single round trip is used in
the EAP sequence. each EAP sequence.
o The EAP authentication methods derive keys. Once the two EAP o Two AAA-Keys are derived from the EAP authentication methods,
authenticatioins are successful, the PANA_MAC_KEY is derived from i.e., AAA-Key1 and AAA-Key2. The PANA_MAC_KEY is first derived
the two AAA-Keys. from the AAA-Key1 upon the completion of the first EAP, and then
it is updated so that it is derived from both AAA-Key1 and
AAA-Key2 upon the completion of the second EAP.
o After PANA SA is established, all messages are integrity and o After a PANA SA is established, all messages are integrity and
replay protected with the MAC AVP. replay protected with MAC AVPs.
o Re-authentication based on the PANA-Reauth-Request/ PANA-Reauth- o Re-authentication based on the PANA-Reauth exchange is performed.
Answer exchange is performed.
o Re-authentication and termination phase are not shown. o Re-authentication and termination phase are not shown.
o Session-Id AVP is not shown.
PaC PAA Message(tseq,rseq)[AVPs] PaC PAA Message(tseq,rseq)[AVPs]
----------------------------------------------------- -----------------------------------------------------
// Discovery and initial handshake phase // Discovery and initial handshake phase
-----> PANA-PAA-Discover (0,0) -----> PANA-PAA-Discover (0,0)
<----- PANA-Start-Request (x,0) // S-flag set <----- PANA-Start-Request (x,0) // S-flag set
[Cookie, ISP-Information("ISP1"), [Nonce, Cookie, ISP-Information("ISP1"),
ISP-Information("ISP2"), ISP-Information("ISP2"),
NAP-Information("MyNAP")] NAP-Information("MyNAP")]
-----> PANA-Start-Request-Answer (y,x) // S-flag set -----> PANA-Start-Request-Answer (y,x) // S-flag set
[Cookie, ISP-Information("ISP1")] // PaC chooses "ISP1" [Nonce, Cookie, ISP-Information("ISP1")]// PaC chooses "ISP1"
// Authentication phase // Authentication phase
<----- PANA-Auth-Request(x+1,y)[EAP] // NAP authentication <----- PANA-Auth-Request(x+1,y)[EAP] // NAP authentication
// S- and N-flags set // S- and N-flags set
-----> PANA-Auth-Answer(y+1,x+1)[EAP] // S- and N-flags set -----> PANA-Auth-Answer(y+1,x+1)[EAP] // S- and N-flags set
<----- PANA-Auth-Request(x+2,y+1)[EAP] // S- and N-flags set <----- PANA-Auth-Request(x+2,y+1)[EAP] // S- and N-flags set
-----> PANA-Auth-Answer(y+2,x+2)[EAP] // S- and N-flags set -----> PANA-Auth-Answer(y+2,x+2)[EAP] // S- and N-flags set
<----- PANA-FirstAuth-End-Request(x+3,y+2) // S- and N-flags set <----- PANA-FirstAuth-End-Request(x+3,y+2) // S- and N-flags set
[EAP{Success}, Key-Id, MAC] [EAP{Success}, Key-Id, MAC]
-----> PANA-FirstAuth-End-Answer(y+3,x+3) // S- and N-flags set -----> PANA-FirstAuth-End-Answer(y+3,x+3) // S- and N-flags set
skipping to change at page 26, line 45 skipping to change at page 28, line 37
// S-flag set // S-flag set
-----> PANA-Auth-Answer(y+4,x+4)[EAP, MAC] // S-flag set -----> PANA-Auth-Answer(y+4,x+4)[EAP, MAC] // S-flag set
<----- PANA-Auth-Request(x+4,y+5)[EAP, MAC]// S-flag set <----- PANA-Auth-Request(x+4,y+5)[EAP, MAC]// S-flag set
-----> PANA-Auth-Answer(y+5,x+5)[EAP, MAC] // S-flag set -----> PANA-Auth-Answer(y+5,x+5)[EAP, MAC] // S-flag set
<----- PANA-Bind-Request(x+5,y+6) // S-flag set <----- PANA-Bind-Request(x+5,y+6) // S-flag set
[EAP{Success}, Device-Id, Key-Id, [EAP{Success}, Device-Id, Key-Id,
Lifetime, Protection-Cap., PPAC, MAC] Lifetime, Protection-Cap., PPAC, MAC]
-----> PANA-Bind-Answer(y+6,x+5) // S-flag set -----> PANA-Bind-Answer(y+6,x+5) // S-flag set
[Device-Id, Key-Id, PPAC, MAC] [Device-Id, Key-Id, PPAC, MAC]
Figure 9: A Complete Message Sequence for NAP and ISP Separate Figure 10: A Complete Message Sequence for NAP and ISP Separate
Authentications Authentications
4.7 Device ID Choice 4.7 Responding to Duplicate Requests
The device identifiers used in the context of PANA can be an IP Since PANA is designed over UDP, an answer as well as a request can
address, a MAC address, or an identifier that is not carried on data be lost. In order to provide robustness against possible loss of
synchronization between a PaC and a PAA, the responder MAY send a
duplicate answer to a request that it had just answered. The only
difference between two consecutive duplicate requests are the
sequence numbers and the content of MAC AVP (when present).
o When a PaC receives a duplicate PANA-Start-Request message for
which it has already answered, it SHOULD send a duplicate
PANA-Start-Answer message until it receives a valid
PANA-Auth-Request message.
o When a PaC receives a duplicate PANA-FirstAuth-End-Request message
for which it has already answered, it SHOULD send a duplicate
PANA-FirstAuth-End-Answer message until it receives a valid
PANA-Auth-Request message for the second EAP authentication.
o When a PaC receives a duplicate PANA-Bind-Request message for
which it has already answered, it SHOULD send a duplicate
PANA-Bind-Answer message until it receives some hint provided
outside the PANA protocol (e.g., receipt of a secure association
protocol message from an EP or receipt of data traffic) indicating
that the PAA has received a PANA-Bind-Answer message.
o When a PaC or a PAA receives a duplicate PANA-Termination-Request
message for which it has already answered, it MAY send a duplicate
PANA-Termination-Answer message in accordance with the timers
described in Section 7.
4.8 Device ID Choice
The device identifier used in the context of PANA can be an IP
address, a MAC address, or an identifier that is not carried in data
packets but has local significance in identifying a connected host packets but has local significance in identifying a connected host
(e.g., circuit ID). The last type of identifiers are commonly used (e.g., circuit ID). The last type of identifiers are commonly used
in physically secured point-to-point links where MAC addresses are in physically secured point-to-point links where MAC addresses are
not available. not available.
It is assumed that PAA knows the link type and the security It is assumed that the PAA knows the link type and the security
mechanisms being provided or required on the access network (e.g., mechanisms being provided or required on the access network (e.g.,
based on physical security, link-layer ciphers enabled before or based on physical security, link-layer ciphers enabled before or
after PANA, or IPsec). Based on that information, the PAA can decide after PANA, or IPsec). Based on that information, the PAA can decide
what type of device ID will be used when running PANA with the what type of device ID will be used when running PANA with the
client. When IPsec-based mechanism [I-D.ietf-pana-ipsec] is the client. When IPsec-based security [I-D.ietf-pana-ipsec] is the
choice of access control, PAA SHOULD provide an IP address as device choice of access control, the PAA SHOULD provide an IP address as
ID, and expect the PaC to provide its IP address in return. In case device ID, and expect the PaC to provide its IP address in return.
IPsec is not used, MAC addresses are used as device IDs when In case IPsec is not used, MAC addresses are used as device IDs when
available. If non-IPsec access control is enabled, and a MAC address available. If non-IPsec access control is enabled, and a MAC address
is not available, device ID exchange does not occur within PANA. is not available, device ID exchange does not occur within PANA.
Instead, peers rely on lower-layers to provide locally-significant Instead, peers rely on lower-layers to provide locally-significant
identifiers along with received PANA packets. identifiers along with received PANA packets.
4.8 Session Lifetime 4.9 Updating PaC' Address
A PaC's IP address can change in certain situations. For example,
the PANA framework [I-D.ietf-pana-framework] describes a case in
which a PaC replaces a pre-PANA address (PRPA) with a post-PANA
address (POPA), and the PaC and PAA create host routes to each other
in order to maintain on-link communication based on the POPA. The
PAA needs to be notified about the change of PaC address.
After the PaC has changed its address, it MUST send a
PANA-Update-Request message to the PAA. The message MUST carry the
new PaC address in an IP-Address AVP. If the address contained in
the request is invalid, the PAA MUST send a PANA-Error message with
the result code PANA_INVALID_IP_ADDRESS. Otherwise, the PAA MUST
update the PANA session with the new PaC address and return a
PANA-Update-Answer message. If there is an established PANA SA, both
PANA-Update-Request and PANA-Update-Answer messages MUST be protected
with a MAC AVP.
4.10 Session Lifetime
The authentication phase determines the PANA session lifetime when The authentication phase determines the PANA session lifetime when
the network access authorization succeeds. The Session-Lifetime AVP the network access authorization succeeds. The Session-Lifetime AVP
MAY be optionally included in the PANA-Bind-Request message to inform MAY be optionally included in the PANA-Bind-Request message to inform
PaC about the valid lifetime of the PANA session. It MUST be ignored PaC about the valid lifetime of the PANA session. It MUST be ignored
when included in other PANA messages. When there are multiple EAP when included in other PANA messages. When there are multiple EAP
authentication taking place, this AVP SHOULD be included after the authentication taking place, this AVP SHOULD be included after the
final authentication. final authentication.
The lifetime is a non-negotiable parameter that can be used by PaC to The lifetime is a non-negotiable parameter that can be used by PaC to
skipping to change at page 28, line 16 skipping to change at page 31, line 7
the peers. the peers.
When separate EAP authentications are performed for ISP and NAP in a When separate EAP authentications are performed for ISP and NAP in a
single PANA session, it is possible that different authorization single PANA session, it is possible that different authorization
lifetime values are associated with the two authentications. In this lifetime values are associated with the two authentications. In this
case, the smaller authorization lifetime value MUST be used for case, the smaller authorization lifetime value MUST be used for
calculating the PANA Session-Lifetime value. As a result, when calculating the PANA Session-Lifetime value. As a result, when
EAP-based re-authentication occurs, both NAP and ISP authentications EAP-based re-authentication occurs, both NAP and ISP authentications
will be performed in the same re-authentication procedure. will be performed in the same re-authentication procedure.
4.9 Mobility Handling 4.11 Retransmission of Duplicate Answers
A mobile PaC's AAA performance can be enhanced by deploying a Since PANA is designed over UDP, an answer as well as a request can
context-transfer-based mechanism, where some session attributes are be lost. In order to improve robustness against possible loss of
transferred from the previous PAA to the current one in order to synchronization between a PaC and a PAA, the responder of a request
avoid performing a full EAP authentication (reactive approach). MAY send a duplicate answer to a duplicate request for which already
Additional mechanisms that are based on the proactive AAA state answered (as well as a fresh answer to a new request if any). In
establishment at one or more candidate PAAs may be developed in the PANA, a duplicate PANA-Start-Request or PANA-Start-Answer message has
future [I-D.irtf-aaaarch-handoff]. The details of a the same contents as the original request or answer, respectively. A
duplicate request other than PANA-Start-Request has the same contents
as the original request except for the transmission sequence number
and a MAC AVP (if any). Also, a duplicate answer other than
PANA-Start-Answer has the same contents as the original answer except
for the transmission and receiving sequence numbers and a MAC AVP (if
any). Retransmission of a duplicate answer in response to a
duplicate request occurs in the following ways.
o When a PaC receives a duplicate PANA-Start-Request message for
which it has already answered, it MAY send a duplicate
PANA-Start-Answer message until it receives a valid
PANA-Auth-Request message.
o When a PaC receives a duplicate PANA-FirstAuth-End-Request message
for which it has already answered, it MAY send a duplicate
PANA-FirstAuth-End-Answer message until it receives a valid
PANA-Auth-Request message for the second EAP authentication.
o When a PaC receives a duplicate PANA-Bind-Request message for
which it has already answered, it MAY send a duplicate
PANA-Bind-Answer message until it receives some hint provided
outside the PANA protocol (e.g., receipt of a secure association
protocol message from an EP or receipt of data traffic) indicating
that the PAA has received a PANA-Bind-Answer message.
o When a PaC or a PAA receives a duplicate PANA-Termination-Request
message for which it has already answered, it MAY send a duplicate
PANA-Termination-Answer message for a while before deleting the
PANA session. The period to send duplicate
PANA-Termination-Answer messages may be a configurable parameter.
4.12 Mobility Handling
A mobile PaC's network access authentication performance can be
enhanced by deploying a context-transfer-based mechanism, where some
session attributes are transferred from the previous PAA to the new
one in order to avoid performing a full EAP authentication (reactive
approach). Additional mechanisms that are based on the proactive AAA
state establishment at one or more candidate PAAs may be developed in
the future [I-D.irtf-aaaarch-handoff]. The details of a
context-transfer-based mechanism is provided in this section. context-transfer-based mechanism is provided in this section.
Upon changing its point of attachment, a PaC that wants to quickly Upon changing its point of attachment, a PaC that wants to quickly
resume its ongoing PANA session without running EAP MAY send its resume its ongoing PANA session without running EAP MAY send its
unexpired PANA session identifier in its PANA-Start-Answer message. unexpired PANA session identifier in its PANA-Start-Answer message.
Along with the Session-Id AVP, MAC and Nonce AVPs MUST be included in Along with the Session-Id AVP, a MAC AVP MUST be included in this
this message. Nonce AVP carries a randomly chosen value (PaC_Nonce), message. The MAC AVP is computed by using the PANA_MAC_KEY shared
and MAC AVP is computed by using the PANA_MAC_Key shared between the between the PaC and its previous PAA that has an unexpired PANA
PaC and its previous PAA that has an unexpired PANA session with the session with the PaC. This action signals PaC's desire to perform
PaC. This action signals PaC's desire to perform the mobility the mobility optimization. In the absence of a Session-Id AVP in
optimization. In the absence of Session-Id AVP in this message, PANA this message, the PANA session takes its usual course (i.e.,
session takes its usual course (i.e., EAP-based authentication is EAP-based authentication is performed).
performed).
If PAA receives a session identifier in the PANA-Start-Answer If a PAA receives a session identifier in the PANA-Start-Answer
message, and it is configured to enable this optimization, it SHOULD message, and it is configured to enable this optimization, it SHOULD
retrieve the PANA session attributes from the previous PAA. Current retrieve the PANA session attributes from the previous PAA. Current
PAA determines the identity of the previous PAA by looking at the PAA determines the identity of the previous PAA by looking at the
DiameterIdentity part of the PANA session identifier. The MAC AVP DiameterIdentity part of the PANA session identifier. The MAC AVP
can only be verified by the previous PAA, therefore a copy of the can only be verified by the previous PAA, therefore a copy of the
PANA message SHOULD be provided to the previous PAA. The mechanism PANA message SHOULD be provided to the previous PAA. The mechanism
required to send a copy of the PANA-Start-Answer message from current required to send a copy of the PANA-Start-Answer message from current
PAA to the previous PAA, and retrieve the session attributes is PAA to the previous PAA, and retrieve the session attributes is
outside the scope of PANA protocol. Seamoby Context Transfer outside the scope of PANA protocol. Seamoby Context Transfer
Protocol [I-D.ietf-seamoby-ctp] might be useful for this purpose. Protocol [I-D.ietf-seamoby-ctp] might be useful for this purpose.
skipping to change at page 29, line 20 skipping to change at page 33, line 4
In case the current PAA can retrieve the on-going PANA session In case the current PAA can retrieve the on-going PANA session
attributes from the previous PAA, the PANA session continues with a attributes from the previous PAA, the PANA session continues with a
PANA-Bind exchange. PANA-Bind exchange.
As part of the context transfer, an intermediate AAA-Key material is As part of the context transfer, an intermediate AAA-Key material is
provided by the previous PAA to the current PAA. provided by the previous PAA to the current PAA.
AAA-Key-int = The first N bits of AAA-Key-int = The first N bits of
HMAC-SHA1(AAA-Key, DiameterIdentity | Session-ID) HMAC-SHA1(AAA-Key, DiameterIdentity | Session-ID)
In case there are two AAA-Keys generated from a NAP-ISP
authentication, the AAA-Key-int computation is:
AAA-Key-int = The first N bits of
HMAC-SHA1(AAA-Key1 | AAA-Key2, DiameterIdentity |
Session-ID)
The value of N depends on the integrity protection algorithm in use, The value of N depends on the integrity protection algorithm in use,
i.e., N=160 for HMAC-SHA1. DiameterIdentity is the identifier of the i.e., N=160 for HMAC-SHA1. DiameterIdentity is the identifier of the
current PAA. Session-ID is the identifier of the PaC's PANA session current PAA. Session-ID is the identifier of the PaC's PANA session
with the previous PAA. with the previous PAA.
The current PAA and PaC compute the new AAA-Key by using the nonce The current PAA and PaC compute the new AAA-Key by using the nonce
values and the AAA-Key-int. PAA_Nonce is the randomly chosen value values and the AAA-Key-int.
that MUST be carried in a Nonce AVP in the PANA-Bind-Request message.
AAA-Key-new = The first N bits of AAA-Key-new = The first N bits of
HMAC-SHA1(AAA-Key-int, PaC_nonce | PAA_nonce) HMAC-SHA1(AAA-Key-int, PaC_nonce | PAA_nonce)
New PANA_MAC_Key is computed based on the algorithm described in New PANA_MAC_KEY is computed based on the algorithm described in
Section 4.1.5, by using the new AAA-Key and the new Session-ID Section 4.1.5, by using the new AAA-Key and the new Session-ID
assigned by the current PAA. The MAC AVP contained in the assigned by the current PAA. The MAC AVP contained in the
PANA-Bind-Request and PANA-Bind-Answer messages MUST be generated and PANA-Bind-Request and PANA-Bind-Answer messages MUST be generated and
verified by using the new PANA_MAC_Key. The Session-ID AVP MUST verified by using the new PANA_MAC_KEY. The Session-ID AVP MUST
include a new session identifier assigned by the current PAA. A new include a new session identifier assigned by the current PAA. A new
PANA session is created upon successful completion of this exchange. PANA session is created upon successful completion of this exchange.
Note that correct operation of this optimization relies on many Note that correct operation of this optimization relies on many
factors, including applicability of authorization state from one factors, including applicability of authorization state from one
network attachment to another. [I-D.ietf-eap-keying] identifies this network attachment to another. [I-D.ietf-eap-keying] identifies this
operation as "fast handoff" and provides deployment considerations. operation as "fast handoff" and provides deployment considerations.
Operators are recommended to take those guidelines into account when Operators are recommended to take those guidelines into account when
using this optimization in their networks. using this optimization in their networks.
4.10 Support for Separate EP 4.13 Support for Separate EP
PANA allows PAA and EP to be separate entities. In this case, if PANA allows the PAA and the EP to be separate entities. In this
data traffic protection needs to be initiated after successful PANA case, if data traffic protection needs to be initiated after
authentication phase, PaC needs to know the device identifier of successful PANA authentication phase, the PaC needs to know the
EP(s) so that it is able to establish a security association with device identifier of EP(s) so that it is able to establish a security
each EP to protect data traffic. association with each EP to protect data traffic.
To this end, when a Protection-Capability AVP with either To this end, when a Protection-Capability AVP with either
L2_PROTECTION or IPSEC_PROTECTION in the AVP payload is carried in a L2_PROTECTION or IPSEC_PROTECTION in the AVP payload is carried in a
PANA-Bind-Request message and if there is an EP that has a different PANA-Bind-Request message and if there is an EP that has a different
device identifier than that of the PAA, one or more EP-Device-Id AVPs device identifier than that of the PAA, one or more EP-Device-Id AVPs
MUST also be carried in the PANA-Bind-Request message. In this case, MUST also be carried in the PANA-Bind-Request message. In this case,
if one EP has the same device identifier as the PAA, an EP-Device-Id if one EP has the same device identifier as the PAA, an EP-Device-Id
AVP that contains the device identifier of the EP (i.e., the PAA) AVP that contains the device identifier of the EP (i.e., the PAA)
MUST also be included in the PANA-Bind-Request. MUST also be included in the PANA-Bind-Request.
Aside from provisioning EP, the same PAA-to-EP protocol MAY be used Aside from provisioning the EP, the same PAA-to-EP protocol MAY be
for triggering the PAA upon detecting the need to authenticate a new used for triggering the PAA upon detecting the need to authenticate a
client. new client.
5. PANA Security Association Establishment 5. PANA Security Association Establishment
When PANA is used over an already established secure channel, such as When PANA is used over an already established secure channel, such as
physically secured wires or ciphered link-layers, we can reasonably physically secured wires or ciphered link-layers, we can reasonably
assume that man-in-the-middle attack or service theft is not possible assume that man-in-the-middle attacks or service theft is not
[I-D.ietf-pana-threats-eval]. possible. See [I-D.ietf-pana-threats-eval] for a detailed
discussion.
Anywhere else where there is no secure channel prior to PANA, the In environments where no secure channel prior to the PANA execution
protocol needs to protect itself against such attacks. The device is available, PANA needs to protect itself against a number of
identifier that is used during the authentication needs to be attacks. The device identifier that is used during the
verified at the end of the authentication to prevent service theft authentication needs to be verified at the end of the authentication
and DoS attacks. Additionally, a free loader should be prevented to prevent service theft and DoS attacks. Additionally, a free
from spoofing data packets by using the device identifier of an loader should be prevented from spoofing data packets by using the
already authorized legitimate client. Both of these requirements device identifier of an already authorized legitimate client. Both
necessitate generation of a security association between the PaC and of these requirements necessitate generation of a security
the PAA at the end of the authentication. This can only be done when association between the PaC and the PAA at the end of the
the authentication method used can generate cryptographic keys. Use authentication. This can only be done when the authentication method
of secret keys can prevent attacks which would otherwise be very easy used can generate session keys. Use of session keys can prevent
to launch by eavesdropping on and spoofing traffic over an insecure attacks which would otherwise be very easy to launch by eavesdropping
link. on and spoofing traffic over an insecure link.
PANA relies on EAP and the EAP methods to provide a session key in The EAP method provided session key is transported to the PAA (if
order to establish a PANA security association. An example of such a necessary) and is subsequently input to the creation of the PANA SA.
method is EAP-TLS [RFC2716], whereas EAP-MD5 Applying the PANA SA to the messages exchanged during the final PANA
[I-D.ietf-eap-rfc2284bis] is an example of a method that cannot handshake provides implicit key confirmation to both the PAA and the
create such keying material. The choice of EAP method becomes PaC. Implicit key confirmation shows both, the PaC and the PAA, that
important, as discussed in the next section. they possess the unique and fresh session key.
This keying material is already used within PANA during the final Protecting the final PANA handshake also ensures that the device
handshake. This handshake ensures that the device identifier that is identifier (and other information) cannot be modified by an
bound to the PaC at the end of the authentication process is not adversary. Further usage of the keying material is discussed in
coming from a man-in-the-middle, but from the legitimate PaC.
Knowledge of the same keying material on both PaC and the PAA helps
prove this. The other use of the keying material is discussed in
[I-D.ietf-pana-framework]. [I-D.ietf-pana-framework].
6. Message Formats 6. Message Formats
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
The Hop Limit (or TTL) field of the IP header MUST be set to 255. The Hop Limit (or TTL) field of the IP header MUST be set to 255.
When a PANA-PAA-Discover message is multicast, IP destination address When a PANA-PAA-Discover message is multicast, IP destination address
skipping to change at page 35, line 47 skipping to change at page 38, line 47
AVP Length AVP Length
The AVP Length field is three octets, and indicates the number of The AVP Length field is three octets, and indicates the number of
octets in this AVP including the AVP Code, AVP Length, AVP Flags, octets in this AVP including the AVP Code, AVP Length, AVP Flags,
and the AVP data and the AVP data
Vendor-Id Vendor-Id
The Vendor-Id field is present if the 'V' bit is set in the AVP The Vendor-Id field is present if the 'V' bit is set in the AVP
Flags field. The optional four-octet Vendor-Id field contains the Flags field. The optional four-octet Vendor-Id field contains the
uniquely assigned id value, encoded in network byte order. Any IANA assigned "SMI Network Management Private Enterprise Codes"
vendor wishing to implement a vendor-specific PANA AVP MUST use [ianaweb] value, encoded in network byte order. Any vendor
their own Vendor-Id along with their privately managed AVP address wishing to implement a vendor-specific PANA AVP MUST use their own
space, guaranteeing that they will not collide with any other Vendor-Id along with their privately managed AVP address space,
vendor's vendor-specific AVP(s), nor with future IETF guaranteeing that they will not collide with any other vendor's
applications. vendor-specific AVP(s), nor with future IETF applications.
Data Data
The Data field is zero or more octets and contains information The Data field is zero or more octets and contains information
specific to the Attribute. The format and length of the Data specific to the Attribute. The format and length of the Data
field is determined by the AVP Code and AVP Length fields. field is determined by the AVP Code and AVP Length fields.
6.4 PANA Messages 6.4 PANA Messages
Figure 10 lists all PANA messages defined in this document Figure 11 lists all PANA messages defined in this document
Message Direction: PaC---PAA Message Direction: PaC---PAA
---------------------------------------- ----------------------------------------
PANA-PAA-Discover --------> PANA-PAA-Discover -------->
PANA-Start-Request <-------- PANA-Start-Request <--------
PANA-Start-Answer --------> PANA-Start-Answer -------->
PANA-Auth-Request <-------- PANA-Auth-Request <--------
PANA-Auth-Answer --------> PANA-Auth-Answer -------->
skipping to change at page 36, line 38 skipping to change at page 39, line 40
PANA-Bind-Request <-------- PANA-Bind-Request <--------
PANA-Bind-Answer --------> PANA-Bind-Answer -------->
PANA-Reauth-Request <-------> PANA-Reauth-Request <------->
PANA-Reauth-Answer <-------> PANA-Reauth-Answer <------->
PANA-Termination-Request <-------> PANA-Termination-Request <------->
PANA-Termination-Answer <-------> PANA-Termination-Answer <------->
PANA-Update-Request -------->
PANA-Update-Answer <--------
PANA-Error <-------> PANA-Error <------->
Figure 10: PANA Message Overview Figure 11: PANA Message Overview
6.4.1 Message Specifications 6.4.1 Message Specifications
Every PANA message MUST include a corresponding ABNF [RFC2234] Every PANA message MUST include a corresponding ABNF [RFC2234]
specification found in [RFC3588]. Note that PANA messages have a specification found in [RFC3588]. Note that PANA messages have a
different header format compared to Diameter. different header format compared to Diameter.
Example: Example:
message ::= < PANA-Header: <Message type>, [REQ] [SEP] > message ::= < PANA-Header: <Message type>, [REQ] [SEP] >
skipping to change at page 37, line 25 skipping to change at page 40, line 29
0*1 < Session-Id > 0*1 < Session-Id >
* [ AVP ] * [ AVP ]
6.4.3 PANA-Start-Request (PSR) 6.4.3 PANA-Start-Request (PSR)
PANA-Start-Request (PSR) is sent by the PAA to the PaC. The PAA sets PANA-Start-Request (PSR) is sent by the PAA to the PaC. The PAA sets
the transmission sequence number to an initial random value. The the transmission sequence number to an initial random value. The
received sequence number is set to zero (0). received sequence number is set to zero (0).
PANA-Start-Request ::= < PANA-Header: 2, REQ [SEP] > PANA-Start-Request ::= < PANA-Header: 2, REQ [SEP] >
{ Nonce }
[ Cookie ] [ Cookie ]
[ EAP-Payload ] [ EAP-Payload ]
[ NAP-Information ] [ NAP-Information ]
* [ ISP-Information ] * [ ISP-Information ]
[ Protection-Capability] [ Protection-Capability]
[ PPAC ] [ PPAC ]
* [ AVP ] * [ AVP ]
6.4.4 PANA-Start-Answer (PSA) 6.4.4 PANA-Start-Answer (PSA)
PANA-Start-Answer (PSA) is sent by the PaC to the PAA in response to PANA-Start-Answer (PSA) is sent by the PaC to the PAA in response to
a PANA-Start-Request message. The PANA_start message transmission a PANA-Start-Request message. The PANA_start message transmission
sequence number field is copied to the received sequence number sequence number field is copied to the received sequence number
field. The transmission sequence number is set to initial random field. The transmission sequence number is set to initial random
value. value.
PANA-Start-Answer ::= < PANA-Header: 2 [SEP] > PANA-Start-Answer ::= < PANA-Header: 2 [SEP] >
{ Nonce }
[ Session-Id ] [ Session-Id ]
[ Cookie ] [ Cookie ]
[ Nonce ]
[ EAP-Payload ] [ EAP-Payload ]
[ ISP-Information ] [ ISP-Information ]
* [ AVP ] * [ AVP ]
0*1 < MAC >
6.4.5 PANA-Auth-Request (PAR) 6.4.5 PANA-Auth-Request (PAR)
PANA-Auth-Request (PAR) is sent by the PAA to the PaC. PANA-Auth-Request (PAR) is sent by the PAA to the PaC.
PANA-Auth-Request ::= < PANA-Header: 3, REQ [SEP] [NAP] > PANA-Auth-Request ::= < PANA-Header: 3, REQ [SEP] [NAP] >
< Session-Id > < Session-Id >
< EAP-Payload > < EAP-Payload >
* [ AVP ] * [ AVP ]
0*1 < MAC > 0*1 < MAC >
skipping to change at page 38, line 42 skipping to change at page 41, line 47
PANA-Bind-Request ::= < PANA-Header: 4, REQ [SEP] [NAP] > PANA-Bind-Request ::= < PANA-Header: 4, REQ [SEP] [NAP] >
< Session-Id > < Session-Id >
{ Result-Code } { Result-Code }
{ PPAC } { PPAC }
[ EAP-Payload ] [ EAP-Payload ]
[ Device-Id ] [ Device-Id ]
[ Session-Lifetime ] [ Session-Lifetime ]
[ Protection-Capability ] [ Protection-Capability ]
[ Key-Id ] [ Key-Id ]
[ Nonce ]
* [ EP-Device-Id ] * [ EP-Device-Id ]
* [ AVP ] * [ AVP ]
0*1 < MAC > 0*1 < MAC >
6.4.8 PANA-Bind-Answer (PBA) 6.4.8 PANA-Bind-Answer (PBA)
PANA-Bind-Answer (PBA) is sent by the PaC to the PAA in response to a PANA-Bind-Answer (PBA) is sent by the PaC to the PAA in response to a
PANA-Result-Request message. PANA-Result-Request message.
PANA-Bind-Answer ::= < PANA-Header: 4 [,SEP] [NAP] > PANA-Bind-Answer ::= < PANA-Header: 4 [,SEP] [NAP] >
skipping to change at page 39, line 20 skipping to change at page 42, line 25
[ Key-Id ] [ Key-Id ]
* [ AVP ] * [ AVP ]
0*1 < MAC > 0*1 < MAC >
6.4.9 PANA-Reauth-Request (PRAR) 6.4.9 PANA-Reauth-Request (PRAR)
PANA-Reauth-Request (PRAR) is either sent by the PaC or the PAA. PANA-Reauth-Request (PRAR) is either sent by the PaC or the PAA.
PANA-Reauth-Request ::= < PANA-Header: 5, REQ > PANA-Reauth-Request ::= < PANA-Header: 5, REQ >
< Session-Id > < Session-Id >
[ Device-Id ]
* [ AVP ] * [ AVP ]
0*1 < MAC > 0*1 < MAC >
6.4.10 PANA-Reauth-Answer (PRAA) 6.4.10 PANA-Reauth-Answer (PRAA)
PANA-Reauth-Answer (PRAA) is sent in response to a PANA-Reauth-Answer (PRAA) is sent in response to a
PANA-Reauth-Request. PANA-Reauth-Request.
PANA-Reauth-Answer ::= < PANA-Header: 5 > PANA-Reauth-Answer ::= < PANA-Header: 5 >
< Session-Id > < Session-Id >
[ Device-Id ]
* [ AVP ] * [ AVP ]
0*1 < MAC > 0*1 < MAC >
6.4.11 PANA-Termination-Request (PTR) 6.4.11 PANA-Termination-Request (PTR)
PANA-Termination-Request (PTR) is sent either by the PaC or the PAA. PANA-Termination-Request (PTR) is sent either by the PaC or the PAA.
PANA-Termination-Request ::= < PANA-Header: 6, REQ > PANA-Termination-Request ::= < PANA-Header: 6, REQ >
< Session-Id > < Session-Id >
< Termination-Cause > < Termination-Cause >
skipping to change at page 40, line 46 skipping to change at page 44, line 5
PANA-FirstAuth-End-Answer (PFEA) is sent by the PaC to the PAA in PANA-FirstAuth-End-Answer (PFEA) is sent by the PaC to the PAA in
response to a PANA-FirstAuth-End-Request message. response to a PANA-FirstAuth-End-Request message.
PANA-FirstAuth-End-Answer ::= < PANA-Header: 8, REQ [SEP] [NAP] > PANA-FirstAuth-End-Answer ::= < PANA-Header: 8, REQ [SEP] [NAP] >
< Session-Id > < Session-Id >
< Device-Id > < Device-Id >
[ Key-Id ] [ Key-Id ]
* [ AVP ] * [ AVP ]
0*1 < MAC > 0*1 < MAC >
6.4.16 PANA-Update-Request (PUR)
PANA-Update-Request (PUR) is sent by the PaC to the PAA.
PANA-Update-Request ::= < PANA-Header: 9, REQ >
< Session-Id >
< IP-Address >
* [ AVP ]
0*1 < MAC >
6.4.17 PANA-Update-Answer (PUA)
PANA-Update-Answer (PUA) is sent by the PAA to the PaC in response to
a PANA-Update-Request.
PANA-Update-Answer ::= < PANA-Header: 9 >
< Session-Id >
* [ AVP ]
0*1 < MAC >
6.5 AVPs in PANA 6.5 AVPs in PANA
Some of the used AVPs are defined in this document and some of them Some of the used AVPs are defined in this document and some of them
are defined in other documents like [RFC3588]. PANA proposes to use are defined in other documents like [RFC3588]. PANA proposes to use
the same name space with [RFC3588]. For temporary allocation, PANA the same name space with [RFC3588]. For temporary allocation, PANA
uses AVP type numbers starting from 1024. uses AVP type numbers starting from 1024.
6.5.1 MAC AVP 6.5.1 MAC AVP
The first octet (8 bits) of the MAC (Code 1024) AVP data contains the The first octet (8 bits) of the MAC (Code 1024) AVP data contains the
skipping to change at page 42, line 47 skipping to change at page 46, line 24
Abort-Session-Request message. Abort-Session-Request message.
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.
6.5.7 Result-Code AVP 6.5.7 Result-Code AVP
The Result-Code AVP (AVP Code 1030) is of type Unsigned32 and The Result-Code AVP (AVP Code 1030) is of type Unsigned32 and
indicates whether an EAP authentication was completed successfully or indicates whether an EAP authentication was completed successfully or
whether an error occurred. Here are Result-Code AVP values taken from whether an error occurred. Here are Result-Code AVP values taken
[RFC3588] and adapted for PANA. from [RFC3588] and adapted for PANA.
6.5.7.1 Authentication Results Codes 6.5.7.1 Authentication Results Codes
These result code values inform the PaC about the authentication and These result code values inform the PaC about the authentication and
authorization result. The authentication result and authorization authorization result. The authentication result and authorization
result can be different as described below, but only one result that result can be different as described below, but only one result that
corresponds to the one detected first is returned. corresponds to the one detected first is returned.
PANA_SUCCESS 2001 PANA_SUCCESS 2001
skipping to change at page 44, line 25 skipping to change at page 48, line 4
caused the failure. caused the failure.
PANA_UNKNOWN_SESSION_ID 5002 PANA_UNKNOWN_SESSION_ID 5002
Error code from PAA to PaC or from PaC to PAA. The message Error code from PAA to PaC or from PaC to PAA. The message
contained an unknown Session-Id. PAA MUST NOT send this error contained an unknown Session-Id. PAA MUST NOT send this error
result code value to PaC if PaC sent an unknown Session-Id in the result code value to PaC if PaC sent an unknown Session-Id in the
PANA-Start-Answer message (session resumption). PANA-Start-Answer message (session resumption).
PANA_INVALID_AVP_VALUE 5004 PANA_INVALID_AVP_VALUE 5004
Error code from PAA to PaC or from PaC to PAA. The message Error code from PAA to PaC or from PaC to PAA. The message
contained an AVP with an invalid value in its data portion. A contained an AVP with an invalid value in its data portion. A
PANA message indicating this error MUST include the offending AVPs PANA message indicating this error MUST include the offending AVPs
within a Failed-AVP AVP. within a Failed-AVP AVP.
PANA_MISSING_AVP 5005 PANA_MISSING_AVP 5005
Error code from PAA to PaC or from PaC to PAA. The message did not Error code from PAA to PaC or from PaC to PAA. The message did
contain an AVP that is required by the message type definition. not contain an AVP that is required by the message type
If this value is sent in the Result-Code AVP, a Failed-AVP AVP definition. If this value is sent in the Result-Code AVP, a
SHOULD be included in the message. The Failed-AVP AVP MUST Failed-AVP AVP SHOULD be included in the message. The Failed-AVP
contain an example of the missing AVP complete with the Vendor-Id AVP MUST contain an example of the missing AVP complete with the
if applicable. The value field of the missing AVP should be of Vendor-Id if applicable. The value field of the missing AVP
correct minimum length and contain zeroes. should be of correct minimum length and contain zeroes.
PANA_RESOURCES_EXCEEDED 5006 PANA_RESOURCES_EXCEEDED 5006
Error code from PAA to PaC. A message was received that cannot be Error code from PAA to PaC. A message was received that cannot be
authorized because the client has already expended allowed authorized because the client has already expended allowed
resources. An example of this error condition is a client that is resources. An example of this error condition is a client that is
restricted to one PANA session and attempts to establish a second restricted to one PANA session and attempts to establish a second
session. session.
PANA_CONTRADICTING_AVPS 5007 PANA_CONTRADICTING_AVPS 5007
skipping to change at page 46, line 20 skipping to change at page 49, line 44
the protection capability specified in the Protection-Capability the protection capability specified in the Protection-Capability
AVP. AVP.
PANA_PPAC_CAPABILITY_UNSUPPORTED 5017 PANA_PPAC_CAPABILITY_UNSUPPORTED 5017
Error code from PaC to PAA. This error is returned in a Error code from PaC to PAA. This error is returned in a
PANA-Bind-Answer message when there is no match between the list PANA-Bind-Answer message when there is no match between the list
of PPAC methods offered by the PAA and the ones available on the of PPAC methods offered by the PAA and the ones available on the
PaC. PaC.
PANA_INVALID_IP_ADDRESS 5018
Error code from PAA to PaC. This error is returned in a
PANA-Error message when the IP-Address AVP in the received
PANA-Update-Request message is invalid (e.g., a non-unicast
address).
6.5.8 EAP-Payload AVP 6.5.8 EAP-Payload AVP
The EAP-Payload AVP (AVP Code 1031) is of type OctetString and is The EAP-Payload AVP (AVP Code 1031) is of type OctetString and is
used to encapsulate the actual EAP packet that is being exchanged used to encapsulate the actual EAP packet that is being exchanged
between the EAP peer and the EAP authenticator. between the EAP peer and the EAP authenticator.
6.5.9 Session-Lifetime AVP 6.5.9 Session-Lifetime AVP
The Session-Lifetime AVP (Code 1032) data is of type Unsigned32. It The Session-Lifetime AVP (Code 1032) data is of type Unsigned32. It
contains the number of seconds remaining before the current session contains the number of seconds remaining before the current session
skipping to change at page 49, line 5 skipping to change at page 52, line 38
using one of the methods indicated by the other flags. Refer to using one of the methods indicated by the other flags. Refer to
[I-D.ietf-pana-framework] for a detailed discussion on when these [I-D.ietf-pana-framework] for a detailed discussion on when these
methods can be used. methods can be used.
6.5.18 Nonce AVP 6.5.18 Nonce AVP
The Nonce AVP (Code 1041) is of type OctetString. The data contains The Nonce AVP (Code 1041) is of type OctetString. The data contains
a randomly generated value in opaque format. The data length MUST be a randomly generated value in opaque format. The data length MUST be
between 8 and 256 bytes inclusive. between 8 and 256 bytes inclusive.
6.5.19 IP-Address AVP
The IP-Address (AVP Code: 1042) contains an IP address of a PaC. The
payload format of the IP-Address AVP is the same as that of the
Device-Id AVP (see See section Section 6.5.2). Address families for
IPv4 or IPv6 MUST be used for this AVP.
6.6 AVP Occurrence Table 6.6 AVP Occurrence Table
The following tables lists the AVPs used in this document, and The following tables 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 0+ Zero or more instances of the AVP MAY be present in the
skipping to change at page 49, line 37 skipping to change at page 53, line 30
| Message | | Message |
| Type | | Type |
+-----+-----+-----+-----+-----+-----+-----+ +-----+-----+-----+-----+-----+-----+-----+
Attribute Name | PSR | PSA | PAR | PAN | PBR | PBA | PDI | Attribute Name | PSR | PSA | PAR | PAN | PBR | PBA | PDI |
--------------------+-----+-----+-----+-----+-----+-----+-----+ --------------------+-----+-----+-----+-----+-----+-----+-----+
Result-Code | 0 | 0 | 0 | 0 | 1 | 1 | 0 | Result-Code | 0 | 0 | 0 | 0 | 1 | 1 | 0 |
Session-Id | 0 | 0-1 | 1 | 1 | 1 | 1 | 0-1 | Session-Id | 0 | 0-1 | 1 | 1 | 1 | 1 | 0-1 |
Termination-Cause | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Termination-Cause | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
EAP-Payload | 0-1 | 0-1 | 1 | 1 | 0-1 | 0 | 0 | EAP-Payload | 0-1 | 0-1 | 1 | 1 | 0-1 | 0 | 0 |
MAC | 0 | 0-1 | 0-1 | 0-1 | 0-1 | 0-1 | 0 | MAC | 0 | 0-1 | 0-1 | 0-1 | 0-1 | 0-1 | 0 |
Nonce | 0 | 0-1 | 0 | 0 | 0-1 | 0 | 0 | Nonce | 1 | 1 | 0 | 0 | 0 | 0 | 0 |
Device-Id | 0 | 0 | 0 | 0 | 0-1 | 0-1 | 0 | Device-Id | 0 | 0 | 0 | 0 | 0-1 | 0-1 | 0 |
Cookie | 0-1 | 0-1 | 0 | 0 | 0 | 0 | 0 | Cookie | 0-1 | 0-1 | 0 | 0 | 0 | 0 | 0 |
Protection-Cap. | 0-1 | 0 | 0 | 0 | 0-1 | 0 | 0 | Protection-Cap. | 0-1 | 0 | 0 | 0 | 0-1 | 0 | 0 |
PPAC | 0-1 | 0 | 0 | 0 | 1 | 0-1 | 0 | PPAC | 0-1 | 0 | 0 | 0 | 1 | 0-1 | 0 |
Session-Lifetime | 0 | 0 | 0 | 0 | 0-1 | 0 | 0 | Session-Lifetime | 0 | 0 | 0 | 0 | 0-1 | 0 | 0 |
Failed-AVP | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Failed-AVP | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
ISP-Information | 0+ | 0-1 | 0 | 0 | 0 | 0 | 0 | ISP-Information | 0+ | 0-1 | 0 | 0 | 0 | 0 | 0 |
NAP-Information | 0-1 | 0 | 0 | 0 | 0 | 0 | 0 | NAP-Information | 0-1 | 0 | 0 | 0 | 0 | 0 | 0 |
EP-Device-Id | 0 | 0 | 0 | 0 | 0+ | 0 | 0 | EP-Device-Id | 0 | 0 | 0 | 0 | 0+ | 0 | 0 |
Key-Id | 0 | 0 | 0 | 0 | 0-1 | 0-1 | 0 | Key-Id | 0 | 0 | 0 | 0 | 0-1 | 0-1 | 0 |
IP-Address | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
--------------------+-----+-----+-----+-----+-----+-----+-----+ --------------------+-----+-----+-----+-----+-----+-----+-----+
Figure 11: AVP Occurrence Table (1/2) Figure 12: AVP Occurrence Table (1/3)
+---------------------------------------------+ +---------------------------------------------+
| Message | | Message |
| Type | | Type |
+------+------+-----+-----+-----+------+------+ +------+------+-----+-----+-----+------+------+
Attribute Name | PRAR | PRAA | PTR | PTA | PER | PFER | PFEA | Attribute Name | PRAR | PRAA | PTR | PTA | PER | PFER | PFEA |
--------------------+------+------+-----+-----+-----+------+------+ --------------------+------+------+-----+-----+-----+------+------+
Result-Code | 0 | 0 | 0 | 0 | 1 | 1 | 0 | Result-Code | 0 | 0 | 0 | 0 | 1 | 1 | 0 |
Session-Id | 1 | 1 | 1 | 1 | 1 | 1 | 1 | Session-Id | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
Termination-Cause | 0 | 0 | 1 | 0 | 0 | 0 | 0 | Termination-Cause | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
EAP-Payload | 0 | 0 | 0 | 0 | 0 | 1 | 0 | EAP-Payload | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
MAC | 0-1 | 0-1 | 0-1 | 0-1 | 0-1 | 0-1 | 0-1 | MAC | 0-1 | 0-1 | 0-1 | 0-1 | 0-1 | 0-1 | 0-1 |
Nonce | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Nonce | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Device-Id | 0-1 | 0-1 | 0 | 0 | 0 | 0 | 0 | Device-Id | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Cookie | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Cookie | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Protection-Cap. | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Protection-Cap. | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
PPAC | 0 | 0 | 0 | 0 | 0 | 0 | 0 | PPAC | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Session-Lifetime | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Session-Lifetime | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Failed-AVP | 0 | 0 | 0 | 0 | 1 | 0 | 0 | Failed-AVP | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
ISP-Information | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ISP-Information | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
NAP-Information | 0 | 0 | 0 | 0 | 0 | 0 | 0 | NAP-Information | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
EP-Device-Id | 0 | 0 | 0 | 0 | 0 | 0 | 0 | EP-Device-Id | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Key-Id | 0 | 0 | 0 | 0 | 0 | 0-1 | 0-1 | Key-Id | 0 | 0 | 0 | 0 | 0 | 0-1 | 0-1 |
IP-Address | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
--------------------+------+------+-----+-----+-----+------+------+ --------------------+------+------+-----+-----+-----+------+------+
Figure 12: AVP Occurrence Table (2/2) Figure 13: AVP Occurrence Table (2/3)
+-----------+
| Message |
| Type |
+-----+-----+
Attribute Name | PUR | PUA |
--------------------+-----+-----+
Result-Code | 0 | 0 |
Session-Id | 1 | 1 |
Termination-Cause | 0 | 0 |
EAP-Payload | 0 | 0 |
MAC | 0-1 | 0-1 |
Nonce | 0 | 0 |
Device-Id | 0 | 0 |
Cookie | 0 | 0 |
Protection-Cap. | 0 | 0 |
PPAC | 0 | 0 |
Session-Lifetime | 0 | 0 |
Failed-AVP | 0 | 0 |
ISP-Information | 0 | 0 |
NAP-Information | 0 | 0 |
EP-Device-Id | 0 | 0 |
Key-Id | 0 | 0 |
IP-Address | 1 | 0 |
--------------------+-----+-----+
Figure 14: AVP Occurrence Table (3/3)
7. PANA Protocol Message Retransmissions 7. PANA Protocol Message Retransmissions
The PANA protocol provides retransmissions for all the message The PANA protocol provides retransmissions for all the message
exchanges except PANA-Auth-Request/Answer. PANA-Auth-Request exchanges except PANA-Auth-Request/Answer. PANA-Auth-Request
messages carry EAP requests which are retransmitted by the EAP messages carry EAP requests which are retransmitted by the EAP
protocol entities when needed. The messages that need PANA-level protocol entities when needed. The messages that need PANA-level
retransmissions are listed below: retransmissions are listed below:
PANA-PAA-Discover (PDI) PANA-PAA-Discover (PDI)
PANA-Start-Request (PSR)* PANA-Start-Request (PSR)*
PANA-Start-Answer (PSA)** PANA-Start-Answer (PSA)**
PANA-Bind-Request (PBR) PANA-Bind-Request (PBR)
PANA-FirstAuth-End-Request (PFER) PANA-FirstAuth-End-Request (PFER)
PANA-Reauth-Request (PRAR) PANA-Reauth-Request (PRAR)
PANA-Termination-Request (PTR) PANA-Termination-Request (PTR)
PANA-Update-Request (PUR)
*) PSR that carries a Cookie AVP is not retransmitted. *) PSR that carries a Cookie AVP is not retransmitted.
**) PSA that does not carry a Cookie AVP is not retransmitted. **) PSA that does not carry a Cookie AVP is not retransmitted.
The PDI and PSA messages are always sent by the PaC. PBR is sent by The PDI and PSA messages are always sent by the PaC. PBR is sent by
PAA. The last two messages, PRAR and PTR are sent either by PaC or PAA. The last two messages, PRAR and PTR are sent either by PaC or
PAA. PAA.
The rule is that the sender of the request message retransmits the The rule is that the sender of the request message retransmits the
request if the corresponding answer is not received in time. Answer request if the corresponding answer is not received in time. Answer
messages are sent as answers to the request messages, not based on a messages are sent as answers to the request messages, not based on a
timer. Exception to this rule is the PSA message. Because of the timer. Exception to this rule is the PSA message. Because of the
stateless nature of the PAA in the beginning PaC provides stateless nature of the PAA in the beginning PaC provides
retransmission also for the PSA message. PANA-Error messages MUST retransmission also for the PSA message. PANA-Error messages MUST
not be retransmitted. See Section 4.1.8 for more details of PANA NOT be retransmitted. See Section 4.1.8 for more details of PANA
error handling. error handling.
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 like protocol. The
message exchange terminates when either the request sender message exchange terminates when either the request sender
successfully receives the appropriate answer, or when the message successfully receives the appropriate answer, or when the message
exchange is considered to have failed according to the retransmission exchange is considered to have failed according to the retransmission
mechanism described below. mechanism described below.
skipping to change at page 54, line 8 skipping to change at page 59, line 8
REQ_MRD 0 Configurable. REQ_MRD 0 Configurable.
So for example the first RT for the PBR message is calculated using So for example the first RT for the PBR message is calculated using
REQ_IRT as the IRT: REQ_IRT as the IRT:
RT = REQ_IRT + RAND*REQ_IRT RT = REQ_IRT + RAND*REQ_IRT
8. IANA Considerations 8. IANA Considerations
This section provides guidance to the Internet Assigned Numbers This section provides guidance to the Internet Assigned Numbers
Authority (IANA) regarding registration of values related to the Authority (IANA) regarding registration of values related to the PANA
Diameter protocol, in accordance with BCP 26 [IANA]. The following protocol, in accordance with BCP 26 [IANA]. The following policies
policies are used here with the meanings defined in BCP 26: "Private are used here with the meanings defined in BCP 26: "Private Use",
Use", "First Come First Served", "Expert Review", "Specification "First Come First Served", "Expert Review", "Specification Required",
Required", "IETF Consensus", "Standards Action". "IETF Consensus", "Standards Action".
This section explains the criteria to be used by the IANA for This section explains the criteria to be used by the IANA for
assignment of numbers within namespaces defined within this document. assignment of numbers within namespaces defined within this document.
For registration requests where a Designated Expert should be For registration requests where a Designated Expert should be
consulted, the responsible IESG area director should appoint the consulted, the responsible IESG area director should appoint the
Designated Expert. For Designated Expert with Specification Designated Expert. For Designated Expert with Specification
Required, the request is posted to the PANA WG mailing list (or, if Required, the request is posted to the PANA WG mailing list (or, if
it has been disbanded, a successor designated by the Area Director) it has been disbanded, a successor designated by the Area Director)
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.
8.1 PANA UDP Port Number 8.1 PANA UDP Port Number
TBD. PANA uses one well-known UDP port number (Section 4.1.2, Section 4.2
and Section 6.1, which needs to be assigned by the IANA.
8.2 PANA Multicast Address 8.2 PANA Multicast Address
TBD. PANA uses one well-known IPv4 multicast address for which the scope
is limited to be link-local by setting the TTL field to 255, and one
well-known IPv6 link-local scoped multicast address (Section 4.2 and
Section 6.1), which need to be assigned by the IANA.
8.3 PANA Header 8.3 PANA Header
As defined in Section 6.2, the PANA header contains two fields that
requires IANA namespace management; the Message Type and Flags field.
8.3.1 Message Type 8.3.1 Message Type
TBD. The Message Type namespace is used to identify PANA messages. Values
0-16,777,213 are for permanent, standard message types, allocated by
IETF Consensus [IANA]. This document defines the Message Types 1-8.
See Section 6.4.1 for the assignment of the namespace in this
specification.
The values 16,777,214 and 16,777,215 (hexadecimal values 0xfffffe -
0xffffff) are reserved for experimental messages. As these codes are
only for experimental and testing purposes, no guarantee is made for
interoperability between communicating PaC and PAA using experimental
commands, as outlined in [IANA-EXP].
8.3.2 Flags 8.3.2 Flags
TBD. There are eight bits in the Flags field of the PANA header. This
document assigns bit 0 ('R'equest), bit 4 ('S'eparate) and bit 5
('N'AP Authentication). The remaining bits MUST only be assigned via
a Standards Action [IANA].
8.4 AVP Header 8.4 AVP Header
As defined in Section 6.3, the AVP header contains three fields that
requires IANA namespace management; the AVP Code, AVP Flags and
Vendor-Id fields where only the AVP Code and AVP Flags create new
namespaces.
8.4.1 AVP Code 8.4.1 AVP Code
TBD. The AVP Code namespace is used to identify attributes. There are
multiple namespaces. Vendors can have their own AVP Codes namespace
which will be identified by their Vendor-ID (also known as
Enterprise-Number) and they control the assignments of their
vendor-specific AVP codes within their own namespace. The absence of
a Vendor-ID or a Vendor-ID value of zero (0) identifies the IETF IANA
controlled AVP Codes namespace. The AVP Codes and sometimes also
possible values in an AVP are controlled and maintained by IANA.
8.4.2 Flags AVP Code 0 is not used. This document defines the AVP Codes
1024-1041. See Section 6.5 for the assignment of the namespace in
this specification.
TBD. AVPs may be allocated following Designated Expert with Specification
Required [IANA]. Release of blocks of AVPs (more than 3 at a time
for a given purpose) should require IETF Consensus.
8.4.3 Vendor Id 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.
Vendor-Specific AVPs codes are for Private Use and should be
encouraged instead of allocation of global attribute types, for
functions specific only to one vendor's implementation of PANA, where
no interoperability is deemed useful. Where a Vendor-Specific AVP is
implemented by more than one vendor, allocation of global AVPs should
be encouraged instead.
TBD. 8.4.2 Flags
There are 8 bits in the AVP Flags field of the AVP header, defined in
Section 6.3. This document assigns bit 0 ('V'endor Specific) and bit
1 ('M'andatory). The remaining bits should only be assigned via a
Standards Action .
8.5 AVP Values 8.5 AVP Values
8.5.1 MAC AVP Values Certain AVPs in PANA define a list of values with various meanings.
For attributes other than those specified in this section, adding
additional values to the list can be done on a First Come, First
Served basis by IANA [IANA].
TBD. 8.5.1 Algorithm Values of MAC AVP
8.5.2 Device-Id AVP Values As defined in Section 6.5.1, the Algorithm field of MAC AVP (AVP Code
1024) defines the value of 1 (one) for HMAC-SHA1.
TBD. All remaining values are available for assignment via IETF Consensus
[IANA].
8.5.3 Protection-Capability AVP Values 8.5.2 Protection-Capability AVP Values
TBD. As defined in Section 6.5.5, the Protection-Capability AVP (AVP Code
1028) defines the values 0 and 1.
8.5.4 Result-Code AVP Values All remaining values are available for assignment via a Standards
Action [IANA].
TBD. 8.5.3 Termination-Cause AVP Values
8.5.5 Termination-Cause AVP Values As defined in Section 6.5.6, the Termination-Cause AVP (AVP Code
1029) defines the values 1, 4 and 8.
TBD. All remaining values are available for assignment via IETF Consensus
[IANA].
8.5.6 Provider-Identifier AVP Values 8.5.4 Result-Code AVP Values
TBD. As defined in Section 6.5.7, the Result-Code AVP (AVP Code 1030)
defines the values 2001, 3001-3002, 3008-3009, 4001, 5001-5009 and
5011-5019.
8.5.7 Post-PANA-Address-Configuration AVP Values All remaining values are available for assignment via IETF Consensus
[IANA].
TBD. 8.5.5 Post-PANA-Address-Configuration AVP Values
As defined in Section 6.5.17, the Post-PANA-Address-Configuration AVP
(AVP Code 1040) defines the bits 0 ('N': no configuration), 1 ('D':
DHCP), 2 ('A' stateless autoconfiguration), 3 ('T': DHCP with IPsec
tunnel mode) and 4 ('I': IKEv2).
All remaining values are available for assignment via a Standards
Action [IANA].
9. Security Considerations 9. Security Considerations
The PANA protocol provides ordered delivery for EAP messages. If an The PANA protocol provides ordered delivery for EAP messages. If an
EAP method that provides session keys is used, a PANA SA is created. EAP method that provides session keys is used, a PANA SA is created.
The EAP Success/Failure message is one of the signaling messages The EAP Success/Failure message is one of the signaling messages
which is integrity protected with this PANA SA. The PANA protocol which is integrity protected with this PANA SA. The PANA protocol
does not provide security protection for the initial EAP message does not provide security protection for the initial EAP message
exchange. Integrity protection can only be provided after the PANA exchange. Integrity protection can only be provided after the PANA
SA has been established. Thus, PANA re-authentication, revocation and SA has been established. Thus, PANA re-authentication, revocation
disconnect notifications can be authenticated, integrity and replay and disconnect notifications can be authenticated, integrity and
protected. In certain environments (e.g., on a shared link) the EAP replay protected. In certain environments (e.g., on a shared link)
method selection is an important issue. the EAP method selection is an important issue.
The PANA framework described in this document covers the discussion The PANA framework described in this document covers the discussion
of different protocols which are of interest for a protocol between of different protocols which are of interest for a protocol between
the PaC and the PAA (typically referred as the PANA protocol). the PaC and the PAA (typically referred as the PANA protocol).
The PANA itself consists of a sequence of steps which are executed to The PANA itself consists of a sequence of steps which are executed to
complete the network access authentication procedure. Some of these complete the network access authentication procedure. Some of these
steps are optional. steps are optional.
The following execution steps have been identified as being relevant The following execution steps have been identified as being relevant
skipping to change at page 58, line 20 skipping to change at page 65, line 20
with this session key transport are described in with this session key transport are described in
[I-D.ietf-eap-keying]. [I-D.ietf-eap-keying].
The establishment of a PANA SA is required in environments where no The establishment of a PANA SA is required in environments where no
physical or link layer security is available. The PANA SA allows physical or link layer security is available. The PANA SA allows
subsequently exchanged messages to experience cryptographic subsequently exchanged messages to experience cryptographic
protection. For the current version of the document an integrity protection. For the current version of the document an integrity
object (MAC AVP) is defined which supports data-origin object (MAC AVP) is defined which supports data-origin
authentication, replay protection based on sequence numbers and authentication, replay protection based on sequence numbers and
integrity protection based on a keyed message digest. integrity protection based on a keyed message digest.
Confidentiality protection is not provided. The session keys used for Confidentiality protection is not provided. The session keys used
this object have to be provided by the EAP method. For this version for this object have to be provided by the EAP method. For this
of the document it is assumed that no negotiation of algorithms and version of the document it is assumed that no negotiation of
parameters takes place. Instead HMAC-SHA1 is used by default. A algorithms and parameters takes place. Instead HMAC-SHA1 is used by
different algorithm may be chosen by default in a future version of default. A different algorithm may be chosen by default in a future
the PANA protocol specification. The used algorithm is indicated in version of the PANA protocol specification. The used algorithm is
the header of the Integrity object. To select the security indicated in the header of the Integrity object. To select the
association for signaling message protection the Session ID is security association for signaling message protection the Session ID
conveyed. The keyed message digest included in the Integrity object is conveyed. The keyed message digest included in the Integrity
will include all fields of the PANA signaling message including the object will include all fields of the PANA signaling message
sequence number field of the packet. including the sequence number fields of the packet.
The protection of subsequent signaling messages prevents an adversary The protection of subsequent signaling messages prevents an adversary
from acting as a man-in-the-middle adversary, from injecting packets, from acting as a man-in-the-middle adversary, from injecting packets,
from replaying messages and from modifying the content of the from replaying messages and from modifying the content of the
exchanged packets. This prevents subsequently described threats. exchanged packets. This prevents subsequently described threats.
If an entity (PAA or PaC) loses its state (especially the current If an entity (PAA or PaC) loses its state (especially the current
sequence number) then the entire PANA protocol has to be restarted. sequence number) then the entire PANA protocol has to be restarted.
No re-synchronization procedure is provided. No re-synchronization procedure is provided.
skipping to change at page 61, line 12 skipping to change at page 68, line 12
to transmit a tear-down message. This message causes state removal, to transmit a tear-down message. This message causes state removal,
a stop of the accounting procedure and removes the installed packet a stop of the accounting procedure and removes the installed packet
filters. filters.
It is obvious that such a message must be protected to prevent an It is obvious that such a message must be protected to prevent an
adversary from deleting state information and thereby causing denial adversary from deleting state information and thereby causing denial
of service attacks. of service attacks.
i) Mobility optimization i) Mobility optimization
The mobility optimization described in Section 4.9 involves the The mobility optimization described in Section 4.12 involves the
previous PAA providing a AAA-Key to the current PAA of the PaC. previous PAA providing a AAA-Key to the current PAA of the PaC.
There are security risks stemming from potential compromise of PAAs. There are security risks stemming from potential compromise of PAAs.
Compromise of the current PAA does not yield compromise of the Compromise of the current PAA does not yield compromise of the
previous PAA, as AAA-Key cannot be computed from a compromised previous PAA, as AAA-Key cannot be computed from a compromised
AAA-Key-new. But a compromised previous PAA along with the AAA-Key-new. But a compromised previous PAA along with the
intercepted nonce values leads to the compromise of AAA-Key-new. intercepted nonce values leads to the compromise of AAA-Key-new.
Operators should be aware of the potential risk of using this Operators should be aware of the potential risk of using this
optimization. An operator can reduce the risk exposure by forcing optimization. An operator can reduce the risk exposure by forcing
the PaC to perform an EAP-based authentication immediately after the the PaC to perform an EAP-based authentication immediately after the
optimized PANA execution. optimized PANA execution.
j) Updating PaC's address
An attacker can generate a PANA-Update-Request with an IP-Address
AVP. There are several threats:
o An attacker spoofs an address and registers itself with the
address. If the registered address is not assigned to any PaC,
subsequent PANA messages sent from the PAA to the attacker will
not reach any node and this is not a significant harm. If the
registered address is assigned to some PaC, subsequent PANA
messages sent from the PAA to the attacker will reach the PaC, but
will be silently discarded because the Session-Id is different.
o An attacker registers other PaC with any address. As a result,
subsequent PANA messages sent from the PAA to the PaC will not
reach the PaC.
To avoid all those attacks against an address update, an additional
mechanism may be defined outside the PANA protocol for the PAA to
validate ownership of the address.
10. Open Issues and Change History 10. Open Issues and Change History
A list of open issues is maintained at [2]. A list of open issues is maintained at [2].
Issues incorporated in PANA-01 June 2003: 1, 3, 10, 5, 6, 7 and 11. Issues incorporated in PANA-01 June 2003: 1, 3, 10, 5, 6, 7 and 11.
Issues incorporated in PANA-02 October 2003: 8, 17, 18, 19, 20, 21, Issues incorporated in PANA-02 October 2003: 8, 17, 18, 19, 20, 21,
22, 23, 24, 25, 26, 30, 31, 32 and 33. 22, 23, 24, 25, 26, 30, 31, 32 and 33.
Issues incorporated in PANA-03 February 2004: 2, 16, 34, 35, 36, 38, Issues incorporated in PANA-03 February 2004: 2, 16, 34, 35, 36, 38,
39, 40, 42, 43, 44, 50, 51 and 60. 39, 40, 42, 43, 44, 50, 51 and 60.
Issues incorporated in PANA-04 May 2004: 28, 52, 53, 56, 57, 58, 59, Issues incorporated in PANA-04 May 2004: 28, 52, 53, 56, 57, 58, 59,
61, 62, 63, 64, 65, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80 and 83. 61, 62, 63, 64, 65, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80 and 83.
Issues incorporated in PANA-05 July 2004: 84, 85, 91, 92, 93, 96, 97,
98, 99, 100, 103 and 107.
11. Acknowledgments 11. Acknowledgments
We would like to thank Jari Arkko, Mohan Parthasarathy, Julien We would like to thank Jari Arkko, Mohan Parthasarathy, Julien
Bournelle, Rafael Marin Lopez and all members of the PANA working Bournelle, Rafael Marin Lopez, Pasi Eronen, Randy Turner, Erik
group for their valuable comments to this document. Nordmark and all members of the PANA working group for their valuable
comments to this document.
Normative References 12. References
12.1 Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997. Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2131] Droms, R., "Dynamic Host Configuration Protocol", RFC [RFC2131] Droms, R., "Dynamic Host Configuration Protocol", RFC
2131, March 1997. 2131, March 1997.
[RFC1982] Elz, R. and R. Bush, "Serial Number Arithmetic", RFC 1982, [RFC1982] Elz, R. and R. Bush, "Serial Number Arithmetic", RFC 1982,
August 1996. August 1996.
[RFC2988] Paxson, V. and M. Allman, "Computing TCP's Retransmission [RFC2988] Paxson, V. and M. Allman, "Computing TCP's Retransmission
Timer", RFC 2988, November 2000. Timer", RFC 2988, November 2000.
[I-D.ietf-eap-rfc2284bis]
Blunk, L., "Extensible Authentication Protocol (EAP)",
draft-ietf-eap-rfc2284bis-09 (work in progress), February
2004.
[RFC2716] Aboba, B. and D. Simon, "PPP EAP TLS Authentication
Protocol", RFC 2716, October 1999.
[RFC2234] Crocker, D. and P. Overell, "Augmented BNF for Syntax [RFC2234] Crocker, D. and P. Overell, "Augmented BNF for Syntax
Specifications: ABNF", RFC 2234, November 1997. Specifications: ABNF", RFC 2234, November 1997.
[RFC3588] Calhoun, P., Loughney, J., Guttman, E., Zorn, G. and J. [RFC3588] Calhoun, P., Loughney, J., Guttman, E., Zorn, G. and J.
Arkko, "Diameter Base Protocol", RFC 3588, September 2003. Arkko, "Diameter Base Protocol", RFC 3588, September 2003.
[RFC2462] Thomson, S. and T. Narten, "IPv6 Stateless Address [RFC2462] Thomson, S. and T. Narten, "IPv6 Stateless Address
Autoconfiguration", RFC 2462, December 1998. Autoconfiguration", RFC 2462, December 1998.
[RFC2464] Crawford, M., "Transmission of IPv6 Packets over Ethernet [RFC2464] Crawford, M., "Transmission of IPv6 Packets over Ethernet
Networks", RFC 2464, December 1998. Networks", RFC 2464, December 1998.
[RFC3315] Droms, R., Bound, J., Volz, B., Lemon, T., Perkins, C. and [RFC3315] Droms, R., Bound, J., Volz, B., Lemon, T., Perkins, C. and
M. Carney, "Dynamic Host Configuration Protocol for IPv6 M. Carney, "Dynamic Host Configuration Protocol for IPv6
(DHCPv6)", RFC 3315, July 2003. (DHCPv6)", RFC 3315, July 2003.
[RFC3456] Patel, B., Aboba, B., Kelly, S. and V. Gupta, "Dynamic [RFC3456] Patel, B., Aboba, B., Kelly, S. and V. Gupta, "Dynamic
Host Configuration Protocol (DHCPv4) Configuration of Host Configuration Protocol (DHCPv4) Configuration of
IPsec Tunnel Mode", RFC 3456, January 2003. IPsec Tunnel Mode", RFC 3456, January 2003.
[RFC3748] Aboba, B., Blunk, L., Vollbrecht, J., Carlson, J. and H.
Levkowetz, "Extensible Authentication Protocol (EAP)", RFC
3748, June 2004.
[I-D.ietf-eap-keying] [I-D.ietf-eap-keying]
Aboba, B., "EAP Key Management Framework", Aboba, B., "Extensible Authentication Protocol (EAP) Key
draft-ietf-eap-keying-01 (work in progress), October 2003. Management Framework", draft-ietf-eap-keying-02 (work in
progress), June 2004.
[IANA] Narten, T. and H. Alvestrand, "Guidelines for Writing an [IANA] Narten, T. and H. Alvestrand, "Guidelines for Writing an
IANA Considerations Section in RFCs", BCP 26, RFC 2434, IANA Considerations Section in RFCs", BCP 26, RFC 2434,
October 1998. October 1998.
Informative References 12.2 Informative References
[I-D.ietf-pana-requirements] [I-D.ietf-pana-requirements]
Yegin, A. and Y. Ohba, "Protocol for Carrying Yegin, A. and Y. Ohba, "Protocol for Carrying
Authentication for Network Access (PANA)Requirements", Authentication for Network Access (PANA)Requirements",
draft-ietf-pana-requirements-07 (work in progress), June draft-ietf-pana-requirements-08 (work in progress), June
2003. 2004.
[I-D.ietf-aaa-eap] [I-D.ietf-aaa-eap]
Eronen, P., Hiller, T. and G. Zorn, "Diameter Extensible Eronen, P., Hiller, T. and G. Zorn, "Diameter Extensible
Authentication Protocol (EAP) Application", Authentication Protocol (EAP) Application",
draft-ietf-aaa-eap-05 (work in progress), April 2004. draft-ietf-aaa-eap-08 (work in progress), June 2004.
[I-D.puthenkulam-eap-binding] [I-D.puthenkulam-eap-binding]
Puthenkulam, J., "The Compound Authentication Binding Puthenkulam, J., "The Compound Authentication Binding
Problem", draft-puthenkulam-eap-binding-04 (work in Problem", draft-puthenkulam-eap-binding-04 (work in
progress), October 2003. progress), October 2003.
[RFC2522] Karn, P. and W. Simpson, "Photuris: Session-Key Management [RFC2522] Karn, P. and W. Simpson, "Photuris: Session-Key Management
Protocol", RFC 2522, March 1999. Protocol", RFC 2522, March 1999.
[I-D.ietf-pana-usage-scenarios]
Ohba, Y., "Problem Statement and Usage Scenarios for
PANA", draft-ietf-pana-usage-scenarios-06 (work in
progress), April 2003.
[I-D.ietf-pana-threats-eval] [I-D.ietf-pana-threats-eval]
Parthasarathy, M., "PANA Threat Analysis and security Parthasarathy, M., "Protocol for Carrying Authentication
requirements", draft-ietf-pana-threats-eval-04 (work in and Network Access Threat Analysis and Security
progress), May 2003. Requirements", draft-ietf-pana-threats-eval-06 (work in
progress), June 2004.
[I-D.ietf-pana-ipsec] [I-D.ietf-pana-ipsec]
Parthasarathy, M., "PANA enabling IPsec based Access Parthasarathy, M., "PANA enabling IPsec based Access
Control", draft-ietf-pana-ipsec-03 (work in progress), May Control", draft-ietf-pana-ipsec-03 (work in progress), May
2004. 2004.
[I-D.ietf-pana-framework] [I-D.ietf-pana-framework]
Jayaraman, P., "PANA Framework", Jayaraman, P., "PANA Framework",
draft-ietf-pana-framework-00 (work in progress), May 2004. draft-ietf-pana-framework-00 (work in progress), May 2004.
skipping to change at page 67, line 15 skipping to change at page 73, line 11
[I-D.ietf-eap-statemachine] [I-D.ietf-eap-statemachine]
Vollbrecht, J., Eronen, P., Petroni, N. and Y. Ohba, Vollbrecht, J., Eronen, P., Petroni, N. and Y. Ohba,
"State Machines for Extensible Authentication Protocol "State Machines for Extensible Authentication Protocol
(EAP) Peer and Authenticator", (EAP) Peer and Authenticator",
draft-ietf-eap-statemachine-03 (work in progress), March draft-ietf-eap-statemachine-03 (work in progress), March
2004. 2004.
[I-D.ietf-seamoby-ctp] [I-D.ietf-seamoby-ctp]
Loughney, J., "Context Transfer Protocol", Loughney, J., "Context Transfer Protocol",
draft-ietf-seamoby-ctp-08 (work in progress), January draft-ietf-seamoby-ctp-10 (work in progress), June 2004.
2004.
[RFC2716] Aboba, B. and D. Simon, "PPP EAP TLS Authentication
Protocol", RFC 2716, October 1999.
[I-D.ietf-ipsec-ikev2] [I-D.ietf-ipsec-ikev2]
Kaufman, C., "Internet Key Exchange (IKEv2) Protocol", Kaufman, C., "Internet Key Exchange (IKEv2) Protocol",
draft-ietf-ipsec-ikev2-13 (work in progress), March 2004. draft-ietf-ipsec-ikev2-14 (work in progress), June 2004.
[I-D.josefsson-pppext-eap-tls-eap] [I-D.josefsson-pppext-eap-tls-eap]
Josefsson, S., Palekar, A., Simon, D. and G. Zorn, Josefsson, S., Palekar, A., Simon, D. and G. Zorn,
"Protected EAP Protocol (PEAP)", "Protected EAP Protocol (PEAP)",
draft-josefsson-pppext-eap-tls-eap-07 (work in progress), draft-josefsson-pppext-eap-tls-eap-07 (work in progress),
October 2003. October 2003.
[I-D.ietf-pppext-eap-ttls] [I-D.ietf-pppext-eap-ttls]
Funk, P. and S. Blake-Wilson, "EAP Tunneled TLS Funk, P. and S. Blake-Wilson, "EAP Tunneled TLS
Authentication Protocol (EAP-TTLS)", Authentication Protocol (EAP-TTLS)",
skipping to change at page 69, line 5 skipping to change at page 74, line 17
2004. 2004.
[802.11] Institute of Electrical and Electronics Engineers, [802.11] Institute of Electrical and Electronics Engineers,
"Information technology - telecommunications and "Information technology - telecommunications and
information exchange between systems - local and information exchange between systems - local and
metropolitan area networks - specific requirements part metropolitan area networks - specific requirements part
11: Wireless lan medium access control (mac) and physical 11: Wireless lan medium access control (mac) and physical
layer (phy) specifications", IEEE Standard 802.11, layer (phy) specifications", IEEE Standard 802.11,
1999(R2003). 1999(R2003).
[IANA-EXP]
Narten, T., "Assigning Experimental and Testing Numbers
Considered Useful", BCP 82, RFC 3692, January 2004.
URIs URIs
[1] <http://www.toshiba.com/tari/pana/sequence-number.txt> [1] <http://www.toshiba.com/tari/pana/sequence-number.txt>
[2] <http://danforsberg.info:8080/pana-issues/> [2] <http://danforsberg.info:8080/pana-issues/>
Authors' Addresses Authors' Addresses
Dan Forsberg Dan Forsberg
Nokia Research Center Nokia Research Center
skipping to change at page 71, line 8 skipping to change at page 77, line 8
75 West Plumeria Drive 75 West Plumeria Drive
San Jose, CA 95134 San Jose, CA 95134
USA USA
Phone: +1 408 544 5656 Phone: +1 408 544 5656
EMail: alper.yegin@samsung.com EMail: alper.yegin@samsung.com
Intellectual Property Statement Intellectual Property Statement
The IETF takes no position regarding the validity or scope of any The IETF takes no position regarding the validity or scope of any
intellectual property or other rights that might be claimed to Intellectual Property Rights or other rights that might be claimed to
pertain to the implementation or use of the technology described in pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights this document or the extent to which any license under such rights
might or might not be available; neither does it represent that it might or might not be available; nor does it represent that it has
has made any effort to identify any such rights. Information on the made any independent effort to identify any such rights. Information
IETF's procedures with respect to rights in standards-track and on the procedures with respect to rights in RFC documents can be
standards-related documentation can be found in BCP-11. Copies of found in BCP 78 and BCP 79.
claims of rights made available for publication and any assurances of
licenses to be made available, or the result of an attempt made to Copies of IPR disclosures made to the IETF Secretariat and any
obtain a general license or permission for the use of such assurances of licenses to be made available, or the result of an
proprietary rights by implementors or users of this specification can attempt made to obtain a general license or permission for the use of
be obtained from the IETF Secretariat. such proprietary rights by implementers or users of this
specification can be obtained from the IETF on-line IPR repository at
http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary copyrights, patents or patent applications, or other proprietary
rights which may cover technology that may be required to practice rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF Executive this standard. Please address the information to the IETF at
Director. ietf-ipr@ietf.org.
Full Copyright Statement
Copyright (C) The Internet Society (2004). All Rights Reserved. Disclaimer of Validity
This document and translations of it may be copied and furnished to This document and the information contained herein are provided on an
others, and derivative works that comment on or otherwise explain it "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
or assist in its implementation may be prepared, copied, published OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
and distributed, in whole or in part, without restriction of any ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
kind, provided that the above copyright notice and this paragraph are INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
included on all such copies and derivative works. However, this INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
document itself may not be modified in any way, such as by removing WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of
developing Internet standards in which case the procedures for
copyrights defined in the Internet Standards process must be
followed, or as required to translate it into languages other than
English.
The limited permissions granted above are perpetual and will not be Copyright Statement
revoked by the Internet Society or its successors or assignees.
This document and the information contained herein is provided on an Copyright (C) The Internet Society (2004). This document is subject
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING to the rights, licenses and restrictions contained in BCP 78, and
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING except as set forth therein, the authors retain all their rights.
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Acknowledgment Acknowledgment
Funding for the RFC Editor function is currently provided by the Funding for the RFC Editor function is currently provided by the
Internet Society. Internet Society.
 End of changes. 

This html diff was produced by rfcdiff 1.23, available from http://www.levkowetz.com/ietf/tools/rfcdiff/