One document matched: draft-ietf-msec-tokenspec-sec-00.txt


SPARTA, Inc.                                          H Harney (SPARTA)
INTERNET-DRAFT                                     A Colegrove (SPARTA)   
February 2003                                          P Lough (SPARTA)
                                                        U Meth (SPARTA)
                                                           


		     GSAKMP Token Specification
	            draft-ietf-msec-tokenspec-sec-00.txt

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.

Document expiration:  August 31, 2003


                             Abstract


This document specifies the Group Secure Association Key Management 
Protocol (GSAKMP) Policy Token.  The Token provides a format to specify 
a complete group security policy, necessary for formation of a group 
secure association. The GSAKMP Token maintains procedures for key 
dissemination, group membership, authorization and rekey.















Harney, Colegrove, Lough, Meth                             [Page 1]

 
Internet Draft       GSAKMP Token Specification       February 2003         

Table of Contents 
   
Status of this Memo..............................................1 
Abstract.........................................................1
Table of Contents................................................2
1. Introduction..................................................4
2. GSAKMP Policy.................................................4
2.1. Identification..............................................5 
2.1.1. Token ID..................................................5
2.1.1.1. Version.................................................5
2.1.1.2. Time Issued.............................................6 
2.1.1.3. Protocol ID.............................................6 
2.1.1.4. Group ID................................................6 
2.2 Authorizations...............................................7 
2.2.1. Owner Name ...............................................8 
2.2.2. Rekey Controller Name.....................................8 
2.2.3. Owner Name PKI............................................9
2.2.4. Rekey Controller Name PKI.................................10
2.2.5. Number of Key Server Authorizations.......................10
2.2.6. Key Server Authorization..................................11 
2.3. Access Controls.............................................12
2.3.1. Inclusionary..............................................12 
2.3.1.1. Permission..............................................12 
2.3.1.2. Number of Name Rules....................................13
2.3.1.3. Name Rule...............................................13
2.3.1.4. Number of IP Rules......................................14 
2.3.2. Exclusionary..............................................14 
2.3.2.1. Permission..............................................14
2.3.2.2. Number of Name Rules ...................................14
2.3.2.3. Name Rule...............................................15 
2.3.2.4. Number of IP Rules......................................16
2.4. Mechanisms..................................................16 
2.4.1. Application SA............................................17
2.4.1.1. Encryption..............................................17 
2.4.1.2. Rekey Information.......................................18 
2.4.1.2.1. Frequency.............................................19
2.4.1.2.2. Rollover..............................................19
2.4.1.3. Group Specific Data.....................................20
2.4.1.3.1. IPSec Application Specific Data.......................20 
2.4.1.3.1.1. Number of Secure Associations.......................20
2.4.1.3.1.2. Secure Associations.................................21 
2.4.2. Unicast SA................................................23
2.4.2.1 Creation and Encryption..................................23
2.4.2.2 Rekey....................................................25
2.4.2.2.1. Frequency.............................................25 
2.4.2.2.2. Rollover..............................................25
2.4.2.3. PKI.....................................................26
2.4.2.4. Signature...............................................26
2.4.3. Key Management SA.........................................27
2.4.3.1. Signature...............................................27 



Harney, Colegrove, Lough, Meth                             [Page 2] 

Internet Draft       GSAKMP Token Specification       February 2003


2.4.3.2. PKI.....................................................28
2.4.3.3. Rekey SA................................................28
2.4.3.3.1. Protocol and Encryption...............................28
2.4.3.3.2. Rekey.................................................29
2.4.3.3.2.1. Frequency...........................................30
2.4.3.3.2.2. Rollover............................................30
2.4.3.4. KEK SA..................................................31
2.4.3.4.1. p & g and Encryption..................................31
2.4.3.4.2. Rekey ................................................32
2.4.3.4.2.1. Frequency ..........................................32
2.4.3.4.2.2. Rollover............................................32
2.5. Signature...................................................33
2.5.1. Name......................................................33
2.5.2. PKI.......................................................33
2.5.3 Signature Data.............................................34
Acknowledgements.................................................35
References.......................................................35
Authors Address..................................................36
Appendix A ......................................................37
 
































Harney, Colegrove, Lough, Meth                             [Page 3]


Internet Draft       GSAKMP Token Specification       February 2003

1. Introduction

Group communications, also commonly called multicast, refers to 
communications in a group where the messages can be sent by any member
and are received by all members.  The applications and encryption can 
be implemented in a variety of ways and at numerous levels on the 
network stack. Mailing list, conference calls and IP multicasting are 
examples of group communication. Often the need for data protection 
arises, which requires the group to handle the messages in a 
consistently secure manner.  To accomplish this, cryptographic 
mechanisms and security policy must be shared and strictly followed by
the group as a whole.  Because of this, special problems arise in 
managing the cryptographic and policy material as it changes or as 
the group changes. 

The Group Secure Association Key Management Protocol (GSAKMP) [1] is 
designed to manage these complex issues.  GSAKMP provides symmetric key 
to groups of users on a network.  It provides mechanisms to disseminate 
group policy, perform access control decisions during group 
establishment, generate group key, recover from the compromise of a 
group member, delegate group security functions, and destroy the group.

Fundamental to the security of the group communications is the GSAKMP 
Policy Token, first presented in the GKMP [5], [6]. Group Policy define
s how and by whom data is handled in the group.  It details the 
authorizations needed to serve in special roles, it defines the access
 control rules that govern the group, and it specifies the mechanisms 
needed to protect communications.  Furthermore, the token must be 
signed by an authorized source and authenticated as such before use.

The need for consistent distributed enforcement of policy is critical
 to the security of the group.  The Policy Token is the vehicle by 
which members can understand exactly how to manage the group data.  
This paper details a relatively simple Policy Token to be used with GSAKMP.  
The application specific data defined in Section 2.4.1.3.1.1 is to be
used with IPsec as the underlying protocol securing the group's 
communications. GSAKMP's use of other secure protocols can be similarly 
profiled.

2. GSAKMP Policy Token

The GSAKMP Security Policy Token is comprised of five fields 
corresponding to the identification of the group, the authorizations 
in it, the access control policies governing the group, the mechanisms
supporting secure communications, and the authentication of the contents 
of the token.

Each of the fields of the GSAKMP Policy Token is further expanded in 
following sections.  




Harney, Colegrove, Lough, Meth                             [Page 4]


Internet Draft       GSAKMP Token Specification       February 2003

2.1. Identification

2.1.1. Token ID

The Token ID Field explicitly identifies the token as a GSAKMP token 
for a particular group, generated at a particular time.  The Token ID 
Field consists of a Version Number indicating Token version, Protocol 
ID indicating GSAKMP, Group ID consisting of IP Addresses and serial 
numbers, and a Time Issued Field.

The time issued subfield of the TokenID is of particular interest in 
the prevention of replay attacks.  A replay attack is when an adversary
 inserts an authenticated message or portion of a message into a new 
run of a protocol.  The time issued subfield of the GSAKMP Policy 
Token helps to prevent such an attack.  The receiver of a new token 
can verify that the time issued is both appropriate for the policy 
token and generated at a time later than the time issued on any 
previous Policy Tokens for that group.  This will prevent an adversary
 from successfully replaying an old token and having it be accepted 
as a new one. If a token with a bad timestamp is received, the 
recipient of the token MUST reject the token.

2.1.1.1. Version

  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 
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 !                         Version Length                        !
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 !                            Version                            ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Version Length (4 bytes, unsigned integer) - Length in bytes of the 
"Version" field.

Version (variable length, ASCII character) - This indicates the 
version number of this token.  The format for the version 1.1 token 
is "V1.1".  Note: the quotes are not included.

