| draft-ietf-pana-pana-11.txt | draft-ietf-pana-pana-13.txt | |
|---|---|---|
| PANA Working Group D. Forsberg | PANA Working Group D. Forsberg | |
| Internet-Draft Nokia | Internet-Draft Nokia | |
| Expires: September 4, 2006 Y. Ohba (Ed.) | Intended status: Standards Track Y. Ohba (Ed.) | |
| Toshiba | Expires: June 9, 2007 Toshiba | |
| B. Patil | B. Patil | |
| Nokia | Nokia | |
| H. Tschofenig | H. Tschofenig | |
| Siemens | Siemens | |
| A. Yegin | A. Yegin | |
| Samsung | Samsung | |
| March 3, 2006 | December 6, 2006 | |
| Protocol for Carrying Authentication for Network Access (PANA) | Protocol for Carrying Authentication for Network Access (PANA) | |
| draft-ietf-pana-pana-11 | draft-ietf-pana-pana-13 | |
| Status of this Memo | Status of this Memo | |
| By submitting this Internet-Draft, each author represents that any | By submitting this Internet-Draft, each author represents that any | |
| applicable patent or other IPR claims of which he or she is aware | applicable patent or other IPR claims of which he or she is aware | |
| have been or will be disclosed, and any of which he or she becomes | have been or will be disclosed, and any of which he or she becomes | |
| aware will be disclosed, in accordance with Section 6 of BCP 79. | aware will be disclosed, in accordance with Section 6 of BCP 79. | |
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |
| Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF), its areas, and its working groups. Note that | |
| Skipping to change at page 1, line 41: | ||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |
| The list of current Internet-Drafts can be accessed at | The list of current Internet-Drafts can be accessed at | |
| http://www.ietf.org/ietf/1id-abstracts.txt. | http://www.ietf.org/ietf/1id-abstracts.txt. | |
| The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |
| http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |
| This Internet-Draft will expire on September 4, 2006. | This Internet-Draft will expire on June 9, 2007. | |
| Copyright Notice | Copyright Notice | |
| Copyright (C) The Internet Society (2006). | Copyright (C) The Internet Society (2006). | |
| Abstract | Abstract | |
| This document defines the Protocol for Carrying Authentication for | This document defines the Protocol for Carrying Authentication for | |
| Network Access (PANA), a link-layer agnostic transport for Extensible | Network Access (PANA), a network-layer transport for Extensible | |
| Authentication Protocol (EAP) to enable network access authentication | Authentication Protocol (EAP) to enable network access authentication | |
| between clients and access networks. PANA protocol specification | between clients and access networks. PANA protocol specification | |
| covers the client-to-network access authentication part of an overall | covers the client-to-network access authentication part of an overall | |
| secure network access framework, which additionally includes other | secure network access framework, which additionally includes other | |
| protocols and mechanisms for service provisioning, access control as | protocols and mechanisms for service provisioning, access control as | |
| a result of initial authentication, and accounting. | 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 . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |
| 3. Protocol Overview . . . . . . . . . . . . . . . . . . . . . . 8 | 3. Protocol Overview . . . . . . . . . . . . . . . . . . . . . . 8 | |
| 4. Protocol Details . . . . . . . . . . . . . . . . . . . . . . . 10 | 4. Protocol Details . . . . . . . . . . . . . . . . . . . . . . . 10 | |
| 4.1. Transport Layer . . . . . . . . . . . . . . . . . . . . . 10 | 4.1. Transport Layer . . . . . . . . . . . . . . . . . . . . . 10 | |
| 4.2. Payload Encoding . . . . . . . . . . . . . . . . . . . . 10 | 4.2. High-Level Attribute-Value Pair Description . . . . . . . 10 | |
| 4.3. Discovery and Handshake Phase . . . . . . . . . . . . . . 11 | 4.3. Handshake Phase . . . . . . . . . . . . . . . . . . . . . 10 | |
| 4.4. Authentication and Authorization Phase . . . . . . . . . 15 | 4.4. Authentication and Authorization Phase . . . . . . . . . . 12 | |
| 4.5. Access Phase . . . . . . . . . . . . . . . . . . . . . . 18 | 4.5. Access Phase . . . . . . . . . . . . . . . . . . . . . . . 14 | |
| 4.6. Re-authentication Phase . . . . . . . . . . . . . . . . . 19 | 4.6. Re-authentication Phase . . . . . . . . . . . . . . . . . 14 | |
| 4.7. Termination Phase . . . . . . . . . . . . . . . . . . . . 20 | 4.7. Termination Phase . . . . . . . . . . . . . . . . . . . . 16 | |
| 4.8. Separate NAP and ISP Authentication . . . . . . . . . . . 21 | 5. Processing Rules . . . . . . . . . . . . . . . . . . . . . . . 17 | |
| 4.8.1. Negotiating Separate NAP and ISP Authentication . . . 21 | 5.1. Fragmentation . . . . . . . . . . . . . . . . . . . . . . 17 | |
| 4.8.2. Execution of Separate NAP and ISP Authentication . . . 22 | 5.2. Sequence Number and Retransmission . . . . . . . . . . . . 17 | |
| 4.8.3. AAA-Key Calculation . . . . . . . . . . . . . . . . . 23 | 5.3. PANA Security Association . . . . . . . . . . . . . . . . 18 | |
| 5. Processing Rules . . . . . . . . . . . . . . . . . . . . . . . 24 | 5.4. Message Authentication . . . . . . . . . . . . . . . . . . 19 | |
| 5.1. Fragmentation . . . . . . . . . . . . . . . . . . . . . . 24 | 5.5. Message Validity Check . . . . . . . . . . . . . . . . . . 20 | |
| 5.2. Sequence Number and Retransmission . . . . . . . . . . . 24 | 5.6. PaC Updating its IP Address . . . . . . . . . . . . . . . 21 | |
| 5.3. PANA Security Association . . . . . . . . . . . . . . . . 25 | 5.7. Session Lifetime . . . . . . . . . . . . . . . . . . . . . 21 | |
| 5.4. Message Authentication . . . . . . . . . . . . . . . . . 27 | 5.8. Error Handling . . . . . . . . . . . . . . . . . . . . . . 22 | |
| 5.5. Message Validity Check . . . . . . . . . . . . . . . . . 27 | 6. Header Format . . . . . . . . . . . . . . . . . . . . . . . . 24 | |
| 5.6. PaC-EP-Master-Key . . . . . . . . . . . . . . . . . . . . 29 | 6.1. IP and UDP Headers . . . . . . . . . . . . . . . . . . . . 24 | |
| 5.7. Device ID Choice . . . . . . . . . . . . . . . . . . . . 29 | 6.2. PANA Message Header . . . . . . . . . . . . . . . . . . . 24 | |
| 5.8. PaC Updating its IP Address . . . . . . . . . . . . . . . 30 | 6.3. AVP Header . . . . . . . . . . . . . . . . . . . . . . . . 26 | |
| 5.9. Session Lifetime . . . . . . . . . . . . . . . . . . . . 31 | 7. PANA Messages . . . . . . . . . . . . . . . . . . . . . . . . 29 | |
| 5.10. Network Selection . . . . . . . . . . . . . . . . . . . . 31 | 7.1. PANA-Client-Initiation (PCI) . . . . . . . . . . . . . . . 31 | |
| 5.11. Error Handling . . . . . . . . . . . . . . . . . . . . . 32 | 7.2. PANA-Start-Request (PSR) . . . . . . . . . . . . . . . . . 31 | |
| 6. Header Format . . . . . . . . . . . . . . . . . . . . . . . . 33 | 7.3. PANA-Start-Answer (PSA) . . . . . . . . . . . . . . . . . 31 | |
| 6.1. IP and UDP Headers . . . . . . . . . . . . . . . . . . . 33 | 7.4. PANA-Auth-Request (PAR) . . . . . . . . . . . . . . . . . 32 | |
| 6.2. PANA Header . . . . . . . . . . . . . . . . . . . . . . . 33 | 7.5. PANA-Auth-Answer (PAN) . . . . . . . . . . . . . . . . . . 32 | |
| 6.3. AVP Header . . . . . . . . . . . . . . . . . . . . . . . 35 | 7.6. PANA-Reauth-Request (PRR) . . . . . . . . . . . . . . . . 32 | |
| 7. PANA Messages . . . . . . . . . . . . . . . . . . . . . . . . 39 | 7.7. PANA-Reauth-Answer (PRA) . . . . . . . . . . . . . . . . . 32 | |
| 7.1. PANA-PAA-Discover (PDI) . . . . . . . . . . . . . . . . . 41 | 7.8. PANA-Bind-Request (PBR) . . . . . . . . . . . . . . . . . 32 | |
| 7.2. PANA-Start-Request (PSR) . . . . . . . . . . . . . . . . 42 | 7.9. PANA-Bind-Answer (PBA) . . . . . . . . . . . . . . . . . . 33 | |
| 7.3. PANA-Start-Answer (PSA) . . . . . . . . . . . . . . . . . 42 | 7.10. PANA-Ping-Request (PPR) . . . . . . . . . . . . . . . . . 33 | |
| 7.4. PANA-Auth-Request (PAR) . . . . . . . . . . . . . . . . . 42 | 7.11. PANA-Ping-Answer (PPA) . . . . . . . . . . . . . . . . . . 33 | |
| 7.5. PANA-Auth-Answer (PAN) . . . . . . . . . . . . . . . . . 43 | 7.12. PANA-Termination-Request (PTR) . . . . . . . . . . . . . . 33 | |
| 7.6. PANA-Reauth-Request (PRAR) . . . . . . . . . . . . . . . 43 | 7.13. PANA-Termination-Answer (PTA) . . . . . . . . . . . . . . 34 | |
| 7.7. PANA-Reauth-Answer (PRAA) . . . . . . . . . . . . . . . . 43 | 7.14. PANA-Error-Request (PER) . . . . . . . . . . . . . . . . . 34 | |
| 7.8. PANA-Bind-Request (PBR) . . . . . . . . . . . . . . . . . 43 | 7.15. PANA-Error-Answer (PEA) . . . . . . . . . . . . . . . . . 34 | |
| 7.9. PANA-Bind-Answer (PBA) . . . . . . . . . . . . . . . . . 44 | 7.16. PANA-Update-Request (PUR) . . . . . . . . . . . . . . . . 34 | |
| 7.10. PANA-Ping-Request (PPR) . . . . . . . . . . . . . . . . . 44 | 7.17. PANA-Update-Answer (PUA) . . . . . . . . . . . . . . . . . 34 | |
| 7.11. PANA-Ping-Answer (PPA) . . . . . . . . . . . . . . . . . 44 | 8. AVPs in PANA . . . . . . . . . . . . . . . . . . . . . . . . . 36 | |
| 7.12. PANA-Termination-Request (PTR) . . . . . . . . . . . . . 45 | 8.1. Algorithm AVP . . . . . . . . . . . . . . . . . . . . . . 37 | |
| 7.13. PANA-Termination-Answer (PTA) . . . . . . . . . . . . . . 45 | 8.2. AUTH AVP . . . . . . . . . . . . . . . . . . . . . . . . . 37 | |
| 7.14. PANA-Error-Request (PER) . . . . . . . . . . . . . . . . 45 | 8.3. EAP-Payload AVP . . . . . . . . . . . . . . . . . . . . . 37 | |
| 7.15. PANA-Error-Answer (PEA) . . . . . . . . . . . . . . . . . 45 | 8.4. Failed-AVP AVP . . . . . . . . . . . . . . . . . . . . . . 38 | |
| 7.16. PANA-FirstAuth-End-Request (PFER) . . . . . . . . . . . . 46 | 8.5. Failed-Message-Header AVP . . . . . . . . . . . . . . . . 38 | |
| 7.17. PANA-FirstAuth-End-Answer (PFEA) . . . . . . . . . . . . 46 | 8.6. Key-Id AVP . . . . . . . . . . . . . . . . . . . . . . . . 38 | |
| 7.18. PANA-Update-Request (PUR) . . . . . . . . . . . . . . . . 46 | 8.7. Nonce AVP . . . . . . . . . . . . . . . . . . . . . . . . 38 | |
| 7.19. PANA-Update-Answer (PUA) . . . . . . . . . . . . . . . . 46 | 8.8. Result-Code AVP . . . . . . . . . . . . . . . . . . . . . 39 | |
| 8. AVPs in PANA . . . . . . . . . . . . . . . . . . . . . . . . . 48 | 8.8.1. Authentication Results Codes . . . . . . . . . . . . . 39 | |
| 8.1. Algorithm AVP . . . . . . . . . . . . . . . . . . . . . . 50 | 8.8.2. Protocol Error Result Codes . . . . . . . . . . . . . 39 | |
| 8.2. AUTH AVP . . . . . . . . . . . . . . . . . . . . . . . . 50 | 8.9. Session-Lifetime AVP . . . . . . . . . . . . . . . . . . . 42 | |
| 8.3. Cookie AVP . . . . . . . . . . . . . . . . . . . . . . . 51 | 8.10. Termination-Cause AVP . . . . . . . . . . . . . . . . . . 42 | |
| 8.4. Device-Id AVP . . . . . . . . . . . . . . . . . . . . . . 51 | 9. Retransmission Timers . . . . . . . . . . . . . . . . . . . . 43 | |
| 8.5. EAP-Payload AVP . . . . . . . . . . . . . . . . . . . . . 51 | 9.1. Transmission and Retransmission Parameters . . . . . . . . 44 | |
| 8.6. Failed-AVP AVP . . . . . . . . . . . . . . . . . . . . . 51 | 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 46 | |
| 8.7. ISP-Information AVP . . . . . . . . . . . . . . . . . . . 51 | 10.1. PANA UDP Port Number . . . . . . . . . . . . . . . . . . . 46 | |
| 8.8. Key-Id AVP . . . . . . . . . . . . . . . . . . . . . . . 52 | 10.2. PANA Message Header . . . . . . . . . . . . . . . . . . . 46 | |
| 8.9. NAP-Information AVP . . . . . . . . . . . . . . . . . . . 52 | 10.2.1. Version . . . . . . . . . . . . . . . . . . . . . . . 46 | |
| 8.10. Nonce AVP . . . . . . . . . . . . . . . . . . . . . . . . 52 | 10.2.2. Message Type . . . . . . . . . . . . . . . . . . . . . 46 | |
| 8.11. Notification AVP . . . . . . . . . . . . . . . . . . . . 53 | 10.2.3. Flags . . . . . . . . . . . . . . . . . . . . . . . . 47 | |
| 8.12. Post-PANA-Address-Configuration (PPAC) AVP . . . . . . . 53 | 10.3. AVP Header . . . . . . . . . . . . . . . . . . . . . . . . 47 | |
| 8.13. Protection-Capability AVP . . . . . . . . . . . . . . . . 55 | 10.3.1. AVP Code . . . . . . . . . . . . . . . . . . . . . . . 47 | |
| 8.14. Provider-Identifier AVP . . . . . . . . . . . . . . . . . 55 | 10.3.2. Flags . . . . . . . . . . . . . . . . . . . . . . . . 48 | |
| 8.15. Provider-Name AVP . . . . . . . . . . . . . . . . . . . . 55 | 10.4. AVP Values . . . . . . . . . . . . . . . . . . . . . . . . 48 | |
| 8.16. Result-Code AVP . . . . . . . . . . . . . . . . . . . . . 55 | 10.4.1. Result-Code AVP Values . . . . . . . . . . . . . . . . 48 | |
| 8.16.1. Authentication Results Codes . . . . . . . . . . . . . 55 | 10.4.2. Termination-Cause AVP Values . . . . . . . . . . . . . 48 | |
| 8.16.2. Protocol Error Result Codes . . . . . . . . . . . . . 56 | 11. Security Considerations . . . . . . . . . . . . . . . . . . . 49 | |
| 8.17. Session-Id AVP . . . . . . . . . . . . . . . . . . . . . 58 | 11.1. General Security Measures . . . . . . . . . . . . . . . . 49 | |
| 8.18. Session-Lifetime AVP . . . . . . . . . . . . . . . . . . 59 | 11.2. Handshake . . . . . . . . . . . . . . . . . . . . . . . . 50 | |
| 8.19. Termination-Cause AVP . . . . . . . . . . . . . . . . . . 59 | 11.3. EAP Methods . . . . . . . . . . . . . . . . . . . . . . . 51 | |
| 9. Retransmission Timers . . . . . . . . . . . . . . . . . . . . 60 | 11.4. Cryptographic Keys . . . . . . . . . . . . . . . . . . . . 51 | |
| 9.1. Transmission and Retransmission Parameters . . . . . . . 61 | 11.5. Per-packet Ciphering . . . . . . . . . . . . . . . . . . . 51 | |
| 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 63 | 11.6. PAA-to-EP Communication . . . . . . . . . . . . . . . . . 52 | |
| 10.1. PANA UDP Port Number . . . . . . . . . . . . . . . . . . 63 | 11.7. Liveness Test . . . . . . . . . . . . . . . . . . . . . . 52 | |
| 10.2. PANA Multicast Address . . . . . . . . . . . . . . . . . 63 | 11.8. IP Address Spoofing . . . . . . . . . . . . . . . . . . . 52 | |
| 10.3. PANA Header . . . . . . . . . . . . . . . . . . . . . . . 63 | 11.9. Early Termination of a Session . . . . . . . . . . . . . . 52 | |
| 10.3.1. Message Type . . . . . . . . . . . . . . . . . . . . . 63 | 12. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 54 | |
| 10.3.2. Flags . . . . . . . . . . . . . . . . . . . . . . . . 64 | 13. References . . . . . . . . . . . . . . . . . . . . . . . . . . 55 | |
| 10.4. AVP Header . . . . . . . . . . . . . . . . . . . . . . . 64 | 13.1. Normative References . . . . . . . . . . . . . . . . . . . 55 | |
| 10.4.1. AVP Code . . . . . . . . . . . . . . . . . . . . . . . 64 | 13.2. Informative References . . . . . . . . . . . . . . . . . . 55 | |
| 10.4.2. Flags . . . . . . . . . . . . . . . . . . . . . . . . 65 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 57 | |
| 10.5. AVP Values . . . . . . . . . . . . . . . . . . . . . . . 65 | Intellectual Property and Copyright Statements . . . . . . . . . . 59 | |
| 10.5.1. Post-PANA-Address-Configuration AVP Values . . . . . . 65 | ||
| 10.5.2. Protection-Capability AVP Values . . . . . . . . . . . 65 | ||
| 10.5.3. Result-Code AVP Values . . . . . . . . . . . . . . . . 65 | ||
| 10.5.4. Termination-Cause AVP Values . . . . . . . . . . . . . 65 | ||
| 11. Security Considerations . . . . . . . . . . . . . . . . . . . 67 | ||
| 11.1. General Security Measures . . . . . . . . . . . . . . . . 67 | ||
| 11.2. Discovery . . . . . . . . . . . . . . . . . . . . . . . . 68 | ||
| 11.3. EAP Methods . . . . . . . . . . . . . . . . . . . . . . . 69 | ||
| 11.4. Separate NAP and ISP Authentication . . . . . . . . . . . 69 | ||
| 11.5. Cryptographic Keys . . . . . . . . . . . . . . . . . . . 69 | ||
| 11.6. Per-packet Ciphering . . . . . . . . . . . . . . . . . . 70 | ||
| 11.7. PAA-to-EP Communication . . . . . . . . . . . . . . . . . 70 | ||
| 11.8. Liveness Test . . . . . . . . . . . . . . . . . . . . . . 71 | ||
| 11.9. Updating PaC's IP Address . . . . . . . . . . . . . . . . 71 | ||
| 11.10. Early Termination of a Session . . . . . . . . . . . . . 71 | ||
| 12. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 72 | ||
| 13. References . . . . . . . . . . . . . . . . . . . . . . . . . . 73 | ||
| 13.1. Normative References . . . . . . . . . . . . . . . . . . 73 | ||
| 13.2. Informative References . . . . . . . . . . . . . . . . . 74 | ||
| Appendix A. Example Sequence of Separate NAP and ISP | ||
| Authentication . . . . . . . . . . . . . . . . . . . 76 | ||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 78 | ||
| Intellectual Property and Copyright Statements . . . . . . . . . . 80 | ||
| 1. Introduction | 1. Introduction | |
| Providing secure network access service requires access control based | Providing secure network access service requires access control based | |
| on the authentication and authorization of the clients and the access | on the authentication and authorization of the clients and the access | |
| networks. Client-to-network authentication provides parameters that | networks. Client-to-network authentication provides parameters that | |
| are needed to police the traffic flow through the enforcement points. | are needed to police the traffic flow through the enforcement points. | |
| A protocol is needed to carry authentication methods between the | A protocol is needed to carry authentication methods between the | |
| client and the access network. | client and the access network. | |
| Currently there is no standard network-layer solution for | Scope of this work is identified as designing a network layer | |
| authenticating clients for network access. Appendix A of [RFC4058] | ||
| describes the problem statement that led to the development of PANA. | ||
| Scope of this work is identified as designing a link-layer agnostic | ||
| transport for network access authentication methods. The Extensible | transport for network access authentication methods. The Extensible | |
| Authentication Protocol (EAP) [RFC3748] provides such authentication | Authentication Protocol (EAP) [RFC3748] provides such authentication | |
| methods. In other words, PANA will carry EAP which can carry various | methods. In other words, PANA will carry EAP which can carry various | |
| authentication methods. By the virtue of enabling transport of EAP | authentication methods. By the virtue of enabling transport of EAP | |
| above IP, any authentication method that can be carried as an EAP | above IP, any authentication method that can be carried as an EAP | |
| method is made available to PANA and hence to any link-layer | method is made available to PANA and hence to any link-layer | |
| technology. There is a clear division of labor between PANA (an EAP | technology. There is a clear division of labor between PANA (an EAP | |
| lower layer), EAP and EAP methods as described in [RFC3748]. | lower layer), EAP and EAP methods as described in [RFC3748]. | |
| Various environments and usage models for PANA are identified in | Various environments and usage models for PANA are identified in | |
| Appendix A of [RFC4058]. Potential security threats for network- | Appendix A of [RFC4058]. Potential security threats for | |
| layer access authentication protocol are discussed in [RFC4016]. | network-layer access authentication protocol are discussed in | |
| These have been essential in defining the requirements [RFC4058] on | [RFC4016]. These have been essential in defining the requirements | |
| the PANA protocol. Note that some of these requirements are imposed | [RFC4058] on the PANA protocol. Note that some of these requirements | |
| by the chosen payload, EAP [RFC3748]. | are imposed by the chosen payload, EAP [RFC3748]. | |
| There are components that are part of a complete secure network | There are components that are part of a complete secure network | |
| access solution but are outside of the PANA protocol specification, | access solution but are outside of the PANA protocol specification, | |
| including IP address configuration, authentication method choice, | including authentication method choice, data traffic protection, | |
| filter rule installation, data traffic protection and PAA-EP | PAA-EP protocol, and PAA discovery. PANA authentication output is | |
| protocol. These components are described in separate documents (see | used for creating access control filters. These components are | |
| [I-D.ietf-pana-framework] and [I-D.ietf-pana-snmp]). The readers are | described in separate documents (see [I-D.ietf-pana-framework], | |
| recommended to go through the PANA Framework document [I-D.ietf-pana- | [I-D.ietf-pana-snmp] and [I-D.ietf-dhc-paa-option]). The readers are | |
| framework] prior to reading this protocol specification document. | recommended to read 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 access device | The client side of the protocol that resides in the access device | |
| (e.g., laptop, PDA, etc.). It is responsible for providing the | (e.g., laptop, PDA, etc.). It is responsible for providing the | |
| credentials in order to prove its identity (authentication) for | credentials in order to prove its identity (authentication) for | |
| network access authorization. The PaC and the EAP peer are co- | network access authorization. The PaC and the EAP peer are | |
| located in the same access device. | 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 access device. The PAA and the | |
| and identified by a Device Identifier (DI). The PAA and the EAP | EAP authenticator (and optionally the EAP server) are co-located | |
| authenticator (and optionally the EAP server) are co-located in | in the same node. Note the authentication and authorization | |
| the same node. Note the authentication and authorization | procedure can, according to the EAP model, also be offloaded to | |
| procedure can, according to the EAP model, be also offloaded to | ||
| the backend AAA infrastructure. | the backend AAA infrastructure. | |
| PANA Session: | PANA Session: | |
| A PANA session begins with the handshake between the PANA Client | A PANA session 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 or liveness test failure, a message | result of an authentication or liveness test failure, a message | |
| delivery failure after retransmissions reach maximum values, | delivery failure after retransmissions reach maximum values, | |
| session lifetime expiration, or an explicit termination message. | session lifetime expiration, or an explicit termination message. | |
| A fixed session identifier is maintained throughout a session. A | A fixed session identifier is maintained throughout a session. A | |
| session cannot be shared across multiple network interfaces. Only | session cannot be shared across multiple network interfaces. | |
| one device identifier of the PaC is allowed to be bound to a PANA | ||
| session for simplicity. | ||
| Session Lifetime: | Session Lifetime: | |
| A duration that is associated with a PANA session. For an | A duration that is associated with a PANA session. For an | |
| established PANA session, the session lifetime is bound to the | established PANA session, the session lifetime is bound to the | |
| lifetime of the current authorization given to the PaC. The | lifetime of the current authorization given to the PaC. The | |
| session lifetime can be updated by a new round of EAP | session lifetime can be updated by a new round of EAP | |
| authentication before it expires. | authentication before it expires. | |
| 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 | PaC and the PAA. It is included in PANA messages to bind the | |
| cannot be shared across multiple PAAs. It is included in PANA | message to a specific PANA session. This bidirectional identifier | |
| messages to bind the message to a specific PANA session. This | is allocated by the PAA in handshake phase and freed when the | |
| bidirectional identifier is allocated by the PAA following the | session terminates. The session identifier is assigned by the PAA | |
| handshake and freed when the session terminates. | and unique within the PAA during the lifetime of the session. | |
| PANA Security Association (PANA SA): | PANA Security Association (PANA SA): | |
| A PANA security association is formed between the PaC and the PAA | A PANA security association is formed between the PaC and the PAA | |
| by sharing cryptographic keying material and associated context. | by sharing cryptographic keying material and associated context. | |
| The formed duplex security association is used to protect the | The formed duplex security association is used to protect the | |
| bidirectional PANA signaling traffic between the PaC and the PAA. | bidirectional PANA signaling traffic between the PaC and PAA. | |
| Device Identifier (DI): | ||
| The identifier used by the network as a handle to control and | ||
| police the network access of a device. Depending on the access | ||
| technology, this identifier may contain an address that is carried | ||
| in protocol headers (e.g., IP or link-layer address), or a locally | ||
| significant identifier that is made available by the local | ||
| protocol stack (e.g., circuit id, PPP interface id) of a connected | ||
| 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 | |
| access devices. Information such as the DI and (optionally) | access devices. The EP and the PAA may be co-located. EPs should | |
| cryptographic keys are provided by the PAA per client for | prevent data traffic from and to any unauthorized client unless | |
| generating filters on the EP. The EP and PAA may be co-located. | it's either PANA or one of the other allowed traffic types (e.g., | |
| ARP, IPv6 neighbor discovery, DHCP, etc.). Detailed enforcement | ||
| Network Access Provider (NAP): | policies may be specified in deployment-specific PANA | |
| applicability documents. | ||
| A service provider that provides physical and link-layer | ||
| connectivity to an access network it manages. | ||
| AAA-Key: | Master Session Key (MSK): | |
| A key derived by the EAP peer and EAP server and transported to | A key derived by the EAP peer and the EAP server and transported | |
| the authenticator [I-D.ietf-eap-keying]. | to the EAP authenticator [RFC3748]. | |
| For additional terminology definitions see the PANA framework | For additional terminology definitions see the PANA framework | |
| document [I-D.ietf-pana-framework]. | document [I-D.ietf-pana-framework]. | |
| 3. Protocol Overview | 3. Protocol Overview | |
| The PANA protocol is run between a client (PaC) and a server (PAA) in | The PANA protocol is run between a client (PaC) and a server (PAA) in | |
| order to perform authentication and authorization for the network | order to perform authentication and authorization for the network | |
| access service. | access service. | |
| Skipping to change at page 8, line 23: | ||
| zero or more AVPs within the payload. The main payload of PANA is | zero or more AVPs within the payload. The main payload of PANA is | |
| EAP which performs authentication. PANA helps the PaC and PAA | EAP which performs authentication. PANA helps the PaC and PAA | |
| establish an EAP session. | establish an EAP session. | |
| PANA is a UDP-based protocol. It has its own retransmission | PANA is a UDP-based protocol. It has its own retransmission | |
| mechanism to reliably deliver messages. | mechanism to reliably deliver messages. | |
| PANA messages are sent between the PaC and PAA as part of a PANA | PANA messages are sent between the PaC and PAA as part of a PANA | |
| session. A PANA session consists of distinct phases: | session. A PANA session consists of distinct phases: | |
| o Discovery and handshake phase: This is the phase that initiates a | o Handshake phase: This is the phase that initiates a new PANA | |
| new PANA session. The PaC discovers the PAA(s) by either | session. The handshake phase can be triggered by both the PaC and | |
| explicitly soliciting advertisements for them or receiving | the PAA. | |
| unsolicited advertisements. The PaC's answer sent in response to | ||
| an advertisement starts a new session. | ||
| o Authentication and authorization phase: Immediately following the | o Authentication and authorization phase: Immediately following the | |
| discovery and handshake phase is the EAP execution between the PAA | handshake phase is the EAP execution between the PAA and PaC. The | |
| and PaC. The EAP payload (which carry an EAP method inside) is | EAP payload (which carry an EAP method inside) is what is used for | |
| what is used for authentication. The PAA conveys the result of | authentication. The PAA conveys the result of authentication and | |
| authentication and authorization to the PaC at the end of this | authorization to the PaC at the end of this phase. | |
| phase. This phase may involve execution of two EAP sessions back- | ||
| to-back, one for the NAP and one for the ISP. | ||
| o Access phase: After a successful authentication and authorization | o Access phase: After a successful authentication and authorization | |
| the host gains access to the network and can send and receive IP | the host gains access to the network and can send and receive IP | |
| data traffic through the EP(s). At any time during this phase, | data traffic through the EP(s). At any time during this phase, | |
| the PaC and PAA may optionally send PANA ping messages to test | the PaC and PAA may optionally send PANA ping messages to test | |
| liveness of the PANA session on the peer. | liveness of the PANA session on the peer. | |
| o Re-authentication phase: During the access phase, the PAA must | o Re-authentication phase: During the access phase, the PAA must | |
| initiate re-authentication before the PANA session lifetime | initiate re-authentication before the PANA session lifetime | |
| expires. EAP is carried by PANA to perform authentication. This | expires. EAP is carried by PANA to perform authentication. This | |
| Skipping to change at page 9, line 11: | ||
| o Termination phase: The PaC or PAA may choose to discontinue the | o Termination phase: The PaC or PAA may choose to discontinue the | |
| access service at any time. An explicit disconnect message can be | access service at any time. An explicit disconnect message can be | |
| sent by either end. If either the PaC or the PAA disconnects | sent by either end. If either the PaC or the PAA disconnects | |
| without engaging in termination messaging, it is expected that | without engaging in termination messaging, it is expected that | |
| either the expiration of a finite session lifetime or failed | either the expiration of a finite session lifetime or failed | |
| liveness tests would clean up the session at the other end. | liveness tests would clean up the session at the other end. | |
| PaC PAA Message | PaC PAA Message | |
| ----------------------------------------------------- | ----------------------------------------------------- | |
| // Discovery and handshake phase | // Handshake phase | |
| -----> PANA-PAA-Discover | -----> PANA-Client-Initiation | |
| <----- PANA-Start-Request | <----- PANA-Start-Request | |
| -----> PANA-Start-Answer | -----> PANA-Start-Answer | |
| // Authentication and authorization 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 | |
| Skipping to change at page 9, line 35: | ||
| <----- 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 | Note that depending on the environment and deployment the protocol | |
| flow depicted in Figure 1 can be abbreviated (An unsolicited PANA- | flow depicted in Figure 1 can be abbreviated (An unsolicited | |
| Start-Request can be sent without a triggering PANA-PAA-Discover, EAP | PANA-Start-Request message can be sent without | |
| responses can be piggybacked on the PANA-Auth-Answers, and PANA-Ping | PANA-Client-Initiation, EAP responses can be piggybacked on the | |
| and PANA-Termination usage is optional). | PANA-Auth-Answers, and PANA-Ping and PANA-Termination usage is | |
| optional). | ||
| Cryptographic protection of messages between the PaC and PAA is | Cryptographic protection of messages between the PaC and PAA is | |
| possible as soon as EAP in conjunction with the EAP method exports a | possible as soon as EAP in conjunction with the EAP method exports a | |
| shared key. That shared key is used to create a PANA SA. The PANA | shared key. That shared key is used to create a PANA SA. The PANA | |
| SA helps generate per-message authentication codes that provide | SA helps generate per-message authentication codes that provide | |
| integrity protection and authentication. | integrity protection and authentication. | |
| Throughout the lifetime of a session, various problems found with the | 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. Transport Layer | 4.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 To Be Assigned by IANA. All messages except for PANA-PAA-Discover | is To Be Assigned by IANA. All messages are always unicast. | |
| are always unicast. The PANA-PAA-Discover message MAY be unicast | ||
| when the PaC knows the IP address of the PAA. | ||
| 4.2. Payload Encoding | 4.2. High-Level Attribute-Value Pair Description | |
| The payload of any PANA message consists of zero or more AVPs | The payload of any PANA message consists of zero or more AVPs | |
| (Attribute Value Pairs). The subsequent sections refer to these | (Attribute Value Pairs). The subsequent sections refer to these | |
| AVPs, therefore the list of AVPs are provided with a brief | AVPs, therefore the list of AVPs are provided with a brief | |
| description before more extensive descriptions are included later in | description before more extensive descriptions are included later in | |
| the document (see Section 8). | the document (see Section 8). | |
| o Algorithm AVP: contains a pseudo-random function and an integrity | o Algorithm AVP: contains a pseudo-random function and an integrity | |
| algorithm. | algorithm. | |
| o AUTH AVP: contains a Message Authentication Code that integrity | o AUTH AVP: contains a Message Authentication Code that integrity | |
| protects the PANA message. | protects the PANA message. | |
| o Cookie AVP: contains a random value that is generated by the PAA | ||
| according to [RFC4086] and used for making PAA discovery robust | ||
| against blind resource consumption DoS attacks. | ||
| 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 EAP AVP: contains an EAP PDU. | |
| o Failed-AVP: contains an offending AVP that caused a failure. | o Failed-AVP: contains an offending AVP that caused a failure. | |
| o Key-Id AVP: contains a AAA-Key identifier. | o Failed-Message-Header AVP: contains the header of an offending | |
| message that caused a failure. | ||
| 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 NAP-Information AVP, ISP-Information AVP: contains the identifier | o Key-Id AVP: contains an MSK identifier. | |
| of a NAP and an ISP, respectively. | ||
| o Nonce AVP: contains a randomly chosen value [RFC4086] that is used | o Nonce AVP: contains a randomly chosen value [RFC4086] that is used | |
| in cryptographic key computations. | in cryptographic key computations. | |
| o Notification AVP: contains a displayable message. | ||
| o Provider-Identifier AVP: contains the identifier of a NAP or an | ||
| ISP. | ||
| 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 Provider-Name AVP: contains a name of a NAP or an ISP. | ||
| o Result-Code AVP: contains information about the protocol execution | o Result-Code AVP: contains information about the protocol execution | |
| results. | results. | |
| o Session-Id AVP: contains the PANA session identifier value. | ||
| o Session-Lifetime AVP: contains the duration of authorized access. | o Session-Lifetime AVP: contains the duration of authorized access. | |
| o Termination-Cause AVP: contains the reason of session termination. | o Termination-Cause AVP: contains the reason of session termination. | |
| 4.3. Discovery and Handshake Phase | 4.3. Handshake Phase | |
| When the PaC knows the IP address of the PAA, it can send a unicast | ||
| PANA-PAA-Discover message and initiate the PANA exchange. In other | ||
| cases, the PaC MUST rely on dynamic discovery methods, such as | ||
| multicast-based and a traffic-driven discovery. | ||
| Multicast-based Discovery: | ||
| The PaCs and PAAs MUST implement multicast-based discovery where | ||
| the PaC sends a PANA-PAA-Discover message to a well-known | ||
| administratively scoped multicast address (To Be Assigned by IANA) | ||
| and UDP port (To Be Assigned by IANA). | ||
| The network administrator MUST configure the multicast scope such | ||
| that the discovery messages can reach only the designated PAA(s). | ||
| In case the PAA(s) is on the same link as the PaC, the | ||
| administratively scoped multicast messages MUST not be forwarded | ||
| by the routers. Details of scope configuration are discussed in | ||
| [RFC2365]. | ||
| The PAA(s) that receive the discovery message MUST respond with a | The handshake phase can be initiated by either the PaC or the PAA. | |
| unicast PANA-Start-Request message sent to the soliciting PaC. | ||
| Traffic-driven Discovery: | PaC-initiated Handshake: | |
| Alternatively, the PaC MAY also choose to start sending data | When the PaC initiates the handshake phase, it sends a | |
| packets before getting authenticated. The EP in an access network | PANA-Client-Initiation message to the PAA. When the PaC is not | |
| that implements PANA SHOULD drop such unauthorized packets upon | configured with an IP address of the PAA before initiating the | |
| receipt. Additionally, the EP MAY also take this traffic as an | handshake phase, DHCP [I-D.ietf-dhc-paa-option] is used as the | |
| indication of unauthorized PaC and notify the PAA. The EP-to-PAA | default method for dynamically configuring the IP address of the | |
| notification SHOULD be sent via [I-D.ietf-pana-snmp]. In | PAA. Alternative methods for dynamically discovering the IP | |
| response, the PAA SHOULD send an unsolicited PANA-Start-Request | address of the PAA may be used for PaC-initiated handshake but | |
| message to the PaC. This is called traffic-driven PAA discovery | they are outside the scope of this specification. The PAA that | |
| (an alternative to the PaC explicitly soliciting for a PAA). | receives the PANA-Client-Initiation message MUST respond with a | |
| Deployment of this alternate scheme is optional. | PANA-Start-Request message sent to the PaC. | |
| Other Alternatives: | PAA-initiated Handshake: | |
| The EP-to-PAA notification MAY also be generated in response to | When the PAA knows the IP address of the PaC, it MAY send an | |
| receiving a link-up event notification on the EP [I-D.ietf-dna- | unsolicited PANA-Start-Request to the PaC. The details of how PAA | |
| link-information]. | can learn the IP address of the PaC are outside the scope of this | |
| specification. | ||
| Alternative PAA discovery schemes may be designed (e.g., DHCP- | A session identifier for the session is assigned by the PAA in the | |
| based) but they are outside the scope of this specification. | handshake phase and carried in the PANA-Start-Request message. The | |
| same session identifier MUST be carried in the subsequent messages | ||
| exchanged between the PAA and PaC throughout the session. | ||
| When the PaC receives a PANA-Start-Request message from a PAA, it | When the PaC receives a PANA-Start-Request message from a PAA, it | |
| responds with a PANA-Start-Answer message if it wishes to enter the | responds with a PANA-Start-Answer message if it wishes to enter the | |
| authentication and authorization phase. | authentication and authorization phase. | |
| There can be multiple PAAs in the access network and the PaC may | The PAA MAY limit the rate it processes incoming | |
| receive multiple PANA-Start-Request messages from those PAAs. The | PANA-Client-Initiation messages. | |
| authentication and authorization result does not depend on which PAA | ||
| is chosen by the PaC. By default the PaC MAY choose the PAA that | ||
| sent the first PANA-Start-Request message. | ||
| A PANA-Start-Request message MAY carry a Cookie AVP that contains a | ||
| random value generated by the PAA. The random value is referred to | ||
| as a cookie. The cookie is used for preventing the PAA from resource | ||
| consumption DoS attacks by blind attackers which bombard the PAA with | ||
| PANA-PAA-Discover messages. By relying on a cookie mechanism the PAA | ||
| can avoid per-PaC state creation until after the PaC can produce the | ||
| same cookie in its PANA-Start-Answer message. In order to do that, | ||
| the cookie MUST be computed in such a way that it does not require | ||
| 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. | ||
| Additionally, the PAA MAY limit the rate it processes incoming PANA- | ||
| PAA-Discover messages. | ||
| 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 | ||
| Cookie AVP with the cookie value copied from the request. | ||
| When the PAA receives the PANA-Start-Answer message from the PaC, it | ||
| verifies the cookie. The cookie is considered as valid if the | ||
| received cookie matches the send cookie. If the match is verified, | ||
| the protocol enters the authentication and authorization phase. | ||
| Otherwise, the PAA MUST silently discard the received message. | ||
| The initial EAP Request message MAY be optionally carried by the | ||
| PANA-Start-Request (as opposed to by a later PANA-Auth-Request) | ||
| message in order to reduce the number of round-trips. This | ||
| optimization SHOULD NOT be used if the PAA discovery is desired to be | ||
| stateless since transmission of an EAP Request message creates a | ||
| state at EAP layer. See [RFC4137] for more information on the EAP | ||
| state machine and the allocation of state information in the | ||
| respective protocol steps. | ||
| A Protection-Capability AVP, an Algorithm AVP and a Post-PANA- | ||
| Address-Configuration (PPAC) AVP MAY be included in the PANA-Start- | ||
| Request in order to indicate required and available capabilities for | ||
| the network access. These AVPs MAY be used by the PaC for assessing | ||
| the capability match even before the authentication takes place. | ||
| Since these AVPs are provided during the insecure discovery and | ||
| handshake phase, there are certain security risks involved in using | ||
| the provided information. See Section 11 for further discussion on | ||
| this. | ||
| If the initial EAP Request message is carried in the PANA-Start- | ||
| Request message, an EAP Response message MUST be carried in the PANA- | ||
| Start-Answer message returned to the PAA. | ||
| The PANA-Start-Request/Answer exchange is needed before entering the | An Algorithm AVP MAY be included in the PANA-Start-Request in order | |
| authentication and authorization phase even when the PaC is pre- | to indicate required and available capabilities for the network | |
| configured with the IP address of the PAA and the PANA-PAA-Discover | access. This AVP MAY be used by the PaC for assessing the capability | |
| message is unicast. | match even before the authentication takes place. Since this AVP is | |
| provided during the insecure handshake phase, there are certain | ||
| security risks involved in using the provided information. See | ||
| Section 11 for further discussion on this. | ||
| A Nonce AVP MUST be included in the first PANA-Auth-Request and PANA- | The initial EAP Request message MAY be carried by the | |
| Auth-Answer messages in the authentication and authorization phase | PANA-Start-Request message (as oppose to by a later PANA-Auth-Request | |
| when stateless PAA discovery is used, and in PANA-Start-Request and | message) in order to reduce the number of round-trips. If the | |
| PANA-Start-Answer messages in this phase otherwise. | initial EAP Request message is carried in the PANA-Start-Request | |
| message, an EAP Response message MUST be carried in the | ||
| PANA-Start-Answer message returned to the PAA. | ||
| A PANA-Start-Request message in stateless PAA discovery MUST NOT be | In order to prevent potential DoS attacks, the PAA MAY refrain from | |
| retransmitted as this voids the statelessness on the PAA. Instead, | timeout-based retransmission of the PANA-Start-Request message in | |
| the PaC MUST retransmit the PANA-PAA-Discover message until it | response to a PaC-initiated handshake. For this reason, the PaC MUST | |
| receives a PANA-Start-Request message, and retransmit the PANA-Start- | retransmit the PANA-Client-Initiation message until it enters the | |
| Answer message until it receives a PANA-Auth-Request message. The | authentication and authorization phase by receiving the first | |
| PaC can determine whether the PAA is using stateless PAA discovery by | PANA-Auth-Request message from the PAA. | |
| looking at the L-flag in the PANA header. The PANA-Start-Request | ||
| message MUST be retransmitted instead of the PANA-Start-Answer | ||
| message when stateful PAA discovery is used (L-flag is not set). | ||
| 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 handshake | |
| and handshake procedure at the same time, i.e., the PAA sends a PANA- | procedure at the same time, i.e., the PAA sends a PANA-Start-Request | |
| Start-Request message while the PaC sends a PANA-PAA-Discover | message while the PaC sends a PANA-Client-Initiation message. To | |
| message. To resolve the race condition, the PAA SHOULD silently | resolve the race condition, the PAA SHOULD silently discard the | |
| discard the PANA-PAA-Discover message received from the PaC after it | PANA-Client-Initiation message received from the PaC after it has | |
| has sent a PANA-Start-Request message with creating a state (i.e., | sent a PANA-Start-Request message. | |
| L-flag is not set) for the PaC. In this case the PAA will retransmit | ||
| the PANA-Start-Request message based on a timer, if the PaC doesn't | ||
| respond in time (the message was lost for example). If the PAA had | ||
| sent a PANA-Start-Request message without creating a state for the | ||
| PaC (i.e., L-flag is set), 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 PaC-initiated handshake. | |
| phase when a PANA-PAA-Discover message is sent by the PaC. Figure 3 | ||
| shows an example sequence for the discovery and handshake phase with | ||
| traffic-driven PAA discovery. | ||
| PaC PAA Message(sequence number)[AVPs] | PaC PAA Message(sequence number)[AVPs] | |
| ------------------------------------------------------ | ------------------------------------------------------ | |
| -----> PANA-PAA-Discover(0) | -----> PANA-Client-Initiation(0) | |
| <----- PANA-Start-Request(x)[Cookie] | <----- PANA-Start-Request(x) | |
| -----> PANA-Start-Answer(x)[Cookie] | -----> PANA-Start-Answer(x) | |
| (continued to the authentication and | ||
| authorization phase) | ||
| Figure 2: Example sequence for the discovery and handshake phase when | ||
| PANA-PAA-Discover is sent by the PaC | ||
| PaC EP PAA Message(sequence number)[AVPs] | ||
| ------------------------------------------------------ | ||
| ---->o (Data packet arrival or L2 trigger) | ||
| ------> PAA-to-EP protocol, or another mechanism | ||
| <------------ PANA-Start-Request(x)[Cookie] | ||
| ------------> PANA-Start-Answer(x)[Cookie] | ||
| (continued to the authentication and | (continued to the authentication and | |
| authorization phase) | authorization phase) | |
| Figure 3: Example sequence for the discovery and handshake phase with | Figure 2: Example sequence for PaC-initiated handshake phase | |
| traffic-driven PAA discovery | ||
| 4.4. Authentication and Authorization Phase | 4.4. Authentication and Authorization Phase | |
| The main task of the authentication and authorization phase is to | The main task of the authentication and authorization phase is to | |
| carry EAP messages between the PaC and the PAA. EAP Request and | carry EAP messages between the PaC and the PAA. EAP Request and | |
| Response messages are carried in PANA-Auth-Request messages. PANA- | Response messages are carried in PANA-Auth-Request messages. | |
| Auth-Answer messages are simply used to acknowledge receipt of the | PANA-Auth-Answer messages are simply used to acknowledge receipt of | |
| requests. As an optimization, a PANA-Auth-Answer message MAY include | the requests. As an optimization, a PANA-Auth-Answer message MAY | |
| the EAP Response message. This optimization MAY not be used when it | include the EAP Response message. This optimization MAY not be used | |
| takes time to generate the EAP Response message (due to, e.g., | when it takes time to generate the EAP Response message (due to, | |
| intervention of human input), in which case returning an EAP-Auth- | e.g., intervention of human input), in which case returning an | |
| Answer message without piggybacking an EAP Response message can avoid | PANA-Auth-Answer message without piggybacking an EAP Response message | |
| unnecessary retransmission of the PANA-Auth-Request message. Another | can avoid unnecessary retransmission of the PANA-Auth-Request | |
| optimization allows optionally carrying the first EAP Request/ | message. Another optimization allows optionally carrying the first | |
| Response message in PANA-Start-Request/Answer message as described in | EAP Request/Response message in PANA-Start-Request/Answer message as | |
| Section 4.3. | described in Section 4.3. | |
| When stateless PAA discovery was performed in the discovery and | ||
| handshake phase, a Nonce AVP MUST be included in the first PANA-Auth- | ||
| Request and PANA-Auth-Answer messages. | ||
| PANA allows execution of two separate authentication methods, one | A Nonce AVP MUST be included in the first PANA-Auth-Request and | |
| with NAP and one with ISP under the same PANA session. This optional | PANA-Auth-Answer messages. | |
| feature may be offered by the PAA and accepted by the PaC. When | ||
| performed separately, the result of the first EAP authentication is | ||
| 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.8 for a detailed discussion on separate NAP and | ||
| ISP authentication. | ||
| The result of PANA authentication is carried in a PANA-Bind-Request | 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 | message sent from the PAA to the PaC. This message carries the EAP | |
| EAP authentication result (whether it is the second EAP | authentication result and the result of PANA authentication. The | |
| authentication result of NAP and ISP separate authentication, or the | PANA-Bind-Request message MUST be acknowledged with a | |
| sole EAP authentication result) and the result of PANA | PANA-Bind-Answer (PBA) message. Figure 3 shows an example sequence | |
| authentication. The PANA-Bind-Request message MUST be acknowledged | in the authentication and authorization phase. | |
| 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] | PaC PAA Message(sequence number)[AVPs] | |
| -------------------------------------------------------------------- | -------------------------------------------------------------------- | |
| (continued from the discovery and handshake phase) | (continued from the handshake phase) | |
| <----- PANA-Auth-Request(x+1) | <----- PANA-Auth-Request(x+1)[Nonce, EAP{Request}] | |
| [Session-Id, Nonce, EAP{Request}] | -----> PANA-Auth-Answer(x+1)[Nonce] // No piggybacking EAP Resp. | |
| -----> PANA-Auth-Answer(x+1) // No piggybacking EAP Response | -----> PANA-Auth-Request(y)[EAP{Response}] | |
| [Session-Id, Nonce] | ||
| -----> PANA-Auth-Request(y) | ||
| [Session-Id, EAP{Response}] | ||
| <----- PANA-Auth-Answer(y) | <----- PANA-Auth-Answer(y) | |
| [Session-Id] | <----- PANA-Auth-Request(x+2)[EAP{Request}] | |
| <----- PANA-Auth-Request(x+2) | -----> PANA-Auth-Answer(x+2)[EAP{Response}] | |
| [Session-Id, EAP{Request}] | <----- PANA-Bind-Request(x+3)[Result-Code, EAP{Success}, Key-Id, | |
| -----> PANA-Auth-Answer(x+2) // Piggybacking EAP Response | Algorithm, Lifetime, AUTH] | |
| [Session-Id, EAP{Response}] | -----> PANA-Bind-Answer(x+3)[Key-Id, AUTH] | |
| <----- PANA-Bind-Request(x+3) | ||
| [Session-Id, Result-Code, EAP{Success}, Device-Id, | ||
| Key-Id, Algorithm, | ||
| Lifetime, Protection-Cap., PPAC, AUTH] | ||
| -----> PANA-Bind-Answer(x+3) | ||
| [Session-Id, Device-Id, Key-Id, PPAC, AUTH] | ||
| Figure 4: Example sequence for the authentication and authorization | Figure 3: Example sequence for the authentication and authorization | |
| phase | 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 and authorization phase and the keys are | the authentication and authorization phase and the keys are | |
| successfully derived, the PANA message that carries the EAP Success | successfully derived, the PANA message that carries the EAP Success | |
| message (i.e., a PANA-FirstAuth-End-Request or a PANA-Bind-Request | message (i.e., a PANA-Bind-Request message) MUST contain a Key-Id AVP | |
| message) MUST contain a Key-Id AVP and an AUTH AVP, and an Algorithm | and an AUTH AVP, and an Algorithm AVP for the first derivation of | |
| AVP for the first derivation of keys in the session, and any | keys in the session, and any subsequent message MUST contain an AUTH | |
| subsequent message MUST contain an AUTH AVP. An Algorithm AVP MUST | AVP. An Algorithm AVP MUST NOT be contained in a PANA-Bind-Request | |
| NOT be contained in a PANA-FirstAuth-End-Request or a PANA-Bind- | message after the first derivation of keys in the session. | |
| Request message after the first derivation of keys in the session. | ||
| The PANA-Bind-Request and the PANA-Bind-Answer message exchange is | ||
| also used for binding device identifiers of the PaC and EP(s) to the | ||
| PANA SA. To achieve this, if a Protection-Capability AVP is included | ||
| in the PANA-Bind-Request message, the message MUST contain the device | ||
| identifier in a Device-Id AVP for each EP. Otherwise, if a | ||
| Protection-Capability AVP is not included in the PANA-Bind-Request | ||
| message, the message MUST contain the device identifier in a | ||
| Device-Id AVP for each EP when a link-layer or IP address is used as | ||
| the device identifier of the PaC. The PANA-Bind-Answer message MUST | ||
| contain the PaC's device identifier in a Device-Id AVP when it is | ||
| already presented with that of EP(s) in the request with using the | ||
| same type of device identifier as contained in the request. If the | ||
| PANA-Bind-Answer message sent from the PaC does not contain a | ||
| Device-Id AVP with the same device identifier type contained in the | ||
| 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 does not specify how the PANA SA and the Protection- | ||
| Capability AVP will be used to provide per-packet protection for data | ||
| traffic. When the PaC does not support the protection capability | ||
| indicated in the Protection-Capability AVP, the PaC MUST send a PANA- | ||
| Error-Request message with a PANA_PROTECTION_CAPABILITY_UNSUPPORTED | ||
| result code and terminate the PANA session. | ||
| Additionally, the PANA-Bind-Request message with a PANA_SUCCESS | ||
| result code MUST include a Post-PANA-Address-Configuration (PPAC) | ||
| AVP, which helps the PAA to inform the PaC about whether a new IP | ||
| address MUST be configured and the available methods to do so. In | ||
| this case, the PaC MUST include a PPAC AVP in the PANA-Bind-Answer | ||
| message in order to indicate its choice of method when there is a | ||
| match between the methods offered by the PAA and the methods | ||
| available on the PaC. When there is no match, the PaC MUST send a | ||
| PANA-Error-Request message with a PANA_PPAC_CAPABILITY_UNSUPPORTED | ||
| result code and terminate the PANA session. | ||
| EAP authentication can fail at a pass-through authenticator without | EAP authentication can fail at a pass-through authenticator without | |
| sending an EAP Failure message [RFC4137]. When this occurs, the PAA | sending an EAP Failure message [RFC4137]. When this occurs, the PAA | |
| SHOULD send a PANA-Error-Request message to the PaC with using | SHOULD send a PANA-Error-Request message to the PaC with using | |
| PANA_UNABLE_TO_COMPLY result code. The PaC MUST NOT change its state | PANA_UNABLE_TO_COMPLY result code. The PaC MUST NOT change its state | |
| unless the error message is secured by PANA or lower-layer. In any | unless the error message is secured by PANA or lower-layer. In any | |
| case, a more appropriate way is to rely on a timeout on the PaC. | case, a more appropriate way is to rely on a timeout on the PaC. | |
| There is a case where EAP authentication succeeds with producing an | There is a case where EAP authentication succeeds with producing an | |
| EAP Success message but network access authorization fails due to, | EAP Success message but network access authorization fails due to, | |
| e.g., authorization rejected by a AAA or authorization locally | e.g., authorization rejected by a AAA or authorization locally | |
| rejected by the PAA. When this occurs, the PAA MUST send a PANA- | rejected by the PAA. When this occurs, the PAA MUST send a | |
| Bind-Request with a result code PANA_AUTHORIZATION_REJECTED. If a | PANA-Bind-Request with a result code PANA_AUTHORIZATION_REJECTED. If | |
| AAA-Key is established between the PaC and the PAA by the time when | an MSK is established between the PaC and the PAA by the time when | |
| the EAP Success message is generated by the EAP server (this is the | the EAP Success message is generated by the EAP server (this is the | |
| case when the EAP method provides protected success indication), the | case when the EAP method provides protected success indication), the | |
| PANA-Bind-Request and PANA-Bind-Answer messages MUST be protected | PANA-Bind-Request and PANA-Bind-Answer messages MUST be protected | |
| with an AUTH AVP and carry a Key-Id AVP. The PANA-Bind-Request | with an AUTH AVP and carry a Key-Id AVP. The PANA-Bind-Request | |
| message MUST also carry an Algorithm AVP if it is for the first | message MUST also carry an Algorithm AVP if it is for the first | |
| derivation of keys in the session. The AAA-Key and the PANA session | derivation of keys in the session. The MSK and the PANA session MUST | |
| MUST be deleted immediately after the PANA-Bind message exchange. | be deleted immediately after the PANA-Bind message exchange. | |
| 4.5. Access Phase | 4.5. Access Phase | |
| Once the authentication and authorization phase or the re- | Once the authentication and authorization phase or the | |
| authentication phase successfully completes, the PaC gains access to | re-authentication phase successfully completes, the PaC gains access | |
| the network and can send and receive IP data traffic through the | to the network and can send and receive IP data traffic through the | |
| EP(s) and the PANA session enters the access phase. In this phase, | EP(s) and the PANA session enters the access phase. In this phase, | |
| PANA-Ping-Request and PANA-Ping-Answer messages can be used for | PANA-Ping-Request and PANA-Ping-Answer messages can be used for | |
| testing the liveness of the PANA session on the PANA peer. Both the | testing the liveness of the PANA session on the PANA peer. Both the | |
| PaC and the PAA are allowed to send a PANA-Ping-Request message to | PaC and the PAA are allowed to send a PANA-Ping-Request message to | |
| the communicating peer whenever they need to make sure the | the communicating peer whenever they need to make sure the | |
| availability of the session on the peer and expect the peer to return | availability of the session on the peer and expect the peer to return | |
| a PANA-Ping-Answer message. Both PANA-Ping-Request and PANA-Ping- | a PANA-Ping-Answer message. Both PANA-Ping-Request and | |
| Answer messages MUST be protected with an AUTH AVP when a PANA SA is | PANA-Ping-Answer messages MUST be protected with an AUTH AVP when a | |
| available. | 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. Additionally, an implementation MAY | of timers for this purpose. Additionally, an implementation MAY | |
| rate-limit processing the incoming PANA-Ping-Requests. | rate-limit processing the incoming PANA-Ping-Requests. | |
| Figure 5 and Figure 6 show liveness tests as they are initiated by | Figure 4 and Figure 5 show liveness tests as they are initiated by | |
| the PaC and the PAA respectively. | the PaC and the PAA respectively. | |
| PaC PAA Message(sequence number)[AVPs] | PaC PAA Message(sequence number)[AVPs] | |
| ------------------------------------------------------ | ------------------------------------------------------ | |
| -----> PANA-Ping-Request(q)[Session-Id, AUTH] | -----> PANA-Ping-Request(q)[AUTH] | |
| <----- PANA-Ping-Answer(q)[Session-Id, AUTH] | <----- PANA-Ping-Answer(q)[AUTH] | |
| Figure 5: Example sequence for PaC-initiated liveness test | Figure 4: Example sequence for PaC-initiated liveness test | |
| PaC PAA Message(sequence number)[AVPs] | PaC PAA Message(sequence number)[AVPs] | |
| ------------------------------------------------------ | ------------------------------------------------------ | |
| <----- PANA-Ping-Request(p)[Session-Id, AUTH] | <----- PANA-Ping-Request(p)[AUTH] | |
| -----> PANA-Ping-Answer(p)[Session-Id, AUTH] | -----> PANA-Ping-Answer(p)[AUTH] | |
| Figure 6: Example sequence for PAA-initiated liveness test | Figure 5: Example sequence for PAA-initiated liveness test | |
| 4.6. Re-authentication Phase | 4.6. Re-authentication Phase | |
| The PANA session in the access phase can enter the re-authentication | The PANA session in the access phase can enter the re-authentication | |
| phase to extend the current session lifetime by re-executing EAP. | phase to extend the current session lifetime by re-executing EAP. | |
| Once the re-authentication phase successfully completes, the session | Once the re-authentication phase successfully completes, the session | |
| re-enters the access phase. Otherwise, the session is deleted. | re-enters the access phase. Otherwise, the session is deleted. | |
| When the PaC wants to initiate re-authentication, it sends a PANA- | When the PaC wants to initiate re-authentication, it sends a | |
| Reauth-Request message to the PAA. This message MUST contain a | PANA-Reauth-Request message to the PAA. This message MUST contain | |
| Session-Id AVP which is used for identifying the PANA session on the | the session identifier assigned to the session being | |
| PAA. If the PAA already has an established PANA session for the PaC | re-authenticated. If the PAA already has an established PANA session | |
| with the matching session identifier, it MUST first respond with a | for the PaC with the matching session identifier, it MUST first | |
| PANA-Reauth-Answer message, followed by a PANA-Auth-Request that | respond with a PANA-Reauth-Answer message, followed by a | |
| starts a new EAP authentication. If the PAA cannot identify the | PANA-Auth-Request message that starts a new EAP authentication. If | |
| session, it MAY respond with a PANA-Error-Request message with a | the PAA cannot identify the session, it MUST silently discard the | |
| result code PANA_UNKNOWN_SESSION_ID. Transmission of this error | message. A Nonce AVP MUST be included in the first PANA-Auth-Request | |
| request is made optional in case this behavior is leveraged for a DoS | and PANA-Auth-Answer messages in the re-authentication phase. | |
| attack on the PAA. | ||
| The PaC may receive a PANA-Auth-Request before receiving the answer | The PaC may receive a PANA-Auth-Request before receiving the answer | |
| to its outstanding PANA-Reauth-Request. This condition can arise due | to its outstanding PANA-Reauth-Request. This condition can arise due | |
| to packet re-ordering or a race condition between the PaC and PAA | to packet re-ordering or a race condition between the PaC and PAA | |
| when they both attempt to engage in re-authentication. The PaC MUST | when they both attempt to engage in re-authentication. The PaC MUST | |
| keep 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 PANA-Auth- | When the PAA initiates re-authentication, it sends a | |
| Request message containing the session identifier for the PaC to | PANA-Auth-Request message containing the session identifier for the | |
| enter the re-authentication phase. The PAA SHOULD initiate EAP re- | 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, PANA- | For any re-authentication, if there is an established PANA SA, | |
| Auth-Request and PANA-Auth-Answer messages MUST be protected by | PANA-Reauth-Request, PANA-Reauth-Answer, PANA-Auth-Request and | |
| adding a MAC AVP to each message. Any subsequent EAP authentication | PANA-Auth-Answer messages MUST be protected by adding an AUTH AVP to | |
| MUST be performed with the same ISP and NAP that was selected during | each message. | |
| the discovery and handshake phase. The value of the S-flag | ||
| ("separate authentication" flag, see Section 4.8.1) of the PANA | ||
| messages exchanged in the re-authentication phase MUST be inherited | ||
| from the previous authentication and authorization phase or re- | ||
| authentication phase. | ||
| PaC PAA Message(sequence number)[AVPs] | PaC PAA Message(sequence number)[AVPs] | |
| ------------------------------------------------------ | ------------------------------------------------------ | |
| -----> PANA-Reauth-Request(q) | -----> PANA-Reauth-Request(q)[AUTH] | |
| [Session-Id, AUTH] | <----- PANA-Reauth-Answer(q)[AUTH] | |
| <----- PANA-Reauth-Answer(q) | <----- PANA-Auth-Request(p)[EAP{Request}, AUTH] | |
| [Session-Id, AUTH] | -----> PANA-Auth-Answer(p)[AUTH] // No piggybacking EAP Resp. | |
| <----- PANA-Auth-Request(p) | -----> PANA-Auth-Request(q+1)[EAP{Response}, AUTH] | |
| [Session-Id, EAP{Request}, AUTH] | <----- PANA-Auth-Answer(q+1)[AUTH] // No piggybacking EAP Resp. | |
| -----> PANA-Auth-Answer(p) // No piggybacking EAP Response | <----- PANA-Auth-Request(p+1)[EAP{Request}, AUTH] | |
| [Session-Id, AUTH] | -----> PANA-Auth-Answer(p+1)[EAP{Response}, AUTH] | |
| -----> PANA-Auth-Request(q+1) | <----- PANA-Bind-Request(p+2)[Result-Code, EAP{Success}, Key-Id, | |
| [Session-Id, EAP{Response}, AUTH] | Algorithm, Lifetime, AUTH] | |
| <----- PANA-Auth-Answer(q+1) // No piggybacking EAP Response | -----> PANA-Bind-Answer(p+2)[Key-Id, AUTH] | |
| [Session-Id, AUTH] | ||
| <----- PANA-Auth-Request(p+1) | ||
| [Session-Id, EAP{Request}, AUTH] | ||
| -----> PANA-Auth-Answer(p+1) // Piggybacking EAP Response | ||
| [Session-Id, EAP{Response}, AUTH] | ||
| <----- PANA-Bind-Request(p+2) | ||
| [Session-Id, Result-Code, EAP{Success}, | ||
| Device-Id, Key-Id, Algorithm, | ||
| Lifetime, Protection-Cap., PPAC, AUTH] | ||
| -----> PANA-Bind-Answer(p+2) | ||
| [Session-Id, Device-Id, Key-Id, PPAC, AUTH] | ||
| Figure 7: Example sequence for the re-authentication phase initiated | Figure 6: Example sequence for the re-authentication phase initiated | |
| by PaC | by PaC | |
| 4.7. Termination Phase | 4.7. Termination Phase | |
| A procedure for explicitly terminating a PANA session can be | A procedure for explicitly terminating a PANA session can be | |
| initiated either from the PaC (i.e., disconnect indication) or from | initiated either from the PaC (i.e., disconnect indication) or from | |
| the PAA (i.e., session revocation). The PANA-Termination-Request and | the PAA (i.e., session revocation). The PANA-Termination-Request and | |
| PANA-Termination-Answer message exchanges are used for disconnect | PANA-Termination-Answer message exchanges are used for disconnect | |
| indication and session revocation procedures. | indication and session revocation procedures. | |
| The reason for termination is indicated in the Termination-Cause AVP. | The reason for termination is indicated in the Termination-Cause AVP. | |
| When there is an established PANA SA between the PaC and the PAA, all | When there is an established PANA SA between the PaC and the PAA, all | |
| messages exchanged during the termination phase MUST be protected | messages exchanged during the termination phase MUST be protected | |
| with an AUTH AVP. When the sender of the PANA-Termination-Request | with an AUTH AVP. When the sender of the PANA-Termination-Request | |
| message receives a valid acknowledgment, all states maintained for | message receives a valid acknowledgment, all states maintained for | |
| the PANA session MUST be deleted immediately. | the PANA session MUST be deleted immediately. | |
| PaC PAA Message(sequence number)[AVPs] | PaC PAA Message(sequence number)[AVPs] | |
| ------------------------------------------------------ | ------------------------------------------------------ | |
| -----> PANA-Termination-Request(q)[Session-Id, AUTH] | -----> PANA-Termination-Request(q)[AUTH] | |
| <----- PANA-Termination-Answer(q)[Session-Id, AUTH] | <----- PANA-Termination-Answer(q)[AUTH] | |
| Figure 8: Example sequence for the termination phase triggered by PaC | ||
| 4.8. Separate NAP and ISP Authentication | ||
| 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. | ||
| Currently, running multiple EAP sessions in sequence in the | ||
| authentication and authorization 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. | ||
| 4.8.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.3 | ||
| 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. | ||
| If the S-flag of the received PANA-Start-Request message is set, the | ||
| PaC can indicate its desire to perform separate NAP and ISP | ||
| authentication by setting the S-flag in the PANA-Start-Answer | ||
| message. If the S-flag of the received PANA-Start-Request message is | ||
| not set, the PaC MUST NOT set the S-flag in the PANA-Start-Answer | ||
| message sent back to the PAA. | ||
| 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.3. | ||
| When the S-flag is set in a PANA-Start-Request message, the initial | ||
| 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.) | ||
| 4.8.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.4 | ||
| 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. | ||
| 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). | ||
| 4.8.3. AAA-Key Calculation | ||
| When the PaC and PAA have negotiated in the discovery and handshake | Figure 7: Example sequence for the termination phase triggered by PaC | |
| 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. Processing Rules | 5. Processing Rules | |
| 5.1. Fragmentation | 5.1. Fragmentation | |
| PANA does not provide fragmentation of PANA messages. Instead, it | PANA does not provide fragmentation of PANA messages. Instead, it | |
| relies on fragmentation provided by EAP methods and IP layer when | relies on fragmentation provided by EAP methods and IP layer when | |
| needed. | needed. | |
| 5.2. Sequence Number and Retransmission | 5.2. Sequence Number and Retransmission | |
| Skipping to change at page 24, line 28: | ||
| The PaC and PAA maintain two sequence numbers: the next one to be | The PaC and PAA maintain two sequence numbers: the next one to be | |
| used for a request it initiates and the next one it expects to see in | used for a request it initiates and the next one it expects to see in | |
| a request from the other end. These sequence numbers are 32-bit | 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 reuse the | number as the corresponding request. Retransmissions reuse the | |
| sequence number contained in the original packet. | sequence number contained in the original packet. | |
| The initial sequence numbers (ISN) are randomly picked by the PaC and | The initial sequence numbers (ISN) are randomly picked by the PaC and | |
| PAA as they send their very first request messages. PANA-PAA- | PAA as they send their very first request messages. | |
| Discover message carries sequence number 0. | PANA-Client-Initiation message carries sequence number 0. | |
| When a request message is received, it is considered valid in terms | When a request message is received, it is considered valid in terms | |
| of sequence numbers if and only if its sequence number matches the | of sequence numbers if and only if its sequence number matches the | |
| expected value. This check does not apply to the PANA-PAA-Discover, | expected value. This check does not apply to the | |
| PANA-Start-Request messages. | PANA-Client-Initiation and 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 a timer until a response is | PANA request messages are retransmitted based on a timer until a | |
| received (in which case the retransmission timer is stopped) or the | response is received (in which case the retransmission timer is | |
| number of retransmission reaches the maximum value (in which case the | stopped) or the number of retransmission reaches the maximum value | |
| PANA session MUST be deleted immediately). | (in which case the PANA session MUST be deleted immediately). | |
| The retransmission timers SHOULD be calculated as described in | The retransmission timers SHOULD be calculated as described in | |
| [RFC2988] to provide congestion control. See Section 9 for default | Section 9 unless a given deployment chooses to use its own | |
| timer and maximum retransmission count parameters. | retransmission timers optimized for the underlying link-layer | |
| characteristics. | ||
| The PaC and PAA MUST respond to duplicate requests as long as the | The PaC and PAA MUST respond to duplicate requests as long as the | |
| responding rate does not exceed a certain threshold value. The last | responding rate does not exceed a certain threshold value. The last | |
| transmitted answer MAY be cached in case it is not received by the | transmitted answer MAY be cached in case it is not received by the | |
| peer and that generates a retransmission of the last request. When | peer and that generates a retransmission of the last request. When | |
| available, the cached answer can be used instead of fully processing | available, the cached answer can be used instead of fully processing | |
| the retransmitted request and forming a new answer from scratch. | the retransmitted request and forming a new answer from scratch. | |
| PANA MUST NOT generate EAP message duplication. EAP payload of a | ||
| retransmitted PANA message MUST NOT be passed to the EAP layer. | ||
| 5.3. PANA Security Association | 5.3. PANA Security Association | |
| A PANA SA is created as an attribute of a PANA session when EAP | A PANA SA is created as an attribute of a PANA session when EAP | |
| authentication succeeds with a creation of a AAA-Key. A PANA SA is | authentication succeeds with a creation of an MSK. A PANA SA is not | |
| not created when the PANA authentication fails or no AAA-Key is | created when the PANA authentication fails or no MSK is produced by | |
| produced by any EAP authentication method. In the case where two EAP | any EAP authentication method. When a new MSK is derived in the PANA | |
| sessions are performed in sequence in the PANA authentication and | re-authentication phase, any key derived from the old MSK MUST be | |
| authorization phase, it is possible that two AAA-Keys are derived. | updated to a new one that is derived from the new MSK. In order to | |
| If this happens, the PANA SA MUST be generated from both AAA-Keys. | distinguish the new MSK from old ones, one Key-Id AVP MUST be carried | |
| When a new AAA-Key is derived in the PANA re-authentication phase, | in PANA-Bind-Request and PANA-Bind-Answer messages at the end of the | |
| any key derived from the old AAA-Key MUST be updated to a new one | EAP authentication which resulted in deriving a new MSK. The Key-Id | |
| 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 | AVP is of type Unsigned32 and MUST contain a value that uniquely | |
| identifies the AAA-Key within the PANA session. The PANA-Bind-Answer | identifies the MSK within the PANA session. The PANA-Bind-Answer | |
| message (or the PANA-FirstAuth-End-Answer message) sent in response | message sent in response to a PANA-Bind-Request message with a Key-Id | |
| to a PANA-Bind-Request message (or a PANA-FirstAuth-End-Request | AVP MUST contain a Key-Id AVP with the same MSK identifier carried in | |
| message) with a Key-Id AVP MUST contain a Key-Id AVP with the same | the request. PANA-Bind-Request and PANA-Bind-Answer messages with a | |
| AAA-Key identifier carried in the request. PANA-Bind-Request, PANA- | Key-Id AVP MUST also carry an AUTH AVP whose value is computed by | |
| Bind-Answer, PANA-FirstAuth-End-Request and PANA-FirstAuth-End-Answer | using the new PANA_AUTH_KEY derived from the new MSK. Although the | |
| messages with a Key-Id AVP MUST also carry an AUTH AVP whose value is | specification does not mandate a particular method for calculation of | |
| computed by using the new PANA_AUTH_KEY derived from the new AAA-Key | the Key-Id AVP value, a simple method is to use monotonically | |
| (or the new pair of AAA-Keys when the PANA_AUTH_KEY is derived from | increasing numbers. | |
| 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 authorization lifetime | The PANA session lifetime is bounded by the authorization lifetime | |
| granted by the authentication server (same as the AAA-Key lifetime). | granted by the authentication server (same as the MSK lifetime). The | |
| The lifetime of the PANA SA (hence the PANA_AUTH_KEY) is the same as | lifetime of the PANA SA (hence the PANA_AUTH_KEY) is the same as the | |
| the lifetime of the PANA session. The created PANA SA is deleted | lifetime of the PANA session. The created PANA SA is deleted when | |
| when the corresponding PANA session is deleted. | the corresponding PANA session is deleted. | |
| PANA SA attributes as well as PANA session attributes are listed | PANA SA attributes as well as PANA session attributes are listed | |
| below: | below: | |
| PANA Session attributes: | PANA Session attributes: | |
| * Session-Id | * Session Identifier | |
| * Device-Id of PaC | ||
| * IP address and UDP port number of the PaC. | * IP address and UDP port number of the PaC. | |
| * IP address of PAA | * IP address and UDP port number of the PAA | |
| * List of device identifiers of EPs | ||
| * Sequence number of the last transmitted request | * Sequence number of the last transmitted request | |
| * Sequence number of the last received request | * Sequence number of the last received request | |
| * Last transmitted message payload | * Last transmitted message payload | |
| * Retransmission interval | * Retransmission interval | |
| * Session lifetime | * Session lifetime | |
| * Protection-Capability | ||
| * PANA SA attributes | * PANA SA attributes | |
| PANA SA attributes: | PANA SA attributes: | |
| * Nonce generated by PaC (PaC_nonce) | * Nonce generated by PaC (PaC_nonce) | |
| * Nonce generated by PAA (PAA_nonce) | * Nonce generated by PAA (PAA_nonce) | |
| * AAA-Key | * MSK | |
| * AAA-Key Identifier | * MSK Identifier | |
| * PANA_AUTH_KEY | * PANA_AUTH_KEY | |
| * Pseudo-random function | * Pseudo-random function | |
| * Integrity algorithm | * Integrity algorithm | |
| The PANA_AUTH_KEY is derived from the available AAA-Key(s) and it is | The PANA_AUTH_KEY is derived from the available MSK and it is used to | |
| used to integrity protect PANA messages. If there is only one AAA- | integrity protect PANA messages. The PANA_AUTH_KEY is computed in | |
| Key available, e.g., due to ISP-only authentication, or with one | the following way: | |
| failed and one successful separate NAP and ISP authentication (see | ||
| Section 4.8), the PANA_AUTH_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_AUTH_KEY is computed in the following way: | ||
| PANA_AUTH_KEY = prf+(AAA-Key, PaC_nonce | PAA_nonce | Session-ID) | PANA_AUTH_KEY = prf+(MSK, PaC_nonce|PAA_nonce|Session_ID|Key_ID) | |
| where the prf+ function is defined in IKEv2 [RFC4306]. The pseudo- | where the prf+ function is defined in IKEv2 [RFC4306]. The | |
| random function to be used for the prf+ function is specified in the | pseudo-random function to be used for the prf+ function is specified | |
| Algorithm AVP in a PANA-FirstAuth-End-Request or a PANA-Bind-Request | in the Algorithm AVP in a PANA-Bind-Request message. The length of | |
| message. The length of PANA_AUTH_KEY depends on the integrity | PANA_AUTH_KEY depends on the integrity algorithm in use. See | |
| algorithm in use. See Section 5.4 for the detailed usage of the | Section 5.4 for the detailed usage of the PANA_AUTH_KEY. PaC_nonce | |
| PANA_AUTH_KEY. | and PAA_nonce are values of the Nonce AVP carried in the first | |
| PANA-Auth-Answer and PANA-Auth-Request messages in the authentication | ||
| and authorization phase or the re-authentication phase, respectively. | ||
| Session_ID is the session identifier of the session. Key_ID is the | ||
| value of the Key-ID AVP. | ||
| 5.4. Message Authentication | 5.4. Message Authentication | |
| A PANA message can contain an AUTH AVP for cryptographically | A PANA message can contain an AUTH AVP for cryptographically | |
| protecting the message. | protecting the message. | |
| When an AUTH AVP is included in a PANA message, the value field of | When an AUTH AVP is included in a PANA message, the value field of | |
| the AUTH AVP is calculated by using the PANA_AUTH_KEY in the | the AUTH AVP is calculated by using the PANA_AUTH_KEY in the | |
| following way: | following way: | |
| AUTH AVP value = PANA_AUTH_HASH(PANA_AUTH_KEY, PANA_PDU) | AUTH AVP value = PANA_AUTH_HASH(PANA_AUTH_KEY, PANA_PDU) | |
| where PANA_PDU is the PANA message including the PANA header, with | where PANA_PDU is the PANA message including the PANA header, with | |
| the AUTH AVP value field first initialized to 0. PANA_AUTH_HASH | the AUTH AVP value field first initialized to 0. PANA_AUTH_HASH | |
| represents the integrity algorithm specified in the Algorithm AVP in | represents the integrity algorithm specified in the Algorithm AVP in | |
| a PANA-Bind-Request message. The PaC and PAA MUST use the same | a PANA-Bind-Request message. The PaC and PAA MUST use the same | |
| integrity algorithm to calculate an AUTH AVP they originate and | integrity algorithm to calculate an AUTH AVP they originate and | |
| receive. The algorithm is determined by the PAA. When the PaC does | receive. The algorithm is determined by the PAA. When the PaC does | |
| not support the integrity algorithm specified in the PANA-Bind- | not support the integrity algorithm specified in the | |
| Request message, it MUST silently discard the message. | PANA-Bind-Request message, it MUST silently discard the message. | |
| 5.5. Message Validity Check | 5.5. Message Validity Check | |
| When a PANA message is received, the message is considered to be | When a PANA message is received, the message is considered to be | |
| invalid at least when one of the following conditions are not met: | invalid at least when one of the following conditions are not met: | |
| o Each field in the message header contains a valid value including | o Each field in the message header contains a valid value including | |
| sequence number, message length, message type, version number, | sequence number, message length, message type, version number, | |
| flags, etc. | flags, session identifier, etc. | |
| o The message type is one of the expected types in the current | o The message type is one of the expected types in the current | |
| state. Specifically the following messages are unexpected and | state. Specifically the following messages are unexpected and | |
| invalid: | invalid: | |
| * In the discovery and handshake phase: | * In the 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. | |
| + PANA-Reauth-Request. | + PANA-Reauth-Request. | |
| + PANA-Error-Request. | + PANA-Error-Request. | |
| * In the authentication and authorization phase and the re- | * In the authentication and authorization phase and the | |
| authentication phase: | re-authentication phase: | |
| + PANA-PAA-Discover. | + PANA-Client-Initiation. | |
| + 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. | |
| * In the access phase: | * In the access phase: | |
| + PANA-Start-Request as well as a non-duplicate PANA-Bind- | + PANA-Start-Request as well as a non-duplicate | |
| Request. | PANA-Bind-Request. | |
| + PANA-PAA-Discover. | + PANA-Client-Initiation. | |
| * In the termination phase: | * In the termination phase: | |
| + PANA-PAA-Discover. | + PANA-Client-Initiation. | |
| + 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 and no AVP, which needs to be at a fixed position, | in the payload and no AVP, which needs to be at a fixed position, | |
| is included in a position different from this fixed position. | is included in a position different from this fixed position. | |
| o Each AVP is decoded correctly. | o Each AVP is decoded correctly. | |
| o When an AUTH AVP is included, the AVP value matches the hash value | o When an AUTH AVP is included, the AVP value matches the hash value | |
| computed against the received message. | computed against the received message. | |
| o When a Device-Id AVP is included, the AVP is valid if the device | ||
| identifier type contained in the AVP is supported (check performed | ||
| by both the PaC and the PAA) and is the requested one (check | ||
| performed by the PAA only). Note that a Device-Id AVP carries the | ||
| device identifier of 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. | ||
| 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.11 for details. | be returned to the sender. See Section 5.8 for details. | |
| 5.6. PaC-EP-Master-Key | ||
| As described in Section 4.4, use of a cryptographic filtering | ||
| mechanism is indicated by inclusion of a Protection-Capability AVP in | ||
| the PANA-Bind-Request message in the authentication and authorization | ||
| phase. In this case, a PaC-EP-Master-Key is derived from the AAA-Key | ||
| for each EP and used by a secure association protocol for | ||
| bootstrapping link-layer or IPsec ciphering between the PaC and EP. | ||
| The PaC-EP-Master-Key derivation algorithm is defined as follows. | ||
| PaC-EP-Master-Key = The first 64 octets of | ||
| prf+(AAA-Key, "PaC-EP master key" | | ||
| Session ID | Key-ID | EP-Device-Id) | ||
| The prf+ function is defined in IKEv2 [RFC4306]. The pseudo-random | ||
| function used for the prf+ function is specified in the Algorithm AVP | ||
| carried in a PANA-FirstAuth-End-Request or a PANA-Bind-Request | ||
| message. | ||
| EP-Device-Id is the Data field of the Device-Id AVP for the | ||
| corresponding EP. | ||
| 5.7. Device ID Choice | ||
| The device identifier used in the context of PANA can be an IP | ||
| address, a MAC address, or an identifier that may not be carried in | ||
| data packets but has local significance in identifying a connected | ||
| device (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 available and lower-layers are already physically | ||
| or cryptographically secured. | ||
| It is assumed that the PAA knows the link type and the security | ||
| mechanisms being provided or required on the access network (based on | ||
| configuration of the network administrator). For example, one | ||
| network administrator might want to use IPsec for securing the | ||
| network access while another one (for a different network) might rely | ||
| on physical security. | ||
| When IPsec-based security [I-D.ietf-pana-ipsec] is the choice of | ||
| access control, the PAA MUST provide IP address(es) as EP(s)' device | ||
| ID, and expect the PaC to provide its IP address in return. | ||
| Similarly, IP addresses are used when the EP(s) is not on the same IP | ||
| subnet as the PaC is. | ||
| In other cases, MAC addresses are used as device identifiers when | ||
| they are available. | ||
| If non-IPsec access control is enabled, and a MAC address is not | ||
| available, locally-significant identifiers (e.g., as a circuit id) | ||
| MUST be used as device id. Note that these identifiers are not | ||
| exchanged within PANA messages. Instead, peers rely on lower-layers | ||
| to provide them along with received PANA messages. | ||
| 5.8. PaC Updating its IP Address | ||
| A PaC's IP address can change in certain situations. For example, | 5.6. PaC Updating its IP Address | |
| the PANA framework [I-D.ietf-pana-framework] describes a case in | ||
| which a PaC replaces a pre-PANA address (PRPA) with a post-PANA | ||
| address (POPA). In another situation a PaC may change its IP address | ||
| used for PANA when it moves from one IP link to another within the | ||
| same PAA's realm. In order to maintain the PANA session, the PAA | ||
| needs to be notified about the change of PaC address. | ||
| If the device identifier of the PaC is the IP address, it is also | A PaC's IP address used for PANA can change in certain situations, | |
| subject to the same change. The PAA needs to be notified about the | e.g., when the PaC moves from one IP link to another within the same | |
| change of device identifier as well so that the PAA can update the | PAA's realm. In order to maintain the PANA session, the PAA needs to | |
| EP(s). If IPsec is used between the PaC and the EPs, an IKE or | be notified about the change of PaC address. | |
| MOBIKE [I-D.ietf-mobike-protocol] run is needed following such a | ||
| change. | ||
| After the PaC has changed its IP address, it MUST send a PANA-Update- | After the PaC has changed its IP address used for PANA, it MUST send | |
| Request message to the PAA. If the PaC has also changed its device | a PANA-Update-Request message to the PAA. The PAA MUST update the | |
| identifier, the PANA-Update-Request message MUST include a Device-Id | ||
| AVP containing the new device identifier. The PAA MUST update the | ||
| PANA session with the new PaC address carried in the Source Address | PANA session with the new PaC address carried in the Source Address | |
| field of the IP header and the new device identifier carried in the | field of the IP header and return a PANA-Update-Answer message. If | |
| Device-Id AVP, and return a PANA-Update-Answer message. The PANA- | there is an established PANA SA, both PANA-Update-Request and | |
| Update-Answer message MUST contain one or more Device-Id AVPs for the | PANA-Update-Answer messages MUST be protected with an AUTH AVP. | |
| EPs if the set of EPs serving the PaC has also changed. If there is | ||
| an established PANA SA, both PANA-Update-Request and PANA-Update- | ||
| Answer messages MUST be protected with an AUTH AVP. | ||
| 5.9. Session Lifetime | 5.7. Session Lifetime | |
| The authentication and authorization phase determines the PANA | The authentication and authorization phase determines the PANA | |
| session lifetime when the network access authorization succeeds. The | session lifetime when the network access authorization succeeds. The | |
| Session-Lifetime AVP MAY be optionally included in the PANA-Bind- | Session-Lifetime AVP MAY be optionally included in the | |
| Request message to inform the PaC about the valid lifetime of the | PANA-Bind-Request message to inform the PaC about the valid lifetime | |
| PANA session. It MUST be ignored when included in other PANA | of the PANA session. It MUST be ignored when included in other PANA | |
| messages. | messages. | |
| When the Session-Lifetime AVP is not included in the PANA-Bind- | When the Session-Lifetime AVP is not included in the | |
| Request message then the PaC has no knowledge about a PANA session | PANA-Bind-Request message then the PaC has no knowledge about a PANA | |
| limitation and must therefore conclude that the session is not | session limitation and must therefore conclude that the session is | |
| limited. | not limited. | |
| The lifetime is a non-negotiable parameter that can be used by the | The lifetime is a non-negotiable parameter that can be used by the | |
| PaC to manage PANA-related state. The PaC does not have to perform | PaC to manage PANA-related state. The PaC does not have to perform | |
| any actions when the lifetime expires, other than purging local | any actions when the lifetime expires, other than purging local | |
| state. The PAA SHOULD initiate the PANA re-authentication phase | state. The PAA SHOULD initiate the PANA re-authentication phase | |
| before the current session lifetime expires. | before the current session lifetime expires. | |
| The PaC and the PAA MAY use information obtained outside PANA (e.g., | The PaC and the PAA MAY use information obtained outside PANA (e.g., | |
| lower-layer indications) to expedite the detection of a disconnected | lower-layer indications) to expedite the detection of a disconnected | |
| peer. Availability and reliability of such indications MAY depend on | peer. Availability and reliability of such indications MAY depend on | |
| a specific link layer or network topology and are therefore only | a specific link-layer or network topology and are therefore only | |
| hints. A PANA peer SHOULD use the PANA-Ping message exchange to | hints. A PANA peer SHOULD use the PANA-Ping message exchange to | |
| verify the liveness of a peer before taking an action. | verify that a peer is, in fact, no longer alive, unless information | |
| obtained outside PANA is being used to expedite the detection of a | ||
| disconnected peer. | ||
| The session lifetime parameter is not related to the transmission of | The session lifetime parameter is not related to the transmission of | |
| PANA-Ping-Request messages. These messages can be used for | 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 a PANA-Ping-Request message is taken locally and does not | send a PANA-Ping-Request message is taken locally and does not | |
| require coordination between the peers. | require coordination between the peers. | |
| When separate ISP and NAP authentication is performed, it is possible | 5.8. Error Handling | |
| that different authorization lifetime values are associated with the | ||
| two EAP authentication sessions. In this case, the smaller | ||
| authorization lifetime value MUST be used for calculating the PANA | ||
| Session-Lifetime value. As a result, both NAP and ISP authentication | ||
| will be performed in the re-authentication phase. | ||
| 5.10. Network Selection | ||
| The PANA discovery and handshake phase allows the PaC to learn | ||
| identity of the NAP and a list of ISPs that are available through the | ||
| NAP. The PaC can not only learn the ISPs but also convey the | ||
| selected ISP explicitly during the handshake phase. The PAA is | ||
| assumed to be pre-configured with the information of ISPs that are | ||
| served by the NAP. | ||
| A PANA-Start-Request message sent from the PAA MAY contain zero or | ||
| one NAP-Information AVP, and zero or more ISP-Information AVPs. The | ||
| 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. | ||
| In the absence of an ISP explicitly selected and conveyed by the PaC, | ||
| 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. | ||
| The PANA-based ISP selection mechanism dictates the next-hop AAA | ||
| 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. | ||
| An alternative ISP discovery mechanism is outlined in [RFC4284] which | ||
| suggests advertising ISP information in-band with the ongoing EAP | ||
| method execution. Deployments using the PANA's built-in ISP | ||
| discovery mechanism need not use the other mechanism. | ||
| 5.11. Error Handling | ||
| A PANA-Error-Request message MAY be sent by either the PaC or the PAA | 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 | 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- | errors. The receiver of this request MUST respond with a | |
| Answer message. | PANA-Error-Answer message. | |
| An adversary might craft erroneous PANA messages to launch a Denial | An adversary might craft erroneous PANA messages to launch a Denial | |
| of Service attack. Unless the PaC or the PAA performs a rate- | of Service attack. Unless the PaC or the PAA performs a | |
| limitation of the generated PANA-Error-Request messages it may be | rate-limitation of the generated PANA-Error-Request messages it may | |
| overburdened by responding to bogus messages. Note that a PANA- | be overburdened by responding to bogus messages. Note that a | |
| Error-Answer message that is sent in response to a PANA-Error-Request | PANA-Error-Answer message that is sent in response to a | |
| message does not require either the PaC or the PAA to create state. | PANA-Error-Request message does not require either the PaC or the PAA | |
| to create a state. | ||
| If an error message is sent unprotected (i.e., without using an AUTH | If an error message is sent unprotected (i.e., without using an AUTH | |
| AVP) and the lower-layer is insecure then the error message MUST be | AVP) then the error message MUST be processed such that the receiver | |
| processed such that the receiver does not change its state. | does not change its state. | |
| 6. Header Format | 6. Header Format | |
| This section defines message formats for PANA protocol. | This section defines message formats for PANA protocol. | |
| 6.1. IP and UDP Headers | 6.1. IP and UDP Headers | |
| When a PANA-PAA-Discover message is multicast, IP destination address | Any PANA message is unicast between the PaC and the PAA. | |
| of the message is set to a well-known administratively scoped | ||
| multicast address (To Be Assigned by IANA). A PANA-PAA-Discover | ||
| message MAY be unicast in some cases as specified in Section 4.3. | ||
| Any other PANA message is unicast between the PaC and the PAA. The | ||
| source and destination addresses SHOULD be set to the addresses on | ||
| the interfaces from which the message will be sent and received, | ||
| respectively. | ||
| When the PANA message is sent in response to a request, the UDP | When the PANA message is sent in response to a request, the UDP | |
| source and destination ports of the response message MUST be copied | source and destination ports of the response message MUST be copied | |
| from the destination and source ports of the request message, | from the destination and source ports of the request message, | |
| respectively. | respectively. | |
| The source port of an unsolicited PANA message MUST be set to a value | For other PANA messages, the source port MUST be set to a value | |
| chosen by the sender. The destination port MUST be set to the peer's | chosen by the sender and the destination port MUST be set to the | |
| port number if it has already been discovered via earlier PANA | assigned PANA port (To Be Assigned by IANA). | |
| exchanges, set to the assigned PANA port (To Be Assigned by IANA) | ||
| otherwise. | ||
| 6.2. PANA Header | 6.2. PANA Message Header | |
| A summary of the PANA header format is shown below. The fields are | A summary of the PANA message header format is shown below. The | |
| transmitted in network byte order. | fields are transmitted in network byte order. | |
| 0 1 2 3 | 0 1 2 3 | |
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |
| | Version | Reserved | Message Length | | | Version | Reserved | Message Length | | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |
| | Flags | Message Type | | | Flags | Message Type | | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |
| | Session Identifier | | ||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| | Sequence Number | | | Sequence Number | | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |
| | AVPs ... | | AVPs ... | |
| +-+-+-+-+-+-+-+-+-+-+-+-+- | +-+-+-+-+-+-+-+-+-+-+-+-+- | |
| Version | Version | |
| This Version field MUST be set to 1 to indicate PANA Version 1. | This Version field MUST be set to 1 to indicate PANA Version 1. | |
| Reserved | Reserved | |
| 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 | |
| Skipping to change at page 34, line 25: | ||
| The Message Length field is two octets and indicates the length of | The Message Length field is two octets and indicates the length of | |
| the PANA message including the header fields. | the PANA message including the header fields. | |
| Flags | Flags | |
| The Flags field is two octets. The following bits are assigned: | The Flags field is two octets. The following bits are assigned: | |
| 0 1 | 0 1 | |
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |
| |R S N L r r r r r r r r r r r r| | |R r r 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) | ||
| When the S-flag is set in a PANA-Start-Request message it | ||
| indicates that PAA is willing to offer separate NAP and ISP | ||
| authentication. When the S-flag is set in a PANA-Start-Answer | ||
| message it indicates that the PaC accepts on performing | ||
| separate NAP and ISP authentication. The PaC may also respond | ||
| with the S-flag not set which implies the PaC has chosen to | ||
| authenticate with the ISP only. When the S-flag is set in a | ||
| PANA-Auth-Request/Answer, PANA-FirstAuth-End-Request/Answer and | ||
| PANA-Bind-Request/Answer messages it indicates that separate | ||
| 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) | ||
| When the N-flag is set in a PANA-Auth-Request, a PANA- | ||
| FirstAuth-End-Request or a PANA-Bind-Request message, it | ||
| indicates that the current EAP authentication is for NAP | ||
| authentication. When the N-flag is unset in a PANA-Auth- | ||
| Request, a PANA-FirstAuth-End-Request or a PANA-Bind-Request | ||
| message, it indicates that the current EAP authentication is | ||
| for ISP authentication. The PaC MUST copy the value of the | ||
| flag in its answer from the last received 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 S-flag is not set. | ||
| L(stateLess discovery) | ||
| When the L-flag is set in a PANA-Start-Request message it | ||
| indicates that the PAA is performing stateless discovery. | ||
| Cookie AVP MUST be included in both the PANA-Start-Request and | ||
| the PANA-Start-Answer messages when performing stateless | ||
| discovery. | ||
| 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]. | |
| space for this field. | ||
| Session Identifier | ||
| This field contains a 32 bit session identifier. | ||
| Sequence Number | Sequence Number | |
| The Sequence Number field contains a 32 bit value. | This field contains contains a 32 bit sequence number. | |
| 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 6.3 for more information on | PANA message. See section Section 6.3 for more information on | |
| AVPs. | AVPs. | |
| 6.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 zero- | boundary, while other AVP types align naturally. A number of | |
| valued bytes are added to the end of the AVP Data field till a word | zero-valued bytes are added to the end of the AVP Data field till a | |
| boundary is reached. The length of the padding is not reflected in | word boundary is reached. The length of the padding is not reflected | |
| the AVP Length field [RFC3588]. | in the AVP Length field [RFC3588]. | |
| The fields in the AVP header are 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) | | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |
| | Data ... | | Data ... | |
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |
| AVP Code | AVP Code | |
| The AVP Code, combined with the Vendor-Id field, identifies the | The AVP Code, together with the optional Vendor ID field, | |
| attribute uniquely. AVP numbers are allocated by IANA [ianaweb]. | identifies attribute that follows. If the V-bit is not set, the | |
| PANA uses its own address space for this field although some of | Vendor ID is not present and the AVP Code refers to an IETF | |
| the AVP formats are borrowed from Diameter protocol [RFC3588]. | attribute. | |
| AVP Flags | AVP Flags | |
| The AVP Flags field is two octets. The following bits are | The AVP Flags field is two octets. The following bits are | |
| assigned: | assigned: | |
| 0 1 | 0 1 | |
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |
| |V M r r r r r r r r r r r r r r| | |V M r r r r r r r r r r r r r r| | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |
| M(andatory) | ||
| The 'M' Bit, known as the Mandatory bit, indicates whether | ||
| 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 | ||
| recognized, or whose value is not recognized, 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. When set the AVP Code belongs to the specific vendor | header. When set the AVP Code belongs to the specific vendor | |
| code address space. | code address space. | |
| M(andatory) | ||
| The 'M' Bit, known as the Mandatory bit, indicates whether | ||
| 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 recognized, or whose value is not recognized, MAY | ||
| simply ignore the AVP. | ||
| 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 two octets, and indicates the number of | The AVP Length field is two 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 | |
| to zero, and ignored by the receiver. | to zero, and ignored by the receiver. | |
| Skipping to change at page 38, line 4: | ||
| The Vendor-Id field is present if the 'V' bit is set in the AVP | The Vendor-Id field is present if the 'V' bit is set in the AVP | |
| Flags field. The optional four-octet Vendor-Id field contains the | Flags field. The optional four-octet Vendor-Id field contains the | |
| IANA assigned "SMI Network Management Private Enterprise Codes" | IANA assigned "SMI Network Management Private Enterprise Codes" | |
| [ianaweb] value, encoded in network byte order. Any vendor | [ianaweb] value, encoded in network byte order. Any vendor | |
| wishing to implement a vendor-specific PANA AVP MUST use their own | wishing to implement a vendor-specific PANA AVP MUST use their own | |
| 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. | |
| 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. | ||
| 7. PANA Messages | 7. PANA Messages | |
| Each Request/Answer message pair is assigned a Sequence Number, and | Each Request/Answer message pair is assigned a Sequence Number, and | |
| the sub-type (i.e., request or answer) is identified via the 'R' bit | the sub-type (i.e., request or answer) is identified via the 'R' bit | |
| in the Message Flags field of the PANA header. | in the Message Flags field of the PANA message header. | |
| Every PANA message MUST contain a message ID in its header's | Every PANA message MUST contain a message ID in its header's Message | |
| Message-Id field, which is used to determine the action that is to be | Type field, which is used to determine the action that is to be taken | |
| taken for a particular message. Figure 9 lists all PANA messages | for a particular message. Figure 8 lists all PANA messages defined | |
| defined in this document: | in this document: | |
| Message-Name Abbrev. ID PaC<->PAA Ref. | Message-Name Abbrev. ID PaC<->PAA Ref. | |
| ---------------------------------------------------------- | ---------------------------------------------------------- | |
| PANA-PAA-Discover PDI 1 --------> 7.1 | PANA-Client-Initiation PCI 1 --------> 7.1 | |
| PANA-Start-Request PSR 2 <-------- 7.2 | PANA-Start-Request PSR 2 <-------- 7.2 | |
| PANA-Start-Answer PSA 2 --------> 7.3 | PANA-Start-Answer PSA 2 --------> 7.3 | |
| PANA-Auth-Request PAR 3 <-------> 7.4 | PANA-Auth-Request PAR 3 <-------> 7.4 | |
| PANA-Auth-Answer PAN 3 <-------> 7.5 | PANA-Auth-Answer PAN 3 <-------> 7.5 | |
| PANA-Reauth-Request PRAR 4 --------> 7.6 | PANA-Reauth-Request PRR 4 --------> 7.6 | |
| PANA-Reauth-Answer PRAA 4 <-------- 7.7 | PANA-Reauth-Answer PRA 4 <-------- 7.7 | |
| PANA-Bind-Request PBR 5 <-------- 7.8 | PANA-Bind-Request PBR 5 <-------- 7.8 | |
| PANA-Bind-Answer PBA 5 --------> 7.9 | PANA-Bind-Answer PBA 5 --------> 7.9 | |
| PANA-Ping-Request PPR 6 <-------> 7.10 | PANA-Ping-Request PPR 6 <-------> 7.10 | |
| PANA-Ping-Answer PPA 6 <-------> 7.11 | PANA-Ping-Answer PPA 6 <-------> 7.11 | |
| PANA-Termination-Request PTR 7 <-------> 7.12 | PANA-Termination-Request PTR 7 <-------> 7.12 | |
| PANA-Termination-Answer PTA 7 <-------> 7.13 | PANA-Termination-Answer PTA 7 <-------> 7.13 | |
| PANA-Error-Request PER 8 <-------> 7.14 | PANA-Error-Request PER 8 <-------> 7.14 | |
| PANA-Error-Answer PEA 8 <-------> 7.15 | PANA-Error-Answer PEA 8 <-------> 7.15 | |
| PANA-FirstAuth-End-Request PFER 9 <-------- 7.16 | PANA-Update-Request PUR 9 <-------> 7.16 | |
| PANA-FirstAuth-End-Answer PFEA 9 --------> 7.17 | PANA-Update-Answer PUA 9 <-------> 7.17 | |
| PANA-Update-Request PUR 10 <-------> 7.18 | ||
| PANA-Update-Answer PUA 10 <-------> 7.19 | ||
| ----------------------------------------------------------- | ----------------------------------------------------------- | |
| Figure 9: Table of PANA Messages | Figure 8: Table of PANA Messages | |
| Every PANA message defined MUST include a corresponding ABNF | Every PANA message defined MUST include a corresponding ABNF | |
| [RFC2234] specification, which is used to define the AVPs that MUST | [RFC2234] specification, which is used to define the AVPs that MUST | |
| or MAY be present. The following format is used in the definition: | or MAY be present. The following format is used in the definition: | |
| message-def = Message-Name "::=" PANA-message | message-def = Message-Name "::=" PANA-message | |
| message-name = PANA-name | message-name = PANA-name | |
| PANA-name = ALPHA *(ALPHA / DIGIT / "-") | PANA-name = ALPHA *(ALPHA / DIGIT / "-") | |
| PANA-message = header [ *fixed] [ *required] [ *optional] | PANA-message = header [ *fixed] [ *required] [ *optional] | |
| [ *fixed] | [ *fixed] | |
| header = "< PANA-Header: " Message-Id | ||
| [r-bit] [s-bit] [n-bit] ">" | ||
| Message-Id = 1*DIGIT | header = "< PANA-Header: " Message-Type | |
| ; The message code assigned to the message | [r-bit] ">" | |
| Message-Type = 1*DIGIT | ||
| ; The Message Type assigned to the message | ||
| r-bit = ", REQ" | r-bit = ", REQ" | |
| ; If present, the 'R' bit in the Message | ; If present, the 'R' bit in the Message | |
| ; Flags is set, indicating that the message | ; Flags is set, indicating that the message | |
| ; is a request, as opposed to an answer. | ; is a request, as opposed to an answer. | |
| s-bit = ", SEP" | ||
| ; If present, the 'S' bit in the Message | ||
| ; Flags is set, indicating support for | ||
| ; separate NAP and ISP authentication. | ||
| n-bit = ", NAP" | ||
| ; If present, the 'N' bit in the Message | ||
| ; Flags is set, indicating that current | ||
| ; EAP authentication is for NAP authentication. | ||
| l-bit = ", SLS" | ||
| ; If present, the 'L' bit in the Message | ||
| ; Flags is set, indicating PAA is performing | ||
| ; stateless discovery | ||
| fixed = [qual] "<" avp-spec ">" | fixed = [qual] "<" avp-spec ">" | |
| ; Defines the fixed position of an AVP | ; Defines the fixed position of an AVP. | |
| required = [qual] "{" avp-spec "}" | required = [qual] "{" avp-spec "}" | |
| ; The AVP MUST be present and can appear | ; The AVP MUST be present and can appear | |
| ; anywhere in the message. | ; anywhere in the message. | |
| optional = [qual] "[" avp-name "]" | optional = [qual] "[" avp-name "]" | |
| ; The avp-name in the 'optional' rule cannot | ; The avp-name in the 'optional' rule cannot | |
| ; evaluate to any AVP Name which is included | ; evaluate to any AVP Name which is included | |
| ; in a fixed or required rule. The AVP can | ; in a fixed or required rule. The AVP can | |
| ; appear anywhere in the message. | ; appear anywhere in the message. | |
| Skipping to change at page 41, line 35: | ||
| ; in the base or extended PANA protocol | ; in the base or extended PANA protocol | |
| ; specifications. | ; specifications. | |
| avp-name = avp-spec / "AVP" | avp-name = avp-spec / "AVP" | |
| ; The string "AVP" stands for *any* arbitrary | ; The string "AVP" stands for *any* arbitrary | |
| ; AVP Name, which does not conflict with the | ; AVP Name, which does not conflict with the | |
| ; required or fixed position AVPs defined in | ; required or fixed position AVPs defined in | |
| ; the message definition. | ; the message definition. | |
| Example-Request ::= < "PANA-Header: 9999999, REQ > | Example-Request ::= < "PANA-Header: 9999999, REQ > | |
| < Session-Id > | ||
| { Result-Code } | { Result-Code } | |
| * [ AVP ] | * [ AVP ] | |
| 0*1 < AUTH > | 0*1 < AUTH > | |
| 7.1. PANA-PAA-Discover (PDI) | 7.1. PANA-Client-Initiation (PCI) | |
| The PANA-PAA-Discover (PDI) message is used to discover the address | The PANA-Client-Initiation (PCI) message is used for PaC-initiated | |
| of PAA(s). The sequence number in this message is always set to zero | handshake. The Sequence Number and Session Identifier fields in this | |
| (0). | message MUST be set to zero (0). | |
| PANA-PAA-Discover ::= < PANA-Header: 1 > | PANA-Client-Initiation ::= < PANA-Header: 1 > | |
| [ Notification ] | ||
| * [ AVP ] | * [ AVP ] | |
| 7.2. PANA-Start-Request (PSR) | 7.2. PANA-Start-Request (PSR) | |
| The PANA-Start-Request (PSR) message is sent by the PAA to the PaC to | The PANA-Start-Request (PSR) message is sent by the PAA to the PaC to | |
| advertise availability of the PAA and start PANA authentication. The | start PANA authentication. The PAA sets the Sequence Number field to | |
| PAA sets the sequence number to an initial random value. | an initial random value and sets the Session Identifier field to a | |
| newly assigned value. | ||
| PANA-Start-Request ::= < PANA-Header: 2, REQ [,SEP] [,SLS] > | PANA-Start-Request ::= < PANA-Header: 2, REQ > | |
| [ Nonce ] | ||
| [ Cookie ] | ||
| [ EAP-Payload ] | [ EAP-Payload ] | |
| [ NAP-Information ] | ||
| * [ ISP-Information ] | ||
| [ Protection-Capability] | ||
| [ Algorithm ] | [ Algorithm ] | |
| [ PPAC ] | ||
| [ Notification ] | ||
| * [ AVP ] | * [ AVP ] | |
| 7.3. PANA-Start-Answer (PSA) | 7.3. PANA-Start-Answer (PSA) | |
| The PANA-Start-Answer (PSA) message is sent by the PaC to the PAA in | The PANA-Start-Answer (PSA) message is sent by the PaC to the PAA in | |
| response to a PANA-Start-Request message. This message completes the | response to a PANA-Start-Request message. This message completes the | |
| handshake to start PANA authentication. | handshake to start PANA authentication. | |
| PANA-Start-Answer ::= < PANA-Header: 2 [,SEP] > | PANA-Start-Answer ::= < PANA-Header: 2 > | |
| [ Nonce ] | ||
| [ Cookie ] | ||
| [ EAP-Payload ] | [ EAP-Payload ] | |
| [ ISP-Information ] | ||
| [ Notification ] | ||
| * [ AVP ] | * [ AVP ] | |
| 7.4. PANA-Auth-Request (PAR) | 7.4. PANA-Auth-Request (PAR) | |
| The PANA-Auth-Request (PAR) message is either sent by the PAA or the | 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. | 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 > | |
| < Session-Id > | ||
| < EAP-Payload > | < EAP-Payload > | |
| [ Nonce ] | [ Nonce ] | |
| [ Notification ] | ||
| * [ AVP ] | * [ AVP ] | |
| 0*1 < AUTH > | 0*1 < AUTH > | |
| 7.5. PANA-Auth-Answer (PAN) | 7.5. PANA-Auth-Answer (PAN) | |
| THe PANA-Auth-Answer (PAN) message is sent by either the PaC or the | The PANA-Auth-Answer (PAN) message is sent by either the PaC or the | |
| PAA in response to a PANA-Auth-Request message. It MAY carry an EAP- | PAA in response to a PANA-Auth-Request message. It MAY carry an | |
| Payload AVP. | EAP-Payload AVP. | |
| PANA-Auth-Answer ::= < PANA-Header: 3 [,SEP] [,NAP] > | PANA-Auth-Answer ::= < PANA-Header: 3 > | |
| < Session-Id > | ||
| [ Nonce ] | [ Nonce ] | |
| [ EAP-Payload ] | [ EAP-Payload ] | |
| [ Notification ] | ||
| * [ AVP ] | * [ AVP ] | |
| 0*1 < AUTH > | 0*1 < AUTH > | |
| 7.6. PANA-Reauth-Request (PRAR) | 7.6. PANA-Reauth-Request (PRR) | |
| The PANA-Reauth-Request (PRAR) message is sent by the PaC to the PAA | The PANA-Reauth-Request (PRR) message is sent by the PaC to the PAA | |
| to re-initiate EAP authentication. | to re-initiate EAP authentication. | |
| PANA-Reauth-Request ::= < PANA-Header: 4, REQ > | PANA-Reauth-Request ::= < PANA-Header: 4, REQ > | |
| < Session-Id > | ||
| [ Notification ] | ||
| * [ AVP ] | * [ AVP ] | |
| 0*1 < AUTH > | 0*1 < AUTH > | |
| 7.7. PANA-Reauth-Answer (PRAA) | 7.7. PANA-Reauth-Answer (PRA) | |
| The PANA-Reauth-Answer (PRAA) message is sent by the PAA to the PaC | The PANA-Reauth-Answer (PRA) message is sent by the PAA to the PaC in | |
| in response to a PANA-Reauth-Request message. | response to a PANA-Reauth-Request message. | |
| PANA-Reauth-Answer ::= < PANA-Header: 4 > | PANA-Reauth-Answer ::= < PANA-Header: 4 > | |
| < Session-Id > | ||
| [ Notification ] | ||
| * [ AVP ] | * [ AVP ] | |
| 0*1 < AUTH > | 0*1 < AUTH > | |
| 7.8. PANA-Bind-Request (PBR) | 7.8. PANA-Bind-Request (PBR) | |
| The PANA-Bind-Request (PBR) message is sent by the PAA to the PaC to | The PANA-Bind-Request (PBR) message is sent by the PAA to the PaC to | |
| deliver the result of PANA authentication. | deliver the result of PANA authentication. | |
| PANA-Bind-Request ::= < PANA-Header: 5, REQ [,SEP] [,NAP] > | PANA-Bind-Request ::= < PANA-Header: 5, REQ > | |
| < Session-Id > | ||
| { Result-Code } | { Result-Code } | |
| [ PPAC ] | ||
| [ EAP-Payload ] | [ EAP-Payload ] | |
| [ Session-Lifetime ] | [ Session-Lifetime ] | |
| [ Protection-Capability ] | ||
| [ Key-Id ] | [ Key-Id ] | |
| [ Algorithm ] | [ Algorithm ] | |
| * [ Device-Id ] | ||
| [ Notification ] | ||
| * [ AVP ] | * [ AVP ] | |
| 0*1 < AUTH > | 0*1 < AUTH > | |
| 7.9. PANA-Bind-Answer (PBA) | 7.9. PANA-Bind-Answer (PBA) | |
| The PANA-Bind-Answer (PBA) message is sent by the PaC to the PAA in | The PANA-Bind-Answer (PBA) message is sent by the PaC to the PAA in | |
| response to a PANA-Bind-Request message. | response to a PANA-Bind-Request message. | |
| PANA-Bind-Answer ::= < PANA-Header: 5 [,SEP] [,NAP] > | PANA-Bind-Answer ::= < PANA-Header: 5 > | |
| < Session-Id > | ||
| [ PPAC ] | ||
| [ Device-Id ] | ||
| [ Key-Id ] | [ Key-Id ] | |
| [ Notification ] | ||
| * [ AVP ] | * [ AVP ] | |
| 0*1 < AUTH > | 0*1 < AUTH > | |
| 7.10. PANA-Ping-Request (PPR) | 7.10. PANA-Ping-Request (PPR) | |
| The PANA-Ping-Request (PPR) message is either sent by the PaC or the | The PANA-Ping-Request (PPR) message is either sent by the PaC or the | |
| PAA for performing liveness test. | PAA for performing liveness test. | |
| PANA-Ping-Request ::= < PANA-Header: 6, REQ > | PANA-Ping-Request ::= < PANA-Header: 6, REQ > | |
| < Session-Id > | ||
| [ Notification ] | ||
| * [ AVP ] | * [ AVP ] | |
| 0*1 < AUTH > | 0*1 < AUTH > | |
| 7.11. PANA-Ping-Answer (PPA) | 7.11. PANA-Ping-Answer (PPA) | |
| The PANA-Ping-Answer (PPA) message is sent in response to a PANA- | The PANA-Ping-Answer (PPA) message is sent in response to a | |
| Ping-Request. | PANA-Ping-Request. | |
| PANA-Ping-Answer ::= < PANA-Header: 6 > | PANA-Ping-Answer ::= < PANA-Header: 6 > | |
| < Session-Id > | ||
| [ Notification ] | ||
| * [ AVP ] | * [ AVP ] | |
| 0*1 < AUTH > | 0*1 < AUTH > | |
| 7.12. PANA-Termination-Request (PTR) | 7.12. PANA-Termination-Request (PTR) | |
| The PANA-Termination-Request (PTR) message is sent either by the PaC | The PANA-Termination-Request (PTR) message is sent either by the PaC | |
| or the PAA to terminate a PANA session. | or the PAA to terminate a PANA session. | |
| PANA-Termination-Request ::= < PANA-Header: 7, REQ > | PANA-Termination-Request ::= < PANA-Header: 7, REQ > | |
| < Session-Id > | ||
| < Termination-Cause > | < Termination-Cause > | |
| [ Notification ] | ||
| * [ AVP ] | * [ AVP ] | |
| 0*1 < AUTH > | 0*1 < AUTH > | |
| 7.13. PANA-Termination-Answer (PTA) | 7.13. PANA-Termination-Answer (PTA) | |
| The PANA-Termination-Answer (PTA) message is sent either by the PaC | The PANA-Termination-Answer (PTA) message is sent either by the PaC | |
| or the PAA in response to PANA-Termination-Request. | or the PAA in response to PANA-Termination-Request. | |
| PANA-Termination-Answer ::= < PANA-Header: 7 > | PANA-Termination-Answer ::= < PANA-Header: 7 > | |
| < Session-Id > | ||
| [ Notification ] | ||
| * [ AVP ] | * [ AVP ] | |
| 0*1 < AUTH > | 0*1 < AUTH > | |
| 7.14. PANA-Error-Request (PER) | 7.14. PANA-Error-Request (PER) | |
| The PANA-Error-Request (PER) message is sent either by the PaC or the | 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. | PAA to report an error with the last received PANA message. This | |
| message MUST contain one Failed-Message-Header AVP which carries the | ||
| content of the PANA message header of the erroneous message. | ||
| PANA-Error-Request ::= < PANA-Header: 8, REQ > | PANA-Error-Request ::= < PANA-Header: 8, REQ > | |
| < Session-Id > | ||
| < Result-Code > | < Result-Code > | |
| { Failed-Message-Header } | ||
| * [ Failed-AVP ] | * [ Failed-AVP ] | |
| [ Notification ] | ||
| * [ AVP ] | * [ AVP ] | |
| 0*1 < AUTH > | 0*1 < AUTH > | |
| 7.15. PANA-Error-Answer (PEA) | 7.15. PANA-Error-Answer (PEA) | |
| The PANA-Error-Answer (PEA) message is sent in response to a PANA- | The PANA-Error-Answer (PEA) message is sent in response to a | |
| Error-Request. | PANA-Error-Request. | |
| PANA-Error-Answer ::= < PANA-Header: 8 > | PANA-Error-Answer ::= < PANA-Header: 8 > | |
| < Session-Id > | ||
| [ Notification ] | ||
| * [ AVP ] | ||
| 0*1 < AUTH > | ||
| 7.16. PANA-FirstAuth-End-Request (PFER) | ||
| 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] > | ||
| < Session-Id > | ||
| { Result-Code } | ||
| [ EAP-Payload ] | ||
| [ Key-Id ] | ||
| [ Algorithm ] | ||
| [ Notification ] | ||
| * [ AVP ] | ||
| 0*1 < AUTH > | ||
| 7.17. PANA-FirstAuth-End-Answer (PFEA) | ||
| The PANA-FirstAuth-End-Answer (PFEA) message is sent by the PaC to | ||
| the PAA in response to a PANA-FirstAuth-End-Request message. | ||
| PANA-FirstAuth-End-Answer ::= < PANA-Header: 9, REQ [,SEP] [,NAP] > | ||
| < Session-Id > | ||
| [ Key-Id ] | ||
| [ Notification ] | ||
| * [ AVP ] | * [ AVP ] | |
| 0*1 < AUTH > | 0*1 < AUTH > | |
| 7.18. PANA-Update-Request (PUR) | 7.16. PANA-Update-Request (PUR) | |
| The PANA-Update-Request (PUR) message is sent either by the PaC or | The PANA-Update-Request (PUR) message is sent either by the PaC or | |
| the PAA to deliver attribute updates and notifications. In the scope | the PAA to deliver attribute updates. In the scope of this | |
| of this specification only the IP address and device identifer of the | specification only the IP address the PaC can be updated via this | |
| PaC can be updated via this message. | message. | |
| PANA-Update-Request ::= < PANA-Header: 10, REQ > | PANA-Update-Request ::= < PANA-Header: 9, REQ > | |
| < Session-Id > | ||
| [ Device-Id ] | ||
| [ Notification ] | ||
| * [ AVP ] | * [ AVP ] | |
| 0*1 < AUTH > | 0*1 < AUTH > | |
| 7.19. PANA-Update-Answer (PUA) | 7.17. PANA-Update-Answer (PUA) | |
| The PANA-Update-Answer (PUA) message is sent by the PAA (PaC) to the | The PANA-Update-Answer (PUA) message is sent by the PAA (PaC) to the | |
| PaC (PAA) in response to a PANA-Update-Request from the PaC (PAA). | PaC (PAA) in response to a PANA-Update-Request from the PaC (PAA). | |
| PANA-Update-Answer ::= < PANA-Header: 10 > | PANA-Update-Answer ::= < PANA-Header: 9 > | |
| < Session-Id > | ||
| * [ Device-Id ] | ||
| [ Notification ] | ||
| * [ AVP ] | * [ AVP ] | |
| 0*1 < AUTH > | 0*1 < AUTH > | |
| 8. AVPs in PANA | 8. AVPs in PANA | |
| PANA defines several AVPs that are specific to the protocol. A | This document uses AVP Data Format such as 'OctetString' and | |
| number of others AVPs are reused. These are specified in other | 'Unsigned32' as defined in Section 4.2 of [RFC3588]. The definitions | |
| documents such as [RFC3588]. | of these data formats are not repeated in this document. | |
| The following tables lists the AVPs used in this document, and | The following tables lists the AVPs used in this document, and | |
| specifies in which PANA messages they MAY, or MAY NOT be present. | specifies in which PANA messages they MAY, or MAY NOT be present. | |
| The table uses the following symbols: | The table uses the following symbols: | |
| 0 The AVP MUST NOT be present in the message. | 0 The AVP MUST NOT be present in the message. | |
| 0+ Zero or more instances of the AVP MAY be present in the | 0+ Zero or more instances of the AVP MAY be present in the | |
| message. | message. | |
| 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 |PCI|PSR|PSA|PAR|PAN|PRR|PRA|PBR|PBA|PPR|PPA| | |
| Attribute Name |PDI|PSR|PSA|PAR|PAN|PRAR|PRAA|PBR|PBA|PPR|PPA| | ----------------------+---+---+---+---+---+---+---+---+---+---+---+ | |
| ----------------------+---+---+---+---+---+----+----+---+---+---+---+ | ||
| Algorithm | 0 |0-1| 0 | 0 | 0 | 0 | 0 |0-1| 0 | 0 | 0 | | Algorithm | 0 |0-1| 0 | 0 | 0 | 0 | 0 |0-1| 0 | 0 | 0 | | |
| AUTH | 0 | 0 | 0 |0-1|0-1|0-1 |0-1 |0-1|0-1|0-1|0-1| | AUTH | 0 | 0 | 0 |0-1|0-1|0-1 |0-1 |0-1|0-1|0-1|0-1| | |
| Cookie | 0 |0-1|0-1| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | ||
| Device-Id | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0+|0-1| 0 | 0 | | ||
| EAP-Payload | 0 |0-1|0-1| 1 |0-1| 0 | 0 |0-1| 0 | 0 | 0 | | EAP-Payload | 0 |0-1|0-1| 1 |0-1| 0 | 0 |0-1| 0 | 0 | 0 | | |
| Failed-AVP | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | Failed-AVP | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | |
| ISP-Information | 0 | 0+|0-1| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | Failed-Message-Header | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | |
| Key-Id | 0 | 0 | 0 | 0 | 0 | 0 | 0 |0-1|0-1| 0 | 0 | | Key-Id | 0 | 0 | 0 | 0 | 0 | 0 | 0 |0-1|0-1| 0 | 0 | | |
| NAP-Information | 0 |0-1| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | Nonce | 0 | 0 | 0 |0-1|0-1| 0 | 0 | 0 | 0 | 0 | 0 | | |
| Nonce | 0 |0-1|0-1|0-1|0-1| 0 | 0 | 0 | 0 | 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| | ||
| PPAC | 0 |0-1| 0 | 0 | 0 | 0 | 0 |0-1|0-1| 0 | 0 | | ||
| Protection-Capability | 0 |0-1| 0 | 0 | 0 | 0 | 0 |0-1| 0 | 0 | 0 | | ||
| Result-Code | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | | Result-Code | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | | |
| Session-Id | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | | ||
| Session-Lifetime | 0 | 0 | 0 | 0 | 0 | 0 | 0 |0-1| 0 | 0 | 0 | | Session-Lifetime | 0 | 0 | 0 | 0 | 0 | 0 | 0 |0-1| 0 | 0 | 0 | | |
| Termination-Cause | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | Termination-Cause | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | |
| ----------------------+---+---+---+---+---+----+----+---+---+---+---+ | ----------------------+---+---+---+---+---+---+---+---+---+---+---+ | |
| Figure 10: AVP Occurrence Table (1/2) | Figure 9: AVP Occurrence Table (1/2) | |
| +---------------------------------+ | +-----------------------+ | |
| | Message | | | Message Type | | |
| | Type | | +---+---+---+---+---+---+ | |
| +---+---+---+---+----+----+---+---+ | Attribute Name |PTR|PTA|PER|PEA|PUR|PUA| | |
| Attribute Name |PTR|PTA|PER|PEA|PFER|PFEA|PUR|PUA| | ----------------------+---+---+---+---+---+---+ | |
| ----------------------+---+---+---+---+----+----+---+---+ | Algorithm | 0 | 0 | 0 | 0 | 0 | 0 | | |
| Algorithm | 0 | 0 | 0 | 0 |0-1 | 0 | 0 | 0 | | AUTH |0-1|0-1|0-1|0-1|0-1|0-1| | |
| AUTH |0-1|0-1|0-1|0-1|0-1 |0-1 |0-1|0-1| | EAP-Payload | 0 | 0 | 0 | 0 | 0 | 0 | | |
| Cookie | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | Failed-AVP | 0 | 0 | 0+| 0 | 0 | 0 | | |
| Device-Id | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | Failed-Message-Header | 0 | 0 | 1 | 0 | 0 | 0 | | |
| EAP-Payload | 0 | 0 | 0 | 0 |0-1 | 0 | 0 | 0 | | Key-Id | 0 | 0 | 0 | 0 | 0 | 0 | | |
| Failed-AVP | 0 | 0 | 0+| 0 | 0 | 0 | 0 | 0 | | Nonce | 0 | 0 | 0 | 0 | 0 | 0 | | |
| ISP-Information | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | Result-Code | 0 | 0 | 1 | 0 | 0 | 0 | | |
| Key-Id | 0 | 0 | 0 | 0 |0-1 |0-1 | 0 | 0 | | Session-Lifetime | 0 | 0 | 0 | 0 | 0 | 0 | | |
| NAP-Information | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | Termination-Cause | 1 | 0 | 0 | 0 | 0 | 0 | | |
| Nonce | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | ----------------------+---+---+---+---+---+---+ | |
| Notification |0-1|0-1|0-1|0-1|0-1 |0-1 |0-1|0-1| | ||
| PPAC | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | ||
| Protection-Capability | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | ||
| Result-Code | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | | ||
| Session-Id | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | | ||
| Session-Lifetime | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | ||
| Termination-Cause | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | ||
| ----------------------+---+---+---+---+----+----+---+---+ | ||
| Figure 11: AVP Occurrence Table (2/2) | Figure 10: AVP Occurrence Table (2/2) | |
| 8.1. Algorithm AVP | 8.1. Algorithm AVP | |
| The Algorithm AVP (AVP Code 1) is used for conveying the pseudo- | The Algorithm AVP (AVP Code 1) is used for conveying the | |
| random function to derive PANA_AUTH_KEY and PaC-EP-Master-Key as well | pseudo-random function to derive PANA_AUTH_KEY as well as the | |
| as the integrity algorithm to compute an AUTH AVP. The AVP data is | integrity algorithm to compute an AUTH AVP. The AVP data is of type | |
| of type Unsigned32. | Unsigned32. | |
| The first 16-bit of the AVP data contains an IKEv2 Transform ID of | The first 16-bit of the AVP data contains an IKEv2 Transform ID of | |
| Transform Type 2 [RFC4306] corresponding to the key derivation | Transform Type 2 [RFC4306] corresponding to the key derivation | |
| function. | function. | |
| The last 16-bit of the AVP data contains an IKEv2 Transform ID of | The last 16-bit of the AVP data contains an IKEv2 Transform ID of | |
| Transform Type 3 [RFC4306] for the integrity algorithm. | Transform Type 3 [RFC4306] for the integrity algorithm. | |
| All PANA implementations MUST support PRF_HMAC_SHA1 (2) [RFC2104] for | All PANA implementations MUST support PRF_HMAC_SHA1 (2) [RFC2104] for | |
| the key derivation algorithm and AUTH_HMAC_SHA1_160 (7) [ianaweb] | the key derivation algorithm and AUTH_HMAC_SHA1_160 (7) [RFC4595] | |
| corresponding to the integrity algorithm. | corresponding to the integrity algorithm. | |
| 8.2. AUTH AVP | 8.2. AUTH AVP | |
| The AUTH AVP (AVP Code 2) is used to integrity protect PANA messages. | The AUTH AVP (AVP Code 2) is used to integrity protect PANA messages. | |
| The AVP data payload contains the Message Authentication Code encoded | The AVP data payload contains the Message Authentication Code encoded | |
| in network byte order. The AVP length varies depending on the | in network byte order. The AVP length varies depending on the | |
| integrity algorithm specified in an Algorithm AVP. | integrity algorithm specified in an Algorithm AVP. | |
| 8.3. Cookie AVP | 8.3. EAP-Payload AVP | |
| The Cookie AVP (AVP Code 3) is used for carrying a random value | ||
| generated by the PAA according to [RFC4086]. 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.3. | ||
| 8.4. Device-Id AVP | ||
| The Device-Id AVP (AVP Code 4) is used for carrying device | ||
| identifiers of PaC and EP(s). The AVP data is of Address type | ||
| [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. | ||
| 8.5. EAP-Payload AVP | ||
| The EAP-Payload AVP (AVP Code 5) is used for encapsulating the actual | The EAP-Payload AVP (AVP Code 3) is used for encapsulating the actual | |
| EAP message that is being exchanged between the EAP peer and the EAP | EAP message that is being exchanged between the EAP peer and the EAP | |
| authenticator. The AVP data is of type OctetString. | authenticator. The AVP data is of type OctetString. | |
| 8.6. Failed-AVP AVP | 8.4. Failed-AVP AVP | |
| The Failed-AVP AVP (AVP Code 6) provides debugging information in | The Failed-AVP AVP (AVP Code 4) provides debugging information in | |
| cases where a request is rejected or not fully processed due to | cases where a message is rejected or not fully processed due to | |
| erroneous information in a specific AVP. The AVP data is of type | erroneous information in a specific AVP. The AVP data is of type | |
| Grouped. The format of the Failed-AVP AVP is defined in [RFC3588]. | Grouped. The format of the Failed-AVP AVP using the ABNF grammar | |
| defined in [RFC3588] for Grouped AVP is as follows. | ||
| <Failed-AVP> ::= < AVP Header: 4 > | ||
| 1* {AVP} | ||
| In case of a failed grouped AVP, the Failed-AVP contains the whole | In case of a failed grouped AVP, the Failed-AVP contains the whole | |
| grouped AVP. In case of a failed AVP inside a grouped AVP, the | grouped AVP. In case of a failed AVP inside a grouped AVP, the | |
| Failed-AVP contains the single offending AVP. | Failed-AVP contains the single offending AVP. | |
| 8.7. ISP-Information AVP | 8.5. Failed-Message-Header AVP | |
| The ISP-Information AVP (AVP Code 7) 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: 7 > | ||
| 0*1 { Provider-Identifier } | ||
| { Provider-Name } | ||
| * [ AVP ] | ||
| 8.8. Key-Id AVP | ||
| The Key-Id AVP (AVP Code 8) 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. | ||
| 8.9. NAP-Information AVP | The Failed-Message-Header AVP (AVP Code 5) provides debugging | |
| information in cases where a message is rejected or not fully | ||
| processed due to erroneous information in the message. The AVP data | ||
| is of type OctetString. The AVP data contains the 16-octet header of | ||
| the message that caused the error. | ||
| The NAP-Information AVP (AVP Code 9) contains zero or one Provider- | 8.6. Key-Id AVP | |
| Identifier AVP which carries the identifier of the NAP and one | ||
| Provider-Name AVP which carries the name of the NAP. The AVP data is | ||
| of type Grouped, and it has the following ABNF grammar: | ||
| NAP-Information ::= < AVP Header: 9 > | The Key-Id AVP (AVP Code 6) is of type Integer32, and contains an MSK | |
| 0*1 { Provider-Identifier } | identifier. The MSK identifier is assigned by PAA and MUST be unique | |
| { Provider-Name } | within the PANA session. | |
| * [ AVP ] | ||
| 8.10. Nonce AVP | 8.7. Nonce AVP | |
| The Nonce AVP (AVP Code 10) carries a randomly chosen value that is | The Nonce AVP (AVP Code 7) carries a randomly chosen value that is | |
| used in cryptographic key computations. The recommendations in | used in cryptographic key computations. The recommendations in | |
| [RFC4086] apply with regard to generation of random values. The AVP | [RFC4086] apply with regard to generation of random values. The AVP | |
| data is of type OctetString and it contains a randomly generated | data is of type OctetString and it contains a randomly generated | |
| value in opaque format. The data length MUST be between 8 and 256 | value in opaque format. The data length MUST be between 8 and 256 | |
| octets inclusive. | octets inclusive. | |
| The length of the nonces are determined based on the available | The length of the nonces are determined based on the available | |
| pseudo-random functions (PRFs) and the degree of trust placed into | pseudo-random functions (PRFs) and the degree of trust placed into | |
| the two PaC and the PAA to compute random values. The length of the | the two PaC and the PAA to compute random values. The length of the | |
| random value for the nonce is determined whether | random value for the nonce is determined whether | |
| Skipping to change at page 53, line 11: | ||
| computation a random nonce (according to [RFC4086]). The length | computation a random nonce (according to [RFC4086]). The length | |
| of the nonce has to have the full length of the PRF key (e.g., 20 | of the nonce has to have the full length of the PRF key (e.g., 20 | |
| octets in the case of HMAC-SHA1). | octets in the case of HMAC-SHA1). | |
| Furthermore, the strongest available PRF available for PANA has to be | Furthermore, the strongest available PRF available for PANA has to be | |
| considered in this computation. Currently, only a single PRF (namely | considered in this computation. Currently, only a single PRF (namely | |
| HMAC-SHA1) is available and therefore the maximum output length is 20 | HMAC-SHA1) is available and therefore the maximum output length is 20 | |
| octets). The recommended maximum length of the nonce value is | octets). The recommended maximum length of the nonce value is | |
| therefore currently 20 octets. | therefore currently 20 octets. | |
| 8.11. Notification AVP | 8.8. Result-Code AVP | |
| The Notification AVP (AVP Code 11) is optionally used to convey a | ||
| 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. | ||
| The 'M' bit in the AVP header of this AVP MUST NOT be set. | ||
| Receipt this AVP does not change PANA state. | ||
| AVP data is of type OctetString and it contains the following fields | ||
| in the listed order: | ||
| Language Tag Length | ||
| This field contains the length of the Language Tag in octets. The | ||
| length of this field is 2 octets. | ||
| Language Tag | ||
| This field contains the language tag defined in [I-D.ietf-ltru- | ||
| registry] to indicate the language used for Displayable String. | ||
| The length of this data is determined by the Language Tag Length | ||
| field. | ||
| Displayable String | ||
| This field contains UTF-8 encoded ISO 10646 characters [RFC2279] | ||
| using the language indicated by the Language Tag. The length of | ||
| this data is determined by the AVP Length field and the Language | ||
| Tag Length field. This data MUST NOT be null terminated. | ||
| 8.12. Post-PANA-Address-Configuration (PPAC) 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. The AVP data is of type | ||
| Unsigned32. | ||
| The format of the AVP data is as follows: | ||
| 0 1 2 3 | ||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | ||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| |N|F|S|A|T|I| Reserved | | ||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| PPAC Flags | ||
| N (No configuration) | ||
| The PaC does not have to (if sent by PAA) or will not (if sent | ||
| by PaC) configure a new IP address after PANA. | ||
| F (DHCPv4) | ||
| The PaC can (if sent by PAA) or will (if sent by PaC) use | ||
| DHCPv4 [RFC2131] to configure a new IPv4 address after PANA. | ||
| S (DHCPv6) | ||
| The PaC can (if sent by PAA) or will (if sent by PaC) use | ||
| DHCPv6 [RFC3315] to configure a new IPv4 address after PANA. | ||
| A (stateless autoconfiguration) | ||
| The PaC can/will use stateless IPv6 address autoconfiguration | ||
| [RFC2462] to configure a new IPv6 address after PANA. | ||
| T (DHCPv4 with IPsec tunnel mode) | ||
| The PaC can/will use [RFC3456] to configure a new IPv4 address | ||
| after PANA. | ||
| I (IKEv2) | ||
| The PaC can/will use [RFC4306] to configure (a) new IPv4 and/or | ||
| IPv6 address(es) after PANA. | ||
| Reserved | ||
| These flag bits are reserved for future use, and MUST be set to | ||
| zero, and ignored by the receiver. | ||
| The PAA MUST set either the N-flag, or one or more of the other | ||
| flags. If the N-flag is set, the PaC MUST only set its N-flag in its | ||
| response. If the N-flag is not set by the PAA, that means the PaC | ||
| MUST configure POPA(s) using the method(s) indicated by the flags. | ||
| If IPsec-based access control is not used, the F-flag, S-flag or | ||
| A-flag MUST be set by the PAA, and the PaC MUST echo the same flag(s) | ||
| in its response. Refer to [I-D.ietf-pana-framework] for a detailed | ||
| discussion on when these methods can be used. | ||
| 8.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 | ||
| 8.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. | ||
| 8.15. Provider-Name AVP | ||
| The Provider-Name AVP (AVP Code 15) is of type UTF8String, and | ||
| contains the UTF8-encoded name of the provider. | ||
| 8.16. Result-Code AVP | ||
| The Result-Code AVP (AVP Code 16) is of type Unsigned32 and indicates | The Result-Code AVP (AVP Code 8) 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. Result-Code AVP values are described in the | |
| [RFC3588] and adapted for PANA. | subsequent sections. | |
| 8.16.1. Authentication Results Codes | 8.8.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 is | result can be different as described below, but only one result is | |
| returned to the PaC. These codes are used with PANA-Bind-Request and | returned to the PaC. These codes are used with PANA-Bind-Request | |
| PANA-FirstAuth-End-Request messages. | message. | |
| PANA_SUCCESS 2001 | PANA_SUCCESS 0 | |
| Both authentication and authorization processes are successful. | Both authentication and authorization processes are successful. | |
| PANA_AUTHENTICATION_REJECTED 4001 | PANA_AUTHENTICATION_REJECTED 1 | |
| Authentication has failed. When this error is returned, it is | Authentication has failed. When this error is returned, it is | |
| assumed that authorization is automatically failed. | assumed that authorization is automatically failed. | |
| PANA_AUTHORIZATION_REJECTED 5003 | PANA_AUTHORIZATION_REJECTED 2 | |
| The authorization process has failed. This error could occur when | The authorization process has failed. This error could occur when | |
| authorization is rejected by a AAA server or rejected locally by a | authorization is rejected by a AAA server or rejected locally by a | |
| PAA, even if the authentication procedure has succeeded. | PAA, even if the authentication procedure has succeeded. | |
| 8.16.2. Protocol Error Result Codes | 8.8.2. Protocol Error Result Codes | |
| These codes are used with PANA-Error-Request messages. Unless stated | These codes are used with PANA-Error-Request messages. Unless stated | |
| otherwise, they can be generated by both the PaC and the PAA. | otherwise, they can be generated by both the PaC and the PAA. | |
| PANA_MESSAGE_UNSUPPORTED 3001 | PANA_MESSAGE_UNSUPPORTED 1001 | |
| Message type not recognized or supported. | Message type not recognized or supported. | |
| PANA_UNABLE_TO_DELIVER 3002 | PANA_UNABLE_TO_DELIVER 1002 | |
| The PAA was unable to deliver the EAP payload to the | The PAA was unable to deliver the EAP payload to the | |
| authentication server. Only the PAA can generate this code. | authentication server. Only the PAA can generate this code. | |
| PANA_INVALID_HDR_BITS 3008 | PANA_INVALID_HDR_BITS 1003 | |
| A message was received whose bits in the PANA header were either | A message was received whose bits in the PANA message header were | |
| set to an invalid combination, or to a value that is inconsistent | either set to an invalid combination, or to a value that is | |
| with the message type definition. | inconsistent with the message type definition. | |
| PANA_INVALID_AVP_FLAGS 3009 | PANA_INVALID_AVP_FLAGS 1004 | |
| A message was received that included an AVP whose flag bits are | A message was received that included an AVP whose flag bits are | |
| set to an unrecognized value, or that is inconsistent with the | set to an unrecognized value, or that is inconsistent with the | |
| AVP's definition. | AVP's definition. | |
| PANA_AVP_UNSUPPORTED 5001 | PANA_AVP_UNSUPPORTED 1005 | |
| The received message contained an AVP that is not recognized or | The received message contained an AVP that is not recognized or | |
| supported and was marked with the Mandatory bit. A PANA message | supported and was marked with the Mandatory bit. A PANA message | |
| with this error MUST contain one or more Failed-AVP AVP containing | with this error MUST contain one or more Failed-AVP AVP containing | |
| the AVPs that caused the failure. | the AVPs that caused the failure. | |
| PANA_UNKNOWN_SESSION_ID 5002 | PANA_INVALID_AVP_DATA 1006 | |
| The message contained an unknown Session-Id. A PANA message | ||
| indicating this error MUST include the unknown Session-Id AVP | ||
| within a Failed-AVP AVP. | ||
| PANA_INVALID_AVP_DATA 5004 | ||
| The message contained an AVP with an invalid value in its data | The message contained an AVP with an invalid value in its data | |
| portion. A PANA message indicating this error MUST include the | portion. A PANA message indicating this error MUST include the | |
| offending AVPs within a Failed-AVP AVP. | offending AVPs within a Failed-AVP AVP. | |
| PANA_MISSING_AVP 5005 | PANA_MISSING_AVP 1007 | |
| The message did not contain an AVP that is required by the message | The message did not contain an AVP that is required by the message | |
| type definition. If this value is sent in the Result-Code AVP, a | type definition. If this value is sent in the Result-Code AVP, a | |
| Failed-AVP AVP SHOULD be included in the message. The Failed-AVP | 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 1008 | |
| A message was received that cannot be authorized because the | A message was received that cannot be authorized because the | |
| client has already expended allowed resources. An example of this | client has already expended allowed resources. An example of this | |
| error condition is a client that is restricted to one PANA session | error condition is a client that is restricted to one PANA session | |
| and attempts to establish a second session. Only the PAA can | and attempts to establish a second session. Only the PAA can | |
| generate this code. | generate this code. | |
| PANA_CONTRADICTING_AVPS 5007 | PANA_CONTRADICTING_AVPS 1009 | |
| The PAA has detected AVPs in the message that contradicted each | The PAA has detected AVPs in the message that contradicted each | |
| other, and is not willing to provide service to the client. One | other, and is not willing to provide service to the client. One | |
| or more Failed-AVP AVPs MUST be present, containing the AVPs that | or more Failed-AVP AVPs MUST be present, containing the AVPs that | |
| contradicted each other. Only the PAA can generate this code. | contradicted each other. Only the PAA can generate this code. | |
| PANA_AVP_NOT_ALLOWED 5008 | PANA_AVP_NOT_ALLOWED 1010 | |
| A message was received with an AVP that MUST NOT be present. The | A message was received with an AVP that MUST NOT be present. The | |
| Failed-AVP AVP MUST be included and contain a copy of the | Failed-AVP AVP 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 1011 | |
| A message was received that included an AVP that appeared more | A message was received that included an AVP that appeared more | |
| often than permitted in the message definition. The Failed-AVP | often than permitted in the message definition. The Failed-AVP | |
| AVP MUST be included and contain a copy of the first instance of | AVP MUST be included and contain a copy of the first instance of | |
| the offending AVP that exceeded the maximum number of occurrences. | the offending AVP that exceeded the maximum number of occurrences. | |
| PANA_UNSUPPORTED_VERSION 5011 | PANA_UNSUPPORTED_VERSION 1012 | |
| This error is returned when a message was received, whose version | This error is returned when a message was received, whose version | |
| number is unsupported. | number is unsupported. | |
| PANA_UNABLE_TO_COMPLY 5012 | PANA_UNABLE_TO_COMPLY 1013 | |
| This error is returned when a request is rejected for unspecified | This error is returned when a request is rejected for unspecified | |
| reasons. For example, when an EAP authentication fails at an EAP | reasons. For example, when an EAP authentication fails at an EAP | |
| pass-through authenticator without passing an EAP Failure message | pass-through authenticator without passing an EAP Failure message | |
| to the PAA, a Result-Code AVP with this error code is carried in | to the PAA, a Result-Code AVP with this error code is carried in | |
| the PANA-Error-Request message. | the PANA-Error-Request message. | |
| PANA_INVALID_AVP_LENGTH 5014 | PANA_INVALID_AVP_LENGTH 1014 | |
| The message contained an AVP with an invalid length. The PANA- | The message contained an AVP with an invalid length. The | |
| Error-Request message indicating this error MUST include the | PANA-Error-Request message indicating this error MUST include the | |
| offending AVPs within a Failed-AVP AVP. | offending AVPs within a Failed-AVP AVP. | |
| PANA_INVALID_MESSAGE_LENGTH 5015 | PANA_INVALID_MESSAGE_LENGTH 1015 | |
| This error is returned when a message is received with an invalid | This error is returned when a message is received with an invalid | |
| message length. | message length. | |
| PANA_PROTECTION_CAPABILITY_UNSUPPORTED 5016 | 8.9. Session-Lifetime AVP | |
| This error is returned when the PaC receives a PANA-Bind-Request | ||
| message with a Protection-Capability AVP and a valid AUTH AVP but | ||
| does not support the protection capability specified in the | ||
| Protection-Capability AVP. Only the PaC can generate this code. | ||
| PANA_PPAC_CAPABILITY_UNSUPPORTED 5017 | ||
| This error is returned when there is no match between the list of | ||
| PPAC methods offered by the PAA and the ones available on the PaC. | ||
| Only the PaC can generate this code. | ||
| 8.17. Session-Id AVP | ||
| All messages pertaining to a specific PANA session MUST include a | ||
| Session-Id AVP (AVP Code 17) which carries a PAA-assigned fixed | ||
| session identifier value throughout the lifetime of a session. When | ||
| present, the Session-Id AVP MUST appear immediately following the | ||
| PANA header. | ||
| The Session-Id MUST be globally and eternally unique, as it is meant | ||
| to identify a PANA session without reference to any other | ||
| information, and may be needed to correlate historical authentication | ||
| information with accounting information. The PANA Session-Id AVP has | ||
| the same format as the Diameter Session-Id AVP [RFC3588]. | ||
| 8.18. Session-Lifetime AVP | ||
| The Session-Lifetime AVP (AVP Code 18) contains the number of seconds | The Session-Lifetime AVP (AVP Code 9) contains the number of seconds | |
| remaining before the current session is considered expired. The AVP | remaining before the current session is considered expired. The AVP | |
| data is of type Unsigned32. | data is of type Unsigned32. | |
| 8.19. Termination-Cause AVP | 8.10. Termination-Cause AVP | |
| The Termination-Cause AVP (AVP Code 19) is used for indicating the | The Termination-Cause AVP (AVP Code 10) is used for indicating the | |
| reason why a session is terminated by the requester. The AVP data is | reason why a session is terminated by the requester. The AVP data is | |
| of type Enumerated. The following Termination-Cause data values are | of type Enumerated. The following Termination-Cause data values are | |
| used with PANA. | used with PANA. | |
| LOGOUT 1 (PaC -> PAA) | LOGOUT 1 (PaC -> PAA) | |
| The client initiated a disconnect | The client initiated a disconnect | |
| ADMINISTRATIVE 4 (PAA -> PaC) | ADMINISTRATIVE 4 (PAA -> PaC) | |
| The client was not granted access, or was disconnected, due to | The client was not granted access, or was disconnected, due to | |
| administrative reasons. | administrative reasons. | |
| SESSION_TIMEOUT 8 (PAA -> PaC) | SESSION_TIMEOUT 8 (PAA -> PaC) | |
| The session has timed out, and service has been terminated. | The session has timed out, and service has been terminated. | |
| 9. Retransmission Timers | 9. Retransmission Timers | |
| The PANA protocol provides retransmissions for the PANA-PAA-Discover | The PANA protocol provides retransmissions for the | |
| message and all request messages, with the exception that the PANA- | PANA-Client-Initiation message and all request messages. | |
| Start-Answer message is retransmitted instead of the PANA-Start- | ||
| Request message in stateless PAA discovery. | ||
| PANA retransmission timers are based on the model used in DHCPv6 | PANA retransmission timers are based on the model used in DHCPv6 | |
| [RFC3315]. Variables used here are also borrowed from this | [RFC3315]. Variables used here are also borrowed from this | |
| specification. PANA is a request response like protocol. The | specification. PANA is a request response like protocol. The | |
| message exchange terminates when either the request sender | message exchange terminates when the request sender successfully | |
| successfully receives the appropriate answer, or when the message | receives the appropriate answer, or when a protected | |
| exchange is considered to have failed according to the retransmission | PANA-Error-Request message for the request is received, or when the | |
| mechanism described below. | message exchange is considered to have failed according to the | |
| retransmission mechanism described below. | ||
| The retransmission behavior is controlled and described by the | The retransmission behavior is controlled and described by the | |
| following variables: | following variables: | |
| RT Retransmission timeout | RT Retransmission timeout | |
| IRT Initial retransmission time | IRT Initial retransmission time | |
| MRC Maximum retransmission count | MRC Maximum retransmission count | |
| Skipping to change at page 61, line 35: | ||
| If both MRC and MRD are non-zero, the message exchange fails whenever | If both MRC and MRD are non-zero, the message exchange fails whenever | |
| either of the conditions specified in the previous two paragraphs are | either of the conditions specified in the previous two paragraphs are | |
| met. | met. | |
| If both MRC and MRD are zero, the client continues to transmit the | If both MRC and MRD are zero, the client continues to transmit the | |
| message until it receives a response. | message until it receives a response. | |
| 9.1. Transmission and Retransmission Parameters | 9.1. Transmission and Retransmission Parameters | |
| This section presents a table of values used to describe the message | This section presents a table of values used to describe the message | |
| retransmission behavior of PANA requests and answers that are | retransmission behavior of PANA requests that are retransmitted | |
| retransmitted (REQ_*) and PANA-PAA-Discover message (PDI_*). The | (REQ_*) and PANA-Client-Initiation message (PCI_*). The table shows | |
| table shows default values. | default values. | |
| Parameter Default Description | Parameter Default Description | |
| ------------------------------------------------ | ------------------------------------------------ | |
| PDI_IRT 1 sec Initial PDI timeout. | PCI_IRT 1 sec Initial PCI timeout. | |
| PDI_MRT 120 secs Max PDI timeout value. | PCI_MRT 120 secs Max PCI timeout value. | |
| PDI_MRC 0 Configurable. | PCI_MRC 0 Configurable. | |
| PDI_MRD 0 Configurable. | PCI_MRD 0 Configurable. | |
| REQ_IRT 1 sec Initial Request timeout. | REQ_IRT 1 sec Initial Request timeout. | |
| REQ_MRT 30 secs Max Request timeout value. | REQ_MRT 30 secs Max Request timeout value. | |
| REQ_MRC 10 Max Request retry attempts. | REQ_MRC 10 Max Request retry attempts. | |
| REQ_MRD 0 Configurable. | REQ_MRD 0 Configurable. | |
| So for example the first RT for the PBR message is calculated using | So for example the first RT for the PBR message is calculated using | |
| REQ_IRT as the IRT: | REQ_IRT as the IRT: | |
| RT = REQ_IRT + RAND*REQ_IRT | RT = REQ_IRT + RAND*REQ_IRT | |
| Skipping to change at page 63, line 35: | ||
| publish a notice of the decision to the PANA WG mailing list or its | publish a notice of the decision to the PANA WG mailing list or its | |
| successor. A denial notice must be justified by an explanation and, | successor. A denial notice must be justified by an explanation and, | |
| in the cases where it is possible, concrete suggestions on how the | in the cases where it is possible, concrete suggestions on how the | |
| request can be modified so as to become acceptable. | request can be modified so as to become acceptable. | |
| 10.1. PANA UDP Port Number | 10.1. PANA UDP Port Number | |
| PANA uses one well-known UDP port number (Section 4.1, Section 4.3 | PANA uses one well-known UDP port number (Section 4.1, Section 4.3 | |
| and Section 6.1), which needs to be assigned by the IANA. | and Section 6.1), which needs to be assigned by the IANA. | |
| 10.2. PANA Multicast Address | 10.2. PANA Message Header | |
| PANA uses one well-known administratively scoped IPv4 multicast | As defined in Section 6.2, the PANA message header contains two | |
| address, and one well-known administratively scoped IPv6 multicast | fields that requires IANA namespace management; the Version, Message | |
| address (Section 4.3 and Section 6.1), which need to be assigned by | Type and Flags fields. | |
| the IANA. | ||
| 10.3. PANA Header | 10.2.1. Version | |
| As defined in Section 6.2, the PANA header contains two fields that | The Version namespace is used to identify PANA versions. The Version | |
| requires IANA namespace management; the Message Type and Flags field. | values are assigned by Standards Action [IANA]. This document | |
| defines the Version 1. | ||
| 10.3.1. Message Type | 10.2.2. Message Type | |
| The Message Type namespace is used to identify PANA messages. Values | The Message Type namespace is used to identify PANA messages. Values | |
| 0-65,533 are for permanent, standard message types, allocated by IETF | 0-65,519 are for permanent, standard message types, allocated by IETF | |
| Consensus [IANA]. This document defines the Message Types 1-10. See | Consensus [IANA]. This document defines the Message Types 1-9. See | |
| Section 7.1 through Section 7.19 for the assignment of the namespace | Section 7.1 through Section 7.17 for the assignment of the namespace | |
| in this specification. | in this specification. | |
| The values 65,534 and 65,535 (hexadecimal values 0xfffe - 0xffff) are | The values 65,520 and 65,535 (hexadecimal values 0xfff0 - 0xffff) are | |
| reserved for experimental messages. As these codes are only for | reserved for experimental messages. As these codes are only for | |
| experimental and testing purposes, no guarantee is made for | experimental and testing purposes, no guarantee is made for | |
| interoperability between the communicating PaC and PAA using | interoperability between the communicating PaC and PAA using | |
| experimental commands, as outlined in [IANA-EXP]. | experimental commands, as outlined in [IANA-EXP]. | |
| 10.3.2. Flags | 10.2.3. Flags | |
| There are 16 bits in the Flags field of the PANA header. This | There are 16 bits in the Flags field of the PANA message header. | |
| document assigns bit 0 ('R'equest), bit 1 ('S'eparate) and bit 2 | This document assigns bit 0 ('R'equest). The remaining bits MUST | |
| ('N'AP Authentication). The remaining bits MUST only be assigned via | only be assigned via a Standards Action [IANA]. | |
| a Standards Action [IANA]. | ||
| 10.4. AVP Header | 10.3. AVP Header | |
| As defined in Section 6.3, the AVP header contains three fields that | As defined in Section 6.3, the AVP header contains three fields that | |
| requires IANA namespace management; the AVP Code, AVP Flags and | requires IANA namespace management; the AVP Code, AVP Flags and | |
| Vendor-Id fields where only the AVP Code and AVP Flags create new | Vendor-Id fields where only the AVP Code and AVP Flags create new | |
| namespaces. | namespaces. | |
| 10.4.1. AVP Code | 10.3.1. AVP Code | |
| The AVP Code namespace is used to identify attributes. There are | The 16-bit AVP Code namespace is used to identify attributes. There | |
| multiple namespaces. Vendors can have their own AVP Codes namespace | are multiple namespaces. Vendors can have their own AVP Codes | |
| which will be identified by their Vendor-ID (also known as | namespace which will be identified by their Vendor-ID (also known as | |
| Enterprise-Number) and they control the assignments of their vendor- | Enterprise-Number) and they control the assignments of their | |
| specific AVP codes within their own namespace. The absence of a | vendor-specific AVP codes within their own namespace. The absence of | |
| Vendor-ID or a Vendor-ID value of zero (0) identifies the IETF IANA | a Vendor-ID identifies the IETF IANA controlled AVP Codes namespace. | |
| controlled AVP Codes namespace. The AVP Codes and sometimes also | The AVP Codes and sometimes also possible values in an AVP are | |
| possible values in an AVP are controlled and maintained by IANA. | controlled and maintained by IANA. | |
| AVP Code 0 is not used. This document defines the AVP Codes 1-19. | AVP Code 0 is not used. This document defines the AVP Codes 1-10. | |
| See Section 8.1 through Section 8.19 for the assignment of the | See Section 8.1 through Section 8.10 for the assignment of the | |
| namespace in this specification. | namespace in this specification. | |
| AVPs may be allocated following Designated Expert with Specification | AVPs may be allocated following Designated Expert with Specification | |
| Required [IANA]. Release of blocks of AVPs (more than 3 at a time | Required [IANA] or Standards Action. AVPs with 'M' bit set MUST be | |
| for a given purpose) should require IETF Consensus. | allocated by Standards Action. | |
| Note that PANA defines a mechanism for Vendor-Specific AVPs, where | Note that PANA defines a mechanism for Vendor-Specific AVPs, where | |
| the Vendor-Id field in the AVP header is set to a non-zero value. | the Vendor-Id field in the AVP header is set to a non-zero value. | |
| Vendor-Specific AVPs codes are for Private Use and should be | Vendor-Specific AVPs codes are for Private Use and should be | |
| encouraged instead of allocation of global attribute types, for | encouraged instead of allocation of global attribute types, for | |
| functions specific only to one vendor's implementation of PANA, where | functions specific only to one vendor's implementation of PANA, where | |
| no interoperability is deemed useful. Where a Vendor-Specific AVP is | no interoperability is deemed useful. Where a Vendor-Specific AVP is | |
| implemented by more than one vendor, allocation of global AVPs should | implemented by more than one vendor, allocation of global AVPs should | |
| be encouraged instead. | be encouraged instead. | |
| 10.4.2. Flags | 10.3.2. Flags | |
| There are 16 bits in the AVP Flags field of the AVP header, defined | There are 16 bits in the AVP Flags field of the AVP header, defined | |
| in Section 6.3. This document assigns bit 0 ('V'endor Specific) and | in Section 6.3. This document assigns bit 0 ('V'endor Specific) and | |
| bit 1 ('M'andatory). The remaining bits should only be assigned via | bit 1 ('M'andatory). The remaining bits should only be assigned via | |
| a Standards Action . | a Standards Action . | |
| 10.5. AVP Values | 10.4. AVP Values | |
| Certain AVPs in PANA define a list of values with various meanings. | Certain AVPs in PANA define a list of values with various meanings. | |
| For attributes other than those specified in this section, adding | For attributes other than those specified in this section, adding | |
| additional values to the list can be done on a First Come, First | additional values to the list can be done on a First Come, First | |
| Served basis by IANA [IANA]. | Served basis by IANA [IANA]. | |
| 10.5.1. Post-PANA-Address-Configuration AVP Values | 10.4.1. Result-Code AVP Values | |
| As defined in Section 8.12, the Post-PANA-Address-Configuration AVP | ||
| (AVP Code 12) defines the bits 0 ('N': no configuration), 1 ('F': | ||
| DHCPv4), 2 ('S': DHCPv6), 3 ('A' stateless autoconfiguration), 4 | ||
| ('T': DHCPv4 with IPsec tunnel mode) and 5 ('I': IKEv2). | ||
| All remaining values are available for assignment via a Standards | ||
| Action [IANA]. | ||
| 10.5.2. Protection-Capability AVP Values | ||
| As defined in Section 8.13, the Protection-Capability AVP (AVP Code | ||
| 13) defines the values 0 and 1. | ||
| All remaining values are available for assignment via a Standards | ||
| Action [IANA]. | ||
| 10.5.3. Result-Code AVP Values | ||
| As defined in Section 8.16.1 and Section 8.16.2 the Result-Code AVP | As defined in Section 8.8.1 and Section 8.8.2 the Result-Code AVP | |
| (AVP Code 16) defines the values 2001, 3001-3002, 3008-3009, 4001, | (AVP Code 8) defines the values 0-3 and 1001-1015. | |
| 5001-5009 and 5011-5017. | ||
| All remaining values are available for assignment via IETF Consensus | All remaining values are available for assignment via IETF Consensus | |
| [IANA]. | [IANA]. | |
| 10.5.4. Termination-Cause AVP Values | 10.4.2. Termination-Cause AVP Values | |
| As defined in Section 8.19, the Termination-Cause AVP (AVP Code 19) | As defined in Section 8.10, the Termination-Cause AVP (AVP Code 10) | |
| defines the values 1, 4 and 8. | defines the values 1, 4 and 8. | |
| All remaining values are available for assignment via IETF Consensus | All remaining values are available for assignment via IETF Consensus | |
| [IANA]. | [IANA]. | |
| 11. Security Considerations | 11. Security Considerations | |
| The PANA protocol defines a UDP-based EAP encapsulation that runs | The PANA protocol defines a UDP-based EAP encapsulation that runs | |
| between two IP-enabled nodes on the same IP link. Various security | between two IP-enabled nodes on the same IP link. Various security | |
| threats that are relevant to a protocol of this nature are outlined | threats that are relevant to a protocol of this nature are outlined | |
| Skipping to change at page 68, line 7: | ||
| The PANA framework defines EP which is ideally located on a network | The PANA framework defines EP which is ideally located on a network | |
| device that can filter traffic from the PaCs before the traffic | device that can filter traffic from the PaCs before the traffic | |
| enters the Internet/intranet. A set of filters can be used to | enters the Internet/intranet. A set of filters can be used to | |
| discard unauthorized packets, such as a PANA-Start-Request message | discard unauthorized packets, such as a PANA-Start-Request message | |
| that is received from the segment of the access network where only | that is received from the segment of the access network where only | |
| the PaCs are supposed to be connected. | the PaCs are supposed to be connected. | |
| The protocol also provides authentication and integrity protection to | The protocol also provides authentication and integrity protection to | |
| PANA messages when the used EAP method can generate cryptographic | PANA messages when the used EAP method can generate cryptographic | |
| session keys. A PANA SA is generated based on the AAA-Key exported | session keys. A PANA SA is generated based on the MSK exported by | |
| by the EAP method. This SA is used for generating an AUTH AVP to | the EAP method. This SA is used for generating an AUTH AVP to | |
| protect the PANA header and payload (including the complete EAP | protect the PANA message header and payload (including the complete | |
| message). | EAP message). | |
| The cryptographic protection prevents an adversary from acting as a | The cryptographic protection prevents an adversary from acting as a | |
| man-in-the-middle, injecting messages, replaying messages and | man-in-the-middle, injecting messages, replaying messages and | |
| modifying the content of the exchanged messages. Any packet that | modifying the content of the exchanged messages. Any packet that | |
| fails to pass the AUTH verification is silently discarded. The | fails to pass the AUTH verification is silently discarded. The | |
| earliest this protection can be enabled is when the very first PANA- | earliest this protection can be enabled is when the very first | |
| Bind-Request or PANA-FirstAuth-End-Request message that signals a | PANA-Bind-Request message that signals a successful authentication is | |
| successful authentication is generated. Starting with these | generated. Starting with these messages, any subsequent PANA message | |
| messages, any subsequent PANA message until the session gets torn | until the session gets torn down can be cryptographically protected. | |
| down can be cryptographically protected. | ||
| The PANA SA enables authenticated and integrity protected exchange of | ||
| the device ID information between the PaC and PAA. This ensures | ||
| there were no man-in-the-middle during the PANA authentication. | ||
| The lifetime of the PANA SA is set to PANA session lifetime which is | The lifetime of the PANA SA is set to PANA session lifetime which is | |
| bounded by the authorization lifetime granted by the authentication | bounded by the authorization lifetime granted by the authentication | |
| server. An implementation MAY add a tolerance period to that value. | server. An implementation MAY add a tolerance period to that value. | |
| Unless the PANA session is extended by executing another EAP | Unless the PANA session is extended by executing another EAP | |
| authentication, the PANA SA is removed when the current session | authentication, the PANA SA is removed when the current session | |
| expires. | expires. | |
| The ability to use cryptographic protection within PANA is determined | The ability to use cryptographic protection within PANA is determined | |
| by the used EAP method, which is generally dictated by the deployment | by the used EAP method, which is generally dictated by the deployment | |
| environment. Insecure lower-layers necessitate use of key-generating | environment. Insecure lower-layers necessitate use of key-generating | |
| EAP methods. In networks where lower-layers are already secured, | EAP methods. In networks where lower-layers are already secured, | |
| cryptographic protection of PANA messages is not necessary. | cryptographic protection of PANA messages is not necessary. | |
| 11.2. Discovery | 11.2. Handshake | |
| The discovery and handshake phase is vulnerable to spoofing attacks | The handshake phase is vulnerable to spoofing attacks as these | |
| as these messages are not authenticated and integrity protected. In | messages are not authenticated and integrity protected. In order to | |
| order to prevent very basic denial-of service attacks an adversary | prevent very basic denial-of service attacks an adversary should not | |
| should not be able to cause state creation by sending discovery | be able to cause state creation by sending PANA-Client-Initiation | |
| messages to the PAA. This protection is achieved by using a cookie- | messages to the PAA. This protection is achieved by allowing the | |
| based scheme (similar to [RFC2522] which allows the responder (PAA) | responder (PAA) to create as less amount of state as possible in the | |
| to be stateless in the first round of message exchange. However, it | first round of message exchange. However, it is difficult to prevent | |
| is difficult to prevent all spoofing attacks in the discovery and | all spoofing attacks in the handshake phase entirely. | |
| handshake phase entirely. | ||
| In networks where lower-layers are not secured prior to running PANA, | In networks where lower-layers are not secured prior to running PANA, | |
| the capability discovery enabled through inclusion of Protection- | the capability discovery enabled through inclusion of an Algorithm | |
| Capability and Post-PANA-Address-Configuration AVPs in a PANA-Start- | AVP in a PANA-Start-Request message is susceptible to spoofing | |
| Request message is susceptible to spoofing leading to denial-of | leading to denial-of service attacks. Therefore, usage of this AVP | |
| service attacks. Therefore, usage of these AVPs during the discovery | during the handshake phase in such insecure networks is NOT | |
| and handshake phase in such insecure networks is NOT RECOMMENDED. | RECOMMENDED. The same AVP is delivered via an integrity-protected | |
| The same AVPs are delivered via an integrity-protected PANA-Bind- | PANA-Bind-Request upon successful authentication. | |
| Request upon successful authentication. | ||
| 11.3. EAP Methods | 11.3. EAP Methods | |
| Eavesdropping EAP messages might cause problems when the EAP method | Eavesdropping EAP messages might cause problems when the EAP method | |
| is weak and enables dictionary or replay attacks or even allows an | is weak and enables dictionary or replay attacks or even allows an | |
| adversary to learn the long-term password directly. Furthermore, if | adversary to learn the long-term password directly. Furthermore, if | |
| the optional EAP Response/Identity payload is used then it allows the | the optional EAP Response/Identity payload is used then it allows the | |
| adversary to learn the identity of the PaC. In such a case a privacy | adversary to learn the identity of the PaC. In such a case a privacy | |
| problem is prevalent. | problem is prevalent. | |
| To prevent these threats, [I-D.ietf-pana-framework] suggests using | To prevent these threats, [I-D.ietf-pana-framework] suggests using | |
| proper EAP methods for particular environments. Depending on the | proper EAP methods for particular environments. Depending on the | |
| deployment environment an EAP authentication method which supports | deployment environment an EAP authentication method which supports | |
| user identity confidentiality, protection against dictionary attacks | user identity confidentiality, protection against dictionary attacks | |
| and session key establishment must be used. It is therefore the | and session key establishment must be used. It is therefore the | |
| responsibility of the network operators and users to choose a proper | responsibility of the network operators and users to choose a proper | |
| EAP method. | EAP method. | |
| 11.4. Separate NAP and ISP Authentication | 11.4. Cryptographic Keys | |
| The PANA design allows running two separate EAP sessions for the same | ||
| PaC in the authentication and authorization phase: one with the NAP, | ||
| and one with the ISP. The process of arriving at the resultant | ||
| authorization, which is a combination of the individual | ||
| authorizations obtained from respective service providers, is outside | ||
| the scope of this protocol. In the absence of lower-layer security, | ||
| both authentications MUST be able to generate a AAA-Key, leading to | ||
| generation of a PANA SA. The resultant PANA SA cryptographically | ||
| binds the two AAA-Keys together, hence it prevents man-in-the-middle | ||
| attacks. | ||
| 11.5. Cryptographic Keys | ||
| When the EAP method exports a AAA-Key, this key is used to produce a | When the EAP method exports an MSK, this key is used to produce a | |
| PANA SA with PANA_AUTH_KEY with a distinct key ID. The PANA_AUTH_KEY | PANA SA with PANA_AUTH_KEY with a distinct key ID. The PANA_AUTH_KEY | |
| is unique to the PANA session, and takes PANA-based nonce values into | is unique to the PANA session, and takes PANA-based nonce values into | |
| computation to cryptographically separate itself from the AAA-Key. | computation to cryptographically separate itself from the MSK. | |
| The PANA_AUTH_KEY is solely used for authentication and integrity | The PANA_AUTH_KEY is solely used for authentication and integrity | |
| protection of the PANA messages within the designated session. | protection of the PANA messages within the designated session. | |
| Two AAA-Keys may be generated as a result of separate NAP and ISP | The PANA SA lifetime is bounded by the MSK lifetime. Another | |
| authentication. In that case, the AAA-Key used with the PANA SA is | execution of EAP method yields in a new MSK, and updates the PANA SA, | |
| the combination of both keys. | PANA_AUTH_KEY and key ID. | |
| The PANA SA lifetime is bounded by the AAA-Key lifetime. Another | ||
| execution of EAP method yields in a new AAA-Key, and updates the PANA | ||
| SA, PANA_AUTH_KEY and key ID. | ||
| When link-layer or network-layer ciphering [I-D.ietf-pana-ipsec] is | ||
| enabled as a result of successful PANA authentication, a PaC-EP- | ||
| Master-Key is generated for each EP from the AAA-Key, session | ||
| identifier, key identifier, and the EP device identifier. The PaC- | ||
| EP-Master-Key derivation algorithm defined in Section 5.6 ensures | ||
| cryptographic independency among different PaC-EP-Master-Keys. | ||
| The lifetime of PaC-EP master key is bounded by the lifetime of the | ||
| PANA SA. This key may be used with a secure association protocol | ||
| [RFC4306] to produce further cipher-specific and transient keys. | ||
| 11.6. Per-packet Ciphering | 11.5. Per-packet Ciphering | |
| Networks that are not secured at the lower-layers prior to running | Networks that are not secured at the lower-layers prior to running | |
| PANA can rely on enabling per-packet data traffic ciphering upon | PANA can rely on enabling per-packet data traffic ciphering upon | |
| successful PANA session establishment. The PANA framework allows | successful PANA SA establishment. The PANA framework allows | |
| generation of a PaC-EP master key from AAA-Key for using with a per- | generation of cryptographic keys from the PANA SA and use the keys | |
| packet protection mechanism, such as link-layer or IPsec-based | with a secure association protocol to enable per-packet cryptographic | |
| ciphering [I-D.ietf-pana-ipsec]. In case the master key is not | protection such as link-layer or IPsec-based ciphering | |
| readily useful to the ciphering mechanism, an additional secure | [I-D.ietf-pana-ipsec]. These mechanisms ultimately establish a | |
| association protocol [RFC4306] may be needed to produce the required | ||
| keying material. These mechanisms ultimately establish a | ||
| cryptographic binding between the data traffic generated by and for a | cryptographic binding between the data traffic generated by and for a | |
| client and the authenticated identity of the client. Data traffic | client and the authenticated identity of the client. Data traffic | |
| must be minimally data origin authenticated, replay and integrity | must be minimally data origin authenticated, replay and integrity | |
| protected, and optionally encrypted. | protected, and optionally encrypted. How cryptographic keys are | |
| generated from the PANA SA and used with a secure association | ||
| 11.7. PAA-to-EP Communication | protocol is outside the scope of this document. | |
| The PANA framework allows separation of PAA from EP(s). SNMPv3 | 11.6. PAA-to-EP Communication | |
| [I-D.ietf-pana-snmp] is used between the PAA and EP for provisioning | ||
| authorized PaC information on the EP. This exchange MUST be always | ||
| physically or cryptographically protected for authentication, | ||
| integrity and replay protection. It MUST also be privacy-protected | ||
| when PaC-EP master key for per-packet ciphering is transmitted to the | ||
| EP. | ||
| The PaC-EP master key MUST be unique to the PaC and EP pair. The | The PANA framework allows separation of PAA from EP. SNMPv3 | |
| session identifier and the device identifier of the EP are taken into | [I-D.ietf-pana-snmp] MAY be used between the PAA and EP for | |
| computation for achieving this effect [I-D.ietf-pana-ipsec]. | provisioning authorized PaC information on the EP. This exchange | |
| Compromise of an EP does not automatically lead to compromise of | MUST be always physically or cryptographically protected for | |
| another EP or the PAA. | authentication, integrity and replay protection. | |
| 11.8. Liveness Test | 11.7. Liveness Test | |
| A PANA session is associated with a session lifetime. The session is | A PANA session is associated with a session lifetime. The session is | |
| terminated unless it is refreshed by a new round of EAP | terminated unless it is refreshed by a new round of EAP | |
| authentication before it expires. Therefore, at the latest a | authentication before it expires. Therefore, at the latest a | |
| disconnected client can be detected when its session expires. A | disconnected client can be detected when its session expires. A | |
| disconnect may also be detected earlier by using PANA ping messages. | disconnect may also be detected earlier by using PANA ping messages. | |
| A request message can be generated by either PaC or PAA at any time | A request message can be generated by either PaC or PAA at any time | |
| and the peer must respond with an answer message. A successful | and the peer must respond with an answer message. A successful | |
| round-trip of this exchange is a simple verification that the peer is | round-trip of this exchange is a simple verification that the peer is | |
| alive. | alive. | |
| Skipping to change at page 71, line 33: | ||
| This exchange is cryptographically protected when a PANA SA is | This exchange is cryptographically protected when a PANA SA is | |
| available in order to prevent threats associated with the abuse of | available in order to prevent threats associated with the abuse of | |
| this functionality. | this functionality. | |
| Any valid PANA answer message received in response to a recently sent | Any valid PANA answer message received in response to a recently sent | |
| request message can be taken as an indication of peer's liveness. | request message can be taken as an indication of peer's liveness. | |
| The PaC or PAA MAY forgo sending an explicit PANA-Ping-Request if a | The PaC or PAA MAY forgo sending an explicit PANA-Ping-Request if a | |
| recent exchange has already confirmed that the peer is alive. | recent exchange has already confirmed that the peer is alive. | |
| 11.9. Updating PaC's IP Address | 11.8. IP Address Spoofing | |
| There is no way to prove the ownership of the IP address presented by | PANA does not provide any means to prove ownership of the IP address | |
| the PaC. Hence an authorized PaC can launch a redirect attack by | presented by the PaC. Hence, an authorized PaC can launch a redirect | |
| spoofing a victim's IP address. | attack by spoofing a victim's IP address. This problem and its | |
| solution are outside the scope of PANA. | ||
| 11.10. Early Termination of a Session | 11.9. Early Termination of a Session | |
| The PANA protocol supports the ability for both the PaC and the PAA | The PANA protocol supports the ability for both the PaC and the PAA | |
| to transmit a tear-down message before the session lifetime expires. | to transmit a tear-down message before the session lifetime expires. | |
| This message causes state removal, a stop of the accounting procedure | This message causes state removal, a stop of the accounting procedure | |
| and removes the installed per-PaC state on the EP(s). This message | and removes the installed per-PaC state on the EP(s). This message | |
| is cryptographically protected when PANA SA is present. | is cryptographically protected when PANA SA is present. | |
| 12. Acknowledgments | 12. Acknowledgments | |
| We would like to thank Jari Arkko, Mohan Parthasarathy, Julien | We would like to thank Mark Townsley, Jari Arkko, Mohan | |
| Bournelle, Rafael Marin Lopez, Pasi Eronen, Randy Turner, Erik | Parthasarathy, Julien Bournelle, Rafael Marin Lopez, Pasi Eronen, | |
| Nordmark, Lionel Morand, Avi Lior, Susan Thomson, Giaretta Gerardo, | Randy Turner, Erik Nordmark, Lionel Morand, Avi Lior, Susan Thomson, | |
| Joseph Salowey, Sasikanth Bharadwaj and all members of the PANA | Giaretta Gerardo, Joseph Salowey, Sasikanth Bharadwaj, Spencer | |
| working group for their valuable comments to this document. | Dawkins, Tom Yu, Bernard Aboba and all members of the PANA working | |
| group for their valuable comments to this document. | ||
| 13. References | 13. References | |
| 13.1. Normative References | 13.1. Normative References | |
| [RFC2104] Krawczyk, H., Bellare, M., and R. Canetti, "HMAC: Keyed- | ||
| Hashing for Message Authentication", RFC 2104, | ||
| February 1997. | ||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |
| Requirement Levels", BCP 14, RFC 2119, March 1997. | Requirement Levels", BCP 14, RFC 2119, March 1997. | |
| [RFC2131] Droms, R., "Dynamic Host Configuration Protocol", | ||
| RFC 2131, March 1997. | ||
| [RFC2234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax | [RFC2234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax | |
| Specifications: ABNF", RFC 2234, November 1997. | Specifications: ABNF", RFC 2234, November 1997. | |
| [RFC2279] Yergeau, F., "UTF-8, a transformation format of ISO | ||
| 10646", RFC 2279, January 1998. | ||
| [RFC2365] Meyer, D., "Administratively Scoped IP Multicast", BCP 23, | ||
| RFC 2365, July 1998. | ||
| [RFC2462] Thomson, S. and T. Narten, "IPv6 Stateless Address | ||
| Autoconfiguration", RFC 2462, December 1998. | ||
| [RFC2464] Crawford, M., "Transmission of IPv6 Packets over Ethernet | ||
| Networks", RFC 2464, December 1998. | ||
| [RFC2988] Paxson, V. and M. Allman, "Computing TCP's Retransmission | ||
| Timer", RFC 2988, November 2000. | ||
| [RFC3315] Droms, R., Bound, J., Volz, B., Lemon, T., Perkins, C., | ||
| and M. Carney, "Dynamic Host Configuration Protocol for | ||
| IPv6 (DHCPv6)", RFC 3315, July 2003. | ||
| [RFC3456] Patel, B., Aboba, B., Kelly, S., and V. Gupta, "Dynamic | ||
| Host Configuration Protocol (DHCPv4) Configuration of | ||
| IPsec Tunnel Mode", RFC 3456, January 2003. | ||
| [RFC3588] Calhoun, P., Loughney, J., Guttman, E., Zorn, G., and J. | [RFC3588] Calhoun, P., Loughney, J., Guttman, E., Zorn, G., and J. | |
| Arkko, "Diameter Base Protocol", RFC 3588, September 2003. | Arkko, "Diameter Base Protocol", RFC 3588, September 2003. | |
| [RFC3748] Aboba, B., Blunk, L., Vollbrecht, J., Carlson, J., and H. | [RFC3748] Aboba, B., Blunk, L., Vollbrecht, J., Carlson, J., and H. | |
| Levkowetz, "Extensible Authentication Protocol (EAP)", | Levkowetz, "Extensible Authentication Protocol (EAP)", | |
| RFC 3748, June 2004. | RFC 3748, June 2004. | |
| [RFC4086] Eastlake, D., Schiller, J., and S. Crocker, "Randomness | [RFC4086] Eastlake, D., Schiller, J., and S. Crocker, "Randomness | |
| Requirements for Security", BCP 106, RFC 4086, June 2005. | Requirements for Security", BCP 106, RFC 4086, June 2005. | |
| [I-D.ietf-ltru-registry] | [RFC4595] Maino, F. and D. Black, "Use of IKEv2 in the Fibre Channel | |
| Phillips, A. and M. Davis, "Tags for Identifying | Security Association Management Protocol", RFC 4595, | |
| Languages", draft-ietf-ltru-registry-14 (work in | July 2006. | |
| progress), October 2005. | ||
| [I-D.ietf-dhc-paa-option] | ||
| Morand, L., "DHCP options for PANA Authentication Agents", | ||
| draft-ietf-dhc-paa-option-04 (work in progress), | ||
| September 2006. | ||
| [IANA] Narten, T. and H. Alvestrand, "Guidelines for Writing an | [IANA] Narten, T. and H. Alvestrand, "Guidelines for Writing an | |
| IANA Considerations Section in RFCs", BCP 26, RFC 2434, | IANA Considerations Section in RFCs", BCP 26, RFC 2434, | |
| October 1998. | October 1998. | |
| 13.2. Informative References | 13.2. Informative References | |
| [RFC2522] Karn, P. and W. Simpson, "Photuris: Session-Key Management | [RFC3315] Droms, R., Bound, J., Volz, B., Lemon, T., Perkins, C., | |
| Protocol", RFC 2522, March 1999. | and M. Carney, "Dynamic Host Configuration Protocol for | |
| IPv6 (DHCPv6)", RFC 3315, July 2003. | ||
| [RFC4016] Parthasarathy, M., "Protocol for Carrying Authentication | [RFC4016] Parthasarathy, M., "Protocol for Carrying Authentication | |
| and Network Access (PANA) Threat Analysis and Security | and Network Access (PANA) Threat Analysis and Security | |
| Requirements", RFC 4016, March 2005. | Requirements", RFC 4016, March 2005. | |
| [RFC4058] Yegin, A., Ohba, Y., Penno, R., Tsirtsis, G., and C. Wang, | [RFC4058] Yegin, A., Ohba, Y., Penno, R., Tsirtsis, G., and C. Wang, | |
| "Protocol for Carrying Authentication for Network Access | "Protocol for Carrying Authentication for Network Access | |
| (PANA) Requirements", RFC 4058, May 2005. | (PANA) Requirements", RFC 4058, May 2005. | |
| [RFC4137] Vollbrecht, J., Eronen, P., Petroni, N., and Y. Ohba, | [RFC4137] Vollbrecht, J., Eronen, P., Petroni, N., and Y. Ohba, | |
| "State Machines for Extensible Authentication Protocol | "State Machines for Extensible Authentication Protocol | |
| (EAP) Peer and Authenticator", RFC 4137, August 2005. | (EAP) Peer and Authenticator", RFC 4137, August 2005. | |
| [RFC4284] Adrangi, F., Lortz, V., Bari, F., and P. Eronen, "Identity | ||
| Selection Hints for the Extensible Authentication Protocol | ||
| (EAP)", RFC 4284, January 2006. | ||
| [RFC4306] Kaufman, C., "Internet Key Exchange (IKEv2) Protocol", | [RFC4306] Kaufman, C., "Internet Key Exchange (IKEv2) Protocol", | |
| RFC 4306, December 2005. | RFC 4306, December 2005. | |
| [I-D.ietf-eap-keying] | [I-D.ietf-eap-keying] | |
| Aboba, B., "Extensible Authentication Protocol (EAP) Key | Aboba, B., "Extensible Authentication Protocol (EAP) Key | |
| Management Framework", draft-ietf-eap-keying-09 (work in | Management Framework", draft-ietf-eap-keying-15 (work in | |
| progress), January 2006. | progress), October 2006. | |
| [I-D.ietf-pana-ipsec] | [I-D.ietf-pana-ipsec] | |
| Parthasarathy, M., "PANA Enabling IPsec based Access | Parthasarathy, M., "PANA Enabling IPsec based Access | |
| Control", draft-ietf-pana-ipsec-07 (work in progress), | Control", draft-ietf-pana-ipsec-07 (work in progress), | |
| July 2005. | July 2005. | |
| [I-D.ietf-pana-framework] | [I-D.ietf-pana-framework] | |
| Jayaraman, P., "PANA Framework", | Jayaraman, P., "Protocol for Carrying Authentication for | |
| draft-ietf-pana-framework-05 (work in progress), | Network Access (PANA) Framework", | |
| July 2005. | draft-ietf-pana-framework-07 (work in progress), | |
| August 2006. | ||
| [I-D.ietf-pana-snmp] | [I-D.ietf-pana-snmp] | |
| Mghazli, Y., "SNMP usage for PAA-EP interface", | Mghazli, Y., "SNMP usage for PAA-EP interface", | |
| draft-ietf-pana-snmp-05 (work in progress), January 2006. | draft-ietf-pana-snmp-06 (work in progress), June 2006. | |
| [I-D.ietf-mobike-protocol] | ||
| Eronen, P., "IKEv2 Mobility and Multihoming Protocol | ||
| (MOBIKE)", draft-ietf-mobike-protocol-08 (work in | ||
| progress), February 2006. | ||
| [I-D.ietf-dna-link-information] | ||
| Yegin, A., "Link-layer Event Notifications for Detecting | ||
| Network Attachments", draft-ietf-dna-link-information-03 | ||
| (work in progress), October 2005. | ||
| [ianaweb] IANA, "Number assignment", http://www.iana.org. | [ianaweb] IANA, "Number assignment", http://www.iana.org. | |
| [IANA-EXP] | [IANA-EXP] | |
| Narten, T., "Assigning Experimental and Testing Numbers | Narten, T., "Assigning Experimental and Testing Numbers | |
| Considered Useful", BCP 82, RFC 3692, January 2004. | Considered Useful", BCP 82, RFC 3692, January 2004. | |
| Appendix A. Example Sequence of Separate NAP and ISP Authentication | ||
| A PANA message sequence with separate NAP and ISP authentication is | ||
| illustrated in Figure 12. 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 the authentication and authorization 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 AUTH AVPs. | ||
| o The access, re-authentication and termination phases are not | ||
| shown. | ||
| PaC PAA Message(sequence number)[AVPs] | ||
| ----------------------------------------------------- | ||
| // Discovery and handshake phase | ||
| -----> PANA-PAA-Discover(0) | ||
| <----- PANA-Start-Request(x) // S-flag set. | ||
| [Cookie, | ||
| ISP-Information("ISP1"), | ||
| ISP-Information("ISP2"), | ||
| NAP-Information("MyNAP")] | ||
| -----> PANA-Start-Answer(x) // S-flag set. | ||
| [Cookie, // PaC chooses "ISP1". | ||
| ISP-Information("ISP1")] | ||
| // Authentication and authorization phase | ||
| <----- PANA-Auth-Request(x+1) // NAP authentication. | ||
| [Session-Id, Nonce, // (S,N)-flags set | ||
| EAP{Request}] // for all messages during | ||
| // NAP authentication. | ||
| -----> PANA-Auth-Answer(x+1)[Session-Id, Nonce] | ||
| -----> PANA-Auth-Request(y)[Session-Id, EAP{Response}] | ||
| <----- PANA-Auth-Answer(y)[Session-Id] | ||
| <----- PANA-Auth-Request(x+2)[Session-Id, EAP{Request}] | ||
| -----> PANA-Auth-Answer(x+2)[Session-Id, EAP{Response}] | ||
| <----- PANA-FirstAuth-End-Request(x+3) | ||
| [Session-Id, EAP{Success}, Key-Id, Algorithm, AUTH] | ||
| -----> PANA-FirstAuth-End-Answer(x+3) | ||
| [Session-Id, Key-Id, AUTH] | ||
| <----- PANA-Auth-Request(x+4) // ISP authentication. | ||
| [Session-Id, EAP{Request}, AUTH] // Only S-flag set | ||
| // for all messages during | ||
| // ISP authentication. | ||
| -----> PANA-Auth-Answer(x+4)[Session-Id, AUTH] | ||
| -----> PANA-Auth-Request(y+1)[Session-Id, EAP{Response}, AUTH] | ||
| <----- PANA-Auth-Answer(y+1)[Session-Id, AUTH] | ||
| <----- PANA-Auth-Request(x+5)[Session-Id, EAP{Request}, AUTH] | ||
| -----> PANA-Auth-Answer(x+5)[Session-Id, EAP{Response}, AUTH] | ||
| <----- PANA-Bind-Request(x+6) | ||
| [Session-Id, Result-Code, EAP{Success}, Device-Id, | ||
| Key-Id, Lifetime, Protection-Cap., PPAC, AUTH] | ||
| -----> PANA-Bind-Answer(x+6)[Session-Id, Device-Id, Key-Id, | ||
| PPAC, AUTH] | ||
| Figure 12: A Complete Message Sequence for Separate NAP and ISP | ||
| Authentication | ||
| Authors' Addresses | Authors' Addresses | |
| Dan Forsberg | Dan Forsberg | |
| Nokia Research Center | Nokia Research Center | |
| P.O. Box 407 | P.O. Box 407 | |
| FIN-00045 NOKIA GROUP | FIN-00045 NOKIA GROUP | |
| Finland | Finland | |
| Phone: +358 50 4839470 | Phone: +358 50 4839470 | |
| Email: dan.forsberg@nokia.com | Email: dan.forsberg@nokia.com | |
| Skipping to change at page 80, line 5: | ||
| Email: Hannes.Tschofenig@siemens.com | Email: Hannes.Tschofenig@siemens.com | |
| Alper E. Yegin | Alper E. Yegin | |
| Samsung Advanced Institute of Technology | Samsung Advanced Institute of Technology | |
| Istanbul, | Istanbul, | |
| Turkey | Turkey | |
| Phone: +90 538 719 0181 | Phone: +90 538 719 0181 | |
| Email: alper01.yegin@partner.samsung.com | Email: alper01.yegin@partner.samsung.com | |
| Intellectual Property Statement | Full Copyright Statement | |
| Copyright (C) The Internet Society (2006). | ||
| This document is subject to the rights, licenses and restrictions | ||
| contained in BCP 78, and except as set forth therein, the authors | ||
| retain all their rights. | ||
| This document and the information contained herein are provided on an | ||
| "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS | ||
| OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET | ||
| ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, | ||
| INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE | ||
| INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED | ||
| WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. | ||
| Intellectual Property | ||
| The IETF takes no position regarding the validity or scope of any | The IETF takes no position regarding the validity or scope of any | |
| Intellectual Property Rights or other rights that might be claimed to | Intellectual Property Rights or other rights that might be claimed to | |
| pertain to the implementation or use of the technology described in | pertain to the implementation or use of the technology described in | |
| this document or the extent to which any license under such rights | this document or the extent to which any license under such rights | |
| might or might not be available; nor does it represent that it has | might or might not be available; nor does it represent that it has | |
| made any independent effort to identify any such rights. Information | made any independent effort to identify any such rights. Information | |
| on the procedures with respect to rights in RFC documents can be | on the procedures with respect to rights in RFC documents can be | |
| found in BCP 78 and BCP 79. | found in BCP 78 and BCP 79. | |
| Skipping to change at page 80, line 29: | ||
| such proprietary rights by implementers or users of this | such proprietary rights by implementers or users of this | |
| specification can be obtained from the IETF on-line IPR repository at | specification can be obtained from the IETF on-line IPR repository at | |
| http://www.ietf.org/ipr. | http://www.ietf.org/ipr. | |
| The IETF invites any interested party to bring to its attention any | The IETF invites any interested party to bring to its attention any | |
| copyrights, patents or patent applications, or other proprietary | copyrights, patents or patent applications, or other proprietary | |
| rights that may cover technology that may be required to implement | rights that may cover technology that may be required to implement | |
| this standard. Please address the information to the IETF at | this standard. Please address the information to the IETF at | |
| ietf-ipr@ietf.org. | ietf-ipr@ietf.org. | |
| Disclaimer of Validity | ||
| This document and the information contained herein are provided on an | ||
| "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS | ||
| OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET | ||
| ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, | ||
| INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE | ||
| INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED | ||
| WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. | ||
| Copyright Statement | ||
| Copyright (C) The Internet Society (2006). This document is subject | ||
| to the rights, licenses and restrictions contained in BCP 78, and | ||
| except as set forth therein, the authors retain all their rights. | ||
| Acknowledgment | Acknowledgment | |