Internet DRAFT - draft-duquer-fmke

draft-duquer-fmke





Internet Engineering Task Force                             L. Duquerroy 
INTERNET-DRAFT                                                  S.Josset
Expires: February, 2005                                                         
                                                         September, 2004 


 
                  The Flat Multicast Key Exchange protocol
                       <draft-duquer-fmke-01.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. 
    
Abstract 
    
   This document presents a new group key management protocol called 
   FMKE (Flat Multicast Key Exchange), derived from the Group Domain of
   Interpretation (GDOI) [RFC3547]. Like the GDOI, its objective is to 
   Manage securely group Security Associations (SA), i.e. establish and
   update SAs in Group members. These security associations protect one
   or more key-encrypting keys, traffic-encrypting keys, or data shared
   by group members. This protocol is based on a centralized management,
   achieved by the GCKS (Group Controller and Key Server). It is 
   destined to be used by Data Security protocols such as the IPSEC ESP 
   protocol. The FMKE protocol is destined to provide an optimized 
   solution for very large groups with direct connections such as in 
   satellite systems, or wireless systems such as WIFI. It can be 
   considered as a GDOI use case adapted for satellite networks. 
    





Duquerroy , et al.                                              [Page 1]






                 The Flat Multicast Key Exchange        September , 2004
    
    
Table of Contents 
    
1.0 Introduction......................................................3 
2.0 Phase 1 ..........................................................6 
3.0 Phase 2 Exchange..................................................6 
    3.1 Messages......................................................6 
    3.2 Reliability...................................................8 
    3.3 ISAKMP Header Configuration...................................9 
4.0 Phase 3 Exchange..................................................9 
    4.1 Messages......................................................9 
    4.2 Reliability..................................................11 
    4.3 ISAKMP Header Configuration..................................12 
    4.4 Phase 3 utilization..........................................12 
5.0 Deletion of SAs..................................................12
6.0 Utilization of FMKE exchanges according to satellite network
    topologies.......................................................13
    6.1 Utilization in one-way systems...............................13	
7.0 Payloads and defined SA attributes...............................15
    7.1 Last Sequence Number Payload (LSEQ)..........................15 
    7.2 Acknowledgement Payload (ACK)................................16  
    7.3 Selective Acknowledgement Payload(SACK)......................17
    7.4 Negative Acknowledgement Payload (NACK)......................17
    7.5 Sequence Number Payload (SEQ)................................18
    7.6 Security Association Payload (SA)............................19 
        7.6.1 Payloads following the SA payload......................20 
    7.7 SA KEK payload...............................................21 
        7.7.1 KEK attributes ........................................23 
        7.7.2 KEK_MANAGEMENT_ALGORITHM ..............................23
        7.7.3.  KEK_ALGORITHM........................................23
        7.7.4.  KEK_KEY_LENGTH ......................................24
        7.7.5.  KEK_KEY_LIFETIME ....................................24
        7.7.6.  SIG_HASH_ALGORITHM ..................................24
        7.7.7.  SIG_ALGORITHM........................................24
        7.7.8.  SIG_KEY_LENGTH ......................................25
        7.7.9.  KE_OAKLEY_GROUP......................................25
        7.7.10. HASH_ALGORITHM.......................................25 
        7.7.11. NEXT_SEQ_NUMBER......................................25
    7.8 SA TEK payload...............................................25 
        7.8.1 PROTO_IPSEC_ESP........................................26 
    7.9 Key Download Payload.........................................29 
        7.9.1.  TEK Download Type....................................30
        7.9.2.  KEK Download Type....................................31
8.0 Domain of Interpretation for FMKE................................32
    8.1 Payloads.....................................................32 
    8.2 New Exchange types...........................................32 
    8.3 Security Association attributes..............................33 
9.0 Security Considerations..........................................33
    9.1 ISAKMP Phase 1...............................................33 
        9.1.1 Authentication.........................................34  
        9.1.2 Confidentiality........................................34

Duquerroy , et al.                                              [Page 2]





  
                The Flat Multicast Key Exchange         September, 2004


        9.1.3 Man-in-the-middle Attack Protection....................34 
        9.1.4 Replay/Reflection Attack Protection....................34 
    9.2 Phase 2 Exchange.............................................34 
        9.2.1 Authentication.........................................35  
        9.2.2 Confidentiality........................................35 
        9.2.3 Man-in-the-middle Attack Protection....................35 
        9.2.4 Replay/Reflection Attack Protection....................35 
    9.3 Phase 3 Exchange.............................................35
        9.3.1 Authentication.........................................35  
        9.3.2 Confidentiality........................................36 
        9.3.3 Man-in-the-middle Attack Protection....................36 
        9.3.4 Replay/Reflection Attack Protection....................36 
10.0 IANA considerations.............................................36
    10.1 ISAKMP DOI..................................................36
    10.2 Payload types...............................................36  
    10.3 New Name spaces.............................................36 
11.0 Acknowledgements............................................... 36
12.0 References..................................................... 37


1.0 Introduction 
    
   This document presents a new group key management protocol called 
   FMKE (Flat Multicast Key Exchange). Its objective is to manage 
   securely group Security Associations (SA), i.e. establish and update 
   SAs in Group members. This protocol is based on a centralized 
   management, achieved by the GCKS (Group Controller and Key Server). 
   It is destined to be used by Data Security protocols such as the 
   IPSec ESP protocol, for the securisation of group communications. 
   FMKE exchanges take place between the GCKS and Group members. The 
   protocol establishes Data-security SAs and Re-key SAs in the 
   authorized Group members.

   FMKE is derived from the Group Domain of Interpretation (GDOI) 
   [RFC 3547], and can be seen as a GDOI use case adapted and optimized
   for satellite networks:

   - FMKE is destined to manage securely group SA in any satellite 
   network topologies. These SA protect key-encrypting keys, 
   traffic-encrypting keys, or data, transmitted on satellite links and
   shared by Group members. 
   In Star topology, the Gateway (GW) is a terminal access concentrator.
   Communications take place only between the GW and Satellite terminals
   (ST) through the satellite. End users are located behind the STs.
   Communications between GW and each ST can be bi-directional(two-way
   systems : in such a case, the ST has a return channel), or 
   unidirectional, from GW to ST (one-way systems : in such a case, the 
   ST does not have a return channel).  
   In Mesh topology, communications take place directly between STs 
   (they are bi-directional).
 
Duquerroy , et al.                                              [Page 3]




  
  
                The Flat Multicast Key Exchange         September , 2004


   The FMKE objective is thus to establish group SA in group members 
   (located in each ST and GW) in any types of topology (Remark : GCKS is 
   located in GW in Star topology, and in a ST in Mesh topology).

  
              GW                             	ST-----ST 
             / | \					| \   / | 
            /  |  \					|  \ /  | 
           /   |   \					|   \   |    
          /    |    \					|  / \  |   
         /     |     \					| /   \ |   
        ST	   ST     ST				ST-----ST	

	   Star Topology  		   	    Mesh Topology        
   
   
   - Satellite networks can require reliable key distribution, in unicast
   and in multicast. For that purpose, FMKE defines specific mechanisms, 
   implemented in the exchanges between GCKS and members.

   - In satellite networks, bandwidth is limited. FMKE aims at reducing
   the overhead generated by the establishment of group SAs. Thus FMKE 
   changes the philosophy of the key distribution in order to limit the
   consumed bandwidth.   

   -  In satellite networks, data to be protected by Data-security SA 
   are generated by end-users located behind STs or GW. These end-users
   are distinct from group members. Group members shall therefore 
   encapsulate data in tunnels. For that purpose, FMKE defines 
   additional information specifying the associated tunnel in the 
   definition of Data-security SAs. 


      
   FMKE uses several payloads introduced by GDOI:
	 - GDOI SA
       - SA KEK (SAK) which follows the SA payload
       - Key Download Array (KD)
 - Sequence Number (SEQ)

   FMKE also extends the definition of the following GDOI payload:
       - SA TEK (SAT) which follows the SA payload

   FMKE defines new payloads :
 	 - Last Sequence Number (LSEQ)             
       - Acknowledgement (ACK)                   
       - Selective Acknowledgement (SACK)        
       - Negative Acknowledgement (NACK) 
 
  

 Duquerroy , et al.                                              [Page 4]





    
               The Flat Multicast Key Exchange         September , 2004


   Like the GDOI, FMKE MUST be protected by a Phase 1 security 
   association. Similarly to [RFC3547], this document incorporates the
   Phase 1 security association (SA) definition from the Internet DOI
   [RFC2407, RFC2409]. 

   FMKE defines two new exchanges derived from both exchanges of GDOI :
   
   1/ The FMKE Phase 2 is derived from the GDOI "GROUKEY-PULL". 
   Like the "GROUKEY-PULL" exchange, it is protected by the Phase 1 
   ISAKMP SA, and the GCKS transmits securely Data-Security SAs and
   Re-key SAs the Group member is authorized to get access to (i.e SAs 
   of groups whose it is a member). A Re-key SA includes a key 
   encrypting key, or KEK, common to a group; a Data-security SA 
   includes a data encryption key, or TEK, used by a data-security 
   protocol to encrypt or decrypt data traffic.
 
   Unlike GDOI, this phase takes place once, after the Phase 1. The 
   member can receive directly all SAs it is authorized to get access
   to, without having to send a request for each group. This way FMKE
   limits the consumed bandwidth. Indeed the member does not have to 
   send a request for each group, and a FMKE message from the GCKS can
   contain SAs from different groups.
   Moreover in order to provide reliability, the member sends 
   periodically acknowledgement messages. 


   2/ The FMKE Phase 3 is derived from the GDOI "GROUKEY-PUSH". 
   Like the "GROUKEY-PUSH" exchange, it is dedicated to a group, and is
   protected by the Re-key SA, which is shared by all Group members.
   In this phase, the GCKS transmits securely SAs to the Group members. 
   It can create or update Re-key SA and/or Data-security SAs in group 
   members. 
   Unlike GDOI, this phase is defined with reliability mechanisms so 
   that all Group members receive each new or updated SA.


   FMKE introduces new exchanges, new security payloads and new SA
   attributes with regard to the IPSec DOI or GDOI. FMKE requires 
   therefore a new Domain Of Interpretation (DOI). 

   The keywords MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, 
   SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL, when they appear in this 
   document, are to be interpreted as described in RFC 2119 [RFC2119]. 