Harney, Colegrove, Lough, Meth                             [Page 5]


Internet Draft       GSAKMP Token Specification       February 2003

2.1.1.2. Time Issued

  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 
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 !                         Time Length                           !
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 !                         Time Issued                           ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Time Length (4 bytes, unsigned integer) - Length in bytes of the "Time
Issued" field.



Internet Draft       GSAKMP Token Specification       February 2003

Time Issued (variable length, ASCII character) - This indicates the 
time the token was created in the format "Thu Jan 3 10:01:11 2002".  
Note: the quotes are not included.

2.1.1.3. Protocol ID

  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 
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 !                           ID Length                           !
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 !                          Protocol ID                          ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

ID Length (4 bytes, unsigned integer) - Length in bytes of the 
"Protocol ID" field.

Protocol ID (variable length, ASCII character) - This indicates 
the version of the GSAKMP protocol this token is designed to work with.  
To identify protocol ID 1, the format would be "P1.0".  Note: the quote
s are not included.


2.1.1.4. Group ID

  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 Serial Number                       !
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 !    IP Type    !                 IP Length                     ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 ~               !                  IP Value                     ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Group Serial Number (4 bytes, unsigned integer) - Integer chosen to 
uniquely identify this group on the particular IP address.

IP Type (1 byte, unsigned integer) - Indicates the type of IP Address 
that will be used for the following field.  See Table 1


			Table 1: IP Types

			IP Type      Value
			_______________________
			IPv4          0
			IPv6          1
    			Reserved      2-255

IP Length (4 bytes, unsigned integer) - Length in bytes of the "IP 
Value" field.

Harney, Colegrove, Lough, Meth                             [Page 6]


Internet Draft       GSAKMP Token Specification       February 2003


IP Value (variable length, ASCII character) - This indicates the IP 
address that will be used to identify this group.  The format for IPv4
 is "224.100.100.100".  Note: the quotes are not included and that 
digits are their character representations.

2.2. Authorizations

The Authorization Field allows group members to ensure that security 
relevant actions are being performed by authorized group entities. This
ensures that a rogue group member does not mislead other group members
into an insecure action.


The Authorization Field identifies those who are authorized to act in 
the special roles of Group Owner, Group Controller and Rekey Controller.
This identification may be done explicitly, where the fields contain
actual identifiers, or implicitly, using sets of rules to define the 
policy allowing one to assume the roles listed.  For example, a policy
rule might state that anyone in a particular domain is authorized to 
act as a Key Server. Such a rule might be stated as 
"{/o=acme/ou=responsible}." 

Authorization Fields will fulfill various needs during the lifetime of
 a group. Both new and current members will need to make use of the 
authorization field to maintain the level of security of the 
communications group.

For new or potential members, this field of the group's token MUST be 
used as input into the decision for joining a particular group and for
 the acceptance of keying material.  Specifically, the rules MUST be 
examined to determine whether they are stringent enough for the 
potential member's security needs, and the member trusts the entities 
that will be assuming the roles.  Furthermore, upon acceptance of the 
invitation to join the group, the member will receive the group 
communication keys.  At that point, the member MUST verify that the 
Key Server sending the keys fit the profile indicated by the 
Authorization Field.  The integrity of keys received from someone not 
entitled to act as Key Server MUST be rejected.  

The most common use of this field will be by current group members.  
Current group members use the Authorization Field upon receipt of key 
management or administrative messages.  Before acting upon these 
messages, it must be determined that the sender did indeed have the 
necessary permissions to initiate a given action.  For example, an 
unauthorized rekey message might have the result of placing a member 
on an incorrect key, thereby denying them access to the group's 
communications. If the sender did not have the necessary permissions, 
the recipient MUST reject the key.




Harney, Colegrove, Lough, Meth                             [Page 7]


Internet Draft       GSAKMP Token Specification       February 2003

The authorizations section is made up of an Owner Name, Rekey 
Controller Name, Owner PKI, Rekey Controller PKI and one or more Key 
Server identifiers.  The Key Server identifier is made up of a Rule and
a Rule PKI.

2.2.1. Owner Name

  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 
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 !                         Serial Number                         !
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 !                       Owner Name Length                       !
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 !                           Owner Name                          ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Serial Number (4 bytes, unsigned integer) - Integer representing the 
X509V3 signature certificate serial number from the certificate 
representing the Group Owner.

Owner Name Length (4 bytes, unsigned integer) - Length in bytes of the
"Owner Name" field.

Owner Name (variable length, ASCII character) - This field represents 
the X509V3 Subject data in the format "/C=US/ST=MD/L=Columbia/O=SPARTA, 
Inc./OU=ISSO/CN=loughp/Email=loughp@sparta.com".  Note: the quotes 
are not included.

2.2.2. Rekey Controller Name

  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 
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 !                         Serial Number                         !
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 !                   Rekey Controller Name Length            	 !           
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 !                       Rekey Controller Name               	 ~           
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Serial Number (4 bytes, unsigned integer) - Integer representing the 
X509V3 signature certificate serial number from the certificate 
representing the Rekey Controller member.

Rekey Controller Name Length (4 bytes, unsigned integer) - Length in 
bytes of the "Rekey Controller. Name" field.





Harney, Colegrove, Lough, Meth                             [Page 8]


Internet Draft       GSAKMP Token Specification       February 2003

Rekey Controller Name (variable length, ASCII character) - This field 
represents the X509V3 Subject data in the format "/C=US/ST=MD/L=Columbia
/O=SPARTA, Inc./OU=ISSO/CN=loughp/Email=loughp@sparta.com".  Note: the 
quotes are not included.

2.2.3. Owner Name PKI

  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 
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 !    PKI Type   !                Pub Key Length                 ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 ~               !                Serial Number                  ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 ~               !            Owner Name PKI Length              ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 ~               !                Owner Name PKI                 ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

PKI Type (1 byte, unsigned integer) - Indicates the type of certificate
being used to identify the issuer Public Key Infrastructure (PKI) used 
to validate the Owner Name.  See Table 2.

			Table 2: PKI Type

			PKI Certificate Type                  Value
			__________________________________________
			None                                   0
			PKCS #7 wrapped X.509 certificate      1
			PGP Certificate                        2
			DNS Signed Key                         3
			X.509 Certificate -- Signature         4
			X.509 Certificate - Key Exchange       5
			Kerberos Tokens                        6
			Certificate Revocation List (CRL)      7
			Authority Revocation List (ARL)        8
			SPKI Certificate                       9
			X.509 Certificate - Attribute         10
      			Reserved                              11 - 255

Public Key Length (4 bytes, unsigned integer) - Length in bits of the 
public key used for this PKI.

Serial Number (4 bytes, unsigned integer) - Integer representing the 
X509 certificate serial number from the Owner issuer certificate.

Owner Name PKI Length (4 bytes, unsigned integer) - Length in bytes of 
the "Owner Name PKI" field.





Harney, Colegrove, Lough, Meth                             [Page 9]


Internet Draft       GSAKMP Token Specification       February 2003

Owner Name PKI (variable length, ASCII character) - This field 
represents the X509 Subject data of the issuer certificate of the Owner Name 
certificate (Section 2.2.1.) in the format "/C=US/ST=MD/L=Columbia/O=
SPARTA, Inc./CN=RootCA/Email=RootCA@sparta.com".  Note: the quotes are 
not included.

2.2.4. Rekey Controller Name PKI

  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 
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 !    PKI Type   !                Pub Key Length                 ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 ~               !                Serial Number                  ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 ~               !            Rekey Controller Name PKI Length   ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 ~               !                Rekey Controller Name PKI      ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

