view Side-By-Side changes
Internet Engineering Task Force INTERNET-DRAFT HHarney,Harney (SPARTA) UMeth,Meth (SPARTA) A Colegrove (SPARTA)A Schuett (NSA) P McDaniel (AT&T) G Kenny (Logica) H Cruickshank, S Iyengar (UoS)G Gross (IdentAware)draft-ietf-msec-gsakmp-sec-04.txtdraft-ietf-msec-gsakmp-sec-05.txt SPARTA, Inc.,National Security Agency AT&T Labs, LogicaCMG, University of SurreyIdentAware Security Expires:April 24,August 16, 2004 February 2004October 2003GSAKMP Status of this memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as ``work in progress''. The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. Abstract This document specifies the Group Secure Association Key Management Protocol (GSAKMP). The GSAKMP provides a security framework for creating and managing cryptographic groups on a network. It provides mechanisms to disseminate group policy and authenticate users, rules to perform access control decisions during group establishment and recovery, capabilities to recover from the compromise of group members, delegation of group securityINTERNET-DRAFT GSAKMP October 2003functions, and capabilities to destroy the group. It also generates group keys. INTERNET-DRAFT GSAKMP February 2004 Copyright Notice Copyright (c) The Internet Society(2003).(2004). All Rights Reserved. Harney,etal. draft-ietf-msec-gsakmp-sec-04.txtMeth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 2] INTERNET-DRAFT GSAKMPOctober 2003February 2004 Contents 1 Overview89 1.1 GSAKMP Overview . . . . . . . . . . . . . . . . . . . . . . . . . .8 1.2 Protocol Considerations . . . . . . . . . . . . . . . . . . . . . .91.31.2 Document Organization . . . . . . . . . . . . . . . . . . . . . . .910 2 Terminology910 3 Security Considerations1113 3.1 Security Assumptions . . . . . . . . . . . . . . . . . . . . . . .1213 3.2GSAKMP Use of OtherRelated Protocols . . . . . . . . . . . . . . . . . . .12 3.2.1ISAKMP. . . . . . 13 3.2.1 ISAKMP . . . . . . . . . . . . . . . . . . . . . . . .12 3.2.2FIPS. . . . 13 3.2.2 FIPS Pub 196 . . . . . . . . . . . . . . . . . . . . . . . . .. 12 3.2.3LKH14 3.2.3 LKH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12 3.2.4Rekey Availability14 3.2.4 Diffie-Hellman . . . . . . . . . . . . . . . . . . . . . . .13 3.2.5Diffie-Hellman. 14 3.3 Denial of Service (DoS) Attack . . . . . . . . . . . . . . . . . . 14 3.4 Rekey Availability . . . . . .13 3.3 Denial of Service (DoS) Attack. . . . . . . . . . . . . . . . . .13 3.415 3.5 Proof of Trust Hierarchy . . . . . . . . . . . . . . . . . . . . .1415 4 Architecture1415 4.1 Trust Model . . . . . . . . . . . . . . . . . . . . . . . . . . . .14 4.1.1Components . .15 4.1.1 Components . . . . . . . . . . . . . . . . . . . . . . . . .14 4.1.2GO. 15 4.1.2 GO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15 4.1.3GC/KS16 4.1.3 GC/KS . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15 4.1.4Subordinate16 4.1.4 Subordinate GC/KS . . . . . . . . . . . . . . . . . . . . . . .16 4.1.5GM .17 4.1.5 GM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16 4.1.6Assumptions17 4.1.6 Assumptions . . . . . . . . . . . . . . . . . . . . . . . . . .1718 4.2 Rule-Based Security Policy . . . . . . . . . . . . . . . . . . . .17 4.2.1Access19 4.2.1 Access Control . . . . . . . . . . . . . . . . . . . . . . . .. 18 4.2.2Authorizations19 4.2.2 Authorizations for security relevant actions . . . . . . . . .. 1920 4.3 Distributed Operation . . . . . . . . . . . . . . . . . . . . . . .1920 4.4 Concept of Operation . . . . . . . . . . . . . . . . . . . . . . .20 4.4.1Assumptions22 4.4.1 Assumptions . . . . . . . . . . . . . . . . . . . . . . . . . .21 4.4.2Creation22 4.4.2 Creation of a PT . . . . . . . . . . . . . . . . . . . . . . .. 21 4.4.3Creation22 4.4.3 Creation of a Group . . . . . . . . . . . . . . . . . . . . . .22 4.4.4Discovery23 4.4.4 Discovery of GC/KS . . . . . . . . . . . . . . . . . . . . . .. 22 4.4.5GC/KS23 4.4.5 GC/KS registration policy enforcement . . . . . . . . . . . . .22 4.4.6GM24 4.4.6 GM registration policy enforcement . . . . . . . . . . . . . .. 23 4.4.7S-GC/KS24 4.4.7 S-GC/KS operations . . . . . . . . . . . . . . . . . . . . . .. 2324 4.5 GSAKMP Interactions With NAT Traversal . . . . . . . . . . . . . .24 4.5.1Non-Transparent25 4.5.1 Non-Transparent Network Address Translation Behaviors . . . . .24 4.5.2GSAKMP25 4.5.2 GSAKMP Avoidance of NAT Using an IP-v6 Over IP-v4 Network . . .25 4.5.3GSAKMP27 4.5.3 GSAKMP Multicast IP-v4 NAT Architectural Assumptions . . . . .. 26 4.5.4Representative28 4.5.4 Representative Example GSAKMP Multi-Realm Configuration . . . .27 4.5.5GSAKMP29 4.5.5 GSAKMP Registration Security Association NAT Traversal . . . .. 30 4.5.6GSAKMP31 4.5.6 GSAKMP Re-key Security Association NAT Traversal . . . . . . .. 31 4.5.7Multicast32 4.5.7 Multicast Application Security Association NAT Traversal . . .. 3132 5 Group Life Cycle3233 5.1 Group Definition . . . . . . . . . . . . . . . . . . . . . . . . .3233 5.2 Group Establishment . . . . . . . . . . . . . . . . . . . . . . . .33 5.2.1Standard34 5.2.1 Standard Group Establishment . . . . . . . . . . . . . . . . .. 33 Harney, etal. draft-ietf-msec-gsakmp-sec-04.txt [Page 3] INTERNET-DRAFT GSAKMP October 2003 5.2.1.1Request to Join34 5.2.1.1 Request to Join . . . . . . . . . . . . . . . . . . . . .. 34 5.2.1.2Key35 Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 3] INTERNET-DRAFT GSAKMP February 2004 5.2.1.2 Key Download . . . . . . . . . . . . . . . . . . . . . .. 35 5.2.1.3Request37 5.2.1.3 Request to Join Error . . . . . . . . . . . . . . . . . .. 37 5.2.1.4Key38 5.2.1.4 Key Download - Ack/Failure . . . . . . . . . . . . . . .. 37 5.2.1.5Lack39 5.2.1.5 Lack of Ack . . . . . . . . . . . . . . . . . . . . . . .. 38 5.2.2Cookies40 5.2.2 Cookies - Group Establishment with Denial of Service Protection3941 5.3 Group Maintenance . . . . . . . . . . . . . . . . . . . . . . . . .41 5.3.1Rekey Events43 5.3.1 Group Management . . . . . . . . . . . . . . . . . . . . . . . 43 5.3.1.1 Rekey Events . . . . . .42 5.3.2Leaving. . . . . . . . . . . . . . . . 43 5.3.2 Leaving a Group . . . . . . . . . . . . . . . . . . . . . . . .42 5.3.2.1Eviction .43 5.3.2.1 Eviction . . . . . . . . . . . . . . . . . . . . . . . .42 5.3.2.2Voluntary44 5.3.2.2 Voluntary Departure without Notice . . . . . . . . . . .. 43 5.3.2.3De-Registration .44 5.3.2.3 De-Registration . . . . . . . . . . . . . . . . . . . . .43 5.3.2.3.1Request44 5.3.2.3.1 Request to Depart - . . . . . . . . . . . . . . . .. . 43 5.3.2.3.2Departure_Response44 5.3.2.3.2 Departure_Response - . . . . . . . . . . . . . . . .. 44 5.3.2.3.3Departure_ACK45 5.3.2.3.3 Departure_ACK - . . . . . . . . . . . . . . . . . .. . 4546 6 Security Suite4647 6.1 Assumptions . . . . . . . . . . . . . . . . . . . . . . . . . . . .4647 6.2 Definition Suite 1 . . . . . . . . . . . . . . . . . . . . . . . .4647 7 GSAKMP Payload Structure4748 7.1 GSAKMP Header . . . . . . . . . . . . . . . . . . . . . . . . . . .47 7.1.1GSAKMP49 7.1.1 GSAKMP Header Structure . . . . . . . . . . . . . . . . . . . .47 7.1.2GSAKMP49 7.1.2 GSAKMP Header Processing . . . . . . . . . . . . . . . . . . .. 5051 7.2 Generic Payload Header . . . . . . . . . . . . . . . . . . . . . .51 7.2.1Generic52 7.2.1 Generic Payload Header Structure . . . . . . . . . . . . . . .. 51 7.2.2Generic52 7.2.2 Generic Payload Header Processing . . . . . . . . . . . . . . .5153 7.3 Policy Token Payload . . . . . . . . . . . . . . . . . . . . . . .52 7.4 Key Download53 7.3.1 Policy Token Payload Structure . . . . . . . . . . . . . . . . 53 7.3.2 Policy Token Payload Processing . . . . . . .53 7.5 Rekey Event Payload. . . . . . . . . 55 7.4 Key Download Payload . . . . . . . . . . . . . . . . .54 7.6 Identification Payload. . . . . . 55 7.4.1 Key Download Payload Structure . . . . . . . . . . . . . . . . 557.7 Certificate Payload7.4.1.1 Key Datum Structure . . . . . . . . . . . . . . . . . . . 57 7.4.1.2 Rekey Array Structure . . . . .56 7.8 Signature Payload. . . . . . . . . . . . . 59 7.4.2 Key Download Payload Processing . . . . . . . . . . . .58 7.8.1Signature Payload Structure. . . . 60 7.5 Rekey Event Payload . . . . . . . . . . . . . .58 7.8.2Signature Payload Processing. . . . . . . . . . 61 7.5.1 Rekey Event Payload Structure . . . . . . . .59 7.9 Notification Payload. . . . . . . . . 61 7.5.1.1 Rekey Event Header Structure . . . . . . . . . . . . . .60 7.9.1Notification62 7.5.1.2 Rekey Event Data- Acknowledgement (ACK) Payload TypeStructure . . . . .62 7.9.2Notification Data - Cookie_Required and Cookie Payload Type. .62 7.9.3Notification Data - Mechanism Choices Payload Type. . . . . . .63 7.10Key Creation Payload. 64 7.5.1.2.1 Key Package Structure . . . . . . . . . . . . . . . 65 7.5.2 Rekey Event Payload Processing . . . . . . .64 7.10.1Key Creation Payload Structure. . . . . . . . . 65 7.6 Identification Payload . . . . . . . . .64 7.10.2Key Creation Payload Processing. . . . . . . . . . . . . 67 7.6.1 Identification Payload Structure . . .65 7.11Nonce Payload. . . . . . . . . . . . 67 7.6.1.1 U-NAME Structure . . . . . . . . . . . . . . .66 7.11.1Nonce Payload Structure. . . . . 69 7.6.2 Identification Payload Processing . . . . . . . . . . . . . . .66 7.11.2Nonce Payload70 7.6.2.1 U-NAME Processing . . . . . . . . . . . . . . . . . . . .67 8 GSAKMP State Diagram 68 A APPENDIX A -- Variable Length Payload Field Definitions 71 A.1 Key Download70 7.7 Certificate PayloadFields. . . . . . . . . . . . . . . . . . . .71 A.1.1GTEK Key Packet Fields. . . . 71 7.7.1 Certificate Payload Structure . . . . . . . . . . . . . . . . . 71A.1.2Rekey Key Packet Fields7.7.2 Certificate Payload Processing . . . . . . . . . . . . . . . . 72 7.8 Signature Payload . . . .71 A.2 Signature Payload Fields. . . . . . . . . . . . . . . . . . . . . 72Harney, etal. draft-ietf-msec-gsakmp-sec-04.txt [Page 4] INTERNET-DRAFT GSAKMP October 2003 A.2.1Signature ID Data Field Format7.8.1 Signature Payload Structure . . . . . . . . . . . . . . . . . . 72B APPENDIX B -- LKH Variable Length7.8.2 Signature PayloadField Definitions 72 B.1 LKH Rekey Key Packet FieldsProcessing . . . . . . . . . . . . . . . . . 75 Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 4] INTERNET-DRAFT GSAKMP February 2004 7.9 Notification Payload . . .72 B.2 LKH Rekey Packet Data Format Fields. . . . . . . . . . . . . . . .73 B.2.1Rekey Event Header. . . . 75 7.9.1 Notification Payload Structure . . . . . . . . . . . . . . . . 75 7.9.1.1 Notification Data - Acknowledgment (ACK) Payload Type . . 78 7.9.1.2 Notification Data - Cookie_Required and Cookie Payload Type 78 7.9.1.3 Notification Data - Mechanism Choices Payload Type .73 B.2.2Rekey Event Packet Data(s). . 79 7.9.2 Notification Payload Processing . . . . . . . . . . . . . . . . 80 7.10Key Creation Payload .74 B.2.3Key Pack Data. . . . . . . . . . . . . . . . . . . . . . 80 7.10.1 Key Creation Payload Structure . . .75 B.2.4Pack Data Formats. . . . . . . . . . . . . 80 7.10.2 Key Creation Payload Processing . . . . . . . . . .75 B.2.4.1GTEK Pack Data. . . . . 82 7.11Nonce Payload . . . . . . . . . . . . . . . . .76 B.2.4.2LKH Pack Data. . . . . . . . . . 82 7.11.1 Nonce Payload Structure . . . . . . . . . . . . .76 B.2.5Example. . . . . . 82 7.11.2 Nonce Payload Processing . . . . . . . . . . . . . . . . . . . 83 8 GSAKMP State Diagram 85 9 IANA Considerations 88 9.1 IANA Port Number Assignment . . .77 C APPENDIX C -- Change History 78 C.1 Changes from GSAKMP-00 to GSAKMP-01 February 2003. . . . . . . . .78 C.2 Changes from GSAKMP-01 to GSAKMP-02 June 2003. . . . . . . . 88 9.2 Initial IANA Registry Contents . . .78 C.3 Changes from GSAKMP-02 to GSAKMP-03 August 2003. . . . . . . . . .79 C.4 Changes from GSAKMP-03 to GSAKMP-04 October 2003 . . .. . . . . 88 9.2.1 GSAKMP Group Identification Types .79 D References, Authors Addesses, and Acknowledgements 83 D.1 References. . . . . . . . . . . . . . 88 9.2.1.1 Amending formula for GSAKMP Group Identification Types . 89 9.2.2 GSAKMP Payload Types . . . . . . . . . . . . .83 D.2 Authors Addresses. . . . . . . . 89 9.2.2.1 Amending formula for GSAKMP Payload Types . . . . . . . . 89 9.2.3 GSAKMP Exchange Types . . . . . . . . .84 D.3 Acknowledgements. . . . . . . . . . . . 89 9.2.3.1 Amending formula for GSAKMP Exchange Types . . . . . . . 90 9.2.4 GSAKMP Policy Token Types . . . . . .86 Harney, etal. draft-ietf-msec-gsakmp-sec-04.txt [Page 5] INTERNET-DRAFT GSAKMP October 2003 List of Figures 1 GSAKMP NAT Example. . . . . . . . . . . . . 90 9.2.4.1 Amending formula for GSAKMP Policy Token Types . . . . . 90 9.2.5 GSAKMP Key Download Data Item Types . . . . . .29 2 GSAKMP Ladder Diagram. . . . . . . . 90 9.2.5.1 Amending formula for GSAKMP Key Download Data Item Types. 90 9.2.6 GSAKMP Encryption Types . . . . . . . . . . . . . . .34 3 GSAKMP Ladder Diagram with Cookies. . . . . 91 9.2.6.1 Amending formula for GSAKMP Encryption Types . . . . . . 91 9.2.7 GSAKMP Rekey Event Types . . . . .40 4 GSAKMP Header Format. . . . . . . . . . . . . . 91 9.2.7.1 Amending formula for GSAKMP Rekey Event Types . . . . . . 91 9.2.8 GSAKMP Identification Types . . .48 5 Generic Payload Header. . . . . . . . . . . . . . . 91 9.2.8.1 Amending formula for GSAKMP Identification Types . . . . 92 9.2.9 GSAKMP Certificate Types . . .51 6 Policy Token Payload Format. . . . . . . . . . . . . . . . 92 9.2.9.1 Amending formula for GSAKMP Certificate Types . . . .52 7 Key Download Payload Format. . 92 9.2.10 GSAKMP Signature Types . . . . . . . . . . . . . . . . . .53 8 Rekey Event Payload Format. . 92 9.2.10.1 Amending formula for GSAKMP Signature Types . . . . . . 92 9.2.11 GSAKMP Signature ID Types . . . . . . . . . . . .55 9 Identification Payload Format. . . . . . 92 9.2.11.1 Amending formula for GSAKMP Signature ID Types . . . . . 93 9.2.12 GSAKMP Notification Types . . . . . . . .56 10 Certificate Payload Format. . . . . . . . . . 93 9.2.12.1 Amending formula for GSAKMP Notification Types . . . . . 93 9.2.13 GSAKMP Acknowledgment Types . . . . .57 11 Signature Payload Format. . . . . . . . . . . . 94 9.2.13.1 Amending formula for GSAKMP Acknowledgment Types . . . . 94 9.2.14 GSAKMP Mechanism Types . . . . .58 12 Notification Payload Format. . . . . . . . . . . . . . . 94 9.2.14.1 Amending formula for GSAKMP Mechanism Types . . . . .60 13 Notification Data - Acknowledge Payload Type Format. 94 9.2.15 GSAKMP Nonce Hash Types . . . . . . .62 14 Notification Data - Mechanism Choices Payload Type Format. . . . .63 15 Key Creation Payload Format. . . . . . . 94 9.2.15.1 Amending formula for GSAKMP Nonce Hash Types . . . . . . 95 9.2.16 GSAKMP Key Creation Types . . . . . . .64 16 Nonce Payload Format. . . . . . . . . . . 95 9.2.16.1 Amending formula for GSAKMP Key Creation Types . . . . . 95 9.2.17 GSAKMP Nonce Types . . . . . . .66 17 GSAKMP State Diagram. . . . . . . . . . . . . . . 95 9.2.17.1 Amending formula for GSAKMP Nonce Types . . . . . . . .68 18 B. 1: Rekey Event Header Format96 Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 5] INTERNET-DRAFT GSAKMP February 2004 10 Acknowledgments 96 11 References 96 11.1 Normative References . . . . . . . . . . . . . . . . .74 19 B. 2: Rekey Event Packet Data Format. . . . . . 96 11.2 Informative References . . . . . . . .74 20 B. 3: Key Pack Data Format. . . . . . . . . . . . . . 97 A APPENDIX A -- LKH Information 98 A.1 LKH Overview . . . . .75 Harney, etal. draft-ietf-msec-gsakmp-sec-04.txt [Page 6] INTERNET-DRAFT GSAKMP October 2003 List of Tables 1 Request to Join (RTJ) Message Definition. . . . . . . . . . . . .35 2 Key Download (KeyDL) Message Definition. . . . . . . . . 98 A.2 LKH and GSAKMP . . . . .36 3 Request to Join Error (RTJ-Err) Message Definition. . . . . . . .37 4 Key Download - Ack/Failure (KeyDL-A/F) Message Definition. . . . .38 5 Lack of Ack (LOA) Message Definition. . . . . . . . 99 A.3 LKH Examples . . . . . . .39 6 Cookie Download Message Definition. . . . . . . . . . . . . . . .40 7 Rekey Event Message Definition. . . . 100 A.3.1 LKH Key Download Example . . . . . . . . . . . . . .42 8 Request_to_Depart (RTD) Message Definition. . . . . 100 A.3.2 LKH Rekey Event Example . . . . . . . .43 9 Departure_Response (DR) Message Definition. . . . . . . . . . . .44 10 Departure_ACK (DA) Message Definition101 B APPENDIX B -- Change History (To Be Removed from RFC) 103 B.1 Changes from GSAKMP-00 to GSAKMP-01 February 2003 . . . . . . . . . 103 B.2 Changes from GSAKMP-01 to GSAKMP-02 June 2003 . . . . . .45 11 Group Identification Types. . . . . 103 B.3 Changes from GSAKMP-02 to GSAKMP-03 August 2003 . . . . . . . . . . 103 B.4 Changes from GSAKMP-03 to GSAKMP-04 October 2003 . . . . .48 12 Payload Types. . . . 104 B.5 Changes from GSAKMP-04 to GSAKMP-05 February 2004 . . . . . . . . . 108 B.5.1 Major Modification/Reorganization of Specification . . . . . . 108 B.5.1.1 Key Terms and Payloads Modified . . . . . . . .49 13 Exchange Types. . . . . 108 B.5.2 Modification By Section . . . . . . . . . . . . . . . . . . . . 109 Authors Addresses 112 Full Copyright Statement 112 Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 6] INTERNET-DRAFT GSAKMP February 2004 List of Figures 1 GSAKMP NAT Example .49 14 Policy Token Types. . . . . . . . . . . . . . . . . . . . . . . 30 2 GSAKMP Ladder Diagram .52 15 Key Download Data Types. . . . . . . . . . . . . . . . . . . . . .54 16 Rekey Event Types35 3 GSAKMP Ladder Diagram with Cookies . . . . . . . . . . . . . . . . 42 4 GSAKMP Header Format . . . . . . . . .55 17 Identification Types. . . . . . . . . . . . . . 49 5 Generic Payload Header . . . . . . . . .56 18 Certificate. . . . . . . . . . . . . 52 6 Policy Token PayloadTypesFormat . . . . . . . . . . . . . . . . . . . . 54 7 Key Download Payload Format .57 19 Signature Types. . . . . . . . . . . . . . . . . . . 56 8 Key Download Data Item Format . . . . . . .59 20 Signature Types. . . . . . . . . . . . 56 9 Key Datum Format . . . . . . . . . . . . . .59 21 Notify Payload Types. . . . . . . . . . . 58 10 Rekey Array Structure Format . . . . . . . . . . . . . . . . . . . 60 11 Rekey Event Payload Format . . . . . . . . . . . . . . . . . . . . 6122 Acknowledgement Types12 Rekey Event Header Format . . . . . . . . . . . . . . . . . . . . . 63 13 Rekey Event Data Format . .62 23 Mechanism Types. . . . . . . . . . . . . . . . . . . . 64 14 Key Package Format . . . . . .63 24 Encryption Types. . . . . . . . . . . . . . . . . . 65 15 Identification Payload Format . . . . . . .64 25 Nonce Hash Types. . . . . . . . . . . . 68 16 Unencoded Name (U-NAME) Format . . . . . . . . . . . . .64 26 Types Of Key Creation Information. . . . . 69 17 Certificate Payload Format . . . . . . . . . . . .65 27 Nonce Types. . . . . . . . 71 18 Signature Payload Format . . . . . . . . . . . . . . . . . . . .66 28 GSAKMP States. 73 19 Notification Payload Format . . . . . . . . . . . . . . . . . . . . 76 20 Notification Data - Acknowledge Payload Type Format . . . . . .69 29 State Transition Events. . 78 21 Notification Data - Mechanism Choices Payload Type Format . . . . . 79 22 Key Creation Payload Format . . . . . . . . . . . . . . . . .70 Harney, etal. draft-ietf-msec-gsakmp-sec-04.txt [Page 7] INTERNET-DRAFT. . . 81 23 Nonce Payload Format . . . . . . . . . . . . . . . . . . . . . . . 82 24 GSAKMPOctober 2003 1 Overview 1.1State Diagram . . . . . . . . . . . . . . . . . . . . . . . 85 25 A. 1: LKH Tree . . . . . . . . . . . . . . . . . . . . . . . . . 99 26 A. 2: GSAKMPOverview Protecting group information requires the definition of a security policy and the enforcement of that policy by all participating parties. Controlling dissemination of cryptographic key is the primary mechanism to enforce the access control policy. It is the primary purpose ofLKH Tree . . . . . . . . . . . . . . . . . . . . . . 100 Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 7] INTERNET-DRAFT GSAKMP February 2004 List of Tables 1 Request togenerate and disseminate a group key in a secure fashion. GSAKMP separates group security management functions and responsibilities into three major roles: 1) Group Owner, 2) Group Controller Key Server, and 3) Group Member. The Group Owner is responsible for creating the security policy rules for a group and expressing these in the Policy Token. The Group ControllerJoin (RTJ) Message Definition . . . . . . . . . . . . . 36 2 KeyServer (GC/KS) is responsible for creating and maintaining the keys and enforcing the group policy by granting accessDownload (KeyDL) Message Definition . . . . . . . . . . . . . . 37 3 Request topotential Group Members (GM) in accordance with the Policy Token. To enforce a group's policy the potential Group Members need to have knowledge of the access control policy for the group, an unambiguous identification of any party downloading keys to them, and verifiable chains of authority for key download. In other words, the Group Members need to know who potentially will be in the group and to verify that the key disseminator is authorized to act in that capacity. In order to establish a Group Secure Association (GSA) to support these activities, the identity of each party in the process MUST be unambiguously asserted and authenticated. It MUST also be verified that each party is authorized, as defined by the Policy Token, to function in his role in the protocol (e.g., GM or GC/KS). The security features of the establishment protocol for the SA include - Group policy identification - Group policy dissemination - GM to GC/KS SA establishment to protect dataJoin Error (RTJ-Err) Message Definition . . . . . . . . 38 4 Key Download -Access control checking GSAKMP provides mechanisms for cryptographic group creation and management. Other protocols may be used in conjunction with GSAKMP to allow various applications to create functional groups according to their application-specific requirements. For example, in a small-scale video conference the organizer might use a session invitation protocol like SIP [RFC2543] to transmit information about the time of the conference, the addressAck/Failure (KeyDL-A/F) Message Definition . . . . . 39 5 Lack ofthe session, and the formatsAck (LOA) Message Definition . . . . . . . . . . . . . . . 40 6 Cookie Download Message Definition . . . . . . . . . . . . . . . . 41 7 Rekey Event Message Definition . . . . . . . . . . . . . . . . . . 43 8 Request_to_Depart (RTD) Message Definition . . . . . . . . . . . . 44 9 Departure_Response (DR) Message Definition . . . . . . . . . . . . 45 10 Departure_ACK (DA) Message Definition . . . . . . . . . . . . . . . 46 11 Group Identification Types . . . . . . . . . . . . . . . . . . . . 49 12 Payload Types . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 13 Exchange Types . . . . . . . . . . . . . . . . . . . . . . . . . . 51 14 Policy Token Types . . . . . . . . . . . . . . . . . . . . . . . . 54 15 Key Download Data Item Types . . . . . . . . . . . . . . . . . . . 57 16 Encryption Types . . . . . . . . . . . . . . . . . . . . . . . . . 59 17 Rekey Event Types . . . . . . . . . . . . . . . . . . . . . . . . . 62 18 Identification Types . . . . . . . . . . . . . . . . . . . . . . . 68 19 Certificate Payload Types . . . . . . . . . . . . . . . . . . . . . 72 20 Signature Types . . . . . . . . . . . . . . . . . . . . . . . . . . 74 21 Signature ID Types . . . . . . . . . . . . . . . . . . . . . . . . 74 22 Notification Types . . . . . . . . . . . . . . . . . . . . . . . . 77 23 Acknowledgment Types . . . . . . . . . . . . . . . . . . . . . . . 78 24 Mechanism Types . . . . . . . . . . . . . . . . . . . . . . . . . . 79 25 Nonce Hash Types . . . . . . . . . . . . . . . . . . . . . . . . . 80 26 Types Of Key Creation Information . . . . . . . . . . . . . . . . . 81 27 Nonce Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 28 GSAKMP States . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 29 State Transition Events . . . . . . . . . . . . . . . . . . . . . . 87 Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 8] INTERNET-DRAFT GSAKMP February 2004 1 Overview 1.1 GSAKMP Overview Protecting group information requires the definition of a security policy and the enforcement of that policy by all participating parties. Controlling dissemination of cryptographic key is the primary mechanism to enforce the access control policy. It is the primary purpose of GSAKMP to generate and disseminate a group key in a secure fashion. GSAKMP separates group security management functions and responsibilities into three major roles: 1) Group Owner, 2) Group Controller Key Server, and 3) Group Member. The Group Owner is responsible for creating the security policy rules for a group and expressing these in the Policy Token. The Group Controller Key Server (GC/KS) is responsible for creating and maintaining the keys and enforcing the group policy by granting access to potential Group Members (GM) in accordance with the Policy Token. To enforce a group's policy the potential Group Members need to have knowledge of the access control policy for the group, an unambiguous identification of any party downloading keys to them, and verifiable chains of authority for key download. In other words, the Group Members need to know who potentially will be in the group and to verify that the key disseminator is authorized to act in that capacity. In order to establish a Group Secure Association (GSA) to support these activities, the identity of each party in the process MUST be unambiguously asserted and authenticated. It MUST also be verified that each party is authorized, as defined by the Policy Token, to function in his role in the protocol (e.g., GM or GC/KS). The security features of the establishment protocol for the SA include - Group policy identification - Group policy dissemination - GM to GC/KS SA establishment to protect data - Access control checking GSAKMP provides mechanisms for cryptographic group creation and management. Other protocols may be used in conjunction with GSAKMP to allow various applications to create functional groups according to their application-specific requirements. For example, in a small-scale video conference the organizer might use a session invitation protocol like SIP [RFC2543] to transmit information about the time of the conference, the address of the session, and the formats to be used. For a large-scale video Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 9] INTERNET-DRAFT GSAKMP February 2004 transmission, the organizer might use a multicast announcement protocol like SAP [RFC2974]. This document describes a useful default set of security algorithms and configurations, Security Suite 1. This suite allows an entire set of algorithms and settings to be described to prospective group members in a concise manner. Other security suites MAY be defined as needed and MAY be disseminated during the out-of-band announcement of a group. Distributed architectures support large scale cryptographic groups. Secure distributed architectures require authorized delegation of GSA actions to network resources. The fully specified Policy Token is the mechanism to facilitate this authorization. Transmission of this Policy Token to all joining GMs allows GSAKMP to securely support distributed architectures and multiple data sources. Many-to-many group communications require multiple data sources. Multiple data sources are supported because the inclusion of a policy token and policy payloads allow group members to review the group access control and authorization parameters. This member review process gives each member (each potential source of data), the ability to determine if the group provides adequate protection for member data. 1.2 Document Organization The remainder of this document is organized as follows: Section 2 presents the terminology and concepts used to present the requirements of this protocol. Section 3 outlines the security considerations with respect to GSAKMP. Section 5 describes the group management life-cycle. Section 6 describes the Security Suite Definition. Section 7 presents the message types and formats used during each phase of the life-cycle. Section 8 defines the state diagram for the protocol. 2 Terminology The following terminology is used throughout the GSAKMP paper. Certificate: A data structure used to verifiably bind an identity to a cryptographic key (e.g., X.509v3). Compromise Recovery: The act of recovering a secure operating state after detecting that a group member cannot be trusted. This can be accomplished by rekey. Cryptographic Group: A set of entities sharing or desiring to share a Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 10] INTERNET-DRAFT GSAKMP February 2004 GSA. Group Controller Key Server (GC/KS): A group member with authority to perform critical protocol actions including creating and distributing keys and building and maintaining the rekey structures. As the group evolves, it MAY become desirable to have multiple controllers perform these functions. Group Member (GM): A Group Member is any entity with access to the group keys. Regardless of how a member becomes a part of the group or how the group is structured, GMs will perform the following actions: - Authenticate and validate the identities and the authorizations of entities performing security relevant actions - Accept group keys from the GC/KS - Request group keys from the GC/KS - Enforce the cooperative group policies as stated in the group policy token - Perform peer review of key management actions - Manage local key Group Owner (GO): A Group Owner is the entity authorized for generating and modifying an authenticatable policy token for the group, and notifying the GC/KS to start the group. Group Policy: The Group Policy completely describes the protection mechanisms and security relevant behaviors of the group. This policy MUST be commonly understood and enforced by the group for coherent secure operations. Group Secure Association (GSA): A GSA is a logical association of users or hosts that share cryptographic key(s). This group may be established to support associations between applications or communication protocols. Group Traffic Protection Key (GTPK): The key or keys created for protecting the group data. Key Datum: A single key and its associated attributes for its usage. Key Encryption Key (KEK): Key used in an encryption mechanism for wrapping another key. Key Handle: The identifier of a particular instance or version of a key. Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 11] INTERNET-DRAFT GSAKMP February 2004 Key ID: The identifier for a key that MUST stay static throughout the life-cycle of this key. Key Package: Type/Length/Data format containing a Key Datum. Logical Key Hierarchy (LKH) Array: The group of keys created to facilitate the LKH compromise recovery methodology. Policy Token: The policy token is a data structure used to disseminate group policy and the mechanisms to enforce it. The policy token is issued and signed by an authorized source. Each member of the group MUST verify the token, meet the group join policy, and enforce the policy of the group, (e.g., encrypt application data with a specific algorithm). The group policy token will contain a variety of information including: - GSAKMP protocol version - Key creation method - Key dissemination policy - Access control policy - Group authorization policy - Compromise recovery policy - Data protection mechanisms An example of a policy token is specified in [HCLM00]. Rekey: The act of changing keys within a group as defined by policy. Rekey Array: The construct that contains all the rekey information for a particular member. Rekey Key: The KEK used to encrypt keys for a subset of the group. Subordinate Group Controller Key Server (S-GC/KS): Any group member having the appropriate processing and trust characteristics as defined in the group policy that has the potential to act as a S-GC/KS. This will allow the group processing and communication requirements to be distributed equitably throughout the network (e.g., distribute group key). The optional use of GSAKMP with Subordinate Group Controller Key Servers will be documented in a separate paper. Wrapping KeyID: - The Key ID of the key used to wrap a Key Package. Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 12] INTERNET-DRAFT GSAKMP February 2004 Wrapping Key Handle: The key handle of the Key used to wrap the Key Package. 3 Security Considerations In addition to the specification of GSAKMP itself, the security of an implemented GSAKMP system is affected by supporting factors. These are discussed here. 3.1 Security Assumptions The following assumptions are made as the basis for the security discussion 1. GSAKMP assumes its supporting platform can provide the process and data separation services at the appropriate assurance level to support its groups. 2. The key generation function of the cryptographic engine will only generate strong keys. 3. The security of this protocol is critically dependent on the randomness of the randomly chosen parameters. These should be generated by a strong random or properly seeded pseudo-random source. 4. The security of a group can be affected by the accuracy of the system clock. Therefore, GSAKMP assumes that the system clock is close to correct time. 3.2 Related Protocols GSAKMP derives from two (2) existing protocols: ISAKMP [MSST98] and FIPS Pub 196 [FIPS 196]. GSAKMP MUST use Diffie-Hellman key exchange [DH77] for two party key creation and MAY use Logical Key Hierarchy (LKH) for rekey capability. 3.2.1 ISAKMP ISAKMP provides a flexible structure of chained payloads in support of authenticated key exchange and security association management for pairwise communications. GSAKMP builds upon these features to provide policy enforcement features in support of diverse group communications. Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 13] INTERNET-DRAFT GSAKMP February 2004 3.2.2 FIPS Pub 196 FIPS Pub 196 provides a mutual authentication protocol. 3.2.3 LKH GSAKMP relies upon a rekey capability, i.e., LKH, to enable group recovery after a compromise. 3.2.4 Diffie-Hellman A Group MAY rely upon two party key creation mechanisms, i.e., Diffie-Hellman, to protect sensitive data during download. The information in this section is borrowed heavily from [IKEv2] as this protocol has already worked through similar issues and GSAKMP is using the same security considerations for its purposes. This section will contain paraphrased sections of [IKEv2] modified for GSAKMP as appropriate. The strength of a key derived from a Diffie-Hellman exchange using specific p and g values depends on the inherent strength of the values, the size of the exponent used, and the entropy provided by the random number generator used. Security Suite 1 defined in section 6, based on [IKEv2] Group 2, with a strong random number generator and an exponent no less than 200 bits is sufficient to use for 3DES. An implementation should make note of this conservative estimate when establishing policy and negotiating security parameters. Note that these limitations are on the Diffie-Hellman values themselves. There is nothing in GSAKMP which prohibits using stronger values nor is there anything which will dilute the strength obtained from stronger values. In fact, the extensible framework of GSAKMP encourages the definition of more Security Suites. It is assumed that the Diffie-Hellman exponents in this exchange are erased from memory after use. In particular, these exponents MUST NOT be derived from long-lived secrets like the seed to a pseudo-random generator that is not erased after use. 3.3 Denial of Service (DoS) Attack This GSAKMP specification addresses the mitigation for a distributed IP spoofing attack (a subset of possible DoS attacks) in section 5.2.2, Cookies. Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 14] INTERNET-DRAFT GSAKMP February 2004 3.4 Rekey Availability In addition to GSAKMP having the capability to do rekey operations, GSAKMP MUST also have the capability to make this rekey information available to GMs. The necessity of GMs receiving rekey messages, requires the use of methods to increase the likelihood of receipt of Rekey Messages. These methods MAY include multiple transmissions of the rekey message, posting of the rekey message on a bulletin board, etc. Compliant GSAKMP implementations MUST support retransmission of rekey messages. 3.5 Proof of Trust Hierarchy As defined by [HCM], security group policy MUST be defined in a verifiable manner. GSAKMP anchors its trust in the creator of the group, the GO. The Policy Token explicitly defines all the parameters that create a secure verifiable infrastructure. The GSAKMP Policy Token is issued and signed by the GO. The GC/KS will verify it and grant access to GMs only if they meet the rules of the Policy Token. The new GMs will accept access only if 1) the token verifies, 2) the GC/KS is an authorized disseminator, and 3) the group mechanisms are acceptable for protecting the GMs data. 4 Architecture This architecture presents a trust model for GSAKMP and a concept of operations for establishing a trusted distributed infrastructure for group key and policy distribution. GSAKMP conforms to the IETF MSEC architectural concepts as specified in the MSEC Architecture document [RFC xxxx]. GSAKMP uses the MSEC components to create a trust model for operations that implement the security principles of mutual suspicion and trust anchors. 4.1 Trust Model 4.1.1 Components The trust model contains four key components: - Group Owners (GO), Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 15] INTERNET-DRAFT GSAKMP February 2004 - Group Controllers / Key Servers (GC/KS), - Subordinate GC/KS (S-GC/KS), and - Group Members (GM). The goal of the GSAKMP trust model is to derive trust from a common trust anchor for a group. All security relevant decisions and actions implemented by GSAKMP are based on information that ultimately is traceable to and verified by a core trust anchor. There are two pieces of the trust anchors for GSAKMP, the GO (policy creation authority) and the PKI root that allows us to verify the GO. 4.1.2 GO The GO is the policy creation authority for the group. The GO has a well defined identity that is relevant to the group. That identity can be of a person or of a group trusted component. All potential entities in the group have to recognize the GO as the individual with authority to specify policy for the group. The policy reflects the protection requirements of the data in a group. Ultimately, the data and the application environment drives the security policy for the group. The GO has to determine the security rules and mechanisms that are appropriate for the data being protected by the group keys. All this information is captured in a policy token (PT). The GO creates the PT and signs it. 4.1.3 GC/KS The GC/KS is authorized to perform several functions: key creation, key distribution, rekey, and group membership management. As key creation authority, the GC/KS will create the set of keys for the group. These keys include the Traffic Protection Keys (TPK) and first tier rekey keys. There may be second tier rekey trees if a distributed rekey management structure is required for the group. As the key distribution (registration) authority, it has to notify the group of its location for registration services. The GC/KS will have to enforce key access control as part of the key distribution and registration processes. As the group rekey authority, it performs rekey in order to change the Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 16] INTERNET-DRAFT GSAKMP February 2004 group's TPK. Change of the TPK limits the exposure of data encrypted with any single TPK. Finally, as group membership management authority, the GC/KS can manage the group membership (registration, eviction, de-registration, etc.). This may be done in part by using key tree approaches such as Logical Key Hierarchies (LKH). 4.1.4 Subordinate GC/KS A subordinate GC/KS is used to distribute the GC/KS functionality across multiple entities. The S-GC/KS will have all the authorities of the GC/KS except one: it will not create the TPK. It is assumed here that the group will transmit data with a single TPK at any one time. This TPK comes from the GC/KS. Note that relative to the GC/KS, the S-GC/KS is responsible for an additional security check: the S-GC/KS must register as a member with the GCKS, and during that process it has to verify the authority of the GC/KS. 4.1.5 GM The GM has two jobs - make sure all security relevant actions are authorized and properly use the group keys. During the registration process, the GM will verify that the PT is signed by a recognized GO. In addition, it will verify that the GC/KS or S-GC/KS engaged in the registration process is authorized, as specified in the PT. If rekey and new PTs are distributed to the group, the GM will verify that they are proper and all actions are authorized. The GM is granted access to group data through receipt of the group keys This carries along with it a responsibility to protect the key from unauthorized disclosure. GSAKMP does not offer any enforcement mechanisms to control which GM are multicast speakers at a given moment. This policy and its enforcement depend on the multicast application and its protocols. However, GSAKMP does allow a group to have one of three Group Security Association multicast speaker configurations: - There is a single GM authorized to be the group's speaker. There is one multicast application SA allocated by the GO in support of that speaker. The PT initializes this multicast application SA and identifies the GM that has been authorized to be speaker. All GM share a single TPK with that GM speaker. Sequence number checking for anti-replay protection is feasible and enabled by default. This is the Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 17] INTERNET-DRAFT GSAKMP February 2004 default group configuration. GSAKMP implementations MUST support this configuration. - The GO authorizes all of the GM to be a group speaker. The GO allocates one multicast application SA in support of these speakers. The PT initializes this multicast application SA and indicates that any GM can be a speaker. All of the GM share a single TPK and other SA state information. Consequently, some SA security features such as sequence number checking for anti-replay protection can not be supported by this configuration. GSAKMP implementations MUST support this group configuration. - The GO authorizes a subset of the GM to be a group speaker (which may be the subset comprised of all GM). The GO allocates a distinct multicast application SA for each of these speakers. The PT identifies the authorized speakers, and initializes each of their multicast application Security Associations. The speakers still share a common TPK across their SA, but each speaker has a separate SA state information instance at every peer GM. Consequently, this configuration supports SA security features such as sequence number checking for anti-replay protection or source authentication mechanisms that require per speaker state at the receiver. The drawback of this configuration is that it does not scale to a large numbers of speakers. GSAKMP implementations MAY support this group configuration. 4.1.6 Assumptions The assumptions for this trust model are: - the GCKS is assumed to beused. Fornever compromised, - the GO is assumed to be never compromised, - the PKI, subject to certificate validation, is assumed to be trustworthy,, - The GO is capable of creating alarge-scale videosecurity policy to meet the demands of the group, - the compromises of a group member will be detectable and reported to the GO in a trusted manner, - the subsequent recovery from a compromise will deny inappropriate access to protected data to the compromised member, - no security relevant actions depend on a precise network time, - that there is confidentiality, integrity, multicast source authentication Harney,etal. draft-ietf-msec-gsakmp-sec-04.txtMeth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page8]18] INTERNET-DRAFT GSAKMPOctober 2003 transmission,February 2004 and anti-replay protection mechanisms for all GSAKMP control messages, 4.2 Rule-Based Security Policy The trust model for GSAKMP revolves around the definition and enforcement of the security policy. In fact, theorganizer mightuse of the key is only relevant, in amulticast announcement protocol like SAP [RFC2974]. This document describes a useful default setsecurity sense, if it represents the successful enforcement of the group securityalgorithms and configurations, Security Suite 1. This suite allows an entire setpolicy. Group operations lend themselves to rule-based security policy. The need for distribution ofalgorithms and settingsdata tobe describedmany endpoints often leads toprospective group members inthe defining of those authorized endpoints based on rules. For example, all IETF attendees at aconcise manner. Other security suites MAYgiven conference could be defined asneeded and MAYa single group. If the security policy rules are to bedisseminated duringrelevant, they must be coupled with validation mechanisms. The core principle here is that theout-of-band announcementlevel of trust one can afford agroup. Distributed architectures support large scale cryptographic groups. Secure distributed architectures require authorized delegationsecurity policy is exactly equal to the level ofGSA actionstrust one has in the validation mechanism used tonetwork resources.prove that policy. For example, if all IETF attendees are allowed in then they could register their identity from their certificate upon check in to the meetings. That certificate is issued by a trust anchor (PKI root) that is authorized to identify someone as being an IETF attendee. Thefully specified Policy TokenGO could make admittance rules to the IETF group based on the identity certificates issued from trusted PKIs. In GSAKMP, every security policy rule is coupled with an explicit validation mechanism. For interoperability considerations, GSAKMP requires its supporting PKI implementations MUST be compliant to RFC 3280. If a GM public key certificate is revoked, then themechanismentity that issues that revocation SHOULD signal the GO, so that the GO can expel that GM. The method that signals this event tofacilitatethe GO is not standardized by thisauthorization. Trasmissionspecification. A direct mapping ofthis Policy Tokenrule toall joining GMsvalidation mechanism allowsGSAKMP to securely support distributed architectures and multiple data sources. Many-to-many group communications require multiple data sources. Multiple data sources are supported becausetheinclusionuse ofa policy tokenmultiple rules andpolicy payloads allow group membersPKIs toreview thecreate groups. This allows a GO to define a group security policy that spans multiple PKI domains, each with their own Certificate Authority public key certificate. 4.2.1 Access Control The access controland authorization parameters. This member review process gives each member (each potential source of data),policy for theabilitygroup keys is equivalent todetermine ifthegroup provides adequate protectionaccess control policy formember data. 1.2 Protocol Considerations IANA has provided GSAKMP port number 3761 in boththeUDP and TCP spaces. All implementations MUST use this port assignment inmulticast application data theappropriate manner. 1.3 Document Organization The remainder of this documentkeys are protecting. In a group, each data source isorganized as follows: Section 5.2.1.5 presentsresponsible for ensuring that theterminology and concepts usedaccess topresenttherequirementssource's data is appropriate. This implies that every data source should have knowledge ofthis protocol. Section 3 outlinesthesecurity considerations with respect to GSAKMP. Section 5 describesaccess control policy for the groupmanagement life-cycle. Section 6 describes the Security Suite Definition. Section 7 presentskeys. Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 19] INTERNET-DRAFT GSAKMP February 2004 In themessage typesgeneral case, GSAKMP offers a suite of security services to its applications, andformats used during each phasedoes not prescribe how they use those services. GSAKMP supports the creation of GSAs with multiple data sources. It also supports architectures where thelife-cycle. Section 8 definesGC/KS is not itself a data source. In thestate diagram formultiple data source architectures GSAKMP requires that theprotocol. 2 Terminologyaccess control policy is precisely defined and distributed to each data source. Thefollowing terminologyreference for this data structure isused throughoutthe GSAKMPpaper. Certificate:Policy Token [ref TBD]. 4.2.2 Authorizations for security relevant actions Adata structure used to verifiably bind an identity to a Harney, etal. draft-ietf-msec-gsakmp-sec-04.txt [Page 9] INTERNET-DRAFTcritical aspect of the GSAKMPOctober 2003 cryptographic key (e.g., X.509v3). Compromise Recovery: The acttrust model is the authorization of security relevant actions. Security relevant actions include - download ofrecovering a secure operating state after detecting that agroupmember cannot be trusted. This cankey, rekey, and PT creation and updates. These actions could beaccomplishedused to disrupt the secure group and all entities in the group must verify that they were instigated byrekey. Cryptographic Group: A set ofauthorized entitiessharing or desiring to sharewithin the group. 4.3 Distributed Operation Scalability is aGSA. Group Controller Key Server (GC/KS): A group member with authoritycore feature of GSAKMP. GSAKMP's approach toperform critical protocol actions including creating and distributing keys and building and maintainingscalable operations is therekey structures. Asestablishment of S-GC/KSs. This allows thegroup evolves, it MAY become desirableGSAKMP systems tohave multiple controllers perform these functions. Group Member (GM): A Group Memberdistribute the workload of setting up and managing very large groups. Another aspect of distributed S-GC/KS operations isany entity with accessthe enabling of local management authorities. In very large groups, subordinate enclaves may be best suited to provide local management of the enclaves' groupkeys. Regardless of how a member becomesmembership, due to apartdirect knowledge of the groupor howmembers. One of thegroupcritical issues involved with distributed operation isstructured, GMs will performthefollowing actions: - Authenticate and validatediscovery of theidentitiessecurity infrastructure location andthe authorizations of entities performingsecurityrelevant actions - Accept group keys from the GC/KS - Requestsuite. Many groupkeys fromapplications that have dynamic interactions must "find" each other to operate. The discovery of theGC/KS - Enforcesecurity infrastructure is just another piece of information that has to be known by thecooperativegrouppolicies as statedinthe group policy tokenorder to operate securely. There are several methods for infrastructure discovery: -Perform peer review of key management actionsAnnouncements -Manage local local key Group Owner (GO): A Group OwnerAnycast - Rendezvous points / Registration One method for distributing the security infrastructure location is to use announcements. The SAP is commonly used to announce theentity authorized for generating and modifyingexistence of a Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 20] INTERNET-DRAFT GSAKMP February 2004 new multicast application or service. If anauthenticatable policy token for the group, and notifyingapplication uses SAP[Ref RFC 2974] to announce theGC/KSexistence of a service on a multicast channel, that service could be extended tostartinclude the security infrastructure location for a particular group.Group Policy:Announcements can also be used by GSAKMP in one of two modes - Expanding Ring Searches (ERS) of security infrastructure and expanding ring searches for infrastructure discovery. In either case, the GSAKMP would use a multicast broadcast that would slowly increase in its range by incremental multicast hops. TheGroup Policy completely describes the protection mechanisms and security relevant behaviors ofmulticast source controls thegroup. This policy MUST be commonly understood and enforcedpacket's multicast range by explicitly setting its Time To Live count. An expanding ring announcement operates by thegroupGC/KS announcing its existence forcoherent secure operations. Group Secure Association (GSA): A GSA isalogical associationparticular group. The number ofusers or hosts that share cryptographic key(s). This group mayhops this announcement would travel would beestablished to support associations between applications or communication protocols. Group Traffic Encryption Key (GTEK):a locally configured number. Thekey or keys createdGMs would listen on a well know multicast address forencrypting the group data. Harney, etal. draft-ietf-msec-gsakmp-sec-04.txt [Page 10] INTERNET-DRAFT GSAKMP October 2003 Logical Key Hierarchy (LKH) Array: The groupGC/KSs that provide service for groups ofkeys created to facilitateinterest. If multiple GC/KSs are found that provide service, then theLKH compromise recovery methodology. Policy Token:GM would pick the closest one (in terms of multicast hops). Thepolicy token isGM would then send adata structure usedGSAKMP Request to Join message (RTJ) todisseminate group policy andthemechanismsannounced GC/KS. If the announcement is found toenforce it.be spurious then that is reported to the appropriate management authorities. Thepolicy tokenERA concept isissued and signed by an authorized source. Each memberslightly different from SAP in that it could occur over the data channel multicast address, instead of a special multicast address dedicated for thegroup MUST verifySAP service. An expanding ring search operates in the reverse order than the ERA. In this case, thetoken, meetGM is thegroup join policy, and enforceannouncing entity. The (S-)GC/KSs listen for thepolicy ofrequests for service, specifically thegroup, (e.g., encrypt application data with a specific algorithm).RTJ. Thegroup policy token will contain a variety of information including: - GSAKMP protocol version - Key creation method - Key dissemination policy - Access control policy - Group authorization policy - Compromise recovery policy - Data protection mechanisms An example of a policy token(S-)GC/KS responds to the RTJ. . If the GM receives more than one response, it would either ignore the responses or send NACKs based on local configuration. Anycast isspecified in [HCLM00]. Rekey: The act of changing keys withinagroup as defined by policy. Subordinate Group Controller Key Server (S-GC/KS): Any group member havingservice that is very similar to ERS. It also can be used to provide connection to theappropriate processing and trust characteristics as defined insecurity infrastructure. In this case, thegroup policy that hasGM would send thepotentialRTJ toact asaS-GC/KS.well-known service request address. Thiswill allowanycast service would route thegroup processingRTJ to an appropriate GC/KS. The anycast service would have security infrastructure andcommunication requirementsnetwork connectivity knowledge to facilitate this connection. Registration points can bedistributed equitably throughoutused to distribute many group relevant data, including security infrastructure. Many group applications rely on well known registration points to advertise the availability of groups. There is no reason that GSAKMP could not use the same approach for advertising the existence and location of the security infrastructure. This is a simple process if thenetwork (e.g., distribute group key).application being supported already supports registration. Theoptional use ofGSAKMPwith Subordinate Group Controller Key Servers will be documented ininfrastructure can always provide aseparate paper. 3 Security Considerations In addition toregistration site if thespecificationexistence ofGSAKMP itself, thethis security infrastructure discovery hub is needed. The registration of S-GC/KSs at this site could be animplementedefficient way to allow GM registration. GSAKMPsystem is affected by supporting factors. These areinfrastructure discovery can use whatever mechanism suits a particular multicast application's requirements, including mechanisms that have not been discussedhere.by this architecture. However, GSAKMP Harney,etal. draft-ietf-msec-gsakmp-sec-04.txtMeth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page11]21] INTERNET-DRAFT GSAKMPOctober 2003 3.1 SecurityFebruary 2004 infrastructure discovery is not standardized by this version of the GSAKMP specification. 4.4 Concept of Operation This concept of operation shows how the different roles in GSAKMP interact to set up a secure group. This particular concept of operation focuses on a secure group that utilizes the distributed key dissemination services of the S-GC/KS. 4.4.1 Assumptions Thefollowing assumptions are made as the basismost basic assumption here is one or more trustworthy PKI for the group. That trusted PKI will be used to create and verify securitydiscussion 1. GSAKMP assumes its supporting platform can providepolicy rules. There is a GO that all GMs recognize as having group policy creation authority. All GM must be securely pre-configured to know theprocessGO public key. All GMs have access to the GO PKI information, both the trusted anchor public keys anddata separation services attheappropriate assurance level to support its groups. 2.certificate path validation rules. There is sufficient connectivity between the GSAKMP entities. - Thekey generation function ofregistration SA requires that GM can connect to thecryptographic engine will only generate strong keys. 3.GC/KS or S-GC/KS using either TCP or UDP. - Thesecurity of this protocol is critically dependent on the randomness ofrekey SA requires that therandomly chosen parameters. These shoulddata layer multicast communication service begenerated by a strong randomavailable. This can be multicast IP, overlay networks using TCP, orproperly seeded pseudo-random source. 3.2NAT tunnels. - GSAKMPUsecan support many different data layer secure applications each with unique connectivity requirements. 4.4.2 Creation ofOther Protocols GSAKMP is based upon two (2) existing protocols: ISAKMP [MSST98]a PT The GO creates andFIPS Pub 196 [FIPS 196]. GSAKMP MAY use Diffie-Hellman key exchange [DH77]signs the Policy Token fortwo party key creationa group. The policy token contains the rules for access control andMAY use LKHauthorizations forrekey capability. 3.2.1 ISAKMP ISAKMP providesaflexible structureparticular group. The PT consists ofchained payloads in supportthe following information: Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 22] INTERNET-DRAFT GSAKMP February 2004 - Identification - this allows an unambiguous identification ofauthenticated key exchangethe PT andsecurity association management for pairwise communications. GSAKMP builds uponthe group, - Access Control Rules - thesefeatures to provide policy enforcement features in support of diverse group communications. 3.2.2 FIPS Pub 196 FIPS Pub 196 provides a mutual authentication protocol. 3.2.3 LKH GSAKMP relies upon a rekey capability, i.e., LKH,rules specify who can have access toenablethe grouprecovery afterkeys, - Authorization Rules - these rules specify who can be acompromise. Harney, etal. draft-ietf-msec-gsakmp-sec-04.txt [Page 12] INTERNET-DRAFT GSAKMP October 2003 3.2.4 Rekey Availability In addition to GSAKMP havingS-GC/KS, - Mechanisms - these rules specify thecapability to do rekey operations, GSAKMP MUST aslo havesecurity mechanisms that will be used by thecapability to makegroup, thisrekey information availableis necessary toGMs. The necessity of GMs receiving rekey messages, requiresensure there is no weak link in theusegroup security profile - Source authentication ofmethods to increasethelikelyhood of receipt of Rekey Messages. These methods MAY include multiple transmissions ofPT to therekey message, posting ofGO - therekey message onPT is abulliten board, etc. 3.2.5 Diffie-Hellman GSAKMP MAY rely upon two party key creation mechanisms, i.e., Diffie-Hellman,CMS signed object and this allows all GMs toprotect sensitive data during download.verify the PT 4.4.3 Creation of a Group Theinformation in this sectionPT isborrowed heavily from [IKEv2] as this protocol has already worked through this issuesent to a potential GC/KS. This can occur in several ways, andGSAKMPthe method of transmittal isusingoutside thesame security considerations for its purposes. This section will contain paraphrased sectionsscope of[IKEv2] modified for GSAKMP as appropriate.GSAKMP. Thestrength of a key derivedpotential GC/KS will verify the GO signature on the PT to ensure that it comes from aDiffie-Hellman exchange using specific p and g values depends ontrusted GO. Next, theinherent strength ofGC/KS will verify that it is authorized to become thevalues,GC/KS, based on thesize ofauthorization rules in theexponent used, andPT. Assuming that theentropy provided byGC/KS trusts therandom number generator used. Security Suite 1 defined in section 6, based on [IKEv2] Group 2, withPT, is authorized to be astrong random number generatorGC/KS, andan exponent no less than 200 bitsissufficientlocally configured tousebecome a GC/KS for3DES. An implementation should make note of this conservative estimate when establishing policya given group andnegotiating security parameters. Note that these limitations are ontheDiffie-Hellman values themselves. There is nothing in GSAKMP which prohibits using stronger values nor is there anything which will diluteGO, then thestrength obtained from stronger values. In fact,GC/KS will create theextensible framework of GSAKMP encourageskeys necessary to start thedefinition of more Security Suites. Itgroup. The GC/KS will take whatever action isassumed that the Diffie-Hellman exponents in this exchange are erased from memory after use. In particular, these exponents MUST NOT be derived from long-lived secrets like the seednecessary (if any) toa pseudo-random generator that is not erased after use. 3.3 Denial of Service (DoS) Attack This GSAKMP specification addressesadvertise its ability to distribute key for themitigationgroup. The GC/KS will then listen for RTJs. The PT has adistributed IP spoofing attack (a subset of possible DoS attacks) in section 5.2.2, Cookies. Harney, etal. draft-ietf-msec-gsakmp-sec-04.txt [Page 13] INTERNET-DRAFT GSAKMP October 2003 3.4 Proof of Trust Hierarchy As defined by [HCM], security group policy MUST be defined insequence number. Every time averifiable manner. GSAKMP anchors its trust inPT is distributed to thecreator ofgroup thegroup,group members verify that theGO. The Policy Token explicitly defines allsequence number on theparameters that create a secure verifiable infrastructure.PT is increasing. TheGSAKMP Policy TokenPT lifetime isissued and signednot limited to a particular time interval, other than by theGO.lifetimes imposed by some of its attributes (e.g. signature key lifetime). TheGC/KS will verify it and grant accesscurrent PT sequence number is downloaded toGMs only if they meettherules ofGM in thePolicy Token."Key Download" message. Also, to avoid replay attacks, you should indicate that this sequence number is never reset to a lower value (i.e. rollover to zero) as long as the group identifier remains valid and in use. ThenewGO must preserve this sequence number across re-boots. 4.4.4 Discovery of GC/KS Potential GMs willaccept access only if 1) the token verifies, 2) the GC/KS is an authorized disseminator, and 3)receive notice of the new groupmechanisms are acceptable for protectingvia some mechanism: announcement, Anycast, registration look-up. The GM will send an RTJ to theGMs data. 4 Architecture This architecture presents a trust model forGC/KS. Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 23] INTERNET-DRAFT GSAKMPand a conceptFebruary 2004 4.4.5 GC/KS registration policy enforcement The GC/KS may or may not require cookies, depending on Denial ofoperations for establishing a trusted distributed infrastructure for group keyService environment andpolicy distribution. GSAKMP conforms totheIETF MSEC architectural concepts as specified inlocal configuration. Once theMSEC Architecture document [RFC xxxx]. GSAKMP usesRTJ has been received, the GC/KS will verify that theMSEC componentsGM is allowed to have access tocreate a trust model for operations that implementthesecurity principles of mutual suspicion and trust anchors. 4.1 Trust Model 4.1.1 Componentsgroup keys. Thetrust model contains four key components: - Group Owners (GO), - Group Controllers / Key Servers (GC/KS), - SubordinateGC/KS(S-GC/KS), and - Group Members (GM). The goal ofwill then verify theGSAKMP trust model issignature on the RTJ toderive trust fromensure it was sent by the claimed identity. If the checks succeed, the GC/KS will ready acommon trust anchorKey Download message for the GM. If not the GC/KS can notify the GM of agroup. All securitynon-security relevantdecisions and actions implemented by GSAKMP are based on information that ultimately is traceable to and verified by a core trust anchor. There are two piecesproblem. 4.4.6 GM registration policy enforcement Upon receipt of thetrust anchors for GSAKMP,Key Download message, theGO (policy creation authority) andGM will verify thePKI root that allows Harney, etal. draft-ietf-msec-gsakmp-sec-04.txt [Page 14] INTERNET-DRAFT GSAKMP October 2003 us tosignature on the message. Then the GM will retrieve the PT from the Key Download message and verify that theGO. 4.1.2 GO TheGOiscreated and signed thepolicy creation authority forPT. Once thegroup. The GO has a well defined identityPT is verified as valid, the GM will verify that the GC/KS isrelevantauthorized tothedistribute key for this group.That identity can be of a person or of a group trusted component. All potential entitiesThen the GM will verify that the mechanisms used in the grouphave to recognize the GO as the individual with authority to specify policyare available and acceptable forthe group. The policy reflects theprotectionrequirementsof the GMs data (assuming the GM is a data source). The GM will then accept membership in this group. The GM will then check to see if it is allowed to be a S-GC/KS for this group.Ultimately,If thedata andGM is allowed to be a S-GC/KS AND theapplication environment driveslocal GM configuration allows thesecurity policyGM to act as a S-GC/KS for this group, then thegroup.GM changes its operating state to S-GC/KS. The GOhasneeds todetermine the security rules and mechanisms that are appropriate for the data being protected byassign thegroup keys. All this information is capturedauthority to become a S-GC/KS in apolicy token (PT). The GO createsmanner that supports thePT and signs it. 4.1.3 GC/KS The GC/KS is authorized to perform several functions: key creation, key distribution, rekey, andoverall groupmembership management.integrity and operations. 4.4.7 S-GC/KS operations Askey creation authority,a S-GC/KS, theGC/KShost willcreate the set of keys for the group. Thesenow distribute keysinclude the Traffic Protection Keys (TPK)and the PT. The firsttier rekey keys. There may be second tier rekey trees if a distributed rekey management structureaction isrequired for the group. As the key distribution (registration) authority, it hasto notify thegrouppotential GMs of itslocation for registration services. The GS/KS will haveability toenforcedistribute keyaccess controlfor the group. This can be accomplished in exactly the same manner aspart ofthekey distributionGC/KS notifications. The S-GC/KS may be authorized to be a local management GC andregistration processes. As the group rekey authority,as such, itperformscan be authorized to create its own rekeyin ordertrees. There are several ways tochangearchitect S-GC/KS operations that include rekey trees. Rekey operations with S-GC/KSs can use: - thegroup's TPK. Change ofS-GC/KS to distribute theTPK limitsrekey arrays generated at theexposure of data encrypted with any single TPK. Finally, as group membership management authority,GC/KS, - theGC/KSS-GC/KS canmanage the group membership (registration, eviction, de-registration, etc.). This may be done in part by using keycreate and distribute it's sub treeapproaches such as Logical Key Hierarchies (LKH).and report those keys back to the GC/KS, The GSAKMP message that sends those keys from Harney,etal. draft-ietf-msec-gsakmp-sec-04.txtMeth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page15]24] INTERNET-DRAFT GSAKMPOctober 2003 4.1.4 Subordinate GC/KS A subordinate GC/KS is used to distributeFebruary 2004 theGC/KS functionality across multiple entities. TheS-GC/KSwill have all the authorities ofto the GC/KSexcept one: it willis notcreatestandardized in this version of theTPK. It is assumed here thatspecification. or - thegroup will transmit data with a single TPK at any one time. This TPK comes fromS-GC/KS can act as an independent rekey authority passing on theGC/KS. Note that relativegroup keys to its subscribers. In theGC/KS,independent mode of operation, the S-GC/KSis responsibleholds the rekey key it received upon group registration. It will then create rekey messages foran additional security check:its subscribers using theS-GC/KS must register as a member withrekey key it creates. Once the notification mechanisms have been activated and key trees created, theGCKS, and during that process it has to verifyS-GC/KS waits for RTJs. GMs will join theauthority ofgroup via theGC/KS. 4.1.5 GMS-GC/KS. TheGM has two jobs - make sure allS-GC/KS will then manage its rekey group based on notification of local rekey needs. 4.5 GSAKMP Interactions With NAT Traversal GSAKMP securityrelevant actions are authorizedassociation endpoints services may straddle any combination of IP-v4 public addresses andproperly use the group keys. During the registration process,private addresses [RFC1918]. In such cases, GSAKMP endpoint identifiers may be embedded within theGM will verify thatGSAKMP policy token's security association Security Policy Database (SPD) traffic selector rules. These GSAKMP endpoint identifiers when resolved to their equivalent private or public IP-v4 addresses entangle thePT is signed by a recognized GO.GSAKMP protocol with Network Address Translation (NAT) [RFC2663] [RFC3022] gateway behaviors. In addition,it will verify thattheGC/KS or S-GC/KS engaged inNAT translation of IP-v4 header addresses also impacts the GSAKMP registrationprocess is authorized, as specified inSA, thePT. If rekeyGSAKMP re-key SA, andnew PTs are distributed tothegroup,multicast application SA. This section defines theGM will verifyGSAKMP mechanisms thatthey are properpartially mitigate the inherent complexity spawned by IP-v4 NAT andall actions are authorized.Network Address Port Translation (NAPT) traversal. However, given the large number of documented NAT problems and its erosion of end-to-end security, [reference okazaki-v6ops-natpt-security-00.txt] new GSAKMP applications and deployments SHOULD strongly prefer the use of IP-v6. This specification offers IP-v4 to IP-v6 transitional guidance in support of that objective. 4.5.1 Non-Transparent Network Address Translation Behaviors TheGM is granted accessfollowing NAT side effects are known togroup data through receipt of the group keys This carries alonginteract withit a responsibility to protectthekey from unauthorized disclosure.GSAKMPdoes not offer any enforcement mechanisms to control which GM are multicast speakers at a given moment. This policyprotocol and itsenforcement dependthree security association types (Registration, Rekey, and Data Layer (specifically IPSec in this example): The following NAT behavior adversely impacts source-specific secure multicast IPSec groups. When a NAT gateway is on the path between a multicastapplicationsource endpoint residing behind a NAT andits protocols. However, GSAKMP does allowagrouppublic IP-v4 multicast destination, the NAT alters the private source address tohave one of three Groupa public IP-v4 address. This translation must be coordinated with every GSAKMP IPSec Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 25] INTERNET-DRAFT GSAKMP February 2004 receiver's inbound SecurityAssociationPolicy Database (SPD) multicastspeaker configurations: - There isentries that uses that source address as asingle GM authorizedtraffic selector [RFC2401bis]. In addition tobeits impact on thegroup's speaker. There is oneinbound SPD, this NAT behavior also impacts the source-specific multicastapplication SA allocated byrouting. The GCKS must set up theGO in support ofGSAKMP receiver with a SPD entry thatspeaker.anticipates the value(s) that the NAT translates the packet's source address. However, there are known cases where this address translation can change without warning: - NAT gateways may re-boot and lose their address translation state information. - The NAT gateway may de-allocate its address translation state after an inactivity timer expires. ThePT initializes this multicast application SA and identifiesaddress translation used by theGMNAT gateway after the resumption of data flow may differ than thathas been authorizedknown tobe speaker. All GM share a single TPK with that GM speaker. Sequence number checking for anti-replay protection is feasible and enabled by default. This isthedefault group configuration.SPD selectors at the GSAKMPimplementations MUST support this configuration.endpoints. - TheGO authorizes allGCKS may not have global consistent knowledge ofthe GM to beagroup speaker. The GO allocates one multicast application SA in support of these speakers. The PT initializes this multicast application SAGSAKMP endpoint's current public andindicates that any GM can beprivate address mappings due to network errors or race conditions. For example, an endpoint's address may change due to aspeaker. AllDHCP assigned address lease expiration. - Alternate paths may exist between a given pair of GSAKMP endpoints. If there are parallel NAT gateways along those paths, then theGM shareaddress translation state information at each NAT gateway may produce different translations on a per packet basis. - When multiple multicast source endpoints reside behind a NAT with a singleTPK and other SA state information. Consequently, some SA security features such as sequence number checking for anti-replay protectionpublic IP-v4 address, the NAT gateway can not do UDP or TCP port translation (i.e. NAPT) because the ESP encryption conceals the transport layer protocol headers. The use of UDP encapsulated ESP [ref XXXXX] avoids this problem. However, this capability must be configured at the GCKS as a group policy, and it must be supported in unison byHarney, etal. draft-ietf-msec-gsakmp-sec-04.txt [Page 16] INTERNET-DRAFTall of the GSAKMPOctober 2003endpoints within the group, even those that reside in the public Internet. Note that at the time of thisconfiguration. GSAKMP implementations MUST supportwriting thisgroup configuration.solution has IPR. -The GO authorizesIn asubset oftransport mode multicast application SA, theGM to be a group speaker (whichUDP checksum operation mayberequire thesubset comprisedorigin endpoint's IP address to complete successfully. In IKE-v2 [IKE-v2], this information is exchanged between the endpoints by a NAT-OA payload (NAT original address). See section X.Y ofall GM). The GO allocatesreference [ipsec-nat-t-v03.txt]. A comparable facility must exist in adistinctGSAKMP PT payload that defines the multicast application SA attributes for eachof these speakers.multicast source endpoint. - ThePT identifiesGSAKMP receiver endpoints must authenticate theauthorized speakers, and initializes eachsource oftheir multicast application Security Associations.all key management packets and they must not trust a packet's IP addresses or port numbers. - Thespeakers still sharepresence of acommon TPK across their SA, but each speaker hasNAT gateway makes it impossible to use an Authentication Header, keyed by aseparate SA state information instance at every peer GM. Consequently, this configuration supports SA security features such as sequence number checking for anti-replay protection or source authentication mechanismsgroup-wide key, to protect the Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 26] INTERNET-DRAFT GSAKMP February 2004 integrity of the IP header, from individuals within the cryptographic group. 4.5.2 GSAKMP Avoidance of NAT Using an IP-v6 Over IP-v4 Network A straight forward and standards-based architecture thatrequire per speaker state ateffectively avoids thereceiver. The drawbackGSAKMP use ofthis configurationNAT gateways is the IP-v6 over IP-v4 transition mechanism [RFC2529]. In IP-v6 over IP-v4 (a.k.a. "6over4"), the underlying IP-v4 network is treated as a virtual multicast-capable Local Area Network. The IP-v6 traffic tunnels over thatit does not scale toIP-v4 virtual link layer. Applying GSAKMP in alarge numbers of speakers.6over4 architecture leverages the fact that an administrative domain deploying GSAKMPimplementations MAY support this group configuration. 4.1.6 Assumptionswould already be planning to deploy IP-v4 multicast router(s). Theassumptions for this trust model are: - the GCKS is assumedGSAKMP group's IP-v6 multicast routing can execute in parallel tobe never compromised, -IP-v4 multicast routing on that same physical router infrastructure. In particular, theGO is assumed to be never compromised, -NAT gateways at administrative domain public/private boundaries are replaced by IP-v6 multicast routers operating with 6over4 mode enabled on their network interfaces. This yields a substantial reduction in complexity and error cases over thePKI, subjectNAT-based approaches. This reduction in complexity can translate into better security. The following factors may effect the decision tocertificate validation, is assumeddeploy GSAKMP 6over4 rather than GSAKMP with IP-v4 NAT: When traversing NAT, application layer protocols that contain IP-v4 addresses in their payload need the intervention of an Application Layer Gateway (ALG) that understands that application layer protocol [RFC3027] [RFC3235]. The ALG massages the payload's private IP-v4 addresses into equivalent public IP-v4 addresses. However, when encrypted by end-to-end ESP such payloads are opaque tobe trustworthy,, -application layer gateways. TheGO is capableprimary drawback ofcreating a security policythe GSAKMP 6over4 approach is that the secure multicast application must be (re-)written tomeetan IP-v6 multicast socket API or equivalent, and it must interact with thedemandsMulticast Listener Discovery (MLD) API [reference vida-mld-v2-07.txt] [reference magma-msf-api-05.txt] rather than IGMP. For new applications, this may not be of consequence; it usually only becomes an issue if thegroup, - the compromisesapplication has an embedded base. An embedded base ofa group memberGSAKMP multicast IP-v4 applications that are only available in binary form will not bedetectable and reportedable tothe GO in a trusted manner, - the subsequent recovery from a compromise will deny inappropriate accessmigrate toprotected datathese transitional IP-v6 mechanisms. The secondary drawbacks of GSAKMP 6over4 are that the IP hosts must be upgraded to dual-stack, thecompromised member, - no security relevant actions depend on a preciseattendant overlay IP-v6 multicast networktime, - that thereoperational costs, and the difficulty of finding commercial wide-area IP-v6 multicast services. Reliable scalable GSAKMP 6over4 deployment isconfidentiality, integrity,far more practical than GSAKMP/NAT. In particular, new GSAKMP multicastsource authentication and anti-replay protection mechanisms for allapplications should prefer GSAKMPcontrol messages, 4.2 Rule-Based Security Policy6over4. However, GSAKMP supports either choice. Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 27] INTERNET-DRAFT GSAKMP February 2004 4.5.3 GSAKMP Multicast IP-v4 NAT Architectural Assumptions To make the GSAKMP NAT interaction problem tractable to a solution, this specification makes the following simplifying assumptions: Thetrust model forsecure multicast group destination address is a statically allocated public IP-v4 multicast address known to all GSAKMPrevolves around the definition and enforcement ofendpoints. Wherever they are present in thesecurity policy. In fact,GSAKMP policy token, GSAKMP IPSec endpoint identifiers are expressed as permanent IP-v6 "6to4" addresses [RFC3056] to assure that theuseGSAKMP endpoints that refer to hosts assigned private IP-v4 addresses are globally unique. The GCKS resides within one of thekey is only relevant, in Harney, etal. draft-ietf-msec-gsakmp-sec-04.txt [Page 17] INTERNET-DRAFT GSAKMP October 2003 a security sense, ifprivate networks, but itrepresents the successful enforcementalso has a permanent public IP-v4 address on at least one ofthe group security policy. Group operations lend themselves to rule-based security policy.its network interfaces. Theneed for distribution of dataGCKS domain name RR record should point tomany endpoints often leadsthat public IP-v4 address, and it should be protected by DNS-SEC. Each private address space has one or more NAT gateways directly connected to thedefining of those authorized endpoints based on rules. For example, all IETF attendees atIP-v4 public Internet, and agiven conference couldpacket does not have to traverse multiple private networks to reach the public Internet. This can bedefinedthought of as asingle group. If"spoke and hub" configuration wherein thesecurity policy rulespublic Internet is the hub. Each of an administrative domain's NAT gateways areto be relevant, they must be coupledexplicitly configured withvalidation mechanisms.static private/public address translation mappings for the GCKS's GSAKMP re-key multicast UDP packets inbound from the public Internet [RFC2588]. The NAT gateways/firewalls are explicitly configured with stateless filter rules that simply pass through without any address translation the group's inbound multicast application packets arriving from the public Internet. Thecore principle here is thatNAT gateway does not translate thelevel of trust one can affordmulticast application packet's public multicast IP destination address into asecurity policy is exactly equal toprivate IP multicast address. In thelevel of trust one has inoutbound direction, NAT gateways generally translate thevalidation mechanism usedmulticast application packet's private source IP address into a dynamically selected public IP address. Exceptions toprove that policy. For example, if all IETF attendeesthis policy for source specific multicast areallowed in then they could register their identity from their certificate upon checknoted into the meetings. That certificate is issued bysubsequent sections. Within each administrative domain, atrust anchor (PKI root) that is authorized to identify someone as being an IETF attendee. The GO could make admittance rules to the IETF groupmulticast routing protocol domain routes packets based on theidentity certificates issued from trusted PKIs. In GSAKMP, every security policy rule is coupled with an explicit validation mechanism. For interoperability considerations, GSAKMP requires its supporting PKI implementations MUST be compliant to RFC 2459. If a GMgroup's destination multicast publickey certificate is revoked, then the entity that issues that revocation SHOULD signalIP-v4 address. The multicast routers will distribute theGO, so thatgroup's packets to all of theGO can expelgroup's GSAKMP endpoints residing in thatGM.administrative domain. Themethod that signals this event to the GO is not standardized by this specification. A direct mappingborder routers ofrule to validation mechanism allows the useeach ofmultiple rulesthe administrative domains spanned by the group do cross-realm multicast routing andPKIs to create groups. This allowsdistribution on behalf of the group. The IP-v4 multicast routers that exchange reachability information regarding the group across trust boundaries authenticate that information. GSAKMP IPSec group security associations are end-to-end transport mode, Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 28] INTERNET-DRAFT GSAKMP February 2004 rather than tunnels terminated at aGO to definecombined NAT/security gateway [RFC2709]. 4.5.4 Representative Example GSAKMP Multi-Realm Configuration Figure 1 illustrates a representative group "Z" wherein a GSAKMP group securitypolicy thatassociation spansmultiple PKI domains, each with their own Certificate Authoritytwo private IP-v4 networks and the publickey certificate. 4.2.1 Access ControlIP-v4 Internet. Theaccess control policy forGroup "Z" GCKS has two network interfaces, one attached to thegroup keys is equivalentpublic Internet and the other interface attached to theaccess control policy foradministrative domain "B" private network. The group members GM1 and GM2 reside within themulticast application dataadministrative domain "A" private network. They communicate with thekeys are protecting. In a group, each dataGCKS and the group Z multicast sourceis responsible for ensuring thatendpoint(s) through theaccessadministrative domain "A" NAT gateway. When GM1 or GM2 send multicast application SA traffic to thesource's data is appropriate. This impliesgroup Z public multicast address, the Group Z peer members (i.e. GM3, GM4, GM5, and GM6) receive thatevery datamulticast with the sourceshould have knowledge ofaddress translated by NAT gateway "A" processing. In the inverse direction, the administrative domain "A" NAT gateway/firewall must be configured to allow Group Z multicast application SA and re-key SA traffic to enter theaccess control policy forprivate network "A" from the public Internet (e.g. a multicast originating from GM6). The groupkeys. Inmembers GM5 and GM6 reside within thegeneral case, GSAKMP offers a suite of security servicesadministrative domain "B" private network. Their interactions with Group Z are very similar toits applications,those discussed for members GM1 anddoes not prescribe howGM2. The only difference is that they usethose services. GSAKMP supportsprivate addresses when communicating with thecreation of GSAsGCKS, as they are both in private network "B". The group members GM3 and GM4 are in a public Internet administrative domain operated by an ISP. They communicate withmultiple data sources. It also supports architectures wheretheGC/KS is not itselfGCKS using public IP-v4 addresses without passage through adata source. InNAT gateway. When GM3 or GM4 send multicast application SA traffic to the group Z public multicast address, the Group Z peer members behind NAT gateways receive that multicast with themultiple datasourcearchitecturesaddress unchanged by NAT processing. Each administrative domain operates an IP-v4 multicast routing domain instance. The multicast routers distribute both GSAKMP re-key event messages and multicast application SA data traffic. The multicast routing for group "Z" peers between these three multicast routing domains. Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 29] INTERNET-DRAFT GSAKMP February 2004 . . "A" Admin Domain . ISP Admin Domain . "B" Administrative domain +-------------------.---------------------.-----------------------------+ ! . . ! ! P U B L.I C I P - v 4 . I N T E R N E T ! ! . . ! +-------/\\----------.-----A-------A----A--.---------/\\--------------/\\--+ !! public . ! ! ! . !! public !! !! IP-v4 . ! ! ! . !! IP-v4 !! +-------\\/--------+ . ! ! ! . +-------\\/--------+ +---\\/--+ ! NAT gateway ! . ! ! ! . ! Group "Z" ! !NAT "B"! ! domain A ! . ! ! ! . ! GSAKMPrequires that the access control policy is precisely defined and distributed to each data source. The reference for this data structure is theGCKS ! !gateway! +---A------A----A-+ . ! ! ! . +-A------A------A-+ +---A---+ ! ! ! . ! ! ! . ! ! ! ! registration SA! . registration SA ! . registration SA ! ! ! ! ! . ! ! ! . ! ! ! ! +-V-+ +-V-+ ! . +-V-+ +-V-+ ! . +-V-+ +-V-+ ! ! !GM1! !GM2! ! . !GM3! !GM4! ! . !GM5! !GM6! ! ! +-A-+ +-A-+ ! . +-A-+ +-A-+ ! . +-A-+ +-A-+ ! ! ! ! ! . ! ! ! . ! ! ! ! Group data/rekey SA . Group data/rekey SA . Group data/rekey Sec. Assoc. ! ! ! . ! ! ! . ! ! ! ! +-V------V----V-+ . +---V-------V----V+ . +-V------V------V-------V--+ ! Group "Z" ! . ! Group "Z" ! . ! Group "Z" ! ! multicast ! . ! multicast ! . ! multicast ! !routing domain ! . ! routing domain ! . ! routing domain ! +---------------+ . +-----------------+ . +--------------------------+ . . . . Figure 1: GSAKMPPolicy Token [ref TBD].NAT Example Harney,etal. draft-ietf-msec-gsakmp-sec-04.txtMeth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page18]30] INTERNET-DRAFT GSAKMPOctober 2003 4.2.2 Authorizations for security relevant actions A critical aspect of the GSAKMP trust model is the authorization of security relevant actions. Security relevant actions include - download of group key, rekey, and PT creation and updates. These actions could be used to disrupt the secure group and all entities in the group must verify that they were instigated by authorized entities within the group. 4.3 Distributed Operation Scalability is a core feature of GSAKMP. GSAKMP's approach to scalable operations is the establishment of S-GC/KSs. This allows the GSAKMP systems to distribute the workload of setting up and managing very large groups. Another aspect of distributed S-GC/KS operations is the enabling of local management authorities. In very large groups, subordinate enclaves may be best suited to provide local management of the enclaves' group membership, due to a direct knowledge of the group members. One of the critical issues involved with distributed operation is the discovery of the security infrastructure location and security suite. Many group applications that have dynamic interactions must "find" each other to operate. The discovery of the security infrastructure is just another piece of information that has to be known by the group in order to operate securely. There are several methods for infrastructure discovery: - Announcements - Anycast - Rendezvous points / Registration One method for distributing the security infrastructure location is to use announcements. The SAP is commonly used to announce the existenceFebruary 2004 4.5.5 GSAKMP Registration Security Association NAT Traversal This class of GSAKMP unicast messages are exchanged between anew multicast application or service. If an application uses SAP[Ref RFC 2974] to announceGCKS in theexistence of a service onpublic IP-v4 Internet and amulticast channel,group member thatservice couldmay beextended to include the security infrastructure location forin aparticular group. Announcements can also be used byprivate network. The following GSAKMPin one of two modes - Expanding Ring Searches (ERS) of security infrastructuremessage types are sent andexpanding ring searches for infrastructure discovery. In either case,received over theGSAKMP would useregistration security association as UDP packets with an authenticated payload: - Request-To-Join - Key Download - This message contains amulticast broadcastPolicy Token thatwould slowly increase in its range by incremental multicast hops. Theincludes a multicastsource controlsapplication SA initialization payload. If IPSec is used, this includes IPSec SPD traffic selector rules that refer to GSAKMP endpoint identifiers. It also contains thepacket's multicast range Harney, etal. draft-ietf-msec-gsakmp-sec-04.txt [Page 19] INTERNET-DRAFTre-key SA initialization payload, which also refers to GSAKMPOctober 2003 by explicitly setting its Time To Live count. An expanding ring announcement operates byIPSec endpoint identifiers. These IPSec endpoint identifiers may require translation or other processing before they are used in theGC/KS announcing its existence for a particular group. The number of hops this announcement would travel would beIPSec Security Policy Database. - Notification - Request To Join Acknowledge/Negative Acknowledge - Request-To-Depart - Departure-Response - Notification - Departure Acknowledgment A group member sends alocally configuredregistration SA GSAKMP message to the GCKS public IP-v4 address and the GSAKMP reserved port number. TheGMs would listen ongroup member assigns awell know multicast address for GC/KSs that provide serviceunique GSAKMP UDP source port number forgroups of interest. If multiple GC/KSs are foundeach GSAKMP registration SA thatprovide service, then the GM would pick the closest one (in terms of multicast hops).it participates in. TheGM would thengroup member MUST sendathe GSAKMPRequestUDP packet without a checksum toJoin message (RTJ)avoid NAT alterations to that field. The UDP packet's transmission error detection depends on theannounced GC/KS. IfGSAKMP signature payload. A NAT gateway on theannouncement is foundpath leading tobe spuriousthe GCKS translates the private source IP address and source UDP port number into a public address and a temporary UDP port number (assuming NAPT), thenthat is reportedforwards the packet to theappropriate management authorities.GCKS. TheERA concept is slightly different from SAP inNAT gateway creates state information for that public/private address mapping so itcould occur overcan do thedata channel multicast address, instead of a special multicast address dedicated forinverse translation on theSAP service. An expanding ring search operates inGSAKMP messages sent from thereverse order thanGCKS to that group member. The GCKS must process theERA. In this case,GSAKMP messages that it receives from group members originating from any source IP address or source port number, even if those two values have changed since the last time that the GCKS had interacted with a given group member. This could cause problems if theGMGC/KS is operating in theannouncing entity. The (S-)GC/KSs listen formandatory cookie exchange mode. To identify therequests for service, specificallygroup member, theRTJ. The (S-)GC/KS responds toGCKS MUST use theRTJ. . IfGSAKMP signature payload's identifying information and validate theGM receives more than onemessage's digital signature. Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 31] INTERNET-DRAFT GSAKMP February 2004 After processing a message from a group member that requires a GCKS response,it would either ignoretheresponses or send NACKs based on local configuration. Anycast is a serviceGCKS creates the GSAKMP UDP message destined for the same IP-v4 address and UDP port thatis very similar to ERS. It also can be used to provide connection tothesecurity infrastructure. In this case,GCKS found in theGM would sendgroup member message's source IP address and UDP source port. 4.5.6 GSAKMP Re-key Security Association NAT Traversal The GCKS multicasts theRTJGSAKMP Re-key Event message to the re-key SA in awell-known service requestUDP packet addressed to group's destination public IP-v4 multicast address.This anycast service would routeBoth theRTJUDP source port and the UDP destination port are set toan appropriate GC/KS.the GSAKMP reserved port number. Theanycast service would have security infrastructureUDP checksum is optional. The GCKS sends two copies of the GSAKMP Re-key Event message, one originating from its public Internet interface, andnetwork connectivity knowledge to facilitate this connection. Registration points can be used to distribute many group relevant data, including security infrastructure. Many group applications rely on well known registration points to advertisetheavailabilityother copy originating from one ofgroups. There is no reasonits private network interfaces. Group members behind a NAT gateway will receive the Re-key Event message unchanged provided thatGSAKMP could not usethesame approach for advertisingintervening NAT gateway has been configured correctly to allow theexistencepacket through without translation. 4.5.7 Multicast Application Security Association NAT Traversal Each such SA has a group-wide unique SPI, its own sequence number, andlocation ofassociated group keying material. Unlike thesecurity infrastructure. This is a simple process ifRe-key Event message multicast to the re-key SA, a multicast applicationbeing supported already supports registration. Themessage sent to the group may originate from a GSAKMPinfrastructure can always provideendpoint located behind aregistration site ifNAT gateway. Since theexistence of this security infrastructure discovery hubapplication's message isneeded. The registration of S-GC/KSs at this site could beencrypted within anefficient way to allow GM registration. GSAKMP infrastructure discoveryESP payload, the transport layer protocol header port fields are concealed from NAT gateways and they canuse whatever mechanism suits a particular multicast application's requirements, including mechanisms that have not been discussed by this architecture. However, GSAKMP infrastructure discovery isnotstandardized by this version ofparticipate in NAPT. The multicast application IPSec SA must be handled differently depending on whether theGSAKMP specification. 4.4 Concept of Operationapplication requires source-specific multicast. If the application requires IPSec source-specific multicast routing, then there must be a separate public IP-v4 address statically reserved at the NAT gateway for each multicast source endpoint private/public address mapping. Thisconcept of operation shows howconstraint allows thedifferent roles in GSAKMP interactGCKS toset upspecify at every group member the inbound SPD traffic selector with asecurepre-determined public source address for each multicast source GSAKMP endpoint in the group.This particular concept of operation focuses on a secure groupThe traffic selector's public source address in combination with the group's destination multicast address and SPI selects the inbound SA. Keeping the NAT gateway's source address mapping static rather than dynamic also allows the multicast routers along the packet's path to apply source-specific routing policies. Note thatutilizesthedistributed key dissemination servicesuse of a static source address mapping NAT avoids theHarney, etal. draft-ietf-msec-gsakmp-sec-04.txt [Page 20] INTERNET-DRAFT GSAKMP October 2003 S-GC/KS. 4.4.1 Assumptions The most basic assumption here is one or more trustworthy PKIneed for thegroup. That trusted PKI will be used to create and verify security policy rules. There is a GO that all GMs recognize as havinggroup policycreation authority. All GMtoken to specify UDP encapsulated ESP. The GCKS SPD configuration database must besecurely pre-configured to knowkept synchronized with theGO public key. All GMs have access togroup's NAT gateway address mapping configurations. If source-specific multicast routing is not required by theGO PKI information, bothapplication, then thetrusted anchorNAT gateway's source address translation can use dynamically allocated publickeys and the certificate path validation rules. There is sufficient connectivity between theIP-v4 addresses rather than statically allocated IP-v4 Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 32] INTERNET-DRAFT GSAKMPentities. - The registration SA requires that GM can connect toFebruary 2004 addresses. However, unless the group uses UDP encapsulated ESP, then theGC/KS or S-GC/KS using either TCP or UDP. - The rekey SA requiresNAT gateway must have a pool of public IP-v4 addresses reserved that is at least as large as thedata layernumber of multicastcommunication service be available.source GSAKMP endpoints within its private network. Thiscan be multicast IP, overlay networks using TCP, orallows the NATtunnels. - GSAKMP can support many different data layer secure applications each with unique connectivity requirements. 4.4.2 Creation ofgateway to do aPT The GO creates and signs the Policy Token forone-to-one mapping from every GSAKMP endpoint's private source address to agroup.dynamically allocated public source address. Thepolicy token containsGCKS specifies therules for access control and authorizations for a particular group. The PT consists ofSPD inbound traffic selector as thefollowing information: - Identification - this allows an unambiguous identificationcombination of thePTgroup's destination multicast address and thegroup, - Access Control Rules - these rules specify who can have access to the group keys, - Authorization Rules - these rules specify who can be a S-GC/KS, - Mechanisms - these rules specify the security mechanisms that will be used bySPI. In some deployments, thegroup, this is necessarynumber of public IP-v4 addresses assigned toensure therea NAT gateway isno weak link in the group security profile Harney, etal. draft-ietf-msec-gsakmp-sec-04.txt [Page 21] INTERNET-DRAFT GSAKMP October 2003 - Source authentication of the PTvery limited (e.g. only one public address). Also, it may be difficult to predict how many multicast source endpoints will reside within theGO -private network before thePT is a CMS signed object and this allows all GMs to verifygroup begins its operation. For these cases, thePT 4.4.3 Creation of a Groupgroup MAY use UDP encapsulated ESP. ThePT is sentNAT gateway applies NAPT toa potential GC/KS. This can occur in several ways, andthemethod of transmittal is outsideUDP header's source port field, sidestepping thescopeconstraint ofGSAKMP.its limited public address pool. Thepotential GC/KS will verify the GO signature onGCKS modifies thePTgroup policy token toensurespecify thatit comes fromthe outbound SPD processing must pre-append atrusted GO. Next,UDP header in front of theGC/KS will verify thatESP header. When a GSAKMP endpoint originates a multicast application packet, itis authorized to become the GC/KS, based on the authorization rulesinserts a UDP header in front of thePT. Assuming that the GC/KS trusts the PT, is authorized to be a GC/KS, and is locally configured to becomeESP header, as per reference [XXXXX]. 5 Group Life Cycle The management of aGC/KS forcryptographic group follows agivenlife-cycle: group definition, group establishment, and security relevant group maintenance. Group definition involves defining theGO, then the GC/KS will create the keysparameters necessary tostart the group. The GC/KS will take whatever actionsupport a secure group, including its policy token. Group establishment isnecessary (if any)the process of granting access toadvertise its abilitynew members. Security relevant group maintenance messages include rekey, policy changes and member deletion. Each of these life-cycle phases is discussed in the following sections. 5.1 Group Definition A cryptographic group is established todistribute key for the group. The GC/KS will then listen for RTJs.support secure communications among a group of individuals. ThePT hasactivities necessary to create asequence number. Every timePolicy Token in support of aPT is distributed to thecryptographic group include - Determine Access Policy - identify thegroup members verifyentities that are authorized to receive thesequence number on the PT is increasing. The PT lifetime is not limitedgroup key. - Determine Authorization Policy - identify which entities are authorized toa particular time interval, other than byperform security relevant actions, including key dissemination, policy creation, and initiation of security management actions. - Determine Mechanisms - define thelifetimes imposedalgorithms and protocols used bysome of its attributes (e.g. signature key lifetime). The current PT sequence number is downloadedHarney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 33] INTERNET-DRAFT GSAKMP February 2004 GSAKMP to secure theGM ingroup. - Create Group Policy Token - format the"Key Download" message. Also, to avoid replay attacks, you should indicate that this sequence number is never reset topolicies and mechanisms into alower value (i.e. rolloverPolicy Token and apply the GO signature. 5.2 Group Establishment GSAKMP Group Establishment consists of three mandatory-to-implement messages, the Request tozero) as long asJoin, thegroup identifier remains validKey Download, andin use.the Key Download Ack/Failure. TheGO must preserve this sequence number across re-boots. 4.4.4 Discovery of GC/KS Potential GMs will receive noticeexchange may also include two OPTIONAL error messages, the Request to Join Error and the Lack_of_Ack messages. Operation using the mandatory messages only is referred to as "Terse Mode", while inclusion of thenew group via some mechanism: announcement, Anycast, registration look-up. The GM will send an RTJerror messaging is referred tothe GC/KS. 4.4.5 GC/KS registration policy enforcement The GC/KS may or may not require cookies, depending onas "Verbose Mode". GSAKMP implementations MUST support Terse Mode and MAY support Verbose Mode. Group Establishment is discussed in Section 5.2.1. For Denial of Serviceenvironment andprotection, a Cookie Exchange MAY precede thelocal configuration. OnceGroup Establishment exchange. The Cookie Exchange is described in Section 5.2.2. Regardless of mode, any error message sent between component members indicates theRTJ has been received,first error encountered while processing theGC/KS will verify thatmessage. 5.2.1 Standard Group Establishment After theGMout-of-band receipt of a Policy Token, a potential Group Controller Key Server (GC/KS) verifies the token and its eligibility to perform GC/KS functionality. It isallowedthen permitted tohave accesscreate any needed group keys and begin to establish thegroup keys.group. TheGC/KS will then verify the signature on the RTJGSAKMP Ladder Diagram, Figure 2, is presented toensure it was sent byillustrate theclaimed identity. Ifprocess of establishing a cryptographic group. The left side of thechecks succeed,diagram represents theGC/KS will ready a Key Download message foractions of theGM. If notGC/KS. The right side of theGC/KS can notifydiagram represents theGMactions ofa non-security relevant problem. Harney, etal. draft-ietf-msec-gsakmp-sec-04.txt [Page 22] INTERNET-DRAFT GSAKMP October 2003 4.4.6the GMs. The components of each message shown in the diagram are presented in sections 5.2.1.1 - 5.2.1.5. The Request to Join message is sent from a potential GMregistration policy enforcement Upon receipt ofto theKey Download message,GC/KS to request admission to theGM will verifycryptographic group. The message contains key creation material, freshness data, an optional selection of mechanisms, and the signatureon the message. Then the GM will retrieve the PT fromof the GM. The Key Download messageand verify that the GO created and signed the PT. Once the PTisverified as valid, the GM will verify thatsent from the GC/KSis authorizedtodistribute key for this group. Thenthe GMwill verify thatin response to an accepted Request to Join. This GC/KS-signed message contains themechanismsidentifier of the GM, freshness data, key creation material, encrypted keys, and the encrypted Policy Token. The Policy Token is usedinto facilitate well-ordered group creation and MUST include the group's identification, groupare availablepermissions, group join policy, group controller key server identity, group management information, andacceptable for protectiondigital signature of theGMs data (assuming the GM is a data source). The GM will then accept membership in this group. The GMGO. This willthen checkHarney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 34] INTERNET-DRAFT GSAKMP February 2004 CONTROLLER Mandatory/ MESSAGE MEMBER Optional !<-M----------Request tosee if it is allowedJoin-------------! <Process RTJ> ! ! !--M----------Key Download--------------->! ! ! <Process KeyDL> !--O-------Request tobe a S-GC/KS for this group. IfJoin Error--------->! or ! ! <Proc RTJ-Err> !<-M----Key Download - Ack/Failure--------! <Process KeyDL-A/F>! ! !--O------Lack of Acknowledgment--------->! ! ! <Proc LOA> !<=======SHARED KEYED GROUP SESSION======>! Figure 2: GSAKMP Ladder Diagram allow the GM to determine whether group policy is compatible with local policy. The Request to Join Error message isallowedsent from the GC/KS tobe a S-GC/KS ANDthelocalGMconfiguration allowsin response to an unaccepted Request to Join. This message is not signed by theGMGC/KS for two reasons: 1) The GM, at this point, has no knowledge of who is authorized to act as aS-GC/KS for this group, thenGC/KS and so theGM changes its operating state to S-GC/KS. The GO needssignature would thus be meaningless totake care when assigningtheauthorityGM, and 2) Signing responses tobecome an S-GC/KS. 4.4.7 S-GC/KS operations Asdenied join requests would provide aS-GC/KS,denial of service potential. The message contains an indication of thehost will now distribute keys anderror condition. The Key Download Ack/Failure message indicates Key Download receipt status at thePT.GM. It is a GM-signed message containing freshness data and status. Thefirst actionLack_of_Ack message isto notifysent from thepotential GMs of its abilityGC/KS todistribute key forthegroup. This can be accomplishedGM inexactly the same manner as the GC/KS notifications.response to an invalid or absent Key Download Ack/Failure message. TheS-GC/KS may be authorizedsigned message contains freshness and status data and is used tobewarn the GM of impending eviction from the group if alocal management GCvalid Key Download Ack/Failure is not sent. For the following message structure sections, details about payload format andas such, itprocessing can beauthorizedfound in Section 7. 5.2.1.1 Request tocreate its own rekey trees. ThereJoin The components of a Request to Join Message areseveral waysshown in Table 1. As shown by Figure 2, a potential GM MUST generate and send an RTJ message toarchitect S-GC/KS operations that include rekey trees. Rekey operations with S-GC/KSs can use: - the S-GC/KSrequest permission todistributejoin therekey arrays generated atgroup. As defined in theGC/KS, -dissection of theS-GC/KS can create and distribute it's sub tree and report those keys backRTJ message, this message MUST contain payloads to hold theGC/KS, Thefollowing Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 35] INTERNET-DRAFT GSAKMPmessage that sends those keys from the S-GC/KSFebruary 2004 Table 1: Request tothe GC/KS is not standardized in this versionJoin (RTJ) Message Definition Message Name : Request to Join (RTJ) Dissection : {HDR-GrpID, Key Creation, Nonce_I, : [Notif_Mechanism_Choices], [Notif_Cookie]} SigM, [Cert] Payload Types : GSAKMP Header, Key Creation, Nonce, Signature, [Certificate], [Notifications] SigM : Signature ofthe specification.Group Member Cert : Necessary Certificates, zero or- the S-GC/KS can act asmore {}SigX :Indicates fields used in Signature [] : Indicate anindependent rekey authority passing on the group keys to its subscribers. In the independent modeoptional data item information: Key Creation payload for KEK generation and Nonce payload for freshness. The Nonce_I value MUST be saved for later use. An OPTIONAL Notification payload ofoperation,type Mechanism Choices MAY be included to identify theS-GC/KS holdsmechanisms therekey key it received upon group registration. ItGM wants to use. Absence of this payload willthen create rekey messages for its subscribers using the rekey key it creates. Oncecause thenotificationGC/KS to select appropriate mechanismshave been activated and key trees created, the S-GC/KS waitsforRTJs. GMs will jointhegroup viaKey Download. In response, theS-GC/KS. The S-GC/KS will then manage its rekey groupGC/KS accepts or denies the request based onnotification oflocalHarney, etal. draft-ietf-msec-gsakmp-sec-04.txt [Page 23] INTERNET-DRAFT GSAKMP October 2003 rekey needs. 4.5 GSAKMP Interactions With NAT Traversal GSAKMP security association endpoints servicesconfiguration. <Process RTJ> indicates the GC/KS actions thatmay straddle any combination of IP-v4 public addresses and private addresses [RFC1918]. In such cases, GSAKMP endpoint identifiers may be embedded withinwill determine if theGSAKMP policy token's security association Security Policy Database (SPD) traffic selector rules. These GSAKMP endpoint identifiers when resolved to their equivalent private or public IP-v4 addresses entangleRTJ will be acted upon. The following checks SHOULD be performed in theGSAKMP protocol with Network Address Translation (NAT) [RFC2663] [RFC3022] gateway behaviors.order presented. Inaddition, the NAT translation of IP-v4 header addresses also impactsthis procedure, theGSAKMP registration SA,GC/KS MUST verify that theGSAKMP re-key SA,message header is properly formed andthe multicast application SA. This section defines the GSAKMP mechanismsconfirm thatpartially mitigate the inherent complexity spawnedthis message is for this group byIP-v4 NAT and Network Address Port Translation (NAPT) traversal. However, givenchecking thelarge number of documented NAT problems and its erosionvalue ofend-to-end security, [reference okazaki-v6ops-natpt-security-00.txt] new GSAKMP applications and deployments SHOULD strongly prefertheuse of IP-v6. This specification offers IP-v4 to IP-v6 transitional guidance in supportGroupID. If the header checks pass, then the identity ofthat objective. 4.5.1 Non-Transparent Network Address Translation Behaviors The following NAT side effects are knownthe sender is extracted from the Signature payload. This identity MUST be used tointeract withperform access control checks, find theGSAKMP protocol and its three security association types (Registration, Rekey,GMs credentials (e.g. certificate) for message verification, andData Layer (specifically IPSecMUST also be used inthis example): The following NAT behavior adversely impacts source-specific secure multicast IPSec groups. When a NAT gateway isthe Key Download message. Then the GC/KS will verify the signature on thepath between a multicast source endpoint residing behind a NATmessage to ensure its authenticity. The GC/KS MUST use verified and trusted authentication material from apublic IP-v4 multicast destination,known root. If theNAT altersmessage signature verifies, theprivate source address to a public IP-v4 address. This translation must be coordinated with every GSAKMP IPSec receiver's inbound Security Policy Database (SPD) multicast entries that usesGC/KS then confirms thatsource addressall required payloads are present and properly formatted based upon the mechanisms announced and/or requested. If all checks pass, the GC/KS will create and send the Key Download message as described in section 5.2.1.2. NOTE: At any one time, atraffic selector [RFC2401bis]. In additionGC/KS MUST process no more that one (1) valid RTJ message from a single GM per group. If the GM receives no response toits impact ontheinbound SPD, this NAT behavior also impactsRTJ within thesource-specific multicast routing. The GCKS must set upGM's locally configured timeout value, theGSAKMP receiver with a SPD entry that anticipatesGM SHOULD resend thevalue(s) thatRTJ message up to three (3) times. If any error occurs during RTJ message processing, and theNAT translatesGC/KS is running in Terse mode, thepacket's source address. However, there are known cases where this address translation can change without warning: NAT gateways may re-bootsession MUST be terminated andlose their address translation state information. The NAT gateway may de-allocate its address translationall saved stateafter an inactivity timer expires.information MUST be cleared. Theaddress translation used by the NAT gatewayOPTIONAL Notification payload of type Cookie is discussed in section Harney,etal. draft-ietf-msec-gsakmp-sec-04.txtMeth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page24]36] INTERNET-DRAFT GSAKMPOctober 2003 after the resumption of data flow may differ than that known to the SPD selectors at the GSAKMP endpoints.February 2004 5.2.2. 5.2.1.2 Key Download TheGCKS may not have global consistent knowledgecomponents of aGSAKMP endpoint's current public and private address mappings due to network errors or race conditions. For example, an endpoint's address may change due to a DHCP assigned address lease expiration. Alternate paths may exist between a given pair of GSAKMP endpoints. If thereKey Download Message areparallel NAT gateways along those paths, then the address translation state information at each NAT gateway may produce different translations on a per packet basis. When multiple multicast source endpoints reside behind a NAT with a single public IP-v4 address, the NAT gateway can not do UDP or TCP port translation (i.e. NAPT) because the ESP encryption conceals the transport layer protocol headers. The useshown in Table 2: Table 2: Key Download (KeyDL) Message Definition Message Name : Key Download (KeyDL) Dissection : {HDR-GrpID, Member ID, Nonce_R, Nonce_C, Key Creation, (Policy Token)*, (Key Download)*} SigC, [Cert] Payload Types : GSAKMP Header, Identification, Nonce, Key Creation, Policy Token, Key Download, Signature, [Certificate] SigC : Signature ofUDP encapsulated ESP [ref XXXXX] avoids this problem. However, this capability must be configured at the GCKS asGroup Controller Key Server Cert : Necessary Certificates, zero or more {}SigX :Indicates fields used in Signature [] : Indicate an optional data item (data)* : Indicates encrypted information In response to agroup policy,properly formed andit must be supported in unison by all ofverified RTJ message, theGSAKMP endpoints withinGC/KS creates and sends thegroup, even those that resideKeyDL message. As defined in thepublic Internet. Note that at the timedissection ofthis writing this solution has IPR. In a transport mode multicast application SA, the UDP checksum operation may requiretheorigin endpoint's IP address to complete successfully. In IKE-v2 [IKE-v2],message, thisinformation is exchanged between the endpoints by a NAT-OA payload (NAT original address). See section X.Y of reference [ipsec-nat-t-v03.txt]. A comparable facility must exist in a GSAKMP PT payload that definesmessage MUST contain payloads to hold themulticast application SA attributesfollowing information: GM identification, Nonce payloads foreach multicast source endpoint. The GSAKMP receiver endpoints must authenticate the source of allfreshness, Key Creation material, encrypted Policy Token, encrypted keymanagement packetsinformation, andthey must not trust a packet's IP addresses or port numbers.signature information. Thepresence of a NAT gateway makes it impossible to use an Authentication Header, keyednonce values transmitted MUST be the GC/KSs generated Nonce_R value and the combined Nonce_C value which was generated bya group-wide key, to protectusing theintegrity ofGC/KSs Nonce_R value and theIP header,Nonce_I value received fromindividuals withinthecryptographic group. 4.5.2 GSAKMP Avoidance of NAT Using an IP-v6 Over IP-v4 Network A straight forward and standards-based architecture that effectively avoidsGM in theGSAKMP use of NAT gatewaysRTJ. If two party key determination is used, theIP-v6 over IP-v4 transition mechanism [RFC2529]. In IP-v6 over IP-v4 (a.k.a. "6over4"),key creation material supplied by theunderlying IP-v4 networkGM and/or the GC/KS will be used to generate the key. Generation of this key istreateddependant on t he key exchange, asa virtual multicast-capable Local Area Network.defined in Section 7.10, Key Creation Payload. TheIP-v6 traffic tunnels over that IP-v4 virtual link layer. Applying GSAKMPPolicy Token and key material are encrypted ina 6over4 architecture leveragesthefact that an administrative domain deploying GSAKMP would alreadygenerated key. The GM MUST beplanningable todeploy IP-v4 multicast router(s).process the Key Download message. <Process KeyDL> indicates the GM actions that will determine how the Key Download message will be acted upon. TheGSAKMP group's IP-v6 multicast routing can executefollowing checks SHOULD be performed inparallel to IP-v4 multicast routing on that same physical Harney, etal. draft-ietf-msec-gsakmp-sec-04.txt [Page 25] INTERNET-DRAFT GSAKMP October 2003 router infrastructure.the order presented. Inparticular,this procedure, theNAT gateways at administrative domain public/private boundaries are replacedGM will verify that the message header is properly formed and confirm that this message is for this group by checking the value of the GroupID. If the header checks pass, the GM MUST confirm that this message was intended for itself byIP-v6 multicast routers operating with 6over4 mode enabled on their network interfaces. This yields a substantial reduction in complexity and error cases overcomparing theNAT-based approaches. This reductionMember ID incomplexity can translate into better security. The following factors may effectthedecisionIdentification payload todeploy GSAKMP 6over4 rather thanits identity. After identification confirmation, Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 37] INTERNET-DRAFT GSAKMPwith IP-v4 NAT: When traversing NAT, application layer protocols that contain IP-v4 addresses in their payload needFebruary 2004 theintervention of an Application Layer Gateway (ALG) that understands that application layer protocol [RFC3027] [RFC3235].freshness values are checked. TheALG massagesGM MUST use its save Nonce_I value, extract thepayload's private IP-v4 addresses into equivalent public IP-v4 addresses. However, when encrypted by end-to-end ESP such payloads are opaquereceived GC/KS Nonce_R value, compute the combined Nonce_C value, and compare it toapplication layer gateways. The primary drawback oftheGSAKMP 6over4 approachreceived Nonce_C value. After freshness isthatconfirmed, thesecure multicast application mustsignature MUST be(re-)writtenverified toan IP-v6 multicast socket API or equivalent,ensure its authenticity, The GM MUST use verified andit must interact withtrusted authentication material from a known root. If theMulticast Listener Discovery (MLD) API [reference vida-mld-v2-07.txt] [reference magma-msf-api-05.txt] rather than IGMP. For new applications, this may not be of consequence; it usually only becomes an issue ifmessage signature verifies, theapplication has an embedded base. An embedded base of GSAKMP multicast IP-v4 applications that are only available in binary form will not be ablekey creation material is extracted from the Key Creation payload tomigrategenerate the KEK. This KEK is then used tothese transitional IP-v6 mechanisms.decrypt the Policy Token data. Thesecondary drawbacks of GSAKMP 6over4 are thatsignature on theIP hosts mustpolicy token MUST beupgradedverified. Access control checks MUST be performed on both the GO and the GC/KS todual-stack,determine both their authorities within this group. After all these checks pass, theattendant overlay IP-v6 multicast network operational costs,KEK can then be used to decrypt and process thedifficulty of finding commercial wide-area IP-v6 multicast services. Reliable scalable GSAKMP 6over4 deploymentkey material from the Key Download payload. If all isfar more practical than GSAKMP/NAT. In particular, new GSAKMP multicast applications should prefer GSAKMP 6over4. However, GSAKMP supports either choice. 4.5.3 GSAKMP Multicast IP-v4 NAT Architectural Assumptions To makesuccessful, theGSAKMP NAT interaction problem tractable to a solution, this specification makesGM will create and send thefollowing simplifying assumptions:Key Download - Ack/Failure message as described in section 5.2.1.4. Thesecure multicastPolicy Token and Key Download payloads are sent encrypted in the KEK generated by the Key Creation payload information using the mechanisms defined in the groupdestination addressannouncement. This guarantees that the sensitive policy and key data for the group and potential rekey data for this individual cannot be read by anyone but the intended recipient. If any error occurs during KeyDL message processing, and the GM is running in Terse mode, the session MUST be terminated, the GM MUST send astatically allocated public IP-v4 multicast address knownKey Download - Ack/Failure message with a Notification Payload of type NACK to indicate termination, and allGSAKMP endpoints. Wherever theysaved state information MUST be cleared. 5.2.1.3 Request to Join Error The components of the Request to Join Error Message arepresentshown inthe GSAKMP policy token,Table 3: Table 3: Request to Join Error (RTJ-Err) Message Definition Message Name : Request to Join Error (RTJ-Err) Dissection : {HDR-GrpID, Nonce_I, Notification} Payload Types : GSAKMPIPSec endpoint identifiers are expressed as permanent IP-v6 "6to4" addresses [RFC3056]Header, Nonce, Notification In response toassure thatan unacceptable RTJ, theGSAKMP endpoints that referGC/KS MAY send a Request tohosts assigned private IP-v4 addresses are globally unique. The GCKS resides within one ofJoin Error (RTJ-Err) message containing an appropriate Notification payload. Note that theprivate networks, but it also hasRTJ-Err message is not apermanent public IP-v4 addresssigned message for the following reasons: the lack of awareness onat least onethe GM's perspective ofits network interfaces. Harney, etal. draft-ietf-msec-gsakmp-sec-04.txt [Page 26] INTERNET-DRAFT GSAKMP October 2003 The GCKS domain name RR record should pointwho is a valid GC/KS as well as the need tothat public IP-v4 address,protect the GC/KS from signing messages andit should be protected by DNS-SEC. Each private address space has one or more NAT gateways directly connected tousing valuable resources. Following theIP-v4 public Internet,sending of an RTJ-Err, the GC/KS MUST terminated the session anda packet does not have to traverse multiple private networks to reachall saved state information MUST be cleared. Upon receipt of an RTJ-Err message, the GM will validate the following: the GroupID in thepublic Internet. This can be thought of asheader belongs to a"spoke and hub" configuration whereingroup to which thepublic Internet isGM has sent an RTJ, and thehub. Each ofNonce_I matches a Nonce_I sent in anadministrative domain's NAT gatewaysRTJ to that group. If the above checks areexplicitly configured with static private/public address translation mappings forsuccessful, theGCKS's GSAKMP re-key multicast UDP packets inbound fromGM MAY terminate thepublic Internet [RFC2588]. The NAT gateways/firewalls are explicitly configuredstate associated withstateless filter rulesthatsimply pass through without any address translation the group's inbound multicast application packets arriving from the public Internet.GroupID and Nonce. TheNAT gateway does not translate the multicast application packet's public multicast IP destination address into a private IP multicast address. In the outbound direction, NAT gateways generally translate the multicast application packet's private source IP address intoGM SHOULD be capable of receiving adynamically selected public IP address. Exceptions to this policyvalid Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 38] INTERNET-DRAFT GSAKMP February 2004 KeyDownload message forsource specific multicastthat GroupID and Nonce after receiving an RTJ-Err for a locally-configured amount of time. 5.2.1.4 Key Download - Ack/Failure The components of the Key Download - Ack/Failure Message arenotedshown insubsequent sections. Within each administrative domain,Table 4: Table 4: Key Download - Ack/Failure (KeyDL-A/F) Message Definition Message Name : Key Download - Ack/Failure (KeyDL-A/F) Dissection : {HDR-GrpID, Nonce_C, Notif_Ack}SigM Payload Types : GSAKMP Header, Nonce, Notification, Signature SigM : Signature of Group Member {}SigX :Indicates fields used in Signature In response to amulticast routing protocol domain routes packets based on the group's destination multicast public IP-v4 address. The multicast routers will distributeproperly processed KeyDL message, thegroup's packets to all ofGM creates and sends thegroup's GSAKMP endpoints residingKeyDL-A/F message. As defined inthat administrative domain. The border routers of each of the administrative domains spanned bythegroup do cross-realm multicast routing and distribution on behalfdissection of thegroup. The IP-v4 multicast routers that exchange reachability information regardingmessage, this message MUST contain payloads to hold thegroup across trust boundaries authenticate that information. GSAKMP IPSec group security associations are end-to-end transport mode, rather than tunnels terminated at a combined NAT/security gateway [RFC2709]. 4.5.4 Representative Example GSAKMP Multi-Realm Configuration Figure 1 illustrates a representative group "Z" wherein a GSAKMP group security association spans two private IP-v4 networksfollowing information: Nonce payload for freshness, Notification payload of type Acknowledgment (ACK). and signature information. The nonce value transmitted MUST be thepublic IP-v4 Internet.GMs generated Nonce_C value. TheGroup "Z" GCKS has two network interfaces, one attachedGC/KS MUST be able to process thepublic Internet andKeyDL-A/F message. <Process KeyDL-A/F> indicates theother interface attached toGC/KS actions that will determine how theadministrative domain "B" private network.KeyDL-A/F message will be acted upon. Thegroup members GM1 and GM2 reside within the administrative domain "A" private network. They communicate with the GCKS and the group Z multicast source endpoint(s) throughfollowing checks SHOULD be performed in theadministrative domain "A" NAT gateway. When GM1 or GM2 send multicast application SA traffic toorder presented. In this procedure, thegroup Z public Harney, etal. draft-ietf-msec-gsakmp-sec-04.txt [Page 27] INTERNET-DRAFT GSAKMP October 2003 multicast address,GC/KS will verify that theGroup Z peer members (i.e. GM3, GM4, GM5,message header is properly formed andGM6) receiveconfirm thatmulticast with the source address translatedthis message is for this group byNAT gateway "A" processing. Inchecking theinverse direction,value of theadministrative domain "A" NAT gateway/firewall must be configured to allow Group Z multicast application SA and re-key SA traffic to enterGroupID. If theprivate network "A" fromheader checks pass, thepublic Internet (e.g. a multicast originating from GM6).GC/KS MUST check the message for freshness. Thegroup members GM5GC/KS MUST use its saved Nonce_C value, andGM6 reside withincompare it to theadministrative domain "B" private network. Their interactions with Group Z are very similarreceived Nonce_C value. After freshness is confirmed, the signature MUST be verified tothose discussed for members GM1 and GM2.ensure its authenticity, Theonly difference is that theyGC/KS MUST useprivate addresses when communicating withverified and trusted authentication material from a known root. If theGCKS, as they are both in private network "B". The group members GM3message signature verifies, the GC/KS processes the Notification payload. If the notification type is of type ACK, then the GC/KS andGM4 are inGM have established apublic Internet administrative domain operated by an ISP. They communicate withGSA. If theGCKS using public IP-v4 addresses without passage throughGC/KS does not receive aNAT gateway. When GM3KeyDL-A/F message of proper form, is unable to correctly process the KeyDL-A/F message, the Notification payload type is any value except ACK, orGM4 send multicast application SA traffic toif no KeyDL-A/F message is received within thegroup Z public multicast address,locally configured timeout, theGroup Z peer members behind NAT gateways receive that multicast withGC/KS MUST remove this GM from thesource address unchanged by NAT processing. Each administrative domain operates an IP-v4 multicast routing domain instance. The multicast routers distribute both GSAKMP re-key event messagesgroup andmulticast application SA data traffic.handle according to policy. Themulticast routing for group "Z" peers between these three multicast routing domains.GC/KS MAY send the OPTIONAL Lack_of_Ack message if running in Verbose Mode as defined in section 5.2.1.5. Harney,etal. draft-ietf-msec-gsakmp-sec-04.txtMeth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page28]39] INTERNET-DRAFT GSAKMPOctober 2003 . . "A" Admin Domain . ISP Admin Domain . "B" Administrative domain +-------------------.---------------------.-----------------------------+ ! . . ! ! P U B L.I C I P - v 4 . I N T E R N E T ! ! . . ! +-------/\\----------.-----A-------A----A--.---------/\\--------------/\\--+ !! public . ! ! ! . !! public !! !! IP-v4 . ! ! ! . !! IP-v4 !! +-------\\/--------+ . ! ! ! . +-------\\/--------+ +---\\/--+ ! NAT gateway ! . ! ! ! . ! Group "Z" ! !NAT "B"! ! domain A ! . ! ! ! . !February 2004 5.2.1.5 Lack of Ack The components of a Lack of Ack Message are shown in Table 5: Table 5: Lack of Ack (LOA) Message Definition Message Name : Lack of Ack (LOA) Dissection : {HDR-GrpID, Member ID, Nonce_R, Nonce_C, Notification} SigC, [Cert] Payload Types : GSAKMPGCKS ! !gateway! +---A------A----A-+ . ! ! ! . +-A------A------A-+ +---A---+ ! ! ! . ! ! ! . ! ! ! ! registration SA! . registration SA ! . registration SA ! ! ! ! ! . ! ! ! . ! ! ! ! +-V-+ +-V-+ ! . +-V-+ +-V-+ ! . +-V-+ +-V-+ ! ! !GM1! !GM2! ! . !GM3! !GM4! ! . !GM5! !GM6! ! ! +-A-+ +-A-+ ! . +-A-+ +-A-+ ! . +-A-+ +-A-+ ! ! ! ! ! . ! ! ! . ! ! ! ! Group data/rekey SA . Group data/rekey SA . Group data/rekey Sec. Assoc. ! ! ! . ! ! ! . ! ! ! ! +-V------V----V-+ . +---V-------V----V+ . +-V------V------V-------V--+ ! Group "Z" ! . ! Group "Z" ! . !Header, Identification, Nonce, Notification, Signature, [Certificate] SigC : Signature of Group"Z" ! ! multicast ! . ! multicast ! . ! multicast ! !routing domain ! . ! routing domain ! . ! routing domain ! +---------------+ . +-----------------+ . +--------------------------+ . . . . Figure 1: GSAKMP NAT ExampleController Key Server Cert : Necessary Certificates, zero or more {}SigX :Indicates fields used in Signature [] : Indicate an optional data item If the GC/KSs local timeout value expires prior to receiving a KeyDL-A/F from the GM, the GC/KS MAY create and send a LOA message to the GM. As defined in the dissection of the message, this message MUST contain payloads to hold the following information: GM identification, Nonce payloads for freshness, Notification of error, and signature information. The nonce values transmitted MUST be the GC/KSs generated Nonce_R value and the combined Nonce_C value which was generated by using the GC/KSs Nonce_R value and the Nonce_I value received from the GM in the RTJ. These values were already generated during the Key Download message phase. The GM MAY be able to process the LOA message based upon local configuration. <Process LOA> indicates the GM actions that will determine how the LOA message will be acted upon. The following checks SHOULD be performed in the order presented. In this procedure, the GM MUST verify that the message header is properly formed and confirm that this message is for this group by checking the value of the GroupID. If the header checks pass, the GM MUST confirm that this message was intended for itself by comparing the Member ID in the Identification payload to its identity. After identification confirmation, the freshness values are checked. The GM MUST use its save Nonce_I value, extract the received GC/KS Nonce_R value, compute the combined Nonce_C value, and compare it to the received Nonce_C value. After freshness is confirmed, access control checks MUST be performed on the GC/KS to determine its authority within this group. Then signature MUST be verified to ensure its authenticity, The GM MUST use verified and trusted authentication material from a known root. If the checks succeed, the GM SHOULD resend a KeyDL-A/F for that session. Harney,etal. draft-ietf-msec-gsakmp-sec-04.txtMeth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page29]40] INTERNET-DRAFT GSAKMPOctober 2003 4.5.5February 2004 5.2.2 Cookies - Group Establishment with Denial of Service Protection This section defines an OPTIONAL capability that MAY be implemented into GSAKMP when using IP based groups. The information in this section is borrowed heavily from [IKEv2] as this protocol has already worked through this issue and GSAKMPRegistration Security Association NAT Traversalis copying this concept. Thisclasssection will contain paraphrased sections of [IKEv2] modified for GSAKMPunicast messages are exchanged between a GCKS into define thepublic IP-v4 Internetpurpose of Cookies. An optional Cookie mode is being defined for the GSAKMP to help against DoS attacks. The term "cookies" originates with Karn anda group member that may beSimpson [RFC 2522] ina private network.Photuris, an early proposal for key management with IPSec. Thefollowing GSAKMPISAKMP fixed messagetypes are sentheader includes two eight octet fields titled "cookies". Instead of placing this cookie data in the header, in GSAKMP this data is moved into a Notification payload. An expected attack against GSAKMP is state andreceived overCPU exhaustion, where theregistration security association as UDP packetstarget GC/KS is flooded withan authenticated payload: - Request-To-Join - Key Download -Request to Join requests from forged IP addresses. Thismessage contains a Policy Token that includesattack can be made less effective if amulticast application SA initialization payload, including IPSec SPD traffic selector rules that referGC/KS implementation uses minimal CPU and commits no state toGSAKMP endpoint identifiers. It also containsthere-key SA initialization payload,communication until it knows the initiator potential GM can receive packets at the address from whichalso refersit claims toGSAKMP IPSec endpoint identifiers. - Notification - Requestbe sending them. To accomplish this, the GC/KS when operating in Cookie mode, SHOULD reject initial Request to JoinAcknowledge/Negative Acknowledge - Request-To-Depart - Departure-Response -messages unless they contain a Notification- Departure Acknowledgement A group member sendspayload of type "cookie". It SHOULD instead send aregistration SA GSAKMPCookie Download message as a response to theGCKS public IP-v4 addressRTJ andthe GSAKMP reserved port number. The group member assignsinclude aunique GSAKMP UDP source port number for each GSAKMP registration SA that it participates in. The group member MUST send the GSAKMP UDP packet withoutcookie in achecksum to avoid NAT alterations to that field. The UDP packet's transmission error detection depends on the GSAKMP signature payload. A NAT gateway onnotify payload of type Cookie_Required. Potential GMs who receive such responses MUST retry thepath leadingRequest to Join message with theGCKS translatesresponder GC/KS supplied cookie in its notification payload of type Cookie, as defined by theprivate source IP address and source UDP port number into a public address and a temporary UDP port number (assuming NAPT), then forwardsoptional Notification payload of thepacketRequest to Join Msg as defined in section 5.2.1.1. This initial exchange will then be as shown in Figure 3 with theGCKS. The NAT gateway creates state information for that public/private address mapping so it can do the inverse translation oncomponents of the new message Cookie Download shown in Table 6. Table 6: Cookie Download Message Definition Message Name : Cookie Download Dissection : {HDR-GrpID, COOKIE_REQUIRED} Payload Types : GSAKMPmessages sent from the GCKS to that group member.Header, Notification TheGCKS must process the GSAKMPfirst two messagesthat it receives from group members originating fromdo not affect anysource IP addressGM orsource port number, even if those two values have changed since the last time that the GCKS had interacted with a given group member. This could cause problems if theGC/KSis operating in the mandatory cookie exchange mode. To identify the group member, the GCKS MUST usestate except for communicating the cookie. A GSAKMPsignature payload's identifying information and validate the message's digital signature. After processing a message from a group member that requiresimplementation SHOULD implement its GC/KS cookie generation in such aGCKS response, the GCKS createsway as to not require any saved state to recognize its valid cookie when theGSAKMP UDPsecond Request to Join messagedestined for the same IP-v4 addressarrives. The exact algorithms andUDP port that the GCKS found in the group member message'ssyntax they use to generate cookies does not affect interoperability and hence is not specified here. The following is an example of how an endpoint could use cookies to implement limited DoS protection. Harney,etal. draft-ietf-msec-gsakmp-sec-04.txtMeth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page30]41] INTERNET-DRAFT GSAKMPOctober 2003 source IP address and UDP source port. 4.5.6 GSAKMP Re-key Security Association NAT Traversal The GCKS multicasts theFebruary 2004 CONTROLLER MESSAGE MEMBER in Cookie Mode !<--Request to Join without Cookie Info---! <Gen Cookie Rsp> ! ! !----------Cookie Download--------------->! ! ! <Process CD> !<----Request to Join with Cookie Info----! <Process RTJ> ! ! !-------------Key Download--------------->! ! ! <Process KeyDL> !<-----Key Download - Ack/Failure--------! <Proc KeyDL-A/F> ! ! !<=======SHARED KEYED GROUP SESSION======>! Figure 3: GSAKMPRe-key Event messageLadder Diagram with Cookies A good way to do this is to set there-key SA incookie to be: Cookie = <SecretVersionNumber> ! Hash(Ni ! IPi ! <secret>) where <secret> is aUDP packet addressedrandomly generated secret known only togroup's destination public IP-v4 multicast address. BoththeUDP source portresponder GC/KS and periodically changed, Ni is theUDP destination port are set toNonce value taken from theGSAKMP reserved port number. The UDP checksuminitiator potential GM, IPi isoptional. The GCKS sends two copiesthe supposed IP of theGSAKMP Re-key Event message, one originating from its public Internet interface,initiator potential GM. <SecretVersionNumber> should be changed whenever <secret> is regenerated. The cookie can be recomputed when the "Request to Join with Cookie Info" arrives and compared to theother copy originating from one of its private network interfaces. Group members behind a NAT gateway will receivecookie in theRe-key Event message unchanged provided thatreceived message. If it matches, theintervening NAT gateway hasresponder GC/KS knows that all values have beenconfigured correctly to allowcomputed since thepacket through without translation. 4.5.7 Multicast Application Security Association NAT Traversal Each such SA has a group-wide unique SPI, its own sequence number,last change to <secret> andassociated group keying material. Unlikethat IPi MUST be the same as the source address it saw the first time. Incorporating Ni into the hash assures that an attacker who sees only theRe-key EventCookie_Download messagemulticast to the re-key SA,cannot successfully forge amulticast application message sent"Request to Join with Cookie Info" message. This Ni value MUST be thegroup may originatesame Ni value froma GSAKMP endpoint located behind a NAT gateway. Sincetheapplication'soriginal "Request to Join" messageis encrypted within an ESP payload,for thetransport layer protocol header port fields are concealed from NAT gateways and they can not participate in NAPT. The multicast application IPSec SA mustcalculation to behandled differently depending on whether the application requires source-specific multicast.successful. Ifthe application requires IPSec source-specific multicast routing, then there must beaseparate public IP-v4 address statically reserved at the NAT gatewaynew value foreach multicast source endpoint private/public address mapping. This constraint allows<secret> is chosen while there are connections in theGCKSprocess of being initialized, a "Request tospecify at every group memberJoin with Cookie Info" might be returned with other than theinbound SPD traffic selectorcurrent <SecretVersionNumber>. The responder GC/KS in that case MAY reject the message by sending another response with apre-determined public source addressnew cookie or it MAY keep the old value of <secret> around foreach multicast source GSAKMP endpoint ina short time and accept cookies computed from either one. The responder GC/KS SHOULD NOT accept cookies indefinitely after <secret> is changed, since that would defeat part of thegroup.denial of service protection. Thetraffic selector's public source address in combination withresponder GC/KS SHOULD change thegroup's destination multicast addressvalue of <secret> frequently, especially if under attack. Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 42] INTERNET-DRAFT GSAKMP February 2004 5.3 Group Maintenance The Group Maintenance phase includes member joins and leaves, group rekey activities, andSPI selects the inbound SA. Keeping the NAT gateway's source address mapping static rather than dynamic also allowsthemulticast routers alongmanagement of Rekey events. These activities are presented in thepacket's path to apply source-specific routing policies. Notefollowing sections. 5.3.1 Group Management 5.3.1.1 Rekey Events A Rekey Event is any action, including compromise report or key expiration, that requires theusecreation of astatic source address mapping NAT avoids the need fornew group key and/or Rekey information. Once an event has been identified (as defined in the group security policytoken to specify UDP encapsulated ESP. The GCKS SPD configuration database must be kept synchronized with the group's NAT gateway address mapping configurations. If source-specific multicast routing is not required by the application, thentoken), theNAT gateway's source address translation can use dynamically allocated public IP-v4 addresses rather than statically allocated IP-v4 addresses. However, unlessGC/KS MUST create and provide a signed message containing thegroup uses UDP encapsulated ESP, thenGTPK and Rekey information to theNAT gateway must have a pool of public IP-v4 addresses reserved that is at least as large asgroup. Each GM who receives this message MUST verify thenumber of multicast source GSAKMP endpoints Harney, etal. draft-ietf-msec-gsakmp-sec-04.txt [Page 31] INTERNET-DRAFT GSAKMP October 2003 within its private network. This allowssignature on theNAT gateway to do a one-to-one mapping from every GSAKMP endpoint's private source addressmessage toa dynamically allocated public source address. The GCKS specifiesensure its authenticity. If theSPD inbound traffic selector asmessage signature does not verify, thecombination ofmessage MUST be discarded. Upon verification thegroup's destination multicast address andGM will find theSPI. In some deployments,appropriate Rekey download packet and decrypt thenumber of public IP-v4 addresses assigned toinformation with aNAT gatewaystored Rekey key(s). If a new Policy Token isvery limited (e.g. only one public address). Also,distributed with the message, itmayMUST bedifficult to predict how many multicast source endpoints will reside within the private network before the group begins its operation. For these cases,encrypted in thegroup MAY use UDP encapsulated ESP.old GTPK. TheNAT gateway applies NAPT to the UDP header's source port field, sidestepping the constraintcomponents ofits limited public address pool. The GCKS modifies the group policy token to specify that the outbound SPD processing must pre-appendaUDP headerRekey Event message are shown in Table 7: Table 7: Rekey Event Message Definition Message Name : Rekey Event Dissection : {HDR-GrpID, ([Policy Token])*, Rekey Array}SigC, [Cert] Payload Types : GSAKMP Header, [Policy Token], Rekey Event, Signature, [Certificate], SigC : Signature of Group Controller Key Server Cert : Necessary Certificates, zero or more {}SigX :Indicates fields used in Signature (data)* : Indicates encrypted information [] : Indicate an optional data item 5.3.2 Leaving a Group There are several conditions under which a member will leave a group: eviction, voluntary departure without notice, and voluntary departure with notice -- or De-Registration. Each of these is discussed in this section. Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 43] INTERNET-DRAFT GSAKMP February 2004 5.3.2.1 Eviction At some point infront oftheESP header. Whengroup's lifetime, it may be desirable to evict one or more members from aGSAKMP endpoint originatesgroup. From amulticast application packet, it insertskey management viewpoint, this involves revoking access to the group's protected data by "disabling" the departing members' keys. This is accomplished with aUDP headerRekey Event, which is discussed infront ofmore detail in section 5.3.1.1. If future access to theESP header, as per reference [XXXXX]. 5 Group Life Cycle The management of a cryptographic group follows a life-cycle: group definition, group establishment, and security relevantgroupmaintenance. Group definition involves definingis also to be denied, theparameters necessarymembers MUST be added tosupportasecure group, including itsdenied access control list, and the policytoken. Group establishment istoken's authorization rules MUST be appropriately updated so that they will exclude theprocessexpelled GM(s). After receipt ofgranting access toa newmembers. Security relevant group maintenance messages include rekey, policy changes and member deletion. EachPT, GMs SHOULD evaluate the trustworthiness ofthese life-cycle phases is discussed inany recent application data originating from thefollowing sections. 5.1 Group Definition A cryptographic group is establishedexpelled GM(s). 5.3.2.2 Voluntary Departure without Notice If a member wishes tosupport secure communications amongleave a groupof individuals. The activities necessaryfor which membership imposes no cost or responsibility tocreate a Policy Token in supportthat member, then the member MAY merely delete local copies ofa cryptographicgroupinclude - Determine Access Policy - identifykeys and cease group activities. 5.3.2.3 De-Registration If the membership in theentities that are authorizedgroup does impose cost or responsibility toreceivethe departing member, then the member SHOULD de-register from the groupkey. - Determine Authorization Policy - identify which entities are authorizedwhen that the member wishes toperform security relevant actions, including key dissemination, policy creation, and initiationleave. De-Registration consists ofsecurity management actions. - Determine Mechanisms - definea three-message exchange between thealgorithmsGM andprotocols used by GSAKMP to securethegroup.member's GCKS: the Request_to_Depart, Departure_Response, and the Departure_Ack. These messages SHOULD be done under the protection of the GSA. 5.3.2.3.1 Request to Depart -CreateThe components of a Request_to_Depart Message are shown in Table 8. Table 8: Request_to_Depart (RTD) Message Definition Message Name : Request_to_Depart (RTD) Dissection : {HDR-GrpID, GC/KS_ID, Nonce_I, Notif_Leave_Group} SigM, [Cert] Payload Types : GSAKMP Header, Identification, Nonce, Notification, Signature, [Certificate] SigM : Signature of GroupPolicy Token - formatMember Cert : Necessary Certificates, zero or more {}SigX :Indicates fields used in Signature [] : Indicate an optional data item Any GM desiring to initiate thepoliciesDe-Registration process MUST generate andmechanisms into aHarney,etal. draft-ietf-msec-gsakmp-sec-04.txtMeth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page32]44] INTERNET-DRAFT GSAKMPOctober 2003 Policy TokenFebruary 2004 send an RTD message to notify the GC/KS of its intent. As defined in the dissection of the RTD message, this message MUST contain payloads to hold the following information: the GC/KS identification, Nonce payload for freshness, andapplyNotification of theGO signature. 5.2 Group Establishment GSAKMP Group Establishment consistsdesire to leave the group. The Nonce_I value MUST be saved for later use. This message MUST then by signed by the GM. Upon receipt ofthree mandatory-to-implement messages,theRequest to Join,RTD message, theKey Download,GC/KS MUST verify that the message header is properly formed and confirm that this message is for this group by checking theKey Download Ack/Failure. The exchange may also include two OPTIONAL error messages,value of theRequest to Join Error andGroupID. If theLack_of_Ack messages. Operation usingheader checks pass, then themandatory messages onlyidentifier value in Identification payload isreferredcompared toas "Terse Mode", while inclusionits own, the GC/KSs identity, to confirm that the GM intended to converse with this GC/KS, the GC/KS who registered this member into the group. Then the identity of theerror messagingsender isreferred to as "Verbose Mode". GSAKMP implementationsextracted from the Signature payload. This identity MUSTsupport Terse Mode and MAY support Versbose Mode. Group Establishmentbe used to confirm that this GM isdiscussed in Section 5.2.1. For Denial of Service protection,aCookie Exchange MAY precedemember of theGroup Establishment exchange. The Cookie Exchange is described in Section 5.2.2. 5.2.1 Standard Group Establishment Aftergroup serviced by this GC/KS. Then theout-of-band receipt of a Policy Token, a potential Group Controller Key Server (GC/KS) verifiesGC/KS will confirm from thetoken and its eligibilityNotification payload that the GM is requesting toperformleave the group. Then the GC/KSfunctionality. It is then permittedwill verify the signature on the message tocreate any needed group keysensure its authenticity. The GC/KS MUST use verified andbegin to establishtrusted authentication material from a known root. If all checks pass and the message is successfully processed, and/or thegroup. The GSAKMP Ladder Diagram, Figure 2,GC/KS ispresented to illustratein Verbose Mode, then theprocess of establishingGCKS MUST form acryptographic group. The left side of the diagram represents the actions ofDeparture_Response message as defined in section 5.3.2.3.2. If theGC/KS. The right sideprocessing of thediagram representsmessage fails and/or theactions ofGC/KS is in Terse Mode, then theGMs.session MUST be terminated and all state associated with this session is removed. 5.3.2.3.2 Departure_Response - The components ofeach messagea Departure_Response Message are shown inthe diagram are presentedTable 9. Table 9: Departure_Response (DR) Message Definition Message Name : Departure_Response (DR) Dissection : {HDR-GrpID, Member_ID, Nonce_R, Nonce_C, Notification} SigC, [Cert] Payload Types : GSAKMP Header, Identification, Nonce, Notification, Signature, [Certificate] SigC : Signature of Group Member Cert : Necessary Certificates, zero or more {}SigX :Indicates fields used insections 5.2.1.1 - 5.2.1.5. The RequestSignature [] : Indicate an optional data item In response toJoin message is sent fromapotential GM toproperly formed and verified RTD message, the GC/KSto request admission toMUST create and send thecryptographic group. TheDR message. As defined in the dissection of the message, this messagecontains key creation material, freshness data, an optional selectionMUST contain payloads to hold the following information: GM identification, Nonce payloads for freshness, Notification for acceptance ofmechanisms,departure, and signature information. The nonce values transmitted MUST be the GC/KSs generated Nonce_R value and Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 45] INTERNET-DRAFT GSAKMP February 2004 the combined Nonce_C value which was generated by using the GC/KSs Nonce_R value and thesignature of the GM. The Key Download message is sentNonce_I value received from theGC/KS to theGM inresponsethe RTD. This Nonce_C value MUST be saved relative toan accepted Requestthis departing GMs ID. The GM MUST be able toJoin. This GC/KS-signed message contains the identifier ofprocess theGM, freshness data, key creation material, encrypted keys, andDeparture_Response message. The following checks SHOULD be performed in theencrypted Policy Token.order presented. ThePolicy Token is used to facilitate well-ordered group creation andGM MUSTincludeverify that thegroup's identification, group permissions, group join policy, group controller key server identity, group management information,message header is properly formed anddigital signatureconfirm that this message is for this group by checking the value of theGO. This will allowGroupID. If the header checks pass, the GMto determine whether group policy is compatible with local policy. The Request to Join ErrorMUST confirm that this messageis sent fromwas intended for itself by comparing theGC/KSMember ID in the Identification payload to its identity. After identification confirmation, the freshness values are checked. The GMin response to an unaccepted Request to Join. This message is not signed byMUST use its saved Nonce_I value, extract the received GC/KSfor two reasons: 1) The GM, at this point, has no knowledge Harney, etal. draft-ietf-msec-gsakmp-sec-04.txt [Page 33] INTERNET-DRAFT GSAKMP October 2003 CONTROLLER Mandatory/ MESSAGE MEMBER Optional !<-M----------Request to Join-------------! <Process RTJ> ! ! !--M----------Key Download--------------->! ! ! <Process KeyDL> !--O-------Request to Join Error--------->! or ! ! <Proc RTJ-Err> !<-M----Key Download - Ack/Failure--------! <Process KeyDL-A/F>! ! !--O------LackNonce_R value, compute the combined Nonce_C value, and compare it to the received Nonce_C value. After freshness is confirmed, confirmation ofAckknowledgement------->! ! ! <Proc LOA> !<=======SHARED KEYED GROUP SESSION======>! Figure 2: GSAKMP Ladder Diagramthe identity ofwhothe signer of the DR message is the GMs authorizedto act as aGC/KSand sois performed. Then the signaturewould thusMUST bemeaninglessverified tothe GM,ensure its authenticity, The GM MUST use verified and2) Signing responses to denied join requests would providetrusted authentication material from adenial of service potential. The message contains an indication ofknown root. If theerror condition. The Key Download Ack/Failuremessageindicates Key Download receipt status atsignature verifies, then theGM. ItGM MUST verify that the Notification isa GM-signed message containing freshness dataof Type Departure_Accepted or Request_to_Depart_Error. If the processing is successful, andstatus. The Lack_of_Ack messagethe Notification payload issent fromof type Departure_Accepted, theGC/KS tomember MUST form theGM in response to an invalid or absent Key Download Ack/Failure message. The signedDeparture_ACK messagecontains freshness and status data andas defined in section 5.3.2.3.3. If the processing isused to warnsuccessful, and theGMNotification payload is ofimpending eviction fromtype Request_to_Depart_Error, thegroup if a valid Key Download Ack/Failure is not sent. Formember MUST remove all state associated with thefollowing message structure sections, details about payload format and processing can be found in Section 7. 5.2.1.1 Requestaction. If the member still desires toJoinDe-Register from the group, the member MUST restart the De-Registration process. 5.3.2.3.3 Departure_ACK - The components ofa Request to Jointhe Departure_ACK Message are shown in Table 10: Table 10: Departure_ACK (DA) Messageare shownDefinition Message Name : Departure_ACK (DA) Dissection : {HDR-GrpID, Nonce_C, Notif_Ack}SigM Payload Types : GSAKMP Header, Nonce, Notification, Signature SigM : Signature of Group Member {}SigX :Indicates fields used inTable 1. As shown by Figure 2,Signature In response to apotentialproperly processed Departure_Response message, the GM MUSTgeneratecreate and sendan RTJ message to request permission to jointhegroup.Departure_ACK message. As defined in thedisectiondissection of theRTJmessage, this message MUST contain payloads to hold the following information:Key Creation payload for KEK generation andNonce payload forfreshness.freshness, Notification payload of type Acknowledgment (ACK), and signature information. TheNonce_Inonce value transmitted MUST besaved for later use. An OPTIONAL Notification payloadthe GMs generated Nonce_C value. Upon receipt oftype Mechanism Choices MAYthe Departure_ACK, the GCKS MUST perform the following checks. These checks SHOULD beincludedperformed in the order presented. Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 46] INTERNET-DRAFT GSAKMP February 2004 In this procedure, the GC/KS will verify that the message header is properly formed and confirm that this message is for this group by checking the value of the GroupID. If the header checks pass, the GC/KS MUST check the message for freshness. The GC/KS MUST use its saved Nonce_C value, and compare it toidentifythemechanismsreceived Nonce_C value. After freshness is confirmed, theGM wantssignature MUST be verified touse. Absenceensure its authenticity, The GC/KS MUST use verified and trusted authentication material from a known root. If the message signature verifies, the GC/KS processes the Notification payload. If the notification type is of type ACK, thispayload will causeis considered a successful processing of this message. If the processing of the message is successful, the GC/KSto select appropriate mechanismsMUST remove the member from the group. This MAY involve initiating a Rekey Event for theKey Download. Harney, etal. draft-ietf-msec-gsakmp-sec-04.txt [Page 34] INTERNET-DRAFT GSAKMP October 2003 Table 1: Request to Join (RTJ) Message Definition Message Name : Request to Join (RTJ) Dissection : {HDR-GrpID, Key Creation, Nonce_I, [Notif_Mechanism_Choices], [Notif_Cookie]} SigM, [Cert] Payload Types : GSAKMP Header, Key Creation, Nonce, Signature, [Certificate], [Notifications] SigM : Signaturegroup. If the processing ofGroup Member Cert : Necessary Certificates, zero or more {}SigX :Indicates minimum fields used in Signature [] : Indicate an optional data item In response,theGC/KS acceptsmessage fails ordenies the request based on local configuration. <Process RTJ> indicates the GC/KS actions that will determineif no Departure_Ack is received, theRTJ will be acted upon.GC/KS MAY issue a LOA message. 6 Security Suite Thefollowing checks SHOULDSecurity Definition Suite 1 MUST beperformedsupported. Other security suite definitions MAY be defined in other Internet specifications. 6.1 Assumptions All potential GMs will have enough information available to them to use theorder presented. In this procedure,correct Security Suite to join theGC/KSgroup. This can be accomplished by a well known default suite 'Security Suite 1' or by announcing/posting another suite. 6.2 Definition Suite 1 GSAKMP implementations MUSTverify thatsupport themessage header is properly formedfollowing suite of algorithms andconfirmconfigurations. The following definition of Suite 1 borrows heavily from IKE's Oakley group 2 definition and Oakley itself. The GSAKMP Suite 1 definition defines all the algorithm and cryptographic definitions required to process group establishment messages. It is important to note thatthis messageGSAKMP does not negotiate these cryptographic mechanisms. This definition isfor this groupset bychecking the value of the GroupID. If the header checks pass, then the identity ofthesender is extracted fromGroup Owner via theSignature payload. This identity MUST be used to perform access control checks, findPolicy Token (passed during theGMs credentials (e.g. certificate)GSAKMP exchange formessage verification,member verification purposes). The GSAKMP Suite 1 definition is Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 47] INTERNET-DRAFT GSAKMP February 2004 Key download andMUST also be used in thePolicy Token encryption algorithm definition: Algorithm: 3DES Mode: CBC64 KeyDownload message. Then the GC/KS will verify theLength: 192 bits Policy Token digital signatureon the message to ensure its authenticity.algorithm is: DSS-ASN1-DER Hash algorithm is: SHA-1 Nonce Hash algorithm is: SHA-1 TheGC/KS MUST use verifiedKey Creation definition is: Algorithm type is Diffie Hellman MODP group definition g: 2 p: "FFFFFFFF FFFFFFFF C90FDAA2 2168C234 C4C6628B 80DC1CD1" "29024E08 8A67CC74 020BBEA6 3B139B22 514A0879 8E3404DD" "EF9519B3 CD3A431B 302B0A6D F25F1437 4FE1356D 6D51C245" "E485B576 625E7EC6 F44C42E9 A637ED6B 0BFF5CB6 F406B7ED" "EE386BFB 5A899FA5 AE9F2411 7C4B1FE6 49286651 ECE65381" "FFFFFFFF FFFFFFFF" NOTE: The p andtrusted authentication materialg values comes froma known root. If the messageIKE [RFC 2409], section 6.2 Second Oakley Group, and p is 1024 bits long. The digital signatureverifies, the GC/KS then confirms that all required payloadsalgorithm is: DSS-SHA1-ASN1-DER The digital signature ID type is: U-NAME 7 GSAKMP Payload Structure A GSAKMP Message is composed of a GSAKMP Header (Section 7.1) followed by at least one GSAKMP Payload. All GSAKMP Payloads arepresent and properly formatted based upon the mechanisms announced and/or requested. If all checks pass,composed of theGC/KS will create and sendGeneric Payload Header (Section 7.2) followed by theKey Downloadspecific payload data. The messageas described in section 5.2.1.2. NOTE: At any one time,is chained by aGC/KS MUST process no more that one (1) valid RTJ message frompreceeding payload defining its succeeding payload. The final payload in asingle GM per group. If the GM receives no response to the RTJ within the GM's locally configured timeout value, the GM SHOULD resend the RTJmessageupwill point tothree (3) times. If any error occurs during RTJ message processing, and the GC/KS is runningno succeeding payload. All fields of type integer inTerse mode,thesession MUST be terminatedHeader andall saved state informationPayload structure that are larger than one octet, MUST becleared. The OPTIONAL Notification payload of type Cookie is discussed in section 5.2.2. 5.2.1.2 Key Download The components of a Key Download Message are shown in Table 2: Harney, etal. draft-ietf-msec-gsakmp-sec-04.txt [Page 35] INTERNET-DRAFT GSAKMP October 2003 Table 2: Key Download (KeyDL) Message Definition Message Name : Key Download (KeyDL) Dissection : {HDR-GrpID, Member ID, Nonce_R, Nonce_C, Key Creation, (Policy Token)*, (Key Download)*} SigC, [Cert] Payload Types : GSAKMP Header, Identification, Nonce, Key Creation, Policy Token, Key Download, Signature, [Certificate] SigC : Signature of Group Controller Key Server Cert : Necessary Certificates, zero or more {}SigX :Indicates minimum fields used in Signature [] : Indicate an optionalconverted into Network Byte Order prior to dataitem (data)* : Indicates encrypted information In responsetransmission. Padding of fields MUST NOT be done as this leads toa properly formed and verfied RTJ message, the GC/KS createsprocessing errors. Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 48] INTERNET-DRAFT GSAKMP February 2004 7.1 GSAKMP Header 7.1.1 GSAKMP Header Structure The GSAKMP Header fields are shown in Figure 4 andsends the KeyDL message. Asdefinedinas: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! GroupID Type ! GroupID Length! Group ID Value ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ~ ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ~ ! Next Payload ! Version ! Exchange Type ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Sequence ID ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Length ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! Figure 4: GSAKMP Header Format Group Identification Type (1 octet) - Table 11 presents thedissectiongroup identification types. This field is treated as an unsigned value. Table 11: Group Identification Types Grp ID Type Value __________________________________________ Network Byte Ordered Integer 0 ASCII 1 Reserved 2 - 192 Private Use 193 - 255 Group Identification Length (1 octet) - Length of themessage, this messageGroup ID field in octets. This value MUSTcontain payloads to holdNOT be zero (0). If thefollowing information: GM identification, Nonce payloads for freshness, Key Creation material, encrypted Policy Token, enctyped key information, and signature information. The nonce values transmittedGroupID Type is "Network Byte Ordered Integer", the length MUST be four (4). This field is treated as an unsigned value. Group Identification Value (variable length) - Indicates theGC/KSs generated Nonce_R value and the conbined Nonce_C value which was generated by usingname/title of theGS/KSs Nonce_Rgroup. This valueandMUST be unique per Group Owner. Next Payload (1 octet) - Indicates theNonce_I value received fromtype of theGMnext payload in theRTJ.message. Thekey creation material supplied by the GM and/orformat for each payload is defined in theGC/KS will be used to generatefollowing Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 49] INTERNET-DRAFT GSAKMP February 2004 sections. Table 12 presents theKEK. Generation of this KEKpayload types. This field isdefined by policy. Thetreated as an unsigned value. Table 12: Payload Types Next_Payload_Type Value ___________________________________ None 0 Policy Tokenand1 Keymaterial are encrypted inDownload Packet 2 Rekey event 3 Identification 4 Reserved 5 Certificate 6 Reserved 7 Signature 8 Notification 9 Reserved 10 Key Creation 11 Nonce 12 Reserved 13 - 192 Private Use 193 -- 255 Version (1 octet) - Indicates thegenerated KEK.version of the GSAKMP protocol in use. TheGM MUST be able to processcurrent value is one (1). This field is treated as an unsigned value. Exchange Type (1 octet) - Indicates theKey Download message. <Process KeyDL> indicatestype of exchange (also known as theGM actions that will determine howmessage type). Table 13 presents the exchange type values. This field is treated as an unsigned value. Sequence ID (4 octets) - The Sequence ID is used for replay protection of group management messages. If theKey Downloadmessagewillis not a group management message, this value MUST beacted upon.set to zero (0). Thefollowing checks SHOULDfirst value used by a (S-)GC/KS MUST beperformed in the order presented. In this procedure, the GM will verify that theone (1). For each distinct group management messageheader is properly formed and confirmthat thismessage is for(S-)GC/KS transmits, thisgroup by checking thevalueof the GroupID. If the header checks pass, the GMMUSTconfirm thatbe incremented by one (1). Receivers of this group management messagewas intended for itself by comparing the Member ID in the Identification payload to its identity. After identification confirmation, the freshness values are checked. The GMMUSTuse its save Nonve_I value, extractconfirm that the value receivedGC/KS Nonce_R value, computeis greater that thecombined Nonce_C value, and compare it tovalue of the sequence ID receivedNonce_C value. After freshness is confirmed,with thesignature MUST be verified to ensure its authenticity, The GM MUST use verified and trusted authentication materiallast group management message from this (S-)GC/KS. Group Components (e.g., GMs, S-GC/KSs) MUST terminate processing upon receipt of an authenticated group management message containing aknown root. If theSequence ID of 0xFFFFFFFF. This field is treated as an unsigned integer in network byte order. Length (4 octets) - Length of total messagesignature verifies, the key creation material(header + payloads) in octets. This field isextracted from thetreated as an unsigned integer in network byte order. Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 50] INTERNET-DRAFT GSAKMP February 2004 Table 13: Exchange Types Exchange_Type Value ________________________________________ Reserved 0 - 3 KeyCreation payloadDownload Ack/Failure 4 Rekey Event 5 Reserved 6 - 7 Request togenerate the KEK. This KEK is then usedJoin 8 Key Download 9 Cookie Download 10 Request to Join Error 11 Lack of Ack 12 Request todecryptDepart 13 Departure Response 14 Departure Ack 15 Reserved 16 - 192 Private Use 193 -- 255 7.1.2 GSAKMP Header Processing When processing thePolicy Token data. The signature onGSAKMP Header, thepolicy tokenfollowing fields MUST beverified. Access control checkschecked for correct values: 1. Group ID Type - The Group ID Type value MUST beperformed on both the GO and the GC/KSchecked todetermine both their authorities within this group. After all these checks pass,be a valid payload type as defined by Table 11. If theKEK canvalue is not valid, then depending upon mode (e.g., Terse or Verbose) either an error is logged or an appropriate message containing notification value Payload-Malformed will beused to decrypt and processsent. 2. GroupID - The GroupID of thekey material from Harney, etal. draft-ietf-msec-gsakmp-sec-04.txt [Page 36] INTERNET-DRAFT GSAKMP October 2003received message MUST checked against theKey Download payload.GroupID of the Group Component. Ifallno match issuccessful, the GMfound, then depending upon mode (e.g., Terse or Verbose) either an error is logged or an appropriate message containing notification value Invalid-Group-ID willcreate and send the Key Downloadbe sent. 3. Next Payload -Ack/Failure message as described in section 5.2.1.4.ThePolicy Token and Key Download payloads are sent encrypted in the KEK generated by the Key CreationNext Payload value MUST be checked to be a valid payloadinformation using the mechanismstype as definedin the group announcment. This guarantees that the sensitive policy and key data for the group and potential rekey data for this individual cannot be readbyanyone but the intended recipient.Table 12. Ifany error occurs during KeyDL message processing, andtheGMvalue isrunning innot valid, then depending upon mode (e.g., Tersemode, the sessionor Verbose) either an error is logged or an appropriate message containing notification value Invalid-Payload-Type will be sent. 4. Version - The GSAKMP version number MUST beterminated,checked that it is supported. If theGM MUST send a Key Download - Ack/Failureversion is not supported, then depending upon mode (e.g., Terse or Verbose) either an error is logged or an appropriate Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 51] INTERNET-DRAFT GSAKMP February 2004 messagewithcontaining notification value Invalid-Version will be sent. 5. Exchange Type - The Exchange Type MUST be checked to be aNotification Payload ofvalid exchange typeNACK to indicate termination,as defined by Table 13 andall saved state informationMUST becleared. 5.2.1.3 Request to Join Error The componentsof theRequest to Join Error Message are shown in Table 3: Table 3: Request to Join Error (RTJ-Err) Message Definition Message Name : Requesttype expected toJoin Error (RTJ-Err) Dissection : {HDR-GrpID, Nonce_I, Notification} Payload Types :be received by the GSAKMPHeader, Nonce, Notification In response to an unacceptable RTJ,state machine. If theGC/KS MAY send a Request to Join Error (RTJ-Err) message containingexchange type is not valid, then depending upon mode (e.g., Terse or Verbose) either an error is logged or an appropriateNotification payload. Note that the RTJ-Errmessageis not a signedcontaining notification value Invalid-Exchange-Type will be sent. 6. Sequence ID - The Sequence ID value MUST be checked for correctness. For negotiation messages this value MUST be zero (0). For group management messages, this value MUST be greater than thefollowing reasons: the lacklast sequence ID received from this (S-)GC/KS. Receipt ofawarenessincorrect Sequence ID onthe GM's perspective of who isgroup management messages MUST NOT cause avalid GC/KS as well as the needreply message toprotect the GC/KS from signing messages and using valuable resources. Following the sendingbe generated. Receipt of incorrect Sequence ID on non-group management messages, depending upon mode (e.g., Terse or Verbose), causes either anRTJ-Err, the GC/KS MUST terminatederror to be logged or an appropriate message containing notification value Invalid-Sequence-ID to be sent. The length fields in thesessionGSAKMP Header (Group ID Length andall saved state information MUSTLength) are used to help process the message. If any field is found to becleared. Upon receipt ofincorrect, then depending upon mode (e.g., Terse or Verbose) either anRTJ-Err message, the GMerror is logged or an appropriate message containing notification value Payload-Malformed willvalidate the following: the GroupIDbe sent. 7.2 Generic Payload Header 7.2.1 Generic Payload Header Structure Each GSAKMP payload defined in theheader belongs tofollowing sections begins with agroup togeneric header, shown in Figure 5, which provides a payload ``chaining`` capability and clearly defines the boundaries of a payload. The Generic Payload Header fields are defined as follows: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Next Payload ! RESERVED ! Payload Length ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! Figure 5: Generic Payload Header Next Payload (1 octet) - Identifier for theGM has sent an RTJ, andpayload type of theNonce_I matches a Nonce_I sentnext payload inan RTJ to that group. If the above checks are successful,theGM MAY terminatemessage. If thestate associated with that GroupID and Nonce. The GM SHOULD be capable of receiving a valid KeyDownload message for that GroupID and Nonce after receiving an RTJ-Err for a locally-configured amount of time. 5.2.1.4 Key Download - Ack/Failure The components ofcurrent payload is theKey Download - Ack/Failure Message are shownlast inTable 4: In response to a properly processed KeyDL message, the GM creates and sendsHarney,etal. draft-ietf-msec-gsakmp-sec-04.txtMeth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page37]52] INTERNET-DRAFT GSAKMPOctober 2003February 2004 the message, then this field will be 0. This field provides the ``chaining`` capability. Table4: Key Download - Ack/Failure (KeyDL-A/F) Message Definition Message Name : Key Download12 identifies the payload types. This field is treated as an unsigned value. RESERVED (1 octet) -Ack/Failure (KeyDL-A/F) Dissection : {HDR-GrpID, Nonce_C, Notif_Ack}SigMUnused, set to 0. PayloadTypes : GSAKMP Header, Nonce, Notification, Signature SigM : Signature of Group Member {}SigX :Indicates minimum fields usedLength (2 octets) - Length inSignatureoctets of theKeyDL-A/F message. As definedcurrent payload, including the generic payload header. This field is treated as an unsigned integer in network byte order format. 7.2.2 Generic Payload Header Processing When processing thedissection ofGeneric Payload Header, themessage, this messagefollowing fields MUSTcontain payloadsbe checked for correct values: 1. Next Payload - The Next Payload value MUST be checked toholdbe a valid payload type as defined by Table 12. If thefollowing information: Nonce payload for freshness, NotificationpayloadoftypeAcknowledgment (ACK). and signature information. The nonceis not valid, then depending upon mode (e.g., Terse or Verbose) either an error is logged or an appropriate message containing notification valuetransmitted MUSTInvalid-Payload-Type will bethe GMs generated Nonce_C value. The GC/KSsent. 2. RESERVED - This field MUSTbe able to process the KeyDL-A/F message. <Process KeyDL-A/F> indicatescontain theGC/KS actions that will determine howvalue zero (0). If theKeyDL-A/Fvalue of this field is not zero (0), then depending upon mode (e.g., Terse or Verbose) either an error is logged or an appropriate message containing notification value Payload-Malformed will beacted upon.sent. Thefollowing checks SHOULD be performedlength field in theorder presented. In this procedure,Generic Payload Header is used to process theGC/KSremainder of the payload. If this field is found to be incorrect, then depending upon mode (e.g., Terse or Verbose) either an error is logged or an appropriate message containing notification value Payload-Malformed willverifybe sent. 7.3 Policy Token Payload 7.3.1 Policy Token Payload Structure The Policy Token Payload contains authenticatable group specific information that describes themessage header is properly formedgroup security relevant behaviors, access control parameters, andconfirm that this message issecurity mechanisms. Figure 6 shows the format of the payload. The Policy Token Payload fields are defined as follows: Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 53] INTERNET-DRAFT GSAKMP February 2004 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Next Payload ! RESERVED ! Payload Length ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Policy Token Type ! Policy Token Data ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! Figure 6: Policy Token Payload Format Next Payload (1 octet) - Identifier forthis group by checkingthevaluepayload type of theGroupID. If the header checks pass, the GC/KS MUST check the message for freshness. The GC/KS MUST use its saved Nonve_C value, and compare it to the received Nonce_C value. After freshness is confirmed,next payload in thesignature MUST be verified to ensure its authenticity, The GC/KS MUST use verified and trusted authentication material from a known root.message. If themessage signature verifies, the GC/KS processescurrent payload is theNotification payload. Iflast in thenotification type is of type ACK,message, then this field will be 0. This field provides theGC/KS and GM have established a GSA. If``chaining`` capability. Table 12 identifies theGC/KS does not receive a KeyDL-A/F message of proper form,payload types. This field isunabletreated as an unsigned value. RESERVED (1 octet) - Unused, set tocorrectly process0. Payload Length (2 octets) - Length in octets of theKeyDL-A/F message,current payload, including theNotificationgeneric payloadtype is any value excpet ACK, or if no KeyDL-A/F messageheader. This field isreceived within the locally configured timeout, the GC/KS MUST remove this GM fromtreated as an unsigned integer in network byte order format. Policy Token Type (2 octets) - Specifies thegroup and handle according to policy. The GC/KS MAY sendtype of Policy Token being used. Table 14 identifies theOPTIONAL Lack_of_Ack message if running in Verbose Modetypes of policy tokens. This field is treated asdefinedan unsigned integer insection 5.2.1.5. 5.2.1.5 Lack of Acknetwork byte order format. Table 14: Policy Token Types Policy_Token_Type Value Definition _____________________________________________________________________________ GSAKMP_PT_V1 0 Thecomponents of a Lackformat for this Policy Token is specified in [HCLM00]. GSAKMP_ASN.1_PT_V1 1 All implementations ofAck Message are shownGSAKMP MUST support this Policy Token format. This format is specified inTable 5: If the GC/KSs local timeout value expires prior to receiving a KeyDL-A/F from the GM, the GC/KS MAY createTBD. Reserved 2 - 49152 Private Use 49153 - 65535 Policy Token Data (variable length) - Contains Policy Token information. The values for this field are token specific andsend a LOA message to the GM. As defined inthedissection offormat is specified by themessage,PT Type field. If thismessage MUST contain payloads to holdpayload is encrypted, only thefollowing information: GM identification, Nonce payloads for freshness, Notification of error, and signature information.Policy Token Data field is encrypted. Thenonce values transmitted MUST bepayload type for theGC/KSs generated Nonce_R value andPolicy Token Payload is one (1). Harney,etal. draft-ietf-msec-gsakmp-sec-04.txtMeth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page38]54] INTERNET-DRAFT GSAKMPOctober 2003 Table 5: Lack of Ack (LOA) Message Definition Message Name : Lack of Ack (LOA) Dissection : {HDR-GrpID, Member ID, Nonce_R, Nonce_C, Notification} SigC, [Cert]February 2004 7.3.2 Policy Token PayloadTypes : GSAKMP Header, Identification, Nonce, Notification, Signature, [Certificate] SigC : Signature of Group Controller Key Server Cert : Necessary Certificates, zero or more {}SigX :Indicates minimumProcessing When processing the Policy Token Payload, the following fields MUST be checked for correct values: 1. Next Payload, RESERVED, Payload Length - These fieldsusedare processed as defined inSignature [] : Indicate an optional data item the conbined Nonce_CSection 7.2.2, Generic Payload Header Processing. 2. Policy Token Type - The Policy Token Type valuewhich was generatedMUST be checked to be a valid policy token type as defined byusingTable 14. If theGS/KSs Nonce_Rvalueand the Nonce_Iis not valid, then depending upon mode (e.g., Terse or Verbose) either an error is logged or an appropriate message containing notification valuereceived fromPayload-Malformed will be sent. 3. Policy Token Data - This Policy Token Data MUST be processed according to theGM inPolicy Token Type specified. The type will define theRTJ. These values were already generated duringformat of the data. 7.4 Key Downloadmessage phase. The GM MAY be ablePayload Refer toprocess the LOA message based upon local configuration. <Process LOA> indicatestheGM actions that will determine howterminology section for theLOA message will be acted upon.different terms relating to keys used within this section. 7.4.1 Key Download Payload Structure Thefollowing checks SHOULD be performed inKey Download Payload contains group keys (e.g., group keys, initial rekey keys, etc.). These key download payloads can have several security attributes applied to them based upon theorder presented. In this procedure,security policy of theGM MUST verify thatgroup. Figure 7 shows themessage header is properly formed and confirm that this message is for this group by checkingformat of thevaluepayload. The security policy of theGroupID. Ifgroup dictates that theheader checks pass,key download payload MUST be encrypted with a key encryption key (KEK). The encryption mechanism used is specified in theGMPolicy Token. The group members MUSTconfirm that this message was intended for itself by comparingcreate theMember ID inKEK using theIdentification payload to its identity. After identification confirmation,key creation method identified in thefreshness values are checked.Key Creation Payload. TheGM MUST use its save Nonve_I value, extractKey Download Payload fields are defined as follows: Next Payload (1 octet) - Identifier for thereceived GC/KS Nonce_R value, computepayload type of thecombined Nonce_C value, and compare it tonext payload in thereceived Nonce_C value. After freshnessmessage. If the current payload isconfirmed, access control checks MUST be performed ontheGC/KS to determine its authority withinlast in the message, then thisgroup. Then signature MUSTfield will beverified to ensure its authenticity, The GM MUST use verified and trusted authentication material from a known root. If0. This field provides thechecks succeed,``chaining`` capability. Table 12 identifies theGM SHOULD resend a KeyDL-A/Fpayload types. This field is treated as an unsigned value. Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 55] INTERNET-DRAFT GSAKMP February 2004 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Next Payload ! RESERVED ! Payload Length ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Number of Items ! Key Download Data Items ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! Figure 7: Key Download Payload Format 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! KDD Item Type ! Key Download Data Item Length! ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ~ Data forthat session. 5.2.2 CookiesKey Download Data Item (Key Datum/Rekey Array) ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! Figure 8: Key Download Data Item Format RESERVED (1 octet) -Group Establishment with DenialUnused, set to 0. Payload Length (2 octets) - Length in octets ofService Protectionthe current payload, including the generic payload header. Thissection definesfield is treated as anOPTIONAL capability that MAY be implemented into GSAKMP when using IP based groups. The informationunsigned integer in network byte order format. Number of Items (2 octets) -- Contains the total number of traffic protection keys and Rekey Arrays being passed in thissectiondata block. This field isborrowed heavily from [IKEv2]treated asthis protocol has already worked through this issue and GSAKMPan unsigned integer in network byte order format. Key Download Data Items (variable length) - Contains Key Download information. The Key Download Data iscopying this concept. This section will contain paraphrased sectionsa sequence of Type/Length/Data of[IKEv2] modified for GSAKMP to definethepurposeNumber ofCookies. An optional Cookie modeItems. The format for each item isbeingdefinedfor the GSAKMP to help against DoS attacks. Harney, etal. draft-ietf-msec-gsakmp-sec-04.txt [Page 39] INTERNET-DRAFT GSAKMP October 2003 The term "cookies" originates with Karn and Simpson [RFC 2522]inPhoturis, an early proposalfigure 8. For each Key Download Data Item, the data format is as follows: Key Download Data (KDD) Item Type (1 octet) -- Identifier forkey management with IPsec. The ISAKMP fixed message header includes two eight octet fields titled "cookies". Insteadthe type ofplacing this cookiedata contained in this Key Download Data Item. See Table 15 for theheader,possible values of thisdata is moved into a Notification payload. An expected attack against GSAKMPfield. This field isstate and CPU exhaustion, wheretreated as an unsigned value. Key Download Data Item Length (2 octets) -- Length in octets of thetarget GC/KSData for the Key Download Data Item following this field. This field isflooded with Request to Join requests from forged IP addresses.treated as an unsigned integer in network byte order format. Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 56] INTERNET-DRAFT GSAKMP February 2004 Table 15: Key Download Data Item Types Key Download Data Value Definition Item Type __________________________________________________________________ GTPK 0 Thisattack cantype MUST bemade less effective if a GC/KS implementation uses minimal CPU and commits no state to the communication until it knowsimplemented. This type identifies that theinitiator potential GM can receive packets atdata contains group traffic protection key information. Rekey - LKH 1 Reserved 2 - 192 Private Use 193 - 255 Data for Key Download Data Item (variable length) -- Contains Keys and related information. The format of this field is specific depending on theaddress from which it claims to be sending them. To accomplish this,value of theGC/KS when operating in Cookie mode, SHOULD reject initial Request to Join messages unless they contain a Notification payloadKey Download Data Item Type field. For KDD Item Type oftype "cookie". It SHOULD instead sendGTPK, this field will contain aCookie Download messageKey Datum as defined in Section 7.4.1.1 . For KDD Item Type Rekey - LKH, this field will contain aresponse to the RTJ and include a cookieRekey Array as defined ina notifySection 7.4.1.2 . The encryption of this payload only covers the data subsequent to the Generic Payload header (Number of Items and Key Download Data Items fields). The payload typeCookie_Required. Potential GMs who receive such responses MUST retryfor theRequest to Join message withKey Download Packet is two (2). 7.4.1.1 Key Datum Structure A Key Datum contains all theresponder GC/KS supplied cookieinformation for a key. Figure 9 shows the format for this structure. Key Type (1 octet) -- This is the encryption algorithm for which this key data is to be used. This value is specified inits notification payloadthe Policy Token. See Table 16 for the possible values oftype Cookie,this field. This field is treated as an unsigned value. Key ID (4 octets) -- This is the ID of the key. This value MAY be defined by theoptional Notification payload ofPolicy Token. This field is treated as an octet string. Key Handle (4 octets) -- This is theRequestvalue toJoin Msg as defined in section 5.2.1.1.uniquely identify a key. Thisinitial exchange will then befield is treated asshown in Figure 3 withan octet string. Key Creation Date (15 octets) -- This is thecomponentstime value of when this key data was originally generated. This field contains thenew message Cookie Download showntimestamp inTable 6. CONTROLLER MESSAGE MEMBER in Cookie Mode !<--Request to Join without Cookie Info---! <Gen Cookie Rsp> !the ascii format YYYYMMDDHHMMSSZ, where YYYY is the year (0000 - 9999), Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 57] INTERNET-DRAFT GSAKMP February 2004 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! !!----------Cookie Download--------------->!Key Type ! Key ID ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ~ !<Process CD> !<----Request to Join with Cookie Info----! <Process RTJ>Key Handle ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ~ ! Key Creation Date ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ~ ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ~ ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ~ !!-------------Key Download--------------->!+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Key Expiration Date ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ~ !<Process KeyDL> !<-----Key Download - Ack/Failure--------! <Proc KeyDL-A/F>+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ~ ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ~ !!<=======SHARED KEYED GROUP SESSION======>!~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ~ Key Data ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! Figure3: GSAKMP Ladder Diagram with Cookies Table 6: Cookie Download Message Definition Message Name : Cookie Download Dissection : {HDR-GrpID, COOKIE_REQUIRED} Payload Types : GSAKMP Header, Notification The first two messages do not affect any GM or GC/KS state except for communicating the cookie.9: Key Datum Format Harney,etal. draft-ietf-msec-gsakmp-sec-04.txtMeth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page40]58] INTERNET-DRAFT GSAKMPOctober 2003 A GSAKMP implementation SHOULD implement its GC/KS cookie generation in such a way as to not require any saved state to recognize its valid cookie when the second Request to Join message arrives. The exact algorithms and syntax they use to generate cookies does not affect interoperability and hence is not specified here. The following is an example of how an endpoint could use cookies to implement limited DoS protection. A good way to do this is to set the cookie to be: Cookie = <SecretVersionNumber> ! Hash(Ni ! IPi ! <secret>) where <secret> is a randomly generated secret known only to the responder GC/KS and periodically changed, NiFebruary 2004 Table 16: Encryption Types Encryption_Types Value Description ___________________________________________________________________ Reserved 0 - 2 3DES_CBC64_192 3 This type MUST be supported. Reserved 4 - 11 AES_CBC 12 AES_CTR 13 Reserved 14 - 49152 Private Use 49153 - 65535 MM is theNoncenumerical valuetaken fromof theinitiator potential GM, IPimonth (01 - 12), DD is thesupposed IPday of theinitiator potential GM. <SecretVersionNumber> should be changed whenever <secret>month (01 - 31), HH isregenerated. The cookie can be recomputed when the "Request to Join with Cookie Info" arrives and compared to the cookie in the received message. If it matches, the responder GC/KS knows that all values have been computed since the last change to <secret> and that IPi MUST be the same as the source address it saw the first time. Incorporating Ni into the hash assures that an attacker who sees onlytheCookie_Download message cannot successfully forge a "Request to Join with Cookie Info" message. This Ni value MUST behour of thesame Ni value fromday (00 - 23), MM is theoriginal "Request to Join" message forminute within thecalculation to be successful. If a new value for <secret>hour (00 - 59), SS ischosen while there are connections in the process of being initialized, a "Request to Join with Cookie Info" might be returned with other thanthecurrent <SecretVersionNumber>. The responder GC/KS in that case MAY rejectseconds within themessageminute (00 - 59), and followed bysending another response with a new cookie or it MAY keeptheold value of <secret> around for a short time and accept cookies computed from either one. The responder GC/KS SHOULD NOT accept cookies indefinitely after <secret> is changed, sinceletter Z to indicate thatwould defeat part ofthis is Zulu time. Key Expiration Date (15 octets) -- This is thedenialtime value ofservice protection. The responder GC/KS SHOULD changewhen this key is no longer valid for use. This field contains the timestamp in the ascii format YYYYMMDDHHMMSSZ, where YYYY is the year (0000 - 9999), MM is the numerical value of<secret> frequently, especially if under attack. 5.3 Group Maintenance The Group Maintenance phase includes member joins and leaves, group rekey activities, andthemanagementmonth (01 - 12), DD is the day ofRekey events. These activities are presented inthefollowing sections. Harney, etal. draft-ietf-msec-gsakmp-sec-04.txt [Page 41] INTERNET-DRAFT GSAKMP October 2003 5.3.1 Rekey Events A Rekey Eventmonth (01 - 31), HH isany action, including compromise report or key expiration, that requiresthecreationhour ofa new group key and/or Rekey information. Once an event has been identified (as defined inthegroup security policy token),day (00 - 23), MM is theGC/KS MUST create and provide a signed message containingminute within theGTEKhour (00 - 59), SS is the seconds within the minute (00 - 59), andRekey information tofollowed by thegroup. Each GM who receivesletter Z to indicate that thismessage MUST verifyis Zulu time. Key Data (variable length) -- This is thesignatureactual key data, which is dependent on themessage to ensureKey Type algorithm for itsauthenticity. Ifformat. NOTE: The combination of themessage signature does not verify,Key ID and themessageKey Handle MUST bediscarded. Upon verificationunique within theGMgroup. This combination willfindbe used to uniquely identify a key. 7.4.1.2 Rekey Array Structure A Rekey Array contains theappropriateinformation for the set of KEKs that is associated with a Group Member. Figure 10 shows the format for this structure. Rekeydownload packet and decryptVersion (1 octet) -- Contains the version of the Rekey protocol in which theinformation with a storeddata is formatted. For Key Download Data Item Type of Rekeykey(s). If- LKH, refer to Section A.2 for anew Policy Tokendescription of this value. This field is treated as an unsigned value. Member ID (4 octets) -- This isdistributed with the message, it MUST be encrypted intheold GTEK. The componentsMember ID ofathe RekeyEvent message are shownsequence contained inTable 7: Table 7: Rekey Event Message Definition Message Name : Rekey Event Dissection : {HDR-GrpID, ([Policy Token])*,this RekeyArray}SigC, [Cert] Payload Types :Array. This field is treated as an octet Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 59] INTERNET-DRAFT GSAKMPHeader, [Policy Token],February 2004 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! RekeyEvent, Signature, [Certificate], SigC : SignatureVersion#! Member ID ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ~ ! Number ofGroup ControllerKEK Keys ! ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ~ KeyServer Cert : Necessary Certificates, zero or more {}SigX :Indicates minimum fields used in Signature (data)* : Indicates encrypted information [] : Indicate an optional data item 5.3.2 Leaving a Group There are several conditions under which a member will leave a group: eviction, voluntary departure without notice, and voluntary departure with notice -- or De-Registration. EachDatum(s) ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! Figure 10: Rekey Array Structure Format string. For Key Download Data Item Type ofthese is discussed in this section. 5.3.2.1 Eviction At some point in the group's lifetime, it may be desireableRekey - LKH, refer toevict one or more members from a group. FromSection A.2 for akey management viewpoint,description of thisinvolves revoking access to the group's protected data by "disabling" the departing members' keys.value. Number of KEK Keys (2 octets) -- This value isaccomplished with a Rekey Event, whichthe number of distinct KEK keys in this sequence. This value isdiscussedtreated as an unsigned integer inmore detailnetwork byte order format. Key Datum(s) (variable length) -- The sequence of KEKs insection 5.3.1. If future access to the groupKey Datum format. The format for each Key Datum in this sequence isalso to be denied,defined in section 7.4.1.1. Key ID - For Key ID within themembers MUST be addedRekey - LKH space, refer to Section A.2 for adenied access control list, and Harney, etal. draft-ietf-msec-gsakmp-sec-04.txt [Page 42] INTERNET-DRAFT GSAKMP October 2003description of this value. 7.4.2 Key Download Payload Processing Prior to processing its data, thetokens authorization rulespayload contents MUST beappropriately updated so that they will exclude the expelled GM(s). After receipt of a new PT, GMs SHOULD evaluatedecrypted. When processing thetrustworthiness of any recent application data originating fromKey Download Payload, theexpelled GM(s). 5.3.2.2 Voluntary Departure without Notice If a member wishes to leave a groupfollowing fields MUST be checked forwhich membership imposes no cost or responsibilitycorrect values: 1. Next Payload, RESERVED, Payload Length - These fields are processed as defined in Section 7.2.2, Generic Payload Header Processing. 2. KDD Item Type - All KDD Item Type fields MUST be checked tothat member, then the member MAY merely delete local copies of group keys and cease group activities. 5.3.2.3 De-Registrationbe a valid Key Download Data Item type as defined by Table 15. If themembership in the group does impose costvalue is not valid, then depending upon mode (e.g., Terse orresponsibilityVerbose) either an error is logged or an appropriate message containing notification value Payload-Malformed will be sent. 3. Key Type - All Key Type fields MUST be checked to be a valid encryption type as defined by table 16. If thedeparting member,value is not valid, Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 60] INTERNET-DRAFT GSAKMP February 2004 thenthe member SHOULD de-register from the groupdepending upon mode (e.g., Terse or Verbose) either an error is logged or an appropriate message containing notification value Invalid-Key-Information will be sent. 4. Key Expiration Date - All Key Expiration Date fields MUST be checked confirm thatthe member wishes to leave. De-Registration consists oftheir values represent athree-message exchange between the GM and the member's GCKS: the Request_to_Depart, Departure_Reponse,future and not a past time value. If theDeparture_Ack. These messages SHOULDvalue is not valid, then depending upon mode (e.g., Terse or Verbose) either an error is logged or an appropriate message containing notification value Invalid-Key-Information will bedone under the protection of the GSA. 5.3.2.3.1 Request to Depart -sent. Thecomponents of a Request_to_Depart Message are shown in Table 8. Table 8: Request_to_Depart (RTD) Message Definition Message Name : Request_to_Depart (RTD) Dissection : {HDR-GrpID, GS/KS_ID, Nonce_I, Notif_Leave_Group} SigM, [Cert] Payload Types : GSAKMP Header, Identification, Nonce, Notification, Signature, [Certificate] SigM : Signature of Group Member Cert : Necessary Certificates, zero or more {}SigX :Indicates minimumlength and counter fieldsused in Signature [] : Indicate an optional data item Any GM desiring to initiatein theDe-Registrationpayload are used to help processMUST generate and sendthe payload. If any field is found to be incorrect, then depending upon mode (e.g., Terse or Verbose) either anRTDerror is logged or an appropriate message containing notification value Payload-Malformed will be sent. 7.5 Rekey Event Payload Refer tonotifytheGC/KS of its intent. As defined in the disection ofterminology section for theRTD message,different terms relating to keys used within thismessage MUSTsection. 7.5.1 Rekey Event Payload Structure The Rekey Event Payload MAY containpayloads to hold the following information:multiple keys encrypted in Wrapping KEKs. Figure 11 shows theGC/KS identification, Nonce payload for freshness, and Notificationformat of thedesirepayload. If the data toleavebe contained within a Rekey Event Payload is too large for thegroup. The Nonce_I value MUSTpayload, the data can besavedsplit across multiple Rekey Event Payloads. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Next Payload ! RESERVED ! Payload Length ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! RekeyEvnt Type! Rekey Event Header ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ~ Rekey Event Data(s) ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! Figure 11: Rekey Event Payload Format The Rekey Event Payload fields are defined as follows: Next Payload (1 octet) - Identifier forlater use. This message MUST then by signed bytheGM. Upon receiptpayload type of theRTD message,next payload in theGC/KS MUST verify thatmessage. If themessage header is properly formed and confirm that this messagecurrent payload isfor this groupthe last in Harney,etal. draft-ietf-msec-gsakmp-sec-04.txtMeth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page43]61] INTERNET-DRAFT GSAKMPOctober 2003 by checking the value of the GroupID. IfFebruary 2004 theheader checks pass,message, then this field will be 0. This field provides the ``chaining`` capability. Table 12 identifies theidentifier value in Identificationpayload types. This field iscompared to its own, the GC/KSs identity, to confirm that the GM intendedtreated as an unsigned value. RESERVED (1 octet) - Unused, set toconverse with this GC/KS,0. Payload Length (2 octets) - Length in octets of theGC/KS who registered this member intocurrent payload, including thegroup. Thengeneric payload header. This field is treated as an unsigned integer in network byte order format. Rekey Event Type (1 octet) - Specifies theidentitytype of Rekey Event being used. Table 17 presents thesendertypes of Rekey events. This field isextracted from the Signature payload.treated as an unsigned value. Table 17: Rekey Event Types Rekey_Event_Type Value Definition ______________________________________________________________________________ None 0 Thisidentitytype MUST beused to confirm thatimplemented. In thisGMcase, the size of the Rekey Event Data field will be zero bytes long. The purpose of a Rekey Event Payload with type None is when it is necessary to send out amembernew token with no rekey information. GSAKMP Rekey Msg requires a Rekey Event Payload, and in this instance it would have rekey data of type None. GSAKMP_LKH 1 The rekey data will be of type LKH formatted according to GSAKMP. The format for this field is defined in Section 7.5.1.2. Reserved 2 - 192 Private Use 193 - 255 Rekey Event Header (variable length) - This is the header information for thegroup serviced byRekey Event. The format for thisGC/KS. Thenis defined in Section 7.5.1.1, Rekey Event Header Structure. Rekey Event Data(s) (variable length) - This is theGC/KS will confirm fromrekey information for theNotificationRekey Event. The format for this is defined in Section 7.5.1.2, Rekey Event Data(s) Structure. The Rekey Event payloadthat the GMtype isrequesting to leave the group. Then the GC/KS will verify the signature on the message to ensure its authenticity.three (3). 7.5.1.1 Rekey Event Header Structure TheGC/KS MUST use verified and trusted authentication material from a known root. If all checks pass andformat for themessageRekey Event Header issuccessfully processed, and/orshown in Figure 12. Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 62] INTERNET-DRAFT GSAKMP February 2004 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Group ID Value ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ~ Group ID Value ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Time/Date Stamp ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ~ ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ~ ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ~ ! RekeyEnt Type ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Algorithm Ver ! # of Rekey Event Data(s) ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 12: Rekey Event Header Format Group Identification Value (variable length) - Indicates theGC/KSname/title of the group to be rekeyed. This isin Verbose Mode, thentheGCKS MUST form a Departure_Response messagesame format asdefinedthe Group Identification Value insection 5.3.2.3.2. IfSection 7.1 GSAKMP Message Header. Time/Date Stamp (15 octets) -- This is theprocessing oftime value when themessage fails and/orRekey Event Data was generated. This field contains theGC/KS istimestamp inTerse Mode, thenthesession MUST be terminated and all state associated with this sessionascii format YYYYMMDDHHMMSSZ, where YYYY isremoved. 5.3.2.3.2 Departure_Responsethe year (0000 -The components of a Departure_Response Message are shown in Table 9. Table 9: Departure_Response (DR) Message Definition Message Name : Departure_Response (DR) Dissection : {HDR-GrpID, Member_ID, Nonce_R, Nonce_C, Notification} SigC, [Cert] Payload Types : GSAKMP Header, Identification, Nonce, Notification, Signature, [Certificate] SigC : Signature of Group Member Cert : Necessary Certificates, zero or more {}SigX :Indicates minimum fields used in Signature [] : Indicate an optional data item In response to a properly formed and verfied RTD message,9999), MM is theGC/KS MUST create and sendnumerical value of theDR message. As defined inmonth (01 - 12), DD is thedissectionday of themessage, this message MUST contain payloads to holdmonth (01 - 31), HH is thefollowing information: GM identification, Nonce payloads for freshness, Notification for acceptancehour ofdeparture, and signature information. The nonce values transmitted MUST betheGC/KSs generated Nonce_R value andday (00 - 23), MM is theconbined Nonce_C value which was generated by usingminute within theGS/KSs Nonce_R value andhour (00 - 59), SS is theNonce_I value received fromseconds within theGM inminute (00 - 59), and followed by theRTD. This Nonce_C value MUST be saved relativeletter Z to indicate that thisdeparting GMs ID. The GM MUST be able to processis Zulu time. Rekey Event Type (1 octet) - This is theDeparture_Response message.Rekey algorithm being used for this group. Thefollowing checks SHOULDvalues for this field can beperformedfound in Table 17. This field is treated as an unsigned value. Algorithm Version (1 octet) - Indicates theorder presented. The GM MUST verify thatversion of themessage header is properly formed and confirm that this message isRekey Type being used. For Rekey Event Type of GSAKMP_LKH, refer to Section A.2 for a description of thisgroup by checking the valuevalue. This field is treated as an unsigned value. # of Rekey Event Data(s) (2 octets) - The number of Rekey Event Data(s) contained in theGroupID. IfRekey Data. This value is treated as an unsigned integer in network byte order. Harney,etal. draft-ietf-msec-gsakmp-sec-04.txtMeth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page44]63] INTERNET-DRAFT GSAKMPOctober 2003February 2004 7.5.1.2 Rekey Event Data Structure As defined in theheader checks pass,Rekey Event Header, # of Rekey Data(s) field, multiple pieces of information are sent in a Rekey Event Data. Each end user, will be interested in only one Rekey Event Data of theGM MUST confirminformation sent. Each Rekey Event Data, will contain all the Key Packages thatthis message was intended for itself by comparinga user requires. For each Rekey Event Data, theMember IDdata following the Wrapping fields is encrypted with the key identified in theIdentification payload to its identity. After identification confirmation,Wrapping Header. Figure 13 shows thefreshness values are checked. The GM MUST use its saved Nonve_I value, extractformat of each Rekey Event Data. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Packet Length ! Wrapping KeyID ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ~ ! Wrapping Key Handle ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ~ ! # of Key Packages ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Key Packages(s) ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! Figure 13: Rekey Event Data Format Packet Length (2 octets) - Length in octets of thereceived GC/KS Nonce_R value, computeRekey Event Data, which consists of thecombined Nonce_C value,# of Key Packages andcompare it tothereceived Nonce_C value. After freshnessKey Packages(s). This value is treated as an unsigned integer in network byte order. Wrapping KeyID (4 octets) - This isconfirmed, confirmation oftheidentityKey ID of thesignerKEK that is being used for encryption/decryption of theDR messagenew (rekeyed) keys. For Rekey Event Type of Rekey - LKH, refer to Section A.2 for a description of this value. Wrapping Key Handle (4 octets) - This is a Key Handle of theGMs authorized GC/KSKEK that isperformed. Thenbeing used for encryption/decryption of thesignature MUST be verifiednew (rekeyed) keys. Refer toensure its authenticity,Section 7.4.1.1 for the values of this field. # of Key Packages (2 octets) - TheGM MUST use verified and trusted authentication material fromnumber of key packages contained in this Rekey Event Data. This value is treated as an unsigned integer in network byte order. Key Package(s) (variable length) - The type/length/value format of aknown root. IfKey Datum. The format for this is defined in Section 7.5.1.2.1. Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 64] INTERNET-DRAFT GSAKMP February 2004 7.5.1.2.1 Key Package Structure Each Key Package contains all themessage signature verifies, theninformation about theGM MUST verify thatkey. Figure 14 shows theNotification is offormat for a Key Package. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! KeyPkg Type ! Key Package Length ! Key Datum ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! Figure 14: Key Package Format Key Package TypeDeparture_Accepted or Request_to_Depart_Error. If the processing is successful, and the Notification payload is of(1 octet) - The typeDeparture_Accepted, the member MUST form the Departure_ACK message asof key in this key package. Legal values for this field are defined insection 5.3.2.3.3. If the processingTable 15, Key Download Data Types. This field issuccessful, andtreated as an unsigned value. Key Package Length (2 octets) - The length of theNotification payloadKey Datum. This field is treated as an unsigned integer in network byte order format. Key Datum (variable length) - The actual data oftype Request_to_Depart_Error, the member MUST remove all state associated with the action. Ifthemember still desires to De-Register fromkey. The format for this field is defined in Section 7.4.1.1, Key Datum. 7.5.2 Rekey Event Payload Processing When processing thegroup,Rekey Event Payload, thememberfollowing fields MUSTrestart the De-Registration process. 5.3.2.3.3 Departure_ACKbe checked for correct values: 1. Next Payload, RESERVED, Payload Length -The components of the Departure_ACK MessageThese fields areshownprocessed as defined inTable 10: Table 10: Departure_ACK (DA) Message Definition Message Name : Departure_ACK (DA) Dissection : {HDR-GrpID, Nonce_C, Notif_Ack}SigMSection 7.2.2, Generic PayloadTypes : GSAKMP Header, Nonce, Notification, Signature SigM : Signature of Group Member {}SigX :Indicates minimum fields used in Signature In responseHeader Processing. 2. Rekey Event Type - The Rekey Event Type MUST be checked to be aproperly processed Departure_Response message, the GM MUST create and send the Departure_ACK message. Asvalid rekey event type as definedinby Table 17. If thedissectionRekey Event Type is not valid, then regardless ofthe message, thismode (e.g., Terse or Verbose) an error is logged. No response error messageMUST contain payloads to hold the following information: Nonce payloadis generated forfreshness, Notification payloadreceipt oftype Acknowledgment (ACK), and signature information.a Group Management Message. 3. Group ID Value - ThenonceGroup ID valuetransmitted MUST be the GMs generated Nonce_C value. Upon receiptof theDeparture_ACK, the GCKSRekey Event Header received message MUSTperform the following checks. These checks SHOULDbeperformed in the order presented. In this procedure,checked against theGC/KS will verify thatGroupID of themessage headerGroup Component. If no match isproperly formed and confirm that thisfound, then regardless of mode (e.g., Terse or Verbose) an error is logged. No response error message is generated forthis group by checking the valuereceipt ofthe GroupID. If the header checks pass, the GC/KS MUST check the message for freshness.a Group Management Message. 4. Date/Time Stamp - TheGC/KS MUST use its saved Nonve_C value, and compare it to the received Nonce_C value. After freshness is confirmed,Date/Time Stamp value of thesignature MUSTRekey Event Header MAY beverifiedchecked toensure its authenticity, The GC/KS MUST use verified and trusted authentication material from a known root. If the message signature verifies, the GC/KS processes the Notification payload. Ifdetermine if thenotification type is of type ACK, thisRekey Event generation time isconsidered a successful processing of thisHarney,etal. draft-ietf-msec-gsakmp-sec-04.txtMeth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page45]65] INTERNET-DRAFT GSAKMPOctober 2003 message.February 2004 adequate. If theprocessing of thetime is determined not to be adequate, an error is logged. No response error message issuccessful, the GC/KS MUST remove the member from the group. This MAY involve initiatinggenerated for receipt of a Group Management Message. 5. Rekey Eventfor the group. If the processingType - The Rekey Event Type of the Rekey Event Header received messagefails or if no Departure_Ack is received, the GC/KS MAY issue a LOA message. 6 Security Suite The Security Definition Suite 1MUST besupported. Other security suite definitions MAY be defined in other internet specifications. 6.1 Assumptions All potential GMs will have enough information available to them to use the correct Security Suitechecked tojoin the group. This canbeaccomplished byawell known default suite 'Security Suite 1' orvalid rekey event type as defined byannouncing/posting another suite. 6.2 Definition Suite 1 GSAKMP implementations MUST support the following suite of algorithmsTable 17 andconfigurations. The following definitionthe same value ofSuite 1 borrows heavily from IKE's Oakley group 2 definition and Oakley itself. The GSAKMP Suite 1 definition defines allthealgorithm and cryptographic definitions required to process group establishment messages. ItRekey Event Type earlier in this payload. If the Rekey Event Type isimportant to note that GSAKMP doesnotnegotiate these cryptographic mechanisms. This definition is set by the Group Owner viavalid or not equal to thePolicy Token (passed duringprevious value of theGSAKMP exchange for member verification purposes). The GSAKMP Suite 1 definitionRekey Event Type, then regardless of mode (e.g., Terse or Verbose) an error isKey download and Policy Token encryption algorithm definition: Algorithm: 3DES Mode: CBC64 Key Length: 192 bits Policy Token digital signature algorithm is: DSS-ASN1-DER Hash algorithm is: Harney, etal. draft-ietf-msec-gsakmp-sec-04.txt [Page 46] INTERNET-DRAFT GSAKMP October 2003 SHA-1 Nonce Hash algorithm is: SHA-1logged. No response error message is generated for receipt of a Group Management Message. 6. Algorithm Version - TheKey Creation definition is:Rekey AlgorithmtypeVersion number MUST be checked that it isDiffie Hellman MODP group definition g: 2 p: "FFFFFFFF FFFFFFFF C90FDAA2 2168C234 C4C6628B 80DC1CD1" "29024E08 8A67CC74 020BBEA6 3B139B22 514A0879 8E3404DD" "EF9519B3 CD3A431B 302B0A6D F25F1437 4FE1356D 6D51C245" "E485B576 625E7EC6 F44C42E9 A637ED6B 0BFF5CB6 F406B7ED" "EE386BFB 5A899FA5 AE9F2411 7C4B1FE6 49286651 ECE65381" "FFFFFFFF FFFFFFFF" NOTE: The p and g values comes from IKE [RFC 2409], section 6.2 Second Oakley Group, and psupported. If the version is1024 bits long. The digital signature algorithm is: DSS-ASN1-DER Hash algorithm is: SHA-1 The digital signature ID type is: U-NAME 7 GSAKMP Payload Structure A GSAKMP Messagenot supported, then regardless of mode (e.g., Terse or Verbose) an error iscomposedlogged. No response error message is generated for receipt of aGSAKMP Header (Section 7.1) followed by at least one GSAKMP Payload. All GSAKMP PayloadsGroup Management Message. The length and counter fields arecomposed ofused to help process theGeneric Payload Header (Section 7.2) followed bymessage. If any field is found to be incorrect, then termination processing MUST be initiated. A GM MUST process all thespecific payload data.Rekey Event Datas as based on the Rekey method used there is a potential that multiple Rekey Event Datas are for this GM. ThemessageRekey Event Datas are processed in order until all Rekey Event Datas are consumed. 1. Wrapping KeyID - The Wrapping KeyID MUST be checked against the list of stored KEKs that this GM holds. If a match ischained byfound, then continue processing this Rekey Event Data. Otherwise, skip to the next Rekey Event Data. 2. Wrapping Handle - If apreceeding payload defining its succeeding payload. The final payload inmatching Wrapping KeyID was found, then the Wrapping Handle MUST be checked against the handle of the KEK for which the KeyID was amessagematch. If the handles match, then the GM willpointprocess the Key Packages associated with this Rekey Event Data. Otherwise, skip tono succeeding payload. All fields of type integerthe next Rekey Event Data. If a GM has found a matching Wrapping KeyID and Wrapping Handle, the GM decrypts the remaining data in this Rekey Event Data according to policy using theHeaderKEK defined by the Wrapping KeyID andPayload structure thatHandle. After decrypting the data, the GM extracts the # of Key Packages field to help process the subsequent Key Packages. The Key Packages arelarger than one octet,processed as follows: 1. Key Package Type - The Key Package Type MUST beconverted into Network Byte Order priorchecked todata transmission. 7.1 GSAKMP Header 7.1.1 GSAKMP Header Structure The GSAKMP Header fields arebe a valid key package type as definedin Figure 4: Harney, etal. draft-ietf-msec-gsakmp-sec-04.txt [Page 47] INTERNET-DRAFT GSAKMP October 2003 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! GroupIDby Table 15. If the Key Package Type! GroupID Length!is not valid, then regardless of mode (e.g., Terse or Verbose) an error is logged. No response error message is generated for receipt of a GroupID Value ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ~ ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ~ ! Next Payload ! Version ! Exchange Type ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Sequence ID ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Length ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! Figure 4:Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 66] INTERNET-DRAFT GSAKMPHeader Format Group IdentificationFebruary 2004 Management Message. 2. Key Package Length - The Key Package Length is used to process the subsequent Key Datum information. 3. Key Type(1 octet)- The Key Type MUST be checked to be a valid key type as defined by Table11 presents16. If thegroup identification types. Table 11: Group Identification Types Grp IDKey Package TypeValue ______________________________________ Network Byte Ordered Integer 0 Ascii 1 Other 2-255 Group Identification Length (1 octet) - Lengthis not valid, then regardless of mode (e.g., Terse or Verbose) an error is logged. No response error message is generated for receipt of a Group Management Message. 4. Key IDfield in octets. Group Identification Value (variable length)-IndicatesThe Key ID MUST be checked against thename/titleset of Key IDs that this user maintains for this Key Type. If no match is found, then regardless of mode (e.g., Terse or Verbose) an error is logged. No response error message is generated for receipt of a Group Management Message. 5. Key Handle - The Key Handle is extracted as is and is used to be thegroup. Next Payload (1 octet)new Key Handle for the Key currently associated with the Key Package's Key ID. 6. Key Creation Date -IndicatesThe Key Creation Date MUST be checked that it is subsequent to the Key Creation Date for the currently held key. If this date is prior to the currently held key, then regardless of mode (e.g., Terse or Verbose) an error is logged. No response error message is generated for receipt of a Group Management Message. 7. Key Expiration Date - The Key Expiration Date MUST be checked that it is subsequent to the Key Creation Date just received and that thetype oftime rules conform with policy. If thefirst payload inexpiration date is not subsequent to themessage. The formatcreation date or does not conform with policy, then regardless of mode (e.g., Terse or Verbose) an error is logged. No response error message is generated foreach payloadreceipt of a Group Management Message. 8. Key Data - The Key Data isdefinedextracted based on the length information in thefollowing sections. Table 12 presentskey package. If there were no errors when processing thepayload types. Version (1 octet) - IndicatesKey Package, theversionkey represented by the KeyID will have all of its data updated based upon theGSAKMP protocol in use.received information. 7.6 Identification Payload 7.6.1 Identification Payload Structure Thecurrent valueIdentification Payload contains entity-specific data used to exchange identification information. This information isone (1). Exchange Type (1 octet) - Indicatesused to verify thetypeidentities ofexchange (also known asmembers. Figure 15 shows themessage type). Table 13 presentsformat of theexchange type values.Identification Harney,etal. draft-ietf-msec-gsakmp-sec-04.txtMeth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page48]67] INTERNET-DRAFT GSAKMPOctober 2003 Table 12: Payload Types Next_Payload_Type Value ___________________________________ NoneFebruary 2004 Payload. 0 1 2 3 0Policy Token1Key Download Packet2Rekey event3Identification4Reserved5Certificate6Reserved7Signature8Notification9Reserved 10 Key Creation 11 Nonce 12 Reserved 13 - 127 Private Use 128 -- 255 Table 13: Exchange Types Exchange_Type Value ___________________________________ Reserved0-1 2 3Key Download Ack/Failure4Rekey Event5Reserved6No Message7Request to Join8Key Download9Cookie Download 10 Request to Join Error 11 Ack Error 12 Other 13-255 Harney, etal. draft-ietf-msec-gsakmp-sec-04.txt [Page 49] INTERNET-DRAFT GSAKMP October 2003 Sequence0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Next Payload ! RESERVED ! Payload Length ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! ID(4 octets)Type ! Identification Data ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! Figure 15: Identification Payload Format The Identification Payload fields are defined as follows: Next Payload (1 octet) -Group Management replay protection field. Sequence IDIdentifier forgroup management messages. If not a group management message, this value MUST be set to zero (0). When a (S-)GC/KS is initiated, it MUST set its initial sequence ID value to one (1). For each distinct group management message that this (S-)GC/KS transmits, this value MUST be incremented by one (1). Receiversthe payload type ofthis group management message MUST confirm thatthevalue received is greater thatnext payload in thevalue ofmessage. If thesequence ID received withcurrent payload is the lastgroup management message fromin the message, then this(S-)GC/KS. GMs MUST also recognize receipt of a Group Management messages that suffer from rolloever and handle accordingly.field will be 0. This field provides the ``chaining`` capability. Table 12 identifies the payload types. This field is treated as an unsigned value. RESERVED (1 octet) - Unused, set to 0. Payload Length(4(2 octets) - Lengthof total message (header + payloads)inoctets. 7.1.2 GSAKMP Header Processing When processing the GSASKMP Header, the following fields MUST be checked for correct values: 1. GroupID - The GroupIDoctets of thereceived message MUST match the GroupID ofcurrent payload, including theprocessing member. 2. Next Payload - The Next Payload value MUST be a validgeneric payload header. This field is treated as an unsigned integer in network byte order format. Identification (ID) Type (1 octet) - Specifies the type of Identification being used. Table 18 identifies possible values for this type. This field is treated asdefined byan unsigned value. Table12. 3. Version - The GSAKMP version numbers MUST match. 4. Exchange Type18: Identification Types ID_Type Value Description _______________________________________________________________________________ Reserved 0 -The Exchange Type29 Sender Unencoded Name 30 This type MUST bea valid exchangeimplemented. (S-U-NAME) The format for this typeas defined by Table 13is identical to U-NAME, and is defined in Section 7.6.1.1. Receiver Unencoded Name 31 This type MUST beof theimplemented. (R-U-NAME) The format for this typeexpectedis identical toreceive. 5. Sequence IDU-NAME, and is defined in Section 7.6.1.1. Reserved 32 - 192 Private Use 193 - 255 Identification Data (variable length) - Contains identity information. Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 68] INTERNET-DRAFT GSAKMP February 2004 TheSequence ID value MUST be of the correct value. For negotiation messages this value MUST be zero (0). For group management messages,values for thisvalue MUST be greater thanfield are group-specific and the format is specified by thelast sequenceIDreceived from this (S-)GC/KS.Type field. Thelength fields in the GSAKMP Header are used to help process the message. If anyformat for this field isfound to be incorrect, then termination processing MUST be initiated. Harney, etal. draft-ietf-msec-gsakmp-sec-04.txt [Page 50] INTERNET-DRAFT GSAKMP October 2003 7.2 Generic Payload Header 7.2.1 Generic Payload Header Structure Each GSAKMP payload definedstated inthe following sections beginsconjunction witha generic header, shownthe type inFigure 5, which provides aTable 18. The payload``chaining`` capability and clearly definestype for theboundaries of a payload. The GenericIdentification PayloadHeader fields are defined as follows:is four (4). 7.6.1.1 U-NAME Structure The format for type Unencoded Name (U-NAME) is shown in Figure 16. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! !Next PayloadSerial Number ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ~ ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ~ ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ~ ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ~ !RESERVED+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! !PayloadLength ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! DN Data ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! Figure5: Generic Payload Header Next Payload (1 octet) - Identifier for the payload type of the next payload16: Unencoded Name (U-NAME) Format Serial Number (20 octets) -- The certificate serial number. This field is treated as an unsigned integer in network byte order format. Length (4 octets) -- Length in octets of themessage. If the current payloadDN Data field. This field isthe lasttreated as an unsigned integer in network byte order format. DN Data (variable length) -- The actual ascii DN value (Subject field) using themessage, then this field will be 0. Thisslash (/) character for fieldprovidesdelimiters. (e.g., "/C=US/ST=MD/L=Somewhere/O=ACME, Inc./OU=DIV1/CN=user1/Email=user1@acme.com" without the``chaining`` capability. Table 12 identifiessurrounding quotes) Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 69] INTERNET-DRAFT GSAKMP February 2004 7.6.2 Identification Payload Processing When processing thepayload types. RESERVED (1 octet) - Unused, set to 0.Identification Payload, the following fields MUST be checked for correct values: 1. Next Payload, RESERVED, Payload Length(2 octets)-LengthThese fields are processed as defined inoctetsSection 7.2.2, Generic Payload Header Processing. 2. Identification Type - The Identification Type value MUST be checked to be a valid identification type as defined by Table 18. If the value is not valid, then depending upon mode (e.g., Terse or Verbose) either an error is logged or an appropriate message containing notification value Payload-Malformed will be sent. 3. Identification Data - This Identification Data MUST be processed according to the identification type specified. The type will define the format of thecurrent payload, includingdata. If thegeneric payload header. 7.2.2 Generic Payload Headeridentification data is being used to find a match an no match is found, then depending upon mode (e.g., Terse or Verbose) either an error is logged or an appropriate message containing notification value Invalid-ID-Information will be sent. 7.6.2.1 U-NAME Processing When processing theGeneric Payload Header,Identification Data of type U-NAME, the following fields MUST be checked for correct values: 1.Next PayloadSerial Number - TheNext Payload valueserial number MUST be avalid payload type as defined by Table 12. 2. RESERVED - This field MUST contain thepositive valuezero (0). The length field in the Generic Payload Header is usedtoprocess the remainder of the payload.be a valid serial number from a conforming CA. Ifany fieldthe value isfound to be incorrect,not valid, thentermination processing MUSTdepending upon mode (e.g., Terse or Verbose) either an error is logged or an appropriate message containing notification value Payload-Malformed will beinitiated. Harney, etal. draft-ietf-msec-gsakmp-sec-04.txt [Page 51] INTERNET-DRAFT GSAKMP October 2003 7.3 Policy Token Payload The Policy Token Payload contains authenticatable group specific information that describes the group security relevant behaviors, access control parameters, and security mechanisms. Figure 6 shows the format of the payload. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Next Payload ! RESERVED ! Payload Length ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! PT Type ! Policy Token Data ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! Figure 6: Policy Token Payload Formatsent. 2. DN Data - ThePolicy Token Payload fields are definedDN data is process asfollows: Next Payload (1 octet) - Identifier for the payload typean ascii string. These 2 pieces ofthe next payload in the message. If the current payload is the lastinformation, Serial Number and DN Data, inthe message, then this fieldconjunction will then be0. RESERVED (1 octet) - Unused, setused for party identification. These values are also used to0. Payload Length (2 octets) - Length in octets of the current payload, including the generic payload header. Policy Token (PT) Type (2 octets) - Specifies the type of Policy Token being used. Table 14 identifieshelp identify thetypes of policy tokens. Table 14: Policy Token Types PT_Type Value Definition ____________________________________________________________________________ GSAKMP_V1_PT 0certificate when necessary. Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 70] INTERNET-DRAFT GSAKMP February 2004 7.7 Certificate Payload 7.7.1 Certificate Payload Structure Theformat for this Policy Token is specifiedCertificate Payload provides a means to transport certificates or other certificate-related information via GSAKMP and can appear in[HCLM00]. GSAKMP_ASN.1_PT 1 All implementationsany GSAKMP message. Certificate payloads SHOULD be included in an exchange whenever an appropriate directory service (e.g. Secure DNS [DNSSEC]) is not available to distribute certificates. Multiple certificate payloads MAY be sent to enable verification of certificate chains. Conversely, zero (0) certificate payloads may be sent and the receiving GSAKMP MUSTsupport this Policy Token format. This format is specified in TBD. Reserved 2-65535 Policy Token Data (variable length) - Contains Policy Token information. The valuesrely on some other mechanism to retrieve certificates forthis field are token specific andverification purposes. Figure 17 shows theformat is specified byformat of thePT Type field. Harney, etal. draft-ietf-msec-gsakmp-sec-04.txt [Page 52] INTERNET-DRAFT GSAKMP October 2003Certificate Payload. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Next Payload ! RESERVED ! Payload Length ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! !Key DownloadCert Type ! Certificate Data ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! Figure7: Key Download17: Certificate Payload FormatIf this payload is encrypted, only the Policy Token Data field is encrypted. The payload type for the Policy Token Payload is one (1). 7.4 Key Download Payload The Key Download Payload contains group keys (eg., group keys, initial rekey keys, etc.). These key download payloads can have several security attributes applied to them based upon the security policy of the group. Figure 7 shows the format of the payload. The security policy of the group dictates that the key download payload MUST be encrypted with a key encryption key (KEK). The type of encryption used is specified in the Policy Token. The group members MUST create the KEK using the key creation method identified in the Key Creation Payload.TheKey DownloadCertificate Payload fields are defined as follows: Next Payload (1 octet) - Identifier for the payload type of the next payload in the message. If the current payload is the last in the message, then this field will be 0. This field provides the ``chaining`` capability. Table 12 identifies the payload types. This field is treated as an unsigned value. RESERVED (1 octet) - Unused, set to 0. Payload Length (2 octets) - Length in octets of the current payload, including the generic payload header.Key Download Data (variable length) - Contains Key Download information. Number of Key Packets (2 octets) -- Contains the total number of both GTEK and Rekey arrays being passed in this data block. For each Key Packet, the data formatThis field is treated asfollows: Harney, etal. draft-ietf-msec-gsakmp-sec-04.txt [Page 53] INTERNET-DRAFT GSAKMP October 2003 Key Download Data (KDD) Type (1 octet) -- Identifier for the Key Data field of this Key Packet. See Table 15 for the possible values of this field. Table 15: Key Download Data Types Key Download Dataan unsigned integer in network byte order format. Certificate TypeValue ________________________________ GTEK 0 Rekey - LKH 1 Unassigned 2-255 Key Download Length(2 octets)-- Length in octets- This field indicates the type of certificate or certificate-related information contained in theKey Packet data following thisCertificate Data field.Key PacketTable 19 presents the types of certificate payloads. This field is treated as an unsigned integer in network byte order format. Certificate Data (variable length)-- Contains Key information.- Actual encoding of certificate data. Theformattype ofthis fieldcertificate isspecific depending on the value ofindicated by theKey Download DataCertificate Type/Encoding field.If thisHarney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 71] INTERNET-DRAFT GSAKMP February 2004 Table 19: Certificate Payload Types Certificate_Type Value __________________________________________________________________ None 0 Reserved 1 - 3 X.509v3 Certificate -- Signature - DER Encoding 4 Reserved 5 -- 49152 Private Use 49153 -- 65535 The payloadis encrypted, onlytype for theKey Download Data fieldCertificate Payload isencrypted. For a Key Download Data value of GTEK,six (6). 7.7.2 Certificate Payload Processing When processing theKey Packet Data field format isCertificate Payload, the following fields MUST be checked for correct values: 1. Next Payload, RESERVED, Payload Length - These fields are processed as defined in SectionA.1.1. For a Key Download Data7.2.2, Generic Payload Header Processing. 2. Certificate Type - The Certificate Type valueof Rekey,MUST be checked to be a valid certificate type as defined by Table 19. If theKey Packet Data field formatvalue isdefined in Section A.1.2.not valid, then depending upon mode (e.g., Terse or Verbose) either an error is logged or an appropriate message containing notification value Cert-Type-Unsupported will be sent. 3. Certificate Data - This Certificate Data MUST be processed according to the certificate type specified. Thepayloadtypeforwill define theKey Download Packet is two (2). 7.5 Rekey Eventformat of the data. 7.8 Signature Payload 7.8.1 Signature Payload Structure TheRekey EventSignature PayloadMAY contain multiple keys encrypted in Rekey keys. These Rekey Event payloads can have several security attributes applied to them based uponcontains data generated by thesecurity policydigital signature function. The digital signature, as defined by the dissection of each message, covers thegroup.message from the GSAKMP Message Header through the Signature Payload up to but not including the Signature Data Length. Figure818 shows the format of thepayload.Signature Payload. TheRekey EventSignature Payload fields are defined as follows:Next Payload (1 octet) - Identifier for the payload type of the next payload in the message. If the current payload is the last in the message, then this field will be 0. RESERVED (1 octet) - Unused, set to 0. Payload Length (2 octets) - Length in octets of the current payload,Harney,etal. draft-ietf-msec-gsakmp-sec-04.txtMeth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page54]72] INTERNET-DRAFT GSAKMPOctober 2003February 2004 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Next Payload ! RESERVED!! Payload Length ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Signature Type ! Sig ID Type ! ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ~ Signature Timestamp ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ~ ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ~ ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ~ ! Signer ID Length ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Signer ID Data ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Signature Length ! Signature Data ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ~ ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! Figure 18: Signature Payload Format Next Payload (1 octet) - Identifier for the payload type of the next payload in the message. If the current payload is the last in the message, then this field will be 0. This field provides the ``chaining`` capability. Table 12 identifies the payload types. This field is treated as an unsigned value. RESERVED (1 octet) - Unused, set to 0. Payload Length! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Rekey Type ! Rekey Event Data ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! Figure 8: Rekey Event Payload Format(2 octets) - Length in octets of the current payload, including the generic payload header.RekeyThis field is treated as an unsigned integer in network byte order format. Signature Type(1 octet) - Specifies(2 octets) -- Indicates the type ofRekey Event being used.signature. Table1620 presents thetypes of Rekey events. Table 16: Rekey Event Types Rekey_Type Value Definition ______________________________________________________________________________ None 0allowable signature types. Thistype MUST be implemented. In this case,field is treated as an unsigned integer in network byte order format. Signature ID Type (1 octet) -- Indicates thesize offormat for theRekey Event Data field will be zero byes long.Signature ID Data. Table 21 presents the allowable signature ID types. Thepurpose of a Rekey Event Payload with type Noneformats for these types are defined within the table. This field is treated as an unsigned value. Signature Timestamp (15 octets) -- This is the time value whenitthe digital signature was applied. This field contains the timestamp in the ascii format YYYYMMDDHHMMSSZ, where YYYY isnecessary to send out a new tokenthe year (0000 - 9999), MM is Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 73] INTERNET-DRAFT GSAKMP February 2004 Table 20: Signature Types Signature Type Value Description ________________________________________________________________________ DSS/SHA1 withno rekey information. GSAKMPekey Msg requires a Rekey Event PL, and in this instance it would have rekey data ofASN.1/DER encoding 0 This typeNone. GSAKMP_LKHMUST be (DSS-SHA1-ASN1-DER) supported. Reserved 1The rekey data will by of- 41952 Private Use 41953 - 65536 Table 21: Signature ID Types Signature ID Type Value Description _______________________________________________________________________________ Unencoded Name (U-NAME) 0 This typeLKH formatted according to GSAKMP.MUST be supported. The format for thisfieldtype is defined in SectionB.2. Unassigned 2-255 Rekey Event Data (variable length)7.6.1.1, U-NAME Structure. Reserved 1 -Contains Rekey Event information. The values for this field are group specific and192 Private Use 193 - 255 theformat is specified bynumerical value of theRekey Type field. The Rekey Event payload type is three (3). 7.6 Identification Payload The Identification Payload contains entity-specific data used to exchange identification information. This informationmonth (01 - 12), DD isused to verifytheidentitiesday ofmembers. Figure 9 showstheformatmonth (01 - 31), HH is the hour of theIdentification Payload. Harney, etal. draft-ietf-msec-gsakmp-sec-04.txt [Page 55] INTERNET-DRAFT GSAKMP October 2003 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Next Payload ! RESERVED ! Payload Length ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! ID Type ! Identification Data ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! Figure 9: Identification Payload Format The Identification Payload fields are defined as follows: Next Payload (1 octet)day (00 -Identifier for23), MM is thepayload typeminute within the hour (00 - 59), SS is the seconds within the minute (00 - 59), and followed by the letter Z to indicate that this is Zulu time. Signer ID Length (2 octets) - Length in octets of thenext payloadSigner' ID. This field is treated as an unsigned integer in network byte order format. Signer ID Data (variable length) -- Data identifying themessage. IfSigner's ID (e.g., DN). The format for this field is based on thecurrent payloadSignature ID Type field and is shown where that type isthe last in the message, thendefined. The contents of this fieldwillMUST be0. RESERVED (1 octet) - Unused, setchecked against the Policy Token to0. Payloaddetermine the authority and access of the Signer within the context of the group. Signature Length (2 octets)--- Length in octets of thecurrent payload, including the generic payload header. Identification (ID) Type (1 octet) - Specifies the type of Identification being used. Table 17 identifies possible values for this type. Table 17: Identification Types ID_Type Value ____________________________________________ Sender Unencoded Name (S-U-NAME) 0 Receiver Unencoded Name (R-U-NAME) 1 Unassigned 2-255 IdentificationSignature Data. This field is treated as an unsigned integer in network byte order format. Signature Data (variable length) -Contains identity information. The values for this field are group-specific andData that results from applying theformat is specified bydigital signature function to theID Type field. The format for this field is defined in Section A.2.1GSAKMP message and/or payload. The payload type for theIdentificationSignature Payload isfour (4). 7.7 Certificate Payload The Certificate Payload provides a means to transport certificates or other certificate-related information via GSAKMP and can appear in any GSAKMPeight (8). Harney,etal. draft-ietf-msec-gsakmp-sec-04.txtMeth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page56]74] INTERNET-DRAFTGSAKMP October 2003 message. Certificate payloads SHOULD be included in an exchange whenever an appropriate directory service (e.g. Secure DNS [DNSSEC]) is not available to distribute certificates. Figure 10 shows the format of the Certificate Payload. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! NextGSAKMP February 2004 7.8.2 Signature Payload! RESERVED !Processing When processing the Signature Payload, the following fields MUST be checked for correct values: 1. Next Payload, RESERVED, Payload Length! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Cert Type ! Certificate Data ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! Figure 10: Certificate Payload Format The Certificate Payload- These fields aredefinedprocessed asfollows: Nextdefined in Section 7.2.2, Generic Payload(1 octet)Header Processing. 2. Signature Type -Identifier for the payloadThe Signature Type value MUST be checked to be a valid signature typeof the next payload in the message.as defined by Table 20. If thecurrent payloadvalue isthe last in the message,not valid, thenthis fielddepending upon mode (e.g., Terse or Verbose) either an error is logged or an appropriate message containing notification value Payload-Malformed will be0. RESERVED (1 octet)sent. 3. Signature ID Type -Unused, setThe Signature ID Type value MUST be checked to0. Payload Length (2 octets) - Length in octets ofbe a valid signature ID type as defined by Table 21. If thecurrent payload, includingvalue is not valid, then depending upon mode (e.g., Terse or Verbose) either an error is logged or an appropriate message containing notification value Payload-Malformed will be sent. 4. Signature Timestamp - This field MAY be checked to determine if thegeneric payload header. Certificate Type (2 octets)transaction signing time is adequate. 5. Signature ID Data - This fieldindicateswill be used to identify thetype of certificate or certificate-relatedsending party. This informationcontained inMUST then be used to confirm that theCertificate Data field. Table 18 presentscorrect party sent us this information. This field is also used to retrieve thetypesappropriate public key of the certificatepayloads. Table 18: Certificate Payload Types Certificate_Type Value ____________________________________________________________ None 0 Reserved 1 - 3 X.509 Certificate --to verify the message. 6. Signature- DER Encoding 4 Reserved 5 -- 65534 CertificateData(variable length)-Actual encoding of certificate data. The typeThis value MUST be compared to the recomputed signature to verify the message. Information on how to verify certificates used to ascertain the validity of the signature can be found in [RFC 3280]. Only after the certificateis indicatedidentified by theCertificate Type/Encoding field. The payload typeSignature ID Data is verified can the signature be computed to compare to the signature data for signature verification. The length fields in theCertificateSignature Payload are used to process the remainder of the payload. If any field issix (6). Harney, etal. draft-ietf-msec-gsakmp-sec-04.txt [Page 57] INTERNET-DRAFT GSAKMP October 2003 7.8 Signaturefound to be incorrect, then termination processing MUST be initiated. 7.9 Notification Payload7.8.1 Signature7.9.1 Notification Payload Structure TheSignatureNotification Payloadcontainscan contain both GSAKMP and group specific datagenerated by the digital signature function. The digital signature covers the Signature Payload Spanandthe Signature Payload upis used tobut not including the Signature Data Length.transmit informational data, such as error conditions, to Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 75] INTERNET-DRAFT GSAKMP February 2004 a GSAKMP peer. It is possible to send multiple independent Notification payloads in a single GSAKMP message. Figure1119 shows the format of theSignatureNotification Payload. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Next Payload ! RESERVED !Payload Length ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Signature Type! Sig ID Type ! Signature Payload Span ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ~ ! Signature Timestamp ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ~ ! Signer ID Lenth ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Signer ID Data ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! SignaturePayload Length !Signature Data ~+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!~! Notification Type ! Notification Data ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! Figure11: Signature19: Notification Payload Format TheSignatureNotification Payload fields are defined as follows: Next Payload (1 octet) - Identifier for the payload type of the next payload in the message. If the current payload is the last in the message, then this field will be 0. This field provides the ``chaining`` capability. Table 12 identifies the payload types. This field is treated as an unsigned value. RESERVED (1 octet) - Unused, set to 0. Payload Length (2 octets) - Length in octets of the current payload, including the generic payload header.SignatureThis field is treated as an unsigned integer in network byte order format. Notification Type(1 octet) -- Indicates(2 octets) - Specifies the type ofsignature. Table 19 presents the allowable signature types. Signature ID Type (1 octet) -- Indicates the format for the Signature ID Data.notification message. Table2022 presents theallowable signature ID types. The formats for these types are defined in Section A.2.1 Harney, etal. draft-ietf-msec-gsakmp-sec-04.txt [Page 58] INTERNET-DRAFT GSAKMP October 2003 Table 19: Signature Types Signature Type Value ____________________________________________________ DSS with ASN.1/DER encoding (DSS-ASN1-DER) 0 Other 1-255 Table 20: Signature Types Signature ID Type Value _________________________________ Unencoded Name (U-NAME) 0 Other 1-255 SignatureNotify PayloadSpan (4 octets) - Identifies the information included in the signature. The first two octets define the first signature payload. The third and fourth octet define the last payload. The payloads in the message are an ordered sequence beginning at the header, with a value of zero (0). If the signature payload itself is not in the signature span, you MUST still sign over the signature payload up to the signature data. Signature Timestamp (4 octets) -- Date and time that the digital signature was applied.Types. This fieldcontains the time in seconds from the epoch 00:00 GMT 1 January 1970. Signer ID Length (2 octets) - Lengthis treated as an unsigned integer inoctets of the Signer' ID. Signer IDnetwork byte order format. Notification Data (variable length)-- Data identifying- Informational or error data transmitted in addition to theSigner's ID (e.g., DN). The formatNotify Payload Type. Values for this fieldis based on the Signature ID Type field and is shown where thatare Domain of Interpretation (DOI)-specific. The payload type for the Notification Payload isdefined.nine (9). Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 76] INTERNET-DRAFT GSAKMP February 2004 Table 22: Notification Types Notification Type Value ________________________________________________ None 0 Invalid-Payload-Type 1 Situation-Not-Supported 2 Reserved 3 Invalid-Version 4 Invalid-Group-ID 5 Invalid-Sequence-ID 6 Payload-Malformed 7 Invalid-Key-Information 8 Invalid-ID-Information 9 Invalid-Cert-Encoding 10 Invalid-Certificate 11 Cert-Type-Unsupported 12 Invalid-Cert-Authority 13 Authentication-Failed 14 Invalid-Signature 15 Notify-GSA-Lifetime 16 Certificate-Unavailable 17 Unequal-Payload-Lengths 18 Unauthorized-Request 19 Unable-To-Take-Requested-Role 20 Reserved 21 - 22 Acknowledgment 23 Reserved 24 - 25 Nack 26 Cookie-Required 27 Cookie 28 Mechanism Choices 29 Leave Group 30 Departure Accepted 31 Request to Depart Error 32 Invalid Exchange Type 33 Reserved 34 - 49152 Private Use 49153 -- 65535 Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 77] INTERNET-DRAFT GSAKMP February 2004 7.9.1.1 Notification Data - Acknowledgment (ACK) Payload Type Thecontentsdata portion ofthis field MUST be checked against the Policy Token to determinetheauthority and accessNotification payload ofthe Signer within the contexttype ACK serves either for confirmation of correct receipt of thegroup. Signature Length (2 octets) -- LengthKey Download message, or, when needed, can provide other receipt information when included inoctetsa signed message. Figure 20 shows the format of theSignature Data. SignatureNotification Data - Acknowledge Payload Type. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Ack Type ! Acknowledgment Data(variable length) -~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! Figure 20: Notification Datathat results from applying the digital signature function to the GSAKMP message and/or payload. The payload type for the Signature Payload is eight (8). 7.8.2 Signature- Acknowledge PayloadProcessing When processing the Signature Payload, the following fields MUST be checked for correct values: Harney, etal. draft-ietf-msec-gsakmp-sec-04.txt [Page 59] INTERNET-DRAFT GSAKMP October 2003 1. SignatureType-Format TheSignatureNotification Data - Acknowledgment Payload Typevalue MUST be a valid signature type asdata fields are definedby Table 19. 2. Signature IDas follows: Ack Type (1 octet) -The Signature ID Type value MUST be a valid signature IDSpecifies the type of acknowledgment. Table 23 presents the Notify Acknowledgment Payload Types. This field is treated asdefined byan unsigned value. Table20. 3. Signature Span23: Acknowledgment Types ACK_Type Value Definition ________________________________________________ Simple 0 Data portion null. Reserved 1 - 192 Private Use 193 - 255 7.9.1.2 Notification Data - Cookie_Required and Cookie Payload Type Thesignature span values MUST encompassdata portion of thepayloads as defined byNotification payload of types Cookie_Required and Cookie contain themessage disectionCookie value. The value for thismessage type. 4. Signature ID Data - Thisfield willbe used to identifyhave been computed by thesending party. This information MUST then be used, when applicable,responder GC/KS and sent toconfirm thatthecorrect party sent us this information. 5. SignatureGM. The GM will take the value received and copy it into the Notification payload Notification Data- Thisfield of type Cookie that is transmitted in the "Request to Join with Cookie Info" back to the GC/KS. The cookie value MUST NOT becompared to the recomputed signature to verify the message.modified. Thelength fieldsformat for this is already described in theSignaturediscussion on cookies in section 5.2.2. Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 78] INTERNET-DRAFT GSAKMP February 2004 7.9.1.3 Notification Data - Mechanism Choices Payloadare used to processType The data portion of theremainderNotification payload of types Mechanism Choices contains thepayload. If any fieldmechanisms the GM isfoundrequesting to use for the negotiation with the GC/KS. This information will beincorrect, then termination processing MUST be initiated. 7.9 Notification Payload The Notification Payload can contain both GSAKMP and group specific data and is used to transmit informational data, such as error conditions, to a GSAKMP peer. It is possible to send multiple independant Notification payloadssupplied by the GM in asingle GSAKMPRTJ message. Figure1221 shows the format of the Notification Data - Mechanism Choices Payload Type. Multiple type!length!data choices are strung together in one notification payload to allow a user to transmit all relevant information within one Notification Payload. The length of the payload will control the parsing of the Notification Data Mechanism Choices field. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! !Next Payload ! RESERVED ! Payload Length ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Notify PayloadMech Type !NotificationMechanism Choice Data~! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ... Figure12: Notification Payload Format The21: NotificationPayload fields are defined as follows: Next Payload (1 octet) - Identifier for the payload type of the next payload in the message. If the current payload is the last in the message, then this field will be 0. RESERVED (1 octet)Data -Unused, set to 0. Harney, etal. draft-ietf-msec-gsakmp-sec-04.txt [Page 60] INTERNET-DRAFT GSAKMP October 2003Mechanism Choices PayloadLength (2 octets)Type Format The Notification Data -Length in octets of the current payload, including the generic payload header. NotifyMechanism Choices Payload Type(2 octets)data fields are defined as follows: Mechanism Type (1 octet) - Specifies the type ofnotification message.mechanism. Table2124 presents the NotifyPayloadMechanism Choices Mechanism Types. This field is treated as an unsigned value. Table21: Notify Payload24: Mechanism TypesNotification TypeMechanism_Type Value_______________________________________________ NoneMechanism Choice Data Value Table Reference ___________________________________________________________________ Key Creation Algorithm 0Invalid-Payload-TypeTable 26 Encryption Algorithm 1Situation-Not-Supported 2 Invalid-Major-Version 3 Invalid-Version 4 Invalid-Group-ID 5 Invalid-Sequence-ID 6 Payload-Malformed 7 Invalid-Key-Information 8 Invalid-ID-Information 9 Invalid-Cert-Encoding 10 Invalid-Certificate 11 Cert-Type-Unsupported 12 Invalid-Cert-Authority 13 Authentication-Failed 14 Invalid-Signature 15 Notify-GSA-LifetimeTable 16Certificate-Unavailable 17 Unequal-Payload-Lengths 18 Unauthorized-Request 19 Unable-To-Take-Requested-Role 20Nonce Hash Algorithm 2 Table 25 Reserved213 -22 Acknowledgement 23 Reserved 24192 Private Use 193 -25 Nack 26 Cookie-Required 27 Cookie 28255 MechanismChoices 29 Leave Group 30 Departure Accepted 31 RequestChoice Data (2 octets) - The data value for the mechanism type being selected. The values are specific toDepart Error 32each Mechanism Type defined. All tables necessary to define the values that are not defined elsewhere (in this specification or others) are defined here. This field is treated as an unsigned integer in network byte order format. Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 79] INTERNET-DRAFT GSAKMP February 2004 Table 25: Nonce Hash Types Nonce_Hash_Type Value Description _________________________________________________________________ Reserved(future use) 330 SHA-1 1 This type MUST be supported. Reserved 2 -819149152 Private Use8192 -- 1638349153 - 65535 7.9.2 NotificationData (variable length)Payload Processing When processing the Notification Payload, the following fields MUST be checked for correct values: 1. Next Payload, RESERVED, Payload Length -Informational or error data transmittedThese fields are processed as defined inaddition to the NotifySection 7.2.2, Generic PayloadType. Values for this field are Domain of Interpretation (DOI)-specific. Harney, etal. draft-ietf-msec-gsakmp-sec-04.txt [Page 61] INTERNET-DRAFT GSAKMP October 2003Header Processing. 2. Notification Type - ThepayloadNotification typeforvalue MUST be checked to be a notification type as defined by Table 22. If theNotification Payloadvalue isnine (9). 7.9.1not valid, then depending upon mode (e.g., Terse or Verbose) either an error is logged or an appropriate message containing notification value Payload-Malformed will be sent. 3. Notification Data -Acknowledgement (ACK) Payload TypeThis Notification Data MUST be processed according to the notification type specified. Thedata portion oftype will define theNotification payloadformat of the data. When processing this data, any typeACK serves eitherfield MUST be checked against the appropriate table forconfirmation ofcorrectreceiptvalues. If the contents of the Notification Data are not valid, then depending upon mode (e.g., Terse or Verbose) either an error is logged or an appropriate message containing notification value Payload-Malformed will be sent. 7.10 KeyDownload message, or, when needed, can provide other receiptCreation Payload 7.10.1 Key Creation Payload Structure The Key Creation Payload contains informationwhen includedused to create key encryption keys. The security attributes for this payload are provided ina signed message.the Policy Token. Figure1322 shows the format of theNotification Data - Acknowledgepayload. The Key Creation PayloadType.fields are defined as follows: Next Payload (1 octet) - Identifier for the payload type of the next Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 80] INTERNET-DRAFT GSAKMP February 2004 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! !AckNext Payload ! RESERVED ! Payload Length ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Key Creation Type !AcknowledgementKey Creation Data ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! Figure13: Notification Data - Acknowledge22: Key Creation PayloadTypeFormatThe Notification Datapayload in the message. If the current payload is the last in the message, then this field will be 0. This field provides the ``chaining`` capability. Table 12 identifies the payload types. This field is treated as an unsigned value. RESERVED (1 octet) -AcknowledgementUnused, set to 0. PayloadType data fields are definedLength (2 octets) - Length in octets of the current payload, including the generic payload header. This field is treated asfollows: Ackan unsigned integer in network byte order format. Key Creation Type(1 octet)(2 octets) - Specifies the type ofacknowledgement.Key Creation being used. Table22 presents26 identifies theNotify Acknowledgement Payload Types.types of key creation information. This field is treated as an unsigned integer in network byte order format. Table22: Acknowledgement26: TypesACK_TypeOf Key Creation Information Key Creation Type Value Definition___________________________________________ Simple_________________________________________________________________________ Reserved 0Data portion null. Unassigned 1-255 7.9.2 Notification Data-Cookie_Required and Cookie Payload Type The data portion of the Notification payload of types Cookie_Required and Cookie contain the Cookie value. The value for this field will have been computed by the responder GC/KS and sent to the GM. The GM will take the value received and copy it into the Notification payload Notification Data field of1 Diffie-Hellman 2 This typeCookie that is transmitted in the "Request to Join with Cookie Info" back to the GC/KS. The cookie valueMUSTNOTbemodified.supported. 1024-bit MODP Group This is defined in IKEv2 B.2. Reserved 3 - 13 Diffie-Hellman 14 This is defined in RFC 3526. 2048-bit MODP Group Reserved 15 - 49152 Private Use 49153 - 65535 Key Creation Data (variable length) - Contains Key Creation information. Theformatvalues for this field are group specific and the format isalready described inspecified by thediscussion on cookies in section 5.2.2.key creation type field. The payload type for the Key Creation Packet is eleven (11). Harney,etal. draft-ietf-msec-gsakmp-sec-04.txtMeth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page62]81] INTERNET-DRAFT GSAKMPOctober 2003 7.9.3 Notification Data - Mechanism ChoicesFebruary 2004 7.10.2 Key Creation PayloadTypeProcessing Thedata portionspecifics of theNotification payload of types Mechanism Choices containsKey Creation Payload are defined in section 7.10. When processing themechanismsKey Creation Payload, theGMfollowing fields MUST be checked for correct values: 1. Next Payload, RESERVED, Payload Length - These fields are processed as defined in Section 7.2.2, Generic Payload Header Processing. 2. Key Creation Type - The Key Creation Type value MUST be checked to be a valid key creation type as defined by Table 26. If the value isrequestingnot valid, then depending upon mode (e.g., Terse or Verbose) either an error is logged or an appropriate message containing notification value Payload-Malformed will be sent. 3. Key Creation Data - This Key Creation Data MUST be processed according touse forthenegotiation withkey creation type specified to generate the KEK to protect theGC/KS. Thisinformationwillto besupplied by the GMsent ina RTJappropriate message.Figure 14 showsThe type will define the format of theNotification Data - Mechanism Choicesdata. 7.11 Nonce PayloadType. Multiple type!length!data choices are strung togther in one notification payload to allow a user to transmit all relevant information within one Notification Payload.7.11.1 Nonce Payload Structure Thelength of the payload will contolNonce Payload contains random data used to guarantee freshness during an exchange and protect against replay attacks. Figure 23 shows theparsingformat of theNotification Data Mechanism Choices field.Nonce Payload. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! !Mech TypeNext Payload ! RESERVED ! Payload Length !Mechanism Choice+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Nonce Type ! Nonce Data ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!...Figure14: Notification Data23: Nonce Payload Format The Nonce Payload fields are defined as follows: Next Payload (1 octet) -Mechanism ChoicesIdentifier for the payload type of the next payload in the message. If the current payload is the last in Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 82] INTERNET-DRAFT GSAKMP February 2004 the message, then this field will be 0. This field provides the ``chaining`` capability. Table 12 identifies the payload types. This field is treated as an unsigned value. RESERVED (1 octet) - Unused, set to 0. Payload Length (2 octets) - Length in octets of the current payload, including the generic payload header. This field is treated as an unsigned integer in network byte order format. Nonce TypeFormat(1 octet) - Specifies the type of Nonce being used. Table 27 identifies the types of nonces. This field is treated as an unsigned value. Table 27: Nonce Types Nonce_Type Value Definition _____________________________________________________________________________ None 0 Initiator (Nonce_I) 1 Responder (Nonce_R) 2 Combined (Nonce_C) 3 Hash (Append(Initiator_Value,Responder_Value)) The hash type comes from the Policy (e.g., Security Suite Definition or Policy Token). Reserved 4 - 192 Private Use 192 - 255 Nonce Data (variable length) - Contains the nonce information. The values for this field are group-specific and the format is specified by the Nonce Type field. If no group-specific information is provided, the minimum length for this field is 4 bytes. TheNotification Data - Mechanism Choicespayload type for the Nonce PayloadType datais twelve (12). 7.11.2 Nonce Payload Processing When processing the Nonce Payload, the following fields MUST be checked for correct values: 1. Next Payload, RESERVED, Payload Length - These fields aredefinedprocessed asfollows: Mechanismdefined in Section 7.2.2, Generic Payload Header Processing. 2. Nonce Type(1 octet)-Specifies theThe Nonce Type value MUST be checked to be a valid nonce Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 83] INTERNET-DRAFT GSAKMP February 2004 typeof mechanism.as defined by Table23 presents27. If theNotify Mechanism Choices Mechanism Types. Table 23: Mechanism Types Mechanism_Type Value Mechanism Choice Data Value Table Reference ________________________________________________________________________________ Key Creation Algorithm 0 Table 26 Encryption Algorithm 1 Table 24value is not valid, then depending upon mode (e.g., Terse or Verbose) either an error is logged or an appropriate message containing notification value Payload-Malformed will be sent. 3. NonceHash Algorithm 2 Table 25 Unassigned 1-255 Length (1 octet) -- Length in octets of the Mechanism Choice Data. Mechanism ChoiceData(variable length)-The data value forThis is themechanism type being selected. The values are specificnonce data and it must be checked according toeach Mechanism Type defined. All tables necessaryits content. The size of this field is defined in Nonce Payload section 7.11. Refer todefinethevalues that are not defined elsewhere (inMessage Processing Group Establishment section (Section 5.2) for interpretation of this field. Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 84] INTERNET-DRAFT GSAKMP February 2004 8 GSAKMP State Diagram Figure 24 presents the states encountered in the use of thisspecification or others) are defined here.protocol. Table 28 defines the states. Table 29 defines the transitions. !-----------------> ( ) ! !-------------> ( Idle ) <------------------! ! ! ( ) ! ! ! ! ! ! ! ! ! ! ! ! ! (1a) (1) ! ! ! ! ! ! ! ! ! ! ! ! ! V V ! ! !---(5a)--- (Wait for ) (Wait for ) ----(5)-----! ! (Group ) (GC/KS Event) <--- ! (Membership) ^ ! \ \ ! ! ! ! \ \ ! ! ! ! \--(2)---\ ! (2a) (4)(3) ! ! ! ! ! ! ! ! ! V ! V !-------(4a)--- (Wait for ) (Wait for ) (Group ) (Response ) (Membership) (from Key ) /--> (Event ) (Download ) / / / / /--(3a)---/ Figure 24: GSAKMP State Diagram Harney,etal. draft-ietf-msec-gsakmp-sec-04.txtMeth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page63]85] INTERNET-DRAFT GSAKMPOctober 2003 Table 24: Encryption Types Encryption_Types Value ____________________________ Reserved 0 - 2 3DES_CBC64_192 3 Unassigned 4 - 16kFebruary 2004 Table25: Nonce Hash Types Nonce_Hash_Type Value __________________________ Reserved 0 SHA-1 1 Unassigned 2 - 16k 7.10 Key Creation Payload 7.10.128: GSAKMP States ___________________________________________________________________________ Idle : GSAKMP Application waiting for input _____________________:_____________________________________________________ : Wait for GC/KS Event : GC/KS up and running, waiting for events _____________________:_____________________________________________________ : Wait for Response : GC/KS has sent KeyCreation Payload Structure TheDownload, from KeyCreation Payload contains information used to create key encryption keys. The security attributesDownload : waiting forthis payload are provided in the Policy Token. Figure 15 shows the formatresponse from GM _____________________:_____________________________________________________ : Wait for Group : GM in process ofthe payload. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0joining group Membership : _____________________:_____________________________________________________ : Wait for Group : GM has group key, waiting for Membership Event : group management messages. : ___________________________________________________________________________ Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 86] INTERNET-DRAFT GSAKMP February 2004 Table 29: State Transition Events ____________________________________________________________________ Transition 1 : Create group command _______________:____________________________________________________ : Transition 2 : Receive bad RTJ : Receive valid command to change group membership : Send Compromise message x times _______________:____________________________________________________ : Transition 3 : Receive valid RTJ _______________:____________________________________________________ : Transition 4 : Timeout : Receive Ack : Receive Nack _______________:____________________________________________________ : Transition 56 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Next Payload ! RESERVED ! Payload Length ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Key Crtn Type ! Key Creation Data ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! Figure 15: Key Creation Payload Format The Key Creation Payload fields are defined as follows: Next Payload (1 octet) - Identifier for the payload type: Delete group command _______________:____________________________________________________ : Transition 1a : Join group command _______________:____________________________________________________ : Transition 2a : Send Ack _______________:____________________________________________________ : Transition 3a : Receipt ofthe next payload in the message. If the current payload is the last in the message, then this field will be 0. RESERVED (1 octet) - Unused, set to 0.group management messages _______________:____________________________________________________ : Transition 4a : Delete group command _______________:____________________________________________________ : Transition 5a : Time out : Msg failure : errors : ____________________________________________________________________ Harney,etal. draft-ietf-msec-gsakmp-sec-04.txtMeth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page64]87] INTERNET-DRAFT GSAKMPOctober 2003 Payload Length (2 octets) - LengthFebruary 2004 9 IANA Considerations 9.1 IANA Port Number Assignment IANA has provided GSAKMP port number 3761 inoctets of the current payload, including the generic payload header. Key Creation (Crtn) Type (1 octet) - Specifies the type of Key Creation being used. Table 26 identifiesboth thetypes of key download information. Table 26: Types Of Key Creation Information Key Creation Type Value Definition ____________________________________________________________ Reserved 0 Diffie-Hellman 1 This typeUDP and TCP spaces. All implementations MUSTbe supported. other 2-255 Key Creation Data (variable length) - Contains Key Creation information. The values foruse thisfield are group specific and the format is specified by the ID Type field. The payload type for the Key Creation Packet is eleven (11). 7.10.2 Key Creation Payload Processing The specifics of the Key Creation Payload are definedport assignment insection 7.10. When processing the Key Creation Payload,thefollowing fields MUST be checked for correct values: 1. Key Creation Type -appropriate manner. 9.2 Initial IANA Registry Contents TheKey Creation Type value MUSTfollowing registry entries should bea valid key creation type as defined by Table 26. 2.created: GSAKMP Group Identification Types GSAKMP Payload Types GSAKMP Exchange Types GSAKMP Policy Token Types GSAKMP KeyCreationDownload Data- This data will be used to compute the key encryption key (KEK). If any field is found to be incorrect, then termination processing MUST be initiated. Harney, etal. draft-ietf-msec-gsakmp-sec-04.txt [Page 65] INTERNET-DRAFTItem Types GSAKMP Encryption Types GSAKMP Rekey Event Types GSAKMP Identification Types GSAKMP Certificate Types GSAKMP Signature Types GSAKMP Signature ID Types GSAKMP Notification Types GSAKMP Acknowledgment Types GSAKMP Mechanism Types GSAKMPOctober 2003 7.11NoncePayload 7.11.1Hash Types GSAKMP Key Creation Types GSAKMP NoncePayload StructureTypes 9.2.1 GSAKMP Group Identification Types TheNonce Payload contains random data used to guarantee freshness during an exchange and protect against replay attacks. Figure 16 shows the format ofGroup Identification occurs in theNonce Payload. 0 1 2 3 0 1 2 3 4 5 6 7 8 9GSAKMP header. Group ID Type Value ========================================== Network Byte Ordered Integer 0 ASCII 1 Reserved to IANA 23 4 5 6 7 8 9- 192 Private Use 193 - 255 Harney, Meth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page 88] INTERNET-DRAFT GSAKMP February 2004 9.2.1.1 Amending formula for GSAKMP Group Identification Types GSAKMP Group Identification Types may be allocated by Specification Required. 9.2.2 GSAKMP Payload Types Next Payload Type Value =================================== None 0 Policy Token 1 Key Download Packet 2 Rekey event 3 Identification 4 Reserved 5 Certificate 6 Reserved 7 Signature 8 Notification 90 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Next Payload ! RESERVED ! Payload Length ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! ! Nonce Type ! Nonce Data ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-! Figure 16: Nonce Payload Format TheReserved 10 Key Creation 11 NoncePayload fields are defined as follows: Next Payload (1 octet) - Identifier for the payload type of the next payload in the message. If the current payload is the last in the message, then this field will be 0. RESERVED (1 octet) - Unused, set12 Reserved to0. Payload Length (2 octets) - Length in octets of the current payload, including the generic payload header. Nonce Type (1 octet)IANA 13 -Specifies the type of Nonce being used. Table 27 identifies the types of nonces. Table 27: Nonce192 Private Use 193 -- 255 9.2.2.1 Amending formula for GSAKMP Payload TypesNonce_TypeGSAKMP Payload Types may be allocated by Specification Required. 9.2.3 GSAKMP Exchange Types The Exchange Type occurs in the GSAKMP header. Exchange`Type ValueDefinition ______________________________________________________________________________ None======================================== Reserved 0Initiator (Nonce_I) 1 Responder (Nonce_R) 2 Combined (Nonce_C)- 3Hash (Append(Initiator_Value,Responder_Value)) The hash type comes from the Security Suite Definition. Unassigned 4-255 Nonce Data (variable length)Key Download Ack/Failure 4 Rekey Event 5 Reserved 6 -Contains the nonce information. The values7 Request to Join 8 Key Download 9 Cookie Download 10 Request to Join Error 11 Harney,etal. draft-ietf-msec-gsakmp-sec-04.txtMeth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page66]89] INTERNET-DRAFT GSAKMPOctober 2003 for this field are group-specific and the format is specified by the Nonce Type field. If no group-specific information is provided, the minimum length for this field is 4 bytes. The payload type for the Nonce Payload is twelve (12). 7.11.2 Nonce Payload Processing The specificsFebruary 2004 Lack ofthe Nonce Payload are defined in section 7.11. When processing the Nonce Payload, the following fields MUST be checkedAck 12 Request to Depart 13 Departure Response 14 Departure Ack 15 Reserved to IANA 16 - 192 Private Use 193 -- 255 9.2.3.1 Amending formula forcorrect values: 1. NonceGSAKMP Exchange Types GSAKMP Exchange Types may be allocated by Specification Required. 9.2.4 GSAKMP Policy Token Types Policy Token Type Value Defined In ==================================================== GSAKMP`PT`V1 0 (HCLM00) GSAKMP`ASN.1`PT`V1 1 (TBD) Reserved to IANA 2 -The Nonce Type value MUST49152 Private Use 49153 - 65535 9.2.4.1 Amending formula for GSAKMP Policy Token Types GSAKMP Policy Token Types may bea valid key creation type as definedallocated byTable 27. 2. NonceSpecification Required. 9.2.5 GSAKMP Key Download Data- This is the nonce data and it must be checked according to its type.Item Types Thesize of this field is definedKey Download Data Item Type occurs inNonce Payload section 7.11. It any value is foundthe Key Download Payload. Key Download Data Item Type Value ========================================= GTPK 0 Rekey - LKH 1 Reserved to IANA 2 - 192 Private Use 193 - 255 9.2.5.1 Amending formula for GSAKMP Key Download Data Item Types GSAKMP Key Download Data Item Types may beincorrect, then termination processing MUST be initiated.allocated by Specification Required. Harney,etal. draft-ietf-msec-gsakmp-sec-04.txtMeth, Colegrove, Gross draft-ietf-msec-gsakmp-sec-05.txt [Page67]<