Duquerroy , et al.                                              [Page 5]





                
                The Flat Multicast Key Exchange         September , 2004


2.0 Phase 1.

   FMKE MUST be protected by a "phase 1" protocol.
   The phase 1 protocol provides a mutual authentication between GCKS 
   and Group member, and establishes a security association between them
   , ensuring confidentiality, integrity and source authentication. The 
   Phase 1 is then used to protect FMKE exchanges. 
   Similarly to the GDOI, it is proposed to use the ISAKMP phase 1 
   (Main-Mode with pre-Shared key or Public Key for Authentication" 
   phase 1) as defined in [RFC2409], as a "Phase 1" protocol for FMKE.
   It realizes a mutual authentication and establishes an ISAKMP SA, 
   which provides all needed security services.
     
   During this phase, the DOI value mentioned in the ISAKMP Header of 
   the exchanged messages MUST correspond to the DOI which defines the 
   FMKE exchanges (c.f. 8.0). 
   Besides, like GDOI, FMKE MUST NOT run on port 500 (the port commonly used 
   for IKE), but on a port assigned to FMKE(the GDOI port is 848).


3.0 Phase 2 exchange.

   The goal of the Phase 2 exchange is to establish Re-keys SAs and/or
   Data-security SAs at the member. The transmitted SAs belong to the 
   same or to different groups. There is one Re-key SA per group. During
   this phase, the member can receive all the Data security SAs and Re-
   key SAs it is authorized to get access to (the SAs of all the groups 
   whose it is a member). The Phase 2 exchange takes place once, after 
   the Phase 1; and is initiated by the GCKS. It is protected by the 
   Phase 1 SA. 

3.1 Messages.


 		Group Member                             GCKS  
           ------------------                   ---------------- 
                                   <--       HDR*, HASH(1), SEQ, SA, KD 
                                   <--       HDR*, HASH(1), SEQ, SA, KD 
   HDR*, HASH(2), ACK, [,SACK]     --> 
                                   <--	    HDR*, HASH(1), SEQ, SA, KD 
   HDR*, HASH(2), ACK, [,SACK]     -->
						... 
        * Protected by the Phase 1 SA, encryption occurs after HDR
  

   Hashes are computed as follows :
           HASH(1) = prf(SKEYID_a, SEQ | SA |KD )
           HASH(2) = prf(SKEYID_a, ACK [ | SACK ])


  
Duquerroy , et al.                                              [Page 6]





   
                The Flat Multicast Key Exchange         September , 2004
  

   Phase 2 messages are protected by the Phase 1 SA. The Phase 1 
   computes SKEYID_a, which is the key used to compute the hash value 
   contained in the HASH payload of the Phase 2 messages, and K 
   (derived from SKEYID_e), which is the key used to encrypt/decrypt 
   the Phase 2 messages. SKEYID_a and K are derived according to 
   [RFC2409].  

   Phase 2 exchange is composed of two types of messages : the messages 
   sent by the GCKS, which contain the SA attributes and keys the member
   is authorized to get access to, and the messages sent by the member, 
   which are used to acknowledge the previous messages.
   The number of messages transmitted by the GCKS is variable: it 
   depends on the number of SAs to establish.
   Acknowledgement messages are sent periodically by the member. Their 
   number is variable.


   HDR is an ISAKMP payload that uses the Phase 1 cookies.

   SA is the SA payload. It contains all the policy attributes of the 
   SAs to establish, like in GDOI. 

   KD is the Key Download payload defined in GDOI. If one or more 
   Re-Key SAs are defined in the SA payload, KD will contain the KEKs.
   If one or more Data SAs are defined in the SA payload, KD will 
   contains the TEKs.

   During a phase 2, the GCKS can transmit several Re-key SAs (one per
   group) and/or several Data-security SAs. The Re-Key SAs are 
   identified by an ISAKMP cookie pair, which is included in the SA 
   payload. This cookie pair is not negotiated, but determined and
   downloaded by the GCKS.
   The Data SAs are identified by a SPI (Secure Parameter Index), which 
   is included in the SA payload. The SPI is not negotiated, but 
   determined and downloaded by the GCKS.
   
   The signification of the value contained in the SEQ payload is 
   different from the signification of the value of the GDOI 
   GROUPKEY-PULL: it represents the value of a counter which is used to
   order the phase 2 messages of GCKS. 
   
   In the member messages, the value contained in the ACK payload 
   mentions the sequence number of the last correctly received message.
   The SACK payload can be optionally included in the Phase 2 member
   messages. When one or several GCKS messages are missing, it allows to
   mention the sequence numbers of following messages already received 
   (c.f. 3.2).
    
   


Duquerroy , et al.                                              [Page 7]






                The Flat Multicast Key Exchange         September , 2004

   
   The HASH payload proves that the messages have not been 
   modified during transmission and that the peer knows the Phase 1 
   secret(SKEYID_a). The HASH payload also guarantees that messages are 
   not replayed from an old session establishment, as they required the
   secret of the last Phase 1. The SEQ payload in the GCKS messages 
   allows the member to delete all messages already received in the 
   Phase 2, as it has to check that the sequence number is greater than 
   in the previous SEQ payloads.

   In FMKE, verifying the liveliness of the member is not needed, 
   because there is only one Phase 2, which begins just after the Phase 
   1, and because the Phase 2 is initiated by the GCKS. If the member 
   cannot acknowledge the GCKS messages, the connection is closed. 
   The liveliness of the GCKS is proved thanks to the HASH and to the 
   SEQ payloads, which guarantee that it owns the Phase 1 secret and the 
   current sequence number. 


3.2 Reliability.

   FMKE requires reliable session establishment phases. In the Phase 2,
   reliability mechanisms are based on positive acknowledgements (the 
   member acknowledges received messages), retransmission of non 
   acknowledged messages and optionally selective acknowledgements 
   (Sack). 

   Thus, the member sends periodically positive acknowledgements to 
   acknowledge GCKS messages.
   For that purpose, a sequence number is assigned to each GCKS message
   (mentioned in the SEQ payload), which orders these messages. In
   acknowledgement messages, the value contained in the ACK payload 
   mentions the sequence number of the last correctly received message. 
   The SACK payload can be optionally included in the member messages. 
   When one or several GCKS messages are missing, it allows to mention 
   the numbers of following messages already received.

   Ex :
     First sequence number used : 1

     Sequence numbers of the messages sent by the GCKS : 
     1 2 3 4 5 6 7 8 9

     Sequence numbers of the messages received by the Member :
     1 2 3 4 . 6 7 . 9 (5 and 8 are lost)

     Acknowledgement sent by the member :
     Ack : 4  , Sack : 6-7, Sack : 9-9 (this acknowledgement must 
     trigger the retransmission of the messages 5 and 8).



Duquerroy , et al.                                              [Page 8]





 
                The Flat Multicast Key Exchange         September , 2004


3.3 ISAKMP Header configuration (Hdr)
   
   The Initiator Cookie field is the cookie of the Group member, 
   generated during the Phase 1 according to ISAKMP [RFC2408].
   The Responder Cookie field is the cookie of the GCKS, generated 
   during the Phase 1 according to ISAKMP [RFC2408].

   Next Payload identifies an ISAKMP, GDOI or FMKE payload.

   Major Version is 1 and Minor Version is 0 according to ISAKMP
   [RFC2408].

   The Exchange Type field is set to "FMKE_unicast_Push" (c.f. 8.2)

   Flags, Messages ID and Length are according to ISAKMP[RFC2408].