PKI Type (1 byte, unsigned integer) - Indicates the type of certificate
being used to identify the issuer PKI used to validate the Rekey 
Controller Name.  See Table 2.

Public Key Length (4 bytes, unsigned integer) - Length in bits of the 
public key used for this PKI.

Serial Number (4 bytes, unsigned integer) - Integer representing the 
X509 certificate serial number from the Rekey Controller issuer 
certificate.

Rekey Controller Name PKI Length (4 bytes, unsigned integer) - Length in
 bytes of the "Rekey Controller Name PKI" field.

Rekey Controller Name PKI (variable length, ASCII character) - This 
field represents the X509 Subject data of the issuer certificate of 
the Rekey Controller Name certificate (Section 2.2.2) in the format 
"/C=US/ST=MD/L=Columbia/O=SPARTA, Inc./CN=RootCA/Email=RootCA@sparta.com".  
Note: the quotes are not included.

2.2.5. Number of Key Server Authorizations

Because multiple Key Server Authorizations are possible, this field is 
included to indicate the number of authorizations that follow to allow 
them to be more easily parsed.






Harney, Colegrove, Lough, Meth                             [Page 10]


 Internet Draft       GSAKMP Token Specification       February 2003

			0                   1
 			0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
			+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
			!          Num KS Auths         !
			+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Number Key Server Authorizations (2 bytes, unsigned integer) - Number of
 Key Server Authorizations that will follow.

2.2.6. Key Server Authorization

This section describes the rule used to determine an authorized Key 
Server in the token.  This field may be repeated as many times as 
necessary and indicated in Section 2.2.5. Number of Key Server 
Authorizations.

  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 
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 !                           Rule Length                         !
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 !                              Rule                             ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 !   PKI Type    !                   Pub Key Length              ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 ~               !                   Serial Number               ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 ~               !                 Issuer PKI Length             ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 ~               !                     Issuer PKI                ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Rule Length (4 bytes, unsigned integer) - Length in bytes of the "Rule"
 field.

Rule (variable length, ASCII character) - Textual representation of the
specific identifier to be used in determining Key Server Authorization.
To allow anyone with an X509V3 certificate with an Organization of 
"SPARTA, Inc." the format would be "/O=SPARTA, Inc./".  
Additionally, a single individual's certificate could be specified by 
using the Common Name field such as "/CN=Joe User/".  Note: the quotes 
are not included.

PKI Type (1 byte, unsigned integer) - Indicates the type of certificate 
being used to identify the issuer PKI used to validate the Rule.  See 
Table 2.

Public Key Length (4 bytes, unsigned integer) - Length in bits of the 
public key used for this PKI.

Serial Number (4 bytes, unsigned integer) - Integer representing the 
X509 certificate serial number for this issuer certificate.


Harney, Colegrove, Lough, Meth                            [Page 11]



Internet Draft       GSAKMP Token Specification       February 2003

Issuer PKI Length (4 bytes, unsigned integer) - Length in bytes of the 
"Issuer PKI" field.

Issuer PKI (variable length, ASCII character) - This field represents 
the X509 Subject data of the issuer certificate in the format 
"/C=US/ST=MD/L=Columbia/O=SPARTA, Inc./CN=RootCA/Email=RootCA@sparta.com".  
Note: the quotes are not included.

2.3. Access Controls

Access Controls are used to strictly define who can and cannot be a 
member of this group and the mechanisms used to validate those rules.  
Access Controls are made up of inclusionary and exclusionary rules.  All
rules are cumulative; however, if a member passes both an inclusionary
and exclusionary rule, the exclusions MUST take precedence.  For new or
potential members, this field of the group's token should be used as 
input into the decision for joining a particular group and for the 
acceptance of keying material.  Specifically, the rules should be 
examined to determine whether they are stringent enough for the 
potential member's security needs, and the member trusts the entities 
that will be assuming the roles.  Access Controls each have a Permission,
one or more Name Rules and one or more IP Rules.  The Permissions are 
hierarchical in the traditional military sense where access at a higher
level encompasses all the access of the lower levels plus new ones, and
dominance rules apply.  The Access List can also restrict access to 
those in a particular knowledge group or groups.

2.3.1. Inclusionary

Inclusionary rules specify members, or groups of members, that are 
allowed access to the group.

2.3.1.1. Permission

In the current SPARTA implementation of the GSAKMP Token, the Permission
field is used in conjunction with the Netscape Comment field available 
in an X509V3 certificate.  The Permissions are hierarchical in the 
traditional military sense where access at a higher level encompasses 
all the access of the lower levels plus new ones, and dominance rules 
apply.  If the token specifies a permission of 5 all certificates with 
a Netscape Comment field of 5 OR HIGHER will pass this control.

  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 
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 !                           Permission                          !
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Permission (4 bytes, unsigned integer) - Integer representing the 
minimum necessary permission level indicated by the X509V3 Netscape 
Comment field.  Note: Valid values are between 0 and 10.  11 and above 
are reserved for future use.

Harney, Colegrove, Lough, Meth                            [Page 12]


Internet Draft       GSAKMP Token Specification       February 2003

2.3.1.2. Number of Name Rules

 			0                   1
 			0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
			+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
			!         Num Name Rules        !
			+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Number of Name Rules (2 bytes, unsigned integer) - Number of Name Rules
that will follow.

2.3.1.3. Name Rule

This section describes the rule used to determine who is authorized to 
be a member based on the X509 Subject field.  This field may be repeated
as many times as necessary and indicated in Section 2.3.1.2. Number of 
Name Rules.

  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 
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 !                           Rule Length                         !
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 !                              Rule                             ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 !   PKI Type    !                   Pub Key Length              ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 ~               !                   Serial Number               ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 ~               !                 Issuer PKI Length             ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 ~               !                     Issuer PKI                ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Rule Length (4 bytes, unsigned integer) - Length in bytes of the "Rule" 
field.

Rule (variable length, ASCII character) - Textual representation of the 
specific identifier to be used in determining membership.  To allow 
anyone with an X509V3 certificate with an Organization of "SPARTA, Inc."
the format would be "/O=SPARTA, Inc./".  Note: the quotes are not 
included.

PKI Type (1 byte, unsigned integer) - Indicates the type of certificate 
being used to identify the issuer PKI used to validate the Rule.  See 
Table 2.

Public Key Length (4 bytes, unsigned integer) - Length in bits of the 
public key used for this PKI.

Serial Number (4 bytes, unsigned integer) - Integer representing the 
X509 certificate serial number for this issuer certificate.


Harney, Colegrove, Lough, Meth                            [Page 13]


Internet Draft       GSAKMP Token Specification       February 2003

Issuer PKI Length (4 bytes, unsigned integer) - Length in bytes of the 
"Issuer PKI" field.

Issuer PKI (variable length, ASCII character) - This field represents 
the X509 Subject data of the issuer certificate in the format 
"/C=US/ST=MD/L=Columbia/O=SPARTA, Inc./CN=RootCA/Email=RootCA@sparta.com".  
Note: the quotes are not included.

2.3.1.4. Number of IP Rules

This section is for future expansion of the policy token and MUST be set 
to zero.  IP Rules may be used in the future to restrict a group member 
to certain IP or range of IP addresses.  

 			0                   1
 			0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
			+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
			!         Num IP Rules          !
			+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Number of IP Rules (2 bytes, unsigned integer) - Unused.  MUST be set to
zero.

2.3.2. Exclusionary

Exclusionary rules specify members or groups of members that are 
explicitly denied access to this group.  This is most useful when used 
in conjunction with an inclusionary rule.  If we want to allow all of 
SPARTA, Inc. with the exception of one employee, we make an inclusionary
rule for SPARTA, Inc. and an exclusionary rule for that one employee.

