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]