4.0 Phase 3 exchange

   During Phase 3, the GCKS sends securely control information to 
   Group members using group communications. Typically this will be
   using IP multicast. Like in GDOI, the goal of the Phase 3 exchange is
   to create new Data security SAs, and/or replace the Re-key SA into
   Group members (of a same group). The Phase 3 is protected by the 
   Re-key SA of the group. The GCKS pushes the new SA attributes. 
   
4.1 Messages


 	   Group Member                                GCKS  
        ------------------                     ---------------- 
                                   <--       HDR*, SEQ, SA, KD, SIG 
                                   x<-       HDR*, SEQ, SA, KD, SIG 
                                   <--	    HDR*, LSEQ, SIG 
   HDR*, HASH, NACK                -->
                                   <--       HDR*, SEQ, SA, KD, SIG 
					      ... 

          * protected by the Re-Key SA; encryption occurs after HDR 


   The Phase 3 messages are protected by the Re-key SA. They are 
   encrypted and authenticated according to the Re-key SA attributes. 


   In the Phase 3, the GCKS sends two types of messages. The first type 
   Messages contain the SA and KD payloads, and is used to create and/or
   replace new SAs. Like in Phase 2, a SEQ payload is included in each 
   message, containing a sequence number value. 


Duquerroy , et al.                                              [Page 9]





  
                The Flat Multicast Key Exchange         September , 2004
  

   The second type messages are sent periodically. They contain a LSEQ
   payload whose value mentions the last sequence number used by
   the GCKS. This payload is used to enable reliability (c.f. 4.2).

   The Group member sends only one type of messages. These messages are
   used as Non-acknowledgement messages: they request the
   retransmission, in multicast, of the message(s), whose sequence 
   number(s) is(are) mentioned in the NACK payload(s). 

  
   HDR is an ISAKMP payload that uses the Re-key SA cookies (c.f. 3.1). 

   SA is the SA payload, containing the policy attributes for a Re-key 
   SA and/or Data-Security SAs.

   KD is the Key Download payload. If the SA defines a Re-key SA, KD 
   contains a KEK. This SA has a new cookie pair and replaces the 
   Re-key SA for the group. 
   If the SA defines new Data-SA, KD contains the TEK associated to 
   each SA.

   In the GCKS's first type messages, the SEQ payload contains a 
   sequence number whose value orders these messages. Each Group member
   has received included in the Re-key SA attributes (during the Re-key 
   SA establishment in Phase 2) the value of the sequence number which 
   will be used in the next GCKS message (of the phase 3).
   In the GCKS's second type messages, the LSEQ payload mentions the last used 
   sequence number. 
   In the member messages, the values contained in the NACK payload(s) 
   mention the sequence numbers of messages that the member requests for
   retransmission.  

   The SIG payload contains the digital signature of the entire message 
   before encryption (including the header and excluding the SIG payload
   itself), prefixed with the string "rekey" like in GDOI. The signature 
   guarantees source data authentication, i.e. the source of this 
   message is the GCKS.
   The SIG payload of the GCKS messages proves that the messages have 
   not been modified during transmission, and that it has been generated
   by the GCKS. 

   The SEQ payload of the GCKS messages allows Group members to detect 
   replayed messages : they delete all already received messages.

   The value contained in the HASH payload of the Group member messages
   proves that the messages have not been modified during transmission,
   and that the source is a Group member. We do not need to know exactly 
   which the source is for this type of messages (Non acknowledgement). 

   

Duquerroy , et al.                                             [Page 10]






                The Flat Multicast Key Exchange         September , 2004

   
   The Hash value is calculated with the symmetric authentication key 
   and the authentication algorithm which are mentioned in the Re-key SA
   attributes. The Group member messages could be replayed, but the GCKS 
   cannot retransmit a message an infinity of times. The number of
   retransmissions is limited and must allow all Group members to 
   receive each message.

 4.2 Reliability

   FMKE requires reliable session establishment phases. In the Phase 3,
   reliability mechanisms are based on negative acknowledgements with
   retransmission : when a Group member determines that it has not 
   received one or several messages, it requests for their 
   retransmission by sending a Non-acknowledgement message (Nack). 
   Retransmission is achieved in multicast.

   Like in the second phase, a sequence number is assigned to each GCKS 
   message (mentioned in the SEQ payload). Its value orders these 
   messages. 
   Each Group member has received included the Re-key SA attributes
   (during the Re-key SA establishment in Phase 2) the value of the 
   sequence number which will be used in the next GCKS message (of the 
   phase 3). 
   Moreover, the GCKS sends periodically in multicast a message with the
   last used sequence number (in the LSEQ payload). Thus, a Group member
   can easily determine that it has not received one or several 
   messages, and can send a Non-acknowledgement message in unicast to 
   the GCKS, containing the missing sequence numbers. This message 
   triggers the retransmission in multicast of the missing messages
   (with the same sequence numbers).
 
   Ex :
      Next sequence number used by the GCKS (configuration) : 5

      Sequence number of the messages sent by the GCKS : 5 6 7 8 9 

      Sequence number of the messages received by a Member : . 6 7 . 9 
      (5 and 8 are missing)

      Non-Acknowledgement sent by the Member : Nack : 5-5 , Nack : 8-8 
      (this acknowledgement must trigger the retransmission of the 
      messages 5 and 8).

   When a Group member determines that one message is missing, he waits 
   a predetermined time before sending its Non-acknowledgement 
   message. The time before sending a Nack varies for each Group member,
   in order to avoid massive Nack emission and thus the congestion at 
   GCKS side. The Group member waiting time follows a pre-calculated
   distribution: few of them will be authorized to send a Nack at the 
   beginning, and it is expected that these messages will be sufficient 
   so that all Group members receive the GCKS messages.

Duquerroy , et al.                                             [Page 11]




       
                The Flat Multicast Key Exchange         September , 2004


4.3 ISAKMP Header configuration

   The cookie pair identifies the Re-key SA. These cookies are assigned 
   by the GCKS (c.f. 3.1). The first 8 octets of the cookie pair become 
   the "Initiator Cookie" field and the second 8 octets become the 
   "Responder Cookie" field in the ISAKMP header.

   Next Payload identifies an ISAKMP, GDOI or FMKE payload.

   Major Version is 1 and Minor Version is 0 according to ISAKMP
   [RFC2408].

   The Exchange Type field is set to "FMKE_multicast_Push" (c.f. 8.2)

   In the Flags field, the encryption bit is set to 1 and the others 
   bits MUST be set to 0.   

   Messages ID and Length are according to ISAKMP[RFC2408].

4.4 Phase 3 utilization

   The Phase 3 allows to configure and update simultaneously 
   Group members. This phase can be initiated for instance when several 
   Group members establish a connection with the GCKS at the same time. 
   The Phase 2 is required only to provide each Group Member with the 
   Re-key SA. The Phase 3 is then used to transmit simultaneously to all
   the Group members the Data-security SAs. This phase can also be used 
   to guarantee the common evolution of the Group members' SAs. The 
   Phase 2 and 3 are complementary.


5.0 Deletion of SAs

   There are times the GCKS may want to signal to receivers to delete
   SAs, for example at the end of a broadcast. 
   Like in GDOI, deletion of keys may be accomplished by sending an 
   ISAKMP Delete payload [RFC2408, Section 3.15]. However it can be sent
   as part of a FMKE phase 2 or phase 3 message contrary to GDOI.

   One or more Delete payloads MAY be placed following the SEQ payload
   in a GCKS phase 2 message or in a GCKS phase 3 message. If a GCKS has
   no further SAs to send to group members, the SA and KD payloads MUST
   be omitted from the message.

   The following fields of the Delete Payload are further defined as
   follows:

      o  The Domain of Interpretation field contains the FMKE DOI.



Duquerroy , et al.                                             [Page 12]





   
                The Flat Multicast Key Exchange         September , 2004
   

      o  The Protocol-Id field contains TEK protocol id values defined
         in Section 7.8 of this document.  To delete a KEK SA, the value
         of zero MUST be used as the protocol id.  Note that only one
         protocol id value can be defined in a Delete payload. If a TEK
         SA and a KEK SA must be deleted, they must be sent in different
         Delete payloads.


6.0 Utilization of FMKE exchanges according to satellite network 
    topologies.
    
   FMKE is used as described previously in STAR topologies with return 
   channel, and in MESH topologies.
   
   In the case of one-way systems (without return channel), some 
   adaptations are necessary. The following part describes the 
   utilization of FMKE in one-way systems. It requires few 
   modifications.   
 
6.1 Utilization in one-way systems.

   - Phase 1 :

   FMKE MUST be protected by a "phase 1" protocol SA, e.g. an ISAKMP SA.
   For one-way systems, all SA attributes and policy (keys included) 
   will be manually and initially configured in GCKS and Group member 
   (one distinct SA for each member).

   - FMKE Phase 2 : 

   Few modifications are required in the FMKE phase 2 exchange. 
   This exchange is indeed initiated by the GCKS, and does not require 
   the transmission of critical information by the Group member, except
   to enable reliable key distribution.
   For one-way systems, acknowledgements mechanisms are therefore 
   disabled, and the Group member sends no messages.
   GCKS messages are not modified.

	      Group Member                             GCKS  
         ------------------                   ---------------- 
                                  <--       HDR*, HASH(1), SEQ, SA, KD 
                                  <--       HDR*, HASH(1), SEQ, SA, KD 
 
        * Protected by the Phase 1 SA, encryption occurs after HDR

   
   The HASH payload proves that the messages have not been modified 
   during transmission and that the peer knows the Phase 1 secret
   (SKEYID_a).
   