2.3.2.1. Permission

This field is only used to allow the format of the exclusionary rules to 
match that of the inclusionary rules.  It has no current use and MUST 
be set to zero.

 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 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
!                           Permission                          !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Permission (4 bytes, unsigned integer) - Currently unused and MuST be set 
to zero.

2.3.2.2. Number of Name Rules

 			0                   1
 			0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
			+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
			!         Num Name Rules        !
			+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Harney, Colegrove, Lough, Meth                            [Page 14]


Internet Draft       GSAKMP Token Specification       February 2003


Number of Name Rules (2 bytes, unsigned integer) - Number of Name Rules 
that will follow.

2.3.2.3. Name Rule

This section describes the rule used to determine who is unauthorized to 
be a member based on the X509 Subject field.  This field may be repeated
 as many times as necessary and indicated in Section 2.3.2.2. Number of 
Name Rules.

  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 
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 !                           Rule Length                         !
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 !                              Rule                             ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 !   PKI Type    !                   Pub Key Length              ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 ~               !                   Serial Number               ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 ~               !                 Issuer PKI Length             ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 ~               !                     Issuer PKI                ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Rule Length (4 bytes, unsigned integer) - Length in bytes of the "Rule" 
field.

Rule (variable length, ASCII character) - Textual representation of the 
specific identifier to be used in determining membership.  To disallow 
anyone with an X509V3 certificate with an Organization of "SPARTA, Inc." 
the format would be "/O=SPARTA, Inc./".  Note: the quotes are not included.

PKI Type (1 byte, unsigned integer) - Indicates the type of certificate 
being used to identify the issuer PKI used to validate the Rule.  See 
Table 2.

Public Key Length (4 bytes, unsigned integer) - Length in bits of the 
public key used for this PKI.

Serial Number (4 bytes, unsigned integer) - Integer representing the 
X509 certificate serial number for this issuer certificate.

Issuer PKI Length (4 bytes, unsigned integer) - Length in bytes of the 
"Issuer PKI" field.

Issuer PKI (variable length, ASCII character) - This field represents 
the X509 Subject data of the issuer certificate in the format 
"/C=US/ST=MD/L=Columbia/O=SPARTA, Inc./CN=RootCA/Email=RootCA@sparta.com".  
Note: the quotes are not included.

Harney, Colegrove, Lough, Meth                            [Page 15]


Internet Draft       GSAKMP Token Specification       February 2003

2.3.2.4. Number of IP Rules

This section is for future expansion of the policy token and MUST be set to 
zero.  IP Rules may be used in the future to restrict a group member to 
certain IP or range of IP addresses.

 			0                   1
 			0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
			+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
			!         Num IP Rules          !
			+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Number of IP Rules (2 bytes, unsigned integer) - MUST be set to zero.



2.4. Mechanisms

The security services and related mechanisms used  must be consistent  
to maintain uniform data protection. For example, if the confidentiality 
of data is protected by the Advanced Encryption Standard (AES) at one point 
and by the Data Encryption Standard (DES) at another, the overall 
protection afforded the data is only the strength offered by the weakest 
mechanism.  

The data mechanisms used to protect the various phases of the group 
communications are specified in the Mechanisms Field of the GSAKMP Policy 
Token.  This field should be used as input into the decision for joining 
a particular group.  Specifically, the rules should be examined to determine 
whether they are stringent enough for the potential member's security needs.  
The actual Group Application Secure Association (SA), Unicast SA and Key 
Management SAs are specified here.  The mechanisms field will ensure that 
the policy protecting communications is sufficient and consistent throughout 
the group. 




Harney, Colegrove, Lough, Meth                            [Page 16]



Internet Draft       GSAKMP Token Specification       February 2003

2.4.1. Application SA

The Application SA (Category-3 SA[2]) describes the protection afforded 
Group Communications.  The actual format of this field is largely determined 
by the choice of security protocol for the protection of data.  To this end, 
section 2.4.1.3 defines Group Specific Data that is passed through to the 
application.  Allowing information to be passed through via the token ensures 
both the authentication and group-wide distribution of the data.  Mechanism 
and mode choices for confidentiality and authentication, key determination, 
key length and rekey must all be considered.  Furthermore, agreed upon key 
validity intervals (cryptoperiods) and possible data source authentication 
MUST be specified.

2.4.1.1. Encryption

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    !   Algorithm   !     Mode      !         Key Length            !
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    !                         Key Lifespan                          !
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    !   Key Type    !    Key CM     !
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Algorithm (1 byte, unsigned integer) - Encryption algorithm to be used 
for Group communication.  See Table 3.

			Table 3: Algorithm Type

			Algorithm           Value
			_____________________________
			None                0
			DES                 1
			3DES                2
			RC2                 3
			RC4                 4
                        Reserved            5-255

Mode (1 byte, unsigned integer) - Mode for the given algorithm.  See 
Table 4.

			Table 4: Encryption Mode

			Mode             Value
			__________________________
			None               0
			CBC64              1
			CFB64              2
			CFB8               3
			ECB                4
    			Reserved           5-255

Harney, Colegrove, Lough, Meth                            [Page 17]


Internet Draft       GSAKMP Token Specification       February 2003

Key Length (2 bytes, unsigned integer) - Length in bits of the GTEK.

Key Lifespan (4 bytes, unsigned integer) - Time in seconds the key is 
to be valid.

Key Type (1 byte, unsigned integer) - Intended use for Encryption key.  
See Table 5.

			Table 5: Key Type

			Key Type          Value
			__________________________
			None               0
			GTEK               1
			GKEK               2
			CR                 3
			Reserved		   4-255

Key Creation Methodology (1 byte, unsigned integer) - Indicates if the 
key was generated by cooperative pair wise methodology or self generated. 
See Table 6.

			Table 6: Key Creation Methodology

			Methodology          Value
			___________________________
			None               0
			Self               1
			Pair               2
  			Reserved   	  3-255

2.4.1.2. Rekey Information

This section will describe the frequency and rollover information for 
the Group key.  The frequency indicates how often a rekey event should 
occur for this key.  It is set up similar to a Unix Cron job.  Fields 
exist for minute, hour, day, month, day of week and day interval.  
A -1 in a field indicates that field is not used.  The rollover section
describes the method to use during a key rollover and the number of 
seconds that methodology should be used.













Harney, Colegrove, Lough, Meth                            [Page 18]



Internet Draft       GSAKMP Token Specification       February 2003

2.4.1.2.1. Frequency

    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 
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    !                            Minutes                            !
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    !                             Hours                             !
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    !                          Day of Month                         !
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    !                             Month                             !
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    !                          Day of Week                          !
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    !                          Day Interval                         !
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Minutes (4 bytes, signed integer) - Time in seconds of Rekey.

Hours (4 bytes, signed integer) - Time in hours of Rekey.

Day of Month (4 bytes, signed integer) - Day of month of Rekey.

Month (4 bytes, signed integer) - Month of Rekey.

Day of Week (4 bytes, signed integer) - Day of Week of Rekey.

Day Interval (4 bytes, signed integer) - Day Interval of Rekey.

2.4.1.2.2. Rollover

The rollover section indicates what needs to be done on replacement of 
key material.  The time field will indicate how long the key being 
replaced will be allowed to be used in conjunction with the new key 
material.

    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 
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    !     Type      !                      Time                     ~
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ~               !
    +-+-+-+-+-+-+-+-+

Type (1 byte, unsigned integer) - Type of Rollover mechanism to use.  
See Table 7.

			Table 7: Rollover Type

			Type           Value
			______________________
			Send New         0
			Reserved	1-255
