| < draft-ietf-pana-pana-10.txt | draft-ietf-pana-pana-11.txt > | |||
|---|---|---|---|---|
| PANA Working Group D. Forsberg | PANA Working Group D. Forsberg | |||
| Internet-Draft Nokia | Internet-Draft Nokia | |||
| Expires: January 17, 2006 Y. Ohba (Ed.) | Expires: September 4, 2006 Y. Ohba (Ed.) | |||
| Toshiba | Toshiba | |||
| B. Patil | B. Patil | |||
| Nokia | Nokia | |||
| H. Tschofenig | H. Tschofenig | |||
| Siemens | Siemens | |||
| A. Yegin | A. Yegin | |||
| Samsung | Samsung | |||
| July 16, 2005 | March 3, 2006 | |||
| Protocol for Carrying Authentication for Network Access (PANA) | Protocol for Carrying Authentication for Network Access (PANA) | |||
| draft-ietf-pana-pana-10 | draft-ietf-pana-pana-11 | |||
| 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 ¶ | 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 January 17, 2006. | This Internet-Draft will expire on September 4, 2006. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (C) The Internet Society (2005). | 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 link-layer agnostic transport for Extensible | |||
| Authentication Protocol (EAP) to enable network access authentication | Authentication Protocol (EAP) to enable network access authentication | |||
| between clients and access networks. PANA 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. Payload Encoding . . . . . . . . . . . . . . . . . . . . 10 | |||
| 4.3 Discovery and Handshake Phase . . . . . . . . . . . . . . 11 | 4.3. Discovery and Handshake Phase . . . . . . . . . . . . . . 11 | |||
| 4.4 Authentication and Authorization Phase . . . . . . . . . . 15 | 4.4. Authentication and Authorization Phase . . . . . . . . . 15 | |||
| 4.5 Access Phase . . . . . . . . . . . . . . . . . . . . . . . 18 | 4.5. Access Phase . . . . . . . . . . . . . . . . . . . . . . 18 | |||
| 4.6 Re-authentication Phase . . . . . . . . . . . . . . . . . 18 | 4.6. Re-authentication Phase . . . . . . . . . . . . . . . . . 19 | |||
| 4.7 Termination Phase . . . . . . . . . . . . . . . . . . . . 20 | 4.7. Termination Phase . . . . . . . . . . . . . . . . . . . . 20 | |||
| 4.8 Separate NAP and ISP Authentication . . . . . . . . . . . 21 | 4.8. Separate NAP and ISP Authentication . . . . . . . . . . . 21 | |||
| 4.8.1 Negotiating Separate NAP and ISP Authentication . . . 21 | 4.8.1. Negotiating Separate NAP and ISP Authentication . . . 21 | |||
| 4.8.2 Execution of Separate NAP and ISP Authentication . . . 22 | 4.8.2. Execution of Separate NAP and ISP Authentication . . . 22 | |||
| 4.8.3 AAA-Key Calculation . . . . . . . . . . . . . . . . . 23 | 4.8.3. AAA-Key Calculation . . . . . . . . . . . . . . . . . 23 | |||
| 5. Processing Rules . . . . . . . . . . . . . . . . . . . . . . 24 | 5. Processing Rules . . . . . . . . . . . . . . . . . . . . . . . 24 | |||
| 5.1 Fragmentation . . . . . . . . . . . . . . . . . . . . . . 24 | 5.1. Fragmentation . . . . . . . . . . . . . . . . . . . . . . 24 | |||
| 5.2 Sequence Number and Retransmission . . . . . . . . . . . . 24 | 5.2. Sequence Number and Retransmission . . . . . . . . . . . 24 | |||
| 5.3 PANA Security Association . . . . . . . . . . . . . . . . 25 | 5.3. PANA Security Association . . . . . . . . . . . . . . . . 25 | |||
| 5.4 Message Authentication Code . . . . . . . . . . . . . . . 27 | 5.4. Message Authentication . . . . . . . . . . . . . . . . . 27 | |||
| 5.5 Message Validity Check . . . . . . . . . . . . . . . . . . 27 | 5.5. Message Validity Check . . . . . . . . . . . . . . . . . 27 | |||
| 5.6 PaC-EP-Master-Key . . . . . . . . . . . . . . . . . . . . 29 | 5.6. PaC-EP-Master-Key . . . . . . . . . . . . . . . . . . . . 29 | |||
| 5.7 Device ID Choice . . . . . . . . . . . . . . . . . . . . . 29 | 5.7. Device ID Choice . . . . . . . . . . . . . . . . . . . . 29 | |||
| 5.8 PaC Updating its IP Address . . . . . . . . . . . . . . . 30 | 5.8. PaC Updating its IP Address . . . . . . . . . . . . . . . 30 | |||
| 5.9 Session Lifetime . . . . . . . . . . . . . . . . . . . . . 30 | 5.9. Session Lifetime . . . . . . . . . . . . . . . . . . . . 31 | |||
| 5.10 Network Selection . . . . . . . . . . . . . . . . . . . 31 | 5.10. Network Selection . . . . . . . . . . . . . . . . . . . . 31 | |||
| 5.11 Error Handling . . . . . . . . . . . . . . . . . . . . . 31 | 5.11. Error Handling . . . . . . . . . . . . . . . . . . . . . 32 | |||
| 6. Header Format . . . . . . . . . . . . . . . . . . . . . . . 33 | 6. Header Format . . . . . . . . . . . . . . . . . . . . . . . . 33 | |||
| 6.1 IP and UDP Headers . . . . . . . . . . . . . . . . . . . . 33 | 6.1. IP and UDP Headers . . . . . . . . . . . . . . . . . . . 33 | |||
| 6.2 PANA Header . . . . . . . . . . . . . . . . . . . . . . . 33 | 6.2. PANA Header . . . . . . . . . . . . . . . . . . . . . . . 33 | |||
| 6.3 AVP Header . . . . . . . . . . . . . . . . . . . . . . . . 35 | 6.3. AVP Header . . . . . . . . . . . . . . . . . . . . . . . 35 | |||
| 7. PANA Messages . . . . . . . . . . . . . . . . . . . . . . . 39 | 7. PANA Messages . . . . . . . . . . . . . . . . . . . . . . . . 39 | |||
| 7.1 PANA-PAA-Discover (PDI) . . . . . . . . . . . . . . . . . 41 | 7.1. PANA-PAA-Discover (PDI) . . . . . . . . . . . . . . . . . 41 | |||
| 7.2 PANA-Start-Request (PSR) . . . . . . . . . . . . . . . . . 41 | 7.2. PANA-Start-Request (PSR) . . . . . . . . . . . . . . . . 42 | |||
| 7.3 PANA-Start-Answer (PSA) . . . . . . . . . . . . . . . . . 42 | 7.3. PANA-Start-Answer (PSA) . . . . . . . . . . . . . . . . . 42 | |||
| 7.4 PANA-Auth-Request (PAR) . . . . . . . . . . . . . . . . . 42 | 7.4. PANA-Auth-Request (PAR) . . . . . . . . . . . . . . . . . 42 | |||
| 7.5 PANA-Auth-Answer (PAN) . . . . . . . . . . . . . . . . . . 42 | 7.5. PANA-Auth-Answer (PAN) . . . . . . . . . . . . . . . . . 43 | |||
| 7.6 PANA-Reauth-Request (PRAR) . . . . . . . . . . . . . . . . 43 | 7.6. PANA-Reauth-Request (PRAR) . . . . . . . . . . . . . . . 43 | |||
| 7.7 PANA-Reauth-Answer (PRAA) . . . . . . . . . . . . . . . . 43 | 7.7. PANA-Reauth-Answer (PRAA) . . . . . . . . . . . . . . . . 43 | |||
| 7.8 PANA-Bind-Request (PBR) . . . . . . . . . . . . . . . . . 43 | 7.8. PANA-Bind-Request (PBR) . . . . . . . . . . . . . . . . . 43 | |||
| 7.9 PANA-Bind-Answer (PBA) . . . . . . . . . . . . . . . . . . 44 | 7.9. PANA-Bind-Answer (PBA) . . . . . . . . . . . . . . . . . 44 | |||
| 7.10 PANA-Ping-Request (PPR) . . . . . . . . . . . . . . . . 44 | 7.10. PANA-Ping-Request (PPR) . . . . . . . . . . . . . . . . . 44 | |||
| 7.11 PANA-Ping-Answer (PPA) . . . . . . . . . . . . . . . . . 44 | 7.11. PANA-Ping-Answer (PPA) . . . . . . . . . . . . . . . . . 44 | |||
| 7.12 PANA-Termination-Request (PTR) . . . . . . . . . . . . . 45 | 7.12. PANA-Termination-Request (PTR) . . . . . . . . . . . . . 45 | |||
| 7.13 PANA-Termination-Answer (PTA) . . . . . . . . . . . . . 45 | 7.13. PANA-Termination-Answer (PTA) . . . . . . . . . . . . . . 45 | |||
| 7.14 PANA-Error-Request (PER) . . . . . . . . . . . . . . . . 45 | 7.14. PANA-Error-Request (PER) . . . . . . . . . . . . . . . . 45 | |||
| 7.15 PANA-Error-Answer (PEA) . . . . . . . . . . . . . . . . 46 | 7.15. PANA-Error-Answer (PEA) . . . . . . . . . . . . . . . . . 45 | |||
| 7.16 PANA-FirstAuth-End-Request (PFER) . . . . . . . . . . . 46 | 7.16. PANA-FirstAuth-End-Request (PFER) . . . . . . . . . . . . 46 | |||
| 7.17 PANA-FirstAuth-End-Answer (PFEA) . . . . . . . . . . . . 46 | 7.17. PANA-FirstAuth-End-Answer (PFEA) . . . . . . . . . . . . 46 | |||
| 7.18 PANA-Update-Request (PUR) . . . . . . . . . . . . . . . 46 | 7.18. PANA-Update-Request (PUR) . . . . . . . . . . . . . . . . 46 | |||
| 7.19 PANA-Update-Answer (PUA) . . . . . . . . . . . . . . . . 47 | 7.19. PANA-Update-Answer (PUA) . . . . . . . . . . . . . . . . 46 | |||
| 8. AVPs in PANA . . . . . . . . . . . . . . . . . . . . . . . . 48 | 8. AVPs in PANA . . . . . . . . . . . . . . . . . . . . . . . . . 48 | |||
| 8.1 Cookie AVP . . . . . . . . . . . . . . . . . . . . . . . . 50 | 8.1. Algorithm AVP . . . . . . . . . . . . . . . . . . . . . . 50 | |||
| 8.2 Device-Id AVP . . . . . . . . . . . . . . . . . . . . . . 50 | 8.2. AUTH AVP . . . . . . . . . . . . . . . . . . . . . . . . 50 | |||
| 8.3 EAP-Payload AVP . . . . . . . . . . . . . . . . . . . . . 51 | 8.3. Cookie AVP . . . . . . . . . . . . . . . . . . . . . . . 51 | |||
| 8.4 Failed-AVP AVP . . . . . . . . . . . . . . . . . . . . . . 51 | 8.4. Device-Id AVP . . . . . . . . . . . . . . . . . . . . . . 51 | |||
| 8.5 ISP-Information AVP . . . . . . . . . . . . . . . . . . . 51 | 8.5. EAP-Payload AVP . . . . . . . . . . . . . . . . . . . . . 51 | |||
| 8.6 Key-Id AVP . . . . . . . . . . . . . . . . . . . . . . . . 51 | 8.6. Failed-AVP AVP . . . . . . . . . . . . . . . . . . . . . 51 | |||
| 8.7 MAC AVP . . . . . . . . . . . . . . . . . . . . . . . . . 51 | 8.7. ISP-Information AVP . . . . . . . . . . . . . . . . . . . 51 | |||
| 8.8 NAP-Information AVP . . . . . . . . . . . . . . . . . . . 52 | 8.8. Key-Id AVP . . . . . . . . . . . . . . . . . . . . . . . 52 | |||
| 8.9 Nonce AVP . . . . . . . . . . . . . . . . . . . . . . . . 52 | 8.9. NAP-Information AVP . . . . . . . . . . . . . . . . . . . 52 | |||
| 8.10 Notification AVP . . . . . . . . . . . . . . . . . . . . 52 | 8.10. Nonce AVP . . . . . . . . . . . . . . . . . . . . . . . . 52 | |||
| 8.11 Post-PANA-Address-Configuration (PPAC) AVP . . . . . . . 53 | 8.11. Notification AVP . . . . . . . . . . . . . . . . . . . . 53 | |||
| 8.12 Protection-Capability AVP . . . . . . . . . . . . . . . 54 | 8.12. Post-PANA-Address-Configuration (PPAC) AVP . . . . . . . 53 | |||
| 8.13 Provider-Identifier AVP . . . . . . . . . . . . . . . . 54 | 8.13. Protection-Capability AVP . . . . . . . . . . . . . . . . 55 | |||
| 8.14 Provider-Name AVP . . . . . . . . . . . . . . . . . . . 54 | 8.14. Provider-Identifier AVP . . . . . . . . . . . . . . . . . 55 | |||
| 8.15 Result-Code AVP . . . . . . . . . . . . . . . . . . . . 54 | 8.15. Provider-Name AVP . . . . . . . . . . . . . . . . . . . . 55 | |||
| 8.15.1 Authentication Results Codes . . . . . . . . . . . . 55 | 8.16. Result-Code AVP . . . . . . . . . . . . . . . . . . . . . 55 | |||
| 8.15.2 Protocol Error Result Codes . . . . . . . . . . . . 55 | 8.16.1. Authentication Results Codes . . . . . . . . . . . . . 55 | |||
| 8.16 Session-Id AVP . . . . . . . . . . . . . . . . . . . . . 58 | 8.16.2. Protocol Error Result Codes . . . . . . . . . . . . . 56 | |||
| 8.17 Session-Lifetime AVP . . . . . . . . . . . . . . . . . . 58 | 8.17. Session-Id AVP . . . . . . . . . . . . . . . . . . . . . 58 | |||
| 8.18 Termination-Cause AVP . . . . . . . . . . . . . . . . . 58 | 8.18. Session-Lifetime AVP . . . . . . . . . . . . . . . . . . 59 | |||
| 9. Retransmission Timers . . . . . . . . . . . . . . . . . . . 59 | 8.19. Termination-Cause AVP . . . . . . . . . . . . . . . . . . 59 | |||
| 9.1 Transmission and Retransmission Parameters . . . . . . . . 60 | 9. Retransmission Timers . . . . . . . . . . . . . . . . . . . . 60 | |||
| 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . 62 | 9.1. Transmission and Retransmission Parameters . . . . . . . 61 | |||
| 10.1 PANA UDP Port Number . . . . . . . . . . . . . . . . . . 62 | 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 63 | |||
| 10.2 PANA Multicast Address . . . . . . . . . . . . . . . . . 62 | 10.1. PANA UDP Port Number . . . . . . . . . . . . . . . . . . 63 | |||
| 10.3 PANA Header . . . . . . . . . . . . . . . . . . . . . . 62 | 10.2. PANA Multicast Address . . . . . . . . . . . . . . . . . 63 | |||
| 10.3.1 Message Type . . . . . . . . . . . . . . . . . . . . 62 | 10.3. PANA Header . . . . . . . . . . . . . . . . . . . . . . . 63 | |||
| 10.3.2 Flags . . . . . . . . . . . . . . . . . . . . . . . 63 | 10.3.1. Message Type . . . . . . . . . . . . . . . . . . . . . 63 | |||
| 10.4 AVP Header . . . . . . . . . . . . . . . . . . . . . . . 63 | 10.3.2. Flags . . . . . . . . . . . . . . . . . . . . . . . . 64 | |||
| 10.4.1 AVP Code . . . . . . . . . . . . . . . . . . . . . . 63 | 10.4. AVP Header . . . . . . . . . . . . . . . . . . . . . . . 64 | |||
| 10.4.2 Flags . . . . . . . . . . . . . . . . . . . . . . . 64 | 10.4.1. AVP Code . . . . . . . . . . . . . . . . . . . . . . . 64 | |||
| 10.5 AVP Values . . . . . . . . . . . . . . . . . . . . . . . 64 | 10.4.2. Flags . . . . . . . . . . . . . . . . . . . . . . . . 65 | |||
| 10.5.1 Algorithm Values of MAC AVP . . . . . . . . . . . . 64 | ||||
| 10.5.2 Post-PANA-Address-Configuration AVP Values . . . . . 64 | 10.5. AVP Values . . . . . . . . . . . . . . . . . . . . . . . 65 | |||
| 10.5.3 Protection-Capability AVP Values . . . . . . . . . . 64 | 10.5.1. Post-PANA-Address-Configuration AVP Values . . . . . . 65 | |||
| 10.5.4 Result-Code AVP Values . . . . . . . . . . . . . . . 64 | 10.5.2. Protection-Capability AVP Values . . . . . . . . . . . 65 | |||
| 10.5.5 Termination-Cause AVP Values . . . . . . . . . . . . 65 | 10.5.3. Result-Code AVP Values . . . . . . . . . . . . . . . . 65 | |||
| 11. Security Considerations . . . . . . . . . . . . . . . . . . 66 | 10.5.4. Termination-Cause AVP Values . . . . . . . . . . . . . 65 | |||
| 11.1 General Security Measures . . . . . . . . . . . . . . . 66 | 11. Security Considerations . . . . . . . . . . . . . . . . . . . 67 | |||
| 11.2 Discovery . . . . . . . . . . . . . . . . . . . . . . . 67 | 11.1. General Security Measures . . . . . . . . . . . . . . . . 67 | |||
| 11.3 EAP Methods . . . . . . . . . . . . . . . . . . . . . . 68 | 11.2. Discovery . . . . . . . . . . . . . . . . . . . . . . . . 68 | |||
| 11.4 Separate NAP and ISP Authentication . . . . . . . . . . 68 | 11.3. EAP Methods . . . . . . . . . . . . . . . . . . . . . . . 69 | |||
| 11.5 Cryptographic Keys . . . . . . . . . . . . . . . . . . . 68 | 11.4. Separate NAP and ISP Authentication . . . . . . . . . . . 69 | |||
| 11.6 Per-packet Ciphering . . . . . . . . . . . . . . . . . . 69 | 11.5. Cryptographic Keys . . . . . . . . . . . . . . . . . . . 69 | |||
| 11.7 PAA-to-EP Communication . . . . . . . . . . . . . . . . 69 | 11.6. Per-packet Ciphering . . . . . . . . . . . . . . . . . . 70 | |||
| 11.8 Liveness Test . . . . . . . . . . . . . . . . . . . . . 70 | 11.7. PAA-to-EP Communication . . . . . . . . . . . . . . . . . 70 | |||
| 11.9 Updating PaC's IP Address . . . . . . . . . . . . . . . 70 | 11.8. Liveness Test . . . . . . . . . . . . . . . . . . . . . . 71 | |||
| 11.10 Early Termination of a Session . . . . . . . . . . . . . 70 | 11.9. Updating PaC's IP Address . . . . . . . . . . . . . . . . 71 | |||
| 12. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . 71 | 11.10. Early Termination of a Session . . . . . . . . . . . . . 71 | |||
| 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 72 | 12. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 72 | |||
| 13.1 Normative References . . . . . . . . . . . . . . . . . . 72 | 13. References . . . . . . . . . . . . . . . . . . . . . . . . . . 73 | |||
| 13.2 Informative References . . . . . . . . . . . . . . . . . 72 | 13.1. Normative References . . . . . . . . . . . . . . . . . . 73 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 74 | 13.2. Informative References . . . . . . . . . . . . . . . . . 74 | |||
| A. Example Sequence of Separate NAP and ISP Authentication . . 76 | Appendix A. Example Sequence of Separate NAP and ISP | |||
| Intellectual Property and Copyright Statements . . . . . . . 78 | 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. | |||
| skipping to change at page 5, line 44 ¶ | skipping to change at page 5, line 44 ¶ | |||
| 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 IP address configuration, authentication method choice, | |||
| filter rule installation, data traffic protection and PAA-EP | filter rule installation, data traffic protection and PAA-EP | |||
| protocol. These components are described in separate documents (see | protocol. These components are described in separate documents (see | |||
| [I-D.ietf-pana-framework] and [I-D.ietf-pana-snmp]). The readers are | [I-D.ietf-pana-framework] and [I-D.ietf-pana-snmp]). The readers are | |||
| recommended to go through the PANA Framework document [I-D.ietf-pana- | recommended to go through the PANA Framework document [I-D.ietf-pana- | |||
| framework] prior to reading this protocol specification document. | 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): | |||
| skipping to change at page 8, line 12 ¶ | skipping to change at page 8, line 12 ¶ | |||
| 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. | |||
| The protocol messaging consists of a series of request and responses, | The protocol messaging consists of a series of request and responses, | |||
| some of which may be initiated by either ends. Each message can | some of which may be initiated by either end. Each message can carry | |||
| carry zero or more AVPs as payload. The main payload of PANA is EAP | zero or more AVPs within the payload. The main payload of PANA is | |||
| which performs authentication. PANA helps the PaC and PAA establish | EAP which performs authentication. PANA helps the PaC and PAA | |||
| 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 Discovery and handshake phase: This is the phase that initiates a | |||
| new PANA session. The PaC discovers the PAA(s) by either | new PANA session. The PaC discovers the PAA(s) by either | |||
| explicitly soliciting advertisements for them or receiving | explicitly soliciting advertisements for them or receiving | |||
| skipping to change at page 8, line 40 ¶ | skipping to change at page 8, line 40 ¶ | |||
| discovery and handshake phase is the EAP execution between the PAA | discovery and handshake phase is the EAP execution between the PAA | |||
| and PaC. The EAP payload (which carry an EAP method inside) is | and PaC. The EAP payload (which carry an EAP method inside) is | |||
| what is used for authentication. The PAA conveys the result of | what is used for authentication. The PAA conveys the result of | |||
| authentication and authorization to the PaC at the end of this | authentication and authorization to the PaC at the end of this | |||
| phase. This phase may involve execution of two EAP sessions back- | phase. This phase may involve execution of two EAP sessions back- | |||
| to-back, one for the NAP and one for the ISP. | 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 ping each other to test liveness of | the PaC and PAA may optionally send PANA ping messages to test | |||
| the PANA session on each end. | 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 | |||
| phase may be optionally triggered by both the PaC and the PAA | phase may be optionally triggered by both the PaC and the PAA | |||
| without any respect to the session lifetime. The session moves to | without any respect to the session lifetime. The session moves to | |||
| this phase from the access phase, and returns back there upon | this phase from the access phase, and returns back there upon | |||
| successful re-authentication. | successful re-authentication. | |||
| o Termination phase: The PaC or PAA may choose to discontinue the | o Termination phase: The PaC or PAA may choose to discontinue the | |||
| skipping to change at page 9, line 32 ¶ | skipping to change at page 9, line 32 ¶ | |||
| -----> PANA-Bind-Answer | -----> PANA-Bind-Answer | |||
| // Access phase (IP data traffic allowed) | // Access phase (IP data traffic allowed) | |||
| <----- PANA-Ping-Request | <----- PANA-Ping-Request | |||
| -----> PANA-Ping-Answer | -----> PANA-Ping-Answer | |||
| // Termination phase | // Termination phase | |||
| -----> PANA-Termination-Request | -----> PANA-Termination-Request | |||
| <----- PANA-Termination-Answer | <----- PANA-Termination-Answer | |||
| Figure 1: Illustration of PANA messages in a session | Figure 1: Illustration of PANA messages in a session | |||
| Note that depending on the environment and deployment the protocol | Note that depending on the environment and deployment the protocol | |||
| flow depicted in Figure 1 can be abbreviated. | flow depicted in Figure 1 can be abbreviated (An unsolicited PANA- | |||
| Start-Request can be sent without a triggering PANA-PAA-Discover, EAP | ||||
| responses can be piggybacked on the 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 generating 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 except for PANA-PAA-Discover | |||
| are always unicast. The PANA-PAA-Discover message MAY be unicast | are always unicast. The PANA-PAA-Discover message MAY be unicast | |||
| when the PaC knows the IP address of the PAA. | when the PaC knows the IP address of the PAA. | |||
| 4.2 Payload Encoding | 4.2. Payload Encoding | |||
| The payload of any PANA message consists of zero or more AVPs | The payload of any PANA message consists of zero or more AVPs | |||
| (Attribute Value Pairs). 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. | the document (see Section 8). | |||
| o Cookie AVP: contains a random value that is generated by the PAA | o Algorithm AVP: contains a pseudo-random function and an integrity | |||
| and used for making PAA discovery robust against blind resource | algorithm. | |||
| consumption DoS attacks. | ||||
| o Protection-Capability AVP: contains the type of per-packet | o AUTH AVP: contains a Message Authentication Code that integrity | |||
| protection (link-layer vs. network-layer) when a cryptographic | protects the PANA message. | |||
| mechanism should be enabled after PANA authentication. | ||||
| 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 | o Device-Id AVP: contains a device identifier (link-layer address or | |||
| an IP address) of the PaC or an EP. | an IP address) of the PaC or an EP. | |||
| o EAP AVP: contains an EAP PDU. | o EAP AVP: contains an EAP PDU. | |||
| o MAC AVP: contains a Message Authentication Code that integrity | o Failed-AVP: contains an offending AVP that caused a failure. | |||
| protects the PANA message. | ||||
| o Termination-Cause AVP: contains the reason of session termination. | o Key-Id AVP: contains a AAA-Key identifier. | |||
| o Result-Code AVP: contains information about the protocol execution | o Protection-Capability AVP: contains the type of per-packet | |||
| results. | protection (link-layer vs. network-layer) when a cryptographic | |||
| mechanism should be enabled after PANA authentication. | ||||
| o Session-Id AVP: contains the PANA session identifier value. | o NAP-Information AVP, ISP-Information AVP: contains the identifier | |||
| of a NAP and an ISP, respectively. | ||||
| o Session-Lifetime AVP: contains the duration of authorized access. | o Nonce AVP: contains a randomly chosen value [RFC4086] that is used | |||
| in cryptographic key computations. | ||||
| o Failed-AVP: contains an offending AVP that caused a failure. | o Notification AVP: contains a displayable message. | |||
| o Provider-Identifier AVP: contains the identifier of a NAP or an | o Provider-Identifier AVP: contains the identifier of a NAP or an | |||
| ISP. | 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 Provider-Name AVP: contains a name of a NAP or an ISP. | |||
| o NAP-Information AVP, ISP-Information AVP: contains the identifier | o Result-Code AVP: contains information about the protocol execution | |||
| of a NAP and an ISP, respectively. | results. | |||
| o Key-Id AVP: contains a AAA-Key identifier. | o Session-Id AVP: contains the PANA session identifier value. | |||
| o PPAC AVP: Post-PANA-Address-Configuration AVP. Used to indicate | o Session-Lifetime AVP: contains the duration of authorized access. | |||
| the available/chosen IP address configuration methods that can be | ||||
| used by the PaC after successful PANA authentication. | ||||
| o Nonce AVP: contains a randomly chosen value that is used in | o Termination-Cause AVP: contains the reason of session termination. | |||
| cryptographic key computations. | ||||
| o Notification AVP: contains a displayable message. | 4.3. Discovery and Handshake Phase | |||
| 4.3 Discovery and 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. | ||||
| When a PaC attaches to a network, and it does not already know the IP | Multicast-based Discovery: | |||
| address of the PAA, it MUST rely on dynamic discovery methods, such | ||||
| as a multicast-based and a traffic-driven discovery. | ||||
| The PaCs and PAAs MUST implement multicast-based discovery where the | The PaCs and PAAs MUST implement multicast-based discovery where | |||
| PaC sends a PANA-PAA-Discover message to a well-known | the PaC sends a PANA-PAA-Discover message to a well-known | |||
| administratively scoped multicast address (To Be Assigned by IANA) | administratively scoped multicast address (To Be Assigned by IANA) | |||
| and UDP port (To Be Assigned by IANA). | and UDP port (To Be Assigned by IANA). | |||
| The network administrator MUST configure the multicast scope such | The network administrator MUST configure the multicast scope such | |||
| that the discovery messages can reach only the designated PAA(s). In | that the discovery messages can reach only the designated PAA(s). | |||
| case the PAA(s) is on the same link as the PaC, the administratively | In case the PAA(s) is on the same link as the PaC, the | |||
| scoped multicast messages MUST not be forwarded by the routers. | administratively scoped multicast messages MUST not be forwarded | |||
| Details of scope configuration are discussed in [RFC2365]. | by the routers. Details of scope configuration are discussed in | |||
| [RFC2365]. | ||||
| The PAA(s) that receive the discovery message MUST respond with a | The PAA(s) that receive the discovery message MUST respond with a | |||
| unicast PANA-Start-Request message sent to the soliciting PaC. | unicast PANA-Start-Request message sent to the soliciting PaC. | |||
| Alternatively, the PaC MAY also choose to start sending data packets | Traffic-driven Discovery: | |||
| before getting authenticated. The EP in an access network that | ||||
| implements PANA SHOULD drop such unauthorized packets upon receipt. | ||||
| Additionally, the EP MAY also take this traffic as an indication of | ||||
| unauthorized PaC and notify the PAA. The EP-to-PAA notification | ||||
| SHOULD be sent via [I-D.ietf-pana-snmp]. In response, the PAA SHOULD | ||||
| send an unsolicited PANA-Start-Request message to the PaC. This is | ||||
| called traffic-driven PAA discovery (an alternative to the PaC | ||||
| explicitly soliciting for a PAA). Deployment of this alternate | ||||
| scheme is optional. | ||||
| The EP-to-PAA notification MAY also be generated in response to | Alternatively, the PaC MAY also choose to start sending data | |||
| receiving a link-up event notification on the EP [I-D.ietf-dna-link- | packets before getting authenticated. The EP in an access network | |||
| information]. | that implements PANA SHOULD drop such unauthorized packets upon | |||
| receipt. Additionally, the EP MAY also take this traffic as an | ||||
| indication of unauthorized PaC and notify the PAA. The EP-to-PAA | ||||
| notification SHOULD be sent via [I-D.ietf-pana-snmp]. In | ||||
| response, the PAA SHOULD send an unsolicited PANA-Start-Request | ||||
| message to the PaC. This is called traffic-driven PAA discovery | ||||
| (an alternative to the PaC explicitly soliciting for a PAA). | ||||
| Deployment of this alternate scheme is optional. | ||||
| Alternative PAA discovery schemes may be designed (e.g., DHCP-based) | Other Alternatives: | |||
| but they are outside the scope of this specification. | ||||
| If the PaC knows the IP address of the PAA, it can send a unicast | The EP-to-PAA notification MAY also be generated in response to | |||
| PANA-PAA-Discover message and initiate the PANA exchange. | receiving a link-up event notification on the EP [I-D.ietf-dna- | |||
| link-information]. | ||||
| Alternative PAA discovery schemes may be designed (e.g., DHCP- | ||||
| based) but they are outside the scope of this specification. | ||||
| 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 | There can be multiple PAAs in the access network and the PaC may | |||
| receive multiple PANA-Start-Request messages from those PAAs. The | receive multiple PANA-Start-Request messages from those PAAs. The | |||
| authentication and authorization result does not depend on which PAA | authentication and authorization result does not depend on which PAA | |||
| is chosen by the PaC. By default the PaC MAY choose the PAA that | is chosen by the PaC. By default the PaC MAY choose the PAA that | |||
| sent the first PANA-Start-Request message. | sent the first PANA-Start-Request message. | |||
| skipping to change at page 12, line 39 ¶ | skipping to change at page 12, line 47 ¶ | |||
| as a cookie. The cookie is used for preventing the PAA from resource | as a cookie. The cookie is used for preventing the PAA from resource | |||
| consumption DoS attacks by blind attackers which bombard the PAA with | consumption DoS attacks by blind attackers which bombard the PAA with | |||
| PANA-PAA-Discover messages. By relying on a cookie mechanism the PAA | 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 | 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, | 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 | 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 | any per-session state maintenance on the PAA in order to verify the | |||
| cookie returned in the PANA-Start-Answer message. The PAA discovery | cookie returned in the PANA-Start-Answer message. The PAA discovery | |||
| that takes advantage of cookies is called "stateless PAA discovery". | that takes advantage of cookies is called "stateless PAA discovery". | |||
| The exact algorithms and syntax used by the PAA to generate cookies | The exact algorithms and syntax used by the PAA to generate cookies | |||
| does not affect interoperability and hence is not specified here. An | does not affect interoperability and hence is not specified here. | |||
| example algorithm is described below. | Additionally, the PAA MAY limit the rate it processes incoming PANA- | |||
| PAA-Discover messages. | ||||
| Cookie = | ||||
| <secret-version> | HMAC_SHA1( <Device-Id of PaC> , <secret> ) | ||||
| where <secret> is a randomly generated secret known only to the PAA, | ||||
| <secret-version> is an index used for choosing the secret for | ||||
| generating the cookie and '|' indicates concatenation. The secret- | ||||
| version should be changed frequently enough to prevent replay | ||||
| attacks. The secret key is valid for a certain time frame. The | ||||
| device identifier of the PaC can be extracted from a link-layer or IP | ||||
| header of PANA messages. | ||||
| When the PaC sends a PANA-Start-Answer message in response to a PANA- | 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 | Start-Request containing a Cookie AVP, the answer MUST contain a | |||
| Cookie AVP with the cookie value copied from the request. | Cookie AVP with the cookie value copied from the request. | |||
| When the PAA receives the PANA-Start-Answer message from the PaC, it | When the PAA receives the PANA-Start-Answer message from the PaC, it | |||
| verifies the cookie. The cookie is considered as valid if the | verifies the cookie. The cookie is considered as valid if the | |||
| received cookie has the expected value. If the computed cookie is | received cookie matches the send cookie. If the match is verified, | |||
| valid, the protocol enters the authentication and authorization | the protocol enters the authentication and authorization phase. | |||
| phase. Otherwise, it MUST silently discard the received message. | Otherwise, the PAA MUST silently discard the received message. | |||
| The initial EAP Request message MAY be optionally carried by the | The initial EAP Request message MAY be optionally carried by the | |||
| PANA-Start-Request (as opposed to by a later PANA-Auth-Request) | PANA-Start-Request (as opposed to by a later PANA-Auth-Request) | |||
| message in order to reduce the number of round-trips. This | message in order to reduce the number of round-trips. This | |||
| optimization SHOULD NOT be used if the PAA discovery is desired to be | optimization SHOULD NOT be used if the PAA discovery is desired to be | |||
| stateless since transmission of an EAP Request message creates a | stateless since transmission of an EAP Request message creates a | |||
| state at EAP layer. See [I-D.ietf-eap-statemachine] for more | state at EAP layer. See [RFC4137] for more information on the EAP | |||
| information on the EAP state machine and the allocation of state | state machine and the allocation of state information in the | |||
| information in the respective protocol steps. | respective protocol steps. | |||
| A Protection-Capability AVP and a Post-PANA-Address-Configuration | A Protection-Capability AVP, an Algorithm AVP and a Post-PANA- | |||
| (PPAC) AVP MAY be included in the PANA-Start-Request in order to | Address-Configuration (PPAC) AVP MAY be included in the PANA-Start- | |||
| indicate required and available capabilities for the network access. | Request in order to indicate required and available capabilities for | |||
| These AVPs MAY be used by the PaC for assessing the capability match | the network access. These AVPs MAY be used by the PaC for assessing | |||
| even before the authentication takes place. Since these AVPs are | the capability match even before the authentication takes place. | |||
| provided during the insecure discovery and handshake phase, there are | Since these AVPs are provided during the insecure discovery and | |||
| certain security risks involved in using the provided information. | handshake phase, there are certain security risks involved in using | |||
| See Section 11 for further discussion on this. | the provided information. See Section 11 for further discussion on | |||
| this. | ||||
| If the initial EAP Request message is carried in the PANA-Start- | If the initial EAP Request message is carried in the PANA-Start- | |||
| Request message, an EAP Response message MUST be carried in the PANA- | Request message, an EAP Response message MUST be carried in the PANA- | |||
| Start-Answer message returned to the PAA. | Start-Answer message returned to the PAA. | |||
| The PANA-Start-Request/Answer exchange is needed before entering the | The PANA-Start-Request/Answer exchange is needed before entering the | |||
| authentication and authorization phase even when the PaC is pre- | authentication and authorization phase even when the PaC is pre- | |||
| configured with the IP address of the PAA and the PANA-PAA-Discover | configured with the IP address of the PAA and the PANA-PAA-Discover | |||
| message is unicast. | message is unicast. | |||
| skipping to change at page 14, line 4 ¶ | skipping to change at page 13, line 51 ¶ | |||
| Auth-Answer messages in the authentication and authorization phase | Auth-Answer messages in the authentication and authorization phase | |||
| when stateless PAA discovery is used, and in PANA-Start-Request and | when stateless PAA discovery is used, and in PANA-Start-Request and | |||
| PANA-Start-Answer messages in this phase otherwise. | PANA-Start-Answer messages in this phase otherwise. | |||
| A PANA-Start-Request message in stateless PAA discovery MUST NOT be | A PANA-Start-Request message in stateless PAA discovery MUST NOT be | |||
| retransmitted as this voids the statelessness on the PAA. Instead, | retransmitted as this voids the statelessness on the PAA. Instead, | |||
| the PaC MUST retransmit the PANA-PAA-Discover message until it | the PaC MUST retransmit the PANA-PAA-Discover message until it | |||
| receives a PANA-Start-Request message, and retransmit the PANA-Start- | receives a PANA-Start-Request message, and retransmit the PANA-Start- | |||
| Answer message until it receives a PANA-Auth-Request message. The | Answer message until it receives a PANA-Auth-Request message. The | |||
| PaC can determine whether the PAA is using stateless PAA discovery by | PaC can determine whether the PAA is using stateless PAA discovery by | |||
| the presence of Cookie AVP. The PANA-Start-Request message MUST be | looking at the L-flag in the PANA header. The PANA-Start-Request | |||
| retransmitted instead of the PANA-Start-Answer message when stateless | message MUST be retransmitted instead of the PANA-Start-Answer | |||
| PAA discovery is not used. | 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 discovery | |||
| and handshake procedure at the same time, i.e., the PAA sends a PANA- | and handshake procedure at the same time, i.e., the PAA sends a PANA- | |||
| Start-Request message while the PaC sends a PANA-PAA-Discover | Start-Request message while the PaC sends a PANA-PAA-Discover | |||
| message. To resolve the race condition, the PAA SHOULD silently | message. To resolve the race condition, the PAA SHOULD silently | |||
| discard the PANA-PAA-Discover message received from the PaC after it | discard the PANA-PAA-Discover message received from the PaC after it | |||
| has sent a PANA-Start-Request message with creating a state (i.e., no | has sent a PANA-Start-Request message with creating a state (i.e., | |||
| Cookie AVP is included in the message) for the PaC. In this case the | L-flag is not set) for the PaC. In this case the PAA will retransmit | |||
| PAA will retransmit the PANA-Start-Request message based on a timer, | the PANA-Start-Request message based on a timer, if the PaC doesn't | |||
| if the PaC doesn't respond in time (the message was lost for | respond in time (the message was lost for example). If the PAA had | |||
| example). If the PAA had sent a PANA-Start-Request message without | sent a PANA-Start-Request message without creating a state for the | |||
| creating a state for the PaC (i.e., a Cookie AVP was included in the | PaC (i.e., L-flag is set), then it SHOULD answer to the PANA-PAA- | |||
| message), then it SHOULD answer to the PANA-PAA-Discover message. | Discover message. | |||
| Figure 2 shows an example sequence for the discovery and handshake | Figure 2 shows an example sequence for the discovery and handshake | |||
| phase when a PANA-PAA-Discover message is sent by the PaC. Figure 3 | phase when a PANA-PAA-Discover message is sent by the PaC. Figure 3 | |||
| shows an example sequence for the discovery and handshake phase with | shows an example sequence for the discovery and handshake phase with | |||
| traffic-driven PAA discovery. | traffic-driven PAA discovery. | |||
| PaC PAA Message(sequence number)[AVPs] | PaC PAA Message(sequence number)[AVPs] | |||
| ------------------------------------------------------ | ------------------------------------------------------ | |||
| -----> PANA-PAA-Discover(0) | -----> PANA-PAA-Discover(0) | |||
| <----- PANA-Start-Request(x)[Cookie] | <----- PANA-Start-Request(x)[Cookie] | |||
| -----> PANA-Start-Answer(x)[Cookie] | -----> PANA-Start-Answer(x)[Cookie] | |||
| (continued to the authentication and | (continued to the authentication and | |||
| authorization phase) | authorization phase) | |||
| Figure 2: Example sequence for the discovery and handshake phase when | Figure 2: Example sequence for the discovery and handshake phase when | |||
| PANA-PAA-Discover is sent by the PaC | PANA-PAA-Discover is sent by the PaC | |||
| PaC EP PAA Message(sequence number)[AVPs] | PaC EP PAA Message(sequence number)[AVPs] | |||
| ------------------------------------------------------ | ------------------------------------------------------ | |||
| ---->o (Data packet arrival or L2 trigger) | ---->o (Data packet arrival or L2 trigger) | |||
| ------> PAA-to-EP protocol, or another mechanism | ------> PAA-to-EP protocol, or another mechanism | |||
| <------------ PANA-Start-Request(x)[Cookie] | <------------ PANA-Start-Request(x)[Cookie] | |||
| ------------> PANA-Start-Answer(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 3: Example sequence for the discovery and handshake phase with | |||
| traffic-driven PAA discovery | 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. PANA- | |||
| Auth-Answer messages are simply used to acknowledge receipt of the | Auth-Answer messages are simply used to acknowledge receipt of the | |||
| requests. As an optimization, a PANA-Auth-Answer message MAY include | requests. As an optimization, a PANA-Auth-Answer message MAY include | |||
| the EAP Response message. This optimization MAY not be used when it | the EAP Response message. This optimization MAY not be used when it | |||
| takes time to generate the EAP Response message (due to, e.g., | takes time to generate the EAP Response message (due to, e.g., | |||
| intervention of human input), in which case returning an EAP-Auth- | intervention of human input), in which case returning an EAP-Auth- | |||
| Answer message without piggybacking an EAP Response message can avoid | Answer message without piggybacking an EAP Response message can avoid | |||
| skipping to change at page 16, line 22 ¶ | skipping to change at page 16, line 22 ¶ | |||
| -----> PANA-Auth-Request(y) | -----> PANA-Auth-Request(y) | |||
| [Session-Id, EAP{Response}] | [Session-Id, EAP{Response}] | |||
| <----- PANA-Auth-Answer(y) | <----- PANA-Auth-Answer(y) | |||
| [Session-Id] | [Session-Id] | |||
| <----- PANA-Auth-Request(x+2) | <----- PANA-Auth-Request(x+2) | |||
| [Session-Id, EAP{Request}] | [Session-Id, EAP{Request}] | |||
| -----> PANA-Auth-Answer(x+2) // Piggybacking EAP Response | -----> PANA-Auth-Answer(x+2) // Piggybacking EAP Response | |||
| [Session-Id, EAP{Response}] | [Session-Id, EAP{Response}] | |||
| <----- PANA-Bind-Request(x+3) | <----- PANA-Bind-Request(x+3) | |||
| [Session-Id, Result-Code, EAP{Success}, Device-Id, | [Session-Id, Result-Code, EAP{Success}, Device-Id, | |||
| Key-Id, Lifetime, Protection-Cap., PPAC, MAC] | Key-Id, Algorithm, | |||
| Lifetime, Protection-Cap., PPAC, AUTH] | ||||
| -----> PANA-Bind-Answer(x+3) | -----> PANA-Bind-Answer(x+3) | |||
| [Session-Id, Device-Id, Key-Id, PPAC, MAC] | [Session-Id, Device-Id, Key-Id, PPAC, AUTH] | |||
| Figure 4: Example sequence for the authentication and authorization | Figure 4: 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-FirstAuth-End-Request or a PANA-Bind-Request | |||
| message) and any subsequent message MUST contain a MAC AVP. | message) MUST contain a Key-Id AVP and an AUTH AVP, and an Algorithm | |||
| AVP for the first derivation of keys in the session, and any | ||||
| subsequent message MUST contain an AUTH AVP. An Algorithm AVP MUST | ||||
| NOT be contained in a PANA-FirstAuth-End-Request or a PANA-Bind- | ||||
| Request message after the first derivation of keys in the session. | ||||
| The PANA-Bind-Request and the PANA-Bind-Answer message exchange is | The PANA-Bind-Request and the PANA-Bind-Answer message exchange is | |||
| also used for binding device identifiers of the PaC and EP(s) to the | 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 | PANA SA. To achieve this, if a Protection-Capability AVP is included | |||
| in the PANA-Bind-Request message, the message MUST contain the device | in the PANA-Bind-Request message, the message MUST contain the device | |||
| identifier in a Device-Id AVP for each EP. Otherwise, if a | identifier in a Device-Id AVP for each EP. Otherwise, if a | |||
| Protection-Capability AVP is not included in the PANA-Bind-Request | Protection-Capability AVP is not included in the PANA-Bind-Request | |||
| message, the message MUST contain the device identifier in a | 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 | 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 | 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 | 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 | 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 | same type of device identifier as contained in the request. If the | |||
| PANA-Bind-Answer message sent from the PaC does not contain a | PANA-Bind-Answer message sent from the PaC does not contain a | |||
| Device-Id AVP with the same device identifier type contained in the | Device-Id AVP with the same device identifier type contained in the | |||
| request, the PAA sends a PANA-Error-Request message with a | request, the PAA sends a PANA-Error-Request message with a | |||
| PANA_MISSING_AVP result code, and wait for a PANA-Error-Answer | PANA_MISSING_AVP result code, and wait for a PANA-Error-Answer | |||
| message to terminate the session. The PANA-Bind-Request message with | message to terminate the session. | |||
| a PANA_SUCCESS result code MUST also contain a Protection-Capability | ||||
| AVP if link-layer or network-layer ciphering is enabled after the | The PANA-Bind-Request message with a PANA_SUCCESS result code MUST | |||
| authentication and authorization phase. The PANA-Bind-Request | also contain a Protection-Capability AVP if link-layer or network- | |||
| message MAY also contain a Protection-Capability AVP to indicate if | layer ciphering is enabled after the authentication and authorization | |||
| link-layer or network-layer ciphering should be enabled after the | phase. The PANA-Bind-Request message MAY also contain a Protection- | |||
| authentication and authorization phase. No link-layer or network- | Capability AVP to indicate if link-layer or network-layer ciphering | |||
| layer specific information is included in the Protection-Capability | should be enabled after the authentication and authorization phase. | |||
| AVP. It is assumed that the PAA is aware of the security | No link-layer or network-layer specific information is included in | |||
| capabilities of the access network. The PANA protocol does not | the Protection-Capability AVP. It is assumed that the PAA is aware | |||
| specify how the PANA SA and the Protection-Capability AVP will be | of the security capabilities of the access network. The PANA | |||
| used to provide per-packet protection for data traffic. When the PaC | protocol does not specify how the PANA SA and the Protection- | |||
| does not support the protection capability indicated in the | Capability AVP will be used to provide per-packet protection for data | |||
| Protection-Capability AVP, the PaC MUST send a PANA-Error-Request | traffic. When the PaC does not support the protection capability | |||
| message with a PANA_PROTECTION_CAPABILITY_UNSUPPORTED result code and | indicated in the Protection-Capability AVP, the PaC MUST send a PANA- | |||
| terminate the PANA session. | 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 | Additionally, the PANA-Bind-Request message with a PANA_SUCCESS | |||
| result code MUST include a Post-PANA-Address-Configuration (PPAC) | result code MUST include a Post-PANA-Address-Configuration (PPAC) | |||
| AVP, which helps the PAA to inform the PaC about whether a new IP | 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 | 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 | 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 | message in order to indicate its choice of method when there is a | |||
| match between the methods offered by the PAA and the methods | 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 | available on the PaC. When there is no match, the PaC MUST send a | |||
| PANA-Error-Request message with a PANA_PPAC_CAPABILITY_UNSUPPORTED | PANA-Error-Request message with a PANA_PPAC_CAPABILITY_UNSUPPORTED | |||
| result code and terminate the PANA session. | 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 [I-D.ietf-eap-statemachine]. When | sending an EAP Failure message [RFC4137]. When this occurs, the PAA | |||
| this occurs, the PAA SHOULD send a PANA-Error-Request message to the | SHOULD send a PANA-Error-Request message to the PaC with using | |||
| PaC with using PANA_UNABLE_TO_COMPLY result code. The PaC SHOULD not | PANA_UNABLE_TO_COMPLY result code. The PaC MUST NOT change its state | |||
| change its state unless the error message is secured by PANA or | unless the error message is secured by PANA or lower-layer. In any | |||
| lower-layer. In any case, a more appropriate way is to rely on a | case, a more appropriate way is to rely on a timeout on the PaC. | |||
| timeout on the PaC. | ||||
| There is a case where EAP authentication succeeds with producing an | There is a case where EAP authentication succeeds with producing an | |||
| EAP Success message but network access authorization fails due to, | EAP Success message but network access authorization fails due to, | |||
| e.g., authorization rejected by a AAA 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 PANA- | |||
| Bind-Request with a result code PANA_AUTHORIZATION_REJECTED. If a | Bind-Request with a result code PANA_AUTHORIZATION_REJECTED. If a | |||
| AAA-Key is established between the PaC and the PAA by the time when | AAA-Key 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 a MAC AVP and carry a Key-Id AVP. The AAA-Key and the PANA | with an AUTH AVP and carry a Key-Id AVP. The PANA-Bind-Request | |||
| session MUST be deleted immediately after the PANA-Bind message | message MUST also carry an Algorithm AVP if it is for the first | |||
| exchange. | derivation of keys in the session. The AAA-Key and the PANA session | |||
| MUST 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 re- | |||
| authentication phase successfully completes, the PaC gains access to | authentication phase successfully completes, the PaC gains access to | |||
| the network and can send and receive IP data traffic through the | 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 PANA-Ping- | |||
| Answer messages MUST be protected with a MAC AVP when a PANA SA is | Answer messages MUST be protected with an AUTH AVP when a PANA SA is | |||
| available. | available. | |||
| Implementations MUST limit the rate of performing this test. The PaC | Implementations MUST limit the rate of performing this test. The PaC | |||
| and the PAA can handle rate limitation on their own, they do not have | and the PAA can handle rate limitation on their own, they do not have | |||
| to perform any coordination with each other. There is no negotiation | to perform any coordination with each other. There is no negotiation | |||
| of timers for this purpose. | of timers for this purpose. Additionally, an implementation MAY | |||
| rate-limit processing the incoming PANA-Ping-Requests. | ||||
| Figure 5 and Figure 6 show liveness tests as they are initiated by | Figure 5 and Figure 6 show liveness tests as they are initiated by | |||
| the PaC and the PAA respectively. | the PaC and the PAA respectively. | |||
| PaC PAA Message(sequence number)[AVPs] | PaC PAA Message(sequence number)[AVPs] | |||
| ------------------------------------------------------ | ------------------------------------------------------ | |||
| -----> PANA-Ping-Request(q)[Session-Id, MAC] | -----> PANA-Ping-Request(q)[Session-Id, AUTH] | |||
| <----- PANA-Ping-Answer(q)[Session-Id, MAC] | <----- PANA-Ping-Answer(q)[Session-Id, AUTH] | |||
| Figure 5: Example sequence for PaC-initiated liveness test | Figure 5: 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, MAC] | <----- PANA-Ping-Request(p)[Session-Id, AUTH] | |||
| -----> PANA-Ping-Answer(p)[Session-Id, MAC] | -----> PANA-Ping-Answer(p)[Session-Id, AUTH] | |||
| Figure 6: Example sequence for PAA-initiated liveness test | Figure 6: 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 PANA- | |||
| Reauth-Request message to the PAA. This message MUST contain a | Reauth-Request message to the PAA. This message MUST contain a | |||
| Session-Id AVP which is used for identifying the PANA session on the | Session-Id AVP which is used for identifying the PANA session on the | |||
| PAA. If the PAA already has an established PANA session for the PaC | PAA. If the PAA already has an established PANA session for the PaC | |||
| skipping to change at page 19, line 34 ¶ | skipping to change at page 19, line 43 ¶ | |||
| enter the re-authentication phase. The PAA SHOULD initiate EAP re- | enter the re-authentication phase. The PAA SHOULD initiate EAP re- | |||
| authentication before the current session lifetime expires. | 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, PANA- | |||
| Auth-Request and PANA-Auth-Answer messages MUST be protected by | Auth-Request and PANA-Auth-Answer messages MUST be protected by | |||
| adding a MAC AVP to each message. Any subsequent EAP authentication | adding a MAC AVP to each message. Any subsequent EAP authentication | |||
| MUST be performed with the same ISP and NAP that was selected during | MUST be performed with the same ISP and NAP that was selected during | |||
| the discovery and handshake phase. The value of the S-flag of the | the discovery and handshake phase. The value of the S-flag | |||
| PANA messages exchanged in the re-authentication phase MUST be | ("separate authentication" flag, see Section 4.8.1) of the PANA | |||
| inherited from the previous authentication and authorization phase or | messages exchanged in the re-authentication phase MUST be inherited | |||
| re-authentication phase. | 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) | |||
| [Session-Id, MAC] | [Session-Id, AUTH] | |||
| <----- PANA-Reauth-Answer(q) | <----- PANA-Reauth-Answer(q) | |||
| [Session-Id, MAC] | [Session-Id, AUTH] | |||
| <----- PANA-Auth-Request(p) | <----- PANA-Auth-Request(p) | |||
| [Session-Id, EAP{Request}, MAC] | [Session-Id, EAP{Request}, AUTH] | |||
| -----> PANA-Auth-Answer(p) // No piggybacking EAP Response | -----> PANA-Auth-Answer(p) // No piggybacking EAP Response | |||
| [Session-Id, MAC] | [Session-Id, AUTH] | |||
| -----> PANA-Auth-Request(q+1) | -----> PANA-Auth-Request(q+1) | |||
| [Session-Id, EAP{Response}, MAC] | [Session-Id, EAP{Response}, AUTH] | |||
| <----- PANA-Auth-Answer(q+1) // No piggybacking EAP Response | <----- PANA-Auth-Answer(q+1) // No piggybacking EAP Response | |||
| [Session-Id, MAC] | [Session-Id, AUTH] | |||
| <----- PANA-Auth-Request(p+1) | <----- PANA-Auth-Request(p+1) | |||
| [Session-Id, EAP{Request}, MAC] | [Session-Id, EAP{Request}, AUTH] | |||
| -----> PANA-Auth-Answer(p+1) // Piggybacking EAP Response | -----> PANA-Auth-Answer(p+1) // Piggybacking EAP Response | |||
| [Session-Id, EAP{Response}, MAC] | [Session-Id, EAP{Response}, AUTH] | |||
| <----- PANA-Bind-Request(p+2) | <----- PANA-Bind-Request(p+2) | |||
| [Session-Id, Result-Code, EAP{Success}, | [Session-Id, Result-Code, EAP{Success}, | |||
| Device-Id, Key-Id, | Device-Id, Key-Id, Algorithm, | |||
| Lifetime, Protection-Cap., PPAC, MAC] | Lifetime, Protection-Cap., PPAC, AUTH] | |||
| -----> PANA-Bind-Answer(p+2) | -----> PANA-Bind-Answer(p+2) | |||
| [Session-Id, Device-Id, Key-Id, PPAC, MAC] | [Session-Id, Device-Id, Key-Id, PPAC, AUTH] | |||
| Figure 7: Example sequence for the re-authentication phase initiated | Figure 7: 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 a MAC 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, MAC] | -----> PANA-Termination-Request(q)[Session-Id, AUTH] | |||
| <----- PANA-Termination-Answer(q)[Session-Id, MAC] | <----- PANA-Termination-Answer(q)[Session-Id, AUTH] | |||
| Figure 8: Example sequence for the termination phase triggered by PaC | Figure 8: Example sequence for the termination phase triggered by PaC | |||
| 4.8 Separate NAP and ISP Authentication | 4.8. Separate NAP and ISP Authentication | |||
| PANA allows running at most two EAP sessions in sequence in the | PANA allows running at most two EAP sessions in sequence in the | |||
| authentication and authorization phase to support separate NAP and | authentication and authorization phase to support separate NAP and | |||
| ISP authentication as described in this section. A typical network | ISP authentication as described in this section. A typical network | |||
| access authentication includes execution of one EAP method with the | access authentication includes execution of one EAP method with the | |||
| ISP. This separation allows the PaC to perform an additional | ISP. This separation allows the PaC to perform an additional | |||
| authentication method for receiving differentiated services from the | authentication method for receiving differentiated services from the | |||
| NAP. | NAP. | |||
| Currently, running multiple EAP sessions in sequence in the | Currently, running multiple EAP sessions in sequence in the | |||
| skipping to change at page 21, line 35 ¶ | skipping to change at page 21, line 35 ¶ | |||
| of EAP sessions in sequence, or giving the PaC another chance to try | of EAP sessions in sequence, or giving the PaC another chance to try | |||
| another EAP authentication method within an integrated NAP and ISP | another EAP authentication method within an integrated NAP and ISP | |||
| authentication when an EAP authentication method fails. | authentication when an EAP authentication method fails. | |||
| Within separate NAP and ISP authentication, the NAP authentication | Within separate NAP and ISP authentication, the NAP authentication | |||
| and the ISP authentication are considered completely independent. | and the ISP authentication are considered completely independent. | |||
| Presence or success of one should not effect the other. Making a | Presence or success of one should not effect the other. Making a | |||
| network access authorization decision based on the success or failure | network access authorization decision based on the success or failure | |||
| of each authentication is a network policy issue. | of each authentication is a network policy issue. | |||
| 4.8.1 Negotiating Separate NAP and ISP Authentication | 4.8.1. Negotiating Separate NAP and ISP Authentication | |||
| When the PaC and PAA negotiates in the discovery and handshake phase | When the PaC and PAA negotiates in the discovery and handshake phase | |||
| to perform separate NAP and ISP authentication, the PaC and the PAA | to perform separate NAP and ISP authentication, the PaC and the PAA | |||
| operate in the following way in addition to the behavior defined in | operate in the following way in addition to the behavior defined in | |||
| Section 4.3 | Section 4.3 | |||
| In the discovery and handshake phase, the PAA MAY advertise | In the discovery and handshake phase, the PAA MAY advertise | |||
| availability of separate NAP and ISP authentication ([I-D.ietf-pana- | availability of separate NAP and ISP authentication ([I-D.ietf-pana- | |||
| framework]) by setting the S-flag on the PANA header of the PANA- | framework]) by setting the S-flag on the PANA header of the PANA- | |||
| Start-Request message. | Start-Request message. | |||
| skipping to change at page 22, line 17 ¶ | skipping to change at page 22, line 16 ¶ | |||
| authentication is performed (ISP-only) and the processing occurs as | authentication is performed (ISP-only) and the processing occurs as | |||
| described in Section 4.3. | described in Section 4.3. | |||
| When the S-flag is set in a PANA-Start-Request message, the initial | 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 | EAP Request message MUST NOT be carried in the PANA-Start-Request | |||
| message. (If the initial EAP Request message were contained in the | message. (If the initial EAP Request message were contained in the | |||
| PANA-Start-Request message during the S-flag negotiation, the PaC | PANA-Start-Request message during the S-flag negotiation, the PaC | |||
| cannot tell whether the EAP Request message is for NAP authentication | cannot tell whether the EAP Request message is for NAP authentication | |||
| or ISP authentication.) | or ISP authentication.) | |||
| 4.8.2 Execution of Separate NAP and ISP Authentication | 4.8.2. Execution of Separate NAP and ISP Authentication | |||
| When the PaC and PAA have negotiated in the discovery and handshake | When the PaC and PAA have negotiated in the discovery and handshake | |||
| phase to perform separate NAP and ISP authentication, the PaC and the | phase to perform separate NAP and ISP authentication, the PaC and the | |||
| PAA operate in the following way in addition to the behavior defined | PAA operate in the following way in addition to the behavior defined | |||
| in Section 4.4 | in Section 4.4 | |||
| o The S-flag of PANA-Auth-Request and PANA-Auth-Answer messages MUST | o The S-flag of PANA-Auth-Request and PANA-Auth-Answer messages MUST | |||
| be set. | be set. | |||
| o An EAP Success/Failure message is carried in a PANA-FirstAuth-End- | o An EAP Success/Failure message is carried in a PANA-FirstAuth-End- | |||
| skipping to change at page 23, line 4 ¶ | skipping to change at page 22, line 51 ¶ | |||
| the S-flag of the PANA-FirstAuth-End-Answer message. If the first | 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- | EAP authentication failed and the S-flag is not set in the PANA- | |||
| FirstAuth-End-Answer message as a result of those operations, the | FirstAuth-End-Answer message as a result of those operations, the | |||
| PANA session MUST be immediately deleted. Otherwise, the second | PANA session MUST be immediately deleted. Otherwise, the second | |||
| EAP authentication MUST be performed. | EAP authentication MUST be performed. | |||
| o The PAA determines the execution order of NAP authentication and | o The PAA determines the execution order of NAP authentication and | |||
| ISP authentication. In this case, the PAA can indicate which | ISP authentication. In this case, the PAA can indicate which | |||
| authentication (NAP authentication or ISP authentication) is | authentication (NAP authentication or ISP authentication) is | |||
| currently occurring by using N-flag in the PANA message header. | currently occurring by using N-flag in the PANA message header. | |||
| When NAP authentication is being performed, the N-flag MUST be | When NAP authentication is being performed, the N-flag MUST be | |||
| set. When ISP authentication is being performed, the N-flag MUST | 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. | 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 | When the PaC and PAA have negotiated in the discovery and handshake | |||
| phase to perform separate NAP and ISP authentication, and the lower- | phase to perform separate NAP and ISP authentication, and the lower- | |||
| layer is insecure, the two EAP authentication methods used in the | layer is insecure, the two EAP authentication methods used in the | |||
| separate authentication MUST be capable of deriving keys (AAA-Key). | separate authentication MUST be capable of deriving keys (AAA-Key). | |||
| 4.8.3 AAA-Key Calculation | 4.8.3. AAA-Key Calculation | |||
| When the PaC and PAA have negotiated in the discovery and handshake | When the PaC and PAA have negotiated in the discovery and handshake | |||
| phase to perform separate NAP and ISP authentication, if the lower- | phase to perform separate NAP and ISP authentication, if the lower- | |||
| layer is insecure, the two EAP authentication methods used in the | layer is insecure, the two EAP authentication methods used in the | |||
| separate authentication MUST be capable of deriving keys. In this | separate authentication MUST be capable of deriving keys. In this | |||
| case, if the first EAP authentication is successful, the PANA- | case, if the first EAP authentication is successful, the PANA- | |||
| FirstAuth-End-Request and PANA-FirstAuth-End-Answer messages as well | FirstAuth-End-Request and PANA-FirstAuth-End-Answer messages as well | |||
| as PANA-Auth-Request and PANA-Auth-Answer messages in the second EAP | as PANA-Auth-Request and PANA-Auth-Answer messages in the second EAP | |||
| authentication MUST be protected with the key derived from the AAA- | authentication MUST be protected with the key derived from the AAA- | |||
| Key for the first EAP authentication. The PANA-Bind-Request and | Key for the first EAP authentication. The PANA-Bind-Request and | |||
| skipping to change at page 24, line 7 ¶ | skipping to change at page 24, line 7 ¶ | |||
| second EAP authentication fails, or with the AAA-Key for the second | second EAP authentication fails, or with the AAA-Key for the second | |||
| EAP authentication if the first EAP authentication fails and the | EAP authentication if the first EAP authentication fails and the | |||
| second EAP authentication succeeds, or with the compound AAA-Key | second EAP authentication succeeds, or with the compound AAA-Key | |||
| derived from the two AAA-Keys, one for the first EAP authentication | 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 the other from the second EAP authentication, if both the first | |||
| and second EAP authentication succeed. See Section 5.3 for how to | and second EAP authentication succeed. See Section 5.3 for how to | |||
| derive the AAA-Key. | 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 | |||
| PANA uses sequence numbers to provide ordered and reliable delivery | PANA uses sequence numbers to provide ordered and reliable delivery | |||
| of messages. | of messages. | |||
| 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 | |||
| skipping to change at page 24, line 50 ¶ | skipping to change at page 24, line 50 ¶ | |||
| PANA messages are retransmitted based on a timer until a response is | PANA messages are retransmitted based on a timer until a response is | |||
| received (in which case the retransmission timer is stopped) or the | received (in which case the retransmission timer is stopped) or the | |||
| number of retransmission reaches the maximum value (in which case the | number of retransmission reaches the maximum value (in which case the | |||
| PANA session MUST be deleted immediately). | 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 | [RFC2988] to provide congestion control. See Section 9 for default | |||
| timer and maximum retransmission count parameters. | timer and maximum retransmission count parameters. | |||
| The PaC and PAA MUST respond to duplicate requests. The last | The PaC and PAA MUST respond to duplicate requests as long as the | |||
| 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 | PANA MUST NOT generate EAP message duplication. EAP payload of a | |||
| retransmitted PANA message MUST NOT be passed to the EAP layer. | retransmitted PANA message MUST NOT be passed to the EAP layer. | |||
| 5.3 PANA Security Association | 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 a AAA-Key. A PANA SA is | |||
| not created when the PANA authentication fails or no AAA-Key is | not created when the PANA authentication fails or no AAA-Key is | |||
| produced by any EAP authentication method. In the case where two EAP | produced by any EAP authentication method. In the case where two EAP | |||
| sessions are performed in sequence in the PANA authentication and | sessions are performed in sequence in the PANA authentication and | |||
| authorization phase, it is possible that two AAA-Keys are derived. | authorization phase, it is possible that two AAA-Keys are derived. | |||
| If this happens, the PANA SA MUST be generated from both AAA-Keys. | If this happens, the PANA SA MUST be generated from both AAA-Keys. | |||
| When a new AAA-Key is derived in the PANA re-authentication phase, | When a new AAA-Key is derived in the PANA re-authentication phase, | |||
| any key derived from the old AAA-Key MUST be updated to a new one | any key derived from the old AAA-Key MUST be updated to a new one | |||
| skipping to change at page 25, line 33 ¶ | skipping to change at page 25, line 34 ¶ | |||
| Bind-Request and PANA-Bind-Answer messages or PANA-FirstAuth-End- | Bind-Request and PANA-Bind-Answer messages or PANA-FirstAuth-End- | |||
| Request and PANA-FirstAuth-End-Answer messages at the end of the EAP | 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 | 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 AAA-Key within the PANA session. The PANA-Bind-Answer | |||
| message (or the PANA-FirstAuth-End-Answer message) sent in response | message (or the PANA-FirstAuth-End-Answer message) sent in response | |||
| to a PANA-Bind-Request message (or a PANA-FirstAuth-End-Request | to a PANA-Bind-Request message (or a PANA-FirstAuth-End-Request | |||
| message) with a Key-Id AVP MUST contain a Key-Id AVP with the same | message) with a Key-Id AVP MUST contain a Key-Id AVP with the same | |||
| AAA-Key identifier carried in the request. PANA-Bind-Request, PANA- | AAA-Key identifier carried in the request. PANA-Bind-Request, PANA- | |||
| Bind-Answer, PANA-FirstAuth-End-Request and PANA-FirstAuth-End-Answer | Bind-Answer, PANA-FirstAuth-End-Request and PANA-FirstAuth-End-Answer | |||
| messages with a Key-Id AVP MUST also carry a MAC AVP whose value is | messages with a Key-Id AVP MUST also carry an AUTH AVP whose value is | |||
| computed by using the new PANA_MAC_KEY derived from the new AAA-Key | computed by using the new PANA_AUTH_KEY derived from the new AAA-Key | |||
| (or the new pair of AAA-Keys when the PANA_MAC_KEY is derived from | (or the new pair of AAA-Keys when the PANA_AUTH_KEY is derived from | |||
| two AAA-Keys). Although the specification does not mandate a | two AAA-Keys). Although the specification does not mandate a | |||
| particular method for calculation of the Key-Id AVP value, a simple | particular method for calculation of the Key-Id AVP value, a simple | |||
| method is to use monotonically increasing numbers. | 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 AAA-Key lifetime). | |||
| The lifetime of the PANA SA (hence the PANA_MAC_KEY) is the same as | The lifetime of the PANA SA (hence the PANA_AUTH_KEY) is the same as | |||
| the lifetime of the PANA session. The created PANA SA is deleted | the lifetime of the PANA session. The created PANA SA is deleted | |||
| when the corresponding PANA session is deleted. | when 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-Id | |||
| skipping to change at page 26, line 29 ¶ | skipping to change at page 26, line 29 ¶ | |||
| * 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 | * Protection-Capability | |||
| * PANA SA attributes: | * PANA SA attributes | |||
| + Nonce generated by PaC (PaC_nonce) | PANA SA attributes: | |||
| + Nonce generated by PAA (PAA_nonce) | * Nonce generated by PaC (PaC_nonce) | |||
| + AAA-Key | * Nonce generated by PAA (PAA_nonce) | |||
| + AAA-Key Identifier | * AAA-Key | |||
| + PANA_MAC_KEY | * AAA-Key Identifier | |||
| The PANA_MAC_KEY is derived from the available AAA-Key(s) and it is | * PANA_AUTH_KEY | |||
| * Pseudo-random function | ||||
| * Integrity algorithm | ||||
| The PANA_AUTH_KEY is derived from the available AAA-Key(s) and it is | ||||
| used to integrity protect PANA messages. If there is only one AAA- | used to integrity protect PANA messages. If there is only one AAA- | |||
| Key available, e.g., due to ISP-only authentication, or with one | Key available, e.g., due to ISP-only authentication, or with one | |||
| failed and one successful separate NAP and ISP authentication (see | failed and one successful separate NAP and ISP authentication (see | |||
| Section 4.8), the PANA_MAC_KEY computation is based on that single | 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 | key. Otherwise, two AAA-Keys available to PANA can be combined in | |||
| following way ('|' indicates concatenation): | following way ('|' indicates concatenation): | |||
| AAA-Key = AAA-Key1 | AAA-Key2 | AAA-Key = AAA-Key1 | AAA-Key2 | |||
| The PANA_MAC_KEY is computed in the following way: | The PANA_AUTH_KEY is computed in the following way: | |||
| PANA_MAC_KEY = The first N bits of | PANA_AUTH_KEY = prf+(AAA-Key, PaC_nonce | PAA_nonce | Session-ID) | |||
| HMAC_SHA1(AAA-Key, PaC_nonce | PAA_nonce | Session-ID) | ||||
| where the value of N depends on the integrity protection algorithm in | where the prf+ function is defined in IKEv2 [RFC4306]. The pseudo- | |||
| use, i.e., N=160 for HMAC-SHA1. The length of the AAA-Key MUST be N | random function to be used for the prf+ function is specified in the | |||
| bits or longer. See Section 5.4 for the detailed usage of the | Algorithm AVP in a PANA-FirstAuth-End-Request or a PANA-Bind-Request | |||
| PANA_MAC_KEY. | message. The length of PANA_AUTH_KEY depends on the integrity | |||
| algorithm in use. See Section 5.4 for the detailed usage of the | ||||
| PANA_AUTH_KEY. | ||||
| 5.4 Message Authentication Code | 5.4. Message Authentication | |||
| A PANA message can contain a MAC (Message Authentication Code) AVP | A PANA message can contain an AUTH AVP for cryptographically | |||
| for cryptographically protecting the message. | protecting the message. | |||
| When a MAC AVP is included in a PANA message, the value field of the | When an AUTH AVP is included in a PANA message, the value field of | |||
| MAC AVP is calculated by using the PANA_MAC_KEY in the following way: | the AUTH AVP is calculated by using the PANA_AUTH_KEY in the | |||
| following way: | ||||
| MAC AVP value = PANA_MAC_PRF(PANA_MAC_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 MAC AVP value field first initialized to 0. PANA_MAC_PRF | the AUTH AVP value field first initialized to 0. PANA_AUTH_HASH | |||
| represents the pseudo random function corresponding to the MAC | represents the integrity algorithm specified in the Algorithm AVP in | |||
| algorithm specified in the MAC AVP. In this version of draft, | a PANA-Bind-Request message. The PaC and PAA MUST use the same | |||
| PANA_MAC_PRF is HMAC-SHA1. The PaC and PAA MUST use the same | integrity algorithm to calculate an AUTH AVP they originate and | |||
| algorithm to calculate a MAC AVP they originate and receive. The | receive. The algorithm is determined by the PAA. When the PaC does | |||
| algorithm is determined by the PAA when a PANA-Bind-Request with a | not support the integrity algorithm specified in the PANA-Bind- | |||
| MAC AVP is sent. When the PaC does not support the MAC algorithm | Request message, it MUST silently discard the message. | |||
| specified in the PANA-Bind-Request message, it MUST silently discard | ||||
| the message. The PAA MUST NOT change the MAC algorithm throughout | ||||
| the continuation of the PANA session. | ||||
| 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, 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 | |||
| skipping to change at page 28, line 41 ¶ | skipping to change at page 28, line 45 ¶ | |||
| + PANA-PAA-Discover. | + PANA-PAA-Discover. | |||
| * In the termination phase: | * In the termination phase: | |||
| + PANA-PAA-Discover. | + PANA-PAA-Discover. | |||
| + All requests but PANA-Termination-Request. | + All requests but PANA-Termination-Request. | |||
| o The message payload contains a valid set of AVPs allowed for the | o The message payload contains a valid set of AVPs allowed for the | |||
| message type and there is no missing AVP that needs to be included | message type and there is no missing AVP that needs to be included | |||
| in the payload. | in the payload and no AVP, which needs to be at a 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 a MAC AVP is included, the AVP value matches the MAC 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 | o When a Device-Id AVP is included, the AVP is valid if the device | |||
| identifier type contained in the AVP is supported (check performed | identifier type contained in the AVP is supported (check performed | |||
| by both the PaC and the PAA) and is the requested one (check | 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 | 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 | 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 | and the device identifier(s) of the EP(s) in messages from the PAA | |||
| to the PaC. | 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.11 for details. | |||
| 5.6 PaC-EP-Master-Key | 5.6. PaC-EP-Master-Key | |||
| As described in Section 4.4, use of a cryptographic filtering | As described in Section 4.4, use of a cryptographic filtering | |||
| mechanism is indicated by inclusion of a Protection-Capability AVP in | mechanism is indicated by inclusion of a Protection-Capability AVP in | |||
| the PANA-Bind-Request message in the authentication and authorization | 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 | 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 | for each EP and used by a secure association protocol for | |||
| bootstrapping link-layer or IPsec ciphering betweeen the PaC and EP. | bootstrapping link-layer or IPsec ciphering between the PaC and EP. | |||
| The PaC-EP-Master-Key derivation algorithm is defined as follows. | The PaC-EP-Master-Key derivation algorithm is defined as follows. | |||
| PaC-EP-Master-Key = HMAC-SHA-1 (AAA-Key, "PaC-EP master key" | | PaC-EP-Master-Key = The first 64 octets of | |||
| Session ID | Key-ID | EP-Device-Id) | 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 | EP-Device-Id is the Data field of the Device-Id AVP for the | |||
| corresponding EP. | corresponding EP. | |||
| 5.7 Device ID Choice | 5.7. Device ID Choice | |||
| The device identifier used in the context of PANA can be an IP | The device identifier used in the context of PANA can be an IP | |||
| address, a MAC address, or an identifier that is not carried in data | address, a MAC address, or an identifier that may not be carried in | |||
| packets but has local significance in identifying a connected device | data packets but has local significance in identifying a connected | |||
| (e.g., circuit id, PPP interface id). The last type of identifiers | device (e.g., circuit id, PPP interface id). The last type of | |||
| are commonly used in point-to-point links where MAC addresses are not | identifiers are commonly used in point-to-point links where MAC | |||
| available and lower-layers are already physically or | addresses are not available and lower-layers are already physically | |||
| cryptographically secured. | or cryptographically secured. | |||
| It is assumed that the PAA knows the link type and the security | It is assumed that the PAA knows the link type and the security | |||
| mechanisms being provided or required on the access network (e.g., | mechanisms being provided or required on the access network (based on | |||
| based on physical security, link-layer ciphers enabled before or | configuration of the network administrator). For example, one | |||
| after PANA, or IPsec). Based on that information, the PAA can decide | network administrator might want to use IPsec for securing the | |||
| what type of EP device id will be usedused when running PANA with the | network access while another one (for a different network) might rely | |||
| client. | on physical security. | |||
| When IPsec-based security [I-D.ietf-pana-ipsec] is the choice of | When IPsec-based security [I-D.ietf-pana-ipsec] is the choice of | |||
| access control, the PAA SHOULD provide IP address(es) as EP(s)' | access control, the PAA MUST provide IP address(es) as EP(s)' device | |||
| device ID, and expect the PaC to provide its IP address in return. | 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 | Similarly, IP addresses are used when the EP(s) is not on the same IP | |||
| subnet as the PaC is. | subnet as the PaC is. | |||
| In other cases, MAC addresses are used as device identifiers when | In other cases, MAC addresses are used as device identifiers when | |||
| they are available. | they are available. | |||
| If non-IPsec access control is enabled, and a MAC address is not | If non-IPsec access control is enabled, and a MAC address is not | |||
| available, locally-significant identifiers (e.g., as a circuit id) | available, locally-significant identifiers (e.g., as a circuit id) | |||
| MUST be used as device id. Note that these identifiers are not | MUST be used as device id. Note that these identifiers are not | |||
| exchanged within PANA messages. Instead, peers rely on lower-layers | exchanged within PANA messages. Instead, peers rely on lower-layers | |||
| to provide them along with received PANA messages. | to provide them along with received PANA messages. | |||
| 5.8 PaC Updating its IP Address | 5.8. PaC Updating its IP Address | |||
| A PaC's IP address can change in certain situations. For example, | A PaC's IP address can change in certain situations. For example, | |||
| the PANA framework [I-D.ietf-pana-framework] describes a case in | the PANA framework [I-D.ietf-pana-framework] describes a case in | |||
| which a PaC replaces a pre-PANA address (PRPA) with a post-PANA | which a PaC replaces a pre-PANA address (PRPA) with a post-PANA | |||
| address (POPA). In order to establish reachability, the PAA needs to | address (POPA). In another situation a PaC may change its IP address | |||
| be notified about the change of PaC 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. | ||||
| After the PaC has changed its address, it MUST send a PANA-Update- | If the device identifier of the PaC is the IP address, it is also | |||
| Request message to the PAA. The PAA MUST update the PANA session | subject to the same change. The PAA needs to be notified about the | |||
| with the new PaC address (source IP address) and return a PANA- | change of device identifier as well so that the PAA can update the | |||
| Update-Answer message. If there is an established PANA SA, both | EP(s). If IPsec is used between the PaC and the EPs, an IKE or | |||
| PANA-Update-Request and PANA-Update-Answer messages MUST be protected | MOBIKE [I-D.ietf-mobike-protocol] run is needed following such a | |||
| with a MAC AVP. | change. | |||
| 5.9 Session Lifetime | After the PaC has changed its IP address, it MUST send a PANA-Update- | |||
| Request message to the PAA. If the PaC has also changed its device | ||||
| 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 | ||||
| field of the IP header and the new device identifier carried in the | ||||
| Device-Id AVP, and return a PANA-Update-Answer message. The PANA- | ||||
| Update-Answer message MUST contain one or more Device-Id AVPs for the | ||||
| 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 | ||||
| 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 PANA-Bind- | |||
| Request message to inform the PaC about the valid lifetime of the | Request message to inform the PaC about the valid lifetime of the | |||
| PANA session. It MUST be ignored when included in other PANA | 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- | ||||
| Request message then the PaC has no knowledge about a PANA session | ||||
| limitation and must therefore conclude that the session is 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 PAA MAY optionally rely on lower-layer indications to | The PaC and the PAA MAY use information obtained outside PANA (e.g., | |||
| expedite the detection of a disconnected peer. Availability and | lower-layer indications) to expedite the detection of a disconnected | |||
| reliability of such indications depend on the specific access | peer. Availability and reliability of such indications MAY depend on | |||
| technologies. A PANA peer can use the PANA-Ping exchange to verify | a specific link layer or network topology and are therefore only | |||
| the disconnection before taking an action. | hints. A PANA peer SHOULD use the PANA-Ping message exchange to | |||
| verify the liveness of a peer before taking an action. | ||||
| The session lifetime parameter is not related to the transmission of | The session lifetime parameter is not related to the transmission of | |||
| PANA-Ping-Request messages. These messages can be used for | PANA-Ping-Request messages. These messages can be used for | |||
| asynchronously verifying the liveness of the peer. The decision to | asynchronously verifying the liveness of the peer. The decision to | |||
| send 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 | When separate ISP and NAP authentication is performed, it is possible | |||
| that different authorization lifetime values are associated with the | that different authorization lifetime values are associated with the | |||
| two EAP authentication sessions. In this case, the smaller | two EAP authentication sessions. In this case, the smaller | |||
| authorization lifetime value MUST be used for calculating the PANA | authorization lifetime value MUST be used for calculating the PANA | |||
| Session-Lifetime value. As a result, both NAP and ISP authentication | Session-Lifetime value. As a result, both NAP and ISP authentication | |||
| will be performed in the re-authentication phase. | will be performed in the re-authentication phase. | |||
| 5.10 Network Selection | 5.10. Network Selection | |||
| The PANA discovery and handshake phase allows the PaC to learn | 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 | 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 | NAP. The PaC can not only learn the ISPs but also convey the | |||
| selected ISP explicitly during the handshake phase. The PAA is | selected ISP explicitly during the handshake phase. The PAA is | |||
| assumed to be pre-configured with the information of ISPs that are | assumed to be pre-configured with the information of ISPs that are | |||
| served by the NAP. | served by the NAP. | |||
| A PANA-Start-Request message sent from the PAA MAY contain zero or | 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 | one NAP-Information AVP, and zero or more ISP-Information AVPs. The | |||
| skipping to change at page 31, line 44 ¶ | skipping to change at page 32, line 28 ¶ | |||
| The PANA-based ISP selection mechanism dictates the next-hop AAA | 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 | 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 | 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 | selected ISP information from PAA (AAA client) to the local AAA | |||
| proxy. The local AAA proxy can forward the AAA traffic to the | proxy. The local AAA proxy can forward the AAA traffic to the | |||
| selected ISP domain upon processing. Further details, including how | selected ISP domain upon processing. Further details, including how | |||
| the AAA client relays AAA routing information to the AAA proxy, are | the AAA client relays AAA routing information to the AAA proxy, are | |||
| outside the scope of PANA. | outside the scope of PANA. | |||
| An alternative ISP discovery mechanism is outlined in [I-D.adrangi- | An alternative ISP discovery mechanism is outlined in [RFC4284] which | |||
| eap-network-discovery] which suggests advertising ISP information in- | suggests advertising ISP information in-band with the ongoing EAP | |||
| band with the ongoing EAP method execution. Deployments using the | method execution. Deployments using the PANA's built-in ISP | |||
| PANA's built-in ISP discovery mechanism need not use the other | discovery mechanism need not use the other mechanism. | |||
| mechanism. | ||||
| 5.11 Error Handling | 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 PANA-Error- | |||
| Answer message. If the cause of this error message was a request | Answer message. | |||
| message, then the request MAY be retransmitted immediately without | ||||
| waiting for its retransmission timer to go off. If the cause of the | ||||
| error was a response message, the receiver of the PANA-Error-Request | ||||
| message SHOULD NOT resend the same response until it receives the | ||||
| next request. | ||||
| Erroneous PANA messages may be exploited by adversaries to launch DoS | An adversary might craft erroneous PANA messages to launch a Denial | |||
| attacks on the victims. Unless the PaC or PAA rate-limits the | of Service attack. Unless the PaC or the PAA performs a rate- | |||
| generated PANA-Error-Request messages it may be overburdened by | limitation of the generated PANA-Error-Request messages it may be | |||
| having to respond to bogus messages. Limiting the number of error | overburdened by responding to bogus messages. Note that a PANA- | |||
| notifications sent to a given peer during a (configurable) period of | Error-Answer message that is sent in response to a PANA-Error-Request | |||
| time may be useful. | message does not require either the PaC or the PAA to create state. | |||
| When an error message is sent unprotected (i.e., no MAC AVP) and the | If an error message is sent unprotected (i.e., without using an AUTH | |||
| lower-layer is insecure, the error message is treated as an | AVP) and the lower-layer is insecure then the error message MUST be | |||
| informational message. The receiver of such an error message MUST | processed such that the receiver does not change its state. | |||
| NOT change its state unless the error persists and the PANA session | ||||
| is not making any progress. | ||||
| 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 | When a PANA-PAA-Discover message is multicast, IP destination address | |||
| of the message is set to a well-known administratively scoped | of the message is set to a well-known administratively scoped | |||
| multicast address (To Be Assigned by IANA). A PANA-PAA-Discover | multicast address (To Be Assigned by IANA). A PANA-PAA-Discover | |||
| message MAY be unicast in some cases as specified in Section 4.3. | 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 | Any other PANA message is unicast between the PaC and the PAA. The | |||
| source and destination addresses SHOULD be set to the addresses on | source and destination addresses SHOULD be set to the addresses on | |||
| the interfaces from which the message will be sent and received, | the interfaces from which the message will be sent and received, | |||
| respectively. | respectively. | |||
| skipping to change at page 33, line 31 ¶ | skipping to change at page 33, line 31 ¶ | |||
| 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 | The source port of an unsolicited PANA message MUST be set to a value | |||
| chosen by the sender. The destination port MUST be set to the peer's | chosen by the sender. The destination port MUST be set to the peer's | |||
| port number if it has already been discovered via earlier PANA | port number if it has already been discovered via earlier PANA | |||
| exchanges, set to the assigned PANA port (To Be Assigned by IANA) | exchanges, set to the assigned PANA port (To Be Assigned by IANA) | |||
| otherwise. | otherwise. | |||
| When the PANA message is sent in response to a request, the UDP | 6.2. PANA Header | |||
| source and destination ports of the response message MUST be copied | ||||
| from the destination and source ports of the request message, | ||||
| respectively. | ||||
| The source port of an unsolicited PANA message MUST be set to a value | ||||
| chosen by the sender. The destination port MUST be set to the peer's | ||||
| port number if it has already been discovered via earlier PANA | ||||
| exchanges, set to the assigned PANA port (To Be Assigned by IANA) | ||||
| otherwise. | ||||
| The maximum PANA message size is limited by the maximum UDP payload. | ||||
| 6.2 PANA Header | ||||
| A summary of the PANA header format is shown below. The fields are | A summary of the PANA header format is shown below. The fields are | |||
| transmitted in network byte order. | transmitted in network byte order. | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Version | Reserved | Message Length | | | Version | Reserved | Message Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Flags | Message Type | | | Flags | Message Type | | |||
| skipping to change at page 34, line 38 ¶ | 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 r r r r r r r r r r r r r| | |R S N L r r r r r r r r r r r r| | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| R(equest) | R(equest) | |||
| If set, the message is a request. If cleared, the message is | If set, the message is a request. If cleared, the message is | |||
| an answer. | an answer. | |||
| S(eparate) | S(eparate) | |||
| When the S-flag is set in a PANA-Start-Request message it | When the S-flag is set in a PANA-Start-Request message it | |||
| skipping to change at page 35, line 13 ¶ | skipping to change at page 35, line 4 ¶ | |||
| separate NAP and ISP authentication. The PaC may also respond | separate NAP and ISP authentication. The PaC may also respond | |||
| with the S-flag not set which implies the PaC has chosen to | 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 | authenticate with the ISP only. When the S-flag is set in a | |||
| PANA-Auth-Request/Answer, PANA-FirstAuth-End-Request/Answer and | PANA-Auth-Request/Answer, PANA-FirstAuth-End-Request/Answer and | |||
| PANA-Bind-Request/Answer messages it indicates that separate | PANA-Bind-Request/Answer messages it indicates that separate | |||
| NAP and ISP authentication is being performed in the | NAP and ISP authentication is being performed in the | |||
| authentication and authorization phase. For other cases, | authentication and authorization phase. For other cases, | |||
| S-flag MUST NOT be set. | S-flag MUST NOT be set. | |||
| N(AP authentication) | N(AP authentication) | |||
| When the N-flag is set in a PANA-Auth-Request, a PANA- | When the N-flag is set in a PANA-Auth-Request, a PANA- | |||
| FirstAuth-End-Request or a PANA-Bind-Request message, it | FirstAuth-End-Request or a PANA-Bind-Request message, it | |||
| indicates that the current EAP authentication is for NAP | indicates that the current EAP authentication is for NAP | |||
| authentication. When the N-flag is unset in a PANA-Auth- | authentication. When the N-flag is unset in a PANA-Auth- | |||
| Request, a PANA-FirstAuth-End-Request or a PANA-Bind-Request | Request, a PANA-FirstAuth-End-Request or a PANA-Bind-Request | |||
| message, it indicates that the current EAP authentication is | message, it indicates that the current EAP authentication is | |||
| for ISP authentication. The PaC MUST copy the value of the | for ISP authentication. The PaC MUST copy the value of the | |||
| flag in its answer from the last received request of the PAA. | 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 | 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. | 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]. PANA uses its own address | |||
| skipping to change at page 35, line 47 ¶ | skipping to change at page 35, line 45 ¶ | |||
| Sequence Number | Sequence Number | |||
| The Sequence Number field contains a 32 bit value. | The Sequence Number field contains a 32 bit value. | |||
| AVPs | AVPs | |||
| AVPs are a method of encapsulating information relevant to the | AVPs are a method of encapsulating information relevant to the | |||
| PANA message. See section Section 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 zero- | |||
| valued bytes are added to the end of the AVP Data field till a word | valued bytes are added to the end of the AVP Data field till a word | |||
| boundary is reached. The length of the padding is not reflected in | boundary is reached. The length of the padding is not reflected in | |||
| the AVP Length field [RFC3588]. | 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: | |||
| skipping to change at page 37, line 10 ¶ | skipping to change at page 37, line 7 ¶ | |||
| MUST be rejected and the receiver MUST send a PANA-Error- | MUST be rejected and the receiver MUST send a PANA-Error- | |||
| Request message. If the AVP was unrecognized the PANA-Error- | Request message. If the AVP was unrecognized the PANA-Error- | |||
| Request message result code MUST be PANA_AVP_UNSUPPORTED. If | Request message result code MUST be PANA_AVP_UNSUPPORTED. If | |||
| the AVP value was unrecognized the PANA-Error-Request message | the AVP value was unrecognized the PANA-Error-Request message | |||
| result code MUST be PANA_INVALID_AVP_DATA. In either case the | result code MUST be PANA_INVALID_AVP_DATA. In either case the | |||
| PANA-Error-Request message MUST carry a Failed-AVP AVP | PANA-Error-Request message MUST carry a Failed-AVP AVP | |||
| containing the offending mandatory AVP. | containing the offending mandatory AVP. | |||
| AVPs with the 'M' bit cleared are informational only and a | AVPs with the 'M' bit cleared are informational only and a | |||
| receiver that receives a message with such an AVP that is not | receiver that receives a message with such an AVP that is not | |||
| supported, or whose value is not supported, MAY simply ignore | recognized, or whose value is not recognized, MAY simply ignore | |||
| the AVP. | 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. | |||
| r(eserved) | r(eserved) | |||
| skipping to change at page 39, line 39 ¶ | skipping to change at page 39, line 39 ¶ | |||
| 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-FirstAuth-End-Request PFER 9 <-------- 7.16 | |||
| PANA-FirstAuth-End-Answer PFEA 9 --------> 7.17 | PANA-FirstAuth-End-Answer PFEA 9 --------> 7.17 | |||
| PANA-Update-Request PUR 10 <-------> 7.18 | PANA-Update-Request PUR 10 <-------> 7.18 | |||
| PANA-Update-Answer PUA 10 <-------> 7.19 | PANA-Update-Answer PUA 10 <-------> 7.19 | |||
| ----------------------------------------------------------- | ----------------------------------------------------------- | |||
| Figure 9: Table of PANA Messages | Figure 9: 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 / "-") | |||
| skipping to change at page 40, line 26 ¶ | skipping to change at page 40, line 26 ¶ | |||
| s-bit = ", SEP" | s-bit = ", SEP" | |||
| ; If present, the 'S' bit in the Message | ; If present, the 'S' bit in the Message | |||
| ; Flags is set, indicating support for | ; Flags is set, indicating support for | |||
| ; separate NAP and ISP authentication. | ; separate NAP and ISP authentication. | |||
| n-bit = ", NAP" | n-bit = ", NAP" | |||
| ; If present, the 'N' bit in the Message | ; If present, the 'N' bit in the Message | |||
| ; Flags is set, indicating that current | ; Flags is set, indicating that current | |||
| ; EAP authentication is for NAP authentication. | ; 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 | |||
| skipping to change at page 40, line 48 ¶ | skipping to change at page 41, line 4 ¶ | |||
| qual = [min] "*" [max] | qual = [min] "*" [max] | |||
| ; See ABNF conventions, RFC 2234 Section 6.6. | ; See ABNF conventions, RFC 2234 Section 6.6. | |||
| ; The absence of any qualifiers depends on whether | ; The absence of any qualifiers depends on whether | |||
| ; it precedes a fixed, required, or optional | ; it precedes a fixed, required, or optional | |||
| ; rule. If a fixed or required rule has no | ; rule. If a fixed or required rule has no | |||
| ; qualifier, then exactly one such AVP MUST | ; qualifier, then exactly one such AVP MUST | |||
| ; be present. If an optional rule has no | ; be present. If an optional rule has no | |||
| ; qualifier, then 0 or 1 such AVP may be | ; qualifier, then 0 or 1 such AVP may be | |||
| ; present. | ; present. | |||
| ; | ; | |||
| ; NOTE: "[" and "]" have a different meaning | ; NOTE: "[" and "]" have a different meaning | |||
| ; than in ABNF (see the optional rule, above). | ; than in ABNF (see the optional rule, above). | |||
| ; These braces cannot be used to express | ; These braces cannot be used to express | |||
| ; optional fixed rules (such as an optional | ; optional fixed rules (such as an optional | |||
| ; MAC at the end). To do this, the convention | ; AUTH at the end). To do this, the convention | |||
| ; is '0*1fixed'. | ; is '0*1fixed'. | |||
| min = 1*DIGIT | min = 1*DIGIT | |||
| ; The minimum number of times the element may | ; The minimum number of times the element may | |||
| ; be present. The default value is zero. | ; be present. The default value is zero. | |||
| max = 1*DIGIT | max = 1*DIGIT | |||
| ; The maximum number of times the element may | ; The maximum number of times the element may | |||
| ; be present. The default value is infinity. A | ; be present. The default value is infinity. A | |||
| ; value of zero implies the AVP MUST NOT be | ; value of zero implies the AVP MUST NOT be | |||
| skipping to change at page 41, line 32 ¶ | skipping to change at page 41, line 38 ¶ | |||
| 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 > | < Session-Id > | |||
| { Result-Code } | { Result-Code } | |||
| * [ AVP ] | * [ AVP ] | |||
| 0*1 < MAC > | 0*1 < AUTH > | |||
| 7.1 PANA-PAA-Discover (PDI) | 7.1. PANA-PAA-Discover (PDI) | |||
| The PANA-PAA-Discover (PDI) message is used to discover the address | The PANA-PAA-Discover (PDI) message is used to discover the address | |||
| of PAA(s). The sequence number in this message is always set to zero | of PAA(s). The sequence number in this message is always set to zero | |||
| (0). | (0). | |||
| PANA-PAA-Discover ::= < PANA-Header: 1 > | PANA-PAA-Discover ::= < PANA-Header: 1 > | |||
| [ Notification ] | [ 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 | advertise availability of the PAA and start PANA authentication. The | |||
| PAA sets the sequence number to an initial random value. | PAA sets the sequence number to an initial random value. | |||
| PANA-Start-Request ::= < PANA-Header: 2, REQ [,SEP] > | PANA-Start-Request ::= < PANA-Header: 2, REQ [,SEP] [,SLS] > | |||
| [ Nonce ] | [ Nonce ] | |||
| [ Cookie ] | [ Cookie ] | |||
| [ EAP-Payload ] | [ EAP-Payload ] | |||
| [ NAP-Information ] | [ NAP-Information ] | |||
| * [ ISP-Information ] | * [ ISP-Information ] | |||
| [ Protection-Capability] | [ Protection-Capability] | |||
| [ Algorithm ] | ||||
| [ PPAC ] | [ PPAC ] | |||
| [ Notification ] | [ 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 [,SEP] > | |||
| [ Nonce ] | [ Nonce ] | |||
| [ Cookie ] | [ Cookie ] | |||
| [ EAP-Payload ] | [ EAP-Payload ] | |||
| [ ISP-Information ] | [ ISP-Information ] | |||
| [ Notification ] | [ 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 [,SEP] [,NAP] > | |||
| < Session-Id > | < Session-Id > | |||
| < EAP-Payload > | < EAP-Payload > | |||
| [ Nonce ] | [ Nonce ] | |||
| [ Notification ] | [ Notification ] | |||
| * [ AVP ] | * [ AVP ] | |||
| 0*1 < MAC > | 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 EAP- | |||
| Payload AVP. | Payload AVP. | |||
| PANA-Auth-Answer ::= < PANA-Header: 3 [,SEP] [,NAP] > | PANA-Auth-Answer ::= < PANA-Header: 3 [,SEP] [,NAP] > | |||
| < Session-Id > | < Session-Id > | |||
| [ Nonce ] | [ Nonce ] | |||
| [ EAP-Payload ] | [ EAP-Payload ] | |||
| [ Notification ] | [ Notification ] | |||
| * [ AVP ] | * [ AVP ] | |||
| 0*1 < MAC > | 0*1 < AUTH > | |||
| 7.6 PANA-Reauth-Request (PRAR) | 7.6. PANA-Reauth-Request (PRAR) | |||
| The PANA-Reauth-Request (PRAR) message is sent by the PaC to the PAA | The PANA-Reauth-Request (PRAR) message is sent by the PaC to the PAA | |||
| to re-initiate EAP authentication. | to re-initiate EAP authentication. | |||
| PANA-Reauth-Request ::= < PANA-Header: 4, REQ > | PANA-Reauth-Request ::= < PANA-Header: 4, REQ > | |||
| < Session-Id > | < Session-Id > | |||
| [ Notification ] | [ Notification ] | |||
| * [ AVP ] | * [ AVP ] | |||
| 0*1 < MAC > | 0*1 < AUTH > | |||
| 7.7 PANA-Reauth-Answer (PRAA) | 7.7. PANA-Reauth-Answer (PRAA) | |||
| The PANA-Reauth-Answer (PRAA) message is sent by the PAA to the PaC | The PANA-Reauth-Answer (PRAA) message is sent by the PAA to the PaC | |||
| in response to a PANA-Reauth-Request message. | in response to a PANA-Reauth-Request message. | |||
| PANA-Reauth-Answer ::= < PANA-Header: 4 > | PANA-Reauth-Answer ::= < PANA-Header: 4 > | |||
| < Session-Id > | < Session-Id > | |||
| [ Notification ] | [ Notification ] | |||
| * [ AVP ] | * [ AVP ] | |||
| 0*1 < MAC > | 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 [,SEP] [,NAP] > | |||
| < Session-Id > | < Session-Id > | |||
| { Result-Code } | { Result-Code } | |||
| [ PPAC ] | [ PPAC ] | |||
| [ EAP-Payload ] | [ EAP-Payload ] | |||
| [ Session-Lifetime ] | [ Session-Lifetime ] | |||
| [ Protection-Capability ] | [ Protection-Capability ] | |||
| [ Key-Id ] | [ Key-Id ] | |||
| [ Algorithm ] | ||||
| * [ Device-Id ] | * [ Device-Id ] | |||
| [ Notification ] | [ Notification ] | |||
| * [ AVP ] | * [ AVP ] | |||
| 0*1 < MAC > | 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 [,SEP] [,NAP] > | |||
| < Session-Id > | < Session-Id > | |||
| [ PPAC ] | [ PPAC ] | |||
| [ Device-Id ] | [ Device-Id ] | |||
| [ Key-Id ] | [ Key-Id ] | |||
| [ Notification ] | [ Notification ] | |||
| * [ AVP ] | * [ AVP ] | |||
| 0*1 < MAC > | 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 > | < Session-Id > | |||
| [ Notification ] | [ Notification ] | |||
| * [ AVP ] | * [ AVP ] | |||
| 0*1 < MAC > | 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 PANA- | |||
| Ping-Request. | Ping-Request. | |||
| PANA-Ping-Answer ::= < PANA-Header: 6 > | PANA-Ping-Answer ::= < PANA-Header: 6 > | |||
| < Session-Id > | < Session-Id > | |||
| [ Notification ] | [ Notification ] | |||
| * [ AVP ] | * [ AVP ] | |||
| 0*1 < MAC > | ||||
| 7.12 PANA-Termination-Request (PTR) | 0*1 < AUTH > | |||
| 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 > | < Session-Id > | |||
| < Termination-Cause > | < Termination-Cause > | |||
| [ Notification ] | [ Notification ] | |||
| * [ AVP ] | * [ AVP ] | |||
| 0*1 < MAC > | 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 > | < Session-Id > | |||
| [ Notification ] | [ Notification ] | |||
| * [ AVP ] | * [ AVP ] | |||
| 0*1 < MAC > | 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. | |||
| PANA-Error-Request ::= < PANA-Header: 8, REQ > | PANA-Error-Request ::= < PANA-Header: 8, REQ > | |||
| < Session-Id > | < Session-Id > | |||
| < Result-Code > | < Result-Code > | |||
| * [ Failed-AVP ] | * [ Failed-AVP ] | |||
| [ Notification ] | [ Notification ] | |||
| * [ AVP ] | * [ AVP ] | |||
| 0*1 < MAC > | 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 PANA- | |||
| Error-Request. | Error-Request. | |||
| PANA-Error-Answer ::= < PANA-Header: 8 > | PANA-Error-Answer ::= < PANA-Header: 8 > | |||
| < Session-Id > | < Session-Id > | |||
| [ Notification ] | [ Notification ] | |||
| * [ AVP ] | * [ AVP ] | |||
| 0*1 < MAC > | 0*1 < AUTH > | |||
| 7.16 PANA-FirstAuth-End-Request (PFER) | 7.16. PANA-FirstAuth-End-Request (PFER) | |||
| The PANA-FirstAuth-End-Request (PFER) message is sent by the PAA to | 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 | the PaC to signal the result of the first EAP authentication method | |||
| when separate NAP and ISP authentication is performed. | when separate NAP and ISP authentication is performed. | |||
| PANA-FirstAuth-End-Request ::= < PANA-Header: 9, REQ [,SEP] [,NAP] > | PANA-FirstAuth-End-Request ::= < PANA-Header: 9, REQ [,SEP] [,NAP] > | |||
| < Session-Id > | < Session-Id > | |||
| { Result-Code } | { Result-Code } | |||
| [ EAP-Payload ] | [ EAP-Payload ] | |||
| [ Key-Id ] | [ Key-Id ] | |||
| [ Algorithm ] | ||||
| [ Notification ] | [ Notification ] | |||
| * [ AVP ] | * [ AVP ] | |||
| 0*1 < MAC > | 0*1 < AUTH > | |||
| 7.17 PANA-FirstAuth-End-Answer (PFEA) | 7.17. PANA-FirstAuth-End-Answer (PFEA) | |||
| The PANA-FirstAuth-End-Answer (PFEA) message is sent by the PaC to | The PANA-FirstAuth-End-Answer (PFEA) message is sent by the PaC to | |||
| the PAA in response to a PANA-FirstAuth-End-Request message. | the PAA in response to a PANA-FirstAuth-End-Request message. | |||
| PANA-FirstAuth-End-Answer ::= < PANA-Header: 9, REQ [,SEP] [,NAP] > | PANA-FirstAuth-End-Answer ::= < PANA-Header: 9, REQ [,SEP] [,NAP] > | |||
| < Session-Id > | < Session-Id > | |||
| [ Key-Id ] | [ Key-Id ] | |||
| [ Notification ] | [ Notification ] | |||
| * [ AVP ] | * [ AVP ] | |||
| 0*1 < MAC > | 0*1 < AUTH > | |||
| 7.18 PANA-Update-Request (PUR) | 7.18. 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 and notifications. In the scope | |||
| of this specification only the PaC IP address can be updated via this | of this specification only the IP address and device identifer of the | |||
| mechanism. | PaC can be updated via this message. | |||
| PANA-Update-Request ::= < PANA-Header: 10, REQ > | PANA-Update-Request ::= < PANA-Header: 10, REQ > | |||
| < Session-Id > | < Session-Id > | |||
| [ Device-Id ] | ||||
| [ Notification ] | [ Notification ] | |||
| * [ AVP ] | * [ AVP ] | |||
| 0*1 < MAC > | 0*1 < AUTH > | |||
| 7.19 PANA-Update-Answer (PUA) | 7.19. 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: 10 > | |||
| < Session-Id > | < Session-Id > | |||
| * [ Device-Id ] | ||||
| [ Notification ] | [ Notification ] | |||
| * [ AVP ] | * [ AVP ] | |||
| 0*1 < MAC > | 0*1 < AUTH > | |||
| 8. AVPs in PANA | 8. AVPs in PANA | |||
| PANA defines several AVPs that are specific to the protocol. A | PANA defines several AVPs that are specific to the protocol. A | |||
| number of others AVPs are reused. These are specified in other | number of others AVPs are reused. These are specified in other | |||
| documents such as [RFC3588]. | documents such as [RFC3588]. | |||
| The following tables lists the AVPs used in this document, and | The following tables lists the AVPs used in this document, and | |||
| specifies in which PANA messages they MAY, or MAY NOT be present. | specifies in which PANA messages they MAY, or MAY NOT be present. | |||
| skipping to change at page 49, line 11 ¶ | skipping to change at page 49, line 11 ¶ | |||
| 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 |PDI|PSR|PSA|PAR|PAN|PRAR|PRAA|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 | | ||||
| 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 | | 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 | | 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 | | ISP-Information | 0 | 0+|0-1| 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 | | |||
| MAC | 0 | 0 | 0 |0-1|0-1|0-1 |0-1 |0-1|0-1|0-1|0-1| | ||||
| NAP-Information | 0 |0-1| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | NAP-Information | 0 |0-1| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | |||
| Nonce | 0 |0-1|0-1|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| | 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 | | 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 | | 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-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 10: AVP Occurrence Table (1/2) | |||
| +---------------------------------+ | +---------------------------------+ | |||
| | Message | | | Message | | |||
| | Type | | | Type | | |||
| +---+---+---+---+----+----+---+---+ | +---+---+---+---+----+----+---+---+ | |||
| Attribute Name |PTR|PTA|PER|PEA|PFER|PFEA|PUR|PUA| | Attribute Name |PTR|PTA|PER|PEA|PFER|PFEA|PUR|PUA| | |||
| ----------------------+---+---+---+---+----+----+---+---+ | ----------------------+---+---+---+---+----+----+---+---+ | |||
| Algorithm | 0 | 0 | 0 | 0 |0-1 | 0 | 0 | 0 | | ||||
| AUTH |0-1|0-1|0-1|0-1|0-1 |0-1 |0-1|0-1| | ||||
| Cookie | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | Cookie | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | |||
| Device-Id | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | Device-Id | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | |||
| EAP-Payload | 0 | 0 | 0 | 0 |0-1 | 0 | 0 | 0 | | EAP-Payload | 0 | 0 | 0 | 0 |0-1 | 0 | 0 | 0 | | |||
| Failed-AVP | 0 | 0 | 0+| 0 | 0 | 0 | 0 | 0 | | Failed-AVP | 0 | 0 | 0+| 0 | 0 | 0 | 0 | 0 | | |||
| ISP-Information | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | ISP-Information | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | |||
| Key-Id | 0 | 0 | 0 | 0 |0-1 |0-1 | 0 | 0 | | Key-Id | 0 | 0 | 0 | 0 |0-1 |0-1 | 0 | 0 | | |||
| MAC |0-1|0-1|0-1|0-1|0-1 |0-1 |0-1|0-1| | ||||
| NAP-Information | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | NAP-Information | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | |||
| Nonce | 0 | 0 | 0 | 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| | 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 | | PPAC | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | |||
| Protection-Capability | 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 | | Result-Code | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | | |||
| Session-Id | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | | Session-Id | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | | |||
| Session-Lifetime | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | Session-Lifetime | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | |||
| Termination-Cause | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | Termination-Cause | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | |||
| ----------------------+---+---+---+---+----+----+---+---+ | ----------------------+---+---+---+---+----+----+---+---+ | |||
| Figure 11: AVP Occurrence Table (2/2) | Figure 11: AVP Occurrence Table (2/2) | |||
| 8.1 Cookie AVP | 8.1. Algorithm AVP | |||
| The Cookie AVP (AVP Code 1) is used for carrying a random value | The Algorithm AVP (AVP Code 1) is used for conveying the pseudo- | |||
| generated by the PAA. The AVP data is of type OctetString. The | random function to derive PANA_AUTH_KEY and PaC-EP-Master-Key as well | |||
| random value is referred to as a cookie and used for making PAA | as the integrity algorithm to compute an AUTH AVP. The AVP data is | |||
| discovery robust against blind resource consumption DoS attacks. The | of type Unsigned32. | |||
| 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.2 Device-Id AVP | The first 16-bit of the AVP data contains an IKEv2 Transform ID of | |||
| Transform Type 2 [RFC4306] corresponding to the key derivation | ||||
| function. | ||||
| The Device-Id AVP (AVP Code 2) is used for carrying device | The last 16-bit of the AVP data contains an IKEv2 Transform ID of | |||
| Transform Type 3 [RFC4306] for the integrity algorithm. | ||||
| All PANA implementations MUST support PRF_HMAC_SHA1 (2) [RFC2104] for | ||||
| the key derivation algorithm and AUTH_HMAC_SHA1_160 (7) [ianaweb] | ||||
| corresponding to the integrity algorithm. | ||||
| 8.2. AUTH AVP | ||||
| The AUTH AVP (AVP Code 2) is used to integrity protect PANA messages. | ||||
| The AVP data payload contains the Message Authentication Code encoded | ||||
| in network byte order. The AVP length varies depending on the | ||||
| integrity algorithm specified in an Algorithm AVP. | ||||
| 8.3. Cookie 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 | identifiers of PaC and EP(s). The AVP data is of Address type | |||
| [RFC3588]. IPv4 and IPv6 addresses are encoded as specified in | [RFC3588]. IPv4 and IPv6 addresses are encoded as specified in | |||
| [RFC3588]. The content and format of data (including byte and bit | [RFC3588]. The content and format of data (including byte and bit | |||
| ordering) for link-layer addresses is expected to be specified in | ordering) for link-layer addresses is expected to be specified in | |||
| specific documents that describe how IP operates over different link- | specific documents that describe how IP operates over different link- | |||
| layers. For instance, [RFC2464]. Address families other than that | layers. For instance, [RFC2464]. Address families other than that | |||
| are defined for link-layer or IP addresses MUST NOT be used for this | are defined for link-layer or IP addresses MUST NOT be used for this | |||
| AVP. | AVP. | |||
| 8.3 EAP-Payload AVP | 8.5. EAP-Payload AVP | |||
| The EAP-Payload AVP (AVP Code 3) is used for encapsulating the actual | The EAP-Payload AVP (AVP Code 5) 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.4 Failed-AVP AVP | 8.6. Failed-AVP AVP | |||
| The Failed-AVP AVP (AVP Code 4) provides debugging information in | The Failed-AVP AVP (AVP Code 6) provides debugging information in | |||
| cases where a request is rejected or not fully processed due to | cases where a request 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 is defined in [RFC3588]. | |||
| 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.5 ISP-Information AVP | 8.7. ISP-Information AVP | |||
| The ISP-Information AVP (AVP Code 5) contains zero or one Provider- | The ISP-Information AVP (AVP Code 7) contains zero or one Provider- | |||
| Identifier AVP which carries the identifier of the ISP and one | 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 | Provider-Name AVP which carries the name of the ISP. The AVP data is | |||
| of type Grouped, and it has the following ABNF grammar: | of type Grouped, and it has the following ABNF grammar: | |||
| ISP-Information ::= < AVP Header: 5 > | ISP-Information ::= < AVP Header: 7 > | |||
| 0*1 { Provider-Identifier } | 0*1 { Provider-Identifier } | |||
| { Provider-Name } | { Provider-Name } | |||
| * [ AVP ] | * [ AVP ] | |||
| 8.6 Key-Id AVP | 8.8. Key-Id AVP | |||
| The Key-Id AVP (AVP Code 6) is of type Integer32, and contains an | 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 | AAA-Key identifier. The AAA-Key identifier is assigned by PAA and | |||
| MUST be unique within the PANA session. | MUST be unique within the PANA session. | |||
| 8.7 MAC AVP | 8.9. NAP-Information AVP | |||
| The MAC (Message Authentication Code) AVP is used to integrity | ||||
| protect PANA messages. The first octet of the this AVP (AVP Code 7) | ||||
| data contains the MAC algorithm type. Rest of the AVP data payload | ||||
| contains the MAC encoded in network byte order. The 8-bit Algorithm | ||||
| name space is managed by IANA [ianaweb]. The AVP length varies | ||||
| depending on the used algorithm. | ||||
| 0 1 2 3 | ||||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Algorithm | MAC... | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Algorithm | ||||
| 1 HMAC-SHA1 (20 bytes) | ||||
| MAC | ||||
| The Message Authentication Code is encoded in network byte order. | ||||
| 8.8 NAP-Information AVP | ||||
| The NAP-Information AVP (AVP Code 8) contains zero or one Provider- | The NAP-Information AVP (AVP Code 9) contains zero or one Provider- | |||
| Identifier AVP which carries the identifier of the NAP and one | 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 | Provider-Name AVP which carries the name of the NAP. The AVP data is | |||
| of type Grouped, and it has the following ABNF grammar: | of type Grouped, and it has the following ABNF grammar: | |||
| NAP-Information ::= < AVP Header: 8 > | NAP-Information ::= < AVP Header: 9 > | |||
| 0*1 { Provider-Identifier } | 0*1 { Provider-Identifier } | |||
| { Provider-Name } | { Provider-Name } | |||
| * [ AVP ] | * [ AVP ] | |||
| 8.9 Nonce AVP | 8.10. Nonce AVP | |||
| The Nonce AVP (AVP Code 9) carries a randomly chosen value that is | The Nonce AVP (AVP Code 10) carries a randomly chosen value that is | |||
| used in cryptographic key computations. The AVP data is of type | used in cryptographic key computations. The recommendations in | |||
| OctetString and it contains a randomly generated value in opaque | [RFC4086] apply with regard to generation of random values. The AVP | |||
| format. The data length MUST be between 8 and 256 bytes inclusive. | data is of type OctetString and it contains a randomly generated | |||
| value in opaque format. The data length MUST be between 8 and 256 | ||||
| octets inclusive. | ||||
| 8.10 Notification AVP | The length of the nonces are determined based on the available | |||
| 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 | ||||
| random value for the nonce is determined whether | ||||
| The Notification AVP (AVP Code 10) is optionally used to convey a | 1. The PaC and the PAA each are likely to be able to compute a | |||
| random nonce (according to [RFC4086]). The length of the nonce | ||||
| has to be 1/2 the length of the PRF key (e.g., 10 octets in the | ||||
| case of HMAC-SHA1). | ||||
| 2. The PaC and the PAA each are not trusted with regard to the | ||||
| 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 | ||||
| octets in the case of HMAC-SHA1). | ||||
| Furthermore, the strongest available PRF available for PANA has to be | ||||
| considered in this computation. Currently, only a single PRF (namely | ||||
| HMAC-SHA1) is available and therefore the maximum output length is 20 | ||||
| octets). The recommended maximum length of the nonce value is | ||||
| therefore currently 20 octets. | ||||
| 8.11. Notification 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 | 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 | 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 | 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 | to deliver this AVP, a PANA-Update-Request that only carries a | |||
| Notification AVP SHOULD be generated. | Notification AVP SHOULD be generated. | |||
| The 'M' bit in the AVP header of this AVP MUST NOT be set. | The 'M' bit in the AVP header of this AVP MUST NOT be set. | |||
| Receipt this AVP does not change PANA state. | Receipt this AVP does not change PANA state. | |||
| AVP data is of type OctetString and it contains UTF-8 encoded ISO | AVP data is of type OctetString and it contains the following fields | |||
| 10646 characters [RFC2279]. The length of the displayable message is | in the listed order: | |||
| determined by the AVP Length field. The message MUST NOT be null | ||||
| terminated. | ||||
| 8.11 Post-PANA-Address-Configuration (PPAC) AVP | Language Tag Length | |||
| The PPAC AVP (AVP Code 11) is used for conveying the available types | 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 | of post-PANA IP address configuration mechanisms when sent by the | |||
| PAA, and the chosen one when sent by the PaC. Each possible | PAA, and the chosen one when sent by the PaC. Each possible | |||
| mechanisms is represented by a flag. The AVP data is of type | mechanisms is represented by a flag. The AVP data is of type | |||
| Unsigned32. | Unsigned32. | |||
| The format of the AVP data is as follows: | The format of the AVP data is as follows: | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| skipping to change at page 54, line 4 ¶ | skipping to change at page 54, line 36 ¶ | |||
| The PaC can (if sent by PAA) or will (if sent by PaC) use | The PaC can (if sent by PAA) or will (if sent by PaC) use | |||
| DHCPv6 [RFC3315] to configure a new IPv4 address after PANA. | DHCPv6 [RFC3315] to configure a new IPv4 address after PANA. | |||
| A (stateless autoconfiguration) | A (stateless autoconfiguration) | |||
| The PaC can/will use stateless IPv6 address autoconfiguration | The PaC can/will use stateless IPv6 address autoconfiguration | |||
| [RFC2462] to configure a new IPv6 address after PANA. | [RFC2462] to configure a new IPv6 address after PANA. | |||
| T (DHCPv4 with IPsec tunnel mode) | T (DHCPv4 with IPsec tunnel mode) | |||
| The PaC can/will use [RFC3456] to configure a new IPv4 address | The PaC can/will use [RFC3456] to configure a new IPv4 address | |||
| after PANA. | after PANA. | |||
| I (IKEv2) | I (IKEv2) | |||
| The PaC can/will use [I-D.ietf-ipsec-ikev2] to configure (a) | The PaC can/will use [RFC4306] to configure (a) new IPv4 and/or | |||
| new IPv4 and/or IPv6 address(es) after PANA. | IPv6 address(es) after PANA. | |||
| Reserved | Reserved | |||
| 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. | |||
| The PAA MUST set either the N-flag, or one or more of the other | 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 | 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 | 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. | 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 | 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) | 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 | in its response. Refer to [I-D.ietf-pana-framework] for a detailed | |||
| discussion on when these methods can be used. | discussion on when these methods can be used. | |||
| 8.12 Protection-Capability AVP | 8.13. Protection-Capability AVP | |||
| The Protection-Capability AVP (AVP Code 12) indicates the | The Protection-Capability AVP (AVP Code 13) indicates the | |||
| cryptographic data protection capability supported and required by | cryptographic data protection capability supported and required by | |||
| the EPs. The AVP data is of type Unsigned32. Below is a list of | the EPs. The AVP data is of type Unsigned32. Below is a list of | |||
| valid data values and associated protection capabilities: | valid data values and associated protection capabilities: | |||
| 0 L2_PROTECTION | 0 L2_PROTECTION | |||
| 1 IPSEC_PROTECTION | 1 IPSEC_PROTECTION | |||
| 8.13 Provider-Identifier AVP | 8.14. Provider-Identifier AVP | |||
| The Provider-Identifier AVP (AVP Code 13) is of type Unsigned32, and | The Provider-Identifier AVP (AVP Code 14) is of type Unsigned32, and | |||
| contains an IANA assigned "SMI Network Management Private Enterprise | contains an IANA assigned "SMI Network Management Private Enterprise | |||
| Codes" [ianaweb] value, encoded in network byte order. | Codes" [ianaweb] value, encoded in network byte order. | |||
| 8.14 Provider-Name AVP | 8.15. Provider-Name AVP | |||
| The Provider-Name AVP (AVP Code 14) is of type UTF8String, and | The Provider-Name AVP (AVP Code 15) is of type UTF8String, and | |||
| contains the UTF8-encoded name of the provider. | contains the UTF8-encoded name of the provider. | |||
| 8.15 Result-Code AVP | 8.16. Result-Code AVP | |||
| The Result-Code AVP (AVP Code 15) is of type Unsigned32 and indicates | The Result-Code AVP (AVP Code 16) is of type Unsigned32 and indicates | |||
| whether an EAP authentication was completed successfully or whether | whether an EAP authentication was completed successfully or whether | |||
| an error occurred. Here are Result-Code AVP values taken from | an error occurred. Here are Result-Code AVP values taken from | |||
| [RFC3588] and adapted for PANA. | [RFC3588] and adapted for PANA. | |||
| 8.15.1 Authentication Results Codes | 8.16.1. Authentication Results Codes | |||
| These result code values inform the PaC about the authentication and | These result code values inform the PaC about the authentication and | |||
| authorization result. The authentication result and authorization | authorization result. The authentication result and authorization | |||
| result can be different as described below, but only one result 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 and | |||
| PANA-FirstAuth-End-Request messages. | PANA-FirstAuth-End-Request messages. | |||
| PANA_SUCCESS 2001 | PANA_SUCCESS 2001 | |||
| Both authentication and authorization processes are successful. | Both authentication and authorization processes are successful. | |||
| skipping to change at page 55, line 30 ¶ | skipping to change at page 56, line 16 ¶ | |||
| 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 5003 | |||
| 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.15.2 Protocol Error Result Codes | 8.16.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 3001 | |||
| Message type not recognized or supported. | Message type not recognized or supported. | |||
| PANA_UNABLE_TO_DELIVER 3002 | PANA_UNABLE_TO_DELIVER 3002 | |||
| skipping to change at page 57, line 45 ¶ | skipping to change at page 58, line 32 ¶ | |||
| offending AVPs within a Failed-AVP AVP. | offending AVPs within a Failed-AVP AVP. | |||
| PANA_INVALID_MESSAGE_LENGTH 5015 | PANA_INVALID_MESSAGE_LENGTH 5015 | |||
| 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 | PANA_PROTECTION_CAPABILITY_UNSUPPORTED 5016 | |||
| This error is returned when the PaC receives a PANA-Bind-Request | This error is returned when the PaC receives a PANA-Bind-Request | |||
| message with a Protection-Capability AVP and a valid MAC AVP but | message with a Protection-Capability AVP and a valid AUTH AVP but | |||
| does not support the protection capability specified in the | does not support the protection capability specified in the | |||
| Protection-Capability AVP. Only the PaC can generate this code. | Protection-Capability AVP. Only the PaC can generate this code. | |||
| PANA_PPAC_CAPABILITY_UNSUPPORTED 5017 | PANA_PPAC_CAPABILITY_UNSUPPORTED 5017 | |||
| This error is returned when there is no match between the list of | 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. | PPAC methods offered by the PAA and the ones available on the PaC. | |||
| Only the PaC can generate this code. | Only the PaC can generate this code. | |||
| 8.16 Session-Id AVP | 8.17. Session-Id AVP | |||
| All messages pertaining to a specific PANA session MUST include a | All messages pertaining to a specific PANA session MUST include a | |||
| Session-Id AVP (AVP Code 16) which carries a PAA-assigned fixed | Session-Id AVP (AVP Code 17) which carries a PAA-assigned fixed | |||
| session identifier value throughout the lifetime of a session. When | session identifier value throughout the lifetime of a session. When | |||
| present, the Session-Id AVP SHOULD appear immediately following the | present, the Session-Id AVP MUST appear immediately following the | |||
| PANA header. | PANA header. | |||
| The Session-Id MUST be globally and eternally unique, as it is meant | The Session-Id MUST be globally and eternally unique, as it is meant | |||
| to identify a PANA session without reference to any other | to identify a PANA session without reference to any other | |||
| information, and may be needed to correlate historical authentication | information, and may be needed to correlate historical authentication | |||
| information with accounting information. The PANA Session-Id AVP has | information with accounting information. The PANA Session-Id AVP has | |||
| the same format as the Diameter Session-Id AVP [RFC3588]. | the same format as the Diameter Session-Id AVP [RFC3588]. | |||
| 8.17 Session-Lifetime AVP | 8.18. Session-Lifetime AVP | |||
| The Session-Lifetime AVP (AVP Code 17) contains the number of seconds | The Session-Lifetime AVP (AVP Code 18) 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.18 Termination-Cause AVP | 8.19. Termination-Cause AVP | |||
| The Termination-Cause AVP (AVP Code 18) is used for indicating the | The Termination-Cause AVP (AVP Code 19) 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) | |||
| skipping to change at page 60, line 33 ¶ | skipping to change at page 61, line 33 ¶ | |||
| once MRD seconds have elapsed since the client first transmitted the | once MRD seconds have elapsed since the client first transmitted the | |||
| message. | message. | |||
| If both MRC and MRD are non-zero, the message exchange fails whenever | If both MRC and MRD are non-zero, the message exchange fails whenever | |||
| either of the conditions specified in the previous two paragraphs are | either of the conditions specified in the previous two paragraphs are | |||
| met. | met. | |||
| If both MRC and MRD are zero, the client continues to transmit the | If both MRC and MRD are zero, the client continues to transmit the | |||
| message until it receives a response. | message until it receives a response. | |||
| 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 and answers that are | |||
| retransmitted (REQ_*) and PANA-PAA-Discover message (PDI_*). The | retransmitted (REQ_*) and PANA-PAA-Discover message (PDI_*). The | |||
| table shows default values. | table shows default values. | |||
| Parameter Default Description | Parameter Default Description | |||
| ------------------------------------------------ | ------------------------------------------------ | |||
| PDI_IRT 1 sec Initial PDI timeout. | PDI_IRT 1 sec Initial PDI timeout. | |||
| PDI_MRT 120 secs Max PDI timeout value. | PDI_MRT 120 secs Max PDI timeout value. | |||
| skipping to change at page 62, line 30 ¶ | skipping to change at page 63, line 30 ¶ | |||
| Required, the request is posted to the PANA WG mailing list (or, if | Required, the request is posted to the PANA WG mailing list (or, if | |||
| it has been disbanded, a successor designated by the Area Director) | it has been disbanded, a successor designated by the Area Director) | |||
| for comment and review, and MUST include a pointer to a public | for comment and review, and MUST include a pointer to a public | |||
| specification. Before a period of 30 days has passed, the Designated | specification. Before a period of 30 days has passed, the Designated | |||
| Expert will either approve or deny the registration request and | Expert will either approve or deny the registration request and | |||
| publish a notice of the decision to the PANA WG mailing list or its | publish a notice of the decision to the PANA WG mailing list or its | |||
| successor. A denial notice must be justified by an explanation and, | successor. A denial notice must be justified by an explanation and, | |||
| in the cases where it is possible, concrete suggestions on how the | in the cases where it is possible, concrete suggestions on how the | |||
| request can be modified so as to become acceptable. | request can be modified so as to become acceptable. | |||
| 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 Multicast Address | |||
| PANA uses one well-known administratively scoped IPv4 multicast | PANA uses one well-known administratively scoped IPv4 multicast | |||
| address, and one well-known administratively scoped IPv6 multicast | address, and one well-known administratively scoped IPv6 multicast | |||
| address (Section 4.3 and Section 6.1), which need to be assigned by | address (Section 4.3 and Section 6.1), which need to be assigned by | |||
| the IANA. | the IANA. | |||
| 10.3 PANA Header | 10.3. PANA Header | |||
| As defined in Section 6.2, the PANA header contains two fields that | As defined in Section 6.2, the PANA header contains two fields that | |||
| requires IANA namespace management; the Message Type and Flags field. | requires IANA namespace management; the Message Type and Flags field. | |||
| 10.3.1 Message Type | 10.3.1. Message Type | |||
| The Message Type namespace is used to identify PANA messages. Values | The Message Type namespace is used to identify PANA messages. Values | |||
| 0-65,533 are for permanent, standard message types, allocated by IETF | 0-65,533 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-10. See | |||
| Section 7.1 through Section 7.19 for the assignment of the namespace | Section 7.1 through Section 7.19 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,534 and 65,535 (hexadecimal values 0xfffe - 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.3.2. 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 header. This | |||
| document assigns bit 0 ('R'equest), bit 1 ('S'eparate) and bit 2 | document assigns bit 0 ('R'equest), bit 1 ('S'eparate) and bit 2 | |||
| ('N'AP Authentication). The remaining bits MUST only be assigned via | ('N'AP Authentication). The remaining bits MUST only be assigned via | |||
| a Standards Action [IANA]. | a Standards Action [IANA]. | |||
| 10.4 AVP Header | 10.4. 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.4.1. AVP Code | |||
| The AVP Code namespace is used to identify attributes. There are | The AVP Code namespace is used to identify attributes. There are | |||
| multiple namespaces. Vendors can have their own AVP Codes namespace | multiple namespaces. Vendors can have their own AVP Codes namespace | |||
| which will be identified by their Vendor-ID (also known as | 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 vendor- | |||
| specific AVP codes within their own namespace. The absence of a | specific AVP codes within their own namespace. The absence of a | |||
| Vendor-ID or a Vendor-ID value of zero (0) identifies the IETF IANA | Vendor-ID or a Vendor-ID value of zero (0) identifies the IETF IANA | |||
| controlled AVP Codes namespace. The AVP Codes and sometimes also | controlled AVP Codes namespace. The AVP Codes and sometimes also | |||
| possible values in an AVP are controlled and maintained by IANA. | possible values in an AVP are controlled and maintained by IANA. | |||
| AVP Code 0 is not used. This document defines the AVP Codes 1-18. | AVP Code 0 is not used. This document defines the AVP Codes 1-19. | |||
| See Section 8.1 through Section 8.18 for the assignment of the | See Section 8.1 through Section 8.19 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]. Release of blocks of AVPs (more than 3 at a time | |||
| for a given purpose) should require IETF Consensus. | for a given purpose) should require IETF Consensus. | |||
| 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.4.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.5. 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 Algorithm Values of MAC AVP | 10.5.1. Post-PANA-Address-Configuration AVP Values | |||
| As defined in Section 8.7, the Algorithm field of MAC AVP (AVP Code | ||||
| 7) defines the value of 1 (one) for HMAC-SHA1. | ||||
| All remaining values are available for assignment via IETF Consensus | ||||
| [IANA]. | ||||
| 10.5.2 Post-PANA-Address-Configuration AVP Values | ||||
| As defined in Section 8.11, the Post-PANA-Address-Configuration AVP | As defined in Section 8.12, the Post-PANA-Address-Configuration AVP | |||
| (AVP Code 11) defines the bits 0 ('N': no configuration), 1 ('F': | (AVP Code 12) defines the bits 0 ('N': no configuration), 1 ('F': | |||
| DHCPv4), 2 ('S': DHCPv6), 3 ('A' stateless autoconfiguration), 4 | DHCPv4), 2 ('S': DHCPv6), 3 ('A' stateless autoconfiguration), 4 | |||
| ('T': DHCPv4 with IPsec tunnel mode) and 5 ('I': IKEv2). | ('T': DHCPv4 with IPsec tunnel mode) and 5 ('I': IKEv2). | |||
| All remaining values are available for assignment via a Standards | All remaining values are available for assignment via a Standards | |||
| Action [IANA]. | Action [IANA]. | |||
| 10.5.3 Protection-Capability AVP Values | 10.5.2. Protection-Capability AVP Values | |||
| As defined in Section 8.12, the Protection-Capability AVP (AVP Code | As defined in Section 8.13, the Protection-Capability AVP (AVP Code | |||
| 12) defines the values 0 and 1. | 13) defines the values 0 and 1. | |||
| All remaining values are available for assignment via a Standards | All remaining values are available for assignment via a Standards | |||
| Action [IANA]. | Action [IANA]. | |||
| 10.5.4 Result-Code AVP Values | 10.5.3. Result-Code AVP Values | |||
| As defined in Section 8.15.1 and Section 8.15.2 the Result-Code AVP | As defined in Section 8.16.1 and Section 8.16.2 the Result-Code AVP | |||
| (AVP Code 15) defines the values 2001, 3001-3002, 3008-3009, 4001, | (AVP Code 16) defines the values 2001, 3001-3002, 3008-3009, 4001, | |||
| 5001-5009 and 5011-5017. | 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.5 Termination-Cause AVP Values | 10.5.4. Termination-Cause AVP Values | |||
| As defined in Section 8.18, the Termination-Cause AVP (AVP Code 18) | As defined in Section 8.19, the Termination-Cause AVP (AVP Code 19) | |||
| 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 66, line 27 ¶ | skipping to change at page 67, line 27 ¶ | |||
| link-layer) security. In the context of this document, lower-layers | link-layer) security. In the context of this document, lower-layers | |||
| are said to be secure if they can prevent eavesdropping and spoofing | are said to be secure if they can prevent eavesdropping and spoofing | |||
| of packets. Examples of such networks are physically-secured DSL | of packets. Examples of such networks are physically-secured DSL | |||
| networks and 3GPP2 networks with cryptographically-secured cdma2000 | networks and 3GPP2 networks with cryptographically-secured cdma2000 | |||
| link-layer. In these examples, the lower-layer security is enabled | link-layer. In these examples, the lower-layer security is enabled | |||
| even before running the first PANA-based authentication. In the | even before running the first PANA-based authentication. In the | |||
| absence of such a pre-established secure channel, one needs to be | absence of such a pre-established secure channel, one needs to be | |||
| created in conjunction with PANA using a link-layer or network-layer | created in conjunction with PANA using a link-layer or network-layer | |||
| cryptographic mechanism (e.g., IPsec). | cryptographic mechanism (e.g., IPsec). | |||
| 11.1 General Security Measures | 11.1. General Security Measures | |||
| PANA provides multiple mechanisms to secure a PANA session. | PANA provides multiple mechanisms to secure a PANA session. | |||
| PANA messages carry sequence numbers, which are monotonically | PANA messages carry sequence numbers, which are monotonically | |||
| incremented by 1 with every new request message. These numbers are | incremented by 1 with every new request message. These numbers are | |||
| randomly initialized at the beginning of the session, and verified | randomly initialized at the beginning of the session, and verified | |||
| against expected numbers upon receipt. A message whose sequence | against expected numbers upon receipt. A message whose sequence | |||
| number is different than the expected one is silently discarded. In | number is different than the expected one is silently discarded. In | |||
| addition to accomplishing orderly delivery of EAP messages and | addition to accomplishing orderly delivery of EAP messages and | |||
| duplicate elimination, this scheme also helps prevent an adversary | duplicate elimination, this scheme also helps prevent an adversary | |||
| skipping to change at page 67, line 8 ¶ | skipping to change at page 68, line 8 ¶ | |||
| 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 AAA-Key exported | |||
| by the EAP method. This SA is used for generating per-packet MAC to | by the EAP method. This SA is used for generating an AUTH AVP to | |||
| protect the PANA header and payload (including the complete EAP | protect the PANA header and payload (including the complete EAP | |||
| message). | message). | |||
| The cryptographic protection prevents an adversary from acting as a | The cryptographic protection prevents an adversary from acting as a | |||
| man-in-the-middle, injecting messages, replaying messages and | man-in-the-middle, injecting messages, replaying messages and | |||
| modifying the content of the exchanged messages. Any packet that | modifying the content of the exchanged messages. Any packet that | |||
| fails to pass the MAC verification is silently discarded. The | fails to pass the 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 PANA- | |||
| Bind-Request or PANA-FirstAuth-End-Request message that signals a | Bind-Request or PANA-FirstAuth-End-Request message that signals a | |||
| successful authentication is generated. Starting with these | successful authentication is generated. Starting with these | |||
| messages, any subsequent PANA message until the session gets torn | messages, any subsequent PANA message 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 PANA SA enables authenticated and integrity protected exchange of | |||
| the device ID information between the PaC and PAA. This ensures | the device ID information between the PaC and PAA. This ensures | |||
| there were no man-in-the-middle during the PANA authentication. | there were no man-in-the-middle during the PANA authentication. | |||
| skipping to change at page 67, line 39 ¶ | skipping to change at page 68, line 39 ¶ | |||
| 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. Discovery | |||
| The discovery and handshake phase is vulnerable to spoofing attacks | The discovery and handshake phase is vulnerable to spoofing attacks | |||
| as these messages are not authenticated and integrity protected. In | as these messages are not authenticated and integrity protected. In | |||
| order to prevent very basic denial-of service attacks an adversary | order to prevent very basic denial-of service attacks an adversary | |||
| should not be able to cause state creation by sending discovery | should not be able to cause state creation by sending discovery | |||
| messages to the PAA. This protection is achieved by using a cookie- | messages to the PAA. This protection is achieved by using a cookie- | |||
| based scheme (similar to [RFC2522] which allows the responder (PAA) | based scheme (similar to [RFC2522] which allows the responder (PAA) | |||
| to be stateless in the first round of message exchange. However, it | to be stateless in the first round of message exchange. However, it | |||
| is difficult to prevent all spoofing attacks in the discovery and | is difficult to prevent all spoofing attacks in the discovery and | |||
| 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 Protection- | |||
| Capability and Post-PANA-Address-Configuration AVPs in a PANA-Start- | Capability and Post-PANA-Address-Configuration AVPs in a PANA-Start- | |||
| Request message is susceptible to spoofing leading to denial-of | Request message is susceptible to spoofing leading to denial-of | |||
| service attacks. Therefore, usage of these AVPs during the discovery | service attacks. Therefore, usage of these AVPs during the discovery | |||
| and handshake phase in such insecure networks is NOT RECOMMENDED. | and handshake phase in such insecure networks is NOT RECOMMENDED. | |||
| The same AVPs are delivered via an integrity-protected PANA-Bind- | The same AVPs are delivered via an integrity-protected 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. Separate NAP and ISP Authentication | |||
| The PANA design allows running two separate EAP sessions for the same | The PANA design allows running two separate EAP sessions for the same | |||
| PaC in the authentication and authorization phase: one with the NAP, | PaC in the authentication and authorization phase: one with the NAP, | |||
| and one with the ISP. The process of arriving at the resultant | and one with the ISP. The process of arriving at the resultant | |||
| authorization, which is a combination of the individual | authorization, which is a combination of the individual | |||
| authorizations obtained from respective service providers, is outside | authorizations obtained from respective service providers, is outside | |||
| the scope of this protocol. In the absence of lower-layer security, | the scope of this protocol. In the absence of lower-layer security, | |||
| both authentications MUST be able to generate a AAA-Key, leading to | both authentications MUST be able to generate a AAA-Key, leading to | |||
| generation of a PANA SA. The resultant PANA SA cryptographically | generation of a PANA SA. The resultant PANA SA cryptographically | |||
| binds the two AAA-Keys together, hence it prevents man-in-the-middle | binds the two AAA-Keys together, hence it prevents man-in-the-middle | |||
| attacks. | attacks. | |||
| 11.5 Cryptographic Keys | 11.5. Cryptographic Keys | |||
| When the EAP method exports a AAA-Key, this key is used to produce a | When the EAP method exports a AAA-Key, this key is used to produce a | |||
| PANA SA with PANA_MAC_KEY with a distinct key ID. The PANA_MAC_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 AAA-Key. | |||
| The PANA_MAC_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 | Two AAA-Keys may be generated as a result of separate NAP and ISP | |||
| authentication. In that case, the AAA-Key used with the PANA SA is | authentication. In that case, the AAA-Key used with the PANA SA is | |||
| the combination of both keys. | the combination of both keys. | |||
| The PANA SA lifetime is bounded by the AAA-Key lifetime. Another | 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 | execution of EAP method yields in a new AAA-Key, and updates the PANA | |||
| SA, PANA_MAC_KEY and key ID. | SA, PANA_AUTH_KEY and key ID. | |||
| When link-layer or network-layer ciphering [I-D.ietf-pana-ipsec] is | When link-layer or network-layer ciphering [I-D.ietf-pana-ipsec] is | |||
| enabled as a result of successful PANA authentication, a PaC-EP- | enabled as a result of successful PANA authentication, a PaC-EP- | |||
| Master-Key is generated for each EP from the AAA-Key, session | Master-Key is generated for each EP from the AAA-Key, session | |||
| identifier, key identifier, and the EP device identifier. The PaC- | identifier, key identifier, and the EP device identifier. The PaC- | |||
| EP-Master-Key derivation algorithm defined in Section 5.6 ensures | EP-Master-Key derivation algorithm defined in Section 5.6 ensures | |||
| cryptographic independency among different PaC-EP-Master-Keys. | cryptographic independency among different PaC-EP-Master-Keys. | |||
| The lifetime of PaC-EP master key is bounded by the lifetime of the | 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 | PANA SA. This key may be used with a secure association protocol | |||
| [I-D.ietf-ipsec-ikev2] to produce further cipher-specific and | [RFC4306] to produce further cipher-specific and transient keys. | |||
| transient keys. | ||||
| 11.6 Per-packet Ciphering | 11.6. Per-packet Ciphering | |||
| Networks that are not secured at the lower-layers prior to running | Networks that are not secured at the lower-layers prior to running | |||
| PANA can rely on enabling per-packet data traffic ciphering upon | PANA can rely on enabling per-packet data traffic ciphering upon | |||
| successful PANA session establishment. The PANA framework allows | successful PANA session establishment. The PANA framework allows | |||
| generation of a PaC-EP master key from AAA-Key for using with a per- | generation of a PaC-EP master key from AAA-Key for using with a per- | |||
| packet protection mechanism, such as link-layer or IPsec-based | packet protection mechanism, such as link-layer or IPsec-based | |||
| ciphering [I-D.ietf-pana-ipsec]. In case the master key is not | ciphering [I-D.ietf-pana-ipsec]. In case the master key is not | |||
| readily useful to the ciphering mechanism, an additional secure | readily useful to the ciphering mechanism, an additional secure | |||
| association protocol [I-D.ietf-ipsec-ikev2] may be needed to produce | association protocol [RFC4306] may be needed to produce the required | |||
| the required keying material. These mechanisms ultimately establish | keying material. These mechanisms ultimately establish a | |||
| a cryptographic binding between the data traffic generated by and for | cryptographic binding between the data traffic generated by and for a | |||
| 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. | |||
| 11.7 PAA-to-EP Communication | 11.7. PAA-to-EP Communication | |||
| The PANA framework allows separation of PAA from EP(s). SNMPv3 | The PANA framework allows separation of PAA from EP(s). SNMPv3 | |||
| [I-D.ietf-pana-snmp] is used between the PAA and EP for provisioning | [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 | authorized PaC information on the EP. This exchange MUST be always | |||
| physically or cryptographically protected for authentication, | physically or cryptographically protected for authentication, | |||
| integrity and replay protection. It MUST also be privacy-protected | integrity and replay protection. It MUST also be privacy-protected | |||
| when PaC-EP master key for per-packet ciphering is transmitted to the | when PaC-EP master key for per-packet ciphering is transmitted to the | |||
| EP. | EP. | |||
| The PaC-EP master key MUST be unique to the PaC and EP pair. The | The PaC-EP master key MUST be unique to the PaC and EP pair. The | |||
| skipping to change at page 70, line 4 ¶ | skipping to change at page 70, line 51 ¶ | |||
| [I-D.ietf-pana-snmp] is used between the PAA and EP for provisioning | [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 | authorized PaC information on the EP. This exchange MUST be always | |||
| physically or cryptographically protected for authentication, | physically or cryptographically protected for authentication, | |||
| integrity and replay protection. It MUST also be privacy-protected | integrity and replay protection. It MUST also be privacy-protected | |||
| when PaC-EP master key for per-packet ciphering is transmitted to the | when PaC-EP master key for per-packet ciphering is transmitted to the | |||
| EP. | EP. | |||
| The PaC-EP master key MUST be unique to the PaC and EP pair. The | The PaC-EP master key MUST be unique to the PaC and EP pair. The | |||
| session identifier and the device identifier of the EP are taken into | session identifier and the device identifier of the EP are taken into | |||
| computation for achieving this effect [I-D.ietf-pana-ipsec]. | computation for achieving this effect [I-D.ietf-pana-ipsec]. | |||
| Compromise of an EP does not automatically lead to compromise of | Compromise of an EP does not automatically lead to compromise of | |||
| another EP or the PAA. | another EP or the PAA. | |||
| 11.8 Liveness Test | 11.8. 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 70, line 35 ¶ | 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.9. Updating PaC's IP Address | |||
| There is no way to prove the ownership of the IP address presented by | There is no way to prove the ownership of the IP address presented by | |||
| the PaC. Hence an authorized PaC can launch a redirect attack by | the PaC. Hence an authorized PaC can launch a redirect attack by | |||
| spoofing a victim's IP address. | spoofing a victim's IP address. | |||
| 11.10 Early Termination of a Session | 11.10. 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 Jari Arkko, Mohan Parthasarathy, Julien | |||
| Bournelle, Rafael Marin Lopez, Pasi Eronen, Randy Turner, Erik | Bournelle, Rafael Marin Lopez, Pasi Eronen, Randy Turner, Erik | |||
| Nordmark, Lionel Morand, Avi Lior, Susan Thomson, Giaretta Gerardo, | Nordmark, Lionel Morand, Avi Lior, Susan Thomson, Giaretta Gerardo, | |||
| Joseph Salowey and all members of the PANA working group for their | Joseph Salowey, Sasikanth Bharadwaj and all members of the PANA | |||
| valuable comments to this document. | working group for their valuable comments to this document. | |||
| 13. References | 13. References | |||
| 13.1 Normative References | 13.1. Normative References | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, March 1997. | Requirement Levels", BCP 14, RFC 2119, March 1997. | |||
| [RFC2131] Droms, R., "Dynamic Host Configuration Protocol", | [RFC2131] Droms, R., "Dynamic Host Configuration Protocol", | |||
| RFC 2131, March 1997. | 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, | [RFC2365] Meyer, D., "Administratively Scoped IP Multicast", BCP 23, | |||
| RFC 2365, July 1998. | RFC 2365, July 1998. | |||
| [RFC2462] Thomson, S. and T. Narten, "IPv6 Stateless Address | [RFC2462] Thomson, S. and T. Narten, "IPv6 Stateless Address | |||
| Autoconfiguration", RFC 2462, December 1998. | Autoconfiguration", RFC 2462, December 1998. | |||
| [RFC2464] Crawford, M., "Transmission of IPv6 Packets over Ethernet | [RFC2464] Crawford, M., "Transmission of IPv6 Packets over Ethernet | |||
| Networks", RFC 2464, December 1998. | Networks", RFC 2464, December 1998. | |||
| [RFC2988] Paxson, V. and M. Allman, "Computing TCP's Retransmission | [RFC2988] Paxson, V. and M. Allman, "Computing TCP's Retransmission | |||
| skipping to change at page 72, line 45 ¶ | skipping to change at page 73, line 48 ¶ | |||
| Host Configuration Protocol (DHCPv4) Configuration of | Host Configuration Protocol (DHCPv4) Configuration of | |||
| IPsec Tunnel Mode", RFC 3456, January 2003. | IPsec Tunnel Mode", RFC 3456, January 2003. | |||
| [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 | ||||
| Requirements for Security", BCP 106, RFC 4086, June 2005. | ||||
| [I-D.ietf-ltru-registry] | ||||
| Phillips, A. and M. Davis, "Tags for Identifying | ||||
| Languages", draft-ietf-ltru-registry-14 (work in | ||||
| progress), October 2005. | ||||
| [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 | [RFC2522] Karn, P. and W. Simpson, "Photuris: Session-Key Management | |||
| Protocol", RFC 2522, March 1999. | Protocol", RFC 2522, March 1999. | |||
| [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, | ||||
| "State Machines for Extensible Authentication Protocol | ||||
| (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", | ||||
| 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-06 (work in | Management Framework", draft-ietf-eap-keying-09 (work in | |||
| progress), April 2005. | progress), January 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., "PANA Framework", | |||
| draft-ietf-pana-framework-05 (work in progress), | draft-ietf-pana-framework-05 (work in progress), | |||
| July 2005. | July 2005. | |||
| [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-04 (work in progress), July 2005. | draft-ietf-pana-snmp-05 (work in progress), January 2006. | |||
| [I-D.ietf-eap-statemachine] | ||||
| Vollbrecht, J., Eronen, P., Petroni, N., and Y. Ohba, | ||||
| "State Machines for Extensible Authentication Protocol | ||||
| (EAP) Peer and Authenticator", | ||||
| draft-ietf-eap-statemachine-06 (work in progress), | ||||
| December 2004. | ||||
| [I-D.ietf-ipsec-ikev2] | [I-D.ietf-mobike-protocol] | |||
| Kaufman, C., "Internet Key Exchange (IKEv2) Protocol", | Eronen, P., "IKEv2 Mobility and Multihoming Protocol | |||
| draft-ietf-ipsec-ikev2-17 (work in progress), | (MOBIKE)", draft-ietf-mobike-protocol-08 (work in | |||
| October 2004. | progress), February 2006. | |||
| [I-D.ietf-dna-link-information] | [I-D.ietf-dna-link-information] | |||
| Yegin, A., "Link-layer Event Notifications for Detecting | Yegin, A., "Link-layer Event Notifications for Detecting | |||
| Network Attachments", draft-ietf-dna-link-information-01 | Network Attachments", draft-ietf-dna-link-information-03 | |||
| (work in progress), February 2005. | (work in progress), October 2005. | |||
| [I-D.adrangi-eap-network-discovery] | ||||
| Adrangi, F., "Identity selection hints for Extensible | ||||
| Authentication Protocol (EAP)", | ||||
| draft-adrangi-eap-network-discovery-13 (work in progress), | ||||
| May 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. | |||
| [RFC2279] Yergeau, F., "UTF-8, a transformation format of ISO | ||||
| 10646", RFC 2279, January 1998. | ||||
| Authors' Addresses | ||||
| Dan Forsberg | ||||
| Nokia Research Center | ||||
| P.O. Box 407 | ||||
| FIN-00045 NOKIA GROUP | ||||
| Finland | ||||
| Phone: +358 50 4839470 | ||||
| Email: dan.forsberg@nokia.com | ||||
| Yoshihiro Ohba | ||||
| Toshiba America Research, Inc. | ||||
| 1 Telcordia Drive | ||||
| Piscataway, NJ 08854 | ||||
| USA | ||||
| Phone: +1 732 699 5305 | ||||
| Email: yohba@tari.toshiba.com | ||||
| Basavaraj Patil | ||||
| Nokia | ||||
| 6000 Connection Dr. | ||||
| Irving, TX 75039 | ||||
| USA | ||||
| Phone: +1 972-894-6709 | ||||
| Email: Basavaraj.Patil@nokia.com | ||||
| Hannes Tschofenig | ||||
| Siemens Corporate Technology | ||||
| Otto-Hahn-Ring 6 | ||||
| 81739 Munich | ||||
| Germany | ||||
| Email: Hannes.Tschofenig@siemens.com | ||||
| Alper E. Yegin | ||||
| Samsung Advanced Institute of Technology | ||||
| 75 West Plumeria Drive | ||||
| San Jose, CA 95134 | ||||
| USA | ||||
| Phone: +1 408 544 5656 | ||||
| Email: alper.yegin@samsung.com | ||||
| Appendix A. Example Sequence of Separate NAP and ISP Authentication | Appendix A. Example Sequence of Separate NAP and ISP Authentication | |||
| A PANA message sequence with separate NAP and ISP authentication is | A PANA message sequence with separate NAP and ISP authentication is | |||
| illustrated in Figure 12. The example assumes the following | illustrated in Figure 12. The example assumes the following | |||
| scenario: | scenario: | |||
| o The PaC initiates the discovery and handshake phase. | o The PaC initiates the discovery and handshake phase. | |||
| o The PAA offers separate NAP and ISP authentication, as well as a | 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 | choice of ISP from "ISP1" and "ISP2". The PaC accepts the offer | |||
| from PAA, with choosing "ISP1" as the ISP. | from PAA, with choosing "ISP1" as the ISP. | |||
| o NAP authentication and ISP authentication is performed in this | o NAP authentication and ISP authentication is performed in this | |||
| order in the authentication and authorization phase. | order in the authentication and authorization phase. | |||
| o An EAP authentication method with a single round trip is used in | o An EAP authentication method with a single round trip is used in | |||
| each EAP sequence. | each EAP sequence. | |||
| o After a PANA SA is established, all messages are integrity and | o After a PANA SA is established, all messages are integrity and | |||
| replay protected with MAC AVPs. | replay protected with AUTH AVPs. | |||
| o The access, re-authentication and termination phases are not | o The access, re-authentication and termination phases are not | |||
| shown. | shown. | |||
| PaC PAA Message(sequence number)[AVPs] | PaC PAA Message(sequence number)[AVPs] | |||
| ----------------------------------------------------- | ----------------------------------------------------- | |||
| // Discovery and handshake phase | // Discovery and handshake phase | |||
| -----> PANA-PAA-Discover(0) | -----> PANA-PAA-Discover(0) | |||
| <----- PANA-Start-Request(x) // S-flag set. | <----- PANA-Start-Request(x) // S-flag set. | |||
| [Cookie, | [Cookie, | |||
| skipping to change at page 77, line 29 ¶ | skipping to change at page 77, line 29 ¶ | |||
| <----- PANA-Auth-Request(x+1) // NAP authentication. | <----- PANA-Auth-Request(x+1) // NAP authentication. | |||
| [Session-Id, Nonce, // (S,N)-flags set | [Session-Id, Nonce, // (S,N)-flags set | |||
| EAP{Request}] // for all messages during | EAP{Request}] // for all messages during | |||
| // NAP authentication. | // NAP authentication. | |||
| -----> PANA-Auth-Answer(x+1)[Session-Id, Nonce] | -----> PANA-Auth-Answer(x+1)[Session-Id, Nonce] | |||
| -----> PANA-Auth-Request(y)[Session-Id, EAP{Response}] | -----> PANA-Auth-Request(y)[Session-Id, EAP{Response}] | |||
| <----- PANA-Auth-Answer(y)[Session-Id] | <----- PANA-Auth-Answer(y)[Session-Id] | |||
| <----- PANA-Auth-Request(x+2)[Session-Id, EAP{Request}] | <----- PANA-Auth-Request(x+2)[Session-Id, EAP{Request}] | |||
| -----> PANA-Auth-Answer(x+2)[Session-Id, EAP{Response}] | -----> PANA-Auth-Answer(x+2)[Session-Id, EAP{Response}] | |||
| <----- PANA-FirstAuth-End-Request(x+3) | <----- PANA-FirstAuth-End-Request(x+3) | |||
| [Session-Id, EAP{Success}, Key-Id, MAC] | [Session-Id, EAP{Success}, Key-Id, Algorithm, AUTH] | |||
| -----> PANA-FirstAuth-End-Answer(x+3) | -----> PANA-FirstAuth-End-Answer(x+3) | |||
| [Session-Id, Key-Id, MAC] | [Session-Id, Key-Id, AUTH] | |||
| <----- PANA-Auth-Request(x+4) // ISP authentication. | <----- PANA-Auth-Request(x+4) // ISP authentication. | |||
| [Session-Id, EAP{Request}, MAC] // Only S-flag set | [Session-Id, EAP{Request}, AUTH] // Only S-flag set | |||
| // for all messages during | // for all messages during | |||
| // ISP authentication. | // ISP authentication. | |||
| -----> PANA-Auth-Answer(x+4)[Session-Id, MAC] | -----> PANA-Auth-Answer(x+4)[Session-Id, AUTH] | |||
| -----> PANA-Auth-Request(y+1)[Session-Id, EAP{Response}, MAC] | -----> PANA-Auth-Request(y+1)[Session-Id, EAP{Response}, AUTH] | |||
| <----- PANA-Auth-Answer(y+1)[Session-Id, MAC] | <----- PANA-Auth-Answer(y+1)[Session-Id, AUTH] | |||
| <----- PANA-Auth-Request(x+5)[Session-Id, EAP{Request}, MAC] | <----- PANA-Auth-Request(x+5)[Session-Id, EAP{Request}, AUTH] | |||
| -----> PANA-Auth-Answer(x+5)[Session-Id, EAP{Response}, MAC] | -----> PANA-Auth-Answer(x+5)[Session-Id, EAP{Response}, AUTH] | |||
| <----- PANA-Bind-Request(x+6) | <----- PANA-Bind-Request(x+6) | |||
| [Session-Id, Result-Code, EAP{Success}, Device-Id, | [Session-Id, Result-Code, EAP{Success}, Device-Id, | |||
| Key-Id, Lifetime, Protection-Cap., PPAC, MAC] | Key-Id, Lifetime, Protection-Cap., PPAC, AUTH] | |||
| -----> PANA-Bind-Answer(x+6)[Session-Id, Device-Id, Key-Id, | -----> PANA-Bind-Answer(x+6)[Session-Id, Device-Id, Key-Id, | |||
| PPAC, MAC] | PPAC, AUTH] | |||
| Figure 12: A Complete Message Sequence for Separate NAP and ISP | Figure 12: A Complete Message Sequence for Separate NAP and ISP | |||
| Authentication | Authentication | |||
| Authors' Addresses | ||||
| Dan Forsberg | ||||
| Nokia Research Center | ||||
| P.O. Box 407 | ||||
| FIN-00045 NOKIA GROUP | ||||
| Finland | ||||
| Phone: +358 50 4839470 | ||||
| Email: dan.forsberg@nokia.com | ||||
| Yoshihiro Ohba | ||||
| Toshiba America Research, Inc. | ||||
| 1 Telcordia Drive | ||||
| Piscataway, NJ 08854 | ||||
| USA | ||||
| Phone: +1 732 699 5305 | ||||
| Email: yohba@tari.toshiba.com | ||||
| Basavaraj Patil | ||||
| Nokia | ||||
| 6000 Connection Dr. | ||||
| Irving, TX 75039 | ||||
| USA | ||||
| Phone: +1 972-894-6709 | ||||
| Email: Basavaraj.Patil@nokia.com | ||||
| Hannes Tschofenig | ||||
| Siemens Corporate Technology | ||||
| Otto-Hahn-Ring 6 | ||||
| 81739 Munich | ||||
| Germany | ||||
| Email: Hannes.Tschofenig@siemens.com | ||||
| Alper E. Yegin | ||||
| Samsung Advanced Institute of Technology | ||||
| Istanbul, | ||||
| Turkey | ||||
| Phone: +90 538 719 0181 | ||||
| Email: alper01.yegin@partner.samsung.com | ||||
| Intellectual Property Statement | Intellectual Property Statement | |||
| The IETF takes no position regarding the validity or scope of any | The IETF takes no position regarding the validity or scope of any | |||
| Intellectual Property 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 | |||
| skipping to change at page 78, line 41 ¶ | skipping to change at page 80, line 41 ¶ | |||
| This document and the information contained herein are provided on an | This document and the information contained herein are provided on an | |||
| "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS | "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS | |||
| OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET | OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET | |||
| ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, | ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, | |||
| INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE | INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE | |||
| INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED | INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED | |||
| WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. | WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. | |||
| Copyright Statement | Copyright Statement | |||
| Copyright (C) The Internet Society (2005). This document is subject | Copyright (C) The Internet Society (2006). This document is subject | |||
| to the rights, licenses and restrictions contained in BCP 78, and | to the rights, licenses and restrictions contained in BCP 78, and | |||
| except as set forth therein, the authors retain all their rights. | except as set forth therein, the authors retain all their rights. | |||
| Acknowledgment | Acknowledgment | |||
| Funding for the RFC Editor function is currently provided by the | Funding for the RFC Editor function is currently provided by the | |||
| Internet Society. | Internet Society. | |||
| End of changes. 287 change blocks. | ||||
| 668 lines changed or deleted | 753 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||