Duquerroy , et al.                                             [Page 13]






                The Flat Multicast Key Exchange         September , 2004

   
   The HASH payload also guarantees that messages are 
   not replayed from an old session establishment, as they required the
   last configured Phase 1 secret.
   The value contained in the SEQ payload (initialized to 0) allows the
   member to delete all messages already received in the Phase 2, as it
   has to check that the sequence number is greater than in the previous
   SEQ payloads.

   - FMKE phase 3:

   Few modifications are required in the FMKE phase 3 exchange. 
   This exchange is indeed initiated by the GCKS and does not require 
   the transmission of critical information by Group members, except to
   enable reliable key distribution.
   For one-way systems, Non-Acknowledgements mechanisms are therefore 
   disabled, and Group members send no messages.
   GCKS messages are not modified.


  	   Group Member                                GCKS  
        ------------------                     ---------------- 
                                   <--       HDR*, SEQ, SA, KD, SIG
                                   <--       HDR*, SEQ, SA, KD, SIG 
                                   <--	    HDR*, LSEQ, SIG 

	* protected by the Re-Key SA; encryption occurs after HDR

   The SIG payload contains the digital signature of the entire message 
   before encryption (including the header and excluding the SIG payload
   itself), prefixed with the string "rekey" like in GDOI. The signature 
   guarantees source data authentication.
   The SIG payload of the GCKS messages proves that the messages have 
   not been modified during transmission, and that it has been generated
   by the GCKS. 

   The SEQ payload allows Group members to detect replayed messages :
   they delete all already received messages.



   In order to guarantee the compatibility between the both uses of FMKE
   in two-way systems and in one-way systems, the profile of each group
   member (with or without return channel) MUST be configured in the GCKS.

   Besides, for one-way systems, in order to guarantee a more reliable
   distribution, each GCKS phase 2 or 3 message may be sent several 
   times (e.g. 3 times). 




Duquerroy , et al.                                             [Page 14]






                The Flat Multicast Key Exchange         September , 2004


7.0 Payload and defined SA attributes.

   FMKE uses several payloads defined in GDOI [RFC3547]: 

      Next Payload Type                       Value
            -----------------                       -----
SA KEK Payload (SAK)				15
Key Download (KD)					17
Sequence Number (SEQ)				18

   FMKE also uses the extension of the SA payload proposed in GDOI
   [RFC 3547]: 

         	Next Payload Type                       Value
         	-----------------                       -----
Security Association (SA)			1

   FMKE extends the SAT payload defined in GDOI [RFC3547]:

	      Next Payload Type                       Value
         	-----------------                       -----
SA TEK Payload (SAT)				16

   FMKE defines new payloads. Their value is chosen in the ISAKMP 
   "Private USE" range.

 	      Next Payload Type                       Value
            -----------------                       -----
         	Last Sequence Number (LSEQ)             133
         	Acknowledgement (ACK)                   134
         	Selective Acknowledgement (SACK)        135
         	Negative Acknowledgement (NACK)         136  
   

7.1 Last Sequence Number payload (LSEQ)
   
   The Last Sequence Number payload contains a sequence number value 
   which allows to enable reliable Phase 3 exchanges.

       0                   1                   2                   3 
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
      ! Next Payload  !   RESERVED    !         Payload Length        ! 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
      !                     Last Sequence Number                      ! 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 

   The Last Sequence Number Payload fields are defined as follows: 
         


Duquerroy , et al.                                             [Page 15]

     




                The Flat Multicast Key Exchange         September , 2004

      
       o Next Payload (1 octet) - Identifier for the payload type of the 
   next payload in the message.  If the current payload is the last in 
   the message, then this field will be zero. 
    
       o RESERVED (1 octet) - Unused, set to zero. 
    
       o Payload Length (2 octets) - Length in octets of the current 
   payload, including the generic payload header. 
    
       o Last Sequence Number (4 octets) - This field contains a counter
   value, and more particularly the last counter value used by the GCKS 
   to order its messages. This value allows Group members to determine 
   which messages they have not received.


7.2 Acknowledgement payload (ACK)  

   The Acknowledgement payload contains a sequence number value which 
   allows to realize acknowledgements during phase 2.

       0                   1                   2                   3 
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
      ! Next Payload  !   RESERVED    !         Payload Length        ! 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
      !               Acknowledged Sequence Number                    ! 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 

   The Acknowledgement payload fields are defined as follows: 
    
       o Next Payload (1 octet) - Identifier for the payload type of the 
   next payload in the message.  If the current payload is the last in 
   the message, then this field will be zero. 
    
       o  RESERVED (1 octet) - Unused, set to zero. 
    
       o  Payload Length (2 octets) - Length in octets of the current 
   payload, including the generic payload header. 
    
       o Acknowledged Sequence Number (4 octets) - This field contains a
   sequence number value. In the phase 2, the Group member sends 
   periodically messages with an ACK payload containing the sequence 
   number value of the last correctly received message.








Duquerroy , et al.                                             [Page 16]






                The Flat Multicast Key Exchange         September , 2004


7.3 Selective Acknowledgement payload (SACK)

   The Selective Acknowledgement payload contains the values of two 
   sequence numbers, and allows to realize selective acknowledgement 
   during Phase 2.

      
       0                   1                   2                   3 
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
      ! Next Payload  !   RESERVED    !         Payload Length        ! 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
      !            Start Acknowledged Sequence Number                 ! 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
      !            End Acknowledged Sequence Number                   ! 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 

   The Selective Acknowledgement Payload fields are defined as follows: 
    
       o Next Payload (1 octet) - Identifier for the payload type of the 
   next payload in the message.  If the current payload is the last in 
   the message, then this field will be zero. 
    
       o  RESERVED (1 octet) - Unused, set to zero. 
    
       o  Payload Length (2 octets) - Length in octets of the current 
   payload, including the generic payload header. 
    
       o Start Acknowledged Sequence Number (4 octets) - this field 
   contains a counter value

       o End Acknowledged Sequence Number (4 octets) - this field 
   contains a counter value >= Start Acknowledged Sequence Number value

   The SACK payload is used during Phase 2 by the Group member. When one
   or several GCKS messages are missing, it allows to mention the 
   sequence following numbers of messages already received. 
   If there is only one message, the Start Acknowledged Sequence Number 
   and the End Acknowledged Sequence Number fields contain the value of 
   its sequence number. If there are several consecutive messages, the 
   Start Acknowledged Sequence Number field contains the sequence number
   value of the first message, and the End Acknowledged Sequence Number 
   field contains the one of the last message.


7.4 Negative Acknowledgement payload (NACK)

   The Negative Acknowledgement payload contains the values of two 
   sequence numbers, and allows to realize negative acknowledgements 
   during Phase 3.

Duquerroy , et al.                                             [Page 17]






                The Flat Multicast Key Exchange         September , 2004


       0                   1                   2                   3 
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
      ! Next Payload  !   RESERVED    !         Payload Length        ! 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
      !          Start Non Acknowledged Sequence Number               ! 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
      !          End Non Acknowledged Sequence Number                 ! 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 

 
   The Negative Acknowledgement Payload fields are defined as follows: 
    
       o Next Payload (1 octet) - Identifier for the payload type of the 
   next payload in the message.  If the current payload is the last in 
   the message, then this field will be zero. 
    
       o RESERVED (1 octet) - Unused, set to zero. 
    
       o Payload Length (2 octets) - Length in octets of the current 
   payload, including the generic payload header. 
    
       o Start Non Acknowledged Sequence Number (4 octets) - this field 
   contains a counter value

       o End Non Acknowledged Sequence Number (4 octets) - this field 
   contains a counter value >= Start Non Acknowledged Sequence Number 
   value

   In the Phase 3, the NACK payload is used by Group members to mention 
   the sequence numbers of the messages they have not received. 
   If there is only one message, the Start Non Acknowledged Sequence 
   Number and the End Non Acknowledged Sequence Number fields contain 
   the value of its sequence number. If there are several consecutive 
   messages, the Start Non Acknowledged Sequence Number field contains 
   the sequence number value of the first message, and the End Non 
   Acknowledged Sequence Number field contains the one of the last 
   message.

7.5 Sequence Number Payload (SEQ)

   The Sequence Number payload is a payload defined by GDOI [RFC 3547].
   In FMKE it contains a sequence number value which allows to introduce
   reliable exchanges and to provide an anti-replay protection for FMKE 
   Phase 2 and Phase 3 exchanges.