Harney, Colegrove, Lough, Meth                            [Page 19]


Internet Draft       GSAKMP Token Specification       February 2003

Time (4 bytes, unsigned integer) - Time in seconds to enforce Rollover 
mechanism.

2.4.1.3. Group Specific Data

This section allows additional application specific data to be carried 
by the token. The next section specifies the use with IPSec.  Other 
applications can be similarly specified. If no additional group specific 
data is used, Type is zero, length is zero and there is no data section.

   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 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   !     Type      !                      Length                   ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~               !               Group Specific Data             ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Type (1 byte, unsigned integer) - Type of Group Specific Data.  See 
Table 8.

			Table 8: Group Specific Type

			Type          Value
			______________________
			None             0
    			IPSec            1
    			Reserved	2-255	

Length (4 bytes, unsigned integer) - Length of Group Specific Data field. 
Zero if none.

Data (variable, Group specific encoding) - Group Specific Data.  

2.4.1.3.1 IPSec Application Specific Data

This section describes the Group Specific Data format for use with 
IPSec implementations.  Further discussion of the IPSec databases 
populated by this information can be found in Appendix A.  The Type 
for Section 2.4.1.3. must be one (1) for this IPSec token implementation.  

2.4.1.3.1.1. Number of Secure Associations

 			0
 			0 1 2 3 4 5 6 7
			+-+-+-+-+-+-+-+-+
			!   Num SAs     !
			+-+-+-+-+-+-+-+-+

Number of Secure Associations (1 byte, unsigned integer) - Number of 
Secure Associations that make up this set of IPSec rules.



Harney, Colegrove, Lough, Meth                            [Page 20]


Internet Draft       GSAKMP Token Specification       February 2003

2.4.1.3.1.2. Secure Associations

This is the data that will populate the SAD and SPD.  This section will
be repeated the number of times indicated by Section 2.4.1.3.1.1.

    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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    !                              SPI                              !
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    !  Sec Protocol !   Direction   !  ESP Algor    !      Auth     !
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    !     Encap     ! SA LifeType   !           SA Lifetime         ~
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ~                               !  Source Address Length        ~
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ~                               !           Source Address      ~
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ~                               ~ Destination Address Length    ~
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ~                               ~      Destination Address      ~
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ~                               ~Trans Protocol !  Key Creation !
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
SPI (4 bytes, unsigned integer) - Random number unique to this host for 
this multicast address

Security Protocol (1 byte, unsigned integer) - Defines type of Security 
Protocol.  See Table 9.

			Table 9. Security Protocol

			Type            Data
			______________________
			None             0
			ESP              1
			AH               2
			Reserved       3-255   

Direction (1 byte, unsigned integer) - Processing direction for this 
rule.  See Table 10.

			Table 10. Direction

			Type             Data
			_____________________
			Bypass            0
			Incoming          1
			Outgoing          2
			Reserved        3-255


ESP Algorithm (1 byte, unsigned integer) - Algorithm to be used if ESP 
mode is selected.  See Table 11. 

Harney, Colegrove, Lough, Meth                            [Page 21]


Internet Draft       GSAKMP Token Specification       February 2003

			Table 11. ESP Algorithm

			Type             Data
			_____________________
			None              0
			ESP-DES           1
			Reserved        2-255


Authentication (1 byte, unsigned integer) - Algorithm to be used for 
authentication in AH only mode or for ESP authentication.  See Table 12.

			Table 12. ESP Authentication

			Type             Data
			_____________________
			None              0
			HMAC-SHA          1
			HMAC-MD5          2
			Reserved        3-255  

Encapsulation Mode (1 byte, unsigned integer) - Encapsulation Mode used 
for this IPSec rule.  See Table 13.

			Table 13. Encapsulation Mode

			Type             Data
			_____________________
			None             0
			Tunnel           1
			Reserved       2-255

SA Lifetype (1 byte, unsigned integer) - Describes the way we will 
calculate the lifetime for this SA.  Used in conjunction with SA 
Lifetime.  See Table 14.

			Table 14. SA Lifetype

			Type             Data
			_____________________
			None              0
			Bytes             1
			Kilobytes         2
			Megabytes         3
			Packets           4
			Reserved        5-255

SA Lifetime (4 bytes, unsigned integer) - Valid integer to be used in 
conjunction with the type found in SA Lifetype.  

Source Address Length (4 bytes, unsigned integer) - Length in bytes of 
the Source Address field.

Source Address (variable length, ASCII character) - ASCII dotted decimal
representation of source IP Address (for IPv4).  

Destination Address Length (4 bytes, unsigned integer) - Length in bytes
of the Source Address field.

Harney, Colegrove, Lough, Meth                            [Page 22]


Internet Draft       GSAKMP Token Specification       February 2003

Destination Address (variable length, ASCII character) - ASCII dotted 
decimal representation of destination IP Address (for IPv4).

Transport Protocol (1 byte, unsigned integer) - Indicates the type of 
transport protocol used by this SA.  See Table 15.

			Table 15. Transport Protocol

			Type          Data
			_____________________
			None            0
			TCP             1
			UDP             2
			Reserved      3-255


Key Creation (1 byte, unsigned integer) - Indicates the key creation 
methodology for this SA.  See Table 16.

			Table 16. Key Creation

			Type          Data
			_____________________
			Preplaced Key    0
			Reserved       1 - 255 
2.4.2. Unicast SA

The Unicast SA defines the mechanisms that will be used any time two 
group members perform peer-to-peer communication.  Mainly used during 
the GSAKMP "handshake" when a member attempts to join the group.  This 
section will define the protocol to be used, the p and g values (if 
appropriate) and the encryption algorithm the resultant key will utilize.   
Rekey mechanisms will also be covered.  The PKI defined for Unicast 
communication is also defined as well as necessary signature information.  
This section will be broken down into the Creation and Encryption, 
Rekey, PKI and Signature Info sections.

2.4.2.1. Creation and Encryption

   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 
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  !   Protocol    ! Group Est Type!            p Length           ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  ~                               !               p               ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  !                               g                               !
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  !   Algorithm   !     Mode      !         Key Length            !
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  !                         Key Lifespan                          !
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  !   Key Type    !    Key CM     !
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Harney, Colegrove, Lough, Meth                            [Page 23]



Internet Draft       GSAKMP Token Specification       February 2003

Protocol (1 byte, unsigned integer) - Represents the type of Secure 
Association being relied upon during unicast transactions.  See Table 17.

			Table 17: Unicast Protocol

			Protocol         Value
			________________________
			None              0
			IPSEC             1
			SSL               2
			SMIME             3
			ISAKMP            4
    			Reserved          5-255

Group Establishment Type (1 byte, unsigned integer) - Represents the 
type of GSAKMP (Full or Lite) group this token is created to establish.  
See Table 18.

			Table 18: Group Establishment Type

			Type          Value
			_____________________
			Full           0
			Lite           1
   			Reserved      2-255

p Length (4 bytes, unsigned integer) - Length in bytes of p.

p (variable length, Hexadecimal data) - Hex representation of p value 
defined for this SA.

g (4 bytes, unsigned integer) - g value defined for this SA.

Algorithm (1 byte, unsigned integer) - Encryption algorithm to be used 
for Unicast communication.  See Table 3.

Mode (1 byte, unsigned integer) - Mode for the given algorithm. See 
Table 4.

Key Length (2 bytes, unsigned integer) - Length in bits of the key.

Key Lifespan (4 bytes, unsigned integer) - Time in seconds the key is to 
be valid.

Key Type (1 byte, unsigned integer) - Intended use for Encryption key.  
See Table 5.

