| draft-ietf-pana-pana-06.txt | draft-ietf-pana-pana-07.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 29, 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 29, 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-07 | |
| 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 29, 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 and Authorization Phase . . . . . . . . . . 15 | |
| 4.4 Re-authentication Phase . . . . . . . . . . . . . . . . . 15 | 4.4 Access Phase . . . . . . . . . . . . . . . . . . . . . . . 18 | |
| 4.5 Termination Phase . . . . . . . . . . . . . . . . . . . . 17 | 4.5 Re-authentication Phase . . . . . . . . . . . . . . . . . 19 | |
| 5. Protocol Design Details and Processing Rules . . . . . . . . 19 | 4.6 Termination Phase . . . . . . . . . . . . . . . . . . . . 20 | |
| 5.1 Payload Encoding . . . . . . . . . . . . . . . . . . . . . 19 | 4.7 Separate NAP and ISP Authentication . . . . . . . . . . . 21 | |
| 5.2 Transport Layer . . . . . . . . . . . . . . . . . . . . . 20 | 4.7.1 Negotiating Separate NAP and ISP Authentication . . . 21 | |
| 5.2.1 Fragmentation . . . . . . . . . . . . . . . . . . . . 20 | 4.7.2 Execution of Separate NAP and ISP Authentication . . . 22 | |
| 5.3 Sequence Number and Retransmission . . . . . . . . . . . . 20 | 4.7.3 AAA-Key Calculation . . . . . . . . . . . . . . . . . 23 | |
| 5.4 Message Authentication Code . . . . . . . . . . . . . . . 21 | 5. Protocol Design Details and Processing Rules . . . . . . . . 24 | |
| 5.5 Message Validity Check . . . . . . . . . . . . . . . . . . 21 | 5.1 Transport Layer . . . . . . . . . . . . . . . . . . . . . 24 | |
| 5.6 PANA Security Association . . . . . . . . . . . . . . . . 23 | 5.1.1 Fragmentation . . . . . . . . . . . . . . . . . . . . 24 | |
| 5.7 Error Handling . . . . . . . . . . . . . . . . . . . . . . 25 | 5.2 Sequence Number and Retransmission . . . . . . . . . . . . 24 | |
| 5.8 Device ID Choice . . . . . . . . . . . . . . . . . . . . . 25 | 5.3 PANA Security Association . . . . . . . . . . . . . . . . 25 | |
| 5.9 Updating PaC' Address . . . . . . . . . . . . . . . . . . 26 | 5.4 Message Authentication Code . . . . . . . . . . . . . . . 27 | |
| 5.10 Session Lifetime . . . . . . . . . . . . . . . . . . . . 26 | 5.5 Message Validity Check . . . . . . . . . . . . . . . . . . 28 | |
| 5.11 Network Selection . . . . . . . . . . . . . . . . . . . 27 | 5.6 Device ID Choice . . . . . . . . . . . . . . . . . . . . . 29 | |
| 5.12 Separate NAP and ISP Authentication . . . . . . . . . . 27 | 5.7 PaC Updating its IP Address . . . . . . . . . . . . . . . 30 | |
| 5.12.1 Negotiating Separate NAP and ISP Authentication . . 28 | 5.8 Session Lifetime . . . . . . . . . . . . . . . . . . . . . 30 | |
| 5.12.2 Execution of Separate NAP and ISP Authentication . . 28 | 5.9 Network Selection . . . . . . . . . . . . . . . . . . . . 31 | |
| 5.12.3 AAA-Key Calculation . . . . . . . . . . . . . . . . 29 | 5.10 Error Handling . . . . . . . . . . . . . . . . . . . . . 32 | |
| 5.12.4 Re-authentication . . . . . . . . . . . . . . . . . 30 | 6. PANA Headers and Formats . . . . . . . . . . . . . . . . . . 33 | |
| 5.12.5 Example Sequence . . . . . . . . . . . . . . . . . . 30 | 6.1 IP and UDP Headers . . . . . . . . . . . . . . . . . . . . 33 | |
| 6. Security and Mobility . . . . . . . . . . . . . . . . . . . 32 | 6.2 PANA Header . . . . . . . . . . . . . . . . . . . . . . . 33 | |
| 6.1 PANA Security Association Establishment . . . . . . . . . 32 | 6.3 AVP Header . . . . . . . . . . . . . . . . . . . . . . . . 35 | |
| 6.2 Mobility . . . . . . . . . . . . . . . . . . . . . . . . . 32 | 7. PANA Messages, Message Specifications and AVPs . . . . . . . 38 | |
| 7. PANA Headers and Formats . . . . . . . . . . . . . . . . . . 35 | 7.1 PANA Messages . . . . . . . . . . . . . . . . . . . . . . 38 | |
| 7.1 IP and UDP Headers . . . . . . . . . . . . . . . . . . . . 35 | 7.2 PANA Message ABNF Specification . . . . . . . . . . . . . 38 | |
| 7.2 PANA Header . . . . . . . . . . . . . . . . . . . . . . . 35 | 7.2.1 PANA-PAA-Discover (PDI) . . . . . . . . . . . . . . . 40 | |
| 7.3 AVP Header . . . . . . . . . . . . . . . . . . . . . . . . 37 | 7.2.2 PANA-Start-Request (PSR) . . . . . . . . . . . . . . . 41 | |
| 8. PANA Messages, Message Specifications and AVPs . . . . . . . 40 | 7.2.3 PANA-Start-Answer (PSA) . . . . . . . . . . . . . . . 41 | |
| 8.1 PANA Messages . . . . . . . . . . . . . . . . . . . . . . 40 | 7.2.4 PANA-Auth-Request (PAR) . . . . . . . . . . . . . . . 41 | |
| 8.2 Message Specifications . . . . . . . . . . . . . . . . . . 40 | 7.2.5 PANA-Auth-Answer (PAN) . . . . . . . . . . . . . . . . 42 | |
| 8.2.1 PANA-PAA-Discover (PDI) . . . . . . . . . . . . . . . 41 | 7.2.6 PANA-Reauth-Request (PRAR) . . . . . . . . . . . . . . 42 | |
| 8.2.2 PANA-Start-Request (PSR) . . . . . . . . . . . . . . . 41 | 7.2.7 PANA-Reauth-Answer (PRAA) . . . . . . . . . . . . . . 42 | |
| 8.2.3 PANA-Start-Answer (PSA) . . . . . . . . . . . . . . . 41 | 7.2.8 PANA-Bind-Request (PBR) . . . . . . . . . . . . . . . 42 | |
| 8.2.4 PANA-Auth-Request (PAR) . . . . . . . . . . . . . . . 41 | 7.2.9 PANA-Bind-Answer (PBA) . . . . . . . . . . . . . . . . 43 | |
| 8.2.5 PANA-Auth-Answer (PAN) . . . . . . . . . . . . . . . . 42 | 7.2.10 PANA-Ping-Request (PPR) . . . . . . . . . . . . . . 43 | |
| 8.2.6 PANA-Reauth-Request (PRAR) . . . . . . . . . . . . . . 42 | 7.2.11 PANA-Ping-Answer (PPA) . . . . . . . . . . . . . . . 43 | |
| 8.2.7 PANA-Reauth-Answer (PRAA) . . . . . . . . . . . . . . 42 | 7.2.12 PANA-Termination-Request (PTR) . . . . . . . . . . . 44 | |
| 8.2.8 PANA-Bind-Request (PBR) . . . . . . . . . . . . . . . 42 | 7.2.13 PANA-Termination-Answer (PTA) . . . . . . . . . . . 44 | |
| 8.2.9 PANA-Bind-Answer (PBA) . . . . . . . . . . . . . . . . 43 | 7.2.14 PANA-Error-Request (PER) . . . . . . . . . . . . . . 44 | |
| 8.2.10 PANA-Ping-Request (PPR) . . . . . . . . . . . . . . 43 | 7.2.15 PANA-Error-Answer (PEA) . . . . . . . . . . . . . . 44 | |
| 8.2.11 PANA-Ping-Answer (PPA) . . . . . . . . . . . . . . . 43 | 7.2.16 PANA-FirstAuth-End-Request (PFER) . . . . . . . . . 45 | |
| 8.2.12 PANA-Termination-Request (PTR) . . . . . . . . . . . 43 | 7.2.17 PANA-FirstAuth-End-Answer (PFEA) . . . . . . . . . . 45 | |
| 8.2.13 PANA-Termination-Answer (PTA) . . . . . . . . . . . 44 | 7.2.18 PANA-Update-Request (PUR) . . . . . . . . . . . . . 45 | |
| 8.2.14 PANA-Error-Request (PER) . . . . . . . . . . . . . . 44 | 7.2.19 PANA-Update-Answer (PUA) . . . . . . . . . . . . . . 46 | |
| 8.2.15 PANA-Error-Answer (PEA) . . . . . . . . . . . . . . 44 | 7.3 AVPs in PANA . . . . . . . . . . . . . . . . . . . . . . . 46 | |
| 8.2.16 PANA-FirstAuth-End-Request (PFER) . . . . . . . . . 44 | 7.3.1 Cookie AVP . . . . . . . . . . . . . . . . . . . . . . 48 | |
| 8.2.17 PANA-FirstAuth-End-Answer (PFEA) . . . . . . . . . . 45 | 7.3.2 Device-Id AVP . . . . . . . . . . . . . . . . . . . . 48 | |
| 8.2.18 PANA-Update-Request (PUR) . . . . . . . . . . . . . 45 | 7.3.3 EAP-Payload AVP . . . . . . . . . . . . . . . . . . . 49 | |
| 8.2.19 PANA-Update-Answer (PUA) . . . . . . . . . . . . . . 45 | 7.3.4 Failed-AVP AVP . . . . . . . . . . . . . . . . . . . . 49 | |
| 8.3 AVPs in PANA . . . . . . . . . . . . . . . . . . . . . . . 45 | 7.3.5 IP-Address AVP . . . . . . . . . . . . . . . . . . . . 49 | |
| 8.3.1 MAC AVP . . . . . . . . . . . . . . . . . . . . . . . 48 | 7.3.6 ISP-Information AVP . . . . . . . . . . . . . . . . . 49 | |
| 8.3.2 Device-Id AVP . . . . . . . . . . . . . . . . . . . . 49 | 7.3.7 Key-Id AVP . . . . . . . . . . . . . . . . . . . . . . 49 | |
| 8.3.3 Session-Id AVP . . . . . . . . . . . . . . . . . . . . 49 | 7.3.8 MAC AVP . . . . . . . . . . . . . . . . . . . . . . . 50 | |
| 8.3.4 Cookie AVP . . . . . . . . . . . . . . . . . . . . . . 49 | 7.3.9 NAP-Information AVP . . . . . . . . . . . . . . . . . 50 | |
| 8.3.5 Protection-Capability AVP . . . . . . . . . . . . . . 49 | 7.3.10 Nonce AVP . . . . . . . . . . . . . . . . . . . . . 50 | |
| 8.3.6 Termination-Cause AVP . . . . . . . . . . . . . . . . 49 | 7.3.11 Notification AVP . . . . . . . . . . . . . . . . . . 50 | |
| 8.3.7 Result-Code AVP . . . . . . . . . . . . . . . . . . . 50 | 7.3.12 Post-PANA-Address-Configuration (PPAC) AVP . . . . . 51 | |
| 8.3.8 EAP-Payload AVP . . . . . . . . . . . . . . . . . . . 54 | 7.3.13 Protection-Capability AVP . . . . . . . . . . . . . 52 | |
| 8.3.9 Session-Lifetime AVP . . . . . . . . . . . . . . . . . 54 | 7.3.14 Provider-Identifier AVP . . . . . . . . . . . . . . 52 | |
| 8.3.10 Failed-AVP AVP . . . . . . . . . . . . . . . . . . . 54 | 7.3.15 Provider-Name AVP . . . . . . . . . . . . . . . . . 52 | |
| 8.3.11 NAP-Information AVP . . . . . . . . . . . . . . . . 54 | 7.3.16 Result-Code AVP . . . . . . . . . . . . . . . . . . 52 | |
| 8.3.12 ISP-Information AVP . . . . . . . . . . . . . . . . 54 | 7.3.17 Session-Id AVP . . . . . . . . . . . . . . . . . . . 56 | |
| 8.3.13 Provider-Identifier AVP . . . . . . . . . . . . . . 54 | 7.3.18 Session-Lifetime AVP . . . . . . . . . . . . . . . . 56 | |
| 8.3.14 Provider-Name AVP . . . . . . . . . . . . . . . . . 55 | 7.3.19 Termination-Cause AVP . . . . . . . . . . . . . . . 56 | |
| 8.3.15 Key-Id AVP . . . . . . . . . . . . . . . . . . . . . 55 | 8. Retransmission Timers . . . . . . . . . . . . . . . . . . . 58 | |
| 8.3.16 Post-PANA-Address-Configuration (PPAC) AVP . . . . . 55 | 8.1 Transmission and Retransmission Parameters . . . . . . . . 59 | |
| 8.3.17 Nonce AVP . . . . . . . . . . . . . . . . . . . . . 56 | 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . 61 | |
| 8.3.18 IP-Address AVP . . . . . . . . . . . . . . . . . . . 56 | 9.1 PANA UDP Port Number . . . . . . . . . . . . . . . . . . . 61 | |
| 9. PANA Protocol Message Retransmissions . . . . . . . . . . . 57 | 9.2 PANA Multicast Address . . . . . . . . . . . . . . . . . . 61 | |
| 9.1 Transmission and Retransmission Parameters . . . . . . . . 58 | 9.3 PANA Header . . . . . . . . . . . . . . . . . . . . . . . 61 | |
| 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . 60 | 9.3.1 Message Type . . . . . . . . . . . . . . . . . . . . . 61 | |
| 10.1 PANA UDP Port Number . . . . . . . . . . . . . . . . . . 60 | 9.3.2 Flags . . . . . . . . . . . . . . . . . . . . . . . . 62 | |
| 10.2 PANA Multicast Address . . . . . . . . . . . . . . . . . 60 | 9.4 AVP Header . . . . . . . . . . . . . . . . . . . . . . . . 62 | |
| 10.3 PANA Header . . . . . . . . . . . . . . . . . . . . . . 60 | 9.4.1 AVP Code . . . . . . . . . . . . . . . . . . . . . . . 62 | |
| 10.3.1 Message Type . . . . . . . . . . . . . . . . . . . . 60 | 9.4.2 Flags . . . . . . . . . . . . . . . . . . . . . . . . 63 | |
| 10.3.2 Flags . . . . . . . . . . . . . . . . . . . . . . . 61 | 9.5 AVP Values . . . . . . . . . . . . . . . . . . . . . . . . 63 | |
| 10.4 AVP Header . . . . . . . . . . . . . . . . . . . . . . . 61 | 9.5.1 Algorithm Values of MAC AVP . . . . . . . . . . . . . 63 | |
| 10.4.1 AVP Code . . . . . . . . . . . . . . . . . . . . . . 61 | 9.5.2 Post-PANA-Address-Configuration AVP Values . . . . . . 63 | |
| 10.4.2 Flags . . . . . . . . . . . . . . . . . . . . . . . 62 | 9.5.3 Protection-Capability AVP Values . . . . . . . . . . . 63 | |
| 10.5 AVP Values . . . . . . . . . . . . . . . . . . . . . . . 62 | 9.5.4 Result-Code AVP Values . . . . . . . . . . . . . . . . 63 | |
| 10.5.1 Algorithm Values of MAC AVP . . . . . . . . . . . . 62 | 9.5.5 Termination-Cause AVP Values . . . . . . . . . . . . . 64 | |
| 10.5.2 Protection-Capability AVP Values . . . . . . . . . . 62 | 10. Security Considerations . . . . . . . . . . . . . . . . . . 65 | |
| 10.5.3 Termination-Cause AVP Values . . . . . . . . . . . . 62 | 10.1 General Security Measures . . . . . . . . . . . . . . . 65 | |
| 10.5.4 Result-Code AVP Values . . . . . . . . . . . . . . . 62 | 10.2 Discovery . . . . . . . . . . . . . . . . . . . . . . . 66 | |
| 10.5.5 Post-PANA-Address-Configuration AVP Values . . . . . 63 | 10.3 EAP Methods . . . . . . . . . . . . . . . . . . . . . . 67 | |
| 11. Security Considerations . . . . . . . . . . . . . . . . . . 64 | 10.4 Separate NAP and ISP Authentication . . . . . . . . . . 67 | |
| 11.1 General Security Measures . . . . . . . . . . . . . . . 64 | 10.5 Cryptographic Keys . . . . . . . . . . . . . . . . . . . 67 | |
| 11.2 Discovery . . . . . . . . . . . . . . . . . . . . . . . 65 | 10.6 Per-packet Ciphering . . . . . . . . . . . . . . . . . . 68 | |
| 11.3 EAP Methods . . . . . . . . . . . . . . . . . . . . . . 66 | 10.7 PAA-to-EP Communication . . . . . . . . . . . . . . . . 68 | |
| 11.4 Separate NAP and ISP Authentication . . . . . . . . . . 66 | 10.8 Liveness Test . . . . . . . . . . . . . . . . . . . . . 69 | |
| 11.5 Cryptographic Keys . . . . . . . . . . . . . . . . . . . 66 | 10.9 Updating PaC's IP Address . . . . . . . . . . . . . . . 69 | |
| 11.6 Per-packet Ciphering . . . . . . . . . . . . . . . . . . 67 | 10.10 Early Termination of a Session . . . . . . . . . . . . . 69 | |
| 11.7 PAA-to-EP Communication . . . . . . . . . . . . . . . . 67 | 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . 70 | |
| 11.8 Livenes Test . . . . . . . . . . . . . . . . . . . . . . 68 | 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 71 | |
| 11.9 Mobility Optimization . . . . . . . . . . . . . . . . . 68 | 12.1 Normative References . . . . . . . . . . . . . . . . . . . 71 | |
| 11.10 Updating PaC's IP Address . . . . . . . . . . . . . . . 68 | 12.2 Informative References . . . . . . . . . . . . . . . . . . 72 | |
| 11.11 Early Termination of a Session . . . . . . . . . . . . . 69 | ||
| 12. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . 70 | ||
| 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 71 | ||
| 13.1 Normative References . . . . . . . . . . . . . . . . . . . 71 | ||
| 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 (authentication) for | |
| network access authorization. The PaC and the EAP peer are | ||
| co-located in the same access device. | ||
| 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). The PAA and the EAP | |
| authentication and authorization procedure can, according to the | authenticator (and optionally the EAP server) are co-located in | |
| EAP model, be also offloaded to the backend AAA infrastructure. | the same node. Note the authentication and authorization | |
| procedure can, according to the EAP model, be also offloaded to | ||
| the backend AAA infrastructure. | ||
| PANA Session: | PANA Session: | |
| A PANA session begins with the handshake between the PANA Client | A PANA session begins with the handshake between the PANA Client | |
| (PaC) and the PANA Authentication Agent (PAA), and terminates as a | (PaC) and the PANA Authentication Agent (PAA), and terminates as a | |
| result of an authentication failure, a timeout, or an explicit | result of an authentication or liveness test failure, a message | |
| termination message. A fixed session identifier is maintained | delivery failure after retransmissions reach maximum values, | |
| throughout a session. A session cannot be shared across multiple | session lifetime expiration, or an explicit termination message. | |
| network interfaces. | A fixed session identifier is maintained throughout a session. A | |
| session cannot be shared across multiple network interfaces. Only | ||
| one device identifier of the PaC is allowed to be bound to a PANA | ||
| session for simplicity. | ||
| Session Identifier: | Session Identifier: | |
| This identifier is used to uniquely identify a PANA session on the | This identifier is used to uniquely identify a PANA session on the | |
| PAA and PaC. It includes an identifier of the PAA, therefore it | PAA and PaC. It includes an identifier of the PAA, therefore it | |
| cannot be shared across multiple PAAs. It is included in PANA | cannot be shared across multiple PAAs. It is included in PANA | |
| messages to bind the message to a specific PANA session. This | messages to bind the message to a specific PANA session. This | |
| bidirectional identifier is allocated by the PAA following the | bidirectional identifier is allocated by the PAA following the | |
| handshake and freed when the session terminates. | handshake and freed when the session terminates. | |
| PANA Security Association (PANA SA): | PANA Security Association (PANA SA): | |
| A PANA security association is a relationship between the PaC and | A PANA security association is formed between the PaC and the PAA | |
| PAA, formed by the sharing of cryptographic keying material and | by sharing cryptographic keying material and associated context. | |
| associated context. Security associations are duplex. That is, | The formed duplex security association is used to protect the | |
| one security association is needed to protect the bidirectional | bidirectional PANA signaling traffic between the PaC and the PAA. | |
| traffic between the PaC and the PAA. | ||
| Device Identifier (DI): | Device Identifier (DI): | |
| The identifier used by the network as a handle to control and | The identifier used by the network as a handle to control and | |
| police the network access of a client. Depending on the access | police the network access of a device. Depending on the access | |
| technology, this identifier may contain an address that is carried | technology, this identifier may contain an address that is carried | |
| in protocol headers (e.g., IP or link-layer address), or a locally | in protocol headers (e.g., IP or link-layer address), or a locally | |
| 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) | access 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. The 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]. | |
| For additional terminology definitions see the PANA framework | ||
| document [I-D.ietf-pana-framework]. | ||
| 3. Protocol Overview | 3. Protocol Overview | |
| The PANA protocol is run between a client (PaC) and a server (PAA) in | The PANA protocol is run between a client (PaC) and a server (PAA) in | |
| order to perform authentication and authorization for the network | order to perform authentication and authorization for the network | |
| access service. | access service. | |
| The protocol messaging consists of a series of request and responses, | The protocol messaging consists of a series of request and responses, | |
| some of which may be initiated by either ends. Each message can | some of which may be initiated by either ends. Each message can | |
| carry zero or more AVPs as payload. The main payload of PANA is EAP | carry zero or more AVPs as payload. The main payload of PANA is EAP | |
| which performs authentication. PANA helps PaC and PAA establish an | which performs authentication. PANA helps the PaC and PAA establish | |
| EAP session. | an EAP session. | |
| PANA is a UDP-based protocol. It has its own retransmission | PANA is a UDP-based protocol. It has its own retransmission | |
| mechanism to reliably deliver messages. | mechanism to reliably deliver messages. | |
| PANA messages are sent between a PaC and PAA as part of a PANA | PANA messages are sent between the PaC and PAA as part of a PANA | |
| session. A PANA session consists of distinct phases: | session. A PANA session consists of distinct phases: | |
| o Discovery and handshake phase: This is the phase that initiates a | o Discovery and handshake phase: This is the phase that initiates a | |
| new PANA session. The PaC discovers the PAA(s) by either | new PANA session. The PaC discovers the PAA(s) by either | |
| explicitly soliciting advertisements for them or receiving | explicitly soliciting advertisements for them or receiving | |
| unsolicited advertisements. The PaC's answer sent in response to | unsolicited advertisements. The PaC's answer sent in response to | |
| an advertisement starts a new session. | an advertisement starts a new session. | |
| o Authentication phase: Immediately following the handshake phase is | o Authentication and authorization phase: Immediately following the | |
| the EAP execution between the PAA and PaC. The EAP payloads | discovery and handshake phase is the EAP execution between the PAA | |
| (which carry an EAP method inside) is what is used for | and PaC. The EAP payload (which carry an EAP method inside) is | |
| authentication. Authentication phase may involve execution of two | what is used for authentication. The PAA conveys the result of | |
| EAP sessions back-to-back, one for the NAP and one for the ISP. | authentication and authorization to the PaC at the end of this | |
| phase. This phase may involve execution of two EAP sessions | ||
| back-to-back, one for the NAP and one for the ISP. | ||
| o Authorization phase: Following a successful PANA authentication | o Access phase: After a successful authentication and authorization | |
| phase, the PaC gains access to the network and can send and | the host gains access to the network and can send and receive IP | |
| receive IP data traffic through EP. During this phase, the PaC | data traffic through the EP(s). At any time during this phase, | |
| and PAA may optionally ping each other to test liveness of the | the PaC and PAA may optionally ping each other to test liveness of | |
| PANA session on each end. | the PANA session on each end. | |
| o Re-authentication phase: Following an authorization phase, the PAA | o Re-authentication phase: Following the access phase, the PAA must | |
| must initiate re-authentication before the PANA session lifetime | initiate re-authentication before the PANA session lifetime | |
| expires. Again EAP is carried by PANA to perform authentication. | expires. Again EAP is carried by PANA to perform authentication. | |
| This phase may be optionally triggered by both the PaC and the PAA | This phase may be optionally triggered by both the PaC and the PAA | |
| without any respect to the session lifetime. The session moves to | without any respect to the session lifetime. The session moves to | |
| this phase from authorized phase, and returns back there upon | this phase from the access 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 and authorization 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 */ | |
| <----- PANA-Auth-Answer | <----- PANA-Auth-Answer | |
| <----- PANA-Bind-Request /* EAP Success */ | <----- PANA-Bind-Request /* EAP Success */ | |
| -----> PANA-Bind-Answer | -----> PANA-Bind-Answer | |
| // Authorization phase (IP data traffic allowed) | // Access 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 | ||
| an existing session with another PAA. This optimization allows PaC | ||
| achieve quicker authorization without having to run EAP upon movement | ||
| (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 generated by the PAA | ||
| and 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 Provider-Identifier AVP: contains the identifier of a NAP or an | ||
| ISP. | ||
| o Provider-Name AVP: contains a name of a NAP or an ISP. | ||
| 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 | ||
| cryptographic key computations. | ||
| o IP-Address AVP: contains an IP Address of the PaC. | ||
| o Notification AVP: contains a displayable message. | ||
| 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 IP 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 the PaC explicitly | ||
| soliciting for a PAA). Note that this optional feature MAY NOT be | ||
| present in all deployments, therefore the PaC MUST NOT assume its | ||
| availability. The EP-to-PAA notification MAY also be generated in | ||
| response to receiving a link-up event notification on the EP | ||
| [I-D.ietf-dna-link-information]. | ||
| When a PaC receives a PANA-Start-Request message from a PAA, it | When the 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 the | |
| authentication phase. The answer message copies the sequence number. | authentication and authorization phase. | |
| There can be multiple PAAs on the link and a PaC may receive multiple | There can be multiple PAAs on the link and the PaC may receive | |
| PANA-Start-Request messages from those PAAs. The authentication and | multiple PANA-Start-Request messages from those PAAs. The | |
| authorization result does not depend on which PAA is chosen by the | authentication and authorization result does not depend on which PAA | |
| PaC. By default the PaC MAY choose the PAA that sent the first | is chosen by the PaC. By default the PaC MAY choose the PAA that | |
| response. | sent the first 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 | random value generated by the PAA. The random value is referred to | |
| sequence number. The cookie is used for preventing the PAA from | as a cookie. The cookie is used for preventing the PAA from resource | |
| resource consumption DoS attacks by blind attackers. The cookie is | consumption DoS attacks by blind attackers which bombard the PAA with | |
| computed in such a way that it does not require any per-session state | PANA-PAA-Discover messages. By relying on a cookie mechanism the PAA | |
| maintenance on the PAA in order to verify the cookie returned in a | can avoid per-PaC state creation until after the PaC can produce the | |
| PANA-Start-Answer message. The exact algorithms and syntax used for | same cookie in its PANA-Start-Answer message. In order to do that, | |
| generating cookies does not affect interoperability and hence is not | the cookie MUST be computed in such a way that it does not require | |
| specified here. An example algorithm is described below. | any per-session state maintenance on the PAA in order to verify the | |
| cookie returned in the PANA-Start-Answer message. The PAA discovery | ||
| that takes advantage of cookies is called "stateless PAA discovery". | ||
| The exact algorithms and syntax used by the PAA to generate 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. The | |
| device identifier of the PaC can be extracted from a link-layer or IP | ||
| header of PANA messages. | ||
| 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 and authorization | |
| MUST silently discard the received message. | phase. Otherwise, it MUST silently discard the received message. | |
| Initial EAP Request MAY be optionally carried by the | The initial EAP Request message 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 since transmission of an EAP Request message creates a | |
| state at EAP layer. See [I-D.ietf-eap-statemachine] for more | ||
| information on the EAP state machine and the allocation of state | ||
| information in the respective protocol steps. | ||
| 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 10 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 | The PANA-Start-Request/Answer exchange is needed before entering the | |
| peer or EAP (pass-through) authenticator. | authentication and authorization phase even when the PaC is | |
| pre-configured with the IP address of the PAA and the | ||
| The PANA-Start-Request/Answer exchange is needed before entering an | PANA-PAA-Discover message is unicast. | |
| authentication phase even when the PaC is pre-configured with PAAs IP | ||
| 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 the 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 fresh | |
| SA. | PANA_MAC_KEY (see Section 5.3) which is a transient session key in | |
| the EAP key hierarchy [I-D.ietf-eap-keying] and is used only in the | ||
| PANA protocol. A Nonce AVP MUST be included in the | ||
| PANA-Start-Request and PANA-Start-Answer messages. The nonces are | ||
| used to establish a PANA SA. | ||
| A PANA-Start-Request message that carries a Cookie AVP is never | A PANA-Start-Request message in stateless PAA discovery MUST NOT be | |
| retransmitted. A PANA-Start-Request message that does not carry a | retransmitted as this voids the statelessness on the PAA. Instead, | |
| Cookie AVP is retransmitted based on timer. A PANA-Start-Answer | the PaC MUST retransmit the PANA-PAA-Discover message 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 | |
| PAA discovery by the presence of Cookie AVP. The PANA-Start-Request | ||
| message MUST be retransmitted instead of the PANA-Start-Answer | ||
| message when stateless PAA discovery is not 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 the PANA-Start-Request message based on a timer, | |
| respond in time (message was lost for example). If the PAA had sent | if the PaC doesn't respond in time (the message was lost for | |
| a PANA-Start-Request message without creating a state for the PaC | example). If the PAA had sent a PANA-Start-Request message without | |
| (i.e., a Cookie AVP was included in the message), then it SHOULD | creating a state for the PaC (i.e., a Cookie AVP was included in the | |
| answer to the PANA-PAA-Discover message. | message), then it 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 with | |
| is triggered by data traffic. | traffic-driven PAA discovery. | |
| PaC PAA Message(seqno)[AVPs] | PaC PAA Message(sequence number)[AVPs] | |
| ------------------------------------------------------ | ------------------------------------------------------ | |
| -----> PANA-PAA-Discover(0) | -----> PANA-PAA-Discover(0) | |
| <----- 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 the authentication and | |
| authorization phase) | ||
| Figure 2: Example Sequence for Discovery and Handshake Phase when | Figure 2: Example sequence for the discovery and handshake phase when | |
| PANA-PAA-Discover is sent by PaC | PANA-PAA-Discover is sent by the PaC | |
| PaC EP PAA Message(seqno)[AVPs] | PaC EP PAA Message(sequence number)[AVPs] | |
| ------------------------------------------------------ | ------------------------------------------------------ | |
| ---->o (Data packet arrival or L2 trigger) | ---->o (Data packet arrival or L2 trigger) | |
| ------> PAA-to-EP protocol, or another mechanism | ------> PAA-to-EP protocol, or another mechanism | |
| <------------ PANA-Start-Request(x)[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 the authentication and | |
| authorization phase) | ||
| Figure 3: Example Sequence for Discovery and Handshake when discovery | Figure 3: Example sequence for the discovery and handshake phase with | |
| is triggered by data traffic | traffic-driven PAA discovery | |
| 4.2 Authentication Phase | 4.3 Authentication and Authorization Phase | |
| The main task in authentication phase is to carry EAP messages | The main task of the authentication and authorization phase is to | |
| between the PaC and the PAA. EAP Request and Response messages are | carry EAP messages between the PaC and the PAA. EAP Request and | |
| carried in PANA-Auth-Request messages. PANA-Auth-Answer messages are | Response messages are carried in PANA-Auth-Request messages. | |
| simply used to acknowledge receipt of the requests. As an | PANA-Auth-Answer messages are simply used to acknowledge receipt of | |
| optimization, a PANA-Auth-Answer message MAY include the EAP | the requests. As an optimization, a PANA-Auth-Answer message MAY | |
| Response. Another optimization allows optionally carrying the first | include the EAP Response message. This optimization MAY not be used | |
| EAP Request/Response in PANA-Start-Request/Answer message as | when it takes time to generate the EAP Response message (due to, | |
| described in Section 4.1 | e.g., intervention of human input), in which case returning an | |
| EAP-Auth-Answer message without piggybacking an EAP Response message | ||
| can avoid unnecessary retransmission of the PANA-Auth-Request | ||
| message. Another optimization allows optionally carrying the first | ||
| EAP Request/Response message in PANA-Start-Request/Answer message as | ||
| 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 the 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 separate NAP and | ||
| ISP authentication. | ||
| PaC PAA Message(seqno)[AVPs] | The result of PANA authentication is carried in a PANA-Bind-Request | |
| message sent from the PAA to the PaC. This message carries the final | ||
| EAP authentication result (whether it is the second EAP | ||
| authentication result of NAP and ISP separate authentication, or the | ||
| sole EAP authentication result) 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 the authentication and authorization phase (no separate | ||
| authentication). | ||
| PaC PAA Message(sequence number)[AVPs] | ||
| -------------------------------------------------------------------- | -------------------------------------------------------------------- | |
| (continued from discovery and handshake phase) | (continued from the 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, Result-Code, EAP{Success}, Device-Id, | |
| Lifetime, Protection-Cap., PPAC, MAC] | Key-Id, IP-Address, 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, Key-Id, PPAC, MAC] | |
| Figure 4: Example Sequence in Authentication Phase | Figure 4: Example sequence for the authentication and authorization | |
| 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 and authorization phase and the keys are | |
| PANA-FirstAuth-End-Request and PANA-FirstAuth-End-Answer and/or | successfully derived, the PANA message that carries the EAP Success | |
| PANA-Bind-Request and PANA-Bind-Answer messages, and all subsequent | message (i.e., a PANA-FirstAuth-End-Request or a PANA-Bind-Request | |
| PANA messages MUST contain a MAC AVP. | message) and any subsequent 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 message MUST contain the device identifier in a | |
| EP(s) in Device-Id AVP(s) when they are either MAC or IP address(es), | Device-Id AVP for each EP if a Protection-Capability AVP is included | |
| and the IP address of the PAA in an IP-Address AVP. PANA-Bind-Answer | in the message. Otherwise, the message SHOULD contain the device | |
| SHOULD contain PaC's device identifier in a Device-Id AVP when it is | identifier in a Device-Id AVP for each EP when a link-layer or IP | |
| already presented with that of EP(s). The PaC MUST use the same type | address is used as the device identifier of the PaC. The | |
| of device identifier as contained in the PANA-Bind-Request message. | PANA-Bind-Request message MUST also contain the IP address of the PAA | |
| This exchange when protected by a MAC AVP prevents man-in-the-middle | in an IP-Address AVP. The PANA-Bind-Answer message MUST contain the | |
| attacks. The PANA-Bind-Request message MAY also contain a | PaC's device identifier in a Device-Id AVP when it is already | |
| Protection-Capability AVP to indicate if link-layer or network-layer | presented with that of EP(s) in the request with using the same type | |
| ciphering should be initiated after PANA. No link layer or network | of device identifier as contained in the request. If the | |
| layer specific information is included in the Protection-Capability | PANA-Bind-Answer message sent from the PaC does not contain a | |
| AVP. When the information is preconfigured on the PaC and the PAA | Device-Id AVP with the same device identifier type contained in the | |
| this AVP can be omitted. It is assumed that at least PAA is aware of | request, the PAA sends a PANA-Error-Request message with a | |
| PANA_MISSING_AVP result code, and wait for a PANA-Error-Answer | ||
| message to terminate the session. The PANA-Bind-Request message with | ||
| a PANA_SUCCESS result code MUST also contain a Protection-Capability | ||
| AVP if link-layer or network-layer ciphering is enabled after the | ||
| authentication and authorization phase. The PANA-Bind-Request | ||
| message MAY also contain a Protection-Capability AVP to indicate if | ||
| link-layer or network-layer ciphering should be enabled after the | ||
| authentication and authorization phase. No link-layer or | ||
| network-layer specific information is included in the | ||
| Protection-Capability AVP. It is assumed that the 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 with a PANA_SUCCESS | |
| Post-PANA-Address-Configuration AVP, which helps PAA to inform PaC | result code MUST include a Post-PANA-Address-Configuration (PPAC) | |
| about whether a new IP address MUST be configured and the available | AVP, which helps the PAA to inform the PaC about whether a new IP | |
| methods to do so. PaC MUST include a PPAC AVP in order to indicate | address MUST be configured and the available methods to do so. In | |
| its choice of method when there is a match between the methods | this case, the PaC MUST include a PPAC AVP in the PANA-Bind-Answer | |
| offered by the PAA and the methods available on the PaC. When there | message in order to indicate its choice of method when there is a | |
| is no match, a PPAC AVP MUST NOT be included and the Result-Code AVP | match between the methods offered by the PAA and the methods | |
| MUST be set to PANA_PPAC_CAPABILITY_UNSUPPORTED in the | available on the PaC. When there is no match, the PaC MUST send a | |
| PANA-Bind-Answer message. | PANA-Error-Request message with a PANA_PPAC_CAPABILITY_UNSUPPORTED | |
| result code and terminate the PANA session. | ||
| 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 | |
| layer. In any case, a more appropriate way is to rely on a timeout | lower-layer. In any case, a more appropriate way is to rely on a | |
| on the PaC. | timeout 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 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 a | |
| 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), the | |
| message exchange MUST be protected with a MAC AVP and with carrying a | PANA-Bind-Request and PANA-Bind-Answer messages MUST be protected | |
| Key-Id AVP. The AAA-Key and the PANA session MUST be deleted after | with a MAC AVP and carry a Key-Id AVP. The AAA-Key and the PANA | |
| the PANA-Bind message exchange. | session MUST be deleted immediately after the PANA-Bind message | |
| exchange. | ||
| 4.3 Authorization Phase | 4.4 Access Phase | |
| Once an authentication phase or a re-authentication phase | Once the authentication and authorization phase or the | |
| successfully completes, the PaC gains access to the network and can | re-authentication phase successfully completes, the PaC gains access | |
| send and receive IP data traffic through EP and the PANA session | to the network and can send and receive IP data traffic through the | |
| enters an authorization phase. In this phase, PANA-Ping-Request and | EP(s) and the PANA session enters the access phase. In this phase, | |
| PANA-Ping-Answer messages are used for testing the liveness of the | PANA-Ping-Request and PANA-Ping-Answer messages can be used for | |
| PANA session on the PANA peer. Both the PaC and the PAA are allowed | testing the liveness of the PANA session on the PANA peer. Both the | |
| to send a PANA-Ping-Request message to the communicating peer | PaC and the PAA are allowed to send a PANA-Ping-Request message to | |
| whenever they need to make sure the availability of the session on | the communicating peer whenever they need to make sure the | |
| the peer and expect the peer to return a PANA-Ping-Answer message. | availability of the session on the peer and expect the peer to return | |
| Both PANA-Ping-Request and PANA-Ping-Answer messages MUST be | a PANA-Ping-Answer message. Both PANA-Ping-Request and | |
| protected with a MAC AVP when a PANA SA is available. | PANA-Ping-Answer messages MUST be 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 | |
| of timers for this purpose. | of timers for this purpose. | |
| Figure 5 and Figure 6 show liveness tests as they are initiated by | Figure 5 and Figure 6 show liveness tests as they are initiated by | |
| the PaC and the PAA respectively. | the PaC and the PAA respectively. | |
| PaC PAA Message(seqno)[AVPs] | PaC PAA Message(sequence number)[AVPs] | |
| ------------------------------------------------------ | ------------------------------------------------------ | |
| -----> PANA-Ping-Request(q)[Session-Id, MAC] | -----> PANA-Ping-Request(q)[Session-Id, MAC] | |
| <----- PANA-Ping-Answer(q)[Session-Id, MAC] | <----- PANA-Ping-Answer(q)[Session-Id, MAC] | |
| 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(sequence number)[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 | The PANA session in the access phase can enter the re-authentication | |
| re-authentication phase to extend the current session lifetime by | phase to extend the current session lifetime by re-executing EAP. | |
| re-executing EAP. Once the re-authentication phase successfully | Once the re-authentication phase successfully completes, the session | |
| completes, the session re-enters the authorization phase. Otherwise, | re-enters the access phase. Otherwise, the session is deleted. | |
| the session is deleted. | ||
| When a PaC wants to initiate re-authentication, it sends a | When the 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 | |
| PAA. If the PAA already has an established PANA session for the PaC | PAA. If the PAA already has an established PANA session for the PaC | |
| with the matching identifier, it MUST first respond with a | with the matching session identifier, it MUST first respond with a | |
| PANA-Reauth-Answer, followed by a PANA-Auth-Request that starts a new | PANA-Reauth-Answer message, followed by a PANA-Auth-Request that | |
| EAP authentication. If PAA cannot identify the session, it MUST | starts a new EAP authentication. If the PAA cannot identify the | |
| respond with a PANA-Error-Request with the error code | session, it MAY respond with a PANA-Error-Request message with a | |
| PANA_UNKNOWN_SESSION_ID. PANA-Reauth-Request/Answer messages MUST | result code PANA_UNKNOWN_SESSION_ID. Transmission of this error | |
| contain a MAC AVP when PANA SA is available. | request is made optional in case this behavior is leveraged for a DoS | |
| attack on the PAA. | ||
| PaC may receive a PANA-Auth-Request before receiving the answer to | The PaC may receive a PANA-Auth-Request before receiving the answer | |
| its outstanding PANA-Reauth-Request. This condition can arise due to | to its outstanding PANA-Reauth-Request. This condition can arise due | |
| packet re-ordering or a race condition between the PaC and PAA when | to packet re-ordering or a race condition between the PaC and PAA | |
| they both attempt to engage in re-authentication. PaC MUST keep | when they both attempt to engage in re-authentication. The PaC MUST | |
| discarding the received PANA-Auth-Requests until it receives the | keep discarding the received PANA-Auth-Requests until it receives the | |
| answer to its request. | answer to its request. | |
| When the PAA initiates re-authentication, it sends a | When the PAA initiates re-authentication, it sends a | |
| PANA-Auth-Request message containing the session identifier for the | PANA-Auth-Request message containing the session identifier for the | |
| PaC to enter an authentication phase. PAA SHOULD initiate EAP | PaC to enter the re-authentication phase. The PAA SHOULD initiate | |
| authentication before the current session lifetime expires. | EAP re-authentication before the current session lifetime expires. | |
| Re-authentication of an on-going PANA session MUST maintain the | Re-authentication of an on-going PANA session MUST maintain the | |
| existing sequence numbers. | existing sequence numbers. | |
| For any re-authentication, if there is an established PANA SA, | For any re-authentication, if there is an established PANA SA, | |
| PANA-Auth-Request and PANA-Auth-Answer messages MUST be protected by | PANA-Auth-Request and PANA-Auth-Answer messages MUST be protected by | |
| adding a MAC AVP to each message. Any subsequent EAP-based | adding a MAC AVP to each message. Any subsequent EAP authentication | |
| authentication MUST be performed with the same ISP and NAP that was | MUST be performed with the same ISP and NAP that was selected during | |
| selected during the initial authentication. An example sequence for | the discovery and handshake phase. An example sequence for | |
| a re-authentication initiated by a PaC is shown in Figure 7. | re-authentication phase initiated by the PaC is shown in Figure 7. | |
| PaC PAA Message(seqno)[AVPs] | PaC PAA Message(sequence number)[AVPs] | |
| ------------------------------------------------------ | ------------------------------------------------------ | |
| -----> PANA-Reauth-Request(q) | -----> PANA-Reauth-Request(q) | |
| [Session-Id, MAC] | [Session-Id, MAC] | |
| <----- PANA-Reauth-Answer(q) | <----- PANA-Reauth-Answer(q) | |
| [Session-Id, MAC] | [Session-Id, MAC] | |
| <----- PANA-Auth-Request(p) | <----- PANA-Auth-Request(p) | |
| [Session-Id, EAP{Request}, MAC] | [Session-Id, EAP{Request}, MAC] | |
| -----> PANA-Auth-Answer(p) // No piggybacking EAP-Response | -----> PANA-Auth-Answer(p) // No piggybacking EAP Response | |
| [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, Result-Code, 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 the re-authentication phase 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 | 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 between the PaC and the PAA, all | |
| the PAA, all messages exchanged during the termination phase MUST be | messages exchanged during the termination phase MUST be protected | |
| protected with a MAC AVP. When the sender of the | with a MAC AVP. When the sender of the PANA-Termination-Request | |
| PANA-Termination-Request receives a valid acknowledgment, all states | message receives a valid acknowledgment, all states maintained for | |
| maintained for the PANA session MUST be deleted immediately. | the PANA session MUST be deleted immediately. | |
| PaC PAA Message(seqno)[AVPs] | PaC PAA Message(sequence number)[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 the termination phase triggered by PaC | |
| 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 the | |
| authentication and authorization 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 the 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 the | |
| (Attribute Value Pairs). A brief description of the AVPs defined in | authentication and authorization phase is designed only for separate | |
| this document is listed below: | 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. | ||
| 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. | ||
| o EAP AVP: contains an EAP PDU. | 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 PANA header | ||
| of the PANA-Start-Request message. | ||
| o MAC AVP: contains a Message Authentication Code that protects a | If the S-flag of the received PANA-Start-Request message is set, the | |
| PANA message PDU. | 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 Termination-Cause AVP: contains the reason of session termination. | If the S-flag in the PANA-Start-Answer message is not set, only one | |
| authentication is performed (ISP-only) and the processing occurs as | ||
| described in Section 4.2. | ||
| o Result-Code AVP: contains information about the protocol execution | When the S-flag is set in a PANA-Start-Request message, the initial | |
| results. | EAP Request message MUST NOT be carried in the PANA-Start-Request | |
| message. (If the initial EAP Request message were contained in the | ||
| PANA-Start-Request message during the S-flag negotiation, the PaC | ||
| cannot tell whether the EAP Request message is for NAP authentication | ||
| or ISP authentication.) | ||
| o Session-Id AVP: contains the session identifier value. | 4.7.2 Execution of Separate NAP and ISP Authentication | |
| o Session-Lifetime AVP: contains the duration of authorized access. | 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 Failed-AVP: contains the offending AVP that caused a failure. | o The S-flag of PANA-Auth-Request and PANA-Auth-Answer messages MUST | |
| be set. | ||
| o NAP-Information AVP, ISP-Information AVP: contains the information | o An EAP Success/Failure message is carried in a | |
| on a NAP and an ISP, respectively. | 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 Key-Id AVP: contains a AAA-Key identifier. | 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 PPAC AVP: Post-PANA-Address-Configuration AVP. Conveys the list | o The PAA determines the execution order of NAP authentication and | |
| of IP address configuration methods available when sent by the | ISP authentication. In this case, the PAA can indicate which | |
| PAA, and the chosen method when sent by the PaC. | 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 Nonce AVP: contains a randomly chosen value. | When the PaC and PAA have negotiated in the discovery and handshake | |
| phase to perform separate NAP and ISP authentication, and the | ||
| lower-layer is insecure, the two EAP authentication methods used in | ||
| the separate authentication MUST be capable of deriving keys | ||
| (AAA-Key). | ||
| o IP-Address AVP: contains an IP Address of a PaC. | 4.7.3 AAA-Key Calculation | |
| 5.2 Transport Layer | 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 the access 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 authentication succeed. See Section 5.3 for how to | ||
| derive the AAA-Key. | ||
| 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. The PANA-PAA-Discover message MAY be unicast when the PaC | |
| address of the PAA. | knows the IP 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 | The PaC and PAA maintain two sequence numbers: the next one to be | |
| for a request it initiates and the next one it expects to see in a | used for a request it initiates and the next one it expects to see in | |
| request from the other end. These sequence numbers are 32-bit | a 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 | |
| number as the corresponding request. Retransmissions maintain the | number as the corresponding request. Retransmissions reuse the | |
| same sequence number. | sequence number contained in the original packet. | |
| The initial sequence numbers (ISN) are randomly picked by PaC and PAA | The initial sequence numbers (ISN) are randomly picked by the PaC and | |
| as they send their very first request messages. PANA-PAA-Discover | PAA as they send their very first request messages. | |
| message carries sequence number 0. | PANA-PAA-Discover message carries sequence number 0. | |
| When a request message is received, it is considered valid in terms | When a request message is received, it is considered valid in terms | |
| of sequence numbers if and only if its sequence number matches the | of sequence numbers if and only if its sequence number matches the | |
| expected value. This check does not apply to PANA-PAA-Discover, and | expected value. This check does not apply to the PANA-PAA-Discover, | |
| the very first request messages. | PANA-Start-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 messages are retransmitted based on a timer until a response is | |
| received (in which case the retransmission timer is stopped) or the | received (in which case the retransmission timer is stopped) or the | |
| number of retransmission reaches the maximum value (in which case the | number of retransmission reaches the maximum value (in which case the | |
| PANA session MUST be deleted immediately). The retransmission timer | 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 | ||
| count parameters. | ||
| PaC and PAA MUST respond to duplicate requests. Last transmitted | The initial discovery and handshake phase requires special handling. | |
| PANA answer MAY be cached in case it is not received by the peer and | The PaC MUST retransmit the PANA-PAA-Discover message if a subsequent | |
| that generates a retransmission of the last request. When available, | PANA-Start-Request message is not received in time. Even though a | |
| a cached answer can be used instead of fully processing the | PANA-Start-Request message is received, the PANA-PAA-Discover message | |
| retransmitted request and forming a new answer from scratch. | may still have to be retransmitted. This is because stateless PAA | |
| discovery requires one time transmission of a solicited | ||
| PANA-Start-Request message. The PAA MUST NOT start a timer and | ||
| retransmit the request in order to avoid state creation. If the | ||
| received PANA-Start-Request message included a Cookie AVP (an | ||
| indication of stateless PAA discovery), the PaC MUST retransmit the | ||
| PANA-PAA-Discover message until the first PANA-Auth-Request message | ||
| is received. Otherwise, the PaC can rely on the PAA to retransmit | ||
| the PANA-Start-Request message as soon as the PaC receives the first | ||
| one (i.e., the PaC can stop sending the PANA-PAA-Discover message). | ||
| The retransmission timers SHOULD be calculated as described in | ||
| [RFC2988] to provide congestion control. See Section 8 for default | ||
| timer and maximum retransmission count parameters. | ||
| The PaC and PAA MUST respond to duplicate requests. The last | ||
| transmitted answer MAY be cached in case it is not received by the | ||
| peer and that generates a retransmission of the last request. When | ||
| available, the cached answer can be used instead of fully processing | ||
| the 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 | ||
| sessions are performed in sequence in the PANA authentication and | ||
| authorization 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 in the PANA re-authentication phase, | ||
| 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 | ||
| the Key-Id AVP value, a simple method is to use monotonically | ||
| increasing numbers. | ||
| The PANA session lifetime is bounded by the lifetime granted by the | ||
| authentication server (same as the AAA-Key lifetime). The lifetime | ||
| of the PANA SA (hence the PANA_MAC_KEY) is the same as the lifetime | ||
| of the PANA session. The created PANA SA is deleted when the | ||
| corresponding PANA session is deleted. | ||
| 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 when | ||
| IP address is used as the device identifier) | ||
| * 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 separate NAP and ISP 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 the 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 21, line 50: | ||
| When a PANA message is received, the message is considered to be | When a PANA message is received, the message is considered to be | |
| invalid at least when one of the following conditions are not met: | invalid at least when one of the following conditions are not met: | |
| o The IP Hop Limit (or TTL) field has a value of 255, i.e., the | o The IP Hop Limit (or TTL) field has a value of 255, i.e., the | |
| packet could not possibly have been forwarded by a router. | packet could not possibly have been forwarded by a router. | |
| o Each field in the message header contains a valid value including | o Each field in the message header contains a valid value including | |
| sequence number, message length, message type, version number, | sequence number, message length, message type, version number, | |
| flags, etc. | flags, etc. | |
| o When a device identifier of the PaC is bound to the PANA session, | ||
| it matches the device identifier carried in MAC or or IP header, | ||
| or other locally-significant identifier provided by the | ||
| lower-layers (e.g., circuit ID) unless the message is a | ||
| PANA-Update-Request with an IP-Address AVP. | ||
| o The message type is one of the expected types in the current | o The message type is one of the expected types in the current | |
| state. Specifically the following messages are unexpected and | state. Specifically the following messages are unexpected and | |
| invalid: | invalid: | |
| * In discovery and handshake phase: | * In the discovery and handshake phase: | |
| + PANA-Termination-Request and PANA-Ping-Request. | + PANA-Termination-Request and PANA-Ping-Request. | |
| + PANA-Bind-Request. | + PANA-Bind-Request. | |
| + PANA-Update-Request. | + PANA-Update-Request. | |
| * In authentication phase: | + PANA-Reauth-Request. | |
| + PANA-Error-Request. | ||
| * In the authentication and authorization phase and the | ||
| re-authentication phase: | ||
| + 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: | * In the access 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 the termination phase: | |
| + PANA-PAA-Discover. | + PANA-PAA-Discover. | |
| + All requests but PANA-Termination-Request. | + All requests but PANA-Termination-Request. | |
| o The message payload contains a valid set of AVPs allowed for the | o The message payload contains a valid set of AVPs allowed for the | |
| message type and there is no missing AVP that needs to be included | message type and there is no missing AVP that needs to be included | |
| in the payload. | in the payload. | |
| o Each AVP is decoded correctly. | o Each AVP is decoded correctly. | |
| o When a MAC AVP is included, the AVP value matches the MAC value | o When a MAC AVP is included, the AVP value matches the MAC value | |
| computed against the received message. | computed against the received message. | |
| o When a Device-Id AVP is included, the AVP is valid if the device | o When a Device-Id AVP is included, the AVP is valid if the device | |
| identifier type contained in the AVP is supported (check performed | identifier type contained in the AVP is supported (check performed | |
| by both PaC and PAA) and is the requested one (check performed by | by both the PaC and the PAA) and is the requested one (check | |
| PAA only) and the device identifier value contained in the AVP | performed by the PAA only) and the device identifier value | |
| matches the value extracted from the lower-layer encapsulation | contained in the AVP matches the value extracted from the | |
| header corresponding to the device identifier type contained in | lower-layer encapsulation header corresponding to the device | |
| the AVP (check performed by PAA only). Note that a Device-Id AVP | identifier type contained in the AVP (check performed by the PAA | |
| carries the PaC's device identifier in messages from PaC to PAA | only). Note that a Device-Id AVP carries the device identifier of | |
| and EP(s)' device identifier in messages from PAA to PaC. | the PaC in messages from the PaC to the PAA and the device | |
| identifier(s) of the EP(s) in messages from the PAA to the 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 | identifiers when available. If non-IPsec access control is enabled, | |
| MAC address is not available, device ID exchange does not occur | and a 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 messages. | |
| 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 a | |
| the result code PANA_INVALID_IP_ADDRESS. Otherwise, the PAA MUST | result code PANA_INVALID_IP_ADDRESS. Otherwise, the PAA MUST update | |
| update the PANA session with the new PaC address and return a | 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 network access authorization succeeds. The Session-Lifetime AVP | ||
| 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 | ||
| when included in other PANA messages. When there are multiple EAP | ||
| 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 authentication and authorization phase determines the PANA | |
| manage PANA-related state. PaC does not have to perform any actions | session lifetime when the network access authorization succeeds. The | |
| when the lifetime expires, other than optionally purging local state. | Session-Lifetime AVP MAY be optionally included in the | |
| PANA-Bind-Request message to inform the PaC about the valid lifetime | ||
| of the PANA session. It MUST be ignored when included in other PANA | ||
| messages. | ||
| PAA SHOULD initiate EAP authentication before the current session | The lifetime is a non-negotiable parameter that can be used by the | |
| lifetime expires. | PaC to manage PANA-related state. The PaC does not have to perform | |
| any actions when the lifetime expires, other than optionally purging | ||
| local state. The PAA SHOULD initiate the PANA re-authentication | ||
| phase before the current session lifetime expires. | ||
| PaC and PAA MAY optionally rely on lower-layer indications to | The 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. A PANA peer can use the PANA-Ping exchange 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 a PANA-Ping-Request message is taken locally and does not | |
| coordination between the peers. | require coordination between the peers. | |
| 5.11 Network Selection | ||
| 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 | ||
| 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 | ||
| ISP-Information AVP in the PANA-Start-Answer message. When a AAA | ||
| backend is used, the identity of the destination AAA server or realm | ||
| MUST be determined based on the explicitly chosen ISP. When the | ||
| ISP-Information AVP is not present, the access network MAY rely on | ||
| the client identifier carried in the EAP authentication method to | ||
| make this determination. The PaC can choose an ISP and contain an | ||
| ISP-Information AVP for the chosen ISP in a PANA-Start-Answer message | ||
| even when there is no ISP-Information AVP contained in the | ||
| PANA-Start-Request message. | ||
| 5.12 Separate NAP and ISP Authentication | ||
| 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 | When separate ISP and NAP authentication is performed, it is possible | |
| that different authorization lifetime values are associated with the | that different authorization lifetime values are associated with the | |
| two authentications. In this case, the smaller authorization | two EAP authentication sessions. In this case, the smaller | |
| lifetime value MUST be used for calculating the PANA Session-Lifetime | authorization lifetime value MUST be used for calculating the PANA | |
| value. As a result, when entering a re-authentication phase, both | Session-Lifetime value. As a result, both NAP and ISP authentication | |
| NAP and ISP authentication will be performed in the same | will be performed in the re-authentication phase. | |
| 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 | ||
| is available, PANA needs to protect itself against a number of | ||
| attacks. The device identifier that is used during the | ||
| authentication needs to be verified at the end of the authentication | ||
| to prevent service theft and DoS attacks. Additionally, a free | ||
| loader should be prevented from spoofing data packets by using the | ||
| device identifier of an already authorized legitimate client. Both | ||
| of these requirements necessitate generation of a security | ||
| association between the PaC and the PAA at the end of the | ||
| authentication. This can only be done when the authentication method | ||
| 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 | ||
| necessary) and is subsequently input to the creation of the PANA SA. | ||
| Applying the PANA SA to the messages exchanged during the final PANA | ||
| handshake provides implicit key confirmation to both the PAA and the | ||
| PaC. Implicit key confirmation shows both, the PaC and the PAA, that | ||
| they possess the unique and fresh session key. | ||
| Protecting the final PANA handshake also ensures that the device | ||
| identifier (and other information) cannot be modified by an | ||
| adversary. Further usage of the keying material is discussed in | ||
| [I-D.ietf-pana-framework]. | ||
| 6.2 Mobility | ||
| A mobile PaC's network access authentication performance can be | ||
| enhanced by deploying a context-transfer-based mechanism, where some | ||
| session attributes are transferred from the previous PAA to the new | ||
| one in order to avoid performing a full EAP authentication (reactive | ||
| approach). Additional mechanisms that are based on the proactive AAA | ||
| state establishment at one or more candidate PAAs may be developed in | ||
| the future [I-D.irtf-aaaarch-handoff]. The details of a | ||
| context-transfer-based mechanism is provided in this section. | ||
| Upon changing its point of attachment, a PaC that wants to quickly | ||
| resume its ongoing PANA session without running EAP MAY send its | ||
| unexpired PANA session identifier in its PANA-Start-Answer message. | ||
| Along with the Session-Id AVP, a MAC AVP MUST be included in this | ||
| message. The MAC AVP is computed by using the PANA_MAC_KEY shared | ||
| between the PaC and its previous PAA that has an unexpired PANA | ||
| session with the PaC. This action signals PaC's desire to perform | ||
| the mobility optimization. In the absence of a Session-Id AVP in | ||
| this message, the PANA session takes its usual course (i.e., | ||
| EAP-based authentication is performed). | ||
| If a PAA receives a session identifier in the PANA-Start-Answer | 5.9 Network Selection | |
| message, and it is configured to enable this optimization, it SHOULD | ||
| retrieve the PANA session attributes from the previous PAA. Current | ||
| PAA determines the identity of the previous PAA by looking at the | ||
| DiameterIdentity part of the PANA session identifier. The MAC AVP | ||
| can only be verified by the previous PAA, therefore a copy of the | ||
| PANA message SHOULD be provided to the previous PAA. The mechanism | ||
| required to send a copy of the PANA-Start-Answer message from current | ||
| PAA to the previous PAA, and retrieve the session attributes is | ||
| outside the scope of PANA protocol. The Context Transfer Protocol | ||
| [I-D.ietf-seamoby-ctp] might be useful for this purpose. | ||
| When the previous or current PAA is not configured to enable this | The PANA discovery and handshake phase allows the PaC to learn | |
| optimization, the current PAA can not retrieve the PANA session | identity of the NAP and a list of ISPs that are available through the | |
| attributes, or the PANA session has already expired (i.e., session | NAP. The PaC can not only learn the ISPs but also convey the | |
| lifetime is zero), the PAA MUST send the PANA-Auth-Request message | selected ISP explicitly during the handshake phase. The PAA is | |
| with a new session identifier and let the PANA exchange take its | assumed to be pre-configured with the information of ISPs that are | |
| usual course. This action will engage EAP-based authentication and | served by the NAP. | |
| create a fresh PANA session from scratch. | ||
| In case the current PAA can retrieve the on-going PANA session | A PANA-Start-Request message sent from the PAA MAY contain zero or | |
| attributes from the previous PAA, the PANA session continues with a | one NAP-Information AVP, and zero or more ISP-Information AVPs. The | |
| PANA-Bind exchange. | PaC MAY indicate its choice of ISP by including an ISP-Information | |
| AVP in the PANA-Start-Answer message. The PaC MAY convey its ISP | ||
| even when there is no ISP-Information AVP contained in the | ||
| PANA-Start-Request message. The PaC can do that when it is | ||
| pre-configured with ISP information. | ||
| As part of the context transfer, an intermediate AAA-Key material is | In the absence of an ISP explicitly selected and conveyed by the PaC, | |
| provided by the previous PAA to the current PAA. | ISP selection is typically performed based on the client identifier | |
| (e.g., using the realm portion of an NAI carried in EAP method). A | ||
| backend AAA protocol (e.g., RADIUS) will run between the AAA client | ||
| on the PAA and a AAA server in the selected ISP domain. | ||
| AAA-Key-int = The first N bits of | The PANA-based ISP selection mechanism dictates the next-hop AAA | |
| HMAC-SHA1(AAA-Key, DiameterIdentity | Session-ID) | proxy on the PAA. If the NAP requires all AAA traffic to go through | |
| its local AAA proxy, it may have to rely on a mechanism to relay the | ||
| selected ISP information from PAA (AAA client) to the local AAA | ||
| proxy. The local AAA proxy can forward the AAA traffic to the | ||
| selected ISP domain upon processing. Further details, including how | ||
| the AAA client relays AAA routing information to the AAA proxy, are | ||
| outside the scope of PANA. | ||
| The value of N depends on the integrity protection algorithm in use, | An alternative ISP discovery mechanism is outlined in | |
| i.e., N=160 for HMAC-SHA1. DiameterIdentity is the identifier of the | [I-D.adrangi-eap-network-discovery] which suggests advertising ISP | |
| current PAA. Session-ID is the identifier of the PaC's PANA session | information in-band with the ongoing EAP method execution. | |
| with the previous PAA. | Deployments using the PANA's built-in ISP discovery mechanism need | |
| not use the other mechanism. | ||
| The current PAA and PaC compute the new AAA-Key by using the nonce | 5.10 Error Handling | |
| values and the AAA-Key-int. | ||
| AAA-Key-new = The first N bits of | A PANA-Error-Request message MAY be sent by either the PaC or the PAA | |
| HMAC-SHA1(AAA-Key-int, PaC_nonce | PAA_nonce) | 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. | ||
| New PANA_MAC_KEY is computed based on the algorithm described in | Erroneous PANA messages may be exploited by adversaries to launch DoS | |
| Section 5.6, by using the new AAA-Key and the new Session-ID assigned | attacks on the victims. Unless the PaC or PAA rate-limits the | |
| by the current PAA. The MAC AVP contained in the PANA-Bind-Request | generated PANA-Error-Request messages it may be overburdened by | |
| and PANA-Bind-Answer messages MUST be generated and verified by using | having to respond to bogus messages. Limiting the number of error | |
| the new PANA_MAC_KEY. The Session-ID AVP MUST include a new session | notifications sent to a given peer during a (configurable) period of | |
| identifier assigned by the current PAA. A new PANA session is | time may be useful. | |
| created upon successful completion of this exchange. | ||
| Note that correct operation of this optimization relies on many | When an error message is sent unprotected (i.e., no MAC AVP) and the | |
| factors, including applicability of authorization state from one | lower-layer is insecure, the error message is treated as an | |
| network attachment to another. [I-D.ietf-eap-keying] identifies this | informational message. The receiver of such an error message MUST | |
| operation as "fast handoff" and provides deployment considerations. | NOT change its state unless the error persists and the PANA session | |
| Operators are recommended to take those guidelines into account when | is not making any progress. | |
| using this optimization in their networks. | ||
| 7. PANA Headers and Formats | 6. 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 | 6.1 IP and UDP Headers | |
| The Hop Limit (or TTL) field of the IP header MUST be set to 255. | The Hop Limit (or TTL) field of the IP header MUST be set to 255. | |
| When a PANA-PAA-Discover message is multicast, IP destination address | When a PANA-PAA-Discover message is multicast, IP destination address | |
| 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. | |
| 7.2 PANA Header | The maximum PANA packet size is limited by the maximum UDP payload. | |
| 6.2 PANA Header | ||
| A summary of the PANA header format is shown below. The fields are | A summary of the PANA header format is shown below. The fields are | |
| transmitted in network byte order. | transmitted in network byte order. | |
| 0 1 2 3 | 0 1 2 3 | |
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |
| | Version | Reserved | Message Length | | | Version | Reserved | Message Length | | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |
| | Flags | Message Type | | | Flags | Message Type | | |
| Skipping to change at page 36, line 17: | ||
| This 8-bit field is reserved for future use, and MUST be set to | This 8-bit field is reserved for future use, and MUST be set to | |
| zero, and ignored by the receiver. | zero, and ignored by the receiver. | |
| Message Length | Message Length | |
| The Message Length field is three octets and indicates the length | The Message Length field is three octets and indicates the length | |
| of the PANA message including the header fields. | of the PANA message including the header fields. | |
| Flags | Flags | |
| The Flags field is eight bits. The following bits are assigned: | The Flags field is two octets. The following bits are assigned: | |
| 0 1 | 0 1 | |
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |
| |R S N r r r r r r r r r r r r r| | |R S N r r r r r r r r r r r r r| | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |
| R(equest) | R(equest) | |
| If set, the message is a request. If cleared, the message is | If set, the message is a request. If cleared, the message is | |
| an answer. | an answer. | |
| S(eparate) | S(eparate) | |
| When the S-flag is set in a PANA-Start-Request message it | When the S-flag is set in a PANA-Start-Request message it | |
| indicates that PAA is willing to offer separate NAP and ISP | indicates that PAA is willing to offer separate NAP and ISP | |
| authentication. When the S-flag is set in a PANA-Start-Answer | authentication. When the S-flag is set in a PANA-Start-Answer | |
| message it indicates that the PaC accepts on performing | message it indicates that the PaC accepts on performing | |
| separate NAP and ISP authentication. When the S-flag is set in | separate NAP and ISP authentication. The PaC may also respond | |
| a PANA-Auth-Request/Answer, PANA-FirstAuth-End-Request/Answer | with the S-flag not set which implies the PaC has chosen to | |
| and PANA-Bind-Request/Answer messages it indicates that | authenticate with the ISP only. When the S-flag is set in a | |
| separate NAP and ISP authentication is being performed in the | PANA-Auth-Request/Answer, PANA-FirstAuth-End-Request/Answer and | |
| authentication phase. For other cases, S-flag MUST NOT be set. | PANA-Bind-Request/Answer messages it indicates that separate | |
| NAP and ISP authentication is being performed in the | ||
| authentication and authorization phase. For other cases, | ||
| S-flag MUST NOT be set. | ||
| N(AP authentication) | N(AP authentication) | |
| When the N-flag is set in a PANA-Auth-Request message, it | When the N-flag is set in a PANA-Auth-Request message, it | |
| indicates that the current EAP authentication is for NAP | indicates that the current EAP authentication is for NAP | |
| 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. | |
| 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 | |
| The Sequence Number field contains a 32 bit value. | The Sequence Number field contains a 32 bit value. | |
| AVPs | AVPs | |
| AVPs are a method of encapsulating information relevant to the | AVPs are a method of encapsulating information relevant to the | |
| PANA message. See section Section 7.3 for more information on | PANA message. See section Section 6.3 for more information on | |
| AVPs. | AVPs. | |
| 7.3 AVP Header | 6.3 AVP Header | |
| Each AVP of type OctetString MUST be padded to align on a 32-bit | Each AVP of type OctetString MUST be padded to align on a 32-bit | |
| boundary, while other AVP types align naturally. A number of | boundary, while other AVP types align naturally. A number of | |
| zero-valued bytes are added to the end of the AVP Data field till a | zero-valued bytes are added to the end of the AVP Data field till a | |
| word boundary is reached. The length of the padding is not reflected | word boundary is reached. The length of the padding is not reflected | |
| in the AVP Length field [RFC3588]. | in the AVP Length field [RFC3588]. | |
| The fields in the AVP header MUST be sent in network byte order. The | The fields in the AVP header are sent in network byte order. The | |
| format of the header is: | format of the header is: | |
| 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 | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |
| | AVP Code | AVP Flags | | | AVP Code | AVP Flags | | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |
| | AVP Length | Reserved | | | AVP Length | Reserved | | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |
| | Vendor-Id (opt) | | | Vendor-Id (opt) | | |
| Skipping to change at page 38, line 26: | ||
| 0 1 | 0 1 | |
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |
| |V M r r r r r r r r r r r r r r| | |V M r r r r r r r r r r r r r r| | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |
| M(andatory) | M(andatory) | |
| The 'M' Bit, known as the Mandatory bit, indicates whether | The 'M' Bit, known as the Mandatory bit, indicates whether | |
| support of the AVP is required. | support of the AVP is required. | |
| If an AVP with the 'M' bit set is received by the PaC or PAA | ||
| and either the AVP or its value is unrecognized, the message | ||
| MUST be rejected and the receiver MUST send a | ||
| PANA-Error-Request message. If the AVP was unrecognized the | ||
| PANA-Error-Request message result code MUST be | ||
| PANA_AVP_UNSUPPORTED. If the AVP value was unrecognized the | ||
| PANA-Error-Request message result code MUST be | ||
| PANA_INVALID_AVP_DATA. In either case the PANA-Error-Request | ||
| message MUST carry a Failed-AVP AVP containing the offending | ||
| mandatory AVP. | ||
| AVPs with the 'M' bit cleared are informational only and a | ||
| receiver that receives a message with such an AVP that is not | ||
| supported, or whose value is not supported, MAY simply ignore | ||
| the AVP. | ||
| V(endor) | V(endor) | |
| The 'V' bit, known as the Vendor-Specific bit, indicates | The 'V' bit, known as the Vendor-Specific bit, indicates | |
| whether the optional Vendor-Id field is present in the AVP | whether the optional Vendor-Id field is present in the AVP | |
| header. | header. When set the AVP Code belongs to the specific vendor | |
| code address space. | ||
| 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. | |
| Unless otherwise noted, AVPs defined in this document will have | ||
| the following default AVP Flags field settings: The 'M' bit MUST | ||
| be set. The 'V' bit MUST NOT be set. | ||
| AVP Length | AVP Length | |
| The AVP Length field is four octets, and indicates the number of | The AVP Length field is four octets, and indicates the number of | |
| octets in this AVP including the AVP Code, AVP Length, AVP Flags, | octets in this AVP including the AVP Code, AVP Length, AVP Flags, | |
| and the AVP data. | and the AVP data. | |
| Reserved | Reserved | |
| This two-octet field is reserved for future use, and MUST be set | This two-octet field is reserved for future use, and MUST be set | |
| Skipping to change at page 40, line 5: | ||
| Vendor-Id along with their privately managed AVP address space, | Vendor-Id along with their privately managed AVP address space, | |
| guaranteeing that they will not collide with any other vendor's | guaranteeing that they will not collide with any other vendor's | |
| vendor-specific AVP(s), nor with future IETF applications. | vendor-specific AVP(s), nor with future IETF applications. | |
| Data | Data | |
| The Data field is zero or more octets and contains information | The Data field is zero or more octets and contains information | |
| specific to the Attribute. The format and length of the Data | specific to the Attribute. The format and length of the Data | |
| field is determined by the AVP Code and AVP Length fields. | field is determined by the AVP Code and AVP Length fields. | |
| 8. PANA Messages, Message Specifications and AVPs | 7. PANA Messages, Message Specifications and AVPs | |
| 8.1 PANA Messages | 7.1 PANA Messages | |
| Figure 10 lists all PANA messages defined in this document. | Each Request/Answer message pair is assigned a message ID, and the | |
| sub-type (i.e., request or answer) is identified via the 'R' bit in | ||
| the Message Flags field of the PANA header. | ||
| Message Direction: PaC---PAA | Every PANA message MUST contain a message ID in its header's | |
| ---------------------------------------- | Message-Id field, which is used to determine the action that is to be | |
| PANA-PAA-Discover --------> | taken for a particular message. Figure 9 lists all PANA messages | |
| defined in this document: | ||
| PANA-Start-Request <-------- | Message-Name Abbrev. ID PaC<->PAA Ref. | |
| PANA-Start-Answer --------> | ----------------------------------------------------------- | |
| PANA-PAA-Discover PDI 1 --------> 7.2.1 | ||
| PANA-Start-Request PSR 2 <-------- 7.2.2 | ||
| PANA-Start-Answer PSA 2 --------> 7.2.3 | ||
| PANA-Auth-Request PAR 3 <-------> 7.2.4 | ||
| PANA-Auth-Answer PAN 3 <-------> 7.2.5 | ||
| PANA-Reauth-Request PRAR 4 --------> 7.2.6 | ||
| PANA-Reauth-Answer PRAA 4 <-------- 7.2.7 | ||
| PANA-Bind-Request PBR 5 <-------- 7.2.8 | ||
| PANA-Bind-Answer PBA 5 --------> 7.2.9 | ||
| PANA-Ping-Request PPR 6 <-------> 7.2.10 | ||
| PANA-Ping-Answer PPA 6 <-------> 7.2.11 | ||
| PANA-Termination-Request PTR 7 <-------> 7.2.12 | ||
| PANA-Termination-Answer PTA 7 <-------> 7.2.13 | ||
| PANA-Error-Request PER 8 <-------> 7.2.14 | ||
| PANA-Error-Answer PEA 8 <-------> 7.2.15 | ||
| PANA-FirstAuth-End-Request PFER 9 <-------- 7.2.16 | ||
| PANA-FirstAuth-End-Answer PFEA 9 --------> 7.2.17 | ||
| PANA-Update-Request PUR 10 <-------> 7.2.18 | ||
| PANA-Update-Answer PUA 10 <-------> 7.2.19 | ||
| ----------------------------------------------------------- | ||
| PANA-Auth-Request <-------> | Figure 9: Table of PANA Messages | |
| PANA-Auth-Answer <-------> | ||
| PANA-Reauth-Request --------> | 7.2 PANA Message ABNF Specification | |
| PANA-Reauth-Answer <-------- | ||
| PANA-FirstAuth-End-Request <-------- | Every PANA message defined MUST include a corresponding ABNF | |
| PANA-FirstAuth-End-Answer --------> | [RFC2234] specification, which is used to define the AVPs that MUST | |
| or MAY be present. The following format is used in the definition: | ||
| PANA-Bind-Request <-------- | message-def = Message-Name "::=" PANA-message | |
| PANA-Bind-Answer --------> | ||
| PANA-Ping-Request <-------> | message-name = PANA-name | |
| PANA-Ping-Answer <-------> | PANA-name = ALPHA *(ALPHA / DIGIT / "-") | |
| PANA-Termination-Request <-------> | PANA-message = header [ *fixed] [ *required] [ *optional] | |
| PANA-Termination-Answer <-------> | [ *fixed] | |
| PANA-Update-Request --------> | header = "< PANA-Header: " Message-Id | |
| PANA-Update-Answer <-------- | [r-bit] [s-bit] [n-bit] ">" | |
| PANA-Error-Request <-------> | Message-Id = 1*DIGIT | |
| PANA-Error-Answer <-------> | ; The message code assigned to the message | |
| Figure 10: PANA Message Overview | r-bit = ", REQ" | |
| ; If present, the 'R' bit in the Message | ||
| ; Flags is set, indicating that the message | ||
| ; is a request, as opposed to an answer. | ||
| 8.2 Message Specifications | s-bit = ", SEP" | |
| ; If present, the 'S' bit in the Message | ||
| ; Flags is set, indicating support for | ||
| ; separate NAP and ISP authentication. | ||
| Every PANA message MUST include a corresponding ABNF [RFC2234] | n-bit = ", NAP" | |
| specification found in [RFC3588]. | ; If present, the 'N' bit in the Message | |
| ; Flags is set, indicating that current | ||
| ; EAP authentication is for NAP authentication. | ||
| Example: | fixed = [qual] "<" avp-spec ">" | |
| ; Defines the fixed position of an AVP | ||
| message ::= < PANA-Header: <Message type>, [REQ] [SEP] > | required = [qual] "{" avp-spec "}" | |
| ; The AVP MUST be present and can appear | ||
| ; anywhere in the message. | ||
| optional = [qual] "[" avp-name "]" | ||
| ; The avp-name in the 'optional' rule cannot | ||
| ; evaluate to any AVP Name which is included | ||
| ; in a fixed or required rule. The AVP can | ||
| ; appear anywhere in the message. | ||
| qual = [min] "*" [max] | ||
| ; See ABNF conventions, RFC 2234 Section 6.6. | ||
| ; The absence of any qualifiers depends on whether | ||
| ; it precedes a fixed, required, or optional | ||
| ; rule. If a fixed or required rule has no | ||
| ; qualifier, then exactly one such AVP MUST | ||
| ; be present. If an optional rule has no | ||
| ; qualifier, then 0 or 1 such AVP may be | ||
| ; present. | ||
| ; | ||
| ; NOTE: "[" and "]" have a different meaning | ||
| ; than in ABNF (see the optional rule, above). | ||
| ; These braces cannot be used to express | ||
| ; optional fixed rules (such as an optional | ||
| ; MAC at the end). To do this, the convention | ||
| ; is '0*1fixed'. | ||
| min = 1*DIGIT | ||
| ; The minimum number of times the element may | ||
| ; be present. The default value is zero. | ||
| max = 1*DIGIT | ||
| ; The maximum number of times the element may | ||
| ; be present. The default value is infinity. A | ||
| ; value of zero implies the AVP MUST NOT be | ||
| ; present. | ||
| avp-spec = PANA-name | ||
| ; The avp-spec has to be an AVP Name, defined | ||
| ; in the base or extended PANA protocol | ||
| ; specifications. | ||
| avp-name = avp-spec / "AVP" | ||
| ; The string "AVP" stands for *any* arbitrary | ||
| ; AVP Name, which does not conflict with the | ||
| ; required or fixed position AVPs defined in | ||
| ; the message definition. | ||
| Example-Request ::= < "PANA-Header: 9999999, REQ > | ||
| < Session-Id > | ||
| { Result-Code } | ||
| * [ AVP ] | * [ AVP ] | |
| 0*1 < MAC > | ||
| 8.2.1 PANA-PAA-Discover (PDI) | 7.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 > | |
| [ Notification ] | ||
| * [ AVP ] | * [ AVP ] | |
| 8.2.2 PANA-Start-Request (PSR) | 7.2.2 PANA-Start-Request (PSR) | |
| PANA-Start-Request (PSR) is sent by the PAA to the PaC. The PAA sets | The PANA-Start-Request (PSR) message is sent by the PAA to the PaC to | |
| the sequence number to an initial random value. | advertise availability of the PAA and start PANA authentication. The | |
| PAA sets 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 ] | |
| [ Notification ] | ||
| * [ AVP ] | * [ AVP ] | |
| 8.2.3 PANA-Start-Answer (PSA) | 7.2.3 PANA-Start-Answer (PSA) | |
| PANA-Start-Answer (PSA) is sent by the PaC to the PAA in response to | The PANA-Start-Answer (PSA) message is sent by the PaC to the PAA in | |
| a PANA-Start-Request message. | response to 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 ] | ||
| [ Cookie ] | [ Cookie ] | |
| [ EAP-Payload ] | [ EAP-Payload ] | |
| [ ISP-Information ] | [ ISP-Information ] | |
| [ Notification ] | ||
| * [ AVP ] | * [ AVP ] | |
| 0*1 < MAC > | ||
| 8.2.4 PANA-Auth-Request (PAR) | 7.2.4 PANA-Auth-Request (PAR) | |
| PANA-Auth-Request (PAR) is sent by the PAA to the PaC. | The PANA-Auth-Request (PAR) message is either sent by the PAA or the | |
| PaC. Its main task is to carry an EAP-Payload AVP. | ||
| PANA-Auth-Request ::= < PANA-Header: 3, REQ [SEP] [NAP] > | PANA-Auth-Request ::= < PANA-Header: 3, REQ [, SEP] [, NAP] > | |
| < Session-Id > | < Session-Id > | |
| < EAP-Payload > | < EAP-Payload > | |
| [ Notification ] | ||
| * [ AVP ] | * [ AVP ] | |
| 0*1 < MAC > | 0*1 < MAC > | |
| 8.2.5 PANA-Auth-Answer (PAN) | 7.2.5 PANA-Auth-Answer (PAN) | |
| PANA-Auth-Answer (PAN) is sent by the PaC to the PAA in response to a | THe PANA-Auth-Answer (PAN) message is sent by either the PaC or the | |
| PANA-Auth-Request message. | PAA in response to a PANA-Auth-Request message. It MAY 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 ] | |
| [ Notification ] | ||
| * [ AVP ] | * [ AVP ] | |
| 0*1 < MAC > | 0*1 < MAC > | |
| 8.2.6 PANA-Reauth-Request (PRAR) | 7.2.6 PANA-Reauth-Request (PRAR) | |
| PANA-Reauth-Request (PRAR) is sent by the PaC to the PAA. | The PANA-Reauth-Request (PRAR) message 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 > | |
| [ Notification ] | ||
| * [ AVP ] | * [ AVP ] | |
| 0*1 < MAC > | 0*1 < MAC > | |
| 8.2.7 PANA-Reauth-Answer (PRAA) | 7.2.7 PANA-Reauth-Answer (PRAA) | |
| PANA-Reauth-Answer (PRAA) is sent by the PAA to the PaC in response | The PANA-Reauth-Answer (PRAA) message is sent by the PAA to the PaC | |
| to a PANA-Reauth-Request message. | in response to a PANA-Reauth-Request message. | |
| PANA-Reauth-Answer ::= < PANA-Header: 4 > | PANA-Reauth-Answer ::= < PANA-Header: 4 > | |
| < Session-Id > | < Session-Id > | |
| [ Notification ] | ||
| * [ AVP ] | * [ AVP ] | |
| 0*1 < MAC > | 0*1 < MAC > | |
| 8.2.8 PANA-Bind-Request (PBR) | 7.2.8 PANA-Bind-Request (PBR) | |
| PANA-Bind-Request (PBR) is sent by the PAA to the PaC. | The PANA-Bind-Request (PBR) message 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 ] | |
| * [ Device-Id ] | * [ Device-Id ] | |
| [ Notification ] | ||
| * [ AVP ] | * [ AVP ] | |
| 0*1 < MAC > | 0*1 < MAC > | |
| 8.2.9 PANA-Bind-Answer (PBA) | 7.2.9 PANA-Bind-Answer (PBA) | |
| PANA-Bind-Answer (PBA) is sent by the PaC to the PAA in response to a | The PANA-Bind-Answer (PBA) message is sent by the PaC to the PAA in | |
| PANA-Result-Request message. | response to a PANA-Bind-Request message. | |
| PANA-Bind-Answer ::= < PANA-Header: 5 [,SEP] [NAP] > | PANA-Bind-Answer ::= < PANA-Header: 5 [,SEP] [, NAP] > | |
| < Session-Id > | < Session-Id > | |
| { Result-Code } | ||
| [ PPAC ] | [ PPAC ] | |
| [ Device-Id ] | [ Device-Id ] | |
| [ Key-Id ] | [ Key-Id ] | |
| [ Notification ] | ||
| * [ AVP ] | * [ AVP ] | |
| 0*1 < MAC > | 0*1 < MAC > | |
| 8.2.10 PANA-Ping-Request (PPR) | 7.2.10 PANA-Ping-Request (PPR) | |
| PANA-Ping-Request (PPR) is either sent by the PaC or the PAA. | The PANA-Ping-Request (PPR) message is either sent by the PaC or the | |
| PAA for performing liveness test. | ||
| PANA-Ping-Request ::= < PANA-Header: 6, REQ > | PANA-Ping-Request ::= < PANA-Header: 6, REQ > | |
| < Session-Id > | < Session-Id > | |
| [ Notification ] | ||
| * [ AVP ] | * [ AVP ] | |
| 0*1 < MAC > | 0*1 < MAC > | |
| 8.2.11 PANA-Ping-Answer (PPA) | 7.2.11 PANA-Ping-Answer (PPA) | |
| PANA-Ping-Answer (PPA) is sent in response to a PANA-Ping-Request. | The PANA-Ping-Answer (PPA) message 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 > | |
| [ Notification ] | ||
| * [ AVP ] | * [ AVP ] | |
| 0*1 < MAC > | 0*1 < MAC > | |
| 8.2.12 PANA-Termination-Request (PTR) | 7.2.12 PANA-Termination-Request (PTR) | |
| PANA-Termination-Request (PTR) is sent either by the PaC or the PAA. | The PANA-Termination-Request (PTR) message 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 > | |
| [ Notification ] | ||
| * [ AVP ] | * [ AVP ] | |
| 0*1 < MAC > | 0*1 < MAC > | |
| 8.2.13 PANA-Termination-Answer (PTA) | 7.2.13 PANA-Termination-Answer (PTA) | |
| PANA-Termination-Answer (PTA) is sent either by the PaC or the PAA in | The PANA-Termination-Answer (PTA) message is sent either by the PaC | |
| response to PANA-Termination-Request. | or the PAA in response to PANA-Termination-Request. | |
| PANA-Termination-Answer ::= < PANA-Header: 7 > | PANA-Termination-Answer ::= < PANA-Header: 7 > | |
| < Session-Id > | < Session-Id > | |
| [ Notification ] | ||
| * [ AVP ] | * [ AVP ] | |
| 0*1 < MAC > | 0*1 < MAC > | |
| 8.2.14 PANA-Error-Request (PER) | 7.2.14 PANA-Error-Request (PER) | |
| PANA-Error is sent either by the PaC or the PAA. | The PANA-Error-Request (PER) message is sent either by the PaC or the | |
| PAA to report an error with the last received PANA message. | ||
| 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 ] | |
| [ Notification ] | ||
| * [ AVP ] | * [ AVP ] | |
| 0*1 < MAC > | 0*1 < MAC > | |
| 8.2.15 PANA-Error-Answer (PEA) | 7.2.15 PANA-Error-Answer (PEA) | |
| PANA-Error-Answer is sent in response to a PANA-Error-Request. | The PANA-Error-Answer (PEA) message 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 > | |
| [ Notification ] | ||
| * [ AVP ] | * [ AVP ] | |
| 0*1 < MAC > | 0*1 < MAC > | |
| 8.2.16 PANA-FirstAuth-End-Request (PFER) | 7.2.16 PANA-FirstAuth-End-Request (PFER) | |
| PANA-FirstAuth-End-Request (PFER) is sent by the PAA to the PaC. | The PANA-FirstAuth-End-Request (PFER) message 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 } | ||
| { Result-Code } | { Result-Code } | |
| [ EAP-Payload ] | ||
| [ Key-Id ] | [ Key-Id ] | |
| [ Notification ] | ||
| * [ AVP ] | * [ AVP ] | |
| 0*1 < MAC > | 0*1 < MAC > | |
| 8.2.17 PANA-FirstAuth-End-Answer (PFEA) | 7.2.17 PANA-FirstAuth-End-Answer (PFEA) | |
| PANA-FirstAuth-End-Answer (PFEA) is sent by the PaC to the PAA in | The PANA-FirstAuth-End-Answer (PFEA) message is sent by the PaC to | |
| response to a PANA-FirstAuth-End-Request message. | the PAA in 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 ] | |
| [ Notification ] | ||
| * [ AVP ] | * [ AVP ] | |
| 0*1 < MAC > | 0*1 < MAC > | |
| 8.2.18 PANA-Update-Request (PUR) | 7.2.18 PANA-Update-Request (PUR) | |
| PANA-Update-Request (PUR) is sent by the PaC to the PAA. | The PANA-Update-Request (PUR) message is sent either by the PaC or | |
| the PAA to deliver attribute updates and notifications. In the scope | ||
| of this specification only the PaC IP address attribute can be | ||
| updated via this mechanism. An IP-Address AVP can only be included | ||
| in the PUR messages sent by the PaC. The PUR message can be used to | ||
| deliver just a notification as well. | ||
| PANA-Update-Request ::= < PANA-Header: 10, REQ > | PANA-Update-Request ::= < PANA-Header: 10, REQ > | |
| < Session-Id > | < Session-Id > | |
| < IP-Address > | [ IP-Address ] | |
| [ Notification ] | ||
| * [ AVP ] | * [ AVP ] | |
| 0*1 < MAC > | 0*1 < MAC > | |
| 8.2.19 PANA-Update-Answer (PUA) | 7.2.19 PANA-Update-Answer (PUA) | |
| PANA-Update-Answer (PUA) is sent by the PAA to the PaC in response to | The PANA-Update-Answer (PUA) message is sent by the PAA to the PaC in | |
| a PANA-Update-Request. | response to a PANA-Update-Request. | |
| PANA-Update-Answer ::= < PANA-Header: 10 > | PANA-Update-Answer ::= < PANA-Header: 10 > | |
| < Session-Id > | < Session-Id > | |
| [ Notification ] | ||
| * [ AVP ] | * [ AVP ] | |
| 0*1 < MAC > | 0*1 < MAC > | |
| 8.3 AVPs in PANA | 7.3 AVPs in PANA | |
| PANA defines several AVPs that are specific to the protocol. A | PANA defines several AVPs that are specific to the protocol. A | |
| number of others AVPs are reused. These are specified in other | number of others AVPs are reused. These are specified in other | |
| documents such as [RFC3588]. | documents such as [RFC3588]. | |
| The following tables lists the AVPs used in this document, and | The following tables lists the AVPs used in this document, and | |
| specifies in which PANA messages they MAY, or MAY NOT be present. | specifies in which PANA messages they MAY, or MAY NOT be present. | |
| The table uses the following symbols: | The table uses the following symbols: | |
| Skipping to change at page 46, line 21: | ||
| 0-1 Zero or one instance of the AVP MAY be present in the message. | 0-1 Zero or one instance of the AVP MAY be present in the message. | |
| It is considered an error if there are more than one instance | It is considered an error if there are more than one instance | |
| of the AVP. | of the AVP. | |
| 1 One instance of the AVP MUST be present in the message. | 1 One instance of the AVP MUST be present in the message. | |
| 1+ At least one instance of the AVP MUST be present in the | 1+ At least one instance of the AVP MUST be present in the | |
| message. | message. | |
| +-----------------------------------------+ | +---------------------------------------------+ | |
| | Message | | | Message | | |
| | Type | | | Type | | |
| +-----+-----+-----+-----+-----+-----+-----+ | +---+---+---+---+---+----+----+---+---+---+---+ | |
| Attribute Name | PSR | PSA | PAR | PAN | PBR | PBA | PDI | | Attribute Name |PDI|PSR|PSA|PAR|PAN|PRAR|PRAA|PBR|PBA|PPR|PPA| | |
| --------------------+-----+-----+-----+-----+-----+-----+-----+ | --------------------+---+---+---+---+---+----+----+---+---+---+---+ | |
| Result-Code | 0 | 0 | 0 | 0 | 1 | 1 | 0 | | Cookie | 0 |0-1|0-1| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | |
| Session-Id | 0 | 0-1 | 1 | 1 | 1 | 1 | 0 | | Device-Id | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0+|0-1| 0 | 0 | | |
| Termination-Cause | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | EAP-Payload | 0 |0-1|0-1| 1 |0-1| 0 | 0 |0-1| 0 | 0 | 0 | | |
| EAP-Payload | 0-1 | 0-1 | 1 | 0-1 | 0-1 | 0 | 0 | | Failed-AVP | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | |
| MAC | 0 | 0-1 | 0-1 | 0-1 | 0-1 | 0-1 | 0 | | IP-Address | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | | |
| Nonce | 1 | 1 | 0 | 0 | 0 | 0 | 0 | | ISP-Information | 0 | 0+|0-1| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | |
| Device-Id | 0 | 0 | 0 | 0 | 0+ | 0-1 | 0 | | Key-Id | 0 | 0 | 0 | 0 | 0 | 0 | 0 |0-1|0-1| 0 | 0 | | |
| Cookie | 0-1 | 0-1 | 0 | 0 | 0 | 0 | 0 | | MAC | 0 | 0 | 0 |0-1|0-1|0-1 |0-1 |0-1|0-1|0-1|0-1| | |
| Protection-Cap. | 0-1 | 0 | 0 | 0 | 0-1 | 0 | 0 | | NAP-Information | 0 |0-1| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | |
| PPAC | 0-1 | 0 | 0 | 0 | 1 | 0-1 | 0 | | Nonce | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | |
| Session-Lifetime | 0 | 0 | 0 | 0 | 0-1 | 0 | 0 | | Notification |0-1|0-1|0-1|0-1|0-1|0-1 |0-1 |0-1|0-1|0-1|0-1| | |
| Failed-AVP | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | PPAC | 0 |0-1| 0 | 0 | 0 | 0 | 0 | 1 |0-1| 0 | 0 | | |
| ISP-Information | 0+ | 0-1 | 0 | 0 | 0 | 0 | 0 | | Protection-Cap. | 0 |0-1| 0 | 0 | 0 | 0 | 0 |0-1| 0 | 0 | 0 | | |
| NAP-Information | 0-1 | 0 | 0 | 0 | 0 | 0 | 0 | | Result-Code | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | | |
| Key-Id | 0 | 0 | 0 | 0 | 0-1 | 0-1 | 0 | | Session-Id | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | | |
| IP-Address | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | Session-Lifetime | 0 | 0 | 0 | 0 | 0 | 0 | 0 |0-1| 0 | 0 | 0 | | |
| --------------------+-----+-----+-----+-----+-----+-----+-----+ | Termination-Cause | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | |
| --------------------+---+---+---+---+---+----+----+---+---+---+---+ | ||
| Figure 11: AVP Occurrence Table (1/3) | Figure 10: AVP Occurrence Table (1/2) | |
| +-------------------------------------+ | +---------------------------------+ | |
| | Message | | | Message | | |
| | Type | | | Type | | |
| +-----+-----+-----+-----+------+------+ | +---+---+---+---+----+----+---+---+ | |
| Attribute Name | PPR | PPA | PTR | PTA | PFER | PFEA | | Attribute Name |PTR|PTA|PER|PEA|PFER|PFEA|PUR|PUA| | |
| --------------------+-----+-----+-----+-----+------+------+ | --------------------+---+---+---+---+----+----+---+---+ | |
| Result-Code | 0 | 0 | 0 | 0 | 1 | 0 | | Cookie | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | |
| Session-Id | 1 | 1 | 1 | 1 | 1 | 1 | | Device-Id | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | |
| Termination-Cause | 0 | 0 | 1 | 0 | 0 | 0 | | EAP-Payload | 0 | 0 | 0 | 0 |0-1 | 0 | 0 | 0 | | |
| EAP-Payload | 0 | 0 | 0 | 0 | 1 | 0 | | Failed-AVP | 0 | 0 | 0+| 0 | 0 | 0 | 0 | 0 | | |
| MAC | 0-1 | 0-1 | 0-1 | 0-1 | 0-1 | 0-1 | | IP-Address | 0 | 0 | 0 | 0 | 0 | 0 |0-1| 0 | | |
| Nonce | 0 | 0 | 0 | 0 | 0 | 0 | | ISP-Information | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | |
| Device-Id | 0 | 0 | 0 | 0 | 0 | 0 | | Key-Id | 0 | 0 | 0 | 0 |0-1 |0-1 | 0 | 0 | | |
| Cookie | 0 | 0 | 0 | 0 | 0 | 0 | | MAC |0-1|0-1|0-1|0-1|0-1 |0-1 |0-1|0-1| | |
| Protection-Cap. | 0 | 0 | 0 | 0 | 0 | 0 | | NAP-Information | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | |
| PPAC | 0 | 0 | 0 | 0 | 0 | 0 | | Nonce | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | |
| Session-Lifetime | 0 | 0 | 0 | 0 | 0 | 0 | | Notification |0-1|0-1|0-1|0-1|0-1 |0-1 |0-1|0-1| | |
| Failed-AVP | 0 | 0 | 0 | 0 | 0 | 0 | | PPAC | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | |
| ISP-Information | 0 | 0 | 0 | 0 | 0 | 0 | | Protection-Cap. | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | |
| NAP-Information | 0 | 0 | 0 | 0 | 0 | 0 | | Result-Code | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | | |
| Key-Id | 0 | 0 | 0 | 0 | 0-1 | 0-1 | | Session-Id | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | | |
| IP-Address | 0 | 0 | 0 | 0 | 0 | 0 | | Session-Lifetime | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | |
| --------------------+-----+-----+-----+-----+------+------+ | Termination-Cause | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | |
| --------------------+---+---+---+---+----+----+---+---+ | ||
| Figure 12: AVP Occurrence Table (2/3) | Figure 11: AVP Occurrence Table (2/2) | |
| +-------------------------------------+ | ||
| | Message | | ||
| | Type | | ||
| +-----+-----+-----+-----+------+------+ | ||
| Attribute Name | PUR | PUA | PER | PEA | PRAR | PRAA | | ||
| --------------------+-----+-----+-----+-----+------+------+ | ||
| Result-Code | 0 | 0 | 1 | 0 | 0 | 0 | | ||
| Session-Id | 1 | 1 | 1 | 1 | 1 | 1 | | ||
| Termination-Cause | 0 | 0 | 0 | 0 | 0 | 0 | | ||
| EAP-Payload | 0 | 0 | 0 | 0 | 0 | 0 | | ||
| MAC | 0-1 | 0-1 | 0-1 | 0-1 | 0-1 | 0-1 | | ||
| Nonce | 0 | 0 | 0 | 0 | 0 | 0 | | ||
| Device-Id | 0 | 0 | 0 | 0 | 0 | 0 | | ||
| Cookie | 0 | 0 | 0 | 0 | 0 | 0 | | ||
| Protection-Cap. | 0 | 0 | 0 | 0 | 0 | 0 | | ||
| PPAC | 0 | 0 | 0 | 0 | 0 | 0 | | ||
| Session-Lifetime | 0 | 0 | 0 | 0 | 0 | 0 | | ||
| Failed-AVP | 0 | 0 | 1 | 0 | 0 | 0 | | ||
| ISP-Information | 0 | 0 | 0 | 0 | 0 | 0 | | ||
| NAP-Information | 0 | 0 | 0 | 0 | 0 | 0 | | ||
| Key-Id | 0 | 0 | 0 | 0 | 0 | 0 | | ||
| IP-Address | 1 | 0 | 0 | 0 | 0 | 0 | | ||
| --------------------+-----+-----+-----+-----+------+------+ | ||
| Figure 13: AVP Occurrence Table (3/3) | 7.3.1 Cookie AVP | |
| 8.3.1 MAC AVP | The Cookie AVP (AVP Code 1) is used for carrying a random value | |
| generated by the PAA. The AVP data is of type OctetString. The | ||
| random value is referred to as a cookie and used for making PAA | ||
| discovery robust against blind resource consumption DoS attacks. The | ||
| exact algorithms and syntax used by the PAA to generate a cookie does | ||
| not affect interoperability and not specified in this document. An | ||
| example cookie generation algorithm is shown in Section 4.2. | ||
| The first octet (8 bits) of the MAC (AVP Code 1) AVP data contains | 7.3.2 Device-Id AVP | |
| the MAC algorithm type. Rest of the AVP data payload contains the | ||
| MAC encoded in network byte order. The 8-bit Algorithm name space is | The Device-Id AVP (AVP Code 2) is used for carrying device | |
| managed by IANA [ianaweb]. The AVP length varies depending on the | identifiers of PaC and EP(s). The AVP data is of Address type | |
| used algorithm. | [RFC3588]. IPv4 and IPv6 addresses are encoded as specified in | |
| [RFC3588]. The content and format of data (including byte and bit | ||
| ordering) for link-layer addresses is expected to be specified in | ||
| specific documents that describe how IP operates over different | ||
| link-layers. For instance, [RFC2464]. Address families other than | ||
| that are defined for link-layer or IP addresses MUST NOT be used for | ||
| this AVP. | ||
| 7.3.3 EAP-Payload AVP | ||
| The EAP-Payload AVP (AVP Code 3) is used for encapsulating the actual | ||
| EAP message that is being exchanged between the EAP peer and the EAP | ||
| authenticator. The AVP data is of type OctetString. | ||
| 7.3.4 Failed-AVP AVP | ||
| The Failed-AVP AVP (AVP Code 4) provides debugging information in | ||
| cases where a request is rejected or not fully processed due to | ||
| erroneous information in a specific AVP. The AVP data is of type | ||
| Grouped. The format of the Failed-AVP AVP is defined in [RFC3588]. | ||
| 7.3.5 IP-Address AVP | ||
| The IP-Address AVP (AVP Code 5) contains an IP address of the PaC or | ||
| PAA. When it is sent by the PaC, it is used to convey the new IP | ||
| address of the PaC to the PAA when the PaC reconfigures its IP | ||
| address after the successful PANA authentication. This AVP is not | ||
| used if the PaC's IP address used during the authentication and | ||
| authorization 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 7.3.2). Address families | ||
| for IPv4 or IPv6 MUST be used for this AVP. | ||
| 7.3.6 ISP-Information AVP | ||
| The ISP-Information AVP (AVP Code 6) contains zero or one | ||
| Provider-Identifier AVP which carries the identifier of the ISP and | ||
| one Provider-Name AVP which carries the name of the ISP. The AVP | ||
| data is of type Grouped, and it has the following ABNF grammar: | ||
| ISP-Information ::= < AVP Header: 6 > | ||
| 0*1 { Provider-Identifier } | ||
| { Provider-Name } | ||
| * [ AVP ] | ||
| 7.3.7 Key-Id AVP | ||
| The Key-Id AVP (AVP Code 7) is of type Integer32, and contains an | ||
| AAA-Key identifier. The AAA-Key identifier is assigned by PAA and | ||
| MUST be unique within the PANA session. | ||
| 7.3.8 MAC AVP | ||
| The MAC (Message Authentication Code) AVP is used to integrity | ||
| protect PANA messages. The first octet of the this AVP (AVP Code 8) | ||
| data contains the MAC algorithm type. Rest of the AVP data payload | ||
| contains the MAC encoded in network byte order. The 8-bit 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) | |
| Skipping to change at page 49, line 4: | ||
| 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 | 7.3.9 NAP-Information AVP | |
| The Device-Id AVP (AVP Code 2) is of Address type [RFC3588]. IPv4 | The NAP-Information AVP (AVP Code 9) contains zero or one | |
| and IPv6 addresses are encoded as specified in [RFC3588]. The | Provider-Identifier AVP which carries the identifier of the NAP and | |
| content and format of data (including byte and bit ordering) for | one Provider-Name AVP which carries the name of the NAP. The AVP | |
| link-layer addresses is expected to be specified in specific | data is of type Grouped, and it has the following ABNF grammar: | |
| documents that describe how IP operates over different link-layers. | ||
| For instance, [RFC2464]. Address families other than that are | ||
| defined for link-layer or IP addresses MUST NOT be used for this AVP. | ||
| 8.3.3 Session-Id AVP | NAP-Information ::= < AVP Header: 9 > | |
| 0*1 { Provider-Identifier } | ||
| { Provider-Name } | ||
| * [ AVP ] | ||
| All messages pertaining to a specific PANA session MUST include a | 7.3.10 Nonce AVP | |
| Session-Id AVP (AVP Code 3) which carries a PAA-assigned fix value | ||
| throughout the lifetime of a session. When 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 Nonce AVP (AVP Code 10) carries a randomly chosen value that is | |
| to identify a PANA Session without reference to any other | used in cryptographic key computations. The AVP data is of type | |
| information, and may be needed to correlate historical authentication | OctetString and it contains a randomly generated value in opaque | |
| information with accounting information. The PANA Session-Id AVP has | format. The data length MUST be between 8 and 256 bytes inclusive. | |
| the same format as the Diameter Session-Id AVP [RFC3588]. | ||
| 8.3.4 Cookie AVP | 7.3.11 Notification AVP | |
| The Cookie AVP (AVP Code 4) is of type OctetString. The data is | The Notification AVP (AVP Code 11) is optionally used to convey a | |
| opaque and the exact content is outside the scope of this protocol. | displayable message sent by either the PaC or the PAA. It can be | |
| included in any message, whether it is a request or answer. In case | ||
| a notification needs to be sent but there is no outgoing PANA message | ||
| to deliver this AVP, a PANA-Update-Request that only carries a | ||
| Notification AVP SHOULD be generated. | ||
| 8.3.5 Protection-Capability AVP | Receipt this AVP does not change PANA state. | |
| The Protection-Capability AVP (AVP Code 5) is of type Unsigned32. | AVP data is of type OctetString and it contains UTF-8 encoded ISO | |
| The AVP data indicates the cryptographic data protection capability | 10646 characters [RFC2279]. The length of the displayable message is | |
| supported by the EPs. Below is a list of specified data protection | determined by the AVP Length field. The message MUST NOT be null | |
| capabilities: | terminated. | |
| 0 L2_PROTECTION | 7.3.12 Post-PANA-Address-Configuration (PPAC) AVP | |
| 1 IPSEC_PROTECTION | ||
| 8.3.6 Termination-Cause AVP | The PPAC AVP (AVP Code 12) is used for conveying the available types | |
| of post-PANA IP address configuration mechanisms when sent by the | ||
| PAA, and the chosen one when sent by the PaC. Each possible | ||
| mechanisms is represented by a flag. At least one or more of the | ||
| 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 Termination-Cause AVP (AVP Code 6) is of type of type Enumerated, | The format of the AVP data is as follows: | |
| and is used to indicate the reason why a session was terminated on | ||
| the access device. The AVP data is used as a collection of flags The | ||
| following Termination-Cause AVP defined in [RFC3588] are used for | ||
| PANA. | ||
| LOGOUT 1 (PaC -> PAA) | 0 1 2 3 | |
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | ||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| |N|D|A|T|I| Reserved | | ||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| The client initiated a disconnect | PPAC Flags | |
| ADMINISTRATIVE 4 (PAA -> PaC) | N (No configuration) | |
| The client was not granted access, or was disconnected, due to | The PaC does not have to (if sent by PAA) or will not (if sent | |
| administrative reasons, such as the receipt of a | by PaC) configure a new IP address after PANA. | |
| Abort-Session-Request message. | ||
| SESSION_TIMEOUT 8 (PAA -> PaC) | D (DHCP) | |
| The session has timed out, and service has been terminated. | The PaC can (if sent by PAA) or will (if sent by PaC) use DHCP | |
| [RFC2131][RFC3315] to configure a new IP address after PANA. | ||
| 8.3.7 Result-Code AVP | A (stateless autoconfiguration) | |
| The Result-Code AVP (AVP Code 7) is of type Unsigned32 and indicates | The PaC can/will use stateless IPv6 address autoconfiguration | |
| [RFC2462] to configure a new IP address after PANA. | ||
| T (DHCP with IPsec tunnel mode) | ||
| The PaC can/will use [RFC3456] to configure a new IP address | ||
| after PANA. | ||
| I (IKEv2) | ||
| The PaC can/will use [I-D.ietf-ipsec-ikev2] to configure a new | ||
| IP address after PANA. | ||
| Reserved | ||
| These flag bits are reserved for future use, and MUST be set to | ||
| zero, and ignored by the receiver. | ||
| Unless the N-flag is set, the PaC MUST configure a new IP address | ||
| using one of the methods indicated by the other flags. Refer to | ||
| [I-D.ietf-pana-framework] for a detailed discussion on when these | ||
| methods can be used. | ||
| 7.3.13 Protection-Capability AVP | ||
| The Protection-Capability AVP (AVP Code 13) indicates the | ||
| cryptographic data protection capability supported and required by | ||
| the EPs. The AVP data is of type Unsigned32. Below is a list of | ||
| valid data values and associated protection capabilities: | ||
| 0 L2_PROTECTION | ||
| 1 IPSEC_PROTECTION | ||
| 7.3.14 Provider-Identifier AVP | ||
| The Provider-Identifier AVP (AVP Code 14) is of type Unsigned32, and | ||
| contains an IANA assigned "SMI Network Management Private Enterprise | ||
| Codes" [ianaweb] value, encoded in network byte order. | ||
| 7.3.15 Provider-Name AVP | ||
| The Provider-Name AVP (AVP Code 15) is of type UTF8String, and | ||
| contains the UTF8-encoded name of the provider. | ||
| 7.3.16 Result-Code AVP | ||
| The Result-Code AVP (AVP Code 16) 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 | 7.3.16.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 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 | The authorization process 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 server or rejected locally by a | |
| PAA, even if the authentication procedure succeeds. | PAA, even if the authentication procedure has succeeded. | |
| 8.3.7.2 Protocol Error Result Codes | 7.3.16.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 | The PAA was unable to deliver the EAP payload to the | |
| payload to the authentication server. | authentication server. Only the 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 | ||
| Error code from PAA to PaC or from PaC to PAA. A message was | PANA_INVALID_AVP_FLAGS 3009 | |
| received that included an AVP whose flag bits are set to an | A message was received that included an AVP whose flag bits are | |
| unrecognized value, or that is inconsistent with the AVP's | set to an unrecognized value, or that is inconsistent with the | |
| definition. | AVP's 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. A PANA message | |
| contained an unknown Session-Id. PAA MUST NOT send this error | indicating this error MUST include the unknown Session-Id AVP | |
| result code value to PaC if PaC sent an unknown Session-Id in the | ||
| PANA-Start-Answer message (session resumption). | ||
| PANA_INVALID_AVP_VALUE 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 | ||
| PANA message indicating this error MUST include the offending AVPs | ||
| within a Failed-AVP AVP. | within a Failed-AVP AVP. | |
| PANA_INVALID_AVP_DATA 5004 | ||
| The message contained an AVP with an invalid value in its data | ||
| portion. A PANA message indicating this error MUST include the | ||
| offending AVPs within a Failed-AVP AVP. | ||
| PANA_MISSING_AVP 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 the PAA can | |
| session. | generate 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 the 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 | ||
| returned w |