Duquerroy , et al.                                             [Page 18]






                The Flat Multicast Key Exchange         September , 2004

       0                   1                   2                   3 
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
      ! Next Payload  !   RESERVED    !         Payload Length        ! 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
      !                      Sequence Number                          ! 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 

   
   The Sequence Number Payload fields are defined as follows: 
    
       o Next Payload (1 octet) - Identifier for the payload type of the 
   next payload in the message.  If the current payload is the last in 
   the message, then this field will be zero. 
    
       o  RESERVED (1 octet) - Unused, set to zero. 
    
       o  Payload Length (2 octets) - Length in octets of the current 
   payload, including the generic payload header. 
    
       o Sequence Number (4 octets) - This field contains a 
   monotonically increasing counter value. It is initialized to 0 by the
   GCKS and is incremented in each subsequently-transmitted message. 
   In Phase 2, the GCKS messages contains a SEQ payload with the current
   value of the sequence number. Thus the first packet sent in a phase 2
   will have a Sequence Number of 1.  The FMKE implementation keeps a 
   sequence counter as an  attribute for the Registration SA and 
   increments the counter upon receipt of a GCKS phase 2 message. It 
   must also keep a sliding receive window for it. 
   In the phase 3, the sequence number included in the SEQ payload      
   orders the messages sent by the GCKS. The first packet sent for a 
   given Rekey SA will have a Sequence Number of 1. The FMKE 
   implementation keeps a sequence counter as an attribute for the 
   Rekey SA and increments the counter upon receipt of a GCKS phase 3
   message. The current value of the sequence number must be initially
   transmitted to Group members during the phase 2 as an attribute of 
   the Re-key SA. The group members must also keep a sliding window for
   this counter.
   Each phase 2 or 3 therefore has its own counter.

7.6.  Security Association Payload

   The Security Association payload is defined in RFC 2408. FMKE re-uses
   the extension proposed in GDOI [RFC 3547]. This payload is used to 
   assert security attributes for both Re-key and Data-security SAs.







Duquerroy , et al.                                             [Page 19]






                The Flat Multicast Key Exchange         September , 2004

      0                   1                   2                   3
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!
     ! Next Payload  !   RESERVED    !         Payload Length        !
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     !                              DOI                              !
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!
     !                           Situation                           !
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!
     ! SA Attribute Next Payload     !          RESERVED2            !
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!

   The Security Association Payload fields are defined as follows:

      o  Next Payload (1 octet) -- Identifies the next payload.
         The next payload MUST NOT be a SAK Payload or SAT Payload type,
         but the next non-Security Association type payload.

      o  RESERVED (1 octet) -- Must be zero.

      o  Payload Length (2 octets) -- Is the octet length of the current
         payload including the generic header and all TEK and KEK
         payloads.

      o  DOI (4 octets) - FMKE DOI value (the GDOI value is 2).

      o  Situation (4 octets) -- Must be zero.

      o  SA Attribute Next Payload (1 octet) -- Must be either a SAK
         Payload or a SAT Payload.  See section 7.6.1 for a description
         of which circumstances are required for each payload type to be
         present.

      o  RESERVED (2 octets) -- Must be zero.

7.6.1  Payloads following the SA payload

   FMKE re-uses the SA KEK payload, and extends the SA TEK payload 
   defined in GDOI [RFC 3547].
   The payloads following the SA payload defined specific security
   association attributes for KEKs and/or TEKs used by one or several
   groups.
   In phase 2, there may be zero, one or several SAK Payloads 
   (corresponding to different groups), and zero or more SAT Payloads 
   (associated to the same or to different groups), where either one SAK
    or SAT payload MUST be present.
   In phase 3, there may be zero or one SAK Payload (for the considered 
   group), and zero or more SAT Payloads (associated to the considered 
   group), where either one SAK or SAT payload MUST be present.



Duquerroy , et al.                                             [Page 20]






                The Flat Multicast Key Exchange         September , 2004


7.7.  SA KEK payload

   The SA KEK (SAK) payload is used as defined in GDOI [RFC3547].
   However FMKE introduces supplementary KEK attributes.
   The SAK payload contains security attributes for the KEK method for
   a group. The source and destination identities describe the 
   identities used for the phase 2 datagrams.

      0                   1                   2                   3
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!
     ! Next Payload  !   RESERVED    !         Payload Length        !
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!
     !    Protocol   !  SRC ID Type  !         SRC ID Port           !
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!
     !SRC ID Data Len!          SRC Identification Data              ~
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!
     ! DST ID Type   !         DST ID Port           !DST ID Data Len!
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!
     !                    DST Identification Data                    ~
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!
     !                                                               !
     ~                              SPI                              ~
     !                                                               !
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!
     !         POP Algorithm         !         POP Key Length        !
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!
     ~                        KEK Attributes                         ~
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!

   The SAK Payload fields are defined as follows:

      o  Next Payload (1 octet) -- Identifies the next payload.
         The only valid next payload types for this message are a SAT or 
         SAK Payload or zero to indicate there is no SAK or SAT payload.

      o  RESERVED (1 octet) -- Must be zero.

      o  Payload Length (2 octets) -- Length of this payload, including
         the KEK attributes.

      o  Protocol (1 octet) -- Value describing an IP protocol ID (e.g.,
         UDP/TCP) for the rekey datagram.

      o  SRC ID Type (1 octet) -- Value describing the identity
         information found in the SRC Identification Data field.
         Defined values are specified by the IPSEC Identification Type
         section in the IANA isakmpd-registry [ISAKMP-REG].



Duquerroy , et al.                                             [Page 21]






                The Flat Multicast Key Exchange         September , 2004


      o  SRC ID Port (2 octets) -- Value specifying a port associated
         with the source Id.  A value of zero means that the SRC ID Port
         field should be ignored.

      o  SRC ID Data Len (1 octet) -- Value specifying the length of the
         SRC Identification Data field.

      o  SRC Identification Data (variable length) -- Value, as
         indicated by the SRC ID Type.

      o  DST ID Type (1 octet) -- Value describing the identity
         information found in the DST Identification Data field.
         Defined values are specified by the IPSEC Identification Type
         section in the IANA isakmpd-registry [ISAKMP-REG].

      o  DST ID Port (2 octets) -- Value specifying a port associated
         with the source Id.

      o  DST ID Data Len (1 octet) -- Value specifying the length of the
         DST Identification Data field.

      o  DST Identification Data (variable length) -- Value, as
         indicated by the DST ID Type.

      o  SPI (16 octets) -- Security Parameter Index for the KEK.  The
         SPI must be the ISAKMP Header cookie pair where the first 8
         octets become the "Initiator Cookie" field, and the second 8 
         octets become the "Responder Cookie" of the ISAKMP header of 
         the Phase 3 messages (i.e. of the messages protected by the 
         Re-key SA). As described above, these cookies are assigned by 
         the GCKS.

      o  POP Algorithm (2 octets) -- The POP payload algorithm.  Defined
         values are specified in the following table.  If no POP
         algorithm is defined by the KEK policy this field must be zero.

                Algorithm Type  Value
                --------------  -----
                RESERVED           0
                POP_ALG_RSA        1
                POP_ALG_DSS        2
                POP_ALG_ECDSS      3
                RESERVED         4-127
                Private Use    128-255

      o  POP Key Length (2 octets) -- Length of the POP payload key. If
         no POP algorithm is defined in the KEK policy, this field must
         be zero.



Duquerroy , et al.                                             [Page 22]






                The Flat Multicast Key Exchange         September , 2004


      o  KEK Attributes -- Contains KEK policy attributes associated
         with the group.  The following sections describe the possible
         attributes. Any or all attributes may be optional, depending on
         the group policy.

7.7.1.  KEK Attributes

   FMKE defines 2 more attributes : HASH_ALGORITHM and NEXT_SEQ_NUMBER.
   The following table presents all the attributes which may be present
   in a SAK Payload. The attributes must follow the format defined in
   ISAKMP [RFC2408] section 3.3.  In the table, attributes which follow
   the Type/Value (TV) format are marked as Basic (B); attributes which
   follow the Type/Length/Value (TLV) format are marked as Variable(V).

             ID Class                   Value    Type
             --------                   -----    ----
             RESERVED                     0
             KEK_MANAGEMENT_ALGORITHM     1        B
             KEK_ALGORITHM                2        B
             KEK_KEY_LENGTH               3        B
             KEK_KEY_LIFETIME             4        V
             SIG_HASH_ALGORITHM           5        B
             SIG_ALGORITHM                6        B
             SIG_KEY_LENGTH               7        B
             KE_OAKLEY_GROUP              8        B
		 HASH_ALGORITHM			 9 	    B
 NEXT_SEQ_NUMBER			 10       B 

   
7.7.2.  KEK_MANAGEMENT_ALGORITHM (Defined in GDOI)

   The KEK_MANAGEMENT_ALGORITHM class specifies the group KEK management
   algorithm used to provide forward or backward access control (i.e.,
   used to exclude group members). Defined values are specified in the
   following table.

               KEK Management Type               Value
               -------------------               -----
               RESERVED                            0
               LKH                                 1
               RESERVED                           2-127
               Private Use                       128-255