Key Creation Methodology (1 byte, unsigned integer) - Indicates if the 
key was generated by cooperative pair wise methodology or self generated.  
See Table 6.


Harney, Colegrove, Lough, Meth                            [Page 24]



Internet Draft       GSAKMP Token Specification       February 2003

2.4.2.2. Rekey

This section will describe the frequency and rollover information for 
the Unicast key.  The frequency indicates how often a rekey event should
occur for this key.  It is set up similar to a Unix Cron job.  Fields 
exist for minute, hour, day, month, day of week and day interval.  
A -1 in a field indicates that field is not used.  The rollover section
describes the method to use during a key rollover and the number of 
seconds that methodology should be used.

2.4.2.2.1. Frequency

    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 
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  !                            Minutes                            !
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  !                             Hours                             !
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  !                          Day of Month                         !
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  !                             Month                             !
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  !                          Day of Week                          !
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  !                          Day Interval                         !
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Minutes (4 bytes, signed integer) - Time in seconds of Rekey.

Hours (4 bytes, signed integer) - Time in hours of Rekey.

Day of Month (4 bytes, signed integer) - Day of month of Rekey.

Month (4 bytes, signed integer) - Month of Rekey.

Day of Week (4 bytes, signed integer) - Day of Week of Rekey.

Day Interval (4 bytes, signed integer) - Day Interval of Rekey.

2.4.2.2.2. Rollover

The rollover section indicates what needs to be done on replacement of 
key material.  The time field will indicate how long the key being 
replaced will be allowed to be used in conjunction with the new key 
material.

   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 
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  !     Type      !                      Time                     ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  ~               !
  +-+-+-+-+-+-+-+-+
Harney, Colegrove, Lough, Meth                            [Page 25]


Internet Draft       GSAKMP Token Specification       February 2003

Type (1 byte, unsigned integer) - Type of Rollover mechanism to use.  
See Table 7.

Time (4 bytes, unsigned integer) - Time in seconds to enforce Rollover 
mechanism.

2.4.2.3. PKI

This section describes the PKI that will be used to validate the 
certificates used in signing Unicast messages.

   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 
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  !   PKI Type    !                   Pub Key Length              ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  ~               !                   Serial Number               ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  ~               !                 Issuer PKI Length             ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  ~               !                     Issuer PKI                ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

PKI Type (1 byte, unsigned integer) - Indicates the type of certificate
being used to identify the issuer PKI used to validate certificates used
in signing the unicast messages.  See Table 2.

Public Key Length (4 bytes, unsigned integer) - Length in bits of the 
public key used for this PKI.

Serial Number (4 bytes, unsigned integer) - Integer representing the 
X509 certificate serial number for this issuer certificate.

Issuer PKI Length (4 bytes, unsigned integer) - Length in bytes of the 
"Issuer PKI" field.

Issuer PKI (variable length, ASCII character) - This field represents 
the X509 Subject data of the issuer certificate in the format 
"/C=US/ST=MD/L=Columbia/O=SPARTA, Inc./CN=RootCA/Email=RootCA@sparta.com".  
Note: the quotes are not included.

2.4.2.4. Signature

This section describes the algorithm and hash functions that will be 
used when signing unicast messages.

 			 0                   1
 			 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
			+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
			!   Algorithm   !      Hash     !
			+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Algorithm (1 byte, unsigned integer) - Encryption algorithm to be used 
for Unicast signatures.  See Table 3.
Harney, Colegrove, Lough, Meth                            [Page 26]


Internet Draft       GSAKMP Token Specification       February 2003

Hash (1 byte, unsigned integer) - Hash to be used for Unicast signatures.  
See Table 19.

			Table 19: Hash Algorithm

			Hash         Value
			_______________________
			SHA1            0
			MD5             1
			MD2             2
  			Reserved      3-255

2.4.3. Key Management SA

Finally, the last portion of the Mechanisms Field corresponds to the 
protection afforded GSAKMP key management messages, including the 
possibility of issuing an amended token.  This subfield is actually 
broken down into further fields:  Rekey and KEK.  The Rekey SA 
identifies the security mechanisms set up for key management messages.  
For cases in which Unicast messages may not be sufficiently protected, 
the KEK SA will allow further protection.  Both of these correspond to 
the Category-2 SA of the GKMBB draft[2].

2.4.3.1. Signature

This section describes the algorithm and hash functions that will be used
when signing Key Management messages.

 			 0                   1
 			 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
			+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
			!   Algorithm   !      Hash     !
			+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Algorithm (1 byte, unsigned integer) - Encryption algorithm to be used 
for Key Management signatures.  See Table 3.

Hash (1 byte, unsigned integer) - Hash to be used for Key Management 
signatures.  See Table 19.















Harney, Colegrove, Lough, Meth                            [Page 27]


Internet Draft       GSAKMP Token Specification       February 2003

2.4.3.2. PKI

This section describes the PKI that will be used to validate the 
certificates used in signing Key Management messages.

   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 
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  !   PKI Type    !                   Pub Key Length              ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  ~               !                   Serial Number               ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  ~               !                 Issuer PKI Length             ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  ~               !                     Issuer PKI                ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

PKI Type (1 byte, unsigned integer) - Indicates the type of certificate 
being used to identify the issuer PKI used to validate certificates used 
in signing the Key Management messages.  See Table 2.

Public Key Length (4 bytes, unsigned integer) - Length in bits of the 
public key used for this PKI.

Serial Number (4 bytes, unsigned integer) - Integer representing the 
X509 certificate serial number for this issuer certificate.

Issuer PKI Length (4 bytes, unsigned integer) - Length in bytes of the 
"Issuer PKI" field.

Issuer PKI (variable length, ASCII character) - This field represents 
the X509 Subject data of the issuer certificate in the format 
"/C=US/ST=MD/L=Columbia/O=SPARTA, Inc./CN=RootCA/Email=RootCA@sparta.com".  
Note: the quotes are not included.

2.4.3.3. Rekey SA

The Rekey SA describes the mechanisms used when sending Rekey messages.  
It is made up of Protocol and Encryption information and Rekey information.

2.4.3.3.1. Protocol and Encryption

    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 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   !   Protocol    !   Algorithm   !     Mode      !  Key Length   ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~               !                Key Lifespan                   ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~               !   Key Type    !    Key CM     !
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


Harney, Colegrove, Lough, Meth                            [Page 28]


Internet Draft       GSAKMP Token Specification       February 2003

Protocol (1 byte, unsigned integer) - Protocol being used for Rekey.  
See Table 20.

			Table 20: Rekey Protocol

			Protocol           Value
			___________________________
			None               0
			LKH                1
			OFT                2
  			Reserved		   3-255

Algorithm (1 byte, unsigned integer) - Encryption algorithm to be used 
for Rekey communication.  See Table 3.

Mode (1 byte, unsigned integer) - Mode for the given algorithm.  
See Table 4.

Key Length (2 bytes, unsigned integer) - Length in bits of the key.

Key Lifespan (4 bytes, unsigned integer) - Time in seconds the key is 
to be valid.

Key Type (1 byte, unsigned integer) - Intended use for Encryption key.  
See Table 5.

Key Creation Methodology (1 byte, unsigned integer) - Indicates if the 
key was generated by cooperative pair wise methodology or self generated.  
See Table 6.

2.4.3.3.2. Rekey

This section will describe the frequency and rollover information for 
the Rekey key.  The frequency indicates how often a rekey event should 
occur for this key.  It is set up similar to a Unix Cron job.  Fields 
exist for minute, hour, day, month, day of week and day interval.  
A -1 in a field indicates that field is not used.  The rollover section
describes the method to use during a key rollover and the number of 
seconds that methodology should be used.















