| draft-ietf-pana-pana-06.txt | draft-ietf-pana-pana-07a.txt | |
|---|---|---|
| PANA Working Group D. Forsberg | PANA Working Group D. Forsberg | |
| Internet-Draft Nokia | Internet-Draft Nokia | |
| Expires: April 20, 2005 Y. Ohba (Ed.) | Expires: June 1, 2005 Y. Ohba (Ed.) | |
| Toshiba | Toshiba | |
| B. Patil | B. Patil | |
| Nokia | Nokia | |
| H. Tschofenig | H. Tschofenig | |
| Siemens | Siemens | |
| A. Yegin | A. Yegin | |
| Samsung | Samsung | |
| October 20, 2004 | December 1, 2004 | |
| Protocol for Carrying Authentication for Network Access (PANA) | Protocol for Carrying Authentication for Network Access (PANA) | |
| draft-ietf-pana-pana-06 | draft-ietf-pana-pana-07a | |
| Status of this Memo | Status of this Memo | |
| By submitting this Internet-Draft, I certify that any applicable | By submitting this Internet-Draft, I certify that any applicable | |
| patent or other IPR claims of which I am aware have been disclosed, | patent or other IPR claims of which I am aware have been disclosed, | |
| and any of which I become aware will be disclosed, in accordance with | and any of which I become aware will be disclosed, in accordance with | |
| RFC 3668. | RFC 3668. | |
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |
| Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF), its areas, and its working groups. Note that | |
| Skipping to change at page 1, line 41: | ||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |
| The list of current Internet-Drafts can be accessed at | The list of current Internet-Drafts can be accessed at | |
| http://www.ietf.org/ietf/1id-abstracts.txt. | http://www.ietf.org/ietf/1id-abstracts.txt. | |
| The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |
| http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |
| This Internet-Draft will expire on April 20, 2005. | This Internet-Draft will expire on June 1, 2005. | |
| Copyright Notice | Copyright Notice | |
| Copyright (C) The Internet Society (2004). All Rights Reserved. | Copyright (C) The Internet Society (2004). All Rights Reserved. | |
| Abstract | Abstract | |
| Extensible Authentication Protocol (EAP) defines a number of | This document defines the Protocol for Carrying Authentication for | |
| authentication schemes. Network access authentication requires a | Network Access (PANA), a link-layer agnostic transport for Extensible | |
| host to authenticate itself before being authorized for sending and | Authentication Protocol (EAP) to enable network access authentication | |
| receiving packets. The Protocol for Carrying Authentication for | between clients and access networks. PANA can carry any | |
| Network Access (PANA) is defined in this document. PANA is a | authentication method that can be specified as an EAP method, and it | |
| link-layer agnostic carrier for EAP. PANA specifies the | can be used on any link that can carry IP. PANA protocol | |
| client-to-network access authentication within the scope of an | specification covers the client-to-network access authentication part | |
| overall secure network access framework. | of an overall secure network access framework, which additionally | |
| includes other protocols and mechanisms for service provisioning, | ||
| access control as a result of initial authentication, and accounting. | ||
| Table of Contents | Table of Contents | |
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 5 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 5 | |
| 1.1 Specification of Requirements . . . . . . . . . . . . . . 5 | 1.1 Specification of Requirements . . . . . . . . . . . . . . 5 | |
| 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . 6 | 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . 7 | |
| 3. Protocol Overview . . . . . . . . . . . . . . . . . . . . . 8 | 3. Protocol Overview . . . . . . . . . . . . . . . . . . . . . 9 | |
| 4. Protocol Details . . . . . . . . . . . . . . . . . . . . . . 10 | 4. Protocol Details . . . . . . . . . . . . . . . . . . . . . . 11 | |
| 4.1 Discovery and Handshake Phase . . . . . . . . . . . . . . 10 | 4.1 Payload Encoding . . . . . . . . . . . . . . . . . . . . . 11 | |
| 4.2 Authentication Phase . . . . . . . . . . . . . . . . . . . 13 | 4.2 Discovery and Handshake Phase . . . . . . . . . . . . . . 12 | |
| 4.3 Authorization Phase . . . . . . . . . . . . . . . . . . . 15 | 4.3 Authentication Phase . . . . . . . . . . . . . . . . . . . 15 | |
| 4.4 Re-authentication Phase . . . . . . . . . . . . . . . . . 15 | 4.4 Authorization Phase . . . . . . . . . . . . . . . . . . . 17 | |
| 4.5 Termination Phase . . . . . . . . . . . . . . . . . . . . 17 | 4.5 Re-authentication Phase . . . . . . . . . . . . . . . . . 18 | |
| 5. Protocol Design Details and Processing Rules . . . . . . . . 19 | 4.6 Termination Phase . . . . . . . . . . . . . . . . . . . . 19 | |
| 5.1 Payload Encoding . . . . . . . . . . . . . . . . . . . . . 19 | 4.7 Separate NAP and ISP Authentication . . . . . . . . . . . 20 | |
| 5.2 Transport Layer . . . . . . . . . . . . . . . . . . . . . 20 | 4.7.1 Negotiating Separate NAP and ISP Authentication . . . 20 | |
| 5.2.1 Fragmentation . . . . . . . . . . . . . . . . . . . . 20 | 4.7.2 Execution of Separate NAP and ISP Authentication . . . 21 | |
| 5.3 Sequence Number and Retransmission . . . . . . . . . . . . 20 | 4.7.3 AAA-Key Calculation . . . . . . . . . . . . . . . . . 22 | |
| 5.4 Message Authentication Code . . . . . . . . . . . . . . . 21 | 5. Protocol Design Details and Processing Rules . . . . . . . . 23 | |
| 5.5 Message Validity Check . . . . . . . . . . . . . . . . . . 21 | 5.1 Transport Layer . . . . . . . . . . . . . . . . . . . . . 23 | |
| 5.6 PANA Security Association . . . . . . . . . . . . . . . . 23 | 5.1.1 Fragmentation . . . . . . . . . . . . . . . . . . . . 23 | |
| 5.7 Error Handling . . . . . . . . . . . . . . . . . . . . . . 25 | 5.2 Sequence Number and Retransmission . . . . . . . . . . . . 23 | |
| 5.8 Device ID Choice . . . . . . . . . . . . . . . . . . . . . 25 | 5.3 PANA Security Association . . . . . . . . . . . . . . . . 24 | |
| 5.9 Updating PaC' Address . . . . . . . . . . . . . . . . . . 26 | 5.4 Message Authentication Code . . . . . . . . . . . . . . . 26 | |
| 5.10 Session Lifetime . . . . . . . . . . . . . . . . . . . . 26 | 5.5 Message Validity Check . . . . . . . . . . . . . . . . . . 27 | |
| 5.11 Network Selection . . . . . . . . . . . . . . . . . . . 27 | 5.6 Device ID Choice . . . . . . . . . . . . . . . . . . . . . 28 | |
| 5.12 Separate NAP and ISP Authentication . . . . . . . . . . 27 | 5.7 PaC Updating its IP Address . . . . . . . . . . . . . . . 29 | |
| 5.12.1 Negotiating Separate NAP and ISP Authentication . . 28 | 5.8 Session Lifetime . . . . . . . . . . . . . . . . . . . . . 29 | |
| 5.12.2 Execution of Separate NAP and ISP Authentication . . 28 | 5.9 Network Selection . . . . . . . . . . . . . . . . . . . . 30 | |
| 5.12.3 AAA-Key Calculation . . . . . . . . . . . . . . . . 29 | 5.10 Error Handling . . . . . . . . . . . . . . . . . . . . . 30 | |
| 5.12.4 Re-authentication . . . . . . . . . . . . . . . . . 30 | 6. Mobility . . . . . . . . . . . . . . . . . . . . . . . . . . 32 | |
| 5.12.5 Example Sequence . . . . . . . . . . . . . . . . . . 30 | 7. PANA Headers and Formats . . . . . . . . . . . . . . . . . . 34 | |
| 6. Security and Mobility . . . . . . . . . . . . . . . . . . . 32 | 7.1 IP and UDP Headers . . . . . . . . . . . . . . . . . . . . 34 | |
| 6.1 PANA Security Association Establishment . . . . . . . . . 32 | 7.2 PANA Header . . . . . . . . . . . . . . . . . . . . . . . 34 | |
| 6.2 Mobility . . . . . . . . . . . . . . . . . . . . . . . . . 32 | 7.3 AVP Header . . . . . . . . . . . . . . . . . . . . . . . . 36 | |
| 7. PANA Headers and Formats . . . . . . . . . . . . . . . . . . 35 | 8. PANA Messages, Message Specifications and AVPs . . . . . . . 39 | |
| 7.1 IP and UDP Headers . . . . . . . . . . . . . . . . . . . . 35 | 8.1 PANA Messages . . . . . . . . . . . . . . . . . . . . . . 39 | |
| 7.2 PANA Header . . . . . . . . . . . . . . . . . . . . . . . 35 | 8.2 Message Specifications . . . . . . . . . . . . . . . . . . 39 | |
| 7.3 AVP Header . . . . . . . . . . . . . . . . . . . . . . . . 37 | 8.2.1 PANA-PAA-Discover (PDI) . . . . . . . . . . . . . . . 40 | |
| 8. PANA Messages, Message Specifications and AVPs . . . . . . . 40 | 8.2.2 PANA-Start-Request (PSR) . . . . . . . . . . . . . . . 40 | |
| 8.1 PANA Messages . . . . . . . . . . . . . . . . . . . . . . 40 | 8.2.3 PANA-Start-Answer (PSA) . . . . . . . . . . . . . . . 40 | |
| 8.2 Message Specifications . . . . . . . . . . . . . . . . . . 40 | ||
| 8.2.1 PANA-PAA-Discover (PDI) . . . . . . . . . . . . . . . 41 | ||
| 8.2.2 PANA-Start-Request (PSR) . . . . . . . . . . . . . . . 41 | ||
| 8.2.3 PANA-Start-Answer (PSA) . . . . . . . . . . . . . . . 41 | ||
| 8.2.4 PANA-Auth-Request (PAR) . . . . . . . . . . . . . . . 41 | 8.2.4 PANA-Auth-Request (PAR) . . . . . . . . . . . . . . . 41 | |
| 8.2.5 PANA-Auth-Answer (PAN) . . . . . . . . . . . . . . . . 42 | 8.2.5 PANA-Auth-Answer (PAN) . . . . . . . . . . . . . . . . 41 | |
| 8.2.6 PANA-Reauth-Request (PRAR) . . . . . . . . . . . . . . 42 | 8.2.6 PANA-Reauth-Request (PRAR) . . . . . . . . . . . . . . 41 | |
| 8.2.7 PANA-Reauth-Answer (PRAA) . . . . . . . . . . . . . . 42 | 8.2.7 PANA-Reauth-Answer (PRAA) . . . . . . . . . . . . . . 41 | |
| 8.2.8 PANA-Bind-Request (PBR) . . . . . . . . . . . . . . . 42 | 8.2.8 PANA-Bind-Request (PBR) . . . . . . . . . . . . . . . 42 | |
| 8.2.9 PANA-Bind-Answer (PBA) . . . . . . . . . . . . . . . . 43 | 8.2.9 PANA-Bind-Answer (PBA) . . . . . . . . . . . . . . . . 42 | |
| 8.2.10 PANA-Ping-Request (PPR) . . . . . . . . . . . . . . 43 | 8.2.10 PANA-Ping-Request (PPR) . . . . . . . . . . . . . . 42 | |
| 8.2.11 PANA-Ping-Answer (PPA) . . . . . . . . . . . . . . . 43 | 8.2.11 PANA-Ping-Answer (PPA) . . . . . . . . . . . . . . . 42 | |
| 8.2.12 PANA-Termination-Request (PTR) . . . . . . . . . . . 43 | 8.2.12 PANA-Termination-Request (PTR) . . . . . . . . . . . 43 | |
| 8.2.13 PANA-Termination-Answer (PTA) . . . . . . . . . . . 44 | 8.2.13 PANA-Termination-Answer (PTA) . . . . . . . . . . . 43 | |
| 8.2.14 PANA-Error-Request (PER) . . . . . . . . . . . . . . 44 | 8.2.14 PANA-Error-Request (PER) . . . . . . . . . . . . . . 43 | |
| 8.2.15 PANA-Error-Answer (PEA) . . . . . . . . . . . . . . 44 | 8.2.15 PANA-Error-Answer (PEA) . . . . . . . . . . . . . . 43 | |
| 8.2.16 PANA-FirstAuth-End-Request (PFER) . . . . . . . . . 44 | 8.2.16 PANA-FirstAuth-End-Request (PFER) . . . . . . . . . 44 | |
| 8.2.17 PANA-FirstAuth-End-Answer (PFEA) . . . . . . . . . . 45 | 8.2.17 PANA-FirstAuth-End-Answer (PFEA) . . . . . . . . . . 44 | |
| 8.2.18 PANA-Update-Request (PUR) . . . . . . . . . . . . . 45 | 8.2.18 PANA-Update-Request (PUR) . . . . . . . . . . . . . 44 | |
| 8.2.19 PANA-Update-Answer (PUA) . . . . . . . . . . . . . . 45 | 8.2.19 PANA-Update-Answer (PUA) . . . . . . . . . . . . . . 44 | |
| 8.3 AVPs in PANA . . . . . . . . . . . . . . . . . . . . . . . 45 | 8.3 AVPs in PANA . . . . . . . . . . . . . . . . . . . . . . . 45 | |
| 8.3.1 MAC AVP . . . . . . . . . . . . . . . . . . . . . . . 48 | 8.3.1 MAC AVP . . . . . . . . . . . . . . . . . . . . . . . 48 | |
| 8.3.2 Device-Id AVP . . . . . . . . . . . . . . . . . . . . 49 | 8.3.2 Device-Id AVP . . . . . . . . . . . . . . . . . . . . 49 | |
| 8.3.3 Session-Id AVP . . . . . . . . . . . . . . . . . . . . 49 | 8.3.3 Session-Id AVP . . . . . . . . . . . . . . . . . . . . 49 | |
| 8.3.4 Cookie AVP . . . . . . . . . . . . . . . . . . . . . . 49 | 8.3.4 Cookie AVP . . . . . . . . . . . . . . . . . . . . . . 49 | |
| 8.3.5 Protection-Capability AVP . . . . . . . . . . . . . . 49 | 8.3.5 Protection-Capability AVP . . . . . . . . . . . . . . 49 | |
| 8.3.6 Termination-Cause AVP . . . . . . . . . . . . . . . . 49 | 8.3.6 Termination-Cause AVP . . . . . . . . . . . . . . . . 50 | |
| 8.3.7 Result-Code AVP . . . . . . . . . . . . . . . . . . . 50 | 8.3.7 Result-Code AVP . . . . . . . . . . . . . . . . . . . 50 | |
| 8.3.8 EAP-Payload AVP . . . . . . . . . . . . . . . . . . . 54 | 8.3.8 EAP-Payload AVP . . . . . . . . . . . . . . . . . . . 53 | |
| 8.3.9 Session-Lifetime AVP . . . . . . . . . . . . . . . . . 54 | 8.3.9 Session-Lifetime AVP . . . . . . . . . . . . . . . . . 54 | |
| 8.3.10 Failed-AVP AVP . . . . . . . . . . . . . . . . . . . 54 | 8.3.10 Failed-AVP AVP . . . . . . . . . . . . . . . . . . . 54 | |
| 8.3.11 NAP-Information AVP . . . . . . . . . . . . . . . . 54 | 8.3.11 NAP-Information AVP . . . . . . . . . . . . . . . . 54 | |
| 8.3.12 ISP-Information AVP . . . . . . . . . . . . . . . . 54 | 8.3.12 ISP-Information AVP . . . . . . . . . . . . . . . . 54 | |
| 8.3.13 Provider-Identifier AVP . . . . . . . . . . . . . . 54 | 8.3.13 Provider-Identifier AVP . . . . . . . . . . . . . . 54 | |
| 8.3.14 Provider-Name AVP . . . . . . . . . . . . . . . . . 55 | 8.3.14 Provider-Name AVP . . . . . . . . . . . . . . . . . 54 | |
| 8.3.15 Key-Id AVP . . . . . . . . . . . . . . . . . . . . . 55 | 8.3.15 Key-Id AVP . . . . . . . . . . . . . . . . . . . . . 55 | |
| 8.3.16 Post-PANA-Address-Configuration (PPAC) AVP . . . . . 55 | 8.3.16 Post-PANA-Address-Configuration (PPAC) AVP . . . . . 55 | |
| 8.3.17 Nonce AVP . . . . . . . . . . . . . . . . . . . . . 56 | 8.3.17 Nonce AVP . . . . . . . . . . . . . . . . . . . . . 56 | |
| 8.3.18 IP-Address AVP . . . . . . . . . . . . . . . . . . . 56 | 8.3.18 IP-Address AVP . . . . . . . . . . . . . . . . . . . 56 | |
| 9. PANA Protocol Message Retransmissions . . . . . . . . . . . 57 | 9. Retransmission Timers . . . . . . . . . . . . . . . . . . . 57 | |
| 9.1 Transmission and Retransmission Parameters . . . . . . . . 58 | 9.1 Transmission and Retransmission Parameters . . . . . . . . 58 | |
| 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . 60 | 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . 60 | |
| 10.1 PANA UDP Port Number . . . . . . . . . . . . . . . . . . 60 | 10.1 PANA UDP Port Number . . . . . . . . . . . . . . . . . . 60 | |
| 10.2 PANA Multicast Address . . . . . . . . . . . . . . . . . 60 | 10.2 PANA Multicast Address . . . . . . . . . . . . . . . . . 60 | |
| 10.3 PANA Header . . . . . . . . . . . . . . . . . . . . . . 60 | 10.3 PANA Header . . . . . . . . . . . . . . . . . . . . . . 60 | |
| 10.3.1 Message Type . . . . . . . . . . . . . . . . . . . . 60 | 10.3.1 Message Type . . . . . . . . . . . . . . . . . . . . 60 | |
| 10.3.2 Flags . . . . . . . . . . . . . . . . . . . . . . . 61 | 10.3.2 Flags . . . . . . . . . . . . . . . . . . . . . . . 61 | |
| 10.4 AVP Header . . . . . . . . . . . . . . . . . . . . . . . 61 | 10.4 AVP Header . . . . . . . . . . . . . . . . . . . . . . . 61 | |
| 10.4.1 AVP Code . . . . . . . . . . . . . . . . . . . . . . 61 | 10.4.1 AVP Code . . . . . . . . . . . . . . . . . . . . . . 61 | |
| 10.4.2 Flags . . . . . . . . . . . . . . . . . . . . . . . 62 | 10.4.2 Flags . . . . . . . . . . . . . . . . . . . . . . . 62 | |
| Skipping to change at page 4, line 28: | ||
| 11.7 PAA-to-EP Communication . . . . . . . . . . . . . . . . 67 | 11.7 PAA-to-EP Communication . . . . . . . . . . . . . . . . 67 | |
| 11.8 Livenes Test . . . . . . . . . . . . . . . . . . . . . . 68 | 11.8 Livenes Test . . . . . . . . . . . . . . . . . . . . . . 68 | |
| 11.9 Mobility Optimization . . . . . . . . . . . . . . . . . 68 | 11.9 Mobility Optimization . . . . . . . . . . . . . . . . . 68 | |
| 11.10 Updating PaC's IP Address . . . . . . . . . . . . . . . 68 | 11.10 Updating PaC's IP Address . . . . . . . . . . . . . . . 68 | |
| 11.11 Early Termination of a Session . . . . . . . . . . . . . 69 | 11.11 Early Termination of a Session . . . . . . . . . . . . . 69 | |
| 12. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . 70 | 12. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . 70 | |
| 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 71 | 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 71 | |
| 13.1 Normative References . . . . . . . . . . . . . . . . . . . 71 | 13.1 Normative References . . . . . . . . . . . . . . . . . . . 71 | |
| 13.2 Informative References . . . . . . . . . . . . . . . . . . 72 | 13.2 Informative References . . . . . . . . . . . . . . . . . . 72 | |
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 73 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 73 | |
| Intellectual Property and Copyright Statements . . . . . . . 75 | A. Example Sequence of Separate NAP and ISP Authentication . . 75 | |
| Intellectual Property and Copyright Statements . . . . . . . 77 | ||
| 1. Introduction | 1. Introduction | |
| Network access authentication has traditionally been a layer 2 | Providing secure network access service requires access control based | |
| function. This document specifies a protocol that enables EAP to be | on the authentication and authorization of the clients and the access | |
| transported above the IP layer. As a result, network access | networks. Client-to-network authentication provides parameters that | |
| authentication can be made a function of the network layer thereby | are needed to police the traffic flow through the enforcement points. | |
| achieving link-layer independence for the process of authenticating a | A protocol is needed to carry authentication methods between the | |
| client seeking access to a network. At the present time, there are | client and the access network. | |
| no standardized solutions for authenticating a host for network | ||
| access at the network layer. The problem statement for which the | ||
| PANA protocol is a solution can be found in Appendix A of | ||
| [I-D.ietf-pana-requirements]. | ||
| PANA relies on EAP for the actual authentication of a client. It | Currently there is no standard network-layer solution for | |
| does not define any new authentication protocols or schemes. It | authenticating clients for network access. Appendix A of | |
| enables EAP messages to be carried between the client and the | [I-D.ietf-pana-requirements] describes the problem statement that led | |
| network. The actual choice of a specific EAP method to be run over | to the development of PANA. | |
| PANA is dependent on the underlying access network technology. The | ||
| key factor in the choice of the EAP method is the determination of | ||
| whether the lower layer (link/physical) provides security for the | ||
| PANA messages. | ||
| A secure network access authentication framework goes beyond just | Scope of this work is identified as designing a link-layer agnostic | |
| authenticating the client to the network. Other aspects such as | transport for network access authentication methods. The Extensible | |
| address configuration, data traffic security, access control filters | Authentication Protocol (EAP) [RFC3748] provides such authentication | |
| and separation of the enforcement point from the protocol end-point | methods. In other words, PANA will carry EAP which can carry various | |
| are documented in [I-D.ietf-pana-framework] and [I-D.ietf-pana-snmp]. | authentication methods. By the virtue of enabling transport of EAP | |
| above IP, any authentication method that can be carried as an EAP | ||
| method is made available to PANA and hence to any link-layer | ||
| technology. There is a clear division of labor between PANA (an EAP | ||
| lower layer), EAP and EAP methods as described in [RFC3748]. | ||
| This document specifies the client-network interaction and the | Various environments and usage models for PANA are identified in | |
| messages defined for this purpose. | Appendix A of [I-D.ietf-pana-requirements]. Potential security | |
| threats for network-layer access authentication protocol are | ||
| discussed in [I-D.ietf-pana-threats-eval]. These have been essential | ||
| in defining the requirements [I-D.ietf-pana-requirements] on the PANA | ||
| protocol. Note that some of these requirements are imposed by the | ||
| chosen payload, EAP [RFC3748]. | ||
| 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 (see | ||
| [I-D.ietf-pana-framework] and [I-D.ietf-pana-snmp]). The readers are | ||
| recommended to go through the PANA Framework document | ||
| [I-D.ietf-pana-framework] prior to reading this protocol | ||
| specification document. | ||
| 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 | |
| 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 access device | |
| It is responsible for providing the credentials in order to prove | (e.g., laptop, PDA, etc.). It is responsible for providing the | |
| its identity for network access authorization. | credentials in order to prove its identity for network access | |
| authorization. | ||
| PANA Authentication Agent (PAA): | PANA Authentication Agent (PAA): | |
| The protocol entity in the access network whose responsibility is | The protocol entity in the access network whose responsibility is | |
| to verify the credentials provided by a PANA client (PaC) and | to verify the credentials provided by a PANA client (PaC) and | |
| authorize network access to the device associated with the client | authorize network access to the device associated with the client | |
| and identified by a Device Identifier (DI). Note the | and identified by a Device Identifier (DI). Note the | |
| authentication and authorization procedure can, according to the | authentication and authorization procedure can, according to the | |
| EAP model, be also offloaded to the backend AAA infrastructure. | EAP model, be also offloaded to the backend AAA infrastructure. | |
| Skipping to change at page 7, line 19: | ||
| significant identifier that is made available by the local | significant identifier that is made available by the local | |
| protocol stack (e.g., circuit id, PPP interface id) of a connected | protocol stack (e.g., circuit id, PPP interface id) of a connected | |
| device. | device. | |
| Enforcement Point (EP): | Enforcement Point (EP): | |
| A node on the access network where per-packet enforcement policies | A node on the access network where per-packet enforcement policies | |
| (i.e., filters) are applied on the inbound and outbound traffic of | (i.e., filters) are applied on the inbound and outbound traffic of | |
| client devices. Information such as the DI and (optionally) | client devices. Information such as the DI and (optionally) | |
| cryptographic keys are provided by the PAA per client for | cryptographic keys are provided by the PAA per client for | |
| generating filters on the EP. | generating filters on the EP. EP and PAA may be co-located. | |
| Network Access Provider (NAP): | Network Access Provider (NAP): | |
| A service provider that provides physical and link-layer | A service provider that provides physical and link-layer | |
| connectivity to an access network it manages. | connectivity to an access network it manages. | |
| AAA-Key: | AAA-Key: | |
| A key derived by the EAP peer and EAP server and transported to | A key derived by the EAP peer and EAP server and transported to | |
| the authenticator [I-D.ietf-eap-keying]. | the authenticator [I-D.ietf-eap-keying]. | |
| Skipping to change at page 9, line 7: | ||
| this phase from authorized phase, and returns back there upon | this phase from authorized phase, and returns back there upon | |
| successful re-authentication. | successful re-authentication. | |
| o Termination phase: The PaC or PAA may choose to discontinue the | o Termination phase: The PaC or PAA may choose to discontinue the | |
| access service at any time. An explicit disconnect message can be | access service at any time. An explicit disconnect message can be | |
| sent by either end. If either the PaC or the PAA disconnects | sent by either end. If either the PaC or the PAA disconnects | |
| without engaging in termination messaging, it is expected that | without engaging in termination messaging, it is expected that | |
| either the expiration of a finite session lifetime or failed | either the expiration of a finite session lifetime or failed | |
| liveness tests would do the job. | liveness tests would do the job. | |
| PaC PAA Message[AVPs] | PaC PAA Message | |
| ----------------------------------------------------- | ----------------------------------------------------- | |
| // Discovery and handshake phase | // Discovery and handshake phase | |
| -----> PANA-PAA-Discover | -----> PANA-PAA-Discover | |
| <----- PANA-Start-Request | <----- PANA-Start-Request | |
| -----> PANA-Start-Answer | -----> PANA-Start-Answer | |
| // Authentication phase | // Authentication phase | |
| <----- PANA-Auth-Request /* EAP Request */ | <----- PANA-Auth-Request /* EAP Request */ | |
| -----> PANA-Auth-Answer | -----> PANA-Auth-Answer | |
| -----> PANA-Auth-Request /* EAP Response */ | -----> PANA-Auth-Request /* EAP Response */ | |
| Skipping to change at page 9, line 32: | ||
| // Authorization phase (IP data traffic allowed) | // Authorization phase (IP data traffic allowed) | |
| <----- PANA-Ping-Request | <----- PANA-Ping-Request | |
| -----> PANA-Ping-Answer | -----> PANA-Ping-Answer | |
| // Termination phase | // Termination phase | |
| -----> PANA-Termination-Request | -----> PANA-Termination-Request | |
| <----- PANA-Termination-Answer | <----- PANA-Termination-Answer | |
| Figure 1: Illustration of PANA Messages in a Session | Figure 1: Illustration of PANA Messages in a Session | |
| Note that depending on the environment and deployment the protocol | ||
| flow depicted in Figure 1 can be abbreviated. | ||
| Cryptographic protection of messages between the PaC and PAA is | Cryptographic protection of messages between the PaC and PAA is | |
| possible as soon as EAP in conjunction with the EAP method exports a | possible as soon as EAP in conjunction with the EAP method exports a | |
| shared key. That shared key is used to create a PANA SA. The PANA | shared key. That shared key is used to create a PANA SA. The PANA | |
| SA helps generating per-message authentication codes that provide | SA helps generating per-message authentication codes that provide | |
| integrity protection and authentication. | integrity protection and authentication. | |
| PANA also allows creation of a new PANA session with a new PAA out of | PANA also allows creation of a new PANA session with a new PAA out of | |
| an existing session with another PAA. This optimization allows PaC | an existing session with another PAA. This optimization allows PaC | |
| achieve quicker authorization without having to run EAP upon movement | achieve quicker authorization without having to run EAP upon movement | |
| (changing PAAs). | (changing PAAs). | |
| Throughout the lifetime of a session, various problems found with the | Throughout the lifetime of a session, various problems found with the | |
| incoming messages can generate a PANA error message sent in response. | incoming messages can generate a PANA error message sent in response. | |
| 4. Protocol Details | 4. Protocol Details | |
| The following sections explain in detail the various phases of a PANA | The following sections explain in detail the various phases of a PANA | |
| session. | session. | |
| 4.1 Discovery and Handshake Phase | 4.1 Payload Encoding | |
| The payload of any PANA message consists of zero or more AVPs | ||
| (Attribute Value Pairs). The subsequent sections refer to these | ||
| AVPs, therefore the list of AVPs are provided with a brief | ||
| description before more extensive descriptions are included later in | ||
| the document. | ||
| o Cookie AVP: contains a random value that is used for making PAA | ||
| discovery robust against blind resource consumption DoS attacks. | ||
| o Protection-Capability AVP: contains the type of per-packet | ||
| protection (link-layer vs. network-layer) when a cryptographic | ||
| mechanism should be enabled after PANA authentication. | ||
| o Device-Id AVP: contains a device identifier (link-layer address or | ||
| an IP address) of the PaC or an EP. | ||
| o EAP AVP: contains an EAP PDU. | ||
| o MAC AVP: contains a Message Authentication Code that integrity | ||
| protects the PANA message. | ||
| o Termination-Cause AVP: contains the reason of session termination. | ||
| o Result-Code AVP: contains information about the protocol execution | ||
| results. | ||
| o Session-Id AVP: contains the PANA session identifier value. | ||
| o Session-Lifetime AVP: contains the duration of authorized access. | ||
| o Failed-AVP: contains an offending AVP that caused a failure. | ||
| o NAP-Information AVP, ISP-Information AVP: contains the identifier | ||
| of a NAP and an ISP, respectively. | ||
| o Key-Id AVP: contains a AAA-Key identifier. | ||
| o PPAC AVP: Post-PANA-Address-Configuration AVP. Used to indicate | ||
| the available/chosen IP address configuration methods that can be | ||
| used by the PaC after successful PANA authentication. | ||
| o Nonce AVP: contains a randomly chosen value that is used in | ||
| cyrptographic key computations. | ||
| o IP-Address AVP: contains an IP Address of the PaC. | ||
| 4.2 Discovery and Handshake Phase | ||
| When a PaC attaches to a network, and knows that it has to discover a | When a PaC attaches to a network, and knows that it has to discover a | |
| PAA, it SHOULD send a PANA-PAA-Discover message to a well-known link | PAA, it SHOULD send a PANA-PAA-Discover message to a well-known link | |
| local multicast address (TBD) and UDP port (TBD). The PANA PAA | local multicast address (TBD) and UDP port (TBD). The PAA discovery | |
| discovery assumes that the PaC and the PAA are one hop away from each | assumes that the PaC and the PAA are one hop away from each other. | |
| other. If the PaC knows the IP address of the PAA (based on | If the PaC knows the IP address of the PAA (based on | |
| pre-configuration), it MAY unicast the PANA-PAA-Discover message to | pre-configuration), it MAY unicast the PANA-PAA-Discover message to | |
| that address. | that address. | |
| When the PAA receives a PANA-PAA-Discover message from a PaC, the PAA | When the PAA receives a PANA-PAA-Discover message from a PaC, the PAA | |
| SHOULD unicast a PANA-Start-Request message to the PaC. | SHOULD unicast a PANA-Start-Request message to the PaC. | |
| The PaC MAY also choose to start sending packets before getting | The PaC MAY also choose to start sending data packets before getting | |
| authenticated. In that case, the network may detect this and the PAA | authenticated. The EP in an access network that implements PANA | |
| MAY send an unsolicited PANA-Start-Request message to the PaC in | SHOULD drop unauthorized packets upon receipt. Additionally, the EP | |
| addition to filtering the unauthorized traffic. The EP is the node | MAY also take this traffic as an indication of unauthorized PaC and | |
| that can detect such activity. The PAA-to-EP protocol MAY be used | notify the PAA. The EP-to-PAA notification SHOULD be sent via | |
| for this purpose. | [I-D.ietf-pana-snmp]. In response, the PAA SHOULD send an | |
| unsolicited PANA-Start-Request message to the PaC. This is called | ||
| "traffic-driven PAA discovery" (an alternative to PaC explicitly | ||
| soliciting for PAA). Note that this optional feature MAY NOT be | ||
| present in all deployments, therefore PaCs MUST NOT assume its | ||
| availability. | ||
| When a PaC receives a PANA-Start-Request message from a PAA, it | When a PaC receives a PANA-Start-Request message from a PAA, it | |
| responds with a PANA-Start-Answer message if it wishes to enter an | responds with a PANA-Start-Answer message if it wishes to enter an | |
| authentication phase. The answer message copies the sequence number. | authentication phase. | |
| There can be multiple PAAs on the link and a PaC may receive multiple | There can be multiple PAAs on the link and a PaC may receive multiple | |
| PANA-Start-Request messages from those PAAs. The authentication and | PANA-Start-Request messages from those PAAs. The authentication and | |
| authorization result does not depend on which PAA is chosen by the | authorization result does not depend on which PAA is chosen by the | |
| PaC. By default the PaC MAY choose the PAA that sent the first | PaC. By default the PaC MAY choose the PAA that sent the first | |
| response. | response. | |
| 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 sequence number is set to a randomly picked initial | cookie. The cookie is used for preventing the PAA from resource | |
| sequence number. The cookie is used for preventing the PAA from | consumption DoS attacks by blind attackers which bombard the PAA with | |
| resource consumption DoS attacks by blind attackers. The cookie is | PANA-PAA-Discover messages. By relying on a cookie mechanism the PAA | |
| computed in such a way that it does not require any per-session state | can avoid per-PaC state creation until after the PaC can produce the | |
| maintenance on the PAA in order to verify the cookie returned in a | same cookie in its PANA-Start-Answer message. In order to do that, | |
| PANA-Start-Answer message. The exact algorithms and syntax used for | the cookie MUST be computed in such a way that it does not require | |
| generating cookies does not affect interoperability and hence is not | any per-session state maintenance on the PAA in order to verify the | |
| specified here. An example algorithm is described below. | cookie returned in a PANA-Start-Answer message. The PAA discovery | |
| that takes advantage of cookies is called "stateless PAA discovery". | ||
| The exact algorithms and syntax used for generating cookies does not | ||
| affect interoperability and hence is not specified here. An example | ||
| algorithm is described below. | ||
| Cookie = | Cookie = | |
| <secret-version> | HMAC_SHA1( <Device-Id of PaC> , <secret> ) | <secret-version> | HMAC_SHA1( <Device-Id of PaC> , <secret> ) | |
| where <secret> is a randomly generated secret known only to the PAA, | where <secret> is a randomly generated secret known only to the PAA, | |
| <secret-version> is an index used for choosing the secret for | <secret-version> is an index used for choosing the secret for | |
| generating the cookie and '|' indicates concatenation. The | generating the cookie and '|' indicates concatenation. The | |
| secret-version should be changed frequently enough to prevent replay | secret-version should be changed frequently enough to prevent replay | |
| attacks. The secret key is valid for a certain time frame. | attacks. The secret key is valid for a certain time frame. | |
| When the PaC sends a PANA-Start-Answer message in response to a | When the PaC sends a PANA-Start-Answer message in response to a | |
| PANA-Start-Request containing a Cookie AVP, the answer MUST contain a | PANA-Start-Request containing a Cookie AVP, the answer MUST contain a | |
| Cookie AVP with the cookie value copied from the request. | Cookie AVP with the cookie value copied from the request. | |
| Skipping to change at page 11, line 17: | ||
| secret-version should be changed frequently enough to prevent replay | secret-version should be changed frequently enough to prevent replay | |
| attacks. The secret key is valid for a certain time frame. | attacks. The secret key is valid for a certain time frame. | |
| When the PaC sends a PANA-Start-Answer message in response to a | When the PaC sends a PANA-Start-Answer message in response to a | |
| PANA-Start-Request containing a Cookie AVP, the answer MUST contain a | PANA-Start-Request containing a Cookie AVP, the answer MUST contain a | |
| Cookie AVP with the cookie value copied from the request. | Cookie AVP with the cookie value copied from the request. | |
| 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 an authentication phase. Otherwise, it | valid, the protocol enters the authentication phase. Otherwise, it | |
| MUST silently discard the received message. | MUST silently discard the received message. | |
| Initial EAP Request MAY be optionally carried by the | Initial EAP Request MAY be optionally carried by the | |
| PANA-Start-Request (as opposed to by a later PANA-Auth-Request) | PANA-Start-Request (as opposed to by a later PANA-Auth-Request) | |
| message in order to reduce the number of round-trips. This | message in order to reduce the number of round-trips. This | |
| optimization SHOULD NOT be used if the PAA discovery is desired to be | optimization SHOULD NOT be used if the PAA discovery is desired to be | |
| stateless. | stateless. | |
| A Protection-Capability AVP and a Post-PANA-Address-Configuration | A Protection-Capability AVP and a Post-PANA-Address-Configuration | |
| (PPAC) AVP MAY be included in the PANA-Start-Request in order to | (PPAC) AVP MAY be included in the PANA-Start-Request in order to | |
| indicate required and available capabilities for the network access. | indicate required and available capabilities for the network access. | |
| These AVPs MAY be used by the PaC for assessing the capability match | These AVPs MAY be used by the PaC for assessing the capability match | |
| even before the authentication takes place. But these AVPs are | even before the authentication takes place. Since these AVPs are | |
| provided during the insecure discovery and handshake phase, there are | provided during the insecure discovery and handshake phase, there are | |
| certain security risks involved in using the provided information. | certain security risks involved in using the provided information. | |
| See Section 11 for further discussion on this. | See Section 11 for further discussion on this. | |
| If the initial EAP Request message is carried in the | If the initial EAP Request message is carried in the | |
| PANA-Start-Request message, an EAP Response message MUST be carried | PANA-Start-Request message, an EAP Response message MUST be carried | |
| in the PANA-Start-Answer message returned to the PAA. | in the PANA-Start-Answer message returned to the PAA. | |
| In any case, PANA MUST NOT generate an EAP message on behalf of EAP | ||
| peer or EAP (pass-through) authenticator. | ||
| The PANA-Start-Request/Answer exchange is needed before entering an | The PANA-Start-Request/Answer exchange is needed before entering an | |
| authentication phase even when the PaC is pre-configured with PAAs IP | authentication phase even when the PaC is pre-configured with PAAs IP | |
| address and the PANA-PAA-Discover message is unicast. | address and the PANA-PAA-Discover message is unicast. | |
| A Nonce AVP MUST be included in PANA-Start-Request and | A Nonce AVP MUST be included in PANA-Start-Request and | |
| PANA-Start-Answer messages. The nonces are used to establish a PANA | PANA-Start-Answer messages. The nonces are used to establish a PANA | |
| SA. | SA. | |
| A PANA-Start-Request message that carries a Cookie AVP is never | A PANA-Start-Request message of a stateless PAA discovery MUST NOT be | |
| retransmitted. A PANA-Start-Request message that does not carry a | on a retransmission timer as this voids the statelessness on the PAA. | |
| Cookie AVP is retransmitted based on timer. A PANA-Start-Answer | Instead, the PaC MUST retransmit the PANA-PAA-Discover until it | |
| message that carries a Cookie AVP is retransmitted based on timer. A | receives a PANA-Start-Request message, and retransmit the | |
| PANA-Start-Answer message that does not carry a Cookie AVP is never | PANA-Start-Answer message until it receives a PANA-Auth-Request | |
| retransmitted based on timer. | message. The PaC can determine whether the PAA is using stateless | |
| discovery by the presence of Cookie AVP. The PANA-Start-Request | ||
| message MUST be retransmitted instead of the PANA-Start-Answer | ||
| message when stateful PAA discovery is used. | ||
| It is possible that both the PAA and the PaC initiate the discovery | It is possible that both the PAA and the PaC initiate the discovery | |
| and handshake procedure at the same time, i.e., the PAA sends a | and handshake procedure at the same time, i.e., the PAA sends a | |
| PANA-Start-Request message while the PaC sends a PANA-PAA-Discover | PANA-Start-Request message while the PaC sends a PANA-PAA-Discover | |
| message. To resolve the race condition, the PAA SHOULD silently | message. To resolve the race condition, the PAA SHOULD silently | |
| discard the PANA-PAA-Discover message received from the PaC after it | discard the PANA-PAA-Discover message received from the PaC after it | |
| has sent a PANA-Start-Request message with creating a state (i.e., no | has sent a PANA-Start-Request message with creating a state (i.e., no | |
| Cookie AVP is included in the message) for the PaC. In this case PAA | Cookie AVP is included in the message) for the PaC. In this case the | |
| will retransmit PANA-Start-Request based on a timer, if PaC doesn't | PAA will retransmit PANA-Start-Request based on a timer, if the PaC | |
| respond in time (message was lost for example). If the PAA had sent | doesn't respond in time (message was lost for example). If the PAA | |
| a PANA-Start-Request message without creating a state for the PaC | had sent a PANA-Start-Request message without creating a state for | |
| (i.e., a Cookie AVP was included in the message), then it SHOULD | the PaC (i.e., a Cookie AVP was included in the message), then it | |
| answer to the PANA-PAA-Discover message. | SHOULD answer to the PANA-PAA-Discover message. | |
| Figure 2 shows an example sequence for the discovery and handshake | Figure 2 shows an example sequence for the discovery and handshake | |
| phase when a PANA-PAA-Discover message is sent by the PaC. Figure 3 | phase when a PANA-PAA-Discover message is sent by the PaC. Figure 3 | |
| shows an example sequence for the discovery and handshake phase that | shows an example sequence for the discovery and handshake phase that | |
| is triggered by data traffic. | is triggered by data traffic. | |
| PaC PAA Message(seqno)[AVPs] | PaC PAA Message(seqno)[AVPs] | |
| ------------------------------------------------------ | ------------------------------------------------------ | |
| -----> PANA-PAA-Discover(0) | -----> PANA-PAA-Discover(0) | |
| <----- PANA-Start-Request(x)[Nonce, Cookie] | <----- PANA-Start-Request(x)[Nonce, Cookie] | |
| Skipping to change at page 13, line 5: | ||
| ------------------------------------------------------ | ------------------------------------------------------ | |
| ---->o (Data packet arrival or L2 trigger) | ---->o (Data packet arrival or L2 trigger) | |
| ------> PAA-to-EP protocol, or another mechanism | ------> PAA-to-EP protocol, or another mechanism | |
| <------------ PANA-Start-Request(x)[Nonce, Cookie] | <------------ PANA-Start-Request(x)[Nonce, Cookie] | |
| ------------> PANA-Start-Answer(x)[Nonce, Cookie] | ------------> PANA-Start-Answer(x)[Nonce, Cookie] | |
| (continued to authentication phase) | (continued to authentication phase) | |
| Figure 3: Example Sequence for Discovery and Handshake when discovery | Figure 3: Example Sequence for Discovery and Handshake when discovery | |
| is triggered by data traffic | is triggered by data traffic | |
| 4.2 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 the PaC and the PAA. EAP Request and Response messages are | between the PaC and the PAA. EAP Request and Response messages are | |
| carried in PANA-Auth-Request messages. PANA-Auth-Answer messages are | carried in PANA-Auth-Request messages. PANA-Auth-Answer messages are | |
| simply used to acknowledge receipt of the requests. As an | simply used to acknowledge receipt of the requests. As an | |
| optimization, a PANA-Auth-Answer message MAY include the EAP | optimization, a PANA-Auth-Answer message MAY include the EAP | |
| Response. Another optimization allows optionally carrying the first | Response. Another optimization allows optionally carrying the first | |
| EAP Request/Response in PANA-Start-Request/Answer message as | EAP Request/Response in PANA-Start-Request/Answer message as | |
| described in Section 4.1 | described in Section 4.2 | |
| When an EAP Success/Failure message is sent from a PAA, the message | PANA allows execution of two separate authentication methods, one | |
| is carried in a PANA-Bind-Request (PBR) message. The | with NAP and one with ISP under the same PANA session. This optional | |
| PANA-Bind-Request messages MUST be acknowledged with a | feature may be offered by the PAA and accepted by the PaC. When | |
| PANA-Bind-Answer (PBA) message. Figure 4 shows an example sequence | performed separately, the result of first EAP authentication is | |
| in an authentication phase. | signaled via PANA-FirstAuth-End-Request and PANA-FirstAuth-End-Answer | |
| message exchange which delineates the first method execution from the | ||
| next. See Section 4.7 for a detailed discussion on NAP/ISP separate | ||
| authentication. | ||
| The result of PANA authentication is carried in a PANA-Bind-Request | ||
| message sent from PAA to PaC. This message carries the final EAP | ||
| authentication method message (whether it is the second method of NAP | ||
| and ISP separate authentication, or the sole authentication method) | ||
| and the result of PANA authentication. The PANA-Bind-Request message | ||
| MUST be acknowledged with a PANA-Bind-Answer (PBA) message. Figure 4 | ||
| shows an example sequence in an authentication phase (no separate | ||
| authentication). | ||
| PaC PAA Message(seqno)[AVPs] | PaC PAA Message(seqno)[AVPs] | |
| -------------------------------------------------------------------- | -------------------------------------------------------------------- | |
| (continued from discovery and handshake phase) | (continued from discovery and handshake phase) | |
| <----- PANA-Auth-Request(x+1) | <----- PANA-Auth-Request(x+1) | |
| [Session-Id, EAP{Request}] | [Session-Id, EAP{Request}] | |
| -----> PANA-Auth-Answer(x+1) // No piggybacking EAP-Response | -----> PANA-Auth-Answer(x+1) // No piggybacking EAP-Response | |
| [Session-Id] | [Session-Id] | |
| -----> PANA-Auth-Request(y) | -----> PANA-Auth-Request(y) | |
| [Session-Id, EAP{Response}] | [Session-Id, EAP{Response}] | |
| <----- PANA-Auth-Answer(y) | <----- PANA-Auth-Answer(y) | |
| [Session-Id] | [Session-Id] | |
| <----- PANA-Auth-Request(x+2) | <----- PANA-Auth-Request(x+2) | |
| [Session-Id, EAP{Request}] | [Session-Id, EAP{Request}] | |
| -----> PANA-Auth-Answer(x+2) // Piggybacking EAP-Response | -----> PANA-Auth-Answer(x+2) // Piggybacking EAP-Response | |
| [Session-Id, EAP{Response}] | [Session-Id, EAP{Response}] | |
| <----- PANA-Bind-Request(x+3) | <----- PANA-Bind-Request(x+3) | |
| [Session-Id, EAP{Success}, Device-Id, IP-Address, | [Session-Id, EAP{Success}, Device-Id, | |
| Lifetime, Protection-Cap., PPAC, MAC] | Lifetime, Protection-Cap., PPAC, MAC] | |
| -----> PANA-Bind-Answer(x+3) | -----> PANA-Bind-Answer(x+3) | |
| [Session-Id, Device-Id, PPAC, MAC] | [Session-Id, Device-Id, PPAC, MAC] | |
| Figure 4: Example Sequence in Authentication Phase | Figure 4: Example Sequence in Authentication Phase | |
| 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-FirstAuth-End-Request and PANA-FirstAuth-End-Answer and/or | PANA message that carries the EAP Success | |
| PANA-Bind-Request and PANA-Bind-Answer messages, and all subsequent | (PANA-FirstAuth-End-Request, PANA-Bind-Request) and any subsequent | |
| PANA messages MUST contain a MAC AVP. | message MUST contain a MAC AVP. | |
| The PANA-Bind-Request and the PANA-Bind-Answer message exchange is | The PANA-Bind-Request and the PANA-Bind-Answer message exchange is | |
| also used for binding device identifiers of the PaC and EP(s), and | also used for binding device identifiers of the PaC and EP(s), and | |
| the IP address of the PAA to the PANA SA. To achieve this, the | the IP address of the PAA to the PANA SA. To achieve this, the | |
| PANA-Bind-Request SHOULD contain the device identifier(s) of the | PANA-Bind-Request SHOULD contain the device identifier(s) of the | |
| EP(s) in Device-Id AVP(s) when they are either MAC or IP address(es), | EP(s) in Device-Id AVP(s) when they are either MAC or IP address(es), | |
| and the IP address of the PAA in an IP-Address AVP. PANA-Bind-Answer | and the IP address of the PAA in an IP-Address AVP. PANA-Bind-Answer | |
| SHOULD contain PaC's device identifier in a Device-Id AVP when it is | SHOULD contain PaC's device identifier in a Device-Id AVP when it is | |
| already presented with that of EP(s). The PaC MUST use the same type | already presented with that of EP(s). The PaC MUST use the same type | |
| of device identifier as contained in the PANA-Bind-Request message. | of device identifier as contained in the PANA-Bind-Request message. | |
| This exchange when protected by a MAC AVP prevents man-in-the-middle | This exchange when protected by a MAC AVP prevents man-in-the-middle | |
| attacks. The PANA-Bind-Request message MAY also contain a | attacks. The PANA-Bind-Request message MAY also contain a | |
| Protection-Capability AVP to indicate if link-layer or network-layer | Protection-Capability AVP to indicate if link-layer or network-layer | |
| ciphering should be initiated after PANA. No link layer or network | ciphering should be initiated after PANA. No link-layer or | |
| layer specific information is included in the Protection-Capability | network-layer specific information is included in the | |
| AVP. When the information is preconfigured on the PaC and the PAA | Protection-Capability AVP. It is assumed that the PAA is aware of | |
| 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 | the security capabilities of the access network. The PANA protocol | |
| does not specify how the PANA SA and the Protection-Capability AVP | does not specify how the PANA SA and the Protection-Capability AVP | |
| will be used to provide per-packet protection for data traffic. | will be used to provide per-packet protection for data traffic. | |
| Additionally, PANA-Bind-Request MUST include a | Additionally, the PANA-Bind-Request message MUST include a | |
| Post-PANA-Address-Configuration AVP, which helps PAA to inform PaC | Post-PANA-Address-Configuration (PPAC) AVP, which helps the PAA to | |
| about whether a new IP address MUST be configured and the available | inform the PaC about whether a new IP address MUST be configured and | |
| methods to do so. PaC MUST include a PPAC AVP in order to indicate | the available methods to do so. The PaC MUST include a PPAC AVP in | |
| its choice of method when there is a match between the methods | order to indicate its choice of method when there is a match between | |
| offered by the PAA and the methods available on the PaC. When there | the methods offered by the PAA and the methods available on the PaC. | |
| is no match, a PPAC AVP MUST NOT be included and the Result-Code AVP | When there is no match, a PPAC AVP MUST NOT be included and the | |
| MUST be set to PANA_PPAC_CAPABILITY_UNSUPPORTED in the | Result-Code AVP MUST be set to PANA_PPAC_CAPABILITY_UNSUPPORTED in | |
| PANA-Bind-Answer message. | 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 Section 5.3. | based on the retransmission rule described in Section 5.2. | |
| EAP authentication can fail at a pass-through authenticator without | EAP authentication can fail at a pass-through authenticator without | |
| sending an EAP-Failure message [I-D.ietf-eap-statemachine]. When | sending an EAP-Failure message [I-D.ietf-eap-statemachine]. When | |
| this occurs, the PAA SHOULD send a PANA-Error-Request message to the | this occurs, the PAA SHOULD send a PANA-Error-Request message to the | |
| PaC with using PANA_UNABLE_TO_COMPLY result code. The PaC SHOULD not | PaC with using PANA_UNABLE_TO_COMPLY result code. The PaC SHOULD not | |
| change its state unless the error message is secured by PANA or lower | change its state unless the error message is secured by PANA or lower | |
| layer. In any case, a more appropriate way is to rely on a timeout | layer. In any case, a more appropriate way is to rely on a timeout | |
| on the PaC. | on the PaC. | |
| There is a case where EAP authentication succeeds with producing an | There is a case where EAP authentication succeeds with producing an | |
| EAP-Success message but network access authorization fails due to, | EAP-Success message but network access authorization fails due to, | |
| e.g., authorization rejected by a AAA proxy or authorization locally | e.g., authorization rejected by a AAA proxy or authorization locally | |
| rejected by the PAA. When this occurs, the PAA MUST send | rejected by the PAA. When this occurs, the PAA MUST send | |
| PANA-Bind-Request with a result code PANA_AUTHORIZATION_REJECTED. If | PANA-Bind-Request with a result code PANA_AUTHORIZATION_REJECTED. If | |
| a AAA-Key is established between PaC and PAA by the time when the | a AAA-Key is established between the PaC and the PAA by the time when | |
| EAP-Success is generated by the EAP server (this is the case when the | the EAP-Success message is generated by the EAP server (this is the | |
| EAP method provides protected success indication), this PANA-Bind | case when the EAP method provides protected success indication), this | |
| message exchange MUST be protected with a MAC AVP and with carrying a | PANA-Bind message exchange MUST be protected with a MAC AVP and carry | |
| Key-Id AVP. The AAA-Key and the PANA session MUST be deleted after | a Key-Id AVP. The AAA-Key and the PANA session MUST be deleted | |
| the PANA-Bind message exchange. | immediately after the PANA-Bind message exchange. | |
| 4.3 Authorization Phase | 4.4 Authorization Phase | |
| Once an authentication phase or a re-authentication phase | Once an authentication phase or a re-authentication phase | |
| successfully completes, the PaC gains access to the network and can | successfully completes, the PaC gains access to the network and can | |
| send and receive IP data traffic through EP and the PANA session | send and receive IP data traffic through EP and the PANA session | |
| enters an authorization phase. In this phase, PANA-Ping-Request and | enters an authorization phase. In this phase, PANA-Ping-Request and | |
| PANA-Ping-Answer messages are used for testing the liveness of the | PANA-Ping-Answer messages can be used for testing the liveness of the | |
| PANA session on the PANA peer. Both the PaC and the PAA are allowed | PANA session on the PANA peer. Both the PaC and the PAA are allowed | |
| to send a PANA-Ping-Request message to the communicating peer | to send a PANA-Ping-Request message to the communicating peer | |
| whenever they need to make sure the availability of the session on | whenever they need to make sure the availability of the session on | |
| the peer and expect the peer to return a PANA-Ping-Answer message. | the peer and expect the peer to return a PANA-Ping-Answer message. | |
| Both PANA-Ping-Request and PANA-Ping-Answer messages MUST be | Both PANA-Ping-Request and PANA-Ping-Answer messages MUST be | |
| protected with a MAC AVP when a PANA SA is available. | protected with a MAC AVP when a PANA SA is available. | |
| Implementations MUST limit the rate of performing this test. The PaC | Implementations MUST limit the rate of performing this test. The PaC | |
| and the PAA can handle rate limitation on their own, they do not have | and the PAA can handle rate limitation on their own, they do not have | |
| to perform any coordination with each other. There is no negotiation | to perform any coordination with each other. There is no negotiation | |
| Skipping to change at page 15, line 43: | ||
| Figure 5: Example Sequence for PaC-initiated liveness test | Figure 5: Example Sequence for PaC-initiated liveness test | |
| PaC PAA Message(seqno)[AVPs] | PaC PAA Message(seqno)[AVPs] | |
| ------------------------------------------------------ | ------------------------------------------------------ | |
| <----- PANA-Ping-Request(p)[Session-Id, MAC] | <----- PANA-Ping-Request(p)[Session-Id, MAC] | |
| -----> PANA-Ping-Answer(p)[Session-Id, MAC] | -----> PANA-Ping-Answer(p)[Session-Id, MAC] | |
| Figure 6: Example Sequence for PAA-initiated liveness test | Figure 6: Example Sequence for PAA-initiated liveness test | |
| 4.4 Re-authentication Phase | 4.5 Re-authentication Phase | |
| A PANA session in an authorization phase can enter a | A PANA session in an authorization phase can enter a | |
| re-authentication phase to extend the current session lifetime by | re-authentication phase to extend the current session lifetime by | |
| re-executing EAP. Once the re-authentication phase successfully | re-executing EAP. Once the re-authentication phase successfully | |
| completes, the session re-enters the authorization phase. Otherwise, | completes, the session re-enters the authorization phase. Otherwise, | |
| the session is deleted. | the session is deleted. | |
| When a PaC wants to initiate re-authentication, it sends a | When a PaC wants to initiate re-authentication, it sends a | |
| PANA-Reauth-Request message to the PAA. This message MUST contain a | PANA-Reauth-Request message to the PAA. This message MUST contain a | |
| Session-Id AVP which is used for identifying the PANA session on the | Session-Id AVP which is used for identifying the PANA session on the | |
| Skipping to change at page 17, line 24: | ||
| [Session-Id, MAC] | [Session-Id, MAC] | |
| -----> PANA-Auth-Request(q+1) | -----> PANA-Auth-Request(q+1) | |
| [Session-Id, EAP{Response}, MAC] | [Session-Id, EAP{Response}, MAC] | |
| <----- PANA-Auth-Answer(q+1) // No piggybacking EAP-Response | <----- PANA-Auth-Answer(q+1) // No piggybacking EAP-Response | |
| [Session-Id, MAC] | [Session-Id, MAC] | |
| <----- PANA-Auth-Request(p+1) | <----- PANA-Auth-Request(p+1) | |
| [Session-Id, EAP{Request}, MAC] | [Session-Id, EAP{Request}, MAC] | |
| -----> PANA-Auth-Answer(p+1) // Piggybacking EAP-Response | -----> PANA-Auth-Answer(p+1) // Piggybacking EAP-Response | |
| [Session-Id, EAP{Response}, MAC] | [Session-Id, EAP{Response}, MAC] | |
| <----- PANA-Bind-Request(p+2) | <----- PANA-Bind-Request(p+2) | |
| [Session-Id, EAP{Success}, Device-Id, | [Session-Id, EAP{Success}, Device-Id, Key-Id, | |
| IP-Address, Key-Id, Lifetime, | IP-Address, Lifetime, Protection-Cap., PPAC, MAC] | |
| Protection-Cap., PPAC, MAC] | ||
| -----> PANA-Bind-Answer(p+2) | -----> PANA-Bind-Answer(p+2) | |
| [Session-Id, Device-Id, Key-Id, PPAC, MAC] | [Session-Id, Device-Id, Key-Id, PPAC, MAC] | |
| Figure 7: Example Sequence for re-authentication initiated by PaC | Figure 7: Example Sequence for re-authentication initiated by PaC | |
| 4.5 Termination Phase | 4.6 Termination Phase | |
| A procedure for explicitly terminating a PANA session can be | A procedure for explicitly terminating a PANA session can be | |
| initiated either from the PaC (i.e., disconnect indication) or from | initiated either from the PaC (i.e., disconnect indication) or from | |
| the PAA (i.e., session revocation). The PANA-Termination-Request and | the PAA (i.e., session revocation). The PANA-Termination-Request and | |
| the PANA-Termination-Answer message exchanges are used for disconnect | the 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 | |
| Skipping to change at page 19, line 5: | ||
| PANA-Termination-Request receives a valid acknowledgment, all states | PANA-Termination-Request receives a valid acknowledgment, all states | |
| maintained for the PANA session MUST be deleted immediately. | maintained for the PANA session MUST be deleted immediately. | |
| PaC PAA Message(seqno)[AVPs] | PaC PAA Message(seqno)[AVPs] | |
| ------------------------------------------------------ | ------------------------------------------------------ | |
| -----> PANA-Termination-Request(q)[Session-Id, MAC] | -----> PANA-Termination-Request(q)[Session-Id, MAC] | |
| <----- PANA-Termination-Answer(q)[Session-Id, MAC] | <----- PANA-Termination-Answer(q)[Session-Id, MAC] | |
| Figure 8: Example Sequence for Session Termination | Figure 8: Example Sequence for Session Termination | |
| 5. Protocol Design Details and Processing Rules | 4.7 Separate NAP and ISP Authentication | |
| 5.1 Payload Encoding | PANA allows running at most two EAP sessions in sequence in an | |
| authentication phase to support separate NAP and ISP authentication | ||
| as described in this section. A typical network access | ||
| authentication includes execution of one EAP method with the ISP. | ||
| This separation allows PaC to perform an additional authentication | ||
| method for receiving differentiated services from the NAP. | ||
| The payload of any PANA message consists of zero or more AVPs | Currently, running multiple EAP sessions in sequence in an | |
| (Attribute Value Pairs). A brief description of the AVPs defined in | authentication phase is designed only for separate NAP and ISP | |
| this document is listed below: | authentication. It is not for running arbitrary number of EAP | |
| sessions in sequence, or giving the PaC another chance to try another | ||
| EAP authentication method within an integrated NAP and ISP | ||
| authentication when an EAP authentication method fails. | ||
| o Cookie AVP: contains a random value that is used for making | Within separate NAP and ISP authentication, the NAP authentication | |
| handshake robust against blind resource consumption DoS attacks. | and the ISP authentication are considered completely independent. | |
| Presence or success of one should not effect the other. Making a | ||
| network access authorization decision based on the success or failure | ||
| of each authentication is a network policy issue. | ||
| o Protection-Capability AVP: contains information which protection | 4.7.1 Negotiating Separate NAP and ISP Authentication | |
| should be initiated after the PANA exchange (e.g., link-layer or | ||
| network layer protection). | ||
| o Device-Id AVP: contains a device identifier of the PaC or an EP. | When the PaC and PAA negotiates in the discovery and handshake phase | |
| A device identifier is represented as a pair of device identifier | to perform separate NAP and ISP authentication, the PaC and the PAA | |
| type and device identifier value. Either a layer-2 address or an | operate in the following way in addition to the behavior defined in | |
| IP address is used for the device identifier value when this AVP | Section 4.2 | |
| is present. | In the discovery and handshake phase, the PAA MAY advertise | |
| availability of separate NAP and ISP authentication | ||
| ([I-D.ietf-pana-framework]) by setting the S-flag on the message | ||
| header of the PANA-Start-Request. | ||
| o EAP AVP: contains an EAP PDU. | If the S-flag of the received PANA-Start-Request message is set, the | |
| PaC can indicate its desire to perform separate NAP and ISP | ||
| authentication by setting the S-flag in the PANA-Start-Answer | ||
| message. If the S-flag of the received PANA-Start-Request message is | ||
| not set, the PaC MUST NOT set the S-flag in the PANA-Start-Answer | ||
| message sent back to the PAA. | ||
| o MAC AVP: contains a Message Authentication Code that protects a | If the S-flag in the PANA-Start-Answer message is not set, only one | |
| PANA message PDU. | authentication is performed (ISP-only) and the processing occurs as | |
| described in Section 4.2. | ||
| o Termination-Cause AVP: contains the reason of session termination. | When the S-flag is set in a PANA-Start-Request message, the initial | |
| EAP Request MUST NOT be carried in the PANA-Start-Request message. | ||
| (If the initial EAP Request were contained in the PANA-Start-Request | ||
| message during the S-flag negotiation, the PaC cannot tell whether | ||
| the EAP Request is for NAP authentication or ISP authentication.) | ||
| o Result-Code AVP: contains information about the protocol execution | 4.7.2 Execution of Separate NAP and ISP Authentication | |
| results. | ||
| o Session-Id AVP: contains the session identifier value. | When the PaC and PAA have negotiated in the discovery and handshake | |
| phase to perform separate NAP and ISP authentication, the PaC and the | ||
| PAA operate in the following way in addition to the behavior defined | ||
| in Section 4.3 | ||
| o Session-Lifetime AVP: contains the duration of authorized access. | o The S-flag of PANA-Auth-Request and PANA-Auth-Answer messages MUST | |
| be set. | ||
| o Failed-AVP: contains the offending AVP that caused a failure. | o An EAP Success/Failure message is carried in a | |
| PANA-FirstAuth-End-Request (PFER) message as well as a | ||
| PANA-Bind-Request (PBR) message. The PANA-FirstAuth-End-Request | ||
| message MUST be used at the end of the first EAP authentication | ||
| and the PANA-Bind-Request MUST be used for the second EAP | ||
| authentication. The PANA-FirstAuth-End-Request messages MUST be | ||
| acknowledged with a PANA-FirstAuth-End-Answer (PFEA) message. | ||
| o NAP-Information AVP, ISP-Information AVP: contains the information | o If the first EAP authentication has failed, the PAA can choose not | |
| on a NAP and an ISP, respectively. | to perform the second EAP authentication by clearing the S-flag of | |
| the PANA-FirstAuth-End-Request message. In this case, the S-flag | ||
| of the PANA-FirstAuth-End-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. | ||
| o Key-Id AVP: contains a AAA-Key identifier. | o The PAA determines the execution order of NAP authentication and | |
| ISP authentication. In this case, the PAA can indicate which | ||
| authentication (NAP authentication or ISP authentication) is | ||
| currently occurring by using N-flag in the PANA message header. | ||
| When NAP authentication is being performed, the N-flag MUST be | ||
| set. When ISP authentication is being performed, the N-flag MUST | ||
| NOT be set. The N-flag MUST NOT be set when S-flag is not set. | ||
| o PPAC AVP: Post-PANA-Address-Configuration AVP. Conveys the list | When the PaC and PAA have negotiated in the discovery and handshake | |
| of IP address configuration methods available when sent by the | phase to perform separate NAP and ISP authentication, and the | |
| PAA, and the chosen method when sent by the PaC. | lower-layer is insecure, the two EAP authentication methods used in | |
| the separate authentication MUST be capable of deriving keys | ||
| (AAA-Key). | ||
| o Nonce AVP: contains a randomly chosen value. | 4.7.3 AAA-Key Calculation | |
| o IP-Address AVP: contains an IP Address of a PaC. | When the PaC and PAA have negotiated in the discovery and handshake | |
| phase to perform separate NAP and ISP authentication, if the | ||
| lower-layer is insecure, the two EAP authentication methods used in | ||
| the separate authentication MUST be capable of deriving keys. In | ||
| this case, if the first EAP authentication is successful, the | ||
| PANA-FirstAuth-End-Request and PANA-FirstAuth-End-Answer messages as | ||
| well as PANA-Auth-Request and PANA-Auth-Answer messages in the second | ||
| EAP authentication MUST be protected with the key derived from the | ||
| AAA-Key for the first EAP authentication. The PANA-Bind-Request and | ||
| PANA-Bind-Answer messages and all subsequent PANA messages exchanged | ||
| in authorized phase, re-authentication phase and termination phase | ||
| MUST be protected either with the AAA-Key for the first EAP | ||
| authentication if the first EAP authentication succeeds and the | ||
| second EAP authentication fails, or with the AAA-Key for the second | ||
| EAP authentication if the first EAP authentication fails and the | ||
| second EAP authentication succeeds, or with the compound AAA-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. | ||
| 5.2 Transport Layer | 5. Protocol Design Details and Processing Rules | |
| 5.1 Transport Layer | ||
| PANA uses UDP as its transport layer protocol. The UDP port number | PANA uses UDP as its transport layer protocol. The UDP port number | |
| is TBD. All messages except for PANA-PAA-Discover are always | is TBD. All messages except for PANA-PAA-Discover are always | |
| unicast. PANA-PAA-Discover MAY be unicast when the PaC knows the IP | unicast. PANA-PAA-Discover MAY be unicast when the PaC knows the IP | |
| address of the PAA. | address of the PAA. | |
| 5.2.1 Fragmentation | 5.1.1 Fragmentation | |
| PANA does not provide fragmentation of PANA messages. Instead, it | PANA does not provide fragmentation of PANA messages. Instead, it | |
| relies on fragmentation provided by EAP methods and IP layer when | relies on fragmentation provided by EAP methods and IP layer when | |
| needed. | needed. | |
| 5.3 Sequence Number and Retransmission | 5.2 Sequence Number and Retransmission | |
| PANA uses sequence numbers to provide ordered and reliable delivery | PANA uses sequence numbers to provide ordered and reliable delivery | |
| of messages. | of messages. | |
| PaC and PAA maintain two sequence numbers: the next one to be used | PaC and PAA maintain two sequence numbers: the next one to be used | |
| for a request it initiates and the next one it expects to see in a | for a request it initiates and the next one it expects to see in a | |
| request from the other end. These sequence numbers are 32-bit | request from the other end. These sequence numbers are 32-bit | |
| unsigned numbers. They are monotonically incremented by 1 as new | unsigned numbers. They are monotonically incremented by 1 as new | |
| requests are generated and received, and wrapped to zero on the next | requests are generated and received, and wrapped to zero on the next | |
| message after 2^32-1. Answers always contain the same sequence | message after 2^32-1. Answers always contain the same sequence | |
| Skipping to change at page 20, line 48: | ||
| When a request message is received, it is considered valid in terms | When a request message is received, it is considered valid in terms | |
| of sequence numbers if and only if its sequence number matches the | of sequence numbers if and only if its sequence number matches the | |
| expected value. This check does not apply to PANA-PAA-Discover, and | expected value. This check does not apply to PANA-PAA-Discover, and | |
| the very first request messages. | the very first request messages. | |
| When an answer message is received, it is considered valid in terms | When an answer message is received, it is considered valid in terms | |
| of sequence numbers if and only if its sequence number matches that | of sequence numbers if and only if its sequence number matches that | |
| of the currently outstanding request. A peer can only have one | of the currently outstanding request. A peer can only have one | |
| outstanding request at a time. | outstanding request at a time. | |
| PANA messages are retransmitted based on timer at until a response is | PANA request messages are retransmitted based on a timer until a | |
| received (in which case the retransmission timer is stopped) or the | response is received (in which case the retransmission timer is | |
| number of retransmission reaches the maximum value (in which case the | stopped) or the number of retransmission reaches the maximum value | |
| PANA session MUST be deleted immediately). The retransmission timer | (in which case the PANA session MUST be deleted immediately). | |
| SHOULD be calculated as described in [RFC2988] to provide congestion | ||
| control. See Section 9 for default timer and maximum retransmission | The initial discovery and handshake phase requires special handling. | |
| count parameters. | PaC MUST retransmit PANA-PAA-Discover if a subsequent | |
| PANA-Start-Request is not received in time. Even though a | ||
| PANA-Start-Request is received, PANA-PAA-Discover may still have to | ||
| be retransmitted. This is because a stateless PAA discovery requires | ||
| one time transmission of a solicited PANA-Start-Request. PAA MUST | ||
| NOT start a timer and retransmit the request in order to avoid state | ||
| creation. If the received PANA-Start-Request included a Cookie AVP | ||
| (an indication of stateless discovery), PaC MUST retransmit | ||
| PANA-PAA-Discover until the first PANA-Auth-Request is received. | ||
| Otherwise, PaC can rely on PAA to retransmit the PANA-Start-Requests | ||
| as soon as PaC receives the first one (i.e., PaC can stop sending | ||
| PANA-PAA-Discover). | ||
| The retransmission timers SHOULD be calculated as described in | ||
| [RFC2988] to provide congestion control. See Section 9 for default | ||
| timer and maximum retransmission count parameters. | ||
| PaC and PAA MUST respond to duplicate requests. Last transmitted | PaC and PAA MUST respond to duplicate requests. Last transmitted | |
| PANA answer MAY be cached in case it is not received by the peer and | PANA answer MAY be cached in case it is not received by the peer and | |
| that generates a retransmission of the last request. When available, | that generates a retransmission of the last request. When available, | |
| a cached answer can be used instead of fully processing the | a cached answer can be used instead of fully processing the | |
| retransmitted request and forming a new answer from scratch. | retransmitted request and forming a new answer from scratch. | |
| PANA MUST NOT generate EAP message duplication. EAP payload of a | PANA MUST NOT generate EAP message duplication. EAP payload of a | |
| retransmitted PANA message MUST NOT be passed to the EAP layer. | retransmitted PANA message MUST NOT be passed to the EAP layer. | |
| 5.3 PANA Security Association | ||
| 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 | ||
| not created when the PANA authentication fails or no AAA-Key is | ||
| produced by any EAP authentication method. In the case where two EAP | ||
| authentications are performed in sequence in a single PANA | ||
| authentication phase, it is possible that two AAA-Keys are derived. | ||
| If this happens, the PANA SA MUST be generated from both AAA-Keys. | ||
| When a new AAA-Key is derived as a result of EAP-based | ||
| re-authentication, any key derived from the old AAA-Key MUST be | ||
| updated to a new one that is derived from the new AAA-Key. In order | ||
| to distinguish the new AAA-Key from old ones, one Key-Id AVP MUST be | ||
| carried in PANA-Bind-Request and PANA-Bind-Answer messages or | ||
| 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 | ||
| value that uniquely identifies the AAA-Key within the PANA session. | ||
| The PANA-Bind-Answer message (or the PANA-FirstAuth-End-Answer | ||
| message) sent in response to a PANA-Bind-Request message (or a | ||
| PANA-FirstAuth-End-Request message) with a Key-Id AVP MUST contain a | ||
| Key-Id AVP with the same AAA-Key identifier carried in the request. | ||
| PANA-Bind-Request, PANA-Bind-Answer, PANA-FirstAuth-End-Request and | ||
| PANA-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 | ||
| Key-Id AVP value, a simple method is to use monotonically increasing | ||
| numbers. | ||
| 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 | ||
| the PANA session for simplicity. | ||
| PANA SA attributes as well as PANA session attributes are listed | ||
| below: | ||
| PANA Session attributes: | ||
| * Session-Id | ||
| * Device-Id of PaC | ||
| * IP address of PaC (may be the same as the Device-Id of PaC) | ||
| * IP address of PAA | ||
| * List of device identifiers of EPs | ||
| * Sequence number of the last transmitted request | ||
| * Sequence number of the last received request | ||
| * Last transmitted message payload | ||
| * Retransmission interval | ||
| * Session lifetime | ||
| * Protection-Capability | ||
| * PANA SA attributes: | ||
| + Nonce generated by PaC (PaC_nonce) | ||
| + Nonce generated by PAA (PAA_nonce) | ||
| + AAA-Key | ||
| + AAA-Key Identifier | ||
| + PANA_MAC_KEY | ||
| The PANA_MAC_KEY is derived from the available AAA-Key(s) and it is | ||
| used to integrity protect PANA messages. If there is only one | ||
| AAA-Key available, e.g., due to ISP-only authentication, or with one | ||
| failed and one successful NAP and ISP separate authentication (see | ||
| Section 4.7), the PANA_MAC_KEY computation is based on that single | ||
| key. Otherwise, two AAA-Keys available to PANA can be combined in | ||
| following way ('|' indicates concatenation): | ||
| AAA-Key = AAA-Key1 | AAA-Key2 | ||
| The PANA_MAC_KEY is computed in the following way: | ||
| PANA_MAC_KEY = The first N bits of | ||
| HMAC_SHA1(AAA-Key, PaC_nonce | PAA_nonce | Session-ID) | ||
| where the value of N depends on the integrity protection algorithm in | ||
| use, i.e., N=160 for HMAC-SHA1. The length of AAA-Key MUST be N bits | ||
| or longer. See Section Section 5.4 for the detailed usage of the | ||
| PANA_MAC_KEY. | ||
| 5.4 Message Authentication Code | 5.4 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 22, line 32: | ||
| + PANA-PAA-Discover. | + PANA-PAA-Discover. | |
| + PANA-Update-Request. | + PANA-Update-Request. | |
| + PANA-Start-Request after a PaC receives the first valid | + PANA-Start-Request after a PaC receives the first valid | |
| PANA-Auth-Request. | PANA-Auth-Request. | |
| + PANA-Termination-Request before the PaC receives the first | + PANA-Termination-Request before the PaC receives the first | |
| successful PANA-Bind-Request. | successful PANA-Bind-Request. | |
| * After successful PANA authentication: | * Authorized phase: | |
| + PANA-Start-Request as well as a non-duplicate | + PANA-Start-Request as well as a non-duplicate | |
| PANA-Bind-Request. | PANA-Bind-Request. | |
| + PANA-PAA-Discover. | + PANA-PAA-Discover. | |
| * In termination phase: | * In termination phase: | |
| + PANA-PAA-Discover. | + PANA-PAA-Discover. | |
| Skipping to change at page 23, line 23: | ||
| header corresponding to the device identifier type contained in | header corresponding to the device identifier type contained in | |
| the AVP (check performed by PAA only). Note that a Device-Id AVP | the AVP (check performed by PAA only). Note that a Device-Id AVP | |
| carries the PaC's device identifier in messages from PaC to PAA | carries the PaC's device identifier in messages from PaC to PAA | |
| and EP(s)' device identifier in messages from PAA to PaC. | and EP(s)' device identifier in messages from PAA to PaC. | |
| o When an IP-Address AVP is received in a message, the AVP is valid | o When an IP-Address AVP is received in a message, the AVP is valid | |
| if the IP address matches the source address in the IP header. | if the IP address matches the source address in the IP header. | |
| Invalid messages MUST be discarded in order to provide robustness | Invalid messages MUST be discarded in order to provide robustness | |
| against DoS attacks. In addition, an error notification message MAY | against DoS attacks. In addition, an error notification message MAY | |
| be returned to the sender. See Section 5.7 for details. | be returned to the sender. See Section 5.10 for details. | |
| 5.6 PANA Security Association | ||
| 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 | ||
| not created when the PANA authentication fails or no AAA-Key is | ||
| produced by any EAP authentication method. In the case where two EAP | ||
| authentications are performed in sequence in a single PANA | ||
| authentication phase, it is possible that two AAA-Keys are derived. | ||
| If this happens, the PANA SA MUST be generated from both AAA-Keys. | ||
| When a new AAA-Key is derived as a result of EAP-based | ||
| re-authentication, any key derived from the old AAA-Key MUST be | ||
| updated to a new one that is derived from the new AAA-Key. In order | ||
| to distinguish the new AAA-Key from old ones, one Key-Id AVP MUST be | ||
| carried in PANA-Bind-Request and PANA-Bind-Answer messages or | ||
| 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 | ||
| value that uniquely identifies the AAA-Key within the PANA session. | ||
| The PANA-Bind-Answer message (or the PANA-FirstAuth-End-Answer | ||
| message) sent in response to a PANA-Bind-Request message (or a | ||
| PANA-FirstAuth-End-Request message) with a Key-Id AVP MUST contain a | ||
| Key-Id AVP with the same AAA-Key identifier carried in the request. | ||
| PANA-Bind-Request, PANA-Bind-Answer, PANA-FirstAuth-End-Request and | ||
| PANA-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 | ||
| Key-Id AVP value, a simple method is to use monotonically increasing | ||
| numbers. | ||
| 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 | ||
| the PANA session for simplicity. | ||
| PANA SA attributes as well as PANA session attributes are listed | ||
| below: | ||
| PANA Session attributes: | ||
| * Session-Id | ||
| * Device-Id of PaC | ||
| * IP address of PaC (may be the same as the Device-Id of PaC) | ||
| * IP address of PAA | ||
| * List of device identifiers of EPs | ||
| * Sequence number of the last transmitted request | ||
| * Sequence number of the last received request | ||
| * Last transmitted message payload | ||
| * Retransmission interval | ||
| * Session lifetime | ||
| * Protection-Capability | ||
| * PANA SA attributes: | ||
| + Nonce generated by PaC (PaC_nonce) | ||
| + Nonce generated by PAA (PAA_nonce) | ||
| + AAA-Key | ||
| + AAA-Key Identifier | ||
| + PANA_MAC_KEY | ||
| The PANA_MAC_KEY is used to integrity protect PANA messages and | ||
| derived from AAA-Key(s). When two AAA-Keys (AAA-Key1 and AAA-Key2) | ||
| are generated as a result of double EAP authentication (see Section | ||
| 4.2) the compound AAA-Key can be computed as follows ('|' indicates | ||
| concatenation): | ||
| AAA-Key = AAA-Key1 | AAA-Key2 | ||
| The PANA_MAC_KEY is computed in the following way: | ||
| PANA_MAC_KEY = The first N bits of | ||
| HMAC_SHA1(AAA-Key, PaC_nonce | PAA_nonce | Session-ID) | ||
| where the value of N depends on the integrity protection algorithm in | ||
| use, i.e., N=160 for HMAC-SHA1. The length of AAA-Key MUST be N bits | ||
| or longer. See Section Section 5.4 for the detailed usage of the | ||
| PANA_MAC_KEY. | ||
| 5.7 Error Handling | ||
| A PANA-Error-Request message MAY be sent by either the PaC or the PAA | ||
| when a badly formed PANA message is received or in case of other | ||
| errors. The receiver of this request MUST respond with a | ||
| PANA-Error-Answer message. If the cause of this error message was a | ||
| request message (e.g., PANA-PAA-Discover or *-Request), then the | ||
| request MAY be retransmitted immediately without waiting for its | ||
| retransmission timer to go off. If the cause of the error was a | ||
| response message, the receiver of the PANA-Error-Request message | ||
| SHOULD NOT resend the same response until it receives the next | ||
| request. | ||
| To defend against DoS attacks a timer MAY be used. One (1) error | ||
| notification is sent to each different sender each N seconds. N is a | ||
| configurable parameter. | ||
| When an error message is sent unprotected with a MAC AVP and the | ||
| lower-layer is insecure, the error message is treated as an | ||
| informational message. The receiver of such an error message MUST | ||
| NOT change its state unless the error persists and the PANA session | ||
| is not making any progress. | ||
| 5.8 Device ID Choice | 5.6 Device ID Choice | |
| The device identifier used in the context of PANA can be an IP | The device identifier used in the context of PANA can be an IP | |
| address, a MAC address, or an identifier that is not carried in data | address, a MAC address, or an identifier that is not carried in data | |
| packets but has local significance in identifying a connected host | packets but has local significance in identifying a connected device | |
| (e.g., circuit id, PPP interface id). The last type of identifiers | (e.g., circuit id, PPP interface id). The last type of identifiers | |
| are commonly used in point-to-point links where MAC addresses are not | are commonly used in point-to-point links where MAC addresses are not | |
| available and lower-layers are already physically or | available and lower-layers are already physically or | |
| cryptographically secured. | cryptographically secured. | |
| It is assumed that the PAA knows the link type and the security | It is assumed that the PAA knows the link type and the security | |
| mechanisms being provided or required on the access network (e.g., | mechanisms being provided or required on the access network (e.g., | |
| based on physical security, link-layer ciphers enabled before or | based on physical security, link-layer ciphers enabled before or | |
| after PANA, or IPsec). Based on that information, the PAA can decide | after PANA, or IPsec). Based on that information, the PAA can decide | |
| what type of EP device id will be used when running PANA with the | what type of EP device id will be used when running PANA with the | |
| client. When IPsec-based security [I-D.ietf-pana-ipsec] is the | client. When IPsec-based security [I-D.ietf-pana-ipsec] is the | |
| choice of access control, the PAA SHOULD provide IP address(es) as | choice of access control, the PAA SHOULD provide IP address(es) as | |
| EP(s)' device ID, and expect the PaC to provide its IP address in | EP(s)' device ID, and expect the PaC to provide its IP address in | |
| return. In case IPsec is not used, MAC addresses are used as device | 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 | IDs when available. If non-IPsec access control is enabled, and a | |
| MAC address is not available, device ID exchange does not occur | MAC address is not available, device ID exchange does not occur | |
| within PANA. Instead, peers rely on lower-layers to provide | within PANA. Instead, peers rely on lower-layers to provide | |
| locally-significant identifiers along with received PANA packets. | locally-significant identifiers along with received PANA packets. | |
| 5.9 Updating PaC' Address | 5.7 PaC Updating its IP Address | |
| A PaC's IP address can change in certain situations. For example, | A PaC's IP address can change in certain situations. For example, | |
| the PANA framework [I-D.ietf-pana-framework] describes a case in | the PANA framework [I-D.ietf-pana-framework] describes a case in | |
| which a PaC replaces a pre-PANA address (PRPA) with a post-PANA | which a PaC replaces a pre-PANA address (PRPA) with a post-PANA | |
| address (POPA), and the PaC and PAA create host routes to each other | address (POPA), and the PaC and PAA create host routes to each other | |
| in order to maintain on-link communication based on the POPA. The | in order to maintain on-link communication based on the POPA. The | |
| PAA needs to be notified about the change of PaC address. | PAA needs to be notified about the change of PaC address. | |
| After the PaC has changed its address, it MUST send a | After the PaC has changed its address, it MUST send a | |
| PANA-Update-Request message to the PAA. The message MUST carry the | PANA-Update-Request message to the PAA. The message MUST carry the | |
| new PaC address in an IP-Address AVP. If the address contained in | new PaC address in an IP-Address AVP. If the address contained in | |
| the request is invalid, the PAA MUST send a PANA-Error message with | the request is invalid, the PAA MUST send a PANA-Error message with | |
| the result code PANA_INVALID_IP_ADDRESS. Otherwise, the PAA MUST | the result code PANA_INVALID_IP_ADDRESS. Otherwise, the PAA MUST | |
| update the PANA session with the new PaC address and return a | update the PANA session with the new PaC address and return a | |
| PANA-Update-Answer message. If there is an established PANA SA, both | PANA-Update-Answer message. If there is an established PANA SA, both | |
| PANA-Update-Request and PANA-Update-Answer messages MUST be protected | PANA-Update-Request and PANA-Update-Answer messages MUST be protected | |
| with a MAC AVP. | with a MAC AVP. | |
| 5.10 Session Lifetime | 5.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. | |
| authentication taking place, this AVP SHOULD be included after the | ||
| 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-Ping-Request message to verify | technologies. PANA peer can use PANA-Ping-Request message to verify | |
| the disconnection before taking an action. | 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 | |
| Skipping to change at page 27, line 20: | ||
| reliability of such indications depend on the specific access | reliability of such indications depend on the specific access | |
| technologies. PANA peer can use PANA-Ping-Request message to verify | technologies. PANA peer can use PANA-Ping-Request message to verify | |
| the disconnection before taking an action. | 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-Ping-Request messages. These messages can be used for | PANA-Ping-Request messages. These messages can be used for | |
| asynchronously verifying the liveness of the peer. The decision to | asynchronously verifying the liveness of the peer. The decision to | |
| send PANA-Ping-Request message is taken locally and does not require | send PANA-Ping-Request message is taken locally and does not require | |
| coordination between the peers. | coordination between the peers. | |
| 5.11 Network Selection | When separate ISP and NAP authentication is performed, it is possible | |
| that different authorization lifetime values are associated with the | ||
| two authentications. In this case, the smaller authorization | ||
| lifetime value MUST be used for calculating the PANA Session-Lifetime | ||
| value. As a result, when entering a re-authentication phase, both | ||
| NAP and ISP authentication will be performed in the same | ||
| re-authentication phase. | ||
| 5.9 Network Selection | ||
| In a discovery and handshake phase, a PANA-Start-Request message sent | In a discovery and handshake phase, a PANA-Start-Request message sent | |
| from the PAA MAY contain zero or one NAP-Information AVP and zero or | from the PAA MAY contain zero or one NAP-Information AVP and zero or | |
| more ISP-Information AVPs to advertise the information on the NAP | more ISP-Information AVPs to advertise the information on the NAP | |
| and/or ISPs. The PaC MAY indicate its choice of ISP by including an | and/or ISPs. The PaC MAY indicate its choice of ISP by including an | |
| ISP-Information AVP in the PANA-Start-Answer message. When a AAA | ISP-Information AVP in the PANA-Start-Answer message. When a AAA | |
| backend is used, the identity of the destination AAA server or realm | backend is used, the identity of the destination AAA server or realm | |
| MUST be determined based on the explicitly chosen ISP. When the | MUST be determined based on the explicitly chosen ISP. When the | |
| ISP-Information AVP is not present, the access network MAY rely on | ISP-Information AVP is not present, the access network MAY rely on | |
| the client identifier carried in the EAP authentication method to | the client identifier carried in the EAP authentication method to | |
| make this determination. The PaC can choose an ISP and contain an | make this determination. The PaC can choose an ISP and contain an | |
| ISP-Information AVP for the chosen ISP in a PANA-Start-Answer message | ISP-Information AVP for the chosen ISP in a PANA-Start-Answer message | |
| even when there is no ISP-Information AVP contained in the | even when there is no ISP-Information AVP contained in the | |
| PANA-Start-Request message. | PANA-Start-Request message. | |
| 5.12 Separate NAP and ISP Authentication | 5.10 Error Handling | |
| PANA allows running at most two EAP sessions in sequence in an | ||
| authentication phase to support separate NAP and ISP authentication | ||
| as described in next sections. Currently, running multiple EAP | ||
| sessions in sequence in an authentication phase is designed only for | ||
| separate NAP and ISP authentication. It is not for running arbitrary | ||
| number of EAP sessions in sequence, or giving the PaC another chance | ||
| to try another EAP authentication method within an integrated NAP and | ||
| ISP authentication when an EAP authentication method fails. Within | ||
| separate NAP and ISP authentication, the NAP authentication and the | ||
| ISP authentication are considered completely independent. Presence | ||
| or success of one should not effect the other. Making a network | ||
| access authorization decision based on the success or failure of each | ||
| authentication is a network policy issue. | ||
| 5.12.1 Negotiating Separate NAP and ISP Authentication | ||
| When the PaC and PAA negotiates in the discovery and handshake phase | ||
| to perform separate NAP and ISP authentication, the PaC and the PAA | ||
| operate in the following way in addition to the behavior defined in | ||
| Section 4.1 | ||
| In the discovery and handshake phase, the PAA MAY enable separate NAP | ||
| and ISP authentication ([I-D.ietf-pana-framework]) by setting the | ||
| S-flag of the message header of the PANA-Start-Request. | ||
| If the S-flag of the received PANA-Start-Request message is not set, | ||
| the PaC MUST NOT set the S-flag in the PANA-Start-Answer message sent | ||
| back to the PAA. | ||
| If the S-flag of the received PANA-Start-Request message is set, the | ||
| PaC can indicate its desire to perform separate NAP and ISP | ||
| authentication by setting the S-flag in the PANA-Start-Answer | ||
| message. If the S-flag in the PANA-Start-Answer message is not set, | ||
| only one authentication is performed and the processing occurs as | ||
| described in Section 4.1. If the S-flag in the PANA-Start-Answer | ||
| message is set, the determination of the destination AAA server or | ||
| realm for ISP authentication is performed as described in Section | ||
| 5.11. In addition, where backend AAA servers are used for NAP | ||
| authentication, the NAP is considered the ultimate AAA realm, and the | ||
| destination AAA server for this authentication is determined entirely | ||
| by the local configuration on the access server hosting the PAA | ||
| (NAS). | ||
| When the S-flag is set in a PANA-Start-Request message, the initial | ||
| EAP Request MUST NOT be carried in the PANA-Start-Request message. | ||
| (If the initial EAP Request were contained in the PANA-Start-Request | ||
| message during the S-flag negotiation, the PaC cannot tell whether | ||
| the EAP Request is for NAP authentication or ISP authentication.) | ||
| 5.12.2 Execution of Separate NAP and ISP Authentication | ||
| When the PaC and PAA have negotiated in the discovery and handshake | ||
| phase to perform separate NAP and ISP authentication, the PaC and the | ||
| PAA operate in the following way in addition to the behavior defined | ||
| in Section 4.2 | ||
| o The S-flag of PANA-Auth-Request and PANA-Auth-Answer messages MUST | ||
| be set. | ||
| o An EAP Success/Failure message is carried in a | ||
| PANA-FirstAuth-End-Request (PFER) message as well as a | ||
| PANA-Bind-Request (PBR) message. The PANA-FirstAuth-End-Request | ||
| message MUST be used at the end of the first EAP authentication | ||
| and the PANA-Bind-Request MUST be used for the second EAP | ||
| authentication. The PANA-FirstAuth-End-Request messages MUST be | ||
| acknowledged with a PANA-FirstAuth-End-Answer (PFEA) message. | ||
| o If the first EAP authentication has failed, the PAA can choose not | ||
| to perform the second EAP authentication by clearing the S-flag of | ||
| the PANA-FirstAuth-End-Request message. In this case, the S-flag | ||
| of the PANA-FirstAuth-End-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. | ||
| o The PAA determines the execution order of NAP authentication and | ||
| ISP authentication. In this case, the PAA can indicate which | ||
| authentication (NAP authentication or ISP authentication) is | ||
| currently occurring by using N-flag in the PANA message header. | ||
| When NAP authentication is being performed, the N-flag MUST be | ||
| set. When ISP authentication is being performed, the N-flag MUST | ||
| NOT be set. The N-flag MUST NOT be set when S-flag is not set. | ||
| 5.12.3 AAA-Key Calculation | ||
| When the PaC and PAA have negotiated in the discovery and handshake | ||
| phase to perform separate NAP and ISP authentication, if the | ||
| lower-layer is insecure, the two EAP authentication methods used in | ||
| the separate authentication MUST be capable of deriving keys. In | ||
| this case, if the first EAP authentication is successful, the | ||
| PANA-FirstAuth-End-Request and PANA-FirstAuth-End-Answer messages as | ||
| well as PANA-Auth-Request and PANA-Auth-Answer messages in the second | ||
| EAP authentication MUST be protected with the key derived from the | ||
| AAA-Key for the first EAP authentication. The PANA-Bind-Request and | ||
| PANA-Bind-Answer messages and all subsequent PANA messages exchanged | ||
| in authorized phase, re-authentication phase and termination phase | ||
| MUST be protected either with the AAA-Key for the first EAP | ||
| authentication if the first EAP authentication succeeds and the | ||
| second EAP authentication fails, or with the AAA-Key for the second | ||
| EAP authentication if the first EAP authentication fails and the | ||
| second EAP authentication succeeds, or with the compound AAA-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. | ||
| 5.12.4 Re-authentication | ||
| When separate ISP and NAP authentication is performed, it is possible | ||
| that different authorization lifetime values are associated with the | ||
| two authentications. In this case, the smaller authorization | ||
| lifetime value MUST be used for calculating the PANA Session-Lifetime | ||
| value. As a result, when entering a re-authentication phase, both | ||
| NAP and ISP authentication will be performed in the same | ||
| re-authentication phase. | ||
| 5.12.5 Example Sequence | ||
| A PANA message sequence with separate NAP and ISP authentication is | ||
| illustrated in Figure 9. The example assumes the following scenario: | ||
| o The PaC initiates the discovery and handshake phase. | ||
| o The PAA offers separate NAP and ISP authentication, as well as a | ||
| choice of ISP from "ISP1" and "ISP2". The PaC accepts the offer | ||
| from PAA, with choosing "ISP1" as the ISP. | ||
| o NAP authentication and ISP authentication is performed in this | ||
| order in authentication phase. | ||
| o An EAP authentication method with a single round trip is used in | ||
| each EAP sequence. | ||
| o After a PANA SA is established, all messages are integrity and | ||
| replay protected with MAC AVPs. | ||
| o Authorization, re-authentication and termination phases are not | ||
| shown. | ||
| PaC PAA Message(seqno)[AVPs] | ||
| ----------------------------------------------------- | ||
| // Discovery and handshake phase | ||
| -----> PANA-PAA-Discover(0) | ||
| <----- PANA-Start-Request(x) // S-flag set | ||
| [Nonce, Cookie, | ||
| ISP-Information("ISP1"), | ||
| ISP-Information("ISP2"), | ||
| NAP-Information("MyNAP")] | ||
| -----> PANA-Start-Answer(x) // S-flag set | ||
| [Nonce, Cookie, // PaC chooses "ISP1" | ||
| ISP-Information("ISP1")] | ||
| // Authentication phase | ||
| <----- PANA-Auth-Request(x+1) // NAP authentication | ||
| [Session-Id, EAP{Request}] // S- and N-flags set | ||
| -----> PANA-Auth-Answer(x+1) // S- and N-flags set | ||
| [Session-Id] // No piggybacking | ||
| -----> PANA-Auth-Request(y) // S- and N-flags set | ||
| [Session-Id, EAP{Response}] | ||
| <----- PANA-Auth-Answer(y)[Session-Id] // S- and N-flags set | ||
| <----- PANA-Auth-Request(x+2) // S- and N-flags set | ||
| [Session-Id, EAP{Request}] | ||
| -----> PANA-Auth-Answer(x+2) // S- and N-flags set | ||
| [Session-Id, EAP{Response}] // Piggybacking | ||
| <----- PANA-FirstAuth-End-Request(x+3) // S- and N-flags set | ||
| [Session-Id, EAP{Success}, Key-Id, MAC] | ||
| -----> PANA-FirstAuth-End-Answer(x+3) // S- and N-flags set | ||
| [Session-Id, Key-Id, MAC] | ||
| <----- PANA-Auth-Request(x+4) // ISP authentication | ||
| [Session-Id, EAP{Request}, MAC] // S-flag set | ||
| -----> PANA-Auth-Answer(x+4) // S-flag set | ||
| [Session-Id, MAC] // No piggybacking | ||
| -----> PANA-Auth-Request(y+1) // S-flag set | ||
| [Session-Id, EAP{Response}, MAC] | ||
| <----- PANA-Auth-Answer(y+1) // S-flag set | ||
| [Session-Id, MAC] | ||
| <----- PANA-Auth-Request(x+5) // S-flag set | ||
| [Session-Id, EAP{Request}, MAC] | ||
| -----> PANA-Auth-Answer(x+5) // S-flag set | ||
| [Session-Id, EAP{Response}, MAC] // Piggybacking | ||
| <----- PANA-Bind-Request(x+6) // S-flag set | ||
| [Session-Id, EAP{Success}, Device-Id, | ||
| IP-Address, Key-Id, Lifetime, | ||
| Protection-Cap., PPAC, MAC] | ||
| -----> PANA-Bind-Answer(x+6) // S-flag set | ||
| [Session-Id, Device-Id, Key-Id, | ||
| PPAC, MAC] | ||
| Figure 9: A Complete Message Sequence for Separate NAP and ISP | ||
| Authentication | ||
| 6. Security and Mobility | ||
| 6.1 PANA Security Association Establishment | ||
| When PANA is used over an already established secure channel, such as | ||
| physically secured wires or ciphered link-layers, we can reasonably | ||
| assume that man-in-the-middle attacks or service theft is not | ||
| possible. See [I-D.ietf-pana-threats-eval] for a detailed | ||
| discussion. | ||
| In environments where no secure channel prior to the PANA execution | A PANA-Error-Request message MAY be sent by either the PaC or the PAA | |
| is available, PANA needs to protect itself against a number of | when a badly formed PANA message is received or in case of other | |
| attacks. The device identifier that is used during the | errors. The receiver of this request MUST respond with a | |
| authentication needs to be verified at the end of the authentication | PANA-Error-Answer message. If the cause of this error message was a | |
| to prevent service theft and DoS attacks. Additionally, a free | request message (e.g., PANA-PAA-Discover or *-Request), then the | |
| loader should be prevented from spoofing data packets by using the | request MAY be retransmitted immediately without waiting for its | |
| device identifier of an already authorized legitimate client. Both | retransmission timer to go off. If the cause of the error was a | |
| of these requirements necessitate generation of a security | response message, the receiver of the PANA-Error-Request message | |
| association between the PaC and the PAA at the end of the | SHOULD NOT resend the same response until it receives the next | |
| authentication. This can only be done when the authentication method | request. | |
| used can generate session keys. Use of session keys can prevent | ||
| attacks which would otherwise be very easy to launch by eavesdropping | ||
| on and spoofing traffic over an insecure link. | ||
| The EAP method provided session key is transported to the PAA (if | Erroneous PANA messages may be exploited by adverseries to launch DoS | |
| necessary) and is subsequently input to the creation of the PANA SA. | attacks on the victims. Unless the PaC or PAA rate-limits the | |
| Applying the PANA SA to the messages exchanged during the final PANA | generated PANA-Error-Request messages it may be overburdened by | |
| handshake provides implicit key confirmation to both the PAA and the | having tp respond to bogus packets. Limiting the number of error | |
| PaC. Implicit key confirmation shows both, the PaC and the PAA, that | notifications sent to a given peer during a (configurable) period of | |
| they possess the unique and fresh session key. | time may be useful. | |
| Protecting the final PANA handshake also ensures that the device | When an error message is sent unprotected (i.e., no MAC AVP) and the | |
| identifier (and other information) cannot be modified by an | lower-layer is insecure, the error message is treated as an | |
| adversary. Further usage of the keying material is discussed in | informational message. The receiver of such an error message MUST | |
| [I-D.ietf-pana-framework]. | NOT change its state unless the error persists and the PANA session | |
| is not making any progress. | ||
| 6.2 Mobility | 6. Mobility | |
| A mobile PaC's network access authentication performance can be | A mobile PaC's network access authentication performance can be | |
| enhanced by deploying a context-transfer-based mechanism, where some | enhanced by deploying a context-transfer-based mechanism, where some | |
| session attributes are transferred from the previous PAA to the new | session attributes are transferred from the previous PAA to the new | |
| one in order to avoid performing a full EAP authentication (reactive | one in order to avoid performing a full EAP authentication (reactive | |
| approach). Additional mechanisms that are based on the proactive AAA | approach). Additional mechanisms that are based on the proactive AAA | |
| state establishment at one or more candidate PAAs may be developed in | state establishment at one or more candidate PAAs may be developed in | |
| the future [I-D.irtf-aaaarch-handoff]. The details of a | the future [I-D.irtf-aaaarch-handoff]. The details of a | |
| context-transfer-based mechanism is provided in this section. | context-transfer-based mechanism is provided in this section. | |
| Skipping to change at page 33, line 20: | ||
| the mobility optimization. In the absence of a Session-Id AVP in | the mobility optimization. In the absence of a Session-Id AVP in | |
| this message, the PANA session takes its usual course (i.e., | this message, the PANA session takes its usual course (i.e., | |
| EAP-based authentication is performed). | EAP-based authentication is performed). | |
| If a PAA receives a session identifier in the PANA-Start-Answer | If a PAA receives a session identifier in the PANA-Start-Answer | |
| message, and it is configured to enable this optimization, it SHOULD | message, and it is configured to enable this optimization, it SHOULD | |
| retrieve the PANA session attributes from the previous PAA. Current | retrieve the PANA session attributes from the previous PAA. Current | |
| PAA determines the identity of the previous PAA by looking at the | PAA determines the identity of the previous PAA by looking at the | |
| DiameterIdentity part of the PANA session identifier. The MAC AVP | DiameterIdentity part of the PANA session identifier. The MAC AVP | |
| can only be verified by the previous PAA, therefore a copy of the | can only be verified by the previous PAA, therefore a copy of the | |
| PANA message SHOULD be provided to the previous PAA. The mechanism | PANA message MUST be provided to the previous PAA. The mechanism | |
| required to send a copy of the PANA-Start-Answer message from current | required to send a copy of the PANA-Start-Answer message from current | |
| PAA to the previous PAA, and retrieve the session attributes is | PAA to the previous PAA, and retrieve the session attributes is | |
| outside the scope of PANA protocol. The Context Transfer Protocol | outside the scope of PANA protocol. The Context Transfer Protocol | |
| [I-D.ietf-seamoby-ctp] might be useful for this purpose. | [I-D.ietf-seamoby-ctp] might be useful for this purpose. | |
| When the previous or current PAA is not configured to enable this | When the previous or current PAA is not configured to enable this | |
| optimization, the current PAA can not retrieve the PANA session | optimization, the current PAA can not retrieve the PANA session | |
| attributes, or the PANA session has already expired (i.e., session | attributes, or the PANA session has already expired (i.e., session | |
| lifetime is zero), the PAA MUST send the PANA-Auth-Request message | lifetime is zero), the PAA MUST send the PANA-Auth-Request message | |
| with a new session identifier and let the PANA exchange take its | with a new session identifier and let the PANA exchange take its | |
| Skipping to change at page 34, line 9: | ||
| current PAA. Session-ID is the identifier of the PaC's PANA session | current PAA. Session-ID is the identifier of the PaC's PANA session | |
| with the previous PAA. | with the previous PAA. | |
| The current PAA and PaC compute the new AAA-Key by using the nonce | The current PAA and PaC compute the new AAA-Key by using the nonce | |
| values and the AAA-Key-int. | values and the AAA-Key-int. | |
| AAA-Key-new = The first N bits of | AAA-Key-new = The first N bits of | |
| HMAC-SHA1(AAA-Key-int, PaC_nonce | PAA_nonce) | HMAC-SHA1(AAA-Key-int, PaC_nonce | PAA_nonce) | |
| New PANA_MAC_KEY is computed based on the algorithm described in | New PANA_MAC_KEY is computed based on the algorithm described in | |
| Section 5.6, by using the new AAA-Key and the new Session-ID assigned | Section 5.3, 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 | 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 | 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 | 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 | identifier assigned by the current PAA. A new PANA session is | |
| created upon successful completion of this exchange. | created upon successful completion of this exchange. | |
| Note that correct operation of this optimization relies on many | Note that correct operation of this optimization relies on many | |
| factors, including applicability of authorization state from one | factors, including applicability of authorization state from one | |
| network attachment to another. [I-D.ietf-eap-keying] identifies this | network attachment to another. [I-D.ietf-eap-keying] identifies this | |
| operation as "fast handoff" and provides deployment considerations. | operation as "fast handoff" and provides deployment considerations. | |
| Skipping to change at page 35, line 15: | ||
| 7. PANA Headers and Formats | 7. PANA Headers and Formats | |
| This section defines message formats for PANA protocol. | This section defines message formats for PANA protocol. | |
| 7.1 IP and UDP Headers | 7.1 IP and UDP Headers | |
| The Hop Limit (or TTL) field of the IP header MUST be set to 255. | The Hop Limit (or TTL) field of the IP header MUST be set to 255. | |
| When a PANA-PAA-Discover message is multicast, IP destination address | When a PANA-PAA-Discover message is multicast, IP destination address | |
| of the message is set to a well-known link-local multicast 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 | (TBD). A PANA-PAA-Discover message MAY be unicast in some cases as | |
| specified in Section 4.1. Any other PANA packet is unicast between | specified in Section 4.2. Any other PANA packet is unicast between | |
| the PaC and the PAA. The source and destination addresses SHOULD be | 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 | set to the addresses on the interfaces from which the message will be | |
| sent and received, respectively. | sent and received, respectively. | |
| When the PANA packet is sent in response to a request, the UDP source | 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 | and destination ports of the response packet MUST be copied from the | |
| destination and source ports of the request packet, respectively. | destination and source ports of the request packet, respectively. | |
| The destination port of an unsolicited PANA packet MUST be set to an | 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 | assigned value (TBD), and the source port MUST be set to a value | |
| chosen by the sender. | chosen by the sender. | |
| Skipping to change at page 37, line 8: | ||
| authentication. When the N-flag is unset in a | authentication. When the N-flag is unset in a | |
| PANA-Auth-Request message, it indicates that the current EAP | PANA-Auth-Request message, it indicates that the current EAP | |
| authentication is for ISP authentication. The PaC MUST copy | authentication is for ISP authentication. The PaC MUST copy | |
| the value of the flag in its requests from the last received | the value of the flag in its requests from the last received | |
| request of the PAA. The value of the flag on an answer MUST be | request of the PAA. The value of the flag on an answer MUST be | |
| copied from the request. The N-flag MUST NOT be set when | copied from the request. The N-flag MUST NOT be set when | |
| S-flag is not set. | 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 two octets, and is used in order to | The Message Type field is two octets, and is used in order to | |
| communicate the message type with the message. The 16-bit address | communicate the message type with the message. The 16-bit address | |
| space is managed by IANA [ianaweb]. PANA uses its own address | space is managed by IANA [ianaweb]. PANA uses its own address | |
| space for this field. | space for this field. | |
| Sequence Number | Sequence Number | |
| Skipping to change at page 40, line 9: | ||
| Data | Data | |
| The Data field is zero or more octets and contains information | The Data field is zero or more octets and contains information | |
| specific to the Attribute. The format and length of the Data | specific to the Attribute. The format and length of the Data | |
| field is determined by the AVP Code and AVP Length fields. | field is determined by the AVP Code and AVP Length fields. | |
| 8. PANA Messages, Message Specifications and AVPs | 8. PANA Messages, Message Specifications and AVPs | |
| 8.1 PANA Messages | 8.1 PANA Messages | |
| Figure 10 lists all PANA messages defined in this document. | Figure 9 lists all PANA messages defined in this document. | |
| Message Direction: PaC---PAA | Message Direction: PaC---PAA | |
| ---------------------------------------- | ---------------------------------------- | |
| PANA-PAA-Discover --------> | PANA-PAA-Discover --------> | |
| PANA-Start-Request <-------- | PANA-Start-Request <-------- | |
| PANA-Start-Answer --------> | PANA-Start-Answer --------> | |
| PANA-Auth-Request <-------> | PANA-Auth-Request <-------> | |
| PANA-Auth-Answer <-------> | PANA-Auth-Answer <-------> | |
| Skipping to change at page 40, line 42: | ||
| PANA-Termination-Request <-------> | PANA-Termination-Request <-------> | |
| PANA-Termination-Answer <-------> | PANA-Termination-Answer <-------> | |
| PANA-Update-Request --------> | PANA-Update-Request --------> | |
| PANA-Update-Answer <-------- | PANA-Update-Answer <-------- | |
| PANA-Error-Request <-------> | PANA-Error-Request <-------> | |
| PANA-Error-Answer <-------> | PANA-Error-Answer <-------> | |
| Figure 10: PANA Message Overview | Figure 9: PANA Message Overview | |
| 8.2 Message Specifications | 8.2 Message Specifications | |
| Every PANA message MUST include a corresponding ABNF [RFC2234] | Every PANA message MUST include a corresponding ABNF [RFC2234] | |
| specification found in [RFC3588]. | specification found in [RFC3588]. | |
| Example: | Example: | |
| message ::= < PANA-Header: <Message type>, [REQ] [SEP] > | message ::= < PANA-Header: <Message type>, [REQ] [SEP] > | |
| * [ AVP ] | * [ AVP ] | |
| 8.2.1 PANA-PAA-Discover (PDI) | 8.2.1 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 | of PAA(s). The sequence number in this message is always set to zero | |
| (0). | (0). | |
| PANA-PAA-Discover ::= < PANA-Header: 1 > | PANA-PAA-Discover ::= < PANA-Header: 1 > | |
| * [ AVP ] | * [ AVP ] | |
| 8.2.2 PANA-Start-Request (PSR) | 8.2.2 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 to advertise | |
| availability of the PAA and start PANA authentication. The PAA sets | ||
| the sequence number to an initial random value. | the sequence number to an initial random value. | |
| PANA-Start-Request ::= < PANA-Header: 2, REQ [SEP] > | PANA-Start-Request ::= < PANA-Header: 2, REQ [SEP] > | |
| { Nonce } | { Nonce } | |
| [ Cookie ] | [ Cookie ] | |
| [ EAP-Payload ] | [ EAP-Payload ] | |
| [ NAP-Information ] | [ NAP-Information ] | |
| * [ ISP-Information ] | * [ ISP-Information ] | |
| [ Protection-Capability] | [ Protection-Capability] | |
| [ PPAC ] | [ PPAC ] | |
| * [ AVP ] | * [ AVP ] | |
| 8.2.3 PANA-Start-Answer (PSA) | 8.2.3 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. | a PANA-Start-Request message. This message completes the handshake | |
| to start PANA authentication. | ||
| PANA-Start-Answer ::= < PANA-Header: 2 [SEP] > | PANA-Start-Answer ::= < PANA-Header: 2 [SEP] > | |
| { Nonce } | { Nonce } | |
| [ Session-Id ] | [ Session-Id ] | |
| [ Cookie ] | [ Cookie ] | |
| [ EAP-Payload ] | [ EAP-Payload ] | |
| [ ISP-Information ] | [ ISP-Information ] | |
| * [ AVP ] | * [ AVP ] | |
| 0*1 < MAC > | 0*1 < MAC > | |
| 8.2.4 PANA-Auth-Request (PAR) | 8.2.4 PANA-Auth-Request (PAR) | |
| PANA-Auth-Request (PAR) is sent by the PAA to the PaC. | PANA-Auth-Request (PAR) is either sent by the PAA or the PaC. Its | |
| main task is to carry an EAP-Payload AVP. | ||
| PANA-Auth-Request ::= < PANA-Header: 3, REQ [SEP] [NAP] > | PANA-Auth-Request ::= < PANA-Header: 3, REQ [SEP] [NAP] > | |
| < Session-Id > | < Session-Id > | |
| < EAP-Payload > | < EAP-Payload > | |
| * [ AVP ] | * [ AVP ] | |
| 0*1 < MAC > | 0*1 < MAC > | |
| 8.2.5 PANA-Auth-Answer (PAN) | 8.2.5 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 either the PaC or the PAA in | |
| PANA-Auth-Request message. | response to a PANA-Auth-Request message. It MAY optionally carry an | |
| EAP-Payload AVP. | ||
| PANA-Auth-Answer ::= < PANA-Header: 3 [SEP] [NAP] > | PANA-Auth-Answer ::= < PANA-Header: 3 [SEP] [NAP] > | |
| < Session-Id > | < Session-Id > | |
| < EAP-Payload > | [ EAP-Payload ] | |
| * [ AVP ] | * [ AVP ] | |
| 0*1 < MAC > | 0*1 < MAC > | |
| 8.2.6 PANA-Reauth-Request (PRAR) | 8.2.6 PANA-Reauth-Request (PRAR) | |
| PANA-Reauth-Request (PRAR) is sent by the PaC to the PAA. | PANA-Reauth-Request (PRAR) is sent by the PaC to the PAA to | |
| re-initiate EAP authentication. | ||
| PANA-Reauth-Request ::= < PANA-Header: 4, REQ > | PANA-Reauth-Request ::= < PANA-Header: 4, REQ > | |
| < Session-Id > | < Session-Id > | |
| * [ AVP ] | * [ AVP ] | |
| 0*1 < MAC > | 0*1 < MAC > | |
| 8.2.7 PANA-Reauth-Answer (PRAA) | 8.2.7 PANA-Reauth-Answer (PRAA) | |
| PANA-Reauth-Answer (PRAA) is sent by the PAA to the PaC in response | PANA-Reauth-Answer (PRAA) is sent by the PAA to the PaC in response | |
| to a PANA-Reauth-Request message. | to a PANA-Reauth-Request message. | |
| PANA-Reauth-Answer ::= < PANA-Header: 4 > | PANA-Reauth-Answer ::= < PANA-Header: 4 > | |
| < Session-Id > | < Session-Id > | |
| * [ AVP ] | * [ AVP ] | |
| 0*1 < MAC > | 0*1 < MAC > | |
| 8.2.8 PANA-Bind-Request (PBR) | 8.2.8 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 to deliver the | |
| result of PANA authentication. | ||
| PANA-Bind-Request ::= < PANA-Header: 5, REQ [SEP] [NAP] > | PANA-Bind-Request ::= < PANA-Header: 5, REQ [SEP] [NAP] > | |
| < Session-Id > | < Session-Id > | |
| { Result-Code } | { Result-Code } | |
| { PPAC } | { PPAC } | |
| { IP-Address } | { IP-Address } | |
| [ EAP-Payload ] | [ EAP-Payload ] | |
| [ Session-Lifetime ] | [ Session-Lifetime ] | |
| [ Protection-Capability ] | [ Protection-Capability ] | |
| [ Key-Id ] | [ Key-Id ] | |
| Skipping to change at page 43, line 29: | ||
| < Session-Id > | < Session-Id > | |
| { Result-Code } | { Result-Code } | |
| [ PPAC ] | [ PPAC ] | |
| [ Device-Id ] | [ Device-Id ] | |
| [ Key-Id ] | [ Key-Id ] | |
| * [ AVP ] | * [ AVP ] | |
| 0*1 < MAC > | 0*1 < MAC > | |
| 8.2.10 PANA-Ping-Request (PPR) | 8.2.10 PANA-Ping-Request (PPR) | |
| PANA-Ping-Request (PPR) is either sent by the PaC or the PAA. | PANA-Ping-Request (PPR) is either sent by the PaC or the PAA for | |
| performing liveness test. | ||
| PANA-Ping-Request ::= < PANA-Header: 6, REQ > | PANA-Ping-Request ::= < PANA-Header: 6, REQ > | |
| < Session-Id > | < Session-Id > | |
| * [ AVP ] | * [ AVP ] | |
| 0*1 < MAC > | 0*1 < MAC > | |
| 8.2.11 PANA-Ping-Answer (PPA) | 8.2.11 PANA-Ping-Answer (PPA) | |
| PANA-Ping-Answer (PPA) is sent in response to a PANA-Ping-Request. | PANA-Ping-Answer (PPA) is sent in response to a PANA-Ping-Request. | |
| PANA-Ping-Answer ::= < PANA-Header: 6 > | PANA-Ping-Answer ::= < PANA-Header: 6 > | |
| < Session-Id > | < Session-Id > | |
| * [ AVP ] | * [ AVP ] | |
| 0*1 < MAC > | 0*1 < MAC > | |
| 8.2.12 PANA-Termination-Request (PTR) | 8.2.12 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 | |
| to terminate a PANA session. | ||
| PANA-Termination-Request ::= < PANA-Header: 7, REQ > | PANA-Termination-Request ::= < PANA-Header: 7, REQ > | |
| < Session-Id > | < Session-Id > | |
| < Termination-Cause > | < Termination-Cause > | |
| * [ AVP ] | * [ AVP ] | |
| 0*1 < MAC > | 0*1 < MAC > | |
| 8.2.13 PANA-Termination-Answer (PTA) | 8.2.13 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: 7 > | PANA-Termination-Answer ::= < PANA-Header: 7 > | |
| < Session-Id > | < Session-Id > | |
| * [ AVP ] | * [ AVP ] | |
| 0*1 < MAC > | 0*1 < MAC > | |
| 8.2.14 PANA-Error-Request (PER) | 8.2.14 PANA-Error-Request (PER) | |
| PANA-Error is sent either by the PaC or the PAA. | PANA-Error is sent either by the PaC or the PAA to report an error | |
| with the last received PANA message. | ||
| PANA-Error-Request ::= < PANA-Header: 8 REQ > | PANA-Error-Request ::= < PANA-Header: 8 REQ > | |
| < Session-Id > | < Session-Id > | |
| < Result-Code > | < Result-Code > | |
| { Failed-AVP } | { Failed-AVP } | |
| * [ AVP ] | * [ AVP ] | |
| 0*1 < MAC > | 0*1 < MAC > | |
| 8.2.15 PANA-Error-Answer (PEA) | 8.2.15 PANA-Error-Answer (PEA) | |
| PANA-Error-Answer is sent in response to a PANA-Error-Request. | PANA-Error-Answer is sent in response to a PANA-Error-Request. | |
| PANA-Error-Answer ::= < PANA-Header: 8 > | PANA-Error-Answer ::= < PANA-Header: 8 > | |
| < Session-Id > | < Session-Id > | |
| * [ AVP ] | * [ AVP ] | |
| 0*1 < MAC > | 0*1 < MAC > | |
| 8.2.16 PANA-FirstAuth-End-Request (PFER) | 8.2.16 PANA-FirstAuth-End-Request (PFER) | |
| PANA-FirstAuth-End-Request (PFER) is sent by the PAA to the PaC. | PANA-FirstAuth-End-Request (PFER) is sent by the PAA to the PaC to | |
| signal the result of the first EAP authentication method when | ||
| separate NAP and ISP authentication is performed. | ||
| PANA-FirstAuth-End-Request ::= < PANA-Header: 9, REQ [SEP] [NAP] > | PANA-FirstAuth-End-Request ::= < PANA-Header: 9, REQ [SEP] [NAP] > | |
| < Session-Id > | < Session-Id > | |
| { EAP-Payload } | { EAP-Payload } | |
| { Result-Code } | { Result-Code } | |
| [ Key-Id ] | [ Key-Id ] | |
| * [ AVP ] | * [ AVP ] | |
| 0*1 < MAC > | 0*1 < MAC > | |
| 8.2.17 PANA-FirstAuth-End-Answer (PFEA) | 8.2.17 PANA-FirstAuth-End-Answer (PFEA) | |
| Skipping to change at page 45, line 21: | ||
| response to a PANA-FirstAuth-End-Request message. | response to a PANA-FirstAuth-End-Request message. | |
| PANA-FirstAuth-End-Answer ::= < PANA-Header: 9, REQ [SEP] [NAP] > | PANA-FirstAuth-End-Answer ::= < PANA-Header: 9, REQ [SEP] [NAP] > | |
| < Session-Id > | < Session-Id > | |
| [ Key-Id ] | [ Key-Id ] | |
| * [ AVP ] | * [ AVP ] | |
| 0*1 < MAC > | 0*1 < MAC > | |
| 8.2.18 PANA-Update-Request (PUR) | 8.2.18 PANA-Update-Request (PUR) | |
| PANA-Update-Request (PUR) is sent by the PaC to the PAA. | PANA-Update-Request (PUR) is sent by the PaC to the PAA to update the | |
| attributes of the PANA session. Currently only the PaC IP address | ||
| attribute can be updated via this mechanism. | ||
| PANA-Update-Request ::= < PANA-Header: 10, REQ > | PANA-Update-Request ::= < PANA-Header: 10, REQ > | |
| < Session-Id > | < Session-Id > | |
| < IP-Address > | < IP-Address > | |
| * [ AVP ] | * [ AVP ] | |
| 0*1 < MAC > | 0*1 < MAC > | |
| 8.2.19 PANA-Update-Answer (PUA) | 8.2.19 PANA-Update-Answer (PUA) | |
| PANA-Update-Answer (PUA) is sent by the PAA to the PaC in response to | PANA-Update-Answer (PUA) is sent by the PAA to the PaC in response to | |
| Skipping to change at page 46, line 45: | ||
| Protection-Cap. | 0-1 | 0 | 0 | 0 | 0-1 | 0 | 0 | | Protection-Cap. | 0-1 | 0 | 0 | 0 | 0-1 | 0 | 0 | | |
| PPAC | 0-1 | 0 | 0 | 0 | 1 | 0-1 | 0 | | PPAC | 0-1 | 0 | 0 | 0 | 1 | 0-1 | 0 | | |
| Session-Lifetime | 0 | 0 | 0 | 0 | 0-1 | 0 | 0 | | Session-Lifetime | 0 | 0 | 0 | 0 | 0-1 | 0 | 0 | | |
| Failed-AVP | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | Failed-AVP | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | |
| ISP-Information | 0+ | 0-1 | 0 | 0 | 0 | 0 | 0 | | ISP-Information | 0+ | 0-1 | 0 | 0 | 0 | 0 | 0 | | |
| NAP-Information | 0-1 | 0 | 0 | 0 | 0 | 0 | 0 | | NAP-Information | 0-1 | 0 | 0 | 0 | 0 | 0 | 0 | | |
| Key-Id | 0 | 0 | 0 | 0 | 0-1 | 0-1 | 0 | | Key-Id | 0 | 0 | 0 | 0 | 0-1 | 0-1 | 0 | | |
| IP-Address | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | IP-Address | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | |
| --------------------+-----+-----+-----+-----+-----+-----+-----+ | --------------------+-----+-----+-----+-----+-----+-----+-----+ | |
| Figure 11: AVP Occurrence Table (1/3) | Figure 10: AVP Occurrence Table (1/3) | |
| +-------------------------------------+ | +-------------------------------------+ | |
| | Message | | | Message | | |
| | Type | | | Type | | |
| +-----+-----+-----+-----+------+------+ | +-----+-----+-----+-----+------+------+ | |
| Attribute Name | PPR | PPA | PTR | PTA | PFER | PFEA | | Attribute Name | PPR | PPA | PTR | PTA | PFER | PFEA | | |
| --------------------+-----+-----+-----+-----+------+------+ | --------------------+-----+-----+-----+-----+------+------+ | |
| Result-Code | 0 | 0 | 0 | 0 | 1 | 0 | | Result-Code | 0 | 0 | 0 | 0 | 1 | 0 | | |
| Session-Id | 1 | 1 | 1 | 1 | 1 | 1 | | Session-Id | 1 | 1 | 1 | 1 | 1 | 1 | | |
| Termination-Cause | 0 | 0 | 1 | 0 | 0 | 0 | | Termination-Cause | 0 | 0 | 1 | 0 | 0 | 0 | | |
| EAP-Payload | 0 | 0 | 0 | 0 | 1 | 0 | | EAP-Payload | 0 | 0 | 0 | 0 | 1 | 0 | | |
| Skipping to change at page 47, line 28: | ||
| Protection-Cap. | 0 | 0 | 0 | 0 | 0 | 0 | | Protection-Cap. | 0 | 0 | 0 | 0 | 0 | 0 | | |
| PPAC | 0 | 0 | 0 | 0 | 0 | 0 | | PPAC | 0 | 0 | 0 | 0 | 0 | 0 | | |
| Session-Lifetime | 0 | 0 | 0 | 0 | 0 | 0 | | Session-Lifetime | 0 | 0 | 0 | 0 | 0 | 0 | | |
| Failed-AVP | 0 | 0 | 0 | 0 | 0 | 0 | | Failed-AVP | 0 | 0 | 0 | 0 | 0 | 0 | | |
| ISP-Information | 0 | 0 | 0 | 0 | 0 | 0 | | ISP-Information | 0 | 0 | 0 | 0 | 0 | 0 | | |
| NAP-Information | 0 | 0 | 0 | 0 | 0 | 0 | | NAP-Information | 0 | 0 | 0 | 0 | 0 | 0 | | |
| Key-Id | 0 | 0 | 0 | 0 | 0-1 | 0-1 | | Key-Id | 0 | 0 | 0 | 0 | 0-1 | 0-1 | | |
| IP-Address | 0 | 0 | 0 | 0 | 0 | 0 | | IP-Address | 0 | 0 | 0 | 0 | 0 | 0 | | |
| --------------------+-----+-----+-----+-----+------+------+ | --------------------+-----+-----+-----+-----+------+------+ | |
| Figure 12: AVP Occurrence Table (2/3) | Figure 11: AVP Occurrence Table (2/3) | |
| +-------------------------------------+ | +-------------------------------------+ | |
| | Message | | | Message | | |
| | Type | | | Type | | |
| +-----+-----+-----+-----+------+------+ | +-----+-----+-----+-----+------+------+ | |
| Attribute Name | PUR | PUA | PER | PEA | PRAR | PRAA | | Attribute Name | PUR | PUA | PER | PEA | PRAR | PRAA | | |
| --------------------+-----+-----+-----+-----+------+------+ | --------------------+-----+-----+-----+-----+------+------+ | |
| Result-Code | 0 | 0 | 1 | 0 | 0 | 0 | | Result-Code | 0 | 0 | 1 | 0 | 0 | 0 | | |
| Session-Id | 1 | 1 | 1 | 1 | 1 | 1 | | Session-Id | 1 | 1 | 1 | 1 | 1 | 1 | | |
| Termination-Cause | 0 | 0 | 0 | 0 | 0 | 0 | | Termination-Cause | 0 | 0 | 0 | 0 | 0 | 0 | | |
| EAP-Payload | 0 | 0 | 0 | 0 | 0 | 0 | | EAP-Payload | 0 | 0 | 0 | 0 | 0 | 0 | | |
| Skipping to change at page 48, line 28: | ||
| Protection-Cap. | 0 | 0 | 0 | 0 | 0 | 0 | | Protection-Cap. | 0 | 0 | 0 | 0 | 0 | 0 | | |
| PPAC | 0 | 0 | 0 | 0 | 0 | 0 | | PPAC | 0 | 0 | 0 | 0 | 0 | 0 | | |
| Session-Lifetime | 0 | 0 | 0 | 0 | 0 | 0 | | Session-Lifetime | 0 | 0 | 0 | 0 | 0 | 0 | | |
| Failed-AVP | 0 | 0 | 1 | 0 | 0 | 0 | | Failed-AVP | 0 | 0 | 1 | 0 | 0 | 0 | | |
| ISP-Information | 0 | 0 | 0 | 0 | 0 | 0 | | ISP-Information | 0 | 0 | 0 | 0 | 0 | 0 | | |
| NAP-Information | 0 | 0 | 0 | 0 | 0 | 0 | | NAP-Information | 0 | 0 | 0 | 0 | 0 | 0 | | |
| Key-Id | 0 | 0 | 0 | 0 | 0 | 0 | | Key-Id | 0 | 0 | 0 | 0 | 0 | 0 | | |
| IP-Address | 1 | 0 | 0 | 0 | 0 | 0 | | IP-Address | 1 | 0 | 0 | 0 | 0 | 0 | | |
| --------------------+-----+-----+-----+-----+------+------+ | --------------------+-----+-----+-----+-----+------+------+ | |
| Figure 13: AVP Occurrence Table (3/3) | Figure 12: AVP Occurrence Table (3/3) | |
| 8.3.1 MAC AVP | 8.3.1 MAC AVP | |
| The first octet (8 bits) of the MAC (AVP Code 1) AVP data contains | The MAC (Message Authentication Code) AVP is used to integrity | |
| the MAC algorithm type. Rest of the AVP data payload contains the | protect PANA messages. The first octet of the this AVP (AVP Code 1) | |
| MAC encoded in network byte order. The 8-bit Algorithm name space is | data contains the MAC algorithm type. Rest of the AVP data payload | |
| managed by IANA [ianaweb]. The AVP length varies depending on the | contains the MAC encoded in network byte order. The 8-bit Algorithm | |
| used algorithm. | name space is managed by IANA [ianaweb]. The AVP length varies | |
| depending on the 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 | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |
| | Algorithm | MAC... | | Algorithm | MAC... | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |
| 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. | |
| 8.3.2 Device-Id AVP | 8.3.2 Device-Id AVP | |
| The Device-Id AVP (AVP Code 2) is of Address type [RFC3588]. IPv4 | The Device-Id AVP (AVP Code 2) is used for carrying device | |
| and IPv6 addresses are encoded as specified in [RFC3588]. The | identifiers of PaC and EP(s). The AVP data is of Address type | |
| content and format of data (including byte and bit ordering) for | [RFC3588]. IPv4 and IPv6 addresses are encoded as specified in | |
| link-layer addresses is expected to be specified in specific | [RFC3588]. The content and format of data (including byte and bit | |
| documents that describe how IP operates over different link-layers. | ordering) for link-layer addresses is expected to be specified in | |
| For instance, [RFC2464]. Address families other than that are | specific documents that describe how IP operates over different | |
| defined for link-layer or IP addresses MUST NOT be used for this AVP. | 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. | ||
| 8.3.3 Session-Id AVP | 8.3.3 Session-Id AVP | |
| All messages pertaining to a specific PANA session MUST include a | All messages pertaining to a specific PANA session MUST include a | |
| Session-Id AVP (AVP Code 3) which carries a PAA-assigned fix value | Session-Id AVP (AVP Code 3) which carries a PAA-assigned fixed | |
| throughout the lifetime of a session. When present, the Session-Id | session identifier value throughout the lifetime of a session. When | |
| SHOULD appear immediately following the PANA header. | present, the 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. The PANA Session-Id AVP has | information with accounting information. The PANA Session-Id AVP has | |
| the same format as the Diameter Session-Id AVP [RFC3588]. | the same format as the Diameter Session-Id AVP [RFC3588]. | |
| 8.3.4 Cookie AVP | 8.3.4 Cookie AVP | |
| The Cookie AVP (AVP Code 4) is of type OctetString. The data is | The Cookie AVP (AVP Code 4) is used for carrying a cookie value | |
| generated by the PAA. The AVP data is of type OctetString. It is | ||
| opaque and the exact content is outside the scope of this protocol. | opaque and the exact content is outside the scope of this protocol. | |
| 8.3.5 Protection-Capability AVP | 8.3.5 Protection-Capability AVP | |
| The Protection-Capability AVP (AVP Code 5) is of type Unsigned32. | The Protection-Capability AVP (AVP Code 5) indicates the | |
| The AVP data indicates the cryptographic data protection capability | cryptographic data protection capability supported and required by | |
| supported by the EPs. Below is a list of specified data protection | the EPs. The AVP data is of type Unsigned32. Below is a list of | |
| capabilities: | valid data values and associated protection capabilities: | |
| 0 L2_PROTECTION | 0 L2_PROTECTION | |
| 1 IPSEC_PROTECTION | 1 IPSEC_PROTECTION | |
| 8.3.6 Termination-Cause AVP | 8.3.6 Termination-Cause AVP | |
| The Termination-Cause AVP (AVP Code 6) is of type of type Enumerated, | The Termination-Cause AVP (AVP Code 6) is used for indicating the | |
| and is used to indicate the reason why a session was terminated on | reason why a session is terminated by the requester. The AVP data is | |
| the access device. The AVP data is used as a collection of flags The | of type Enumerated. The following Termination-Cause data values are | |
| following Termination-Cause AVP defined in [RFC3588] are used for | used with PANA. | |
| PANA. | ||
| LOGOUT 1 (PaC -> PAA) | LOGOUT 1 (PaC -> PAA) | |
| The client initiated a disconnect | The client initiated a disconnect | |
| ADMINISTRATIVE 4 (PAA -> PaC) | ADMINISTRATIVE 4 (PAA -> PaC) | |
| The client was not granted access, or was disconnected, due to | The client was not granted access, or was disconnected, due to | |
| administrative reasons, such as the receipt of a | administrative reasons, such as the receipt of a | |
| Abort-Session-Request message. | Abort-Session-Request message. | |
| Skipping to change at page 50, line 32: | ||
| The Result-Code AVP (AVP Code 7) is of type Unsigned32 and indicates | The Result-Code AVP (AVP Code 7) is of type Unsigned32 and indicates | |
| whether an EAP authentication was completed successfully or whether | whether an EAP authentication was completed successfully or whether | |
| an error occurred. Here are Result-Code AVP values taken from | an error occurred. Here are Result-Code AVP values taken from | |
| [RFC3588] and adapted for PANA. | [RFC3588] and adapted for PANA. | |
| 8.3.7.1 Authentication Results Codes | 8.3.7.1 Authentication Results Codes | |
| These result code values inform the PaC about the authentication and | These result code values inform the PaC about the authentication and | |
| authorization result. The authentication result and authorization | authorization result. The authentication result and authorization | |
| result can be different as described below, but only one result that | result can be different as described below, but only one result is | |
| corresponds to the one detected first is returned. | returned to the PaC. These codes are used with PANA-Bind-Request and | |
| PANA-FirstAuth-End-Request messages. | ||
| PANA_SUCCESS 2001 | PANA_SUCCESS 2001 | |
| Both the authentication and authorization processes are | Both the authentication and authorization processes are | |
| successful. | successful. | |
| PANA_AUTHENTICATION_REJECTED 4001 | PANA_AUTHENTICATION_REJECTED 4001 | |
| The authentication process failed. When this error is returned, | Authentication has failed. When this error is returned, it is | |
| the authorization process also fails. | assumed that authorization is automatically failed. | |
| PANA_AUTHORIZATION_REJECTED 5003 | PANA_AUTHORIZATION_REJECTED 5003 | |
| The authorization process failed. This error could occur when | Authorization has failed. This error could occur when | |
| authorization is rejected by a AAA proxy or rejected locally by a | authorization is rejected by a AAA proxy or rejected locally by a | |
| PAA, even if the authentication procedure succeeds. | PAA, even if the authentication has succeeded. | |
| 8.3.7.2 Protocol Error Result Codes | 8.3.7.2 Protocol Error Result Codes | |
| Protocol error result code values. | These codes are used with PANA-Error-Request messages. Unless stated | |
| otherwise, they can be generated by both the PaC and the PAA. | ||
| PANA_MESSAGE_UNSUPPORTED 3001 | PANA_MESSAGE_UNSUPPORTED 3001 | |
| Error code from PAA to PaC or from PaC to PAA. Message type not | Message type not recognized or supported. | |
| recognized or supported. | ||
| PANA_UNABLE_TO_DELIVER 3002 | PANA_UNABLE_TO_DELIVER 3002 | |
| Error code from PAA to PaC. PAA was unable to deliver the EAP | PAA was unable to deliver the EAP payload to the authentication | |
| payload to the authentication server. | server. Only PAA can generate this code. | |
| PANA_INVALID_HDR_BITS 3008 | PANA_INVALID_HDR_BITS 3008 | |
| Error code from PAA to PaC or from PaC to PAA. A message was | A message was received whose bits in the PANA header were either | |
| received whose bits in the PANA header were either set to an | set to an invalid combination, or to a value that is inconsistent | |
| invalid combination, or to a value that is inconsistent with the | with the message type definition. | |
| message type's definition. | ||
| PANA_INVALID_AVP_BITS 3009 | PANA_INVALID_AVP_FLAGS 3009 | |
| Error code from PAA to PaC or from PaC to PAA. A message was | A message was received that included an AVP whose flag bits are | |
| received that included an AVP whose flag bits are set to an | set to an unrecognized value, or that is inconsistent with the | |
| unrecognized value, or that is inconsistent with the AVP's | AVP's definition. | |
| definition. | ||
| PANA_AVP_UNSUPPORTED 5001 | PANA_AVP_UNSUPPORTED 5001 | |
| Error code from PAA to PaC or from PaC to PAA. The received | The received message contained an AVP that is not recognized or | |
| message contained an AVP that is not recognized or supported and | supported and was marked with the Mandatory bit. A PANA message | |
| was marked with the Mandatory bit. A PANA message with this error | with this error MUST contain one or more Failed-AVP AVP containing | |
| MUST contain one or more Failed-AVP AVP containing the AVPs that | the AVPs that caused the failure. | |
| caused the failure. | ||
| PANA_UNKNOWN_SESSION_ID 5002 | PANA_UNKNOWN_SESSION_ID 5002 | |
| Error code from PAA to PaC or from PaC to PAA. The message | The message contained an unknown Session-Id. PAA MUST NOT send | |
| contained an unknown Session-Id. PAA MUST NOT send this error | this error result code value to PaC if PaC sent an unknown | |
| result code value to PaC if PaC sent an unknown Session-Id in the | Session-Id in the PANA-Start-Answer message (session resumption). | |
| PANA-Start-Answer message (session resumption). | ||
| PANA_INVALID_AVP_VALUE 5004 | PANA_INVALID_AVP_DATA 5004 | |
| 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 | The message contained an AVP with an invalid value in its data | |
| PANA message indicating this error MUST include the offending AVPs | portion. A PANA message indicating this error MUST include the | |
| within a Failed-AVP AVP. | offending AVPs 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 | The message did not contain an AVP that is required by the message | |
| not contain an AVP that is required by the message type | type definition. If this value is sent in the Result-Code AVP, a | |
| definition. If this value is sent in the Result-Code AVP, a | ||
| Failed-AVP AVP SHOULD be included in the message. The Failed-AVP | Failed-AVP AVP SHOULD be included in the message. The Failed-AVP | |
| AVP MUST contain an example of the missing AVP complete with the | AVP MUST contain an example of the missing AVP complete with the | |
| Vendor-Id if applicable. The value field of the missing AVP | Vendor-Id if applicable. The value field of the missing AVP | |
| should be of correct minimum length and contain zeroes. | should be of correct minimum length and contain zeroes. | |
| PANA_RESOURCES_EXCEEDED 5006 | PANA_RESOURCES_EXCEEDED 5006 | |
| Error code from PAA to PaC. A message was received that cannot be | A message was received that cannot be authorized because the | |
| authorized because the client has already expended allowed | client has already expended allowed resources. An example of this | |
| resources. An example of this error condition is a client that is | error condition is a client that is restricted to one PANA session | |
| restricted to one PANA session and attempts to establish a second | and attempts to establish a second session. Only PAA can generate | |
| session. | this code. | |
| PANA_CONTRADICTING_AVPS 5007 | PANA_CONTRADICTING_AVPS 5007 | |
| Error code from PAA to PaC. The PAA has detected AVPs in the | The PAA has detected AVPs in the message that contradicted each | |
| message that contradicted each other, and is not willing to | other, and is not willing to provide service to the client. One | |
| provide service to the client. One or more Failed-AVP AVPs MUST | or more Failed-AVP AVPs MUST be present, containing the AVPs that | |
| be present, containing the AVPs that contradicted each other. | contradicted each other. Only PAA can generate this code. | |
| PANA_AVP_NOT_ALLOWED 5008 | PANA_AVP_NOT_ALLOWED 5008 | |
| Error code from PAA to PaC or from PaC to PAA. A message was | A message was received with an AVP that MUST NOT be present. The | |
| received with an AVP that MUST NOT be present. The Failed-AVP AVP | Failed-AVP AVP MUST be included and contain a copy of the | |
| MUST be included and contain a copy of the offending AVP. | 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 | A message was received that included an AVP that appeared more | |
| received that included an AVP that appeared more often than | often than permitted in the message definition. The Failed-AVP | |
| permitted in the message definition. The Failed-AVP AVP MUST be | AVP MUST be included and contain a copy of the first instance of | |
| included and contain a copy of the first instance of the offending | the offending AVP that exceeded the maximum number of occurrences. | |
| AVP that exceeded the maximum number of occurrences. | ||
| PANA_UNSUPPORTED_VERSION 5011 | PANA_UNSUPPORTED_VERSION 5011 | |
| Error code from PAA to PaC or from PaC to PAA. This error is | This error is returned when a message was received, whose version | |
| returned when a message was received, whose version number is | 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-Error-Request message. | PANA-Error-Request message. | |
| PANA_INVALID_AVP_LENGTH 5014 | PANA_INVALID_AVP_LENGTH 5014 | |
| Error code from PAA to PaC or from PaC to PAA. The message | The message contained an AVP with an invalid length. The | |
| contained an AVP with an invalid length. The PANA-Error message | PANA-Error-Request message indicating this error MUST include the | |
| indicating this error MUST include the offending AVPs within a | offending AVPs within a Failed-AVP AVP. | |
| Failed-AVP AVP. | ||
| PANA_INVALID_MESSAGE_LENGTH 5015 | PANA_INVALID_MESSAGE_LENGTH 5015 | |
| Error code from PAA to PaC or from PaC to PAA. This error is | This error is returned when a message is received with an invalid | |
| returned when a message is received with an invalid message | message 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 | This error is returned when the PaC receives a PANA-Bind-Request | |
| receives a PANA-Bind-Request with a Protection-Capability AVP and | with a Protection-Capability AVP and a valid MAC AVP but does not | |
| a valid MAC AVP but does not support the protection capability | support the protection capability specified in the | |
| specified in the Protection-Capability AVP. | Protection-Capability AVP. Only PaC can generate this code. | |
| PANA_PPAC_CAPABILITY_UNSUPPORTED 5017 | PANA_PPAC_CAPABILITY_UNSUPPORTED 5017 | |
| Error code from PaC to PAA. This error is returned in a | This error is returned in a PANA-Bind-Answer message when there is | |
| PANA-Bind-Answer message when there is no match between the list | no match between the list of PPAC methods offered by the PAA and | |
| of PPAC methods offered by the PAA and the ones available on the | the ones available on the PaC. Only PaC can generate this code. | |
| PaC. | ||
| PANA_INVALID_IP_ADDRESS 5018 | PANA_INVALID_IP_ADDRESS 5018 | |
| Error code from PAA to PaC. This error is returned in a | This error is returned in a PANA-Error-Request message when the | |
| PANA-Error-Request message when the IP-Address AVP in the received | IP-Address AVP in the received PANA-Update-Request message is | |
| PANA-Update-Request message is invalid (e.g., a non-unicast | invalid (e.g., a non-unicast address). Only PAA can generate this | |
| address). | code. | |
| 8.3.8 EAP-Payload AVP | 8.3.8 EAP-Payload AVP | |
| The EAP-Payload AVP (AVP Code 8) is of type OctetString and is used | The EAP-Payload AVP (AVP Code 8) is used for encapsulating the actual | |
| to encapsulate the actual EAP packet that is being exchanged between | EAP packet that is being exchanged between the EAP peer and the EAP | |
| the EAP peer and the EAP authenticator. | authenticator. The AVP data is of type OctetString. | |
| 8.3.9 Session-Lifetime AVP | 8.3.9 Session-Lifetime AVP | |
| The Session-Lifetime AVP (AVP Code 9) data is of type Unsigned32. It | The Session-Lifetime AVP (AVP Code 9) contains the number of seconds | |
| contains the number of seconds remaining before the current session | remaining before the current session is considered expired. The AVP | |
| is considered expired. | data is of type Unsigned32. | |
| 8.3.10 Failed-AVP AVP | 8.3.10 Failed-AVP AVP | |
| The Failed-AVP AVP (AVP Code 10) is of type Grouped and provides | The Failed-AVP AVP (AVP Code 10) provides debugging information in | |
| debugging information in cases where a request is rejected or not | cases where a request is rejected or not fully processed due to | |
| fully processed due to erroneous information in a specific AVP. The | erroneous information in a specific AVP. The AVP data is of type | |
| format of the Failed-AVP AVP is defined in [RFC3588]. | Grouped. The format of the Failed-AVP AVP is defined in [RFC3588]. | |
| 8.3.11 NAP-Information AVP | 8.3.11 NAP-Information AVP | |
| The NAP-Information AVP (AVP Code 11) is of type Grouped, and | The NAP-Information AVP (AVP Code 11) contains zero or one | |
| contains zero or one Provider-Identifier AVP which carries the | Provider-Identifier AVP which carries the identifier of the NAP and | |
| identifier of the NAP and one Provider-Name AVP which carries the | one Provider-Name AVP which carries the name of the NAP. The AVP | |
| name of the NAP. Its Data field has the following ABNF grammar: | data is of type Grouped, and it has the following ABNF grammar: | |
| NAP-Information ::= < AVP Header: 11 > | NAP-Information ::= < AVP Header: 11 > | |
| 0*1 { Provider-Identifier } | 0*1 { Provider-Identifier } | |
| { Provider-Name } | { Provider-Name } | |
| * [ AVP ] | * [ AVP ] | |
| 8.3.12 ISP-Information AVP | 8.3.12 ISP-Information AVP | |
| The ISP-Information AVP (AVP Code 12) is of type Grouped, and | The ISP-Information AVP (AVP Code 12) contains zero or one | |
| contains zero or one Provider-Identifier AVP which carries the | Provider-Identifier AVP which carries the identifier of the ISP and | |
| identifier of the ISP and one Provider-Name AVP which carries the | one Provider-Name AVP which carries the name of the ISP. The AVP | |
| name of the ISP. Its Data field has the following ABNF grammar: | data is of type Grouped, and it has the following ABNF grammar: | |
| ISP-Information ::= < AVP Header: 12 > | ISP-Information ::= < AVP Header: 12 > | |
| 0*1 { Provider-Identifier } | 0*1 { Provider-Identifier } | |
| { Provider-Name } | { Provider-Name } | |
| * [ AVP ] | * [ AVP ] | |
| 8.3.13 Provider-Identifier AVP | 8.3.13 Provider-Identifier AVP | |
| The Provider-Identifier AVP (AVP Code 13) is of type Unsigned32, and | The Provider-Identifier AVP (AVP Code 13) is of type Unsigned32, and | |
| contains an IANA assigned "SMI Network Management Private Enterprise | contains an IANA assigned "SMI Network Management Private Enterprise | |
| Skipping to change at page 55, line 20: | ||
| contains the UTF8-encoded name of the provider. | contains the UTF8-encoded name of the provider. | |
| 8.3.15 Key-Id AVP | 8.3.15 Key-Id AVP | |
| The Key-Id AVP (AVP Code 15) is of type Integer32, and contains an | The Key-Id AVP (AVP Code 15) 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. | |
| 8.3.16 Post-PANA-Address-Configuration (PPAC) AVP | 8.3.16 Post-PANA-Address-Configuration (PPAC) AVP | |
| The data field of PPAC AVP (AVP Code 16) is of type Unsigned32. The | The PPAC AVP (AVP Code 16) is used for conveying the available types | |
| AVP data is used to carry a set of flags which maps to various IP | of post-PANA IP address configuration mechanisms when sent by the | |
| address configuration methods. When sent by the PAA, the AVP MUST | PAA, and the chosen one when sent by the PaC. Each possible | |
| have at least one of the flags set, and MAY have more than one set. | mechanisms is represented by a flag. At least one or more of the | |
| When sent by the PaC, only one of the flags MUST be set. | flags MUST be set when sent by the PAA, and exactly one flag MUST be | |
| set when sent by the PaC. The AVP data is of type Unsigned32. | ||
| The format of the AVP data is as follows: | The format of the AVP data is as follows: | |
| 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 | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |
| |N|D|A|T|I| Reserved | | |N|D|A|T|I| Reserved | | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |
| PPAC Flags | PPAC Flags | |
| Skipping to change at page 56, line 27: | ||
| 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. | |
| Unless the N-flag is set, the PaC MUST configure a new IP address | 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 | using one of the methods indicated by the other flags. Refer to | |
| [I-D.ietf-pana-framework] for a detailed discussion on when these | [I-D.ietf-pana-framework] for a detailed discussion on when these | |
| methods can be used. | methods can be used. | |
| 8.3.17 Nonce AVP | 8.3.17 Nonce AVP | |
| The Nonce AVP (AVP Code 17) is of type OctetString. The data | The Nonce AVP (AVP Code 17) carries a randomly chosen value that is | |
| contains a randomly generated value in opaque format. The data | used in cyrptographic key computations. The AVP data is of type | |
| length MUST be between 8 and 256 bytes inclusive. | OctetString and it contains a randomly generated value in opaque | |
| format. The data length MUST be between 8 and 256 bytes inclusive. | ||
| 8.3.18 IP-Address AVP | 8.3.18 IP-Address AVP | |
| The IP-Address (AVP Code 18) contains an IP address of n a PaC or | The IP-Address AVP (AVP Code 18) contains an IP address of the PaC or | |
| PAA. The payload format of the IP-Address AVP is the same as that of | PAA. When it is sent by the PaC, it is used to convey the new IP | |
| the Device-Id AVP (see See Section 8.3.2). Address families for IPv4 | address of the PaC to the PAA when the PaC reconfigures its IP | |
| or IPv6 MUST be used for this AVP. Address families for IPv4 or IPv6 | address after the successful PANA authentication. This AVP is not | |
| MUST be used for this AVP. | used if the PaC's IP address used during the PANA authentication | |
| phase is still valid. It is sent by the PAA in PANA-Bind-Request to | ||
| bind the IP address of the PAA to the PANA session. The payload | ||
| format of the IP-Address AVP is the same as that of the Device-Id AVP | ||
| (see See Section 8.3.2). Address families for IPv4 or IPv6 MUST be | ||
| used for this AVP. | ||
| 9. PANA Protocol Message Retransmissions | 9. Retransmission Timers | |
| The PANA protocol provides retransmissions for the PANA-PAA-Discover | The PANA protocol provides retransmissions for the PANA-PAA-Discover | |
| and request messages. | and request messages. | |
| 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. | timer. | |
| PaC MUST retransmit PANA-PAA-Discover if a subsequent | ||
| PANA-Start-Request is not received in time. Even though a | ||
| PANA-Start-Request is received, PANA-PAA-Discover may still have to | ||
| be retransmitted. This is because a stateless PANA handshake | ||
| requires one time transmission of a PANA-Start-Request. PAA MUST NOT | ||
| start a timer and retransmit the request if it wants to avoid state | ||
| creation. If the received PANA-Start-Request included a Cookie AVP | ||
| (an indication of stateless handshake), PaC MUST retransmit | ||
| PANA-PAA-Discover until the first PANA-Auth-Request is received. | ||
| PANA retransmission timers are based on the model used in DHCPv6 | PANA retransmission timers are based on the model used in DHCPv6 | |
| [RFC3315]. Variables used here are also borrowed from this | [RFC3315]. Variables used here are also borrowed from this | |
| specification. PANA is a request response like protocol. The | specification. PANA is a request response like protocol. The | |
| message exchange terminates when either the request sender | message exchange terminates when either the request sender | |
| successfully receives the appropriate answer, or when the message | successfully receives the appropriate answer, or when the message | |
| exchange is considered to have failed according to the retransmission | exchange is considered to have failed according to the retransmission | |
| mechanism described below. | mechanism described below. | |
| The retransmission behavior is controlled and described by the | The retransmission behavior is controlled and described by the | |
| following variables: | following variables: | |
| Skipping to change at page 60, line 32: | ||
| for comment and review, and MUST include a pointer to a public | for comment and review, and MUST include a pointer to a public | |
| specification. Before a period of 30 days has passed, the Designated | specification. Before a period of 30 days has passed, the Designated | |
| Expert will either approve or deny the registration request and | Expert will either approve or deny the registration request and | |
| publish a notice of the decision to the PANA WG mailing list or its | publish a notice of the decision to the PANA WG mailing list or its | |
| successor. A denial notice must be justified by an explanation and, | successor. A denial notice must be justified by an explanation and, | |
| in the cases where it is possible, concrete suggestions on how the | in the cases where it is possible, concrete suggestions on how the | |
| request can be modified so as to become acceptable. | request can be modified so as to become acceptable. | |
| 10.1 PANA UDP Port Number | 10.1 PANA UDP Port Number | |
| PANA uses one well-known UDP port number (Section 5.2, Section 4.1 | PANA uses one well-known UDP port number (Section 5.1, Section 4.2 | |
| and Section 7.1, which needs to be assigned by the IANA. | and Section 7.1), which needs to be assigned by the IANA. | |
| 10.2 PANA Multicast Address | 10.2 PANA Multicast Address | |
| PANA uses one well-known IPv4 multicast address for which the scope | PANA uses one well-known IPv4 multicast address for which the scope | |
| is limited to be link-local by setting the TTL field to 255, and one | is limited to be link-local by setting the TTL field to 255, and one | |
| well-known IPv6 link-local scoped multicast address (Section 4.1 and | well-known IPv6 link-local scoped multicast address (Section 4.2 and | |
| Section 7.1), which need to be assigned by the IANA. | Section 7.1), which need to be assigned by the IANA. | |
| 10.3 PANA Header | 10.3 PANA Header | |
| As defined in Section 7.2, the PANA header contains two fields that | As defined in Section 7.2, the PANA header contains two fields that | |
| requires IANA namespace management; the Message Type and Flags field. | requires IANA namespace management; the Message Type and Flags field. | |
| 10.3.1 Message Type | 10.3.1 Message Type | |
| The Message Type namespace is used to identify PANA messages. Values | The Message Type namespace is used to identify PANA messages. Values | |
| Skipping to change at page 64, line 21: | ||
| from the use of EAP and EAP methods are discussed in [RFC3748]. This | from the use of EAP and EAP methods are discussed in [RFC3748]. This | |
| section provides a discussion on the security-related issues that are | section provides a discussion on the security-related issues that are | |
| related to PANA framework and protocol design. | related to PANA framework and protocol design. | |
| An important element in assessing security of PANA design and | An important element in assessing security of PANA design and | |
| deployment in a network is the presence of lower-layer (physical and | deployment in a network is the presence of lower-layer (physical and | |
| link-layer) security. In the context of this document, lower-layers | link-layer) security. In the context of this document, lower-layers | |
| are said to be secure if they can prevent eavesdropping and spoofing | are said to be secure if they can prevent eavesdropping and spoofing | |
| of packets. Examples of such networks are physically-secured DSL | of packets. Examples of such networks are physically-secured DSL | |
| networks and 3GPP2 networks with crytographically-secured cdma2000 | networks and 3GPP2 networks with crytographically-secured cdma2000 | |
| link-layer. | link-layer. In these examples, the lower-layer security is enabled | |
| even before running the first PANA-based authentication. In the | ||
| In these examples, the lower-layer security is enabled even before | absence of such a pre-established secure channel, one needs to be | |
| running the first PANA-based authentication. In the absence of such | created in conjunction with PANA using a link-layer or network-layer | |
| a pre-established secure channel, one needs to be created in | ||
| conjunction with PANA using a link-layer or network-layer | ||
| cryptographic mechanism (e.g., IPsec). | cryptographic mechanism (e.g., IPsec). | |
| 11.1 General Security Measures | 11.1 General Security Measures | |
| PANA provides multiple mechanisms to secure a PANA session. | PANA provides multiple mechanisms to secure a PANA session. | |
| Since PaC and PAA are on the same IP link, a simple TTL check on the | Since PaC and PAA are on the same IP link, a simple TTL check on the | |
| received PANA messages prevents off-link attacks. | received PANA messages prevents off-link attacks. | |
| PANA messages carry sequence numbers, which are monotonically | PANA messages carry sequence numbers, which are monotonically | |
| Skipping to change at page 64, line 48: | ||
| randomly initialized at the beginning of the session, and verified | randomly initialized at the beginning of the session, and verified | |
| against expected numbers upon receipt. A message whose sequence | against expected numbers upon receipt. A message whose sequence | |
| number is different than the expected one is silently discarded. In | number is different than the expected one is silently discarded. In | |
| addition to accomplishing orderly delivery of EAP messages and | addition to accomplishing orderly delivery of EAP messages and | |
| duplicate elimination, this scheme also helps prevent an adversary | duplicate elimination, this scheme also helps prevent an adversary | |
| spoof messages to disturb ongoing PANA and EAP sessions unless it can | spoof messages to disturb ongoing PANA and EAP sessions unless it can | |
| also eavesdrop to synchronize on the expected sequence number. | also eavesdrop to synchronize on the expected sequence number. | |
| The PANA framework defines EP which is ideally located on a network | The PANA framework defines EP which is ideally located on a network | |
| device that can filter traffic from the PaCs before the traffic | device that can filter traffic from the PaCs before the traffic | |
| enters the Internet. A set of filters can be used to discard | enters the Internet/intranet. A set of filters can be used to | |
| unauthorized packets, such as a PANA-Start-Request message that is | discard unauthorized packets, such as a PANA-Start-Request message | |
| received from the segment of the access network where only PaCs are | that is received from the segment of the access network where only | |
| supposed to be connected. | PaCs are supposed to be connected. | |
| The protocol also provides authentication and integrity protection to | The protocol also provides authentication and integrity protection to | |
| PANA messages when the used EAP method can generate cryptographic | PANA messages when the used EAP method can generate cryptographic | |
| session keys. A PANA SA is generated based on the AAA-Key exported | session keys. A PANA SA is generated based on the AAA-Key exported | |
| by the EAP method. This SA is used for generating per-packet MAC to | by the EAP method. This SA is used for generating per-packet MAC to | |
| protect the PANA header and payload (including the complete EAP | protect the PANA header and payload (including the complete EAP | |
| message). | message). | |
| The cryptographic protection prevents an adversary from acting as a | The cryptographic protection prevents an adversary from acting as a | |
| man-in-the-middle, injecting messages, replaying messages and | man-in-the-middle, injecting messages, replaying messages and | |
| modifying the content of the exchanged messages. Any packet that | modifying the content of the exchanged messages. Any packet that | |
| fails to pass the MAC verification is silently discarded. The | fails to pass the MAC verification is silently discarded. The | |
| earliest this protection can be enabled is when the very first | earliest this protection can be enabled is when the very first | |
| PANA-Bind-Request that signals a successful authentication is | PANA-Bind-Request or PANA-FirstAuth-End-Request that signals a | |
| generated. Starting with the PANA-Bind-Request and PANA-Bind-Answer, | successful authentication is generated. Starting with these | |
| any subsequent PANA message until the session gets torn down can be | messages, any subsequent PANA message until the session gets torn | |
| cryptographically protected. | down can be cryptographically protected. | |
| The PANA SA enables authenticated and integrity protected exchange of | The PANA SA enables authenticated and integrity protected exchange of | |
| the device ID information between the PaC and PAA. This ensures | the device ID information between the PaC and PAA. This ensures | |
| there were no man-in-the-middle during the PANA authentication. | there were no man-in-the-middle during the PANA authentication. | |
| The lifetime of the PANA SA is bounded by the AAA-authorized session | The lifetime of the PANA SA is bounded by the AAA-authorized session | |
| lifetime with an additional tolerance period. Unless PANA state is | lifetime with an additional tolerance period. Unless PANA state is | |
| updated by executing another EAP authentication, the PANA SA is | updated by executing another EAP authentication, the PANA SA is | |
| removed when the current session expires. | removed when the current session expires. | |
| Skipping to change at page 67, line 19: | ||
| Upon PaC's movement to a another PAA (new PAA) and request to perform | Upon PaC's movement to a another PAA (new PAA) and request to perform | |
| a context transfer based optimization, the current PAA computes a | a context transfer based optimization, the current PAA computes a | |
| AAA-Key-int based on the AAA-Key, ID of new PAA, and the session ID. | AAA-Key-int based on the AAA-Key, ID of new PAA, and the session ID. | |
| This AAA-Key-int is delivered to the new PAA, and used in the | This AAA-Key-int is delivered to the new PAA, and used in the | |
| computation of AAA-Key-new, which further takes a pair of nonce | computation of AAA-Key-new, which further takes a pair of nonce | |
| values into account. After this point on, the AAA-Key-new becomes | values into account. After this point on, the AAA-Key-new becomes | |
| the AAA-Key between the PaC and the new PAA. | the AAA-Key between the PaC and the new PAA. | |
| When link-layer or network-layer ciphering [I-D.ietf-pana-ipsec] is | When link-layer or network-layer ciphering [I-D.ietf-pana-ipsec] is | |
| enabled as a result of successful PANA authentication, a separate | enabled as a result of successful PANA authentication, a separate | |
| master key is generated based on the AAA-Key, session ID, key ID, and | PaC-EP master key is generated based on the AAA-Key, session ID, key | |
| EP ID. | ID, and EP ID. | |
| The lifetime of this key is bounded by the lifetime of the PANA SA. | The lifetime of PaC-EP master key is bounded by the lifetime of the | |
| This key may be used with a secure association protocol | PANA SA. This key may be used with a secure association protocol | |
| [I-D.ietf-ipsec-ikev2] to produce further cipher-specific and | [I-D.ietf-ipsec-ikev2] to produce further cipher-specific and | |
| transient keys. | transient keys. | |
| 11.6 Per-packet Ciphering | 11.6 Per-packet Ciphering | |
| Networks that are not secured at the lower-layers prior to running | Networks that are not secured at the lower-layers prior to running | |
| PANA can rely on enabling per-packet data traffic ciphering upon | PANA can rely on enabling per-packet data traffic ciphering upon | |
| successful PANA session establishment. The PANA framework allows | successful PANA session establishment. The PANA framework allows | |
| generation of a master key from AAA-Key for using with a per-packet | generation of a PaC-EP master key from AAA-Key for using with a | |
| protection mechanism, such as link-layer or IPsec-based ciphering | per-packet protection mechanism, such as link-layer or IPsec-based | |
| [I-D.ietf-pana-ipsec]. In case the master key is not readily useful | ciphering [I-D.ietf-pana-ipsec]. In case the master key is not | |
| to the ciphering mechanism, an additional secure association protocol | readily useful to the ciphering mechanism, an additional secure | |
| [I-D.ietf-ipsec-ikev2] may be needed to produce the required keying | association protocol [I-D.ietf-ipsec-ikev2] may be needed to produce | |
| material. These mechanisms ultimately establish a cryptographic | the required keying material. These mechanisms ultimately establish | |
| binding between the data traffic generated by and for a client and | a cryptographic binding between the data traffic generated by and for | |
| the authenticated identity of the client. Data traffic must be | a client and the authenticated identity of the client. Data traffic | |
| minimally data origin authenticated, replay and integrity protected, | must be minimally data origin authenticated, replay and integrity | |
| and optionally encrypted. | protected, and optionally encrypted. | |
| 11.7 PAA-to-EP Communication | 11.7 PAA-to-EP Communication | |
| The PANA framework allows separation of PAA from EP(s). SNMPv3 | The PANA framework allows separation of PAA from EP(s). SNMPv3 | |
| [I-D.ietf-pana-snmp] is used between the the PAA and EP for | [I-D.ietf-pana-snmp] is used between the the PAA and EP for | |
| provisioning authorized PaC information on the EP. This exchange | provisioning authorized PaC information on the EP. This exchange | |
| MUST be always physically or cryptographically protected for | MUST be always physically or cryptographically protected for | |
| authentication, integrity and replay protection. It MUST also be | authentication, integrity and replay protection. It MUST also be | |
| privacy-protected when per-PaC master key for per-packet ciphering is | privacy-protected when PaC-EP master key for per-packet ciphering is | |
| transmitted to the EP. | transmitted to the EP. | |
| The per-packet ciphering master key MUST be unique to the PaC and EP | The PaC-EP master key MUST be unique to the PaC and EP pair. The | |
| pair. The session ID and EP's device ID are taken into computation | session ID and EP's device ID are taken into computation for | |
| for achieving this effect [I-D.ietf-pana-ipsec]. Compromise of an EP | achieving this effect [I-D.ietf-pana-ipsec]. Compromise of an EP | |
| does not automatically lead to compromise of another EP or the PAA. | does not automatically lead to compromise of another EP or the PAA. | |
| 11.8 Livenes Test | 11.8 Livenes Test | |
| A PANA session is associated with a session lifetime. The session is | A PANA session is associated with a session lifetime. The session is | |
| terminated unless it is refreshed by a new round of EAP | terminated unless it is refreshed by a new round of EAP | |
| authentication before it expires. Therefore, at the latest a | authentication before it expires. Therefore, at the latest a | |
| disconnected client can be detected when its lifetime expires. A | disconnected client can be detected when its session expires. A | |
| disconnect may also be detected earlier by using PANA ping messages. | disconnect may also be detected earlier by using PANA ping messages. | |
| A request message can be generated by either PaC or PAA at any time | A request message can be generated by either PaC or PAA at any time | |
| and the peer must respond with an answer message. A successful | and the peer must respond with an answer message. A successful | |
| round-trip of this exchange is a simple verification that the peer is | round-trip of this exchange is a simple verification that the peer is | |
| alive. This test can be engaged when there is a possibility that the | alive. This test can be engaged when there is a possibility that the | |
| peer might have disconnected (e.g., after discontinuation of data | peer might have disconnected (e.g., after the discontinuation of data | |
| traffic). Periodic use of this exchange as a keep-alive requires | traffic for an extended period of time). Periodic use of this | |
| additional care as it might result in congestion and hence false | exchange as a keep-alive requires additional care as it might result | |
| alarms. This exchange is cryptographically protected when a PANA SA | in congestion and hence false alarms. This exchange is | |
| is available in order to prevent threats associated with the abuse of | cryptographically protected when a PANA SA is available in order to | |
| this functionality. | prevent threats associated with the abuse of this functionality. | |
| 11.9 Mobility Optimization | 11.9 Mobility Optimization | |
| The mobility optimization described in Section 4.12 involves the | The mobility optimization described in Section 6 involves the | |
| previous PAA providing a AAA-Key to the current PAA of the PaC. | previous PAA (holding AAA-Key) providing a AAA-Key-new to the current | |
| There are security risks stemming from potential compromise of PAAs. | PAA of the PaC. There are security risks stemming from potential | |
| Compromise of the current PAA does not yield compromise of the | compromise of PAAs. Compromise of the current PAA does not yield | |
| previous PAA, as AAA-Key cannot be computed from a compromised | compromise of the previous PAA, as AAA-Key cannot be computed from a | |
| AAA-Key-new. But a compromised previous PAA along with the | compromised AAA-Key-new. But a compromised previous PAA along with | |
| intercepted nonce values on the current link leads to the compromise | the intercepted nonce values on the current link leads to the | |
| of AAA-Key-new. Operators should be aware of the potential risk of | compromise of AAA-Key-new. Operators should be aware of the | |
| using this optimization. An operator can reduce the risk exposure by | potential risk of using this optimization. | |
| forcing the PaC to perform an EAP-based authentication immediately | ||
| after the PaC gains access to new link via the optimized PANA | An operator can reduce the risk exposure by forcing the PaC to | |
| execution. | perform an EAP-based authentication immediately after the PaC gains | |
| access to new link via the optimized PANA execution. EAP-based | ||
| authentication can be run in parallel with IP data packet | ||
| transmission. | ||
| 11.10 Updating PaC's IP Address | 11.10 Updating PaC's IP Address | |
| Even though the IP-Address AVP in a PANA-Update-Request can be | Even though the IP-Address AVP in a PANA-Update-Request can be | |
| cryptographically protected by the MAC AVP, there is not way to prove | cryptographically protected by the MAC AVP, there is not way to prove | |
| the ownership of the IP address presented by the PaC. Hence an | the ownership of the IP address presented by the PaC. Hence an | |
| authorized PaC can launch a redirect attack by spoofing a victim's IP | authorized PaC can launch a redirect attack by spoofing a victim's IP | |
| address. | address. | |
| 11.11 Early Termination of a Session | 11.11 Early Termination of a Session | |
| Skipping to change at page 70, line 9: | ||
| The PANA protocol supports the ability for both the PaC and the PAA | The PANA protocol supports the ability for both the PaC and the PAA | |
| to transmit a tear-down message before the session lifetime expires. | to transmit a tear-down message before the session lifetime expires. | |
| This message causes state removal, a stop of the accounting procedure | This message causes state removal, a stop of the accounting procedure | |
| and removes the installed per-PaC state on the EP(s). This message | and removes the installed per-PaC state on the EP(s). This message | |
| is cryptographically protected when PANA SA is present. | is cryptographically protected when PANA SA is present. | |
| 12. Acknowledgments | 12. Acknowledgments | |
| We would like to thank Jari Arkko, Mohan Parthasarathy, Julien | We would like to thank Jari Arkko, Mohan Parthasarathy, Julien | |
| Bournelle, Rafael Marin Lopez, Pasi Eronen, Randy Turner, Erik | Bournelle, Rafael Marin Lopez, Pasi Eronen, Randy Turner, Erik | |
| Nordmark and all members of the PANA working group for their valuable | Nordmark, Lionel Morand, Avi Lior, Susan Thomson, Giaretta Gerardo | |
| comments to this document. | and all members of the PANA working group for their valuable comments | |
| to this document. | ||
| 13. References | 13. References | |
| 13.1 Normative References | 13.1 Normative References | |
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |
| Requirement Levels", BCP 14, RFC 2119, March 1997. | Requirement Levels", BCP 14, RFC 2119, March 1997. | |
| [RFC2131] Droms, R., "Dynamic Host Configuration Protocol", RFC | [RFC2131] Droms, R., "Dynamic Host Configuration Protocol", RFC | |
| 2131, March 1997. | 2131, March 1997. | |
| Skipping to change at page 71, line 44: | ||
| [RFC3456] Patel, B., Aboba, B., Kelly, S. and V. Gupta, "Dynamic | [RFC3456] Patel, B., Aboba, B., Kelly, S. and V. Gupta, "Dynamic | |
| Host Configuration Protocol (DHCPv4) Configuration of | Host Configuration Protocol (DHCPv4) Configuration of | |
| IPsec Tunnel Mode", RFC 3456, January 2003. | IPsec Tunnel Mode", RFC 3456, January 2003. | |
| [RFC3748] Aboba, B., Blunk, L., Vollbrecht, J., Carlson, J. and H. | [RFC3748] Aboba, B., Blunk, L., Vollbrecht, J., Carlson, J. and H. | |
| Levkowetz, "Extensible Authentication Protocol (EAP)", RFC | Levkowetz, "Extensible Authentication Protocol (EAP)", RFC | |
| 3748, June 2004. | 3748, June 2004. | |
| [I-D.ietf-eap-keying] | [I-D.ietf-eap-keying] | |
| Aboba, B., "Extensible Authentication Protocol (EAP) Key | Aboba, B., "Extensible Authentication Protocol (EAP) Key | |
| Management Framework", draft-ietf-eap-keying-03 (work in | Management Framework", draft-ietf-eap-keying-04 (work in | |
| progress), July 2004. | progress), November 2004. | |
| [IANA] Narten, T. and H. Alvestrand, "Guidelines for Writing an | [IANA] Narten, T. and H. Alvestrand, "Guidelines for Writing an | |
| IANA Considerations Section in RFCs", BCP 26, RFC 2434, | IANA Considerations Section in RFCs", BCP 26, RFC 2434, | |
| October 1998. | October 1998. | |
| 13.2 Informative References | 13.2 Informative References | |
| [I-D.ietf-pana-requirements] | [I-D.ietf-pana-requirements] | |
| Yegin, A. and Y. Ohba, "Protocol for Carrying | Yegin, A. and Y. Ohba, "Protocol for Carrying | |
| Authentication for Network Access (PANA)Requirements", | Authentication for Network Access (PANA)Requirements", | |
| Skipping to change at page 72, line 34: | ||
| Control", draft-ietf-pana-ipsec-04 (work in progress), | Control", draft-ietf-pana-ipsec-04 (work in progress), | |
| September 2004. | September 2004. | |
| [I-D.ietf-pana-framework] | [I-D.ietf-pana-framework] | |
| Jayaraman, P., "PANA Framework", | Jayaraman, P., "PANA Framework", | |
| draft-ietf-pana-framework-02 (work in progress), September | draft-ietf-pana-framework-02 (work in progress), September | |
| 2004. | 2004. | |
| [I-D.ietf-pana-snmp] | [I-D.ietf-pana-snmp] | |
| Mghazli, Y., Ohba, Y. and J. Bournelle, "SNMP usage for | Mghazli, Y., Ohba, Y. and J. Bournelle, "SNMP usage for | |
| PAA-2-EP interface", draft-ietf-pana-snmp-01 (work in | PAA-2-EP interface", draft-ietf-pana-snmp-02 (work in | |
| progress), July 2004. | progress), October 2004. | |
| [I-D.irtf-aaaarch-handoff] | [I-D.irtf-aaaarch-handoff] | |
| Arbaugh, W. and B. Aboba, "Experimental Handoff Extension | Arbaugh, W. and B. Aboba, "Experimental Handoff Extension | |
| to RADIUS", draft-irtf-aaaarch-handoff-04 (work in | to RADIUS", draft-irtf-aaaarch-handoff-04 (work in | |
| progress), November 2003. | progress), November 2003. | |
| [I-D.ietf-eap-statemachine] | [I-D.ietf-eap-statemachine] | |
| Vollbrecht, J., Eronen, P., Petroni, N. and Y. Ohba, | Vollbrecht, J., Eronen, P., Petroni, N. and Y. Ohba, | |
| "State Machines for Extensible Authentication Protocol | "State Machines for Extensible Authentication Protocol | |
| (EAP) Peer and Authenticator", | (EAP) Peer and Authenticator", | |
| Skipping to change at page 75, line 5: | ||
| Alper E. Yegin | Alper E. Yegin | |
| Samsung Advanced Institute of Technology | Samsung Advanced Institute of Technology | |
| 75 West Plumeria Drive | 75 West Plumeria Drive | |
| San Jose, CA 95134 | San Jose, CA 95134 | |
| USA | USA | |
| Phone: +1 408 544 5656 | Phone: +1 408 544 5656 | |
| EMail: alper.yegin@samsung.com | EMail: alper.yegin@samsung.com | |
| Appendix A. Example Sequence of Separate NAP and ISP Authentication | ||
| A PANA message sequence with separate NAP and ISP authentication is | ||
| illustrated in Figure 13. The example assumes the following | ||
| scenario: | ||
| o The PaC initiates the discovery and handshake phase. | ||
| o The PAA offers separate NAP and ISP authentication, as well as a | ||
| choice of ISP from "ISP1" and "ISP2". The PaC accepts the offer | ||
| from PAA, with choosing "ISP1" as the ISP. | ||
| o NAP authentication and ISP authentication is performed in this | ||
| order in authentication phase. | ||
| o An EAP authentication method with a single round trip is used in | ||
| each EAP sequence. | ||
| o After a PANA SA is established, all messages are integrity and | ||
| replay protected with MAC AVPs. | ||
| o Authorization, re-authentication and termination phases are not | ||
| shown. | ||
| PaC PAA Message(seqno)[AVPs] | ||
| ----------------------------------------------------- | ||
| // Discovery and handshake phase | ||
| -----> PANA-PAA-Discover(0) | ||
| <----- PANA-Start-Request(x) // S-flag set | ||
| [Nonce, Cookie, | ||
| ISP-Information("ISP1"), | ||
| ISP-Information("ISP2"), | ||
| NAP-Information("MyNAP")] | ||
| -----> PANA-Start-Answer(x) // S-flag set | ||
| [Nonce, Cookie, // PaC chooses "ISP1" | ||
| ISP-Information("ISP1")] | ||
| // Authentication phase | ||
| <----- PANA-Auth-Request(x+1) // NAP authentication | ||
| [Session-Id, EAP{Request}] // S- and N-flags set | ||
| -----> PANA-Auth-Answer(x+1) // S- and N-flags set | ||
| [Session-Id] // No piggybacking | ||
| -----> PANA-Auth-Request(y) // S- and N-flags set | ||
| [Session-Id, EAP{Response}] | ||
| <----- PANA-Auth-Answer(y)[Session-Id] // S- and N-flags set | ||
| <----- PANA-Auth-Request(x+2) // S- and N-flags set | ||
| [Session-Id, EAP{Request}] | ||
| -----> PANA-Auth-Answer(x+2) // S- and N-flags set | ||
| [Session-Id, EAP{Response}] // Piggybacking | ||
| <----- PANA-FirstAuth-End-Request(x+3) // S- and N-flags set | ||
| [Session-Id, EAP{Success}, Key-Id, MAC] | ||
| -----> PANA-FirstAuth-End-Answer(x+3) // S- and N-flags set | ||
| [Session-Id, Key-Id, MAC] | ||
| <----- PANA-Auth-Request(x+4) // ISP authentication | ||
| [Session-Id, EAP{Request}, MAC] // S-flag set | ||
| -----> PANA-Auth-Answer(x+4) // S-flag set | ||
| [Session-Id, MAC] // No piggybacking | ||
| -----> PANA-Auth-Request(y+1) // S-flag set | ||
| [Session-Id, EAP{Response}, MAC] | ||
| <----- PANA-Auth-Answer(y+1) // S-flag set | ||
| [Session-Id, MAC] | ||
| <----- PANA-Auth-Request(x+5) // S-flag set | ||
| [Session-Id, EAP{Request}, MAC] | ||
| -----> PANA-Auth-Answer(x+5) // S-flag set | ||
| [Session-Id, EAP{Response}, MAC] // Piggybacking | ||
| <----- PANA-Bind-Request(x+6) // S-flag set | ||
| [Session-Id, EAP{Success}, Device-Id, | ||
| IP-Address, Key-Id, Lifetime, | ||
| Protection-Cap., PPAC, MAC] | ||
| -----> PANA-Bind-Answer(x+6) // S-flag set | ||
| [Session-Id, Device-Id, Key-Id, | ||
| PPAC, MAC] | ||
| Figure 13: A Complete Message Sequence for Separate NAP and ISP | ||
| Authentication | ||
| 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 Rights or other rights that might be claimed to | Intellectual Property Rights or other rights that might be claimed to | |
| pertain to the implementation or use of the technology described in | pertain to the implementation or use of the technology described in | |
| this document or the extent to which any license under such rights | this document or the extent to which any license under such rights | |
| might or might not be available; nor does it represent that it has | might or might not be available; nor does it represent that it has | |
| made any independent effort to identify any such rights. Information | made any independent effort to identify any such rights. Information | |
| on the procedures with respect to rights in RFC documents can be | on the procedures with respect to rights in RFC documents can be | |
| found in BCP 78 and BCP 79. | found in BCP 78 and BCP 79. |