7.7.3.  KEK_ALGORITHM (Defined in GDOI)

   The KEK_ALGORITHM class specifies the encryption algorithm using with
   the KEK.  Defined values are specified in the following table.



Duquerroy , et al.                                             [Page 23]





                
                The Flat Multicast Key Exchange         September , 2004

                
                Algorithm Type  Value
                --------------  -----
                RESERVED           0
                KEK_ALG_DES        1
                KEK_ALG_3DES       2
                KEK_ALG_AES        3
                RESERVED         4-127
                Private Use    128-255


7.7.4.  KEK_KEY_LENGTH(Defined in GDOI)

   The KEK_KEY_LENGTH class specifies the KEK Algorithm key length (in
   bits).

7.7.5.  KEK_KEY_LIFETIME(Defined in GDOI)

   The KEK_KEY_LIFETIME class specifies the maximum time for which the
   KEK is valid.  The GCKS may refresh the KEK at any time before the
   end of the valid period.  The value is a four (4) octet number
   defining a valid time period in seconds.

7.7.6.  SIG_HASH_ALGORITHM(Defined in GDOI)

   SIG_HASH_ALGORITHM specifies the SIG payload hash algorithm.  The
   following tables define the algorithms for SIG_HASH_ALGORITHM.

                Algorithm Type  Value
                --------------  -----
                RESERVED           0
                SIG_HASH_MD5       1
                SIG_HASH_SHA1      2
                RESERVED        3-127
                Private Use   128-255

7.7.7.  SIG_ALGORITHM(Defined in GDOI)

   The SIG_ALGORITHM class specifies the SIG payload signature
   algorithm.  Defined values are specified in the following table.

                Algorithm Type  Value
                --------------  -----
                RESERVED           0
                SIG_ALG_RSA        1
                SIG_ALG_DSS        2
                SIG_ALG_ECDSS      3
                RESERVED         4-127
                Private Use    128-255



Duquerroy , et al.                                             [Page 24]






                The Flat Multicast Key Exchange         September , 2004


7.7.8.  SIG_KEY_LENGTH(Defined in GDOI)

   The SIG_KEY_LENGTH class specifies the length of the SIG payload key.

7.7.9.  KE_OAKLEY_GROUP(Defined in GDOI)

   The KE_OAKLEY_GROUP class defines the OAKLEY Group used to compute
   the PFS secret in the optional KE payload of the GDOI GROUPKEY-PULL
   exchange.  This attribute uses the values assigned to Group
   Definitions in the IANA IPsec-registry [IPSEC-REG].

7.7.10. HASH_ALGORITHM 

   The HASH_ALGORITHM class specifies the hash algorithm to use for the
   HASH payload. Defined values are specified in the following table.

                 Algorithm Type  Value
                --------------  -----
                RESERVED           0
          HASH_ALG_MD5       1     
 		    HASH_ALG_SHA       2
                RESERVED        3-127
                Private Use   128-255


7.7.11.  NEXT_SEQ_NUMBER

   The NEXT_SEQUENCE_NUMBER class specifies the next sequence number 
   used by the GCKS in the Phase 3 messages protected by the 
   considered Re-key SA .

7.8.  SA TEK Payload

   FMKE uses the SA TEK (SAT) payload defined in GDOI [RFC 3547]. In the
   SAT, it modifies the TEK Protocol-Specific Payload for ESP.
   The SA TEK (SAT) payload contains security attributes for a single
   TEK associated with a group.

        0                   1                   2                   3
        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!
       ! Next Payload  !   RESERVED    !         Payload Length        !
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!
       ! Protocol-ID   !       TEK Protocol-Specific Payload           ~
       +-+-+-+-+-+-+-+-+                                               ~
       ~                                                               ~
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!

   The SAT Payload fields are defined as follows:


Duquerroy , et al.                                             [Page 25]






                The Flat Multicast Key Exchange         September , 2004


      o  Next Payload (1 octet) -- Identifies the next payload. The only
         valid  next payload types for this message are another SAT or 
         SAK Payload or zero to indicate there are no more security 
         association attributes.

      o  RESERVED (1 octet) -- Must be zero.

      o  Payload Length (2 octets) -- Length of this payload, including
         the TEK Protocol-Specific Payload.

      o  Protocol-ID (1 octet) -- Value specifying the Security
         Protocol. The following table defines values for the Security
         Protocol

          Protocol ID                       Value
          -----------                       -----
          RESERVED                            0
          FMKE_PROTO_IPSEC_ESP                1
          RESERVED                           2-127
          Private Use                      128-255

      o  TEK Protocol-Specific Payload (variable) -- Payload which
         describes the attributes specific for the Protocol-ID.

7.8.1.  PROTO_IPSEC_ESP

   FMKE extends the TEK Protocol-Specific payload for ESP, defined in 
   the GDOI. As a matter of fact, satellite networks require to use ESP
   in tunnel mode. Tunnel identifiers MUST therefore be mentioned :


        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   !  SRC ID Type  !         SRC ID Port           !
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!
       !SRC ID Data Len!          SRC Identification Data              ~
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!
       ! DST ID Type   !         DST ID Port           !DST ID Data Len!
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!
       !                DST Identification Data                        ~
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!
       !TNL SRC ID Type!        TNL SRC ID Port        !TNL SRC ID Len !  
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!
       !             TNL SRC Identification Data                       ~
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!
       !TNL DST ID Type!       TNL DST ID Port         !TNL DST ID Len !
     



Duquerroy , et al.                                             [Page 26]






                The Flat Multicast Key Exchange         September , 2004


       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!
       !              TNL DST Identification Data                      ~
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!
       ! Transform ID  !                        SPI                    !
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!
       !      SPI      !       RFC 2407 SA Attributes                  ~
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!

   The SAT Payload fields are defined as follows:

      o  Protocol (1 octet) -- Value describing an IP protocol ID (e.g.,
         UDP/TCP).  A value of zero means that the Protocol field should
         be ignored.

      o  SRC ID Type (1 octet) -- Value describing the identity
         information found in the SRC Identification Data field.
         Defined values are specified by the IPSEC Identification Type
         section in the IANA isakmpd-registry [ISAKMP-REG].

      o  SRC ID Port (2 octets) -- Value specifying a port associated
         with the source Id.  A value of zero means that the SRC ID Port
         field should be ignored.

      o  SRC ID Data Len (1 octet) -- Value specifying the length of the
         SRC Identification Data field.

      o  SRC Identification Data (variable length) -- Value, as
         indicated by the SRC ID Type. Set to three bytes of zero for
         multiple-source multicast groups that use a common TEK for all
         senders.

      o  DST ID Type (1 octet) -- Value describing the identity
         information found in the DST Identification Data field.
         Defined values are specified by the IPSEC Identification Type
         section in the IANA isakmpd-registry [ISAKMP-REG].

      o  DST ID Port (2 octets) -- Value specifying a port associated
         with the dest. Id.  A value of zero means that the DST ID Port
         field should be ignored.

      o  DST ID Data Len (1 octet) -- Value specifying the length of the
         DST Identification Data field.

      o  DST Identification Data (variable length) -- Value, as
         indicated by the DST ID Type.






Duquerroy , et al.                                             [Page 27]






                The Flat Multicast Key Exchange         September , 2004

    
      o  TNL SRC ID Type (1 octet) -- Value describing the identity
         information found in the TNL SRC Identification Data field.
         Defined values are specified by the IPSEC Identification Type
         section in the IANA isakmpd-registry [ISAKMP-REG].

      o  TNL SRC ID Port (2 octets) -- Value specifying a port 
         associated with the Tunnel source Id.  A value of zero means 
         that the TNL SRC ID Port field should be ignored.

      o  TNL SRC ID Data Len (1 octet) -- Value specifying the length
         of the TNL SRC Identification Data field.

      o  TNL SRC Identification Data (variable length) -- Value, as
         indicated by the TNL SRC ID Type. Set to three bytes of zero 
         for multiple-source multicast groups that use a common TEK for
         all senders.

o  TNL DST ID Type (1 octet) -- Value describing the identity
   information found in the TNL DST Identification Data field.
         Defined values are specified by the IPSEC Identification Type
         section in the IANA isakmpd-registry [ISAKMP-REG].

      o  TNL DST ID Port (2 octets) -- Value specifying a port 
         associated with the tunnel dst Id.  A value of zero means 
         that the DST ID Port field should be ignored.

      o  TNL DST ID Data Len (1 octet) -- Value specifying the length
         of the TNL DST Identification Data field.

      o  TNL DST Identification Data (variable length) -- Value, as
         indicated by the TNL DST ID Type.

      o  Transform ID (1 octet) -- Value specifying which ESP transform
         is to be used.  The list of valid values is defined in the
         IPSEC ESP Transform Identifiers section of the IANA
         isakmpd-registry [ISAKMP-REG].

      o  SPI (4 octets) -- Security Parameter Index for ESP.

      o  RFC 2407 Attributes -- ESP Attributes from RFC 2407 Section
         4.5. FMKE like GDOI supports all IPSEC DOI SA Attributes for
         PROTO_IPSEC_ESP excluding the Group Description [RFC2407,
         section 4.5], which MUST NOT be sent by a FMKE implementation
         and is ignored by a FMKE implementation if received.  All
         mandatory IPSEC DOI attributes are mandatory in FMKE
         PROTO_IPSEC_ESP.  The Authentication Algorithm attribute of the
         IPSEC DOI is group authentication in FMKE.