Harney, Colegrove, Lough, Meth                            [Page 29]


Internet Draft       GSAKMP Token Specification       February 2003

2.4.3.3.2.1. Frequency

   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 
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  !                            Minutes                            !
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  !                             Hours                             !
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  !                          Day of Month                         !
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  !                             Month                             !
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  !                          Day of Week                          !
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  !                          Day Interval                         !
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Minutes (4 bytes, signed integer) - Time in seconds of Rekey.

Hours (4 bytes, signed integer) - Time in hours of Rekey.

Day of Month (4 bytes, signed integer) - Day of month of Rekey.

Month (4 bytes, signed integer) - Month of Rekey.

Day of Week (4 bytes, signed integer) - Day of Week of Rekey.

Day Interval (4 bytes, signed integer) - Day Interval of Rekey.

2.4.3.3.2.2. Rollover

The rollover section indicates what needs to be done on replacement of 
key material.  The time field will indicate how long the key being 
replaced will be allowed to be used in conjunction with the new key 
material.

  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 
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  !     Type      !                      Time                     ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  ~               !
  +-+-+-+-+-+-+-+-+

Type (1 byte, unsigned integer) - Type of Rollover mechanism to use.  
See Table 7.

Time (4 bytes, unsigned integer) - Time in seconds to enforce Rollover 
mechanism.




Harney, Colegrove, Lough, Meth                            [Page 30]


Internet Draft       GSAKMP Token Specification       February 2003

2.4.3.4. KEK SA

This section will discuss the encryption mechanisms to be used when 
there is no underlying SA to rely upon for protection of the key 
material, or when the underlying SA is not considered strong enough 
for the purpose.  This section will define the p and g values, the 
encryption information and the rekey information necessary to generate 
a cooperatively generated key.

2.4.3.4.1. p & g and Encryption

   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 
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  !                            Length                             !
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  !                               p                               ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  !                               g                               !
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  !  Algorithm    !     Mode      !          Key Length           !
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  !                         Key Lifespan                          !
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  !    Key Type   !    Key CM     !
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Length (4 bytes, unsigned integer) - Length in bytes of p.

p (variable length, Hexadecimal data) - Hex representation of p value 
defined for this SA.

g (4 bytes, unsigned integer) - g value defined for this SA.

Algorithm (1 byte, unsigned integer) - Encryption algorithm to be used 
for KEK communication.  See Table 3.

Mode (1 byte, unsigned integer) - Mode for the given algorithm.  
See Table 4.

Key Length (2 bytes, unsigned integer) - Length in bits of the key.

Key Lifespan (4 bytes, unsigned integer) - Time in seconds the key is 
to be valid.

Key Type (1 byte, unsigned integer) - Intended use for Encryption key.  
See Table 5.

Key Creation Methodology (1 byte, unsigned integer) - Indicates if the 
key was generated by cooperative pair wise methodology or self generated.  
See Table 6.


Harney, Colegrove, Lough, Meth                            [Page 31]


Internet Draft       GSAKMP Token Specification       February 2003

2.4.3.4.2. Rekey

This section will describe the frequency and rollover information for 
the KEK.  The frequency indicates how often a rekey event should occur 
for this key.  It is set up similar to a Unix Cron job.  Fields exist 
for minute, hour, day, month, day of week and day interval.  
A -1 in a field indicates that field is not used.  The rollover section 
describes the method to use during a key rollover and the number of 
seconds that methodology should be used.

2.4.3.4.2.1. Frequency

   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 
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  !                            Minutes                            !
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  !                             Hours                             !
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  !                          Day of Month                         !
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  !                             Month                             !
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  !                          Day of Week                          !
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  !                          Day Interval                         !
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Minutes (4 bytes, signed integer) - Time in seconds of Rekey.

Hours (4 bytes, signed integer) - Time in hours of Rekey.

Day of Month (4 bytes, signed integer) - Day of month of Rekey.

Month (4 bytes, signed integer) - Month of Rekey.

Day of Week (4 bytes, signed integer) - Day of Week of Rekey.

Day Interval (4 bytes, signed integer) - Day Interval of Rekey.

2.4.3.4.2.2. Rollover

The rollover section indicates what needs to be done on replacement of 
key material.  The time field will indicate how long the key being 
replaced will be allowed to be used in conjunction with the new key 
material.

   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 
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  !     Type      !                      Time                     ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  ~               !
  +-+-+-+-+-+-+-+-+
Harney, Colegrove, Lough, Meth                            [Page 32]


Internet Draft       GSAKMP Token Specification       February 2003

Type (1 byte, unsigned integer) - Type of Rollover mechanism to use.  
See Table 7.

Time (4 bytes, unsigned integer) - Time in seconds to enforce Rollover 
mechanism.

2.5. Signature

The signature block field contains the information that verifies the 
authenticity of the policy token.  It clearly identifies the signer of 
the token -- the Group Owner, the PKI information needed to establish 
what is the proper certificate to use for the signature verification, 
and the signature data.  The signature covers all of the fields of the 
GSAKMP Policy Token including portions of the Signature Block Field 
itself.  Because of this, any unauthorized change in the policy token 
will invalidate the signature.

2.5.1. Name

   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 
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  !                         Serial Number                         !
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  !                       Owner Name Length                       !
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  !                           Owner Name                          ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Serial Number (4 bytes, unsigned integer) - Integer representing the 
X509V3 signature certificate serial number from the certificate 
representing the Group Owner.

Owner Name Length (4 bytes, unsigned integer) - Length in bytes of the 
"Owner Name" field.

Owner Name (variable length, ASCII character) -This field represents 
the X509V3 Subject data in the format "/C=US/ST=MD/L=Columbia/O=SPARTA, 
Inc./OU=ISSO/CN=loughp/Email=loughp@sparta.com".  Note: the quotes are 
not included.

2.5.2. PKI

   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 
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  !   PKI Type    !                   Pub Key Length              ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  ~               !                   Serial Number               ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  ~               !                 Issuer PKI Length             ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  ~               !                     Issuer PKI                ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Harney, Colegrove, Lough, Meth                            [Page 33]


Internet Draft       GSAKMP Token Specification       February 2003

PKI Type (1 byte, unsigned integer) - Indicates the type of certificate 
being used to identify the issuer PKI used to validate certificates used 
in signing the token.  See Table 2.

Public Key Length (4 bytes, unsigned integer) - Length in bits of the 
public key used for this PKI.

Serial Number (4 bytes, unsigned integer) - Integer representing the 
X509 certificate serial number for this issuer certificate.

Issuer PKI Length (4 bytes, unsigned integer) - Length in bytes of the 
"Issuer PKI" field.

Issuer PKI (variable length, ASCII character) - This field represents 
the X509 Subject data of the issuer certificate in the format 
"/C=US/ST=MD/L=Columbia/O=SPARTA, Inc./CN=RootCA/Email=RootCA@sparta.com".  
Note: the quotes are not included.

2.5.3. Signature Data

This is the only section of the token that the signature does not sign 
over.  All fields up to this point are put through the signature 
algorithm and the resultant signature is appended in the format covered 
in this section.

   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 
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  !                    Length of Signature Data                   !
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  !                         Signature Data                        ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Length of Signature Data (4 bytes, unsigned integer) - Total length in 
bytes of "Signature Data" field.

Signature Data (variable length, Hexadecimal data) - Hexadecimal 
representation of signature data output by algorithm.
















Harney, Colegrove, Lough, Meth                            [Page 34]


Internet Draft       GSAKMP Token Specification       February 2003

Acknowledgements:

The authors of this document would like to thank the following people
for their contribution to this specification:  

Greg Bergren
Mark Houchens
Andy McFarland


References:

[1] H. Harney, A. Colegrove, E. Harder, U. Meth, R. Fleischer Group 
Secure Association Key Management Protocol, draft-ietf-msec-gsakmp-sec-
00.txt, March  2001, Work in Progress.

[2] H. Harney, M. Baugher, T. Hardjono, GKM Building Block: Group 
Security Association (GSA) Definition,  September 2000, Work in Progress.

[3] D. Piper, The Internet IP Security Domain of Interpretation for 
ISAKMP, RFC 2407, November 1998.

[4] S. Kent, R. Atkinson, Security Architecture for the Internet 
Protocol, RFC 2401, November 1998.

[5] H. Harney, C. Muckenhirn, Group Key Management Protocol (GKMP) 
Specification, RFC 2093, July 1997.

[6] H. Harney, C. Muckenhirn, Group Key Management Protocol (GKMP) 
Architecture, RFC 2094, July 1997.































Harney, Colegrove, Lough, Meth                            [Page 35]


Internet Draft       GSAKMP Token Specification       February 2003

Authors Addresses:

Hugh Harney
SPARTA, Inc.
7075 Samuel Morse Drive
Columbia, MD 21046
(410) 872-1515 x203
hh@sparta.com

Andrea Colegrove
SPARTA, Inc.
7075 Samuel Morse Drive
Columbia, MD 21046
(410) 872-1515 x232

Peter Lough
SPARTA, Inc.
7075 Samuel Morse Drive
Columbia, MD 21046
(410) 872-1515 x234

Uri Meth
SPARTA, Inc.
7075 Samuel Morse Drive
Columbia, MD 21046
(410) 872-1515 x233





























Harney, Colegrove, Lough, Meth                            [Page 36]

Internet Draft       GSAKMP Token Specification       February 2003

Appendix A.

The following section further describes the architecture for GSAKMP 
using IPsec [3] to provide Security Associations (SAs) for unicast 
communications and multicast group application communications.  The 
authenticated GSAKMP policy token that was described in the previous 
section can clearly specify in its mechanisms field how the secure 
group can translate its needs to the IPsec specific database policies 
utilizing the following application specific information.

GSAKMP creates an association between multiple entities connected by 
the Internet.  The intent of the protocol is to use secure existing 
protocol services that are standardized for the Internet to facilitate 
setting up these secure groups.  IPsec is one of the standard secure 
services that GSAKMP can use.  The GSAKMP Policy Token defines the 
policy for protecting the multicast group traffic.  IPsec can be used 
to protect communications between these group members.

GSAKMP is an application layer protocol that exists above the IPsec 
network layer encryption engine.  Configuration of GSAKMP must include 
configuration of the appropriate databases controlling IPsec.  GSAKMP 
must ensure that IPsec processes its messages appropriately.  To 
configure IPsec, GSAKMP will have to interact with the Security Policy 
Database (SPD) and the Security Association Database (SAD).

Each group can have unique IPsec processing requirements for the unicast
 and multicast messages pertaining to that particular group.  These 
group unique configurations must be conveyed to the IPsec controlling 
databases in a way that will allow correct IPsec processing for each 
groups' message. Special attention must be paid to the IPsec selector 
fields. The standard source and destination pair selectors are not 
adequate for multicast groups where multiple groups share the same 
destination address.

A.1. IPsec Architecture

The IPsec architecture document [4] identifies two databases used by 
IPsec - Security Policy Database (SPD) and Secure Association Database 
(SAD). The former specifies the policies that determine the disposition
 of all IP traffic (inbound or outbound) from a host, security gateway, 
or BITS or BITW IPsec implementation. The latter database contains 
parameters that are associated with each (active) security association. 
The information in these databases allows the IPsec protocol to process 
incoming and outgoing packets.









Harney, Colegrove, Lough, Meth                            [Page 37]


Internet Draft       GSAKMP Token Specification       February 2003

A.1.1 SPD Inputs

Purpose of the SPD (copied from RFC 2401)

A security association is a management construct used to enforce a 
security policy in the IPsec environment. Thus an essential element of 
SA processing is an underlying Security Policy Database (SPD) that 
specifies what services are to be offered to IP datagrams and in what 
fashion. The form of the database and its interface are outside the 
scope of this specification. However, this section does specify certain 
minimum management functionality that must be provided, to allow a user 
or system administrator to control how IPsec is applied to traffic 
transmitted or received by a host or transiting a security gateway.

The SPD must be consulted during the processing of all traffic 
(INBOUND and OUTBOUND), including non-IPsec traffic. In order to support
this, the SPD requires distinct entries for inbound and outbound traffic
. One can think of this as separate SPDs (inbound vs. outbound). In 
addition, a nominally separate SPD must be provided for each 
IPsec-enabled interface. 

An SPD must discriminate among traffic that is afforded IPsec protection
and traffic that is allowed to bypass IPsec. This applies to the IPsec 
protection to be applied by a sender and to the IPsec protection that 
must be present at the receiver. For any outbound or inbound datagram, 
three processing choices are possible: discard, bypass IPsec, or apply 
IPsec. The first choice refers to traffic that is not allowed to exit 
the host, traverse the security gateway, or be delivered to an 
application at all. The second choice refers to traffic that is allowed
 to pass without additional IPsec protection. The third choice refers 
to traffic that is afforded IPsec protection, and for such traffic the 
SPD must specify the security services to be provided, protocols to be 
employed, algorithms to be used, etc.


The critical elements of the SPD are:

* Destination IP Address
* Source IP Address
* Name
* Data sensitivity level
* Transport Layer Protocol
* Source and Destination (e.g., TCP/UDP) Ports 
* Specific IPsec processing 
* Specific IPsec Algorithms (spi, service, algorithm, mode)




Harney, Colegrove, Lough, Meth                            [Page 38]


Internet Draft       GSAKMP Token Specification       February 2003


A.1.2 SAD Inputs

Purpose of the SAD (copied from RFC 2401)

In each IPsec implementation there is a nominal Security Association 
Database, in which each entry defines the parameters associated with one
 SA. Each SA has an entry in the SAD. For outbound processing, entries 
are pointed to by entries in the SPD. Note that if an SPD entry does not
 currently point to an SA that is appropriate for the packet, the 
implementation creates an appropriate SA (or SA Bundle) and links the 
SPD entry to the SAD entry (see Section 5.1.1). For inbound processing, 
each entry in the SAD is indexed by a destination IP address, IPsec 
protocol type, and SPI. The following parameters are associated with 
each entry in the SAD. This description does not purport to be a MIB, 
but only a specification of the minimal data items required to support 
an SA in an IPsec implementation. 

The critical elements of the SAD are:

* SAD index 
* Outer Header's Destination IP address 
* IPsec Protocol 
* SPI
* Sequence Number Counter 
* Sequence Counter Overflow [only outbound] 
* Anti-Replay Window: [only for inbound.] 
* AH Authentication algorithm, keys, etc. [REQUIRED for AH 
  implementations] 
* ESP Encryption algorithm, keys, IV mode, IV, etc. [REQUIRED for    
  ESP implementations] 
* ESP authentication algorithm, keys, etc [REQUIRED for ESP 
  implementations] 
* Lifetime of this Security Association: Required 
* IPsec protocol mode: tunnel, transport or wildcard 
* Path MTU:  [REQUIRED for all implementations but used only for 
  outbound traffic] 















Harney, Colegrove, Lough, Meth                             [Page 39]
	

	


PAFTECH AB 2003-20262026-04-21 08:29:05