draft-ietf-pana-pana-03.txt   draft-ietf-pana-pana-04.txt 
PANA Working Group D. Forsberg PANA Working Group D. Forsberg
Internet-Draft Nokia Internet-Draft Nokia
Expires: August 9, 2004 Y. Ohba Expires: November 5, 2004 Y. Ohba (Ed.)
Toshiba Toshiba
B. Patil B. Patil
Nokia Nokia
H. Tschofenig H. Tschofenig
Siemens Siemens
A. Yegin A. Yegin
DoCoMo USA Labs Samsung
February 9, 2004 May 7, 2004
Protocol for Carrying Authentication for Network Access (PANA) Protocol for Carrying Authentication for Network Access (PANA)
draft-ietf-pana-pana-03 draft-ietf-pana-pana-04
Status of this Memo Status of this Memo
This document is an Internet-Draft and is in full conformance with This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026. all provisions of Section 10 of RFC2026.
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 other
groups may also distribute working documents as Internet-Drafts. groups may also distribute working documents as Internet-Drafts.
skipping to change at page 1, line 38 skipping to change at page 1, line 38
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 http://
www.ietf.org/ietf/1id-abstracts.txt. 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 August 9, 2004. This Internet-Draft will expire on November 5, 2004.
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 . . . . . . . . . . . . . . . . . . . . . . . 4 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . 5
1.1 Specification of Requirements . . . . . . . . . . . . . . 4 1.1 Specification of Requirements . . . . . . . . . . . . . . 5
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 5 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 6
3. Protocol Overview . . . . . . . . . . . . . . . . . . . . 7 3. Protocol Overview . . . . . . . . . . . . . . . . . . . . 8
4. Protocol Details . . . . . . . . . . . . . . . . . . . . . 9 4. Protocol Details . . . . . . . . . . . . . . . . . . . . . 10
4.1 Common Processing Rules . . . . . . . . . . . . . . . . . 9 4.1 Common Processing Rules . . . . . . . . . . . . . . . . . 10
4.1.1 Payload Encoding . . . . . . . . . . . . . . . . . . . . . 9 4.1.1 Payload Encoding . . . . . . . . . . . . . . . . . . . . . 10
4.1.2 Transport Layer Protocol . . . . . . . . . . . . . . . . . 10 4.1.2 Transport Layer Protocol . . . . . . . . . . . . . . . . . 11
4.1.3 Fragmentation . . . . . . . . . . . . . . . . . . . . . . 10 4.1.3 Fragmentation . . . . . . . . . . . . . . . . . . . . . . 11
4.1.4 Sequence Number and Retransmission . . . . . . . . . . . . 10 4.1.4 Sequence Number and Retransmission . . . . . . . . . . . . 11
4.1.5 PANA Security Association . . . . . . . . . . . . . . . . 11 4.1.5 PANA Security Association . . . . . . . . . . . . . . . . 12
4.1.6 Message Authentication Code . . . . . . . . . . . . . . . 12 4.1.6 Message Authentication Code . . . . . . . . . . . . . . . 14
4.1.7 Message Validity Check . . . . . . . . . . . . . . . . . . 13 4.1.7 Message Validity Check . . . . . . . . . . . . . . . . . . 14
4.1.8 Error Handling . . . . . . . . . . . . . . . . . . . . . . 14 4.1.8 Error Handling . . . . . . . . . . . . . . . . . . . . . . 15
4.2 Discovery and Initial Handshake Phase . . . . . . . . . . 14 4.2 Discovery and Initial Handshake Phase . . . . . . . . . . 16
4.3 Authentication Phase . . . . . . . . . . . . . . . . . . . 17 4.3 Authentication Phase . . . . . . . . . . . . . . . . . . . 19
4.4 Re-authentication . . . . . . . . . . . . . . . . . . . . 19 4.4 Re-authentication . . . . . . . . . . . . . . . . . . . . 22
4.5 Termination Phase . . . . . . . . . . . . . . . . . . . . 20 4.5 Termination Phase . . . . . . . . . . . . . . . . . . . . 23
4.6 Illustration of a Complete Message Sequence . . . . . . . 21 4.6 Illustration of a Complete Message Sequence . . . . . . . 24
4.7 Device ID Choice . . . . . . . . . . . . . . . . . . . . . 22 4.7 Device ID Choice . . . . . . . . . . . . . . . . . . . . . 27
4.8 Session Lifetime . . . . . . . . . . . . . . . . . . . . . 22 4.8 Session Lifetime . . . . . . . . . . . . . . . . . . . . . 27
4.9 Mobility Handling . . . . . . . . . . . . . . . . . . . . 23 4.9 Mobility Handling . . . . . . . . . . . . . . . . . . . . 28
4.10 Event Notification . . . . . . . . . . . . . . . . . . . . 24 4.10 Support for Separate EP . . . . . . . . . . . . . . . . . 30
4.11 Support for Separate EP . . . . . . . . . . . . . . . . . 24 5. PANA Security Association Establishment . . . . . . . . . 31
5. PANA Security Association Establishment . . . . . . . . . 25 6. Message Formats . . . . . . . . . . . . . . . . . . . . . 32
6. Authentication Method Choice . . . . . . . . . . . . . . . 26 6.1 IP and UDP Headers . . . . . . . . . . . . . . . . . . . . 32
7. Filter Rule Installation . . . . . . . . . . . . . . . . . 27 6.2 PANA Header . . . . . . . . . . . . . . . . . . . . . . . 32
8. Data Traffic Protection . . . . . . . . . . . . . . . . . 28 6.3 AVP Header . . . . . . . . . . . . . . . . . . . . . . . . 34
9. Message Formats . . . . . . . . . . . . . . . . . . . . . 29 6.4 PANA Messages . . . . . . . . . . . . . . . . . . . . . . 36
9.1 PANA Header . . . . . . . . . . . . . . . . . . . . . . . 29 6.4.1 Message Specifications . . . . . . . . . . . . . . . . . . 36
9.2 AVP Header . . . . . . . . . . . . . . . . . . . . . . . . 30 6.4.2 PANA-PAA-Discover (PDI) . . . . . . . . . . . . . . . . . 37
9.3 PANA Messages . . . . . . . . . . . . . . . . . . . . . . 32 6.4.3 PANA-Start-Request (PSR) . . . . . . . . . . . . . . . . . 37
9.3.1 Message Specifications . . . . . . . . . . . . . . . . . . 33 6.4.4 PANA-Start-Answer (PSA) . . . . . . . . . . . . . . . . . 37
9.3.2 PANA-PAA-Discover (PDI) . . . . . . . . . . . . . . . . . 33 6.4.5 PANA-Auth-Request (PAR) . . . . . . . . . . . . . . . . . 38
9.3.3 PANA-Start-Request (PSR) . . . . . . . . . . . . . . . . . 33 6.4.6 PANA-Auth-Answer (PAN) . . . . . . . . . . . . . . . . . . 38
9.3.4 PANA-Start-Answer (PSA) . . . . . . . . . . . . . . . . . 33 6.4.7 PANA-Bind-Request (PBR) . . . . . . . . . . . . . . . . . 38
9.3.5 PANA-Auth-Request (PAR) . . . . . . . . . . . . . . . . . 34 6.4.8 PANA-Bind-Answer (PBA) . . . . . . . . . . . . . . . . . . 38
9.3.6 PANA-Auth-Answer (PAN) . . . . . . . . . . . . . . . . . . 34 6.4.9 PANA-Reauth-Request (PRAR) . . . . . . . . . . . . . . . . 39
9.3.7 PANA-Bind-Request (PBR) . . . . . . . . . . . . . . . . . 34 6.4.10 PANA-Reauth-Answer (PRAA) . . . . . . . . . . . . . . . . 39
9.3.8 PANA-Bind-Answer (PBA) . . . . . . . . . . . . . . . . . . 35 6.4.11 PANA-Termination-Request (PTR) . . . . . . . . . . . . . . 39
9.3.9 PANA-Reauth-Request (PRAR) . . . . . . . . . . . . . . . . 35 6.4.12 PANA-Termination-Answer (PTA) . . . . . . . . . . . . . . 39
9.3.10 PANA-Reauth-Answer (PRAA) . . . . . . . . . . . . . . . . 35 6.4.13 PANA-Error (PER) . . . . . . . . . . . . . . . . . . . . . 40
9.3.11 PANA-Termination-Request (PTR) . . . . . . . . . . . . . . 35 6.4.14 PANA-FirstAuth-End-Request (PFER) . . . . . . . . . . . . 40
9.3.12 PANA-Termination-Answer (PTA) . . . . . . . . . . . . . . 36 6.4.15 PANA-FirstAuth-End-Answer (PFEA) . . . . . . . . . . . . . 40
9.3.13 PANA-Error (PER) . . . . . . . . . . . . . . . . . . . . . 36 6.5 AVPs in PANA . . . . . . . . . . . . . . . . . . . . . . . 40
9.4 AVPs in PANA . . . . . . . . . . . . . . . . . . . . . . . 36 6.5.1 MAC AVP . . . . . . . . . . . . . . . . . . . . . . . . . 41
9.4.1 MAC AVP . . . . . . . . . . . . . . . . . . . . . . . . . 36 6.5.2 Device-Id AVP . . . . . . . . . . . . . . . . . . . . . . 41
9.4.2 Device-Id AVP . . . . . . . . . . . . . . . . . . . . . . 37 6.5.3 Session-Id AVP . . . . . . . . . . . . . . . . . . . . . . 41
9.4.3 Session-Id AVP . . . . . . . . . . . . . . . . . . . . . . 37 6.5.4 Cookie AVP . . . . . . . . . . . . . . . . . . . . . . . . 42
9.4.4 Cookie AVP . . . . . . . . . . . . . . . . . . . . . . . . 38 6.5.5 Protection-Capability AVP . . . . . . . . . . . . . . . . 42
9.4.5 Protection-Capability AVP . . . . . . . . . . . . . . . . 38 6.5.6 Termination-Cause AVP . . . . . . . . . . . . . . . . . . 42
9.4.6 Termination-Cause AVP . . . . . . . . . . . . . . . . . . 38 6.5.7 Result-Code AVP . . . . . . . . . . . . . . . . . . . . . 42
9.4.7 Result-Code AVP . . . . . . . . . . . . . . . . . . . . . 38 6.5.8 EAP-Payload AVP . . . . . . . . . . . . . . . . . . . . . 46
9.4.8 EAP-Payload AVP . . . . . . . . . . . . . . . . . . . . . 42 6.5.9 Session-Lifetime AVP . . . . . . . . . . . . . . . . . . . 46
9.4.9 Session-Lifetime AVP . . . . . . . . . . . . . . . . . . . 42 6.5.10 Failed-AVP AVP . . . . . . . . . . . . . . . . . . . . . . 46
9.4.10 Failed-AVP AVP . . . . . . . . . . . . . . . . . . . . . . 42 6.5.11 NAP-Information AVP . . . . . . . . . . . . . . . . . . . 46
9.4.11 NAP-Information AVP . . . . . . . . . . . . . . . . . . . 42 6.5.12 ISP-Information AVP . . . . . . . . . . . . . . . . . . . 47
9.4.12 ISP-Information AVP . . . . . . . . . . . . . . . . . . . 42 6.5.13 Provider-Identifier AVP . . . . . . . . . . . . . . . . . 47
9.4.13 Provider-Identifier AVP . . . . . . . . . . . . . . . . . 42 6.5.14 Provider-Name AVP . . . . . . . . . . . . . . . . . . . . 47
9.4.14 Provider-Name AVP . . . . . . . . . . . . . . . . . . . . 43 6.5.15 EP-Device-Id AVP . . . . . . . . . . . . . . . . . . . . . 47
9.4.15 EP-Device-Id AVP . . . . . . . . . . . . . . . . . . . . . 43 6.5.16 Key-Id AVP . . . . . . . . . . . . . . . . . . . . . . . . 47
9.4.16 Key-Id AVP . . . . . . . . . . . . . . . . . . . . . . . . 43 6.5.17 Post-PANA-Address-Configuration (PPAC) AVP . . . . . . . . 47
9.5 AVP Occurrence Table . . . . . . . . . . . . . . . . . . . 43 6.5.18 Nonce AVP . . . . . . . . . . . . . . . . . . . . . . . . 48
10. PANA Protocol Message Retransmissions . . . . . . . . . . 45 6.6 AVP Occurrence Table . . . . . . . . . . . . . . . . . . . 49
10.1 Transmission and Retransmission Parameters . . . . . . . . 47 7. PANA Protocol Message Retransmissions . . . . . . . . . . 51
11. Security Considerations . . . . . . . . . . . . . . . . . 48 7.1 Transmission and Retransmission Parameters . . . . . . . . 53
12. Open Issues . . . . . . . . . . . . . . . . . . . . . . . 53 8. IANA Considerations . . . . . . . . . . . . . . . . . . . 54
13. Change History . . . . . . . . . . . . . . . . . . . . . . 54 8.1 PANA UDP Port Number . . . . . . . . . . . . . . . . . . . 54
14. Acknowledgments . . . . . . . . . . . . . . . . . . . . . 55 8.2 PANA Multicast Address . . . . . . . . . . . . . . . . . . 54
Normative References . . . . . . . . . . . . . . . . . . . 56 8.3 PANA Header . . . . . . . . . . . . . . . . . . . . . . . 54
Informative References . . . . . . . . . . . . . . . . . . 57 8.3.1 Message Type . . . . . . . . . . . . . . . . . . . . . . . 54
Authors' Addresses . . . . . . . . . . . . . . . . . . . . 59 8.3.2 Flags . . . . . . . . . . . . . . . . . . . . . . . . . . 54
A. Adding sequence number to PANA for carrying EAP . . . . . 61 8.4 AVP Header . . . . . . . . . . . . . . . . . . . . . . . . 54
A.1 Why is sequence number needed for PANA to carry EAP? . . . 61 8.4.1 AVP Code . . . . . . . . . . . . . . . . . . . . . . . . . 54
A.2 Single sequence number approach . . . . . . . . . . . . . 62 8.4.2 Flags . . . . . . . . . . . . . . . . . . . . . . . . . . 55
A.2.1 Single sequence number with EAP retransmission method . . 62 8.4.3 Vendor Id . . . . . . . . . . . . . . . . . . . . . . . . 55
A.2.2 Single sequence number with PANA-layer retransmission 8.5 AVP Values . . . . . . . . . . . . . . . . . . . . . . . . 55
method . . . . . . . . . . . . . . . . . . . . . . . . . . 63 8.5.1 MAC AVP Values . . . . . . . . . . . . . . . . . . . . . . 55
A.3 Dual sequence number approach . . . . . . . . . . . . . . 66 8.5.2 Device-Id AVP Values . . . . . . . . . . . . . . . . . . . 55
A.3.1 Dual sequence number with orderly-delivery method . . . . 66 8.5.3 Protection-Capability AVP Values . . . . . . . . . . . . . 55
A.3.2 Dual sequence number with reliable-delivery method . . . . 68 8.5.4 Result-Code AVP Values . . . . . . . . . . . . . . . . . . 55
A.3.3 Comparison of the dual sequence number methods . . . . . . 69 8.5.5 Termination-Cause AVP Values . . . . . . . . . . . . . . . 55
A.4 Consensus . . . . . . . . . . . . . . . . . . . . . . . . 69 8.5.6 Provider-Identifier AVP Values . . . . . . . . . . . . . . 55
Intellectual Property and Copyright Statements . . . . . . 70 8.5.7 Post-PANA-Address-Configuration AVP Values . . . . . . . . 55
9. Security Considerations . . . . . . . . . . . . . . . . . 56
10. Open Issues and Change History . . . . . . . . . . . . . . 62
11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . 63
Normative References . . . . . . . . . . . . . . . . . . . 64
Informative References . . . . . . . . . . . . . . . . . . 66
Authors' Addresses . . . . . . . . . . . . . . . . . . . . 69
Intellectual Property and Copyright Statements . . . . . . 71
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.
skipping to change at page 4, line 38 skipping to change at page 5, line 38
Various environments and usage models for PANA are identified in the Various environments and usage models for PANA are identified in the
[I-D.ietf-pana-usage-scenarios] Internet-Draft. Potential security [I-D.ietf-pana-usage-scenarios] Internet-Draft. 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] draft. These two drafts
have been essential in defining the requirements have been essential in defining the requirements
[I-D.ietf-pana-requirements] on the PANA protocol. Note that some of [I-D.ietf-pana-requirements] on the PANA protocol. Note that some of
these requirements are imposed by the chosen payload, EAP these requirements are imposed by the chosen payload, EAP
[I-D.ietf-eap-rfc2284bis]. [I-D.ietf-eap-rfc2284bis].
There are components that are part of a complete secure network
solution but are outside of the PANA protocol specification,
including IP address configuration, authentication method choice,
filter rule installation, data traffic protection and PAA-EP
protocol. These components are described in separate documents
[I-D.ietf-pana-framework][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
skipping to change at page 5, line 32 skipping to change at page 6, line 32
network access. 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 is included in PANA messages to bind the message
to a specific PANA session. to a specific PANA session.
PANA Security Association: PANA Security Association:
The representation of the trust relation between the PaC and the A PANA security association is a relationship between the PaC and
PAA that is created at the end of the authentication phase. This PAA, formed by the sharing of cryptographic keying material and
security association includes the device identifier of the peer, associated context. Security associations are duplex. That is,
and a shared key when available. one security association is needed to protect the bidirectional
traffic between the PaC and the PAA.
PANA Client (PaC): PANA Client (PaC):
The client side of the protocol that resides in the host device The client side of the protocol that resides in the host device
which is responsible for providing the credentials to prove its which is responsible for providing the credentials to prove its
identity for network access authorization. identity for network access authorization.
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
skipping to change at page 9, line 20 skipping to change at page 10, line 20
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:
o Cookie AVP: contains a random value that is used for making o Cookie AVP: contains a random value that is used for making
initial handshake robust against blind resource consumption DoS initial handshake robust against blind resource consumption DoS
attacks. attacks.
o Protection-Capability AVP: contains information which protection o Protection-Capability AVP: contains information which protection
should be initiated after the PANA exchange (e.g. link-layer or should be initiated after the PANA exchange (e.g., link-layer or
network layer protection). network layer protection).
o Device-Id AVP: contains a device identifier of the sender of the o Device-Id AVP: contains a device identifier of the sender of the
message. A device identifier is represented as a pair of device message. A device identifier is represented as a pair of device
identifier type and device identifier value. Either a layer-2 identifier type and device identifier value. Either a layer-2
address or an IP address is used for the device identifier value. address or an IP address is used for the device identifier value.
o EP-Device-Id AVP: contains the device identifier of an EP. o EP-Device-Id AVP: contains the device identifier of an EP.
o EAP AVP: contains an EAP PDU. o EAP AVP: contains an EAP PDU.
skipping to change at page 10, line 5 skipping to change at page 10, line 51
o Session-Lifetime AVP: contains the duration of authorized access. o Session-Lifetime AVP: contains the duration of authorized access.
o Failed-AVP: contains the offending AVP that caused a failure. o Failed-AVP: contains the offending AVP that caused a failure.
o NAP-Information AVP, ISP-Information AVP: contains the information o NAP-Information AVP, ISP-Information AVP: contains the information
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
of IP address configuration methods available when sent by the
PAA, and the chosen method when sent by the PaC.
o Nonce AVP: contains a randomly chosen value.
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. PaC MUST NOT use unspecified IP address for communicating unicast. PANA-PAA-Discover MAY be unicasted when the PaC knows the
with 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 include one transmitted sequence number (tseq) and one received
sequence number (rseq) in the PANA header. See Appendix A for sequence number (rseq) in the PANA header. See [1] for detailed
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. tseq starts from initial sequence number
(ISN) and is monotonically increased by 1. The serial number (ISN) and is monotonically increased by 1. The serial number
arithmetic defined in [RFC1982] is used for sequence number arithmetic defined in [RFC1982] is used for sequence number
operation. The ISNs are exchanged between PaC and PAA during the operation. The ISNs are exchanged between PaC and PAA during the
discovery and initial handshake phase (see Section 4.2). The rules discovery and initial handshake phase (see Section 4.2). The rules
that govern the sequence numbers in other phases are described as that govern the sequence numbers in other phases are described as
follows. follows.
skipping to change at page 11, line 7 skipping to change at page 12, line 12
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]
to provide congestion control. See Section 10 for default timer and to provide congestion control. See Section 7 for default timer and
maximum retransmission count parameters. maximum retransmission count parameters.
4.1.5 PANA Security Association 4.1.5 PANA Security Association
A PANA SA is created as an attribute of a PANA session when EAP A PANA SA is created as an attribute of a PANA session when EAP
authentication succeeds with a creation of a AAA-Key. A PANA SA is authentication succeeds with a creation of a AAA-Key. A PANA SA is
not created when the PANA authentication fails or no AAA-Key is not created when the PANA authentication fails or no AAA-Key is
produced by any EAP authentication method. In the case where two EAP produced by any EAP authentication method. In the case where two EAP
authentications are performed in a sequence in a single PANA authentications are performed in sequence in a single PANA
authentication, it is possible that two AAA-Keys are derived. If this authentication phase, it is possible that two AAA-Keys are derived.
happens, the PANA SA MUST be bound to the AAA-Key derived from the If this happens, the PANA SA MUST be generated from both AAA-Keys.
first EAP authentication. When a new AAA-Key is derived as a result When a new AAA-Key is derived as a result of EAP-based
of EAP-based re-authentication, any key derived from the old AAA-Key re-authentication, any key derived from the old AAA-Key MUST be
MUST be updated to a new one that is derived from the new AAA-Key. updated to a new one that is derived from the new AAA-Key. In order
In order to distinguish the new AAA-Key from old ones, one Key-Id AVP to distinguish the new AAA-Key from old ones, one Key-Id AVP MUST be
MUST be carried in PANA-Bind-Request and PANA-Bind-Answer message at carried in PANA-Bind-Request and PANA-Bind-Answer messages or
the end of the authentication phase which resulted in deriving a new PANA-FirstAuth-End-Request and PANA-FirstAuth-End-Answer messages at
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 sent in response to a PANA-Bind-Request The PANA-Bind-Answer message (or the PANA-FirstAuth-End-Answer
with a Key-Id AVP MUST contain a Key-Id AVP with the same AAA-Key message) sent in response to a PANA-Bind-Request message (or a
identifier carried in the request. PANA-Bind-Request and PANA-FirstAuth-End-Request message) with a Key-Id AVP MUST contain a
PANA-Bind-Answer messages with a Key-Id AVP MUST also carry a MAC AVP Key-Id AVP with the same AAA-Key identifier carried in the request.
whose value is computed by using the new AAA-Key. Although the PANA-Bind-Request, PANA-Bind-Answer, PANA-FirstAuth-End-Request and
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
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
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:
skipping to change at page 12, line 28 skipping to change at page 13, line 39
* Protection-Capability * Protection-Capability
* PANA SA attributes: * PANA SA attributes:
+ AAA-Key + AAA-Key
+ AAA-Key Identifier + AAA-Key Identifier
+ PANA_MAC_Key + PANA_MAC_Key
The PANA_MAC_Key is used to integrity protect PANA messages and The PANA_MAC_Key is used to integrity protect PANA messages. When
derived from the AAA-Key in the following way: 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 = The first N bits of
HMAC_SHA1(AAA-Key, ISN_pac | ISN_paa | Session-ID) HMAC_SHA1(AAA-Key, ISN_pac | ISN_paa | Session-ID)
where the value of N depends on the integrity protection algorithm in where the value of N depends on the integrity protection algorithm in
use, i.e., N=160 for HMAC-SHA1. use, i.e., N=160 for HMAC-SHA1.
The length of AAA-Key MUST be N bits or longer. See Section 4.1.6 When the PANA_MAC_Key is derived from two AAA-Keys, it is computed in
for the detailed usage of the PANA_MAC_Key. the following way:
PANA_MAC_KEY = The first N bits of
HMAC_SHA1(AAA-Key1 | AAA-Key2, ISN_pac | ISN_paa |
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
longer. See 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)
skipping to change at page 13, line 20 skipping to change at page 14, line 43
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
the message. The PAA MUST NOT change the MAC algorithm throughout the message. The PAA MUST NOT change the MAC algorithm throughout
the continuation of the PANA session. the continuation of the PANA session.
4.1.7 Message Validity Check 4.1.7 Message Validity Check
When a PANA message is received, the message is considered to be When a PANA message is received, the message is considered to be
invalid at least when one of the following conditions are not met: invalid at least when one of the following conditions are not met:
o The IP Hop Limit (or TTL) field has a value of 255, i.e., the
packet could not possibly have been forwarded by a router.
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 IP header(s), or other auxiliary indetifier provided by the
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.
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.
skipping to change at page 14, line 31 skipping to change at page 16, line 9
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
PAA for PANA, it SHOULD send a PANA-PAA-Discover message to a well- PAA for PANA, it SHOULD send a PANA-PAA-Discover message to a
known link local multicast address (TBD) and UDP port (TBD). PANA well-known link local multicast address (TBD) and UDP port (TBD).
PAA discovery assumes that PaC and PAA are one hop away from each PANA PAA discovery assumes that PaC and PAA are one hop away from
other. If PaC knows the IP address of the PAA (some each other. If PaC knows the IP address of the PAA (some
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. PAA SHOULD answer to the PANA-PAA-Discover message with a
PANA-Start-Request message. 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, 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 that sent PaC. By default the PaC MAY choose the PAA that sent the first
the first response. response.
PaC may also choose to start sending packets before getting PaC MAY also choose to start sending packets before getting
authenticated. In that case, the network should detect this and send authenticated. In that case, the network MAY detect this and send an
an unsolicited PANA-Start-Request message to PaC. EP is the node that unsolicited PANA-Start-Request message to PaC in addition to
can detect such activity. If EP and PAA are co-located, then an filtering the unauthorized traffic. EP is the node that can detect
internal mechanism (e.g. API) between the EP module and the PAA such activity. PAA-to-EP protocol MAY be used for this purpose.
module on the same host can prompt PAA to start PANA. In case they
are separate, there needs to be an explicit message to prompt PAA.
Upon detecting the need to authenticate a client, EP can send a
PANA-PAA-Discover message to the PAA on behalf of the PaC. This
message carries a device identifier of the PaC in a Device-ID AVP. So
that, the PAA can send the unsolicited PANA-Start-Request message
directly to the PaC. If the link between the EP and PAA is not
secure, the PANA-PAA-Discover message sent from the EP to the PAA
MUST be protected by using, e.g., IPsec.
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 does
not require any per-session state maintenance on the PAA in order to not require any per-session state maintenance on the PAA in order to
verify the cookie returned in a PANA-Start-Answer message. The exact verify the cookie returned in a PANA-Start-Answer message. The exact
algorithms and syntax used for generating cookies does not affect algorithms and syntax used for generating cookies does not affect
interoperability and hence is not specified here. An example interoperability and hence is not specified here. An example
skipping to change at page 15, line 36 skipping to change at page 17, line 5
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 secret-
version should be changed frequently enough to prevent replay 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 locally known to the PAA only and 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 PAA MAY enable NAP-ISP authentication separation by setting the
S-flag of the message header of the PANA-Start-Request. Also, 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 PANA-Start-Request MAY contain zero or one NAP-Information AVP and
zero or more ISP-Information AVPs to advertise the information on the zero or more ISP-Information AVPs to advertise the information on the
NAP and/or ISPs. NAP and/or ISPs.
When a PaC receives the PANA-Start-Request message in response to the When a PaC receives the PANA-Start-Request message in response to the
PANA-PAA-Discover message, it responds with a PANA-Start-Answer PANA-PAA-Discover message, it responds with a PANA-Start-Answer
message if it wishes to enter the authentication phase. The message if it wishes to enter the authentication phase. The
PANA-Start-Answer message contains the initial sequence numbers in PANA-Start-Answer message contains the initial sequence numbers in
the tseq and rseq fields of the PANA header, a copy of the received the tseq and rseq fields of the PANA header, a copy of the received
Cookie (if any) as the PANA payload. Cookie (if any) as the PANA payload.
If the S-flag of the received PANA-Start-Request message is not set, 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 PaC MUST NOT set the S-flag in the PANA-Start-Answer message sent
back to the PAA. In this case, PaC can indicate its choice of ISP by back to the PAA. In this case, PaC MAY indicate its choice of ISP by
including its ISP-Information AVP in the PANA-Start-Answer message. including an ISP-Information AVP in the PANA-Start-Answer message.
AAA routing will be based on the ISP choice if an ISP-Information AVP When a AAA backend is used, the identity of the destination AAA
is specified in the PANA-Start-Answer message, otherwise it will be server or realm MUST be determined based on the explicitly chosen
based on EAP identifier. 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 If the S-flag of the received PANA-Start-Request message is set, PaC
can indicate its desire to perform separate EAP authentication for can indicate its desire to perform separate EAP authentication for
NAP and ISP by setting the S-flag in the PANA-Start-Answer message. NAP and ISP by setting the S-flag in the PANA-Start-Answer message.
In this case, PaC can also indicate its choice of ISP by including If the S-flag in the PANA-Start-Answer message is not set, only one
its ISP-Information AVP in the PANA-Start-Answer message. AAA authentication is performed and the processing occurs as described
routing for NAP authentication will be based on the NAP. AAA routing earlier. If the S-flag in the PANA-Start-Answer message is set, the
for ISP authentication will be based on the ISP choice if an determination of the destination AAA server or realm for ISP
ISP-Information AVP is specified in the PANA-Start-Answer message, authentication is performed as described earlier. In addition, where
otherwise it will be based on EAP identifier. If the S-flag of the backend AAA servers are used for NAP authentication, the NAP is
received PANA-Start-Request message is set and the S-flag of the considered the ultimate AAA realm, and the destination AAA server for
corresponding PANA-Start-Answer message is not set, only one EAP this authentication is determined entirely by the local configuration
authentication occurs without distinction between NAP and ISP on the access server hosting PAA (NAS).
authentications. In this case, PaC can still indicate its choice of
ISP by including its ISP-Information AVP in the PANA-Start-Answer The PaC can choose an ISP and contain an ISP-Information AVP for the
message. 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.
When a Cookie-AVP is carried in a PANA-Start-Request message, the Initial EAP Request MAY be optionally carried by the
initial EAP Request MUST NOT be carried in the PANA-Start-Request PANA-Start-Request (as opposed to by a later PANA-Auth-Request)
message in order for the PAA to be stateless. message in order to reduce the number of round-trips. This
optimization SHOULD NOT be used if the PAA discovery is desired to be
stateless.
When a Cookie-AVP is not carried in a PANA-Start-Request message, the When the S-flag is set in a PANA-Start-Request message, the initial
PAA does not need to be stateless. In this case, the initial EAP EAP Request MUST NOT be carried in the PANA-Start-Request message.
Request message MAY 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.)
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 PANA-Start-Request message is never retransmitted. A A PANA-Start-Request message that carries a Cookie AVP is never
PANA-Start-Answer message is retransmitted based on timer in the same retransmitted. A PANA-Start-Request message that does not carry a
manner as other messages retransmitted at PANA-layer. Cookie AVP is retransmitted based on timer. A PANA-Start-Answer
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
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 for the has sent a PANA-Start-Request message with creating a state (i.e., no
PaC. 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
(message was lost for example). If PAA had sent stateless
PANA-Start-Request message (i.e., a Cookie AVP was included), then it
SHOULD answer to the PANA-PAA-Discover message.
PaC PAA Message PaC PAA Message
------------------------------------------------------ ------------------------------------------------------
-----> PANA-PAA-Discover(0,0) -----> PANA-PAA-Discover(0,0)
<----- PANA-Start-Request(x,0)[Cookie] <----- PANA-Start-Request(x,0)[Cookie]
-----> PANA-Start-Answer(y,x)[Cookie] -----> PANA-Start-Answer(y,x)[Cookie]
(continued to authentication phase) (continued to authentication phase)
Figure 2: Example Sequence for Discovery and Initial Handshake Phase Figure 2: 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
------------------------------------------------------ ------------------------------------------------------
---->o (Data packet arrival or L2 trigger) ---->o (Data packet arrival or L2 trigger)
------> PANA-PAA-Discover(0,0)[Device-Id] ------> PAA-to-EP protocol, or another mechanism
<------------ PANA-Start-Request(x,0)[ Cookie] <------------ PANA-Start-Request(x,0)[ Cookie]
------------> PANA-Start-Answer(y,x)[ Cookie] ------------> PANA-Start-Answer(y,x)[ Cookie]
(continued to authentication phase) (continued to authentication phase)
Figure 3: Example Sequence for Discovery and Initial Handshake when Figure 3: Example Sequence for Discovery and Initial Handshake when
PANA-PAA-Discover is sent by EP discovery is triggered by data traffic
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. All EAP messages except for EAP Success/Failure between PaC and PAA. EAP Request messages are carried in PANA-
messages are carried in the PANA-Auth-Request/PANA-Auth-Answer Auth-Request messages and optionally carried in PANA-Start-Request
messages. When an EAP Success/Failure message is sent from a PAA, messages. EAP Response messages are carried in PANA-Auth-Answer
the message is carried in the PANA-Bind-Request message. The PANA- messages and optionally carried in PANA-Start-Answer messages. When
Bind-Request message is acknowledged with a PANA-Bind-Answer. It is an EAP Success/Failure message is sent from a PAA, the message is
possible to carry multiple EAP sequences in a single PANA session. carried in a PANA-Bind-Request (PBR) or PANA-FirstAuth-End-Request
(PFER) message. The PANA-FirstAuth-End-Reques message MUST be used
at the end of the first EAP when the PaC and PAA have negotiated
during the discovery and initial handshake phase to perform separate
NAP and ISP authentications in a single PANA authentication phase.
Otherwise, the PANA-Bind-Request message MUST be used. The
PANA-Bind-Request and PANA-FirstAuth-End-Request messages MUST be
acknowledged with a PANA-Bind-Answer (PBA) and a
PANA-FirstAuth-End-Answer (PFEA) messages, respectively.
When PaC and PAA 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 in a handshake phase to perform separate NAP and ISP authentications, the
single PANA session, the PAA determines the execution order of NAP S-flag of PANA-Auth-Request and PANA-Auth-Answer messages MUST be
authentication and ISP authentication. In this case, the PAA can set. Otherwise, the S-flag MUST NOT be set.
indicate which EAP authentication is currently occurring by including
a NAP-Information or an ISP-Information AVP of the corresponding EAP When separate NAP and ISP authentications are performed, the PAA
authentication in the first PANA-Auth-Request message sent to the determines the execution order of NAP authentication and ISP
PaC. In the case where the PaC agreed to perform separate authentication. In this case, the PAA can indicate which EAP
authentications but did not specify its ISP choice in authentication is currently occurring by using N-flag in the PANA
PANA-Start-Answer message, the PAA MUST include its NAP-Information message header. When NAP authentication is performed, the N-flag
AVP in PANA-Auth-Request message when it performs NAP authentication MUST be set. When ISP authentication is performed, the N-flag MUST
and MUST NOT include any service provider information AVP when it NOT be set. The N-flag MUST NOT be set when S-flag is not set.
performs ISP authentication so that the PaC can always distinguish
ISP authentication from NAP authentication. The PAA SHOULD stop When separate NAP and ISP authentications are performed, if the first
including a NAP-Information or an ISP-Information AVP once it EAP authentication has failed, the PAA can choose not to perform the
receives the first PANA-Auth-Answer message of the current EAP second EAP authentication by clearing the S-flag of the
authentication. 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.
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
perform the second EAP authentication by clearing the S-flag of the
PANA-FirstAuth-End-Answer message. If the first EAP authentication
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
immediately deleted. Otherwise, the second EAP authentication MUST 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 an authentication decision based on the not effect the other. Making a network access authorization decision
success or failure of each authentication is a network policy issue. based on the success or failure of each authentication is a network
PANA signals only the result of the immediately preceding EAP policy issue.
authentication method in PANA-Bind-Request messages.
When an EAP method that is capable of deriving keys is used during When an EAP method that is capable of deriving keys is used during
the authentication phase and the keys are successfully derived the the authentication phase and the keys are successfully derived, the
PANA-Bind-Request and PANA-Bind-Answer messages and all subsequent PANA-FirstAuth-End-Request and PANA-FirstAuth-End-Answer and/or
PANA messages MUST contain a MAC AVP. The PANA-Bind-Request and the PANA-Bind-Request and PANA-Bind-Answer messages, and all subsequent
PANA-Bind-Answer message exchange is also used for binding device PANA messages MUST contain a MAC AVP.
identifiers of the PaC and the PAA to the PANA SA. To achieve this,
the PANA-Bind-Request and the PANA-Bind-Answer SHOULD contain a When separate NAP and ISP authentications are performed and the
device identifier of the PAA and the PaC, respectively, in a lower-layer is insecure, the two EAP methods MUST be capable of
Device-Id AVP. The PaC MUST use the same type of device identifier deriving keys. In this case, if the first EAP authentication is
as contained in the PANA-Bind-Request message. The PANA-Bind-Request successful, the PANA-FirstAuth-End-Request and
message MAY also contain a Protection-Capability AVP to indicate if PANA-FirstAuth-End-Answer messages as well as PANA-Auth-Request and
link-layer or network-layer ciphering should be initiated after PANA. PANA-Auth-Answer messages in the second EAP authentication MUST be
No link layer or network layer specific information is included in protected with the key derived from the AAA-Key for the first EAP
the Protection-Capability AVP. When the information is preconfigured authentication. The PANA-Bind-Request and PANA-Bind-Answer messages
on the PaC and the PAA this AVP can be omitted. It is assumed that at and all subsequent PANA messages MUST be protected either with the
least PAA is aware of the security capabilities of the access AAA-Key for the first EAP authentication if the first EAP
network. The PANA protocol does not specify how the PANA SA and the authentication succeeds and the second EAP authentication fails, or
Protection-Capability AVP will be used to provide per-packet with the AAA-Key for the second EAP authentication if the first EAP
protection for data traffic. authentication fails and the second EAP authentication succeeds, or
with the compound key derived from the two AAA-Keys, one for the
first EAP authentication and the other from the second EAP
authentication, if both the first and second EAP authentications
succeed (see Section 4.1.5 for how the compound key is derived).
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
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
contain a device identifier of the PAA and the PaC, respectively, in
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
same type of device identifier as contained in the PANA-Bind-Request
message. The PANA-Bind-Request message MAY also contain a
Protection-Capability AVP to indicate if link-layer or network-layer
ciphering should be initiated after PANA. No link layer or network
layer specific information is included in the Protection-Capability
AVP. When the information is preconfigured on the PaC and the PAA
this AVP can be omitted. It is assumed that at least PAA is aware of
the security capabilities of the access network. The PANA protocol
does not specify how the PANA SA and the Protection-Capability AVP
will be used to provide per-packet protection for data traffic.
Additionally, PANA-Bind-Request MUST include a
Post-PANA-Address-Configuration AVP, which helps PAA to inform PaC
about whether a new IP address MUST be configured and the available
methods to do so. PaC MUST include a PPAC AVP in order to indicate
its choice of method when there is a match between the methods
offered by the PAA and the methods available on the PaC. When there
is no match, a PPAC AVP MUST NOT be included and the Result-Code AVP
MUST be set to PANA_PPAC_CAPABILITY_UNSUPPORTED in the
PANA-Bind-Answer message.
PANA-Bind-Request and PANA-Bind-Answer messages MUST be retransmitted PANA-Bind-Request and PANA-Bind-Answer messages MUST be retransmitted
based on the retransmission rule described in Appendix A. based on the retransmission rule described in Section 4.1.4.
EAP authentication can fail at a pass-through authenticator without
sending an EAP-Failure message [I-D.ietf-eap-statemachine]. When
this occurs, the PAA SHOULD send a PANA-Error message to the PaC with
using PANA_UNABLE_TO_COMPLY result code. The PaC SHOULD ignore the
message unless it is secured by PANA or lower layer. In any case, a
more appropriate way is to rely on a timeout on the PaC.
There is a case where EAP authentication succeeds with producing an
EAP-Success message but network access authorization fails due to,
e.g., authorization rejected by a AAA proxy or authorization locally
rejected by a PAA. When this occurs, the PAA MUST send
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
EAP-Success is generated by the EAP server (this is the case when the
EAP method provides protected success indication), the this PANA-Bind
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
the PANA-Bind message exchange.
PaC PAA Message(tseq,rseq)[AVPs] PaC PAA Message(tseq,rseq)[AVPs]
------------------------------------------------- -------------------------------------------------
(continued from discovery and initial handshake phase) (continued from discovery and initial handshake phase)
<----- PANA-Auth-Request(x+1,y)[EAP{Request}] <----- PANA-Auth-Request(x+1,y)[EAP{Request}]
-----> PANA-Auth-Answer(y+1,x+1)[EAP{Response}] -----> PANA-Auth-Answer(y+1,x+1)[EAP{Response}]
. .
. .
<----- PANA-Auth-Request (x+2,y+1)[EAP{Request}] <----- PANA-Auth-Request (x+2,y+1)[EAP{Request}]
-----> PANA-Auth-Answer (y+2,x+2)[EAP{Response}] -----> PANA-Auth-Answer (y+2,x+2)[EAP{Response}]
<----- PANA-Bind-Request(x+3,y+2) <----- PANA-Bind-Request(x+3,y+2)
[EAP{Success}, Device-Id, Lifetime, Protection-Cap., MAC] [EAP{Success}, Device-Id, Lifetime, Protection-Cap.,
-----> PANA-Bind-Answer(y+3,x+3) PPAC, MAC]
[Device-Id, Protection-Cap., MAC] -----> PANA-Bind-Answer(y+3,x+3)[Device-Id, PPAC, MAC]
Figure 4: Example Sequence in Authentication Phase 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
skipping to change at page 19, line 43 skipping to change at page 23, line 4
it sends a PANA-Auth-Request message containing the same identifier it sends a PANA-Auth-Request message containing the same identifier
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 SHOULD be protected PANA-Auth-Request and PANA-Auth-Answer messages MUST be protected by
by adding a MAC AVP to each message. adding a MAC AVP to each message.
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 SA, both the PaC and the
PAA are allowed to send a PANA-Reauth-Request message to 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 it needs to make sure the availability of
the PANA SA on the peer and expect the peer to return a PANA- the PANA SA on the peer and expect the peer to return a PANA-
Reauth-Answer message. Both PANA-Reauth-Request/ PANA-Reauth-Answer Reauth-Answer message. Both PANA-Reauth-Request/ PANA-Reauth-Answer
messages MUST be protected with a MAC AVP. messages MUST be protected with a MAC AVP.
Implementations MUST limit the rate of performing re-authentication Implementations MUST limit the rate of performing re-authentication
for both types of re-authentication. 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
coordination with each other. There is no negotiation of timers for
this purpose.
PaC PAA Message(tseq,rseq)[AVPs] PaC PAA Message(tseq,rseq)[AVPs]
------------------------------------------------------ ------------------------------------------------------
-----> PANA-Reauth-Request(q,p)[MAC] -----> PANA-Reauth-Request(q,p)[MAC]
<----- PANA-Reauth-Answer(p+1,q)[MAC] <----- PANA-Reauth-Answer(p+1,q)[MAC]
Figure 5: Example Sequence for PaC-initiated second type Figure 5: Example Sequence for PaC-initiated second type
Re-authentication Re-authentication
PaC PAA Message(tseq,rseq)[AVPs] PaC PAA Message(tseq,rseq)[AVPs]
skipping to change at page 20, line 36 skipping to change at page 24, line 4
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 PANA- protected with a MAC AVP. When the sender of the
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)[MAC]
<----- PANA-Termination-Answer(p+1,q)[MAC] <----- PANA-Termination-Answer(p+1,q)[MAC]
Figure 7: Example Sequence for Session Termination Figure 7: Example Sequence for Session Termination
4.6 Illustration of a Complete Message Sequence 4.6 Illustration of a Complete Message Sequence
A complete PANA message sequence is illustrated in Figure 8. The A complete PANA message sequence is illustrated in Figure 8. The
example assumes the following scenario: example assumes the following scenario:
o PaC multicasts PANA-PAA-Discover message o 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.
skipping to change at page 21, line 47 skipping to change at page 25, line 19
<----- PANA-Start-Request (x,0)[Cookie] <----- PANA-Start-Request (x,0)[Cookie]
-----> PANA-Start-Request-Answer (y,x)[Cookie] -----> PANA-Start-Request-Answer (y,x)[Cookie]
// Authentication phase // Authentication phase
<----- PANA-Auth-Request(x+1,y)[EAP] <----- PANA-Auth-Request(x+1,y)[EAP]
-----> PANA-Auth-Answer(y+1,x+1)[EAP] -----> PANA-Auth-Answer(y+1,x+1)[EAP]
<----- PANA-Auth-Request(x+2,y+1)[EAP] <----- PANA-Auth-Request(x+2,y+1)[EAP]
-----> PANA-Auth-Answer(y+2,x+2)[EAP] -----> PANA-Auth-Answer(y+2,x+2)[EAP]
<----- PANA-Bind-Request(x+3,y+2) <----- PANA-Bind-Request(x+3,y+2)
[EAP{Success}, Device-Id, Lifetime, Protection-Cap., MAC] [EAP{Success}, Device-Id, Lifetime, Protection-Cap., MAC]
-----> PANA-Bind-Answer(y+3,x+3) -----> PANA-Bind-Answer(y+3,x+3)[Device-Id, MAC]
[Device-Id, Protection-Cap., MAC]
// Re-authentication // Re-authentication
<----- PANA-Reauth-Request (x+4,y+3)[MAC] <----- PANA-Reauth-Request (x+4,y+3)[MAC]
-----> PANA-Reauth-Answer (y+4,x+4)[MAC] -----> PANA-Reauth-Answer (y+4,x+4)[MAC]
// Termination phase // Termination phase
-----> PANA-Termination-Request(y+5,x+4)[MAC] -----> PANA-Termination-Request(y+5,x+4)[MAC]
<----- PANA-Termination-Answer (x+5,y+5)[MAC] <----- PANA-Termination-Answer (x+5,y+5)[MAC]
Figure 8: A Complete Message Sequence Figure 8: A Complete Message Sequence
Another PANA message sequence is illustrated in Figure 9. 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 PAA offers NAP and ISP separate authentication, as well as a
choice of ISP from "ISP1" and "ISP2". PaC accepts the offer from
PAA, with choosing "ISP1" as the ISP.
o An EAP sequence for NAP authentication and an EAP sequence for ISP
authentication is performed in this order in authentication phase.
o An EAP authentication method with a single round trip is used in
the EAP sequence.
o The EAP authentication methods derive keys. Once the two EAP
authenticatioins are successful, the PANA_MAC_KEY is derived from
the two AAA-Keys.
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 Re-authentication and termination phase are not shown.
PaC PAA Message(tseq,rseq)[AVPs]
-----------------------------------------------------
// Discovery and initial handshake phase
-----> PANA-PAA-Discover (0,0)
<----- PANA-Start-Request (x,0) // S-flag set
[Cookie, ISP-Information("ISP1"),
ISP-Information("ISP2"),
NAP-Information("MyNAP")]
-----> PANA-Start-Request-Answer (y,x) // S-flag set
[Cookie, ISP-Information("ISP1")] // PaC chooses "ISP1"
// Authentication phase
<----- PANA-Auth-Request(x+1,y)[EAP] // NAP authentication
// 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-Answer(y+2,x+2)[EAP] // S- and N-flags set
<----- PANA-FirstAuth-End-Request(x+3,y+2) // S- and N-flags set
[EAP{Success}, Key-Id, MAC]
-----> PANA-FirstAuth-End-Answer(y+3,x+3) // S- and N-flags set
[Key-Id, MAC]
<----- PANA-Auth-Request(x+3,y+4)[EAP, MAC]// ISP authentication
// 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-Answer(y+5,x+5)[EAP, MAC] // S-flag set
<----- PANA-Bind-Request(x+5,y+6) // S-flag set
[EAP{Success}, Device-Id, Key-Id,
Lifetime, Protection-Cap., PPAC, MAC]
-----> PANA-Bind-Answer(y+6,x+5) // S-flag set
[Device-Id, Key-Id, PPAC, MAC]
Figure 9: A Complete Message Sequence for NAP and ISP Separate
Authentications
4.7 Device ID Choice 4.7 Device ID Choice
A PaC SHOULD configure an IP address before PANA if it can. It might The device identifiers used in the context of PANA can be an IP
either have a pre-configured IP address, or have to obtain one via address, a MAC address, or an identifier that is not carried on data
dynamic methods such as DHCP or stateless address autoconfiguration. packets but has local significance in identifying a connected host
Dynamic methods may or may not succeed depending on the local (e.g., circuit ID). The last type of identifiers are commonly used
security policy. In networks where clients have to be authorized in physically secured point-to-point links where MAC addresses are
before they are allowed to obtain an IP address, EPs will detect the not available.
associated activity and PANA protocol will be engaged before the
clients can configure a valid IP address.
Either an IP address or a link-layer address SHOULD be used as device It is assumed that PAA knows the link type and the security
ID at any time. It is assumed that PAA knows the security mechanisms mechanisms being provided or required on the access network (e.g.,
being provided or required on the access network (e.g., based on based on physical security, link-layer ciphers enabled before or
physical security, link-layer ciphers enabled before or after PANA, after PANA, or IPsec). Based on that information, the PAA can decide
or IPsec). When IPsec-based mechanism [I-D.ietf-pana-ipsec] is the what type of device ID will be used when running PANA with the
choice of access control, PAA SHOULD provide its IP address as device client. When IPsec-based mechanism [I-D.ietf-pana-ipsec] is the
ID, and expect the PaC to provide its IP address in return. In all choice of access control, PAA SHOULD provide an IP address as device
other cases, link-layer addresses can be provided from both sides. ID, and expect the PaC to provide its IP address in return. 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
is not available, device ID exchange does not occur within PANA.
Instead, peers rely on lower-layers to provide locally-significant
identifiers along with received PANA packets.
4.8 Session Lifetime 4.8 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
manage PANA-related state. PaC does not have to perform any actions manage PANA-related state. PaC does not have to perform any actions
when the lifetime expires, other than optionally purging local state. when the lifetime expires, other than optionally purging local state.
PAA SHOULD initiate EAP authentication before the current session PAA SHOULD initiate EAP authentication before the current session
lifetime expires. lifetime expires.
PaC and PAA MAY optionally rely on lower-layer indications to PaC and PAA MAY optionally rely on lower-layer indications to
expedite the detection of a disconnected peer. Availability and expedite the detection of a disconnected peer. Availability and
reliability of such indications depend on the specific access reliability of such indications depend on the specific access
technologies. PANA peer can use PANA-Reauth-Request message to verify technologies. PANA peer can use PANA-Reauth-Request message to
the disconnection before taking an action. verify the disconnection before taking an action.
The session lifetime parameter is not related to the transmission of The session lifetime parameter is not related to the transmission of
PANA-Reauth-Request messages. These messages can be used for PANA-Reauth-Request messages. These messages can be used for
asynchronously verifying the liveness of the peer and enabling asynchronously verifying the liveness of the peer and enabling
mobility optimizations. The decision to send PANA-Reauth-Request mobility optimizations. The decision to send PANA-Reauth-Request
message is taken locally and does not require coordination between message is taken locally and does not require coordination between
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.9 Mobility Handling
When a PaC wants to resume an ongoing PANA session after connecting A mobile PaC's AAA performance can be enhanced by deploying a
to another link in the same access network, it MAY send the unexpired context-transfer-based mechanism, where some session attributes are
PANA session identifier in its PANA-Start-Answer message. In the transferred from the previous PAA to the current one in order to
absence of a Session-Id AVP in this message, PAA MUST assume this is avoid performing a full EAP authentication (reactive approach).
a fresh session and continue its normal execution. 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.
Upon changing its point of attachment, a PaC that wants to quickly
resume its ongoing PANA session without running EAP MAY send its
unexpired PANA session identifier in its PANA-Start-Answer message.
Along with the Session-Id AVP, MAC and Nonce AVPs MUST be included in
this message. Nonce AVP carries a randomly chosen value (PaC_Nonce),
and MAC AVP is computed by using the PANA_MAC_Key shared between the
PaC and its previous PAA that has an unexpired PANA session with the
PaC. This action signals PaC's desire to perform the mobility
optimization. In the absence of Session-Id AVP in this message, PANA
session takes its usual course (i.e., EAP-based authentication is
performed).
If PAA receives a session identifier in the PANA-Start-Answer If PAA receives a session identifier in the PANA-Start-Answer
message, and it is configured to enable fast re-authentication, it message, and it is configured to enable this optimization, it SHOULD
SHOULD retrieve the PANA session attributes from the previous PAA of retrieve the PANA session attributes from the previous PAA. Current
the PaC. The mechanism required to determine the previous PAA of the PAA determines the identity of the previous PAA by looking at the
PaC by relying on the PANA session identifier is outside the scope of DiameterIdentity part of the PANA session identifier. The MAC AVP
PANA protocol. A possible solution is to embed the PAA identifier in can only be verified by the previous PAA, therefore a copy of the
the PANA session identifier. Furthermore, the mechanism required to PANA message SHOULD be provided to the previous PAA. The mechanism
retrieve the session attributes from the previous PAA is outside the required to send a copy of the PANA-Start-Answer message from current
scope of this protocol. Seamoby Context Transfer Protocol PAA to the previous PAA, and retrieve the session attributes is
[I-D.ietf-seamoby-ctp] might be useful for this purpose. outside the scope of PANA protocol. Seamoby Context Transfer
Protocol [I-D.ietf-seamoby-ctp] might be useful for this purpose.
When the PAA is not configured to enable fast re-authentication, or When the previous or current PAA is not configured to enable this
can not retrieve the PANA session attributes, or the PANA session has optimization, the current PAA can not retrieve the PANA session
already expired (i.e., session lifetime is zero), the PAA MUST send attributes, or the PANA session has already expired (i.e., session
the PANA-Auth-Request message with the new session identifier and let lifetime is zero), the PAA MUST send the PANA-Auth-Request message
the PANA exchange take its usual course. This action will engage EAP with a new session identifier and let the PANA exchange take its
authentication and create a fresh PANA session from scratch. usual course. This action will engage EAP-based authentication and
create a fresh PANA session from scratch.
In case the new PAA retrieves the on-going PANA session attributes In case the current PAA can retrieve the on-going PANA session
from the previous PAA, the PANA session continues with a PANA-Reauth attributes from the previous PAA, the PANA session continues with a
exchange. The MAC AVP contained in the PANA-Reauth messages MUST be PANA-Bind exchange.
generated and verified by using the retrieved PANA SA attributes.
This exchange MUST also include Session-Id AVP that contains the
newly assigned session identifier, and Device-Id AVP. A new PANA
session is created upon successful completion of this exchange. This
session inherits only the session lifetime, protection capability,
and AAA-Key attributes from the previous session. Other attributes
are generated based on the PANA exchanges on the new link. While
AAA-Key stays the same, a new PANA_MAC_Key is computed using the new
parameters. Subsequent MAC-AVPs are processed using this new PANA SA.
4.10 Event Notification As part of the context transfer, an intermediate AAA-Key material is
provided by the previous PAA to the current PAA.
Upon detecting the need to authenticate a client, EP can send a AAA-Key-int = The first N bits of
trigger message to the PAA on behalf of the PaC. This can be one of HMAC-SHA1(AAA-Key, DiameterIdentity | Session-ID)
the messages provided by the PAA-to-EP protocol, or, in the absence
of such a facility, PANA-PAA_Discover can be used as well. This
message MUST carry the device identifier of the PaC. So that, the PAA
can send the unsolicited PANA-Start-Request message directly to the
PaC. If the link between the EP and PAA is not physically secured,
this message sent from EP to PAA MUST be cryptographically protected
(e.g., by using IPsec).
4.11 Support for Separate EP 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,
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
with the previous PAA.
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
that MUST be carried in a Nonce AVP in the PANA-Bind-Request message.
AAA-Key-new = The first N bits of
HMAC-SHA1(AAA-Key-int, PaC_nonce | PAA_nonce)
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
assigned by the current PAA. The MAC AVP contained in the
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
include a new session identifier assigned by the current PAA. A new
PANA session is created upon successful completion of this exchange.
Note that correct operation of this optimization relies on many
factors, including applicability of authorization state from one
network attachment to another. [I-D.ietf-eap-keying] identifies this
operation as "fast handoff" and provides deployment considerations.
Operators are recommended to take those guidelines into account when
using this optimization in their networks.
4.10 Support for Separate EP
PANA allows PAA and EP to be separate entities. In this case, if PANA allows PAA and EP to be separate entities. In this case, if
data traffic protection needs to be initiated after successful PANA data traffic protection needs to be initiated after successful PANA
authentication phase, PaC needs to know the device identifier of authentication phase, PaC needs to know the device identifier of
EP(s) so that it is able to establish a security association with EP(s) so that it is able to establish a security association with
each EP to protect data traffic. 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
for triggering the PAA upon detecting the need to authenticate a 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 attack or service theft is not possible
[I-D.ietf-pana-threats-eval]. [I-D.ietf-pana-threats-eval].
Anywhere else where there is no secure channel prior to PANA, the Anywhere else where there is no secure channel prior to PANA, the
protocol needs to protect itself against such attacks. The device protocol needs to protect itself against such attacks. The device
identifier that is used during the authentication needs to be identifier that is used during the authentication needs to be
verified at the end of the authentication to prevent service theft verified at the end of the authentication to prevent service theft
and DoS attacks. Additionally, a free loader should be prevented from and DoS attacks. Additionally, a free loader should be prevented
spoofing data packets by using the device identifier of an already from spoofing data packets by using the device identifier of an
authorized legitimate client. Both of these requirements necessitate already authorized legitimate client. Both of these requirements
generation of a security association between the PaC and the PAA at necessitate generation of a security association between the PaC and
the end of the authentication. This can only be done when the the PAA at the end of the authentication. This can only be done when
authentication method used can generate cryptographic keys. Use of the authentication method used can generate cryptographic keys. Use
secret keys can prevent attacks which would otherwise be very easy to of secret keys can prevent attacks which would otherwise be very easy
launch by eavesdropping on and spoofing traffic over an insecure to launch by eavesdropping on and spoofing traffic over an insecure
link. link.
PANA relies on EAP and the EAP methods to provide a session key in PANA relies on EAP and the EAP methods to provide a session key in
order to establish a PANA security association. An example of such a order to establish a PANA security association. An example of such a
method is EAP-TLS [RFC2716], whereas EAP-MD5 method is EAP-TLS [RFC2716], whereas EAP-MD5
[I-D.ietf-eap-rfc2284bis] is an example of a method that cannot [I-D.ietf-eap-rfc2284bis] is an example of a method that cannot
create such keying material. The choice of EAP method becomes create such keying material. The choice of EAP method becomes
important, as discussed in the next section. important, as discussed in the next section.
This keying material is already used within PANA during the final This keying material is already used within PANA during the final
handshake. This handshake ensures that the device identifier that is handshake. This handshake ensures that the device identifier that is
bound to the PaC at the end of the authentication process is not bound to the PaC at the end of the authentication process is not
coming from a man-in-the-middle, but from the legitimate PaC. 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 Knowledge of the same keying material on both PaC and the PAA helps
prove this. The other use of the keying material will be discussed in prove this. The other use of the keying material is discussed in
Section 7 and Section 8. [I-D.ietf-pana-framework].
6. Authentication Method Choice
Authentication methods' capabilities and therefore applicability to
various environments differ among them. Not all methods provide
support for mutual authentication, key derivation or distribution,
and DoS attack resiliency that are necessary for operating in
insecure networks. Such networks might be susceptible to
eavesdropping and spoofing, therefore a stronger authentication
method needs to be used to prevent attacks on the client and the
network.
The authentication method choice is a function of the underlying
security of the network (e.g., physically secured, shared link,
etc.). It is the responsibility of the user and the network operator
to pick the right method for authentication. PANA carries EAP
regardless of the EAP method used. It is outside the scope of PANA to
mandate, recommend, or limit use of any authentication methods. PANA
cannot increase the strength of a weak authentication method to make
it suitable for an insecure environment. There are some EAP- based
approaches to achieve this goal (see
[I-D.josefsson-pppext-eap-tls-eap],[I-D.ietf-pppext-eap-ttls],
[I-D.tschofenig-eap-ikev2]). PANA can carry these EAP encapsulating
methods but it does not concern itself with how they achieve
protection for the weak methods (i.e., their EAP method payloads).
7. Filter Rule Installation
PANA protocol provides client authentication and authorization
functionality for securing network access. The other component of a
complete solution is the access control which ensures that only
authenticated and authorized clients can gain access to the network.
PANA enables access control by identifying legitimate clients and
generating filtering information for access control mechanisms.
Getting this filtering information to the EPs (Enforcement Points)
and performing filtering are outside the scope of PANA.
Access control can be achieved by placing EPs in the network for
policing the traffic flow. EPs should prevent data traffic from and
to any unauthorized client unless it's PANA traffic. When a client is
authenticated and authorized, PAA should notify EP(s) and ask for
changing filtering rules to allow traffic for a recently authorized
client. There needs to be a protocol between PAA and EP(s) when these
entities are not co-located. PANA Working Group will not be defining
a new protocol for this interaction. Instead, it will (preferably)
identify one of the existing protocols that can fit the requirements.
Possible candidates include but not limited to COPS, SNMP, DIAMETER.
This task is similar to what MIDCOM Working Group is trying to
achieve, therefore some of the MIDCOM's output might be useful here.
EPs' location in the network topology should be appropriate for
performing access control functionality. The closest IP-capable
access device to the client devices is the logical choice. PAA and
EPs on an access network should be aware of each other as this is
necessary for access control. Generally this can be achieved by
manual configuration. Dynamic discovery is another possibility, but
this is clearly outside the scope of PANA.
Filtering rules generally include device identifiers for a client,
and also cryptographic keying material when needed. Such keys are
needed when attackers can eavesdrop and spoof on the device
identifiers easily. They are used with link-layer or network-layer
ciphering to provide additional protection. For issues regarding
data-origin authentication see Section 8.
8. Data Traffic Protection
Protecting data traffic of authenticated and authorized clients from
others is another component of providing a complete secure network
access solution. Authentication, integrity and replay protection of
data packets are needed to prevent spoofing when the underlying
network is not physically secured. Encryption is needed when
eavesdropping is a concern in the network.
When the network is physically secured, or the link-layer ciphering 6. Message Formats
is already enabled prior to PANA, data traffic protection is already
in place. In other cases, enabling link-layer ciphering or network-
layer ciphering might rely on PANA authentication. The user and
network have to make sure an appropriate EAP method that can generate
required keying materials is used. Once the keying material is
available, it needs to be provided to the EP(s) for use with
ciphering.
Network-layer ciphering, i.e., IPsec, can be used when data traffic This section defines message formats for PANA protocol.
protection is required but link-layer ciphering capability is not
available. Note that a simple shared secret generated by an EAP
method is not readily usable by IPsec for authentication and
encryption of IP packets. Fresh and unique session key derived from
the EAP method is still insufficient to produce an IPsec SA since
both traffic selectors and other IPsec SA parameters are missing.
The shared secret can be used in conjunction with a key management
protocol like IKE [RFC2409] to turn a simple shared secret into the
required IPsec SA. The details of such mechanisms are outside the
scope of this document and can be found in [I-D.ietf-pana-ipsec].
Using network-layer ciphers should be regarded as a substitute for 6.1 IP and UDP Headers
link-layer ciphers when the latter is not available. IKE involves
several message exchanges which can incur additional delay and header
overhead in getting basic IP connectivity for a mobile device. Such a
latency is inevitable when there is no other alternative and this
level of protection is required. Network-layer ciphering can also be
used in addition to link-layer ciphering if the added benefits
outweigh its cost to the user and the network.
9. Message Formats 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
of the message is set to a well-known link-local multicast address
(TBD). A PANA-PAA-Discover message MAY be unicast in some cases as
specified in Section 4.2. Any other PANA packet is unicasted between
the PaC and the PAA. The source and destination addresses SHOULD be
set to the addresses on the interfaces from which the message will be
sent and received, respectively.
This section defines message formats for PANA protocol. When the PANA packet is sent in response to a request, the UDP source
and destination ports of the response packet MUST be copied from the
destination and source ports of the request packet, respectively.
The destination port of an unsolicited PANA packet MUST be set to an
assigned value (TBD), and the source port MUST be set to a value
chosen by the sender.
9.1 PANA Header 6.2 PANA Header
A summary of the PANA header format is shown below. The fields are A summary of the PANA header format is shown below. The fields are
transmitted in network byte order. transmitted in network byte order.
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Version | Message Length | | Version | Message Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | Message Type | | Flags | Message Type |
skipping to change at page 29, line 43 skipping to change at page 33, line 16
The Message Length field is three octets and indicates the length The Message Length field is three octets and indicates the length
of the PANA message including the header fields. of the PANA message including the header fields.
Flags Flags
The Flags field is eight bits. The following bits are assigned: The Flags field is eight bits. The following bits are assigned:
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
|R r r r S r r r| |R r r r S N r r|
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
R(equest) R(equest)
If set, the message is a request. If cleared, the message is an If set, the message is a request. If cleared, the message is
answer. an answer.
S(eparate) S(eparate)
When the S-flag is set in a PANA-Start-Request message it When the S-flag is set in a PANA-Start-Request message it
indicates that PAA is willing to offer separate EAP indicates that PAA is willing to offer separate EAP
authentication for NAP and ISP. When the S-flag is set in a authentications for NAP and ISP. When the S-flag is set in a
PANA-Start-Answer message it indicates that PaC accepts on PANA-Start-Answer message it indicates that PaC accepts on
performing separate EAP authentication for NAP and ISP. performing separate EAP authentications for NAP and ISP. When
the S-flag is set in a PANA-Auth-Request/Answer,
PANA-FirstAuth-End-Request/Answer and PANA-Bind-Request/Answer
messages it indicates that separate authentications are being
performed in the authentication phase.
N(AP authentication)
When the N-flag is set in a PANA-Auth-Request message, it
indicates that PAA is performing NAP authentication. When the
N-flag is unset in a PANA-Auth-Request message, it indicates
that PAA is performing ISP authentication. The N-flag MUST NOT
be set when S-flag is not set.
r(eserved) r(eserved)
these flag bits are reserved for future use, and MUST be set to these flag bits are reserved for future use, and MUST be set to
zero, and ignored by the receiver. zero, and ignored by the receiver.
Message Type Message Type
The Message Type field is three octets, and is used in order to The Message Type field is three octets, and is used in order to
communicate the message type with the message. The 24-bit address communicate the message type with the message. The 24-bit address
space is managed by IANA [ianaweb]. PANA uses its own address space is managed by IANA [ianaweb]. PANA uses its own address
space for this field. space for this field.
Transmitted Sequence Number Transmitted Sequence Number
The Transmitted Sequence Number field contains the monotonically The Transmitted Sequence Number field contains the monotonically
increasing 32 bit sequence number that the message sender increasing 32 bit sequence number that the message sender
increments every time a new PANA message is sent. increments every time a new PANA message is sent.
skipping to change at page 30, line 40 skipping to change at page 34, line 24
Received Sequence Number Received Sequence Number
The Received Sequence Number field contains the 32 bit transmitted The Received Sequence Number field contains the 32 bit transmitted
sequence number that the message sender has last received from its sequence number that the message sender has last received from its
peer. peer.
AVPs AVPs
AVPs are a method of encapsulating information relevant to the AVPs are a method of encapsulating information relevant to the
PANA message. See section Section 9.2 for more information on PANA message. See section Section 6.3 for more information on
AVPs. AVPs.
9.2 AVP Header 6.3 AVP Header
Each AVP of type OctetString MUST be padded to align on a 32-bit Each AVP of type OctetString MUST be padded to align on a 32-bit
boundary, while other AVP types align naturally. A number of boundary, while other AVP types align naturally. A number of
zero-valued bytes are added to the end of the AVP Data field till a zero-valued bytes are added to the end of the AVP Data field till a
word boundary is reached. The length of the padding is not reflected word boundary is reached. The length of the padding is not reflected
in the AVP Length field [RFC3588]. in the AVP Length field [RFC3588].
The fields in the AVP header MUST be sent in network byte order. The The fields in the AVP header MUST be sent in network byte order. The
format of the header is: format of the header is:
skipping to change at page 32, line 25 skipping to change at page 36, line 9
uniquely assigned id value, encoded in network byte order. Any uniquely assigned id value, encoded in network byte order. Any
vendor wishing to implement a vendor-specific PANA AVP MUST use vendor wishing to implement a vendor-specific PANA AVP MUST use
their own Vendor-Id along with their privately managed AVP address their own Vendor-Id along with their privately managed AVP address
space, guaranteeing that they will not collide with any other space, guaranteeing that they will not collide with any other
vendor's vendor-specific AVP(s), nor with future IETF vendor's vendor-specific AVP(s), nor with future IETF
applications. 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 field specific to the Attribute. The format and length of the Data
is determined by the AVP Code and AVP Length fields. field is determined by the AVP Code and AVP Length fields.
9.3 PANA Messages 6.4 PANA Messages
Figure 9 lists all PANA messages defined in this document Figure 10 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 -------->
PANA-FirstAuth-End-Request <--------
PANA-FirstAuth-End-Answer -------->
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-Error <-------> PANA-Error <------->
Figure 9: PANA Message Overview
Additionally the EP can also send a PANA-PAA-Discover message to the Figure 10: PANA Message Overview
PAA.
9.3.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] >
* [ AVP ] * [ AVP ]
9.3.2 PANA-PAA-Discover (PDI) 6.4.2 PANA-PAA-Discover (PDI)
The PANA-PAA-Discover (PDI) message is used to discover the address The PANA-PAA-Discover (PDI) message is used to discover the address
of PAA(s). Both sequence numbers in this message are set to zero (0). of PAA(s). Both sequence numbers in this message are set to zero
If the EP detects a new PaC and sends the PANA-PAA-Discover to the (0).
PAA, it MUST include the Device-Id of the PaC.
PANA-PAA-Discover ::= < PANA-Header: 1 > PANA-PAA-Discover ::= < PANA-Header: 1 >
0*1 < Device-Id >
0*1 < Session-Id > 0*1 < Session-Id >
* [ AVP ] * [ AVP ]
9.3.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] >
[ Cookie ] [ Cookie ]
[ EAP-Payload ] [ EAP-Payload ]
[ NAP-Information ] [ NAP-Information ]
* [ ISP-Information ] * [ ISP-Information ]
[ Protection-Capability]
[ PPAC ]
* [ AVP ] * [ AVP ]
9.3.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] >
[ Session-Id ]
[ Cookie ] [ Cookie ]
[ Nonce ]
[ EAP-Payload ] [ EAP-Payload ]
[ ISP-Information ] [ ISP-Information ]
* [ AVP ] * [ AVP ]
9.3.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 > PANA-Auth-Request ::= < PANA-Header: 3, REQ [SEP] [NAP] >
< Session-Id > < Session-Id >
< EAP-Payload > < EAP-Payload >
0*1 [ NAP-Information ]
0*1 [ ISP-Information ]
* [ AVP ] * [ AVP ]
0*1 < MAC > 0*1 < MAC >
(Both NAP-Information and ISP-Information MUST NOT be included at the (Both NAP-Information and ISP-Information MUST NOT be included at the
same time) same time)
9.3.6 PANA-Auth-Answer (PAN) 6.4.6 PANA-Auth-Answer (PAN)
PANA-Auth-Answer (PAN) is sent by the PaC to the PAA in response to a PANA-Auth-Answer (PAN) is sent by the PaC to the PAA in response to a
PANA-Auth-Request message. PANA-Auth-Request message.
PANA-Auth-Answer ::= < PANA-Header: 3 > PANA-Auth-Answer ::= < PANA-Header: 3 [SEP] [NAP] >
< Session-Id > < Session-Id >
< EAP-Payload > < EAP-Payload >
* [ AVP ] * [ AVP ]
0*1 < MAC > 0*1 < MAC >
9.3.7 PANA-Bind-Request (PBR) 6.4.7 PANA-Bind-Request (PBR)
PANA-Bind-Request (PBR) is sent by the PAA to the PaC. PANA-Bind-Request (PBR) is sent by the PAA to the PaC.
PANA-Bind-Request ::= < PANA-Header: 4, REQ > PANA-Bind-Request ::= < PANA-Header: 4, REQ [SEP] [NAP] >
< Session-Id > < Session-Id >
< Device-Id >
{ EAP-Payload }
{ Result-Code } { Result-Code }
{ PPAC }
[ EAP-Payload ]
[ 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 >
9.3.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 > PANA-Bind-Answer ::= < PANA-Header: 4 [,SEP] [NAP] >
< Session-Id > < Session-Id >
< Device-Id > { Result-Code }
[ PPAC ]
[ Device-Id ]
[ Key-Id ] [ Key-Id ]
* [ AVP ] * [ AVP ]
0*1 < MAC > 0*1 < MAC >
9.3.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 > [ Device-Id ]
* [ AVP ] * [ AVP ]
0*1 < MAC > 0*1 < MAC >
9.3.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 > [ Device-Id ]
* [ AVP ] * [ AVP ]
0*1 < MAC > 0*1 < MAC >
9.3.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 >
* [ AVP ] * [ AVP ]
0*1 < MAC > 0*1 < MAC >
9.3.12 PANA-Termination-Answer (PTA) 6.4.12 PANA-Termination-Answer (PTA)
PANA-Termination-Answer (PTA) is sent either by the PaC or the PAA in PANA-Termination-Answer (PTA) is sent either by the PaC or the PAA in
response to PANA-Termination-Request. response to PANA-Termination-Request.
PANA-Termination-Answer ::= < PANA-Header: 6 > PANA-Termination-Answer ::= < PANA-Header: 6 >
< Session-Id > < Session-Id >
* [ AVP ] * [ AVP ]
0*1 < MAC > 0*1 < MAC >
9.3.13 PANA-Error (PER) 6.4.13 PANA-Error (PER)
PANA-Error is sent either by the PaC or the PAA. PANA-Error is sent either by the PaC or the PAA.
PANA-Error ::= < PANA-Header: 7 > PANA-Error ::= < PANA-Header: 7 >
< Session-Id > < Session-Id >
< Result-Code > < Result-Code >
{ Failed-AVP } { Failed-AVP }
* [ AVP ] * [ AVP ]
0*1 < MAC > 0*1 < MAC >
9.4 AVPs in PANA 6.4.14 PANA-FirstAuth-End-Request (PFER)
PANA-FirstAuth-End-Request (PFER) is sent by the PAA to the PaC.
PANA-FirstAuth-End-Request ::= < PANA-Header: 8, REQ [SEP] [NAP] >
< Session-Id >
< Device-Id >
{ EAP-Payload }
{ Result-Code }
[ Key-Id ]
* [ AVP ]
0*1 < MAC >
6.4.15 PANA-FirstAuth-End-Answer (PFEA)
PANA-FirstAuth-End-Answer (PFEA) is sent by the PaC to the PAA in
response to a PANA-FirstAuth-End-Request message.
PANA-FirstAuth-End-Answer ::= < PANA-Header: 8, REQ [SEP] [NAP] >
< Session-Id >
< Device-Id >
[ Key-Id ]
* [ AVP ]
0*1 < MAC >
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 the Diameter spec. For temporary allocation, the same name space with [RFC3588]. For temporary allocation, PANA
PANA uses AVP type numbers starting from 1024. uses AVP type numbers starting from 1024.
9.4.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
MAC algorithm type. Rest of the AVP data payload contains the MAC MAC algorithm type. Rest of the AVP data payload contains the MAC
encoded in network byte order. The Algorithm 8 bit name space is encoded in network byte order. The Algorithm 8 bit name space is
managed by IANA [ianaweb]. The AVP length varies depending on the managed by IANA [ianaweb]. The AVP length varies depending on the
used algorithm. used algorithm.
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
skipping to change at page 37, line 15 skipping to change at page 41, line 30
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Algorithm Algorithm
1 HMAC-SHA1 (20 bytes) 1 HMAC-SHA1 (20 bytes)
MAC MAC
The Message Authentication Code is encoded in network byte order. The Message Authentication Code is encoded in network byte order.
9.4.2 Device-Id AVP 6.5.2 Device-Id AVP
The first octet (8 bits) of the Device-Id (Code 1025) AVP data
contains the device type. Rest of the AVP data payload contains the
device data. The content and format of data (including byte and bit
ordering) for L2_ADDRESS is expected to be specified in specific
documents that describe how IP operates over different link-layers.
For instance, [RFC2464].
RESERVED 0
IPV4_ADDRESS 1
IPV6_ADDRESS 2
L2_ADDRESS 3
For type 1 (IPv4 address), data size is 32 bits and for type 2 (IPv6
address), data size is 128 bits.
0 1 2 3 The Device-Id AVP (Code 1025) is of Address type [RFC3588]. IPv4 and
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 IPv6 addresses are encoded as specified in [RFC3588]. The content
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ and format of data (including byte and bit ordering) for link-layer
| Type | Data... | addresses is expected to be specified in specific documents that
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ describe how IP operates over different link-layers. For instance,
[RFC2464]. Address families other than that are defined for
link-layer or IP addresses MUST NOT be used for this AVP.
9.4.3 Session-Id AVP 6.5.3 Session-Id AVP
Session-Id AVP (Code 1026) has an opaque data field, which is All messages pertaining to a specific PANA session MUST include a
assigned by the PAA. All messages pertaining to a specific PANA Session-Id AVP (Code 1026) which carries a PAA-assigned fix value
Session MUST include only one Session-Id AVP and the same value MUST throughout the lifetime of a session. When present, the Session-Id
be used throughout the lifetime of a session. When present, the SHOULD appear immediately following the PANA header.
Session-Id SHOULD appear immediately following the PANA header.
The Session-Id MUST be globally and eternally unique, as it is meant The Session-Id MUST be globally and eternally unique, as it is meant
to identify a PANA Session without reference to any other to identify a PANA Session without reference to any other
information, and may be needed to correlate historical authentication information, and may be needed to correlate historical authentication
information with accounting information. information with accounting information. The PANA Session-Id AVP has
the same format as the Diameter Session-Id AVP [RFC3588].
The Session-Id AVP MAY use Diameter [RFC3588] message formatting. In
this case the AVP code is 263.
9.4.4 Cookie AVP 6.5.4 Cookie AVP
The Cookie AVP (Code 1027) is of type OctetString. The data is opaque The Cookie AVP (Code 1027) is of type OctetString. The data is
and the exact content is outside the scope of this protocol. opaque and the exact content is outside the scope of this protocol.
9.4.5 Protection-Capability AVP 6.5.5 Protection-Capability AVP
The Protection-Capability AVP (Code 1028) is of type Unsigned32. The The Protection-Capability AVP (Code 1028) is of type Unsigned32. The
AVP data is used as a collection of flags for different data AVP data indicates the cryptographic data protection capability
protection capability indications. Below is a list of specified data supported by the EPs. Below is a list of specified data protection
protection capabilities: capabilities:
0 UNKNOWN 0 L2_PROTECTION
1 L2_PROTECTION 1 IPSEC_PROTECTION
2 IPSEC_PROTECTION
9.4.6 Termination-Cause AVP 6.5.6 Termination-Cause AVP
The Termination-Cause AVP (Code 1029) is of type of type Enumerated, The Termination-Cause AVP (Code 1029) is of type of type Enumerated,
and is used to indicate the reason why a session was terminated on and is used to indicate the reason why a session was terminated on
the access device. The AVP data is used as a collection of flags The the access device. The AVP data is used as a collection of flags The
following Termination-Cause AVP defined in [RFC3588] are used for following Termination-Cause AVP defined in [RFC3588] are used for
PANA. PANA.
LOGOUT 1 (PaC -> PAA) LOGOUT 1 (PaC -> PAA)
The client initiated a disconnect The client initiated a disconnect
skipping to change at page 38, line 46 skipping to change at page 42, line 43
ADMINISTRATIVE 4 (PAA -> Pac) ADMINISTRATIVE 4 (PAA -> Pac)
The client was not granted access, or was disconnected, due to The client was not granted access, or was disconnected, due to
administrative reasons, such as the receipt of a administrative reasons, such as the receipt of a
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.
9.4.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 whether an error occurred. Here are Result-Code AVP values taken from
from [RFC3588] and adapted for PANA. [RFC3588] and adapted for PANA.
9.4.7.1 Authentication Results Codes 6.5.7.1 Authentication Results Codes
These result code values inform the PaC about the EAP authentication These result code values inform the PaC about the authentication and
method success or failure. authorization result. The authentication result and authorization
result can be different as described below, but only one result that
corresponds to the one detected first is returned.
PANA_SUCCESS 2001 PANA_SUCCESS 2001
The EAP method authentication was successful (EAP-Success). Both the authentication and authorization processes are
successful.
PANA_AUTHENTICATION_REJECTED 4001 PANA_AUTHENTICATION_REJECTED 4001
The authentication process for the client failed (EAP-Failure). The authentication process failed. When this error is returned,
the authorization process also fails.
PANA_AUTHORIZATION_REJECTED 5003 PANA_AUTHORIZATION_REJECTED 5003
A request was received for which the client could not be The authorization process failed. This error could occur when
authorized. This error could occur if the service requested is authorization is rejected by a AAA proxy or rejected locally by a
not permitted to the client. PAA, even if the authentication procedure succeeds.
9.4.7.2 Protocol Error Result Codes 6.5.7.2 Protocol Error Result Codes
Protocol error result code values. Protocol error result code values.
PANA_MESSAGE_UNSUPPORTED 3001 PANA_MESSAGE_UNSUPPORTED 3001
Error code from PAA to PaC or from PaC to PAA. Message type not Error code from PAA to PaC or from PaC to PAA. Message type not
recognized or supported. recognized or supported.
PANA_UNABLE_TO_DELIVER 3002 PANA_UNABLE_TO_DELIVER 3002
skipping to change at page 40, line 30 skipping to change at page 44, line 33
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 Error code from PAA to PaC or from PaC to PAA. The message did not
not contain an AVP that is required by the message type contain an AVP that is required by the message type definition.
definition. If this value is sent in the Result-Code AVP, a If this value is sent in the Result-Code AVP, a Failed-AVP AVP
Failed-AVP AVP SHOULD be included in the message. The Failed-AVP SHOULD be included in the message. The Failed-AVP AVP MUST
AVP MUST contain an example of the missing AVP complete with the contain an example of the missing AVP complete with the Vendor-Id
Vendor-Id if applicable. The value field of the missing AVP if applicable. The value field of the missing AVP should be of
should be of correct minimum length and contain zeroes. 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 40, line 47 skipping to change at page 45, line 4
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
Error code from PAA to PaC. The PAA has detected AVPs in the Error code from PAA to PaC. The PAA has detected AVPs in the
message that contradicted each other, and is not willing to message that contradicted each other, and is not willing to
provide service to the client. One or more Failed-AVP AVPs MUST be provide service to the client. One or more Failed-AVP AVPs MUST
present, containing the AVPs that contradicted each other. be present, containing the AVPs that contradicted each other.
PANA_AVP_NOT_ALLOWED 5008 PANA_AVP_NOT_ALLOWED 5008
Error code from PAA to PaC or from PaC to PAA. A message was Error code from PAA to PaC or from PaC to PAA. A message was
received with an AVP that MUST NOT be present. The Failed-AVP AVP received with an AVP that MUST NOT be present. The Failed-AVP AVP
MUST be included and contain a copy of the offending AVP. MUST be included and contain a copy of the offending AVP.
PANA_AVP_OCCURS_TOO_MANY_TIMES 5009 PANA_AVP_OCCURS_TOO_MANY_TIMES 5009
Error code from PAA to PaC or from PaC to PAA. A message was Error code from PAA to PaC or from PaC to PAA. A message was
skipping to change at page 41, line 31 skipping to change at page 45, line 35
Error code from PAA to PaC or from PaC to PAA. This error is Error code from PAA to PaC or from PaC to PAA. This error is
returned when a message was received, whose version number is returned when a message was received, whose version number is
unsupported. unsupported.
PANA_UNABLE_TO_COMPLY 5012 PANA_UNABLE_TO_COMPLY 5012
This error is returned when a request is rejected for unspecified This error is returned when a request is rejected for unspecified
reasons. For example, when an EAP authentication fails at an EAP reasons. For example, when an EAP authentication fails at an EAP
pass-through authenticator without passing an EAP-Failure message pass-through authenticator without passing an EAP-Failure message
to the PAA, a Result-Code AVP with this error code is carried in to the PAA, a Result-Code AVP with this error code is carried in
PANA-Bind-Request message without an EAP-Payload AVP. PANA-Error message.
PANA_INVALID_AVP_LENGTH 5014 PANA_INVALID_AVP_LENGTH 5014
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 length. The PANA-Error message contained an AVP with an invalid length. The PANA-Error message
indicating this error MUST include the offending AVPs within a indicating this error MUST include the offending AVPs within a
Failed-AVP AVP. Failed-AVP AVP.
PANA_INVALID_MESSAGE_LENGTH 5015 PANA_INVALID_MESSAGE_LENGTH 5015
skipping to change at page 42, line 5 skipping to change at page 46, line 13
length. length.
PANA_PROTECTION_CAPABILITY_UNSUPPORTED 5016 PANA_PROTECTION_CAPABILITY_UNSUPPORTED 5016
Error code from PaC to PAA. This error is returned when the PaC Error code from PaC to PAA. This error is returned when the PaC
receives a PANA-Bind-Request is received with an receives a PANA-Bind-Request is received with an
Protection-Capability AVP and a valid MAC AVP but does not support Protection-Capability AVP and a valid MAC AVP but does not support
the protection capability specified in the Protection-Capability the protection capability specified in the Protection-Capability
AVP. AVP.
9.4.8 EAP-Payload AVP PANA_PPAC_CAPABILITY_UNSUPPORTED 5017
Error code from PaC to PAA. This error is returned in a
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
PaC.
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.
9.4.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
is considered expired. is considered expired.
9.4.10 Failed-AVP AVP 6.5.10 Failed-AVP AVP
The Failed-AVP AVP (AVP Code 1033) is of type Grouped and provides The Failed-AVP AVP (AVP Code 1033) is of type Grouped and provides
debugging information in cases where a request is rejected or not debugging information in cases where a request is rejected or not
fully processed due to erroneous information in a specific AVP. The fully processed due to erroneous information in a specific AVP. The
format of the Failed-AVP AVP is defined in [RFC3588]. format of the Failed-AVP AVP is defined in [RFC3588].
9.4.11 NAP-Information AVP 6.5.11 NAP-Information AVP
The NAP-Information AVP (AVP Code: 1034) is of type Grouped, and The NAP-Information AVP (AVP Code: 1034) is of type Grouped, and
contains zero or one Provider-Identifier AVP which carries the contains zero or one Provider-Identifier AVP which carries the
identifier of the NAP and one Provider-Name AVP which carries the identifier of the NAP and one Provider-Name AVP which carries the
name of the NAP. Its Data field has the following ABNF grammar: name of the NAP. Its Data field has the following ABNF grammar:
NAP-Information ::= < AVP Header: 1034 > NAP-Information ::= < AVP Header: 1034 >
0*1 { Provider-Identifier } 0*1 { Provider-Identifier }
{ Provider-Name } { Provider-Name }
* [ AVP ] * [ AVP ]
9.4.12 ISP-Information AVP 6.5.12 ISP-Information AVP
The ISP-Information AVP (AVP Code: 1035) is of type Grouped, and The ISP-Information AVP (AVP Code: 1035) is of type Grouped, and
contains zero or one Provider-Identifier AVP which carries the contains zero or one Provider-Identifier AVP which carries the
identifier of the ISP and one Provider-Name AVP which carries the identifier of the ISP and one Provider-Name AVP which carries the
name of the ISP. Its Data field has the following ABNF grammar: name of the ISP. Its Data field has the following ABNF grammar:
ISP-Information ::= < AVP Header: 1035 > ISP-Information ::= < AVP Header: 1035 >
0*1 { Provider-Identifier } 0*1 { Provider-Identifier }
{ Provider-Name } { Provider-Name }
* [ AVP ] * [ AVP ]
9.4.13 Provider-Identifier AVP 6.5.13 Provider-Identifier AVP
The Provider-Identifier AVP (AVP Code: 1036) is of type Unsigned32, The Provider-Identifier AVP (AVP Code: 1036) is of type Unsigned32,
and contains an IANA assigned "SMI Network Management Private and contains an IANA assigned "SMI Network Management Private
Enterprise Codes" [ianaweb] value, encoded in network byte order. Enterprise Codes" [ianaweb] value, encoded in network byte order.
9.4.14 Provider-Name AVP 6.5.14 Provider-Name AVP
The Provider-Name AVP (AVP Code: 1037) is of type UTF8String, and The Provider-Name AVP (AVP Code: 1037) is of type UTF8String, and
contains the UTF8-encoded name of the provider. contains the UTF8-encoded name of the provider.
9.4.15 EP-Device-Id AVP 6.5.15 EP-Device-Id AVP
The EP-Device-Id AVP (AVP Code: 1038) contains the device identifier The EP-Device-Id AVP (AVP Code: 1038) contains the device identifier
of an EP. The payload format of the EP-Device-Id AVP is the same as of an EP. The payload format of the EP-Device-Id AVP is the same as
that of the Device-Id AVP (see See section Section 9.4.2). that of the Device-Id AVP (see See section Section 6.5.2).
9.4.16 Key-Id AVP 6.5.16 Key-Id AVP
The Key-Id AVP (AVP Code: 1039) is of type Integer32, and contains an The Key-Id AVP (AVP Code: 1039) is of type Integer32, and contains an
AAA-Key identifier. The AAA-Key identifier is assigned by PAA and AAA-Key identifier. The AAA-Key identifier is assigned by PAA and
MUST be unique within the PANA session. MUST be unique within the PANA session.
9.5 AVP Occurrence Table 6.5.17 Post-PANA-Address-Configuration (PPAC) AVP
The data field of PPAC AVP (Code 1040) is of type Unsigned32. The
AVP data is used to carry a set of flags which maps to various IP
address configuration methods. When sent by the PAA, the AVP MUST
have at least one of the flags set, and MAY have more than one set.
When sent by the PaC, only one of the flags MUST be set.
The format of the AVP data is as follows:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|N|D|A|T|I| Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
PPAC Flags
N (No configuration)
The PaC does not have to (if sent by PAA) or will not (if sent
by PaC) configure a new IP address after PANA.
D (DHCP)
The PaC can (if sent by PAA) or will (if sent by PaC) use DHCP
[RFC2131][RFC3315] to configure a new IP address after PANA.
A (stateless autoconfiguration)
The PaC can/will use stateless IPv6 address autoconfiguration
[RFC2462] to configure a new IP address after PANA.
T (DHCP with IPsec tunnel mode)
The PaC can/will use [RFC3456] to configure a new IP address
after PANA.
I (IKEv2)
The PaC can/will use [I-D.ietf-ipsec-ikev2] to configure a new
IP address after PANA.
Reserved
These flag bits are reserved for future use, and MUST be set to
zero, and ignored by the receiver.
Unless the N-flag is set, the PaC MUST configure a new IP address
using one of the methods indicated by the other flags. Refer to
[I-D.ietf-pana-framework] for a detailed discussion on when these
methods can be used.
6.5.18 Nonce AVP
The Nonce AVP (Code 1041) is of type OctetString. The data contains
a randomly generated value in opaque format. The data length MUST be
between 8 and 256 bytes inclusive.
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
message. message.
skipping to change at page 44, line 4 skipping to change at page 49, line 32
1+ At least one instance of the AVP MUST be present in the 1+ At least one instance of the AVP MUST be present in the
message. message.
+-----------------------------------------+ +-----------------------------------------+
| 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 | 0 | 0 | Result-Code | 0 | 0 | 0 | 0 | 1 | 1 | 0 |
Session-Id | 0 | 0 | 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 | 1 | 0 | 0 | EAP-Payload | 0-1 | 0-1 | 1 | 1 | 0-1 | 0 | 0 |
MAC | 0 | 0 | 0-1 | 0-1 | 0-1 | 0-1 | 0 | MAC | 0 | 0-1 | 0-1 | 0-1 | 0-1 | 0-1 | 0 |
Device-Id | 0 | 0 | 0 | 0 | 1+ | 1+ | 0-1 | Nonce | 0 | 0-1 | 0 | 0 | 0-1 | 0 | 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 | 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 |
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-1 | 0 | 0 | 0 | 0 | ISP-Information | 0+ | 0-1 | 0 | 0 | 0 | 0 | 0 |
NAP-Information | 0-1 | 0 | 0-1 | 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 |
--------------------+-----+-----+-----+-----+-----+-----+-----+ --------------------+-----+-----+-----+-----+-----+-----+-----+
+-------------------------------+ Figure 11: AVP Occurrence Table (1/2)
+---------------------------------------------+
| Message | | Message |
| Type | | Type |
+------+------+-----+-----+-----+ +------+------+-----+-----+-----+------+------+
Attribute Name | PRAR | PRAA | PTR | PTA | PER | Attribute Name | PRAR | PRAA | PTR | PTA | PER | PFER | PFEA |
--------------------+------+------+-----+-----+-----+ --------------------+------+------+-----+-----+-----+------+------+
Result-Code | 0 | 0 | 0 | 0 | 1 | Result-Code | 0 | 0 | 0 | 0 | 1 | 1 | 0 |
Session-Id | 1 | 1 | 1 | 1 | 1 | Session-Id | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
Termination-Cause | 0 | 0 | 1 | 0 | 0 | Termination-Cause | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
EAP-Payload | 0-1 | 0-1 | 0 | 0 | 0 | EAP-Payload | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
MAC | 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 |
Device-Id | 1+ | 1+ | 0 | 0 | 0 | Nonce | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Cookie | 0 | 0 | 0 | 0 | 0 | Device-Id | 0-1 | 0-1 | 0 | 0 | 0 | 0 | 0 |
Protection-Cap. | 0 | 0 | 0 | 0 | 0 | Cookie | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Session-Lifetime | 0 | 0 | 0 | 0 | 0 | Protection-Cap. | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Failed-AVP | 0 | 0 | 0 | 0 | 1 | PPAC | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
ISP-Information | 0 | 0 | 0 | 0 | 0 | Session-Lifetime | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
NAP-Information | 0 | 0 | 0 | 0 | 0 | Failed-AVP | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
EP-Device-Id | 0 | 0 | 0 | 0 | 0 | ISP-Information | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Key-Id | 0 | 0 | 0 | 0 | 0 | NAP-Information | 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 |
--------------------+------+------+-----+-----+-----+------+------+
Figure 10: AVP Occurrence Table Figure 12: AVP Occurrence Table (2/2)
10. 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 messages exchanges except PANA-Auth-Request/Answer. PANA-Auth-Request
carry EAP requests which are retransmitted by the EAP protocol messages carry EAP requests which are retransmitted by the EAP
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-Answer (PSA) PANA-Start-Request (PSR)*
PANA-Start-Answer (PSA)**
PANA-Bind-Request (PBR) PANA-Bind-Request (PBR)
PANA-FirstAuth-End-Request (PFER)
PANA-Reauth-Request (PRAR) PANA-Reauth-Request (PRAR)
PANA-Termination-Request (PTR) PANA-Termination-Request (PTR)
*) PSR that carries 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
skipping to change at page 47, line 5 skipping to change at page 53, line 8
once MRD seconds have elapsed since the client first transmitted the once MRD seconds have elapsed since the client first transmitted the
message. message.
If both MRC and MRD are non-zero, the message exchange fails whenever If both MRC and MRD are non-zero, the message exchange fails whenever
either of the conditions specified in the previous two paragraphs are either of the conditions specified in the previous two paragraphs are
met. met.
If both MRC and MRD are zero, the client continues to transmit the If both MRC and MRD are zero, the client continues to transmit the
message until it receives a response. message until it receives a response.
10.1 Transmission and Retransmission Parameters 7.1 Transmission and Retransmission Parameters
This section presents a table of values used to describe the message This section presents a table of values used to describe the message
retransmission behavior of request and PANA-Start-Answer messages retransmission behavior of request and PANA-Start-Answer messages
marked with REQ_*. PANA-PAA-Discover message retransmission values marked with REQ_*. PANA-PAA-Discover message retransmission values
are marked with PDI_*. The table shows default values. are marked with PDI_*. The table shows default values.
Parameter Default Description Parameter Default Description
------------------------------------------------ ------------------------------------------------
PDI_IRT 1 sec Initial PDI timeout. PDI_IRT 1 sec Initial PDI timeout.
PDI_MRT 120 secs Max PDI timeout value. PDI_MRT 120 secs Max PDI timeout value.
skipping to change at page 48, line 5 skipping to change at page 54, line 5
REQ_IRT 1 sec Initial Request timeout. REQ_IRT 1 sec Initial Request timeout.
REQ_MRT 30 secs Max Request timeout value. REQ_MRT 30 secs Max Request timeout value.
REQ_MRC 10 Max Request retry attempts. REQ_MRC 10 Max Request retry attempts.
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
11. Security Considerations 8. IANA Considerations
This section provides guidance to the Internet Assigned Numbers
Authority (IANA) regarding registration of values related to the
Diameter protocol, in accordance with BCP 26 [IANA]. The following
policies are used here with the meanings defined in BCP 26: "Private
Use", "First Come First Served", "Expert Review", "Specification
Required", "IETF Consensus", "Standards Action".
This section explains the criteria to be used by the IANA for
assignment of numbers within namespaces defined within this document.
For registration requests where a Designated Expert should be
consulted, the responsible IESG area director should appoint the
Designated Expert. For Designated Expert with Specification
Required, the request is posted to the PANA WG mailing list (or, if
it has been disbanded, a successor designated by the Area Director)
for comment and review, and MUST include a pointer to a public
specification. Before a period of 30 days has passed, the Designated
Expert will either approve or deny the registration request and
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,
in the cases where it is possible, concrete suggestions on how the
request can be modified so as to become acceptable.
8.1 PANA UDP Port Number
TBD.
8.2 PANA Multicast Address
TBD.
8.3 PANA Header
8.3.1 Message Type
TBD.
8.3.2 Flags
TBD.
8.4 AVP Header
8.4.1 AVP Code
TBD.
8.4.2 Flags
TBD.
8.4.3 Vendor Id
TBD.
8.5 AVP Values
8.5.1 MAC AVP Values
TBD.
8.5.2 Device-Id AVP Values
TBD.
8.5.3 Protection-Capability AVP Values
TBD.
8.5.4 Result-Code AVP Values
TBD.
8.5.5 Termination-Cause AVP Values
TBD.
8.5.6 Provider-Identifier AVP Values
TBD.
8.5.7 Post-PANA-Address-Configuration AVP Values
TBD.
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 SA exchange. Integrity protection can only be provided after the PANA
has been established. Thus, PANA re-authentication, revocation and SA has been established. Thus, PANA re-authentication, revocation and
disconnect notifications can be authenticated, integrity and replay disconnect notifications can be authenticated, integrity and replay
protected. In certain environments (e.g. on a shared link) the EAP protected. In certain environments (e.g., on a shared link) the EAP
method selection is an important issue. 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.
skipping to change at page 48, line 38 skipping to change at page 56, line 38
subsequently. subsequently.
a) Discovery message exchange a) Discovery message exchange
In general it is difficult to prevent a vulnerabilities of the In general it is difficult to prevent a vulnerabilities of the
discovery protocol since the initial discovery are unsecured. To discovery protocol since the initial discovery are unsecured. To
prevent very basic attacks an adversary should not be able to cause prevent very basic attacks an adversary should not be able to cause
state creation with discovery messages at the PAA. This is prevented state creation with discovery messages at the PAA. This is prevented
by re-using a cookie concept (see [RFC2522] which allows the by re-using a cookie concept (see [RFC2522] which allows the
responder to be stateless in the first message exchange. Because of responder to be stateless in the first message exchange. Because of
the architectural assumptions made in PANA (i.e. the PAA is the on the architectural assumptions made in PANA (i.e., the PAA is the on
the same link as the PaC) the return-routability concept does not the same link as the PaC) the return-routability concept does not
provide additional protection. Hence it is difficult to prevent this provide additional protection. Hence it is difficult to prevent this
threat entirely. Furthermore it is not possible to shift heavy threat entirely. Furthermore it is not possible to shift heavy
cryptographic operations to the PaC at the first few messages since cryptographic operations to the PaC at the first few messages since
the computational effort depends on the EAP method. The usage of the computational effort depends on the EAP method. The usage of
client-puzzles as introduced by [jb99] is under investigation. client-puzzles as introduced by [jb99] is under investigation.
Resistance against blind DoS attacks (i.e. attacks by off-path Resistance against blind DoS attacks (i.e., attacks by off-path
adversaries) is achieved with sequence numbers and cookies. adversaries) is achieved with sequence numbers and cookies.
Since PAA and PaC are supposed to be one IP hop away, a simple TTL Since PAA and PaC are supposed to be one IP hop away, a simple TTL
check can prevent off-link attacks. Furthermore, additional filtering check can prevent off-link attacks. Furthermore, additional
can be enabled on the EPs. An EP may be able to filter unauthorized filtering can be enabled on the EPs. An EP may be able to filter
PAA advertisements when they are received on the access side of the unauthorized PAA advertisements when they are received on the access
network where only PaCs are connected. side of the network where only PaCs are connected.
In networks where lower-layers are not secured prior to running PANA,
the capability discovery enabled through inclusion of
Protection-Capability and Post-PANA-Address-Configuration AVPs in
PANA-Start-Request message is susceptible to spoofing. Therefore,
usage of these AVPs during the discovery phase in such insecure
networks is NOT RECOMMENDED. The same AVPs are delivered via an
integrity-protected PANA-Bind-Request upon successful authentication.
b) EAP over PANA message exchange b) EAP over PANA message exchange
The EAP derived session key is used to create a PANA security The EAP derived session key is used to create a PANA security
association. Since the execution of an EAP method might require a association. Since the execution of an EAP method might require a
large number of roundtrips and no other session key is available it large number of roundtrips and no other session key is available it
is not possible to secure the EAP message exchange itself. Hence an is not possible to secure the EAP message exchange itself. Hence an
adversary can both eavesdrop the EAP messages and is also able to adversary can both eavesdrop the EAP messages and is also able to
inject arbitrary messages which might confuse both the EAP peer on inject arbitrary messages which might confuse both the EAP peer on
PaC and the EAP authenticator or authentication server on the PAA. PaC and the EAP authenticator or authentication server on the PAA.
The threats caused by this ability heavily depend on the EAP state The threats caused by this ability heavily depend on the EAP state
machine. Since especially the PAA is not allowed to discard packets machine. Since especially the PAA is not allowed to discard packets
and packets have to be stored or forwarded to an AAA infrastructure and packets have to be stored or forwarded to an AAA infrastructure
some risk of DoS attacks exists. some risk of DoS attacks exists.
Eavesdropping EAP packets might cause problems when (a) the EAP Eavesdropping EAP packets might cause problems when (a) the EAP
method is weak and enables dictionary or replay attacks or even method is weak and enables dictionary or replay attacks or even
allows an adversary to learn the long-term password directly. allows an adversary to learn the long-term password directly.
Furthermore, if the optional EAP Identity payload is used then it Furthermore, if the optional EAP Identity payload is used then it
allows the adversary to learn the identity of the PaC. In such a case allows the adversary to learn the identity of the PaC. In such a
a privacy problem is prevalent. case a privacy problem is prevalent.
To prevent these threats Section 6 suggests using proper EAP methods To prevent these threats, [I-D.ietf-pana-framework] suggests using
for particular environments. Depending on the usage environment an proper EAP methods for particular environments. Depending on the
EAP authentication has to be used for example which supports user usage environment an EAP authentication has to be used for example
identity confidentiality, protection against dictionary attacks and which supports user identity confidentiality, protection against
session key establishment. It is therefore the responsibility of the dictionary attacks and session key establishment. It is therefore
network operators and end users to choose the proper EAP method. the responsibility of the network operators and end users to choose
the proper EAP method.
PANA does not protect the EAP method exchange, but provides ordered PANA does not protect the EAP method exchange, but provides ordered
delivery with sequence numbers. Sequence numbers and cookies provide delivery with sequence numbers. Sequence numbers and cookies provide
resistance against blind DoS attacks. resistance against blind DoS attacks.
c) PANA SA establishment c) PANA SA establishment
Once the EAP message authentication is finished a fresh and unique Once the EAP message authentication is finished a fresh and unique
session key is available to the PaC and the PAA. This assumes that session key is available to the PaC and the PAA. This assumes that
the EAP method allows session key derivation and that the generated the EAP method allows session key derivation and that the generated
session key has a good quality. For further discussion about the session key has a good quality. For further discussion about the
importance of the session key generation refer to the next subsection importance of the session key generation refer to the next subsection
(d) about compound authentication. The session key available for the (d) about compound authentication. The session key available for the
PaC is established as part of the authentication and key exchange PaC is established as part of the authentication and key exchange
procedure of the selected EAP method. The PAA obtains the session key procedure of the selected EAP method. The PAA obtains the session
via the AAA infrastructure (if used). Security issues raised with key via the AAA infrastructure (if used). Security issues raised
this session key transport are described in [I-D.ietf-eap-keying]. with this session key transport are described in
[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. Confidentiality integrity protection based on a keyed message digest.
protection is not provided. The session keys used for this object Confidentiality protection is not provided. The session keys used for
have to be provided by the EAP method. For this version of the this object have to be provided by the EAP method. For this version
document it is assumed that no negotiation of algorithms and of the document it is assumed that no negotiation of algorithms and
parameters takes place. Instead HMAC-SHA1 is used by default. A parameters takes place. Instead HMAC-SHA1 is used by default. A
different algorithm may be chosen by default in a future version of different algorithm may be chosen by default in a future version of
the PANA protocol specification. The used algorithm is indicated in the PANA protocol specification. The used algorithm is indicated in
the header of the Integrity object. To select the security the header of the Integrity object. To select the security
association for signaling message protection the Session ID is association for signaling message protection the Session ID is
conveyed. The keyed message digest included in the Integrity object conveyed. The keyed message digest included in the Integrity object
will include all fields of the PANA signaling message including the will include all fields of the PANA signaling message including the
sequence number field of the packet. sequence number field of the packet.
The protection of subsequent signaling messages prevents an adversary The protection of subsequent signaling messages prevents an adversary
skipping to change at page 49, line 82 skipping to change at page 58, line 44
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.
The lifetime of the PANA SA has to be bound to the AAA-authorized The lifetime of the PANA SA has to be bound to the AAA-authorized
session lifetime with an additional tolerance period. Unless PANA session lifetime with an additional tolerance period. Unless PANA
state is updated by executing another EAP authentication, PANA SA is state is updated by executing another EAP authentication, PANA SA is
removed when the current session expires. The lifetime of the PANA SA removed when the current session expires. The lifetime of the PANA
has to be bound to the AAA-authorized session lifetime with an SA has to be bound to the AAA-authorized session lifetime with an
additional tolerance period. Unless PANA state is updated by additional tolerance period. Unless PANA state is updated by
executing another EAP authentication, PANA SA is removed when the executing another EAP authentication, PANA SA is removed when the
current session expires. current session expires.
d) Enabling weak legacy authentication methods in insecure networks d) Enabling weak legacy authentication methods in insecure networks
Some of the authentication methods are not strong enough to be used Some of the authentication methods are not strong enough to be used
in insecure networks where attackers can easily eavesdrop and spoof in insecure networks where attackers can easily eavesdrop and spoof
on the link. They may not be able to produce much needed keying on the link. They may not be able to produce much needed keying
material either. An example would be using EAP-MD5 over wireless material either. An example would be using EAP-MD5 over wireless
links. Use of such legacy methods can be enabled by carrying them links. Use of such legacy methods can be enabled by carrying them
over a secure channel. There are EAP methods which are specifically over a secure channel. There are EAP methods which are specifically
designed for this purpose, such as EAP-TTLS designed for this purpose, such as EAP-TTLS
[I-D.ietf-pppext-eap-ttls],PEAP [I-D.josefsson-pppext-eap-tls-eap] or [I-D.ietf-pppext-eap-ttls],PEAP [I-D.josefsson-pppext-eap-tls-eap] or
EAP-IKEv2 [I-D.tschofenig-eap-ikev2]. PANA can carry these EAP EAP-IKEv2 [I-D.tschofenig-eap-ikev2]. PANA can carry these EAP
tunneling methods which can carry the legacy methods. PANA does not tunneling methods which can carry the legacy methods. PANA does not
skipping to change at page 49, line 100 skipping to change at page 59, line 14
Some of the authentication methods are not strong enough to be used Some of the authentication methods are not strong enough to be used
in insecure networks where attackers can easily eavesdrop and spoof in insecure networks where attackers can easily eavesdrop and spoof
on the link. They may not be able to produce much needed keying on the link. They may not be able to produce much needed keying
material either. An example would be using EAP-MD5 over wireless material either. An example would be using EAP-MD5 over wireless
links. Use of such legacy methods can be enabled by carrying them links. Use of such legacy methods can be enabled by carrying them
over a secure channel. There are EAP methods which are specifically over a secure channel. There are EAP methods which are specifically
designed for this purpose, such as EAP-TTLS designed for this purpose, such as EAP-TTLS
[I-D.ietf-pppext-eap-ttls],PEAP [I-D.josefsson-pppext-eap-tls-eap] or [I-D.ietf-pppext-eap-ttls],PEAP [I-D.josefsson-pppext-eap-tls-eap] or
EAP-IKEv2 [I-D.tschofenig-eap-ikev2]. PANA can carry these EAP EAP-IKEv2 [I-D.tschofenig-eap-ikev2]. PANA can carry these EAP
tunneling methods which can carry the legacy methods. PANA does not tunneling methods which can carry the legacy methods. PANA does not
do anything special for this case. The EAP tunneling method will have do anything special for this case. The EAP tunneling method will
to produce keying material for PANA SA when needed. There are certain have to produce keying material for PANA SA when needed. There are
MitM vulnerabilities with tunneling EAP methods [mitm]. Solving these certain MitM vulnerabilities with tunneling EAP methods [mitm].
problems is outside the scope of PANA. The compound authentication Solving these problems is outside the scope of PANA. The compound
problem described in [I-D.puthenkulam-eap-binding] is likely to be authentication problem described in [I-D.puthenkulam-eap-binding] is
solved in EAP itself rather than in PANA. likely to be solved in EAP itself rather than in PANA.
e) Device Identifier exchange e) Device Identifier exchange
As part of the authorization procedure a Device Identifier has to be As part of the authorization procedure a Device Identifier has to be
installed at the EP by the PAA. The PaC provides the Device installed at the EP by the PAA. The PaC provides the Device
Identifier information to the PAA secured with the PANA SA. Section Identifier information to the PAA secured with the PANA SA. Section
6.2.4 of [I-D.ietf-pana-threats-eval] describes a threat where an 6.2.4 of [I-D.ietf-pana-threats-eval] describes a threat where an
adversary modifies the Device Identifier to gain unauthorized access adversary modifies the Device Identifier to gain unauthorized access
to the network. to the network.
The installation of the Device Identifier at the EP (independently The installation of the Device Identifier at the EP (independently
whether the EP is co-located with the PAA or not) has to be whether the EP is co-located with the PAA or not) has to be
accomplished in a secure manner. These threats are, however, not part accomplished in a secure manner. These threats are, however, not
of the PANA protocol itself since the protocol is not PANA specific. part of the PANA protocol itself since the protocol is not PANA
specific.
f) Triggering a data protection protocol f) Triggering a data protection protocol
Recent activities in the EAP working group try to create a common Recent activities in the EAP working group try to create a common
framework for key derivation which is described in framework for key derivation which is described in
[I-D.ietf-eap-keying]. This framework is also relevant for PANA in [I-D.ietf-eap-keying]. This framework is also relevant for PANA in
various ways. First, a PANA security association needs to be created. various ways. First, a PANA security association needs to be
Additionally it might be necessary to trigger a protocol which allows created. Additionally it might be necessary to trigger a protocol
link layer and network layer data protection to be established. As an which allows link layer and network layer data protection to be
example see Section 1 of [I-D.ietf-eap-keying] with [802.11i] and established. As an example see Section 1 of [I-D.ietf-eap-keying]
[802.11] as an example. Furthermore, a derived session key might help with [802.11i] and [802.11] as an example. Furthermore, a derived
to create the pre-requisites for network-layer protection (for session key might help to create the pre-requisites for network-layer
example IPsec [I-D.ietf-pana-ipsec]). protection (for example IPsec [I-D.ietf-pana-ipsec]).
As motivated in Section 6.4 of [I-D.ietf-pana-threats-eval] it might As motivated in Section 6.4 of [I-D.ietf-pana-threats-eval] it might
be necessary to establish either a link layer or a network layer be necessary to establish either a link layer or a network layer
protection to prevent certain thefts in certain scenarios. protection to prevent certain thefts in certain scenarios.
Threats specific to the establishment of a link layer or a network Threats specific to the establishment of a link layer or a network
layer security association are outside the scope of PANA. The layer security association are outside the scope of PANA. The
interested reader should refer to the relevant working groups such as interested reader should refer to the relevant working groups such as
IPsec or Midcom. IPsec or Midcom.
g) Liveness test g) Liveness test
Network access authentication is done for a very specific purpose and Network access authentication is done for a very specific purpose and
often charging procedures are involved which allow restricting often charging procedures are involved which allow restricting
network resource usage based on some policies. In mobile environments network resource usage based on some policies. In mobile
it is always possible that an end host suddenly disconnects without environments it is always possible that an end host suddenly
transmitting a disconnect message. Operators are generally motivated disconnects without transmitting a disconnect message. Operators are
to detect a disconnected end host as soon as possible in order to generally motivated to detect a disconnected end host as soon as
release resources (i.e., garbage collection). The PAA can remove possible in order to release resources (i.e., garbage collection).
per-session state information including installed security The PAA can remove per-session state information including installed
association, packet filters, etc. security association, packet filters, etc.
Different procedures can be used for disconnect indication. PANA Different procedures can be used for disconnect indication. PANA
cannot assume link-layer disconnect indication. Hence this cannot assume link-layer disconnect indication. Hence this
functionality has to be provided at a higher layer. With this version functionality has to be provided at a higher layer. With this
of the draft we suggest to apply the soft-state principle found at version of the draft we suggest to apply the soft-state principle
other protocols (such as RSVP). Soft-state means that session state found at other protocols (such as RSVP). Soft-state means that
is kept alive as long as refresh messages refresh the state. If no session state is kept alive as long as refresh messages refresh the
new refresh messages are provided then the state automatically times state. If no new refresh messages are provided then the state
out and resources are released. This process includes stopping automatically times out and resources are released. This process
accounting procedures. includes stopping accounting procedures.
A PANA session is associated with a session lifetime. The session is A PANA session is associated with a session lifetime. The session is
terminated unless it is refreshed by a new round of EAP terminated unless it is refreshed by a new round of EAP
authentication before it expires. Therefore, at the latest a authentication before it expires. Therefore, at the latest a
disconnected client can be detected when its lifetime expires. A disconnected client can be detected when its lifetime expires. A
disconnect may also be detected earlier by using PANA disconnect may also be detected earlier by using PANA
reauthentication messages. A request message can be generated by reauthentication messages. A request message can be generated by
either PaC or PAA at any time and the peer must respond with an either PaC or PAA at any time and the peer must respond with an
answer message. A successful round-trip of this exchange is a simple answer message. A successful round-trip of this exchange is a simple
verification that the peer is alive. This test can be engaged when verification that the peer is alive. This test can be engaged when
there is a possibility that the peer might have disconnected (e.g., there is a possibility that the peer might have disconnected (e.g.,
after discontinuation of data traffic). Periodic use of this exchange after discontinuation of data traffic). Periodic use of this
as a keep-alive requires additional care as it might result in exchange as a keep-alive requires additional care as it might result
congestion and hence false alarms. This exchange is cryptographically in congestion and hence false alarms. This exchange is
protected when PANA SA is available in order to prevent threats cryptographically protected when PANA SA is available in order to
associated with the abuse of this functionality. prevent threats associated with the abuse of this functionality.
h) Tear-Down message h) Tear-Down message
The PANA protocol supports the ability for both the PaC and the PAA The PANA protocol supports the ability for both the PaC and the PAA
to transmit a tear-down message. This message causes state removal, a to transmit a tear-down message. This message causes state removal,
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.
12. Open Issues i) Mobility optimization
A list of open issues is maintained at [1].
The remaining issues for -01 version of draft are: None.
The remaining issues for -02 version of draft are: None. The mobility optimization described in Section 4.9 involves the
previous PAA providing a AAA-Key to the current PAA of the PaC.
There are security risks stemming from potential compromise of PAAs.
Compromise of the current PAA does not yield compromise of the
previous PAA, as AAA-Key cannot be computed from a compromised
AAA-Key-new. But a compromised previous PAA along with the
intercepted nonce values leads to the compromise of AAA-Key-new.
Operators should be aware of the potential risk of using this
optimization. An operator can reduce the risk exposure by forcing
the PaC to perform an EAP-based authentication immediately after the
optimized PANA execution.
The remaining issues for -xx version of draft are: 28, 52, 53, 54, 10. Open Issues and Change History
55, 56, 57, 58 and 59.
13. Change History 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.
14. Acknowledgments 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.
We would like to thank all members of the PANA working group for 11. Acknowledgments
their comments to this document.
We would like to thank Jari Arkko, Mohan Parthasarathy, Julien
Bournelle, Rafael Marin Lopez and all members of the PANA working
group for their valuable comments to this document.
Normative References 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
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] [I-D.ietf-eap-rfc2284bis]
Blunk, L., "Extensible Authentication Protocol (EAP)", Blunk, L., "Extensible Authentication Protocol (EAP)",
draft-ietf-eap-rfc2284bis-07 (work in progress), December draft-ietf-eap-rfc2284bis-09 (work in progress), February
2003. 2004.
[RFC2716] Aboba, B. and D. Simon, "PPP EAP TLS Authentication [RFC2716] Aboba, B. and D. Simon, "PPP EAP TLS Authentication
Protocol", RFC 2716, October 1999. Protocol", RFC 2716, October 1999.
[RFC2409] Harkins, D. and D. Carrel, "The Internet Key Exchange
(IKE)", RFC 2409, November 1998.
[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
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
Host Configuration Protocol (DHCPv4) Configuration of
IPsec Tunnel Mode", RFC 3456, January 2003.
[I-D.ietf-eap-keying] [I-D.ietf-eap-keying]
Aboba, B., "EAP Key Management Framework", Aboba, B., "EAP Key Management Framework",
draft-ietf-eap-keying-01 (work in progress), October 2003. draft-ietf-eap-keying-01 (work in progress), October 2003.
[IANA] Narten, T. and H. Alvestrand, "Guidelines for Writing an
IANA Considerations Section in RFCs", BCP 26, RFC 2434,
October 1998.
Informative References 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-07 (work in progress), June
2003. 2003.
[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-03 (work in progress), October 2003. draft-ietf-aaa-eap-05 (work in progress), April 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] [I-D.ietf-pana-usage-scenarios]
skipping to change at page 49, line 290 skipping to change at page 66, line 38
PANA", draft-ietf-pana-usage-scenarios-06 (work in PANA", draft-ietf-pana-usage-scenarios-06 (work in
progress), April 2003. progress), April 2003.
[I-D.ietf-pana-threats-eval] [I-D.ietf-pana-threats-eval]
Parthasarathy, M., "PANA Threat Analysis and security Parthasarathy, M., "PANA Threat Analysis and security
requirements", draft-ietf-pana-threats-eval-04 (work in requirements", draft-ietf-pana-threats-eval-04 (work in
progress), May 2003. progress), May 2003.
[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-01 (work in progress), Control", draft-ietf-pana-ipsec-03 (work in progress), May
January 2004. 2004.
[I-D.ietf-pana-framework]
Jayaraman, P., "PANA Framework",
draft-ietf-pana-framework-00 (work in progress), May 2004.
[I-D.ietf-pana-snmp]
Mghazli, Y., Ohba, Y. and J. Bournelle, "SNMP usage for
PAA-2-EP interface", draft-ietf-pana-snmp-00 (work in
progress), April 2004.
[I-D.irtf-aaaarch-handoff]
Arbaugh, W. and B. Aboba, "Experimental Handoff Extension
to RADIUS", draft-irtf-aaaarch-handoff-04 (work in
progress), November 2003.
[I-D.ietf-eap-statemachine]
Vollbrecht, J., Eronen, P., Petroni, N. and Y. Ohba,
"State Machines for Extensible Authentication Protocol
(EAP) Peer and Authenticator",
draft-ietf-eap-statemachine-03 (work in progress), March
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-08 (work in progress), January
2004. 2004.
[I-D.ietf-ipsec-ikev2]
Kaufman, C., "Internet Key Exchange (IKEv2) Protocol",
draft-ietf-ipsec-ikev2-13 (work in progress), March 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)",
draft-ietf-pppext-eap-ttls-03 (work in progress), August draft-ietf-pppext-eap-ttls-04 (work in progress), April
2003. 2004.
[I-D.tschofenig-eap-ikev2] [I-D.tschofenig-eap-ikev2]
Tschofenig, H. and D. Kroeselberg, "EAP IKEv2 Method Tschofenig, H. and D. Kroeselberg, "EAP IKEv2 Method
(EAP-IKEv2)", draft-tschofenig-eap-ikev2-02 (work in (EAP-IKEv2)", draft-tschofenig-eap-ikev2-03 (work in
progress), October 2003. progress), February 2004.
[ianaweb] IANA, "Number assignment", http://www.iana.org. [ianaweb] IANA, "Number assignment", http://www.iana.org.
[jb99] Juels, A. and J. Brainard, "Client Puzzles: A [jb99] Juels, A. and J. Brainard, "Client Puzzles: A
Cryptographic Defense Against Connection Depletion Cryptographic Defense Against Connection Depletion
Attacks", Proceedings of NDSS '99 (Networks and Attacks", Proceedings of NDSS '99 (Networks and
Distributed Security Systems), pages 151-165, 1999. Distributed Security Systems), pages 151-165, 1999.
[mitm] Asokan, N., Niemi, V. and K. Nyberg, "Man-in-the-middle in [mitm] Asokan, N., Niemi, V. and K. Nyberg, "Man-in-the-middle in
tunnelled authentication", In the Proceedings of the 11th tunnelled authentication", In the Proceedings of the 11th
International Workshop on Security Protocols, Cambridge, International Workshop on Security Protocols, Cambridge,
UK, April 2003. UK, April 2003.
[802.11i] Institute of Electrical and Electronics Engineers, "Draft [802.11i] Institute of Electrical and Electronics Engineers, "Draft
supplement to standard for telecommunications and supplement to standard for telecommunications and
information exchange between systems - lan/man specific information exchange between systems - lan/man specific
requirements - part 11: Wireless medium access control requirements - part 11: Wireless medium access control
(mac) and physical layer (phy) specifications: (mac) and physical layer (phy) specifications:
Specification for enhanced security", IEEE 802.11i/D7.0, Specification for enhanced security", IEEE 802.11i/D10.0,
2003. 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).
URIs URIs
[1] <http://danforsberg.info:8080/pana-issues/> [1] <http://www.toshiba.com/tari/pana/sequence-number.txt>
[2] <http://danforsberg.info:8080/pana-issues/>
Authors' Addresses Authors' Addresses
Dan Forsberg Dan Forsberg
Nokia Research Center Nokia Research Center
P.O. Box 407 P.O. Box 407
FIN-00045 NOKIA GROUP FIN-00045 NOKIA GROUP
Finland Finland
Phone: +358 50 4839470 Phone: +358 50 4839470
EMail: dan.forsberg@nokia.com EMail: dan.forsberg@nokia.com
Yoshihiro Ohba Yoshihiro Ohba
Toshiba America Information Systems, Inc. Toshiba America Research, Inc.
9740 Irvine Blvd. 1 Telcordia Drive
Irvine, CA 92619-1697 Piscataway, NJ 08854
USA USA
Phone: +1 973 829 5174 Phone: +1 732 699 5305
EMail: yohba@tari.toshiba.com EMail: yohba@tari.toshiba.com
Basavaraj Patil Basavaraj Patil
Nokia Nokia
6000 Connection Dr. 6000 Connection Dr.
Irving, TX 75039 Irving, TX 75039
USA USA
Phone: +1 972-894-6709 Phone: +1 972-894-6709
EMail: Basavaraj.Patil@nokia.com EMail: Basavaraj.Patil@nokia.com
Hannes Tschofenig Hannes Tschofenig
Siemens Corporate Technology Siemens Corporate Technology
Otto-Hahn-Ring 6 Otto-Hahn-Ring 6
81739 Munich 81739 Munich
Germany Germany
EMail: Hannes.Tschofenig@siemens.com EMail: Hannes.Tschofenig@siemens.com
Alper E. Yegin Alper E. Yegin
DoCoMo USA Labs Samsung Advanced Institute of Technology
181 Metro Drive, Suite 300 75 West Plumeria Drive
San Jose, CA 95110 San Jose, CA 95134
USA USA
Phone: +1 408 451 4743 Phone: +1 408 544 5656
EMail: alper@docomolabs-usa.com EMail: alper.yegin@samsung.com
Appendix A. Adding sequence number to PANA for carrying EAP
Appendix A.1 Why is sequence number needed for PANA to carry EAP?
EAP [I-D.ietf-eap-rfc2284bis] requires underlying transports to
provide ordered-delivery of messages. If an underlying transport
does not satisfy the ordering requirement, the following situation
could happen:
EAP Peer EAP Authenticator
--------------------------------------------
1. (got req 1) <------- Request ID=1
2. Response ID=1 ---+
| (timeout)
3. | +-- Request ID=1
| |
+-|--> (got resp 1)
4. (got req 2) <----|-- Request ID=2
|
5. Response ID=2 -----|--> (got resp 2)
|
6. (got req 1) <----+
7. Response ID=1 --------> [discarded due to unexpected ID]
Figure 11: Undesirable scenario
In Figure 11, the second EAP Request message with Identifier=1
arrives at the EAP peer after the third EAP Request message with
Identifier=2. As a result, the EAP peer accepts the second EAP
Request as a new EAP Request while it is just an old EAP Request that
was already responded and the authentication might be totally messed
up.
This problem occurs due to the fact that EAP doesn't recognize
duplicate packets in the scope of one EAP protocol run, but only in
the scope of current and previous packet (i.e., request and response
message matching). When EAP is running over PPP or IEEE 802 links,
this is not a problem, because those link-layers have the ordering
invariant characteristic.
On the other hand, the PANA design has chosen UDP as its transport.
Given that UDP does not provide ordered delivery of packets and PANA
does not assume any specific link-layer technology to carry EAP, PANA
messages need to have a sequence number.
In the following text we describe two possible approaches for
sequence number handling in PANA. The first one makes use of a
single sequence number whereas the latter utilizes two. Finally a
comparison between the two approaches is provided. The method
described in Appendix A.3.1 (i.e., the dual sequence number with
orderly-delivery method) is suggested as the preferred method for
PANA transport.
Appendix A.2 Single sequence number approach
This section discusses several methods based on using a single
sequence number for providing orderly message delivery. Sequence
number handling for all methods discussed in Appendix A.2 must comply
to the following rules:
Rule 1: The sequence number starts from initial sequence number (ISN)
and is monotonically increased by 1. The arithmetic defined
in [RFC1982] is used for sequence number operation.
Rule 2: When a PAA sends an EAP message passed from EAP layer to a
PaC, a new sequence number is placed in the message,
regardless of whether it is sent as a result of a
retransmission at the EAP layer or not.
Note: It might be possible to define other mechanisms for sequence
number handling if it can be assumed that a PAA detects EAP
retransmissions. However, such an assumption heavily depends on EAP
implementation details in particular on EAP APIs, thus it was decided
not to use such an assumption.
Appendix A.2.1 Single sequence number with EAP retransmission method
Again, the following rules must hold:
Rule 3: Use EAP layer retransmission for retransmitting EAP messages
(based on a timer expiration).
Rule 4: When the PaC receives a message from the PAA, it checks the
sequence number and discards the message if the sequence
number is not greater than that of the last accepted message.
Rule 5: When the PAA receives a message from the PaC, it checks the
sequence number and discards the message if the sequence
number does not match a pending request message.
PaC PAA Seq# Message
--------------------------------------------
1. <------- (x) PANA-Auth-Request[EAP Req ID=1]
2. ---+ (x) PANA-Auth-Answer[EAP Res ID=1]
| (retransmission timeout at EAP-layer)
3. | +-- (x+1) PANA-Auth-Request[EAP Req ID=1]
| |
+-|--> (discarded due to Rule 5)
| (retransmission timeout at EAP-layer)
4. <----|-- (x+2) PANA-Auth-Request[EAP Req ID=1]
|
5. -----|--> (x+2) PANA-Auth-Answer[EAP Res ID=1]
|
6. <----+ (discarded due to Rule 4)
7. <------- (x+3) PANA-Auth-Request[EAP Req ID=2]
.
.
Figure 12: Example for Single sequence number with EAP retransmission
This method is vulnerable to a blind DoS attack on the sequence
number since the PaC will accept quite a wide range of sequence
numbers. For example, if an attacker blindly sends a bogus message
to a legitimate PaC with a randomly chosen sequence number, it will
be accepted by the PaC with 50% probability, and once this happens,
all messages sent from the communicating PAA will be discarded as
long as they have a sequence number smaller than the accepted value.
The problem of this method leads to a requirement for PaC to have a
narrow range of acceptable sequence numbers to make the blind DoS
attack difficult. Note that the DoS attack cannot be prevented if the
attacker is on the same IP link as PaC and able to eavesdrop the PANA
conversation. However, the attacker needs to put itself in
promiscuous mode and thus spend more resources to eavesdrop and
launch the attack (in other words, non-blind DoS attack is still
possible as long as sequence numbers are unprotected.)
Appendix A.2.2 Single sequence number with PANA-layer retransmission
method
The next method is still based on using a single sequence number but
the PANA-layer takes the responsibility of retransmission. The
method uses the following rules in addition to the common rules
described in Appendix A.2.
Rule 3: Use PANA-layer retransmission for retransmitting both EAP and
non-EAP messages (based on a timer expiration). EAP layer
retransmission is turned off. Retransmission based on timer
occurs both on PaC and PAA side, but not on both sides
simultaneously. PAA does retransmission at least for
PANA_Termination and PANA_Reauth messages, otherwise PaC
takes care of retransmission.
Rule 4: When the PaC receives a message from the PAA, it accepts the
message if the sequence number is equal to that of the last
accepted message + 1. If the sequence number is equal to
that of the last accepted message, the PaC retransmits the
last transmitted message. Otherwise, it silently discards
the message.
Rule 5: When the PAA receives a message from the PaC, it accepts the
message if the sequence number is equal to that of the last
transmitted message. If the receiving sequence number is
equal to that of the last transmitted message - 1, the PAA
retransmits the last transmitted message and discard the
received message. Otherwise, it silently discards the
message.
Rule 6: The PaC retransmits the last transmitted EAP Response until a
new EAP Request message or an EAP Success/Failure message is
received and accepted.
Rule 7: PAA must keep the copy of the last transmitted message and
must be able to retransmit it until either a valid message is
received and accepted by the PAA or a timer expires. The
timer is used if no new message will be sent from the PaC.
PaC PAA Seq# Message
--------------------------------------------
1. <-------- (x) PANA-Auth-Request[EAP Req ID=1]
2. ---+ (x) PANA-Auth-Answer[EAP Resp ID=1]
| (retransmission timeout at PaC)
3. ---|----> (x) PANA-Auth-Answer[EAP Resp ID=1]
4. | +--- (x+1) PANA-Auth-Request[EAP Req ID=2]
| |
+-|--> (duplicate detected)
5. <----|--- (x+1) PANA-Auth-Request[EAP Req ID=2]
|
6. -----|--> (x+1) PANA-Auth-Answer[EAP Resp ID=2]
|
<----|--- (x+2) PANA-Auth-Request[EAP Req ID=3]
7. -----|--> (x+2) PANA-Auth-Answer[EAP Resp ID=3]
<----+ (discarded by PaC)
(retransmission timeout at PaC)
8. --------> (x+2) PANA-Auth-Answer[EAP Resp ID=3]
9. lost<---- (x+3) PANA-Auth-Request[EAP Succ ID=3]
(retransmission timeout at PaC)
10.---->lost (x+2) PANA-Auth-Answer[EAP Resp ID=3]
(retransmission timeout at PaC)
11.--------> (x+2) PANA-Auth-Answer[EAP Resp ID=3]
12.<-------- (x+3) PANA-Bind-Request[EAP Succ ID=3]
(retransmission timer stopped at PaC)
(deletion timeout at PAA)
(message (x+3) deleted at PAA)
13.lost<---- (x+4) PANA-Termination-Request
(retransmission timeout at PAA)
14.<-------- (x+4) PANA-Termination-Request
15.---->lost (x+4) PANA-Termination-Answer
(retransmission timeout at PAA)
16.<-------- (x+4) PANA-Termination-Request
17.--------> (x+4) PANA-Termination-Answer
(retransmission timer stopped at PAA)
Figure 13: Example for Single sequence number with PANA-layer
retransmission
This method has an advantage of eliminating EAP layer retransmission
by providing reliability at the PANA layer. Retransmission at the EAP
layer has a problem with determining an appropriate retransmission
timer value, which occurs when the lower-layer is unreliable. In
this case an EAP authenticator cannot distinguish between (i) EAP
Request or EAP Response message loss (in this case the retransmission
timer should be calculated based on network characteristics) and (ii)
long latency for EAP Response generation due to e.g., user input etc.
(in this case the retransmission timer should be calculated based on
user or application characteristics). In general, the retransmission
timer for case (ii) is longer than that for case (i). If case (i)
happens while the retransmission timer is calculated based on user or
application characteristics, then it might frustrate an end user
since the completion of the authentication procedure takes
unnecessarily long. If case (ii) happens while the retransmission
timer is calculated based on network characteristics (i.e., RTT),
then unnecessarily traffic is generated by retransmission. Note that
in this method a PaC still cannot distinguish case (i) and case (iii)
the EAP authenticator or a backend authentication server is taking
time to generate an EAP Request.
A problem of this method is that it is based on the assumption that
EAP authenticator does not send a new EAP message until an EAP
Response to the outstanding EAP Request is received. However, this
assumption does not hold at least EAP Success/Failure message which
does not need the outstanding EAP Request to be responded before
sending the EAP Success/Failure message. This would require
timer-based retransmission not only at PaC side but also at PAA side.
Another problem occurs when a new EAP message overrides the
outstanding EAP Request, the PaC cannot assume any more that the
sequence number of the next message to be accepted is the last
accepted message + 1. So the PaC needs to accept a range of sequence
numbers, instead of a single sequence number. These two additional
things would increase the complexity of this method.
Appendix A.3 Dual sequence number approach
Based on the analysis of previous schemes, it is recognized that two
sequence numbers are needed anyway, one for each direction. Two
different methods are proposed based on this approach. Both methods
have the following rules in common.
Rule 1: A PANA packet carries two sequence numbers: transmitted
sequence number (tseq) and received sequence number (rseq).
tseq starts from initial sequence number (ISN) and is
monotonically increased by 1. The arithmetic defined in
[RFC1982] is used for sequence number operation. It is
assumed that the two sequence numbers have the same length
for simplicity.
Rule 2: When PAA or PAC sends a new message, a new sequence number is
placed on the tseq field of message. Every transmitted
message is given a new sequence number.
Rule 3: When a message is sent from PaC or PAA, rseq is copied from
the tseq field of the last accepted message.
Rule 4: For messages which experience a PANA layer retransmission,
the retransmission timer is stopped when the message is
acknowledged.
It is possible to carry multiple EAP sequences in a single PANA
sequence, with using EAP Success/Failure message as a delimiter of
each EAP sequence. In this case, EAP Success/Failure message needs
to be reliably delivered.
Appendix A.3.1 Dual sequence number with orderly-delivery method
This method relies on EAP layer retransmission for EAP messages.
This method is referred to as orderly-delivery method. The following
rules are used in addition to the common rules.
Rule 5: Use the EAP-layer retransmission for retransmitting EAP
Requests (based on a timer expiration). For other PANA layer
messages that require a response from the peer, PANA layer
has its own mechanism to retransmit the request until it gets
a response or gives up. A new tseq value is always used when
sending any message even when it is retransmitted at PANA
layer.
Rule 6: When a message is received, it is accepted if (i) the tseq
value is greater than the tseq of the last accepted message
and (ii) the rseq falls in the range between the tseq of the
last acknowledged message + 1 and the tseq of the last
transmitted message. Otherwise, the received message is
discarded.
PaC PAA (tseq,rseq) Message
--------------------------------------------------
1. <------- (x,y) PANA-Auth-Request[EAP Req, ID=1]
2. -------> (y+1,x) PANA-Auth-Answer[EAP Resp, ID=1]
3. <------- (x+1,y+1) PANA-Auth-Request[EAP Req, ID=2]
4. --->lost (y+2,x+1) PANA-Auth-Answer[EAP Resp, ID=2]
(retransmission timeout at EAP layer)
5. <------- (x+2,y+1) PANA-Auth-Request [EAP Req, ID=2]
6. -------> (y+3,x+2) PANA-Auth-Answer[EAP Resp, ID=2]
7. lost<--- (x+3,y+3) PANA-Auth-Request[EAP Req, ID=3]
(retransmission timeout at EAP layer)
8. +---- (x+4,y+3) PANA-Auth-Answer[EAP Req, ID=3]
| (retransmission timeout at EAP layer)
9. <--|---- (x+5,y+3) PANA-Auth-Request[EAP Req, ID=3]
10.---|---> (y+4,x+5) PANA-Auth-Answer[EAP Resp, ID=3]
^L PANA June 2003
|
<--+ (out of order. discarded)
11.lost<--- (x+6,y+4) PANA-Bind-Request[EAP Succ, ID=3]
(retransmission timeout at PAA)
12.<------- (x+7,y+4) PANA-Bind-Request[EAP Succ, ID=3]
13.--->lost (y+5,x+7) PANA-Bind-Answer
(retransmission timeout at PAA)
14.<------- (x+8,y+4) PANA-Bind-Request[EAP Succ, ID=3]
(duplicate detected by PaC)
15.-------> (y+6,x+8) PANA-Bind-Answer
Figure 14: Example for Dual sequence number with orderly-delivery
Appendix A.3.2 Dual sequence number with reliable-delivery method
This method relies solely on PANA layer retransmission for all
messages. This method is referred to as reliable-delivery method.
The following additional rules are applied in addition to the common
rules.
Rule 5: Use the PANA layer retransmission for retransmitting all
messages (based on a timer expiration). EAP retransmission
is turned off.
Rule 6: Either an ACK message is used for acknowledgment or an
acknowledgment can be piggybacked with data. ACK messages
are not retransmitted. An ACK message is sent if no the
acknowledgement cannot be piggybacked with a data within a
given time frame W.
Rule 7: When a message is received, it is accepted if (i) the tseq
value is greater than the tseq of the last accepted message
and (ii) the rseq falls in the range between the tseq of the
last acknowledged message and the tseq of the last
transmitted message. Otherwise, the received message is
discarded.
Rule 8: When a duplicate message is received, the last transmitted
message is retransmitted if the received message is not an
ACK. A message is considered as duplicate if its tseq value
is equal to the tseq of the last accepted message.
PaC PAA (tseq,rseq) Message
--------------------------------------------------
1. <------- (x,y) PANA-Auth-Request[EAP Req, ID=1]
(user input ongoing)
2. -------> (y+1,x) PANA-Auth-Answer
(user input completed)
3. -------> (y+2,x) PANA-Auth-Answer[EAP Resp, ID=1]
4. <------- (x+1,y+2) PANA-Auth-Request [EAP Req, ID=2]
5. --->lost (y+3,x+1) PANA-Auth-Answer[EAP Resp, ID=2]
(retransmission timeout at PAA)
6. <------- (x+1,y+2) PANA-Auth-Request [EAP Req, ID=2]
(duplicate detected by PaC)
7. -------> (y+3,x+1) PANA-Auth-Answer[EAP Resp, ID=2]
8. lost<--- (x+2,y+3) PANA-Auth-Request [EAP Req, ID=3]
(retransmission timeout at PaC)
9. -------> (y+3,x+1) PANA-Auth-Answer[EAP Resp, ID=2]
(duplicate detected at PAA)
10.<------- (x+2,y+3) PANA-Auth-Request [EAP Req, ID=3]
11.---+ (y+4,x+2) PANA-Auth-Answer[EAP Resp, ID=3]
| (retransmission timeout at PAA)
12.<--|---- (x+2,y+3) PANA-Auth-Request [EAP Req, ID=3]
| (duplicate detected at PaC)
13.---|---> (y+4,x+2) PANA-Auth-Answer[EAP Resp, ID=3]
14.<--|---- (x+3,y+4) PANA-Bind-Request[EAP Succ, ID=3]
15.---|---> (y+5,x+3) PANA-Bind-Answer
+---> (out of order. discarded)
Figure 15: Example for Dual sequence number with reliable-delivery
method
Appendix A.3.3 Comparison of the dual sequence number methods
The orderly-delivery method is simpler than the reliable-delivery
method in that the former does not allow sending a separate ACK while
the latter does.
In terms of authentication performance, the reliable-delivery method
is better than the orderly-delivery method in that the former gives
more detailed status of the link than the latter, e.g., an entity can
know whether a request has reached the communicating peer without
before receiving a response. The reliable-delivery can reduce
retransmission traffic and communication delay that would occur if
there is no reliability, as described in section Appendix A.2.2
Appendix A.4 Consensus
Although it is recognizable that the reliable-delivery method would
be important in terms of improvement of overall authentication
latency, we believe that this is a performance problem of EAP and not
a problem of PANA. It is agreed that solving the EAP problem is not
the scope of PANA and simplicity is more important factor in the PANA
design.
As a consequence, the orderly-delivery method is chosen as the
message transport part of PANA.
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 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; neither does it represent that it
has made any effort to identify any such rights. Information on the has made any effort to identify any such rights. Information on the
IETF's procedures with respect to rights in standards-track and IETF's procedures with respect to rights in standards-track and
 End of changes. 

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