Duquerroy , et al.                                             [Page 28]






                The Flat Multicast Key Exchange         September , 2004


7.9.  Key Download Payload

   FMKE re-uses the Key Download payload as defined by the GDOI
   [RFC 3547]. The Key Download Payload contains group keys 
   corresponding to SAKs or/and SATs specified in the SA payload . 
  

      0                   1                   2                   3
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!
     ! Next Payload  !   RESERVED    !         Payload Length        !
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!
     ! Number of Key Packets         !            RESERVED2          !
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!
     ~                    Key Packets                                ~
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!


   The Key Download Payload fields are defined as follows:

      o  Next Payload (1 octet) -- Identifier for the payload type of
         the next payload in the message.  If the current payload is the
         last in the message, then this field will be zero.

      o  RESERVED (1 octet) -- Unused, set to zero.

      o  Payload Length (2 octets) -- Length in octets of the current
         payload, including the generic payload header.

      o  Number of Key Packets (2 octets) -- Contains the total number
         of both TEK and Rekey arrays being passed in this data block.

      o  Key Packets
         Several types of key packets are defined.  Each Key Packet has
         the following format.

      0                   1                   2                   3
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!
     !   KD Type     !   RESERVED    !            KD Length          !
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!
     !    SPI Size   !                   SPI (variable)              ~
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!
     ~                    Key Packet Attributes                      ~
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!

      o  Key Download (KD) Type (1 octet) -- Identifier for the Key Data
         field of this Key Packet.



Duquerroy , et al.                                             [Page 29]






                The Flat Multicast Key Exchange         September , 2004


                       Key Download Type        Value
                       -----------------        -----
                       RESERVED                   0
                       TEK                        1
                       KEK                        2
                       LKH                        3
                       RESERVED                  4-127
                       Private Use             128-255

   "KEK" is a single key whereas LKH is an array of key-encrypting keys.

      o  RESERVED (1 octet) -- Unused, set to zero.

      o  Key Download Length (2 octets) -- Length in octets of the Key
         Packet data, including the Key Packet header.

      o  SPI Size (1 octet) -- Value specifying the length in octets of
         the SPI as defined by the Protocol-Id.

      o  SPI (variable length) -- Security Parameter Index which matches
         a SPI previously sent in an SAK or SAT Payload.

      o  Key Packet Attributes (variable length) -- Contains Key
         information.  The format of this field is specific to the value
         of the KD Type field.  The following sections describe the
         format of each KD Type.

7.9.1.  TEK Download Type

   FMKE re-uses the TEK Download Type as defined in the GDOI
   The following attributes may be present in a TEK Download Type.
   Exactly one attribute matching each type sent in the SAT payload MUST
   be present. The attributes must follow the format defined in ISAKMP
   [RFC2408] section 3.3. In the table, attributes defined as TV are
   marked as Basic (B);attributes defined as TLV are marked as Variable
   (V).

             TEK Class                 Value      Type
             ---------                 -----      ----
             RESERVED                     0
             TEK_ALGORITHM_KEY            1        V
             TEK_INTEGRITY_KEY            2        V
             TEK_SOURCE_AUTH_KEY          3        V


   If no TEK key packets are included in a Registration KD, the group 
   member can expect to receive the TEK as part of a Re-key SA (during a
   phase 3).
   At least one TEK must be included in each Re-key KD payload.
   Multiple TEKs may be included if multiple streams associated with the
   SA are to be rekeyed.

Duquerroy , et al.                                             [Page 30]





                The Flat Multicast Key Exchange         September , 2004


7.9.1.1.  TEK_ALGORITHM_KEY

   The TEK_ALGORITHM_KEY class declares that the encryption key for this
   SPI is contained as the Key Packet Attribute.  The encryption
   algorithm that will use this key was specified in the SAT payload.

   In the case that the algorithm requires multiple keys (e.g., 3DES),
   all keys will be included in one attribute.

   DES keys will consist of 64 bits (the 56 key bits with parity bit).
   Triple DES keys will be specified as a single 192 bit attribute
   (including parity bits) in the order that the keys are to be used for
   encryption (e.g., DES_KEY1, DES_KEY2, DES_KEY3).

7.9.1.2.  TEK_INTEGRITY_KEY

   The TEK_INTEGRITY_KEY class declares that the integrity key for this
   SPI is contained as the Key Packet Attribute.  The integrity
   algorithm that will use this key was specified in the SAT payload.
   Thus, GDOI assumes that both the symmetric encryption and integrity
   keys are pushed to the member.  SHA keys will consist of 160 bits,
   and MD5 keys will consist of 128 bits.

7.9.1.3.  TEK_SOURCE_AUTH_KEY

   The TEK_SOURCE_AUTH_KEY class declares that the source authentication
   key for this SPI is contained in the Key Packet Attribute.  The
   source authentication algorithm that will use this key was specified
   in the SAT payload.


7.9.2  KEK Download Type

   FMKE re-uses the KEK Download type but introduces a new attribute:
   KEK_GROUP_AUTH_KEY.
   The following attributes may be present in a KEK Download Type.
   Exactly one attribute matching each type sent in the SAK payload MUST
   be present. The attributes must follow the format defined in ISAKMP
   [RFC2408] section 3.3. In the table, attributes defined as TV are
   marked as Basic (B); attributes defined as TLV are marked as Variable
   (V).

             KEK Class                 Value      Type
             ---------                 -----      ----
             RESERVED                     0
             KEK_ALGORITHM_KEY            1        V
             SIG_ALGORITHM_KEY            2        V
		 KEK_GROUP_AUTH_KEY  		 3        V   



Duquerroy , et al.                                             [Page 31]






                The Flat Multicast Key Exchange         September , 2004


   Contrary to the GDOI, several KEK key packets can be included in 
   a Registration KD payload. 

7.9.2.1.  KEK_ALGORITHM_KEY

   The KEK_ALGORITHM_KEY class declares the encryption key for this SPI
   is contained in the Key Packet Attribute.  The encryption algorithm
   that will use this key was specified in the SAK payload.

   If the mode of operation for the algorithm requires an Initialization
   Vector (IV), an explicit IV MUST be included in the KEK_ALGORITHM_KEY
   before the actual key.

7.9.2.2.  SIG_ALGORITHM_KEY

   The SIG_ALGORITHM_KEY class declares that the public key for this SPI
   is contained in the Key Packet Attribute, which may be useful when no
   public key infrastructure is available.  The signature algorithm that
   will use this key was specified in the SAK payload.

7.9.2.3. KEK_GROUP_AUTH_KEY

   The KEK_GROUP_AUTH_KEY class declares that the group authentication 
   key for this SPI is contained in the Key Packet Attribute.  
   The group authentication algorithm that will use this key was 
   specified in the SAK payload.


8.0 Domain of Interpretation for FMKE.

   FMKE requires a specific DOI, as it introduces new exchange types,   
   payloads, security association attributes...
   RFC 2408 recommends that the designer of the new DOI begins with an 
   existing DOI and customizes only the parts that are unacceptable.
   For FMKE, we based this specific DOI on the Group Domain of   
   Interpretation (GDOI).

8.1 Payloads.

   FMKE defines 4 new payloads with regard to the GDOI (and the IPSEC 
   DOI):
   Last Sequence Number (LSEQ),Acknowledgement (ACK), Selective 
   Acknowledgement (SACK), Negative Acknowledgement (NACK) payloads.
   It also extends the SAT defined by the GDOI (c.f. 7.0).

8.2 New exchange types.

   FMKE introduces two additional exchange types. The value of these 
   exchanges is mentioned in the Exchange Type field of the ISAKMP 
   header of the messages in FMKE Phase 2 and 3.


Duquerroy , et al.                                             [Page 32]






                The Flat Multicast Key Exchange         September , 2004

  
   The exchange type of the phase 2 is called : FMKE_unicast_Push and 
   the exchange type of the phase 3 is called : FMKE_multicast_Push .

       Exchange type                       Value
      ----------------                    -----------
      FMKE_unicast_Push                      240
      FMKE_multicast_Push                    241   

8.3 Security Association attributes.

   With regard to GDOI, FMKE defines two new attributes for Re-key SA :
   HASH_ALGORITHM and NEXT_SEQ_NUMBER, and a new key class : 
   KEK_GROUP_AUTH_KEY.


9.0 Security considerations.

   FMKE is a security association (SA) management protocol for groups
   It is adapted to satellite networks, to protect group data 
   transmitted on satellite links. Its objective is to establish 
   securely security associations at group members (which are distinct 
   from data initial source and final receivers - FMKE is not destined
   to provide end-to-end security). This protocol achieves first the 
   entity authentication of the GCKS and the Group member, then it 
   establishes a secure channel for the key management messages 
   which ensures confidentiality, integrity and source authentication.
   
   This protocol uses security mechanisms in order to ensure 
   confidentiality, entity and data origin authentication, and to avoid 
   man-in-the-middle, replay attacks.
 
   FMKE assumes the network is not secure and may be under the complete 
   control of an attacker, but it assumes that the communication 
   endpoints are secure. Group members must be trusted to protect
   authentication values (pre-shared key), encryption/decryption keys 
   and message authentication keys. 

   FMKE is composed of 3 phases : an ISAKMP Phase 1, and two new 
   exchanges : the Phase 2 which is protected by the ISAKMP Phase 1, and
   the Phase 3. Security considerations for each phase are addressed 
   separately in the following.  
  
9.1 ISAKMP Phase 1 
    
   FMKE uses the Phase 1 exchange defined in [RFC2409] to protect the 
   FMKE Phase 2. Therefore all security properties and considerations of
   those exchanges (as noted in [RFC2409]) are relevant for FMKE. 




Duquerroy , et al.                                             [Page 33]






                The Flat Multicast Key Exchange         September , 2004


9.1.1 Authentication 
    
   Authentication is provided via the mechanisms defined in [RFC2409], 
   based on Pre-Shared Keys (Public Key encryption could also be 
   considered). 
    
9.1.2 Confidentiality 
    
   Confidentiality is achieved in Phase 1 through a Diffie-Hellman 
   exchange that provides keying material, and through negotiation of 
   encryption transforms. 

9.1.3 Man-in-the-Middle Attack Protection 
    
   FMKE relies on Phase 1 authentication to defeat man-in-the-middle 
   attacks. 
    
9.1.4 Replay/Reflection Attack Protection 
    
   FMKE relies on the Phase 1 nonce mechanism in combination with a 
   hash-based message authentication code to protect against the replay 
   or reflection of previous key management messages. Indeed, the 
   authentication is successful only if the hash value contained in the 
   HASH payload depends on the pre-shared key and on the Nonces randomly
   generated during the current Phase 1. 
 
9.1.5.  Denial of Service Protection

   A denial of service attacker sends messages to an entity to cause
   that entity to perform unneeded message authentication operations.
   FMKE, like GDOI, uses the Phase 1 cookie mechanism to identify 
   spurious messages prior to cryptographic hash processing. This is
   considered as a "weak" form of denial of service protection in that 
   the entity must check for good cookies, which can be successfully 
   imitated by a sophisticated attacker.

9.2 Phase 2 Exchange 
        
   During the Phase 2, the Group member receives securely from the GCKS,
   SAs of groups whose it is a member. Messages are protected by the 
   Phase 1 security association. 
    
9.2.1 Authentication 
    
   Peer authentication is not required in the Phase 2 protocol, as the 
   Phase 1 protocol has previously authenticated the identity of the peer. 
   Message authentication is provided by HASH payloads in each message, 
   where the hash value contained in HASH is computed with the SKEYID_a 
   authentication key (derived in the Phase 1 exchange), over all 
   payloads in the message. 

Duquerroy , et al.                                             [Page 34]






                The Flat Multicast Key Exchange         September , 2004

   
   As only the GCKS and the Group member know the SKEYID_a value, this 
   provides message source authentication. 
    
9.2.2 Confidentiality 
    
   Confidentiality is provided by the Phase 1 security association, 
   according to the manner described in [RFC2409]. 
    
9.2.3 Man-in-the-Middle Attack Protection 
    
   As messages are encrypted, and recipients can authenticate their 
   source (as being the GCKS or the Group member), man-in-middle attacks 
   are avoided. Indeed an attacker would not be able if it changes a 
   message to build a valid hash value. 

9.2.4 Replay/Reflection Attack Protection 
    
   The HASH payloads guarantee that messages are not replayed messages from
   an old session establishment, as they required the secret of the last 
   Phase 1. 
   Besides, the SEQ payloads (including a sequence number)in the GCKS
   messages allows the group member to delete all messages already 
   received in the Phase 2, as it has to check that the sequence number 
   is greater than in the previous SEQ payloads.

9.2.5 Denial of Service Protection

   A receiver identifies its messages using a cookie pair
   from the Phase 1 exchange that precedes it.  The cookies provide a
   weak form of denial of service protection as described above, in the
   sense that a message with invalid cookies will be  discarded.

9.3 Phase 3 Exchange 
 
   In the phase 3, the GCKS establishes and/or updates SAs in Group 
   members. Messages are protected by the Re-key SA.

9.3.1 Authentication 

   The messages sent by the GCKS are digitally signed. The signature is 
   contained in the SIG payload, and the private key, which is used for 
   the signature, is known only by the GCKS. The corresponding public 
   key that is used for authentication is an attribute of the Re-key SA,
   established in the phase 2. The signature guarantees source data 
   authentication.
   Concerning the messages sent by group members, message authentication
   is provided by HASH payloads in each message, where the mentioned 
   hash value is computed with a symmetric authentication key, which is 
   an attribute of the Re-key SA. As only the GCKS and Group members 
   know this key, this provides group message authentication.

Duquerroy , et al.                                             [Page 35]






                The Flat Multicast Key Exchange         September , 2004


9.3.2 Confidentiality 
   
   Messages are encrypted with the symmetric encryption key and the 
   encryption algorithm mentioned in the Re-key SA attributes.
    
9.3.3 Man-in-the-Middle Attack Protection 
    
   As messages are encrypted, and recipients can authenticate their 
   source (as being the GCKS or a Group member), man-in-middle attacks 
   are avoided.

9.3.4 Replay/Reflection Attack Protection 
    
   The SEQ payload of the GCKS messages, which contains a monotonically
   increasing sequence number, allows group member to detect replayed 
   messages : they delete all already received messages.   

   Group member messages (Nack) can be replayed, but the GCKS cannot 
   retransmit a message an infinity of times. The number of 
   retransmissions is limited and must allow all Group members to 
   receive each message.

9.3.5 Denial of Service Protection

   A cookie pair identifies the security association for the
   Phase 3 message.  The cookies thus serve as a weak form of
   denial-of-service.

10.0 IANA Considerations 
    
10.1 ISAKMP DOI 
    
   A new ISAKMP DOI number needs to be assigned, in order to define FMKE.
    
10.2 Payload Types 
    
   New ISAKMP Next Payload types need to be allocated for FMKE payload 
   types. See Section 7.0 for the payloads defined in this document. 

10.3 New Name spaces 
    
   The present document describes some new name spaces for use in the 
   FMKE payloads. Those may be found in 7.0 and 8.0.

11.0 Acknowledgements 
   





Duquerroy , et al.                                             [Page 36]






                The Flat Multicast Key Exchange         September , 2004


2.0 References 
     
   [ISAKMP-REG] http://www.iana.org/assignments/isakmp-registry 
    
   [RFC2406] S. Kent, R. Atkinson, "IP Encapsulating Security Payload 
   (ESP)", November 1998. 
   
   [RFC2407] D. Piper, "The Internet IP Domain of Interpretation for 
   ISAKMP", November 1998. 
    
   [RFC2408] D. Maughan, M. Shertler, M. Schneider, J. Turner, "Internet 
   Security Association and Key Management Protocol", November 1998. 
    
   [RFC2409] D. Harkins, D. Carrel, "The Internet Key Exchange (IKE)", 
   November, 1998. 
    
   [RFC2547] M. Baugher, B. Weis, T. Hardjono, H. Harney, "The Group 
   Domain of Interpretation", July 2003

   [FIPS46-3]   "Data Encryption Standard (DES)", United States of
                American, National Institute of Science and Technology,
                Federal Information Processing Standard (FIPS) 46-3,
                October 1999.

   [FIPS81]     "DES Modes of Operation", United States of American,
                National Institute of Science and Technology, Federal
                Information Processing Standard (FIPS) 81, December
                1980.

   [FIPS186-2]  "Digital Signature Standard (DSS)", United States of
                American, National Institute of Science and Technology,
                Federal Information Processing Standard (FIPS) 186-2,
                January 2000.

   [FIPS197]    "Advanced Encryption Standard (AES)", United States of
                American, National Institute of Science and Technology,
                Federal Information Processing Standard (FIPS) 197,
                November 2001.

   [IPSEC-REG]  http://www.iana.org/assignments/ipsec-registry

   [ISAKMP-REG] http://www.iana.org/assignments/isakmp-registry









Duquerroy , et al.                                             [Page 37]






                The Flat Multicast Key Exchange         September , 2004



Authors Addresses 

Laurence Duquerroy
Alcatel Space
26, avenue J.-F. Champollion
B.P. 1187
31037 Toulouse Cedex 1 , France
+33 (0)5 34 35 63 06


S‰bastien Josset
Alcatel Space
26, avenue J.-F. Champollion
B.P. 1187
31037 Toulouse Cedex 1 , France
+33 (0)5 34 35 51 04




This Internet-Draft expires in February, 2005





























Duquerroy , et al.       Expires February, 2005                [Page 38]
1