home *** CD-ROM | disk | FTP | other *** search
/ Unix System Administration Handbook 1997 October / usah_oct97.iso / rfc / 2000s / rfc2094.txt < prev    next >
Text File  |  1997-07-01  |  53KB  |  1,236 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                         H. Harney
  8. Request for Comments: 2094                                C. Muckenhirn
  9. Category: Experimental                                     SPARTA, Inc.
  10.                                                               July 1997
  11.  
  12.  
  13.            Group Key Management Protocol (GKMP) Architecture
  14.  
  15. Status of this Memo
  16.  
  17.    This memo defines an Experimental Protocol for the Internet
  18.    community.  This memo does not specify an Internet standard of any
  19.    kind.  Discussion and suggestions for improvement are requested.
  20.    Distribution of this memo is unlimited.
  21.  
  22. Table of Contents
  23.  
  24.    1. Introduction.................................................   1
  25.    2. Multicast Key Management Architectures.......................   3
  26.    3. GKMP Protocol Overview.......................................   9
  27.    4. Issues.......................................................  19
  28.    5. Security Considerations......................................  22
  29.    6. Authors' Address.............................................  22
  30.  
  31. Abstract
  32.  
  33.    This specification proposes a protocol to create grouped symmetric
  34.    keys and distribute them amongst communicating peers. This protocol
  35.    has the following advantages: 1) virtually invisible to operator, 2)
  36.    no central key distribution site is needed, 3) only group members
  37.    have the key, 4) sender or receiver oriented operation, 5) can make
  38.    use of multicast communications protocols.
  39.  
  40. 1 Introduction
  41.  
  42.    This document describes an architecture for the management of
  43.    cryptographic keys for multicast communications.  We identify the
  44.    roles and responsibilities of communications system elements in
  45.    accomplishing multicast key management, define security and
  46.    functional requirements of each, and provide a detailed introduction
  47.    to the Group Key Management Protocol (GKMP) which provides the
  48.    ability to create and distribute keys within arbitrary-sized groups
  49.    without the intervention of a global/centralized key manager.  The
  50.    GKMP combines techniques developed for creation of pairwise keys with
  51.    techniques used to distribute keys from a KDC (i.e., symmetric
  52.    encryption of keys) to distribute symmetric key to a group of hosts.
  53.  
  54.  
  55.  
  56.  
  57.  
  58. Harney & Muckenhirn           Experimental                      [Page 1]
  59.  
  60. RFC 2094                   GKMP Architecture                   July 1997
  61.  
  62.  
  63. 1.1 Multicast Communications Environments
  64.  
  65.    The work leading to this report was primarily concerned with military
  66.    command and control and weapons control systems, these systems tend
  67.    to have top--down, commander--commanded, communications flows.  The
  68.    choice of what parties will be members of a particular communication
  69.    (a multicast group for example) is at the discretion of the "higher"
  70.    level party(ies).  This "sender-initiated" (assuming the higher-level
  71.    party is sending) model maps well to broadcast (as in
  72.    electromagnetic, free-space, transmission) and circuit switched
  73.    communications media (e.g., video teleconferencing, ATM multicast).
  74.  
  75.    In looking to apply this technology to the Internet, a somewhat
  76.    different model appears to be at work (at least for some portion of
  77.    Internet multicast traffic).  IDRP and Distance Vector Multicast
  78.    Routing Protocol (DVMRP) use multicast as a mechanism for parties to
  79.    relay common information to their peers.  Each party both sends and
  80.    receives information in the multicast channel.  As appropriate, a
  81.    party may choose to leave or join the communication without the
  82.    express permission of any of the other parties (this begs the
  83.    question of meta-authorizations which allow the parties to
  84.    cooperate).  More interestingly, the multicast IP model has the
  85.    receiver telling the network to add it to the distribution for a
  86.    particular multicast address, whether it exists yet or not, and the
  87.    transmitter not being consulted as to the addition of the receiver.
  88.  
  89.    Other applications of multicast communications in the Internet, for
  90.    example NASA Select broadcasts, can be viewed as implementing the
  91.    sender model since the sender selects the broadcast time, channel,
  92.    and content, though not the destinations.
  93.  
  94.    It is our intention to provide key management services which support
  95.    both communications (and implied access control) models and operate
  96.    in either a circuit switched or packet switched environment.
  97.  
  98. 1.2 Security for Multicast
  99.  
  100.    Multicast communications, as with unicast, may require any of the
  101.    security services defined in ISO 7498, access control, data
  102.    confidentiality, traffic confidentiality, integrity/data
  103.    authentication, source authentication, sender and receiver non-
  104.    repudiation and service assurance.  From the perspective of key
  105.    management processes, only data confidentiality, data authentication,
  106.    and source authentication can be supported.  The other services,
  107.    traffic confidentiality, non-repudiation, and service assurance must
  108.    be provided by the communications protocol, they may rely on
  109.    cryptographic services but are not guaranteed by them.
  110.  
  111.  
  112.  
  113.  
  114. Harney & Muckenhirn           Experimental                      [Page 2]
  115.  
  116. RFC 2094                   GKMP Architecture                   July 1997
  117.  
  118.  
  119. 2 Multicast Key Management Architectures
  120.  
  121. 2.1 Current Operations
  122.  
  123.    There are several electronic mechanisms for generating and
  124.    distributing symmetric keys to several computers (i.e.,
  125.    communications groups).  These techniques, generally, rely on a key
  126.    distribution center (KDC) to act as a go between in setting up the
  127.    symmetric key groups.  Military systems, such as BLACKER, STU-
  128.    II/BELLFIELD, and EKMS, and commercial systems, such as X9.17 and
  129.    Kerberos, all operate using dedicated KDCs.  A group key request is
  130.    sent to the KDC via various means (on- or off-line) The KDC acting as
  131.    an access controller decides whether or not the request is proper
  132.    (i.e., all members of a group are cleared to receive all the data on
  133.    a group).  The KDC would then call up each individual member of the
  134.    group and down load the symmetric key.  When each member had the key
  135.    the KDC would notify the requester.  Then secure group communication
  136.    could begin.  While this was certainly faster then anything that
  137.    requires human intervention.  It still requires quite a bit of set-up
  138.    time.  Also, a third party, whose primary interest isn't the
  139.    communication, needs to get involved.
  140.  
  141.    Pairwise keys can be created autonomously by the host on a network by
  142.    using any number of key generation protocols (FireFly, Diffe-Hellman,
  143.    RSA). These protocols all rely on cooperative key generation
  144.    algorithms to create a cryptographic key.  These algorithms rely on
  145.    random information generated by each host.  These algorithms also
  146.    rely on peer review of permissions to ensure that the communication
  147.    partners are who they claim to be and have authorization to receive
  148.    the information being transmitted.  This peer review process relies
  149.    on a trusted authority assigning permissions to each host in the
  150.    network that wants the ability to create these keys.  The real beauty
  151.    of these pairwise key management protocols is that they can be
  152.    integrated into the communication protocol or the application.  This
  153.    means that the key management becomes relatively invisible to the
  154.    people in the system.
  155.  
  156. 2.2 GKMP-Based Operations
  157.  
  158.    The GKMP described below, delegates the access control, key
  159.    generation, and distribution functions to the communicating entities
  160.    themselves rather than relying on a third party (KDC) for these
  161.    functions.  As prelude to actually distributing key, a few things
  162.    must be assumed (for purposes of this document): there exists a
  163.    "security manager" responsible for creating and distributing to
  164.    parties authentic identification and security permission information
  165.    (The security manager function may be accomplished through a strictly
  166.    hierarchical system (a la STU-III) or a more ad hoc system of
  167.  
  168.  
  169.  
  170. Harney & Muckenhirn           Experimental                      [Page 3]
  171.  
  172. RFC 2094                   GKMP Architecture                   July 1997
  173.  
  174.  
  175.    cooperating peer "domain managers," the implementation of the
  176.    certification hierarchy is not addressed in this document.);
  177.    communicating parties are online for the keys formed and distributed
  178.    by the GKMP.
  179.  
  180. 2.2.1 Sender Initiated Operations
  181.  
  182.    This section describes the basic operational concept for multicast
  183.    key management for sender initiated multicast support.  This model of
  184.    multicast communications was the basis for our original work on
  185.    multicast key management.  From a security viewpoint the sending
  186.    application is able to control access to the transmission through
  187.    both key distribution and communications distribution (not sending
  188.    the transmission to some addresses).
  189.  
  190.  
  191.    Identification of Group Key Controller -- The originator of the
  192.    multicast group creates or obtains a group management certificate
  193.    from its certification hierarchy.  The certificate identifies the
  194.    holder as responsible for generation and distribution of the group
  195.    key (Naming standards are not addressed here, the name should reflect
  196.    the naming structures appropriate for the supported cryptographic
  197.    service.  For example, IP-level encryptors should use naming
  198.    reflecting "host" identities (IP addresses, or DNS host names), RTP
  199.    encryptor would use session names).  The originator relays the
  200.    membership list to the Group Key Management (GKM) application.
  201.  
  202.  
  203.    Group Key Creation --   The GKM application, operating on behalf of
  204.    the originator, selects one member of the group, contacts it, and
  205.    creates a Group Key Packet (GKP). A GKP contains the current group
  206.    traffic encrypting key (GTEK) and future group key encrypting key
  207.    (GKEK). The GKM application then identifies itself as the group key
  208.    controller, which the member validates, under cover of the GTEK.
  209.  
  210.         Group Key Packet (GKP) = [GTEKn,GKEKn+1]
  211.  
  212.    As part of group key packet formation, usage parameters, appropriate
  213.    for the underlying crypto-system, are selected.  Unlike normal
  214.    parameter negotiation, where common security-level/range, and
  215.    services are arrived at, the originator's GKM application selects
  216.    these parameters and the member must comply.
  217.  
  218.  
  219.    Group Key Distribution --   After creation of the GKP, the group
  220.    controller contacts each member of the group, creates a Session Key
  221.    Package (SKP), validates their permissions (check member's
  222.    certificate against group parameters), and create a Group Rekey
  223.  
  224.  
  225.  
  226. Harney & Muckenhirn           Experimental                      [Page 4]
  227.  
  228. RFC 2094                   GKMP Architecture                   July 1997
  229.  
  230.  
  231.    Package for that member.  A SKP contains a session TEK and a session
  232.    KEK for a particular member.  A GRP contains the GKP encrypted in a
  233.    KEK and signed using the originator's certificate.
  234.  
  235.         Session Key Package (SKP) = [STEK, SKEK]
  236.  
  237.         Group Rekey Package (GRP) = {[GKP]KEK} SignatureController
  238.  
  239.    Group Rekey --   When the group needs to be rekeyed, the originating
  240.    GKM application selects a member, creates a new GKP, creates a new
  241.    GRP (which is encrypted in the previously distributed next GKEK) and
  242.    broadcasts it to the group.
  243.  
  244.    This procedure is fairly complex, but other than for the distribution
  245.    of site-specific certificates, no centralized key management
  246.    resources are needed.  The only parties to the key management
  247.    communications are the same parties which will be participating in
  248.    the group.
  249.  
  250. 2.2.2 Receiver Initiated Operations
  251.  
  252.    This section describes key management operational concept for
  253.    receiver initiated multicast communication support.  The receiver
  254.    initiated model presents some interesting problems from a security
  255.    view point since the end-participants are not known a priori.  Also,
  256.    in a purely receiver initiated application (such as DVMRP), there is
  257.    no concept of an "originator" and the participants in the group may
  258.    be quite dynamic with participants changing on a minute by minute
  259.    basis.
  260.  
  261.    For secure group communications to take place, all members must
  262.    obtain the same key.  This may be achieved by either using
  263.    deterministic key generation techniques (using a secret, shared seed)
  264.    or by making one member of the group responsible for creation of the
  265.    key.  The use of a deterministic key generator presents security
  266.    problems, particularly regarding loss of the seed (it compromises
  267.    both past and future traffic).  The assignment of a member to the
  268.    role of key "controller" also presents drawbacks, but these relate to
  269.    determining which one should be the controller and the need for each
  270.    member to contact him.  The remainder of this discussion will look at
  271.    how the "controller" concept from above could work in the receiver
  272.    initiated case.
  273.  
  274.    Selection of Group Key Controller --   A group member will be made
  275.    responsible for initial group establishment and periodic generation
  276.    and dissemination of new GRPs.  There is no need for the selected
  277.    controller to be the controller for all time, but at any one time
  278.    only one controller may be active for each group.  Selection of
  279.  
  280.  
  281.  
  282. Harney & Muckenhirn           Experimental                      [Page 5]
  283.  
  284. RFC 2094                   GKMP Architecture                   July 1997
  285.  
  286.  
  287.    controller may be made through a voting system, by a simple default
  288.    (the first to transmit to the group is the controller), or
  289.    configuration.
  290.  
  291.    The current controller's identity must be made available to all
  292.    members, and potential members, for initial group key load and error
  293.    recovery.  The information may be relayed by broacast on a key
  294.    management "channel," or through a directory service.
  295.  
  296.    Group Key Creation --   The GKP is created and distributed in much
  297.    the same way as in sender initiated operations.  The controller
  298.    creates a GKP with the first group member to initiate contact.  The
  299.    GKM application then identifies itself as the group key controller,
  300.    which the member validates, under cover of the GTEK. Parameter
  301.    negotiation is performed and the first group member is keyed.
  302.  
  303.    Group Key Distribution --   After creation of the GKP, as other
  304.    members contact the controller, a SKP is created, member permissions
  305.    are validated and a GRP is loaded to the member.
  306.  
  307.    For widely distributed groups, a form of distributed dissemination
  308.    may be used.  Some number of regional GKM applications are enabled
  309.    with the ability to validate the permissions of new members and upon
  310.    validation send to them the current GKP.(Access control is not
  311.    defined in this document, but it is assumed that both hierarchical
  312.    and discretionaly (rule-based and identity-based) access control will
  313.    be supported.) These regional key distributors perform the same
  314.    functions as the controller, except that they do not create the GKP.
  315.    This concept can be expanded to the point where all current members
  316.    are capable of downloading the GKP, and passing on that capability.
  317.  
  318.    Group Rekey --   When the group need rekeying the procedure would be
  319.    identical to the sender initiated case.  The controlling GKM
  320.    application selects a member, creates a new GKP, creates a new GRP
  321.    (which is encrypted in the previously distributed next GKEK) and
  322.    broadcasts it to the group.
  323.  
  324. 2.3 GKMP Features
  325.  
  326.    This section highlights areas which we believe the GKMP approach has
  327.    advantages over the "traditional" KDC based approaches.
  328.  
  329. 2.3.1 Multicast
  330.  
  331.    Multicast protocols are a growing area of interest for the Internet.
  332.    The largest benefit of a multicast protocol is the ability of several
  333.    receivers to simultaneously get the same transmission.  If the
  334.    transmission is of a sensitive nature, it should be encrypted.  This
  335.  
  336.  
  337.  
  338. Harney & Muckenhirn           Experimental                      [Page 6]
  339.  
  340. RFC 2094                   GKMP Architecture                   July 1997
  341.  
  342.  
  343.    means that the all members of the group must share the same
  344.    encryption key to take benefit of the multicast transmission.
  345.  
  346.    To date the only way of setting up a group of symmetric keys is with
  347.    the assistance of a centralized key management facility.  This
  348.    facility would act as a key broker creating a distributing key to
  349.    qualified group members.  There are several problems with this
  350.    centralized concept.  These problems give rise to many of the
  351.    following motivations for creating a distributed key management
  352.    protocol.
  353.  
  354. 2.3.2 Increase the autonomy of key groups
  355.  
  356.    The GKMP proposes to extend the pairwise key paradigm to grouped
  357.    keys.  This protocol can be integrated into the communication
  358.    protocols or applications and can become invisible to the host's
  359.    operator.  We will use peer review to enforce our security policy.
  360.  
  361.    The GKMP allows any host on a network to create and manage a secure
  362.    group.  Maintenance of these group keys can be performed by the hosts
  363.    interested in the group.  The groups themselves will be relatively
  364.    autonomous.  This simplifies the installation of this technology
  365.    allowing more host to use secure multicast communications.
  366.  
  367. 2.3.3 Latency
  368.  
  369.    Latency refers to the time to set-up or tear down or to re-key a
  370.    group.  In short this corresponds to the length of time it would take
  371.    to set-up a multicast address.
  372.  
  373.    The GKMP can allow delegation of group creation authority to any host
  374.    in the network.  In essence, when a host needs a group it will have
  375.    the tools needed to create that group and manage it.  Additionally,
  376.    since the host only needs to create a single group it can concentrate
  377.    on that particular group.
  378.  
  379.    In the current centralized key distribution approach.  The group must
  380.    be requested from the central site.  The central site would process
  381.    that request in accordance with it's priority and current workload.
  382.    Latencies would develop if the workload of the central site gets
  383.    unwieldy or if the communications to the site become overloaded.
  384.  
  385. 2.3.4 Extendibility
  386.  
  387.    One of the problems with a centralized key distribution system is the
  388.    concentration of key management workload at a single site.  The
  389.    process of creating key groups -- key creation, access review,
  390.    communication to group members takes time and effort.  As the number
  391.  
  392.  
  393.  
  394. Harney & Muckenhirn           Experimental                      [Page 7]
  395.  
  396. RFC 2094                   GKMP Architecture                   July 1997
  397.  
  398.  
  399.    of groups on the network grows and the number of group members group.
  400.    The workload at that central sight quickly reaches capacity.
  401.  
  402.    GKMP should allow a great number of groups to exist on the Internet
  403.    without overloading any particular host.  Delegation of the net wide
  404.    group creation and management workload places the burden of
  405.    maintaining groups on the hosts interested in using those groups.
  406.    Not only is this more efficient, but it places the burden in an
  407.    appropriate location.
  408.  
  409.    The GKMP distributes the communication requirements to manage groups
  410.    across the network.  Each group manages the group using the same
  411.    communication resources needed to pass traffic.  It is likely that if
  412.    a communication group can support the traffic of a group, it will be
  413.    able to support the minimal traffic needed to management the keys for
  414.    that group.
  415.  
  416.    GKMP provides it's own access control, based on signed netwide
  417.    permission certificates.  This partially disseminates the burden of
  418.    access control and permission management.  A system wide authority
  419.    must assign the permission certificates, but day to day access
  420.    control decisions are a GKMP responsibility.
  421.  
  422. 2.3.5 Operating expense
  423.  
  424.    A centralized key distribution site contains, at one time or another,
  425.    the keys for the net.  This is a valuable target for someone to
  426.    compromise.  To protect this site physical and procedural security
  427.    mechanisms are employed (e.g., guards, fences, intrusion alarms, two
  428.    person safes, no-alone zones).  These mechanisms do not come cheap.
  429.  
  430.    Allowing the hosts to create and manage their keys eliminates the
  431.    need for an on-line centralized key distribution site.  The protocol
  432.    approach restricts access to the keys to the hosts using them (the
  433.    minimal set).  Since, the encryption mechanisms will have already
  434.    incurred the cost to be physically secured there is no additional
  435.    cost levied on the system by the key management system.
  436.  
  437. 2.3.6 Communication Resources
  438.  
  439.    Because a centralized site is involved in creating, distributing,
  440.    rekeying, and providing access control for every group, it is
  441.    frequently accessed.  The communication resources available to this
  442.    site often become a bottle neck for the groups.  Therefore a big pipe
  443.    is usually installed to this facility.
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450. Harney & Muckenhirn           Experimental                      [Page 8]
  451.  
  452. RFC 2094                   GKMP Architecture                   July 1997
  453.  
  454.  
  455.    The GKMP proposes delegating most of the key creation, distribution,
  456.    rekey and access control mission to the hosts that need the secure
  457.    communication.  There no longer is a single third party that must be
  458.    consulted prior to every group key management action.  Hence, the
  459.    communications requirements to manage the keys have shifted to the
  460.    groups themselves.  The need for special high capacity communications
  461.    has been eliminated.
  462.  
  463. 2.3.7 Reliability
  464.  
  465.    Delegating key management responsibility to the groups eliminates the
  466.    centralized key management site as a single point of failure.  The
  467.    groups that will use the key are responsible for it.  If the
  468.    communications system fails for the key management it is also down
  469.    for the communications.
  470.  
  471.    The GKMP will attempt to delegate as many functions to the group as
  472.    possible.  There will be some functions which still need to be
  473.    performed outside of the group (granting of privileges).  These
  474.    functions can still fail.  The GKMP will operate on the old set of
  475.    permissions.  These functions need not be in-line.  They are
  476.    performed separate from the key management actions and are not
  477.    crucial to day-to-day operation.
  478.  
  479. 2.3.8 Security
  480.  
  481.    People are the most risky element for security.  A distributed
  482.    protocol eliminates many people from the key distribution chain.
  483.    This limits "exposure" of the key.
  484.  
  485. 3 GKMP Protocol Overview
  486.  
  487. 3.1 Supporting functions
  488.  
  489.    A secure key management protocol needs a number of supporting
  490.    functions, especially in a military environment.  The two major
  491.    support functions are security management and network group
  492.    management.  In the commercial world a company could provide these
  493.    support functions.
  494.  
  495.    The issue of Security Management is permission management, in a
  496.    military environment separation of data occurs along classical
  497.    classification lines (i.e., TOP SECRET to UNCLASSIFIED). In the
  498.    commercial world these levels are proprietary or need to know access.
  499.  
  500.    Network group management provides an interface to the communications
  501.    system and control of network resources.  Some entity either a
  502.    commercial or military system, the host or network operations center,
  503.  
  504.  
  505.  
  506. Harney & Muckenhirn           Experimental                      [Page 9]
  507.  
  508. RFC 2094                   GKMP Architecture                   July 1997
  509.  
  510.  
  511.    must provide the key management protocol with a list of the group
  512.    members.  Also, if the network resources, bandwidth and processing,
  513.    are considered scarce a management structure must allocate them.
  514.  
  515. 3.1.1 Security management
  516.  
  517.    Security management is a role performed for the entire network.  It
  518.    involves netwide issues of permission management, initialization of
  519.    software, and compromise recovery.  The GKMP relies on security
  520.    management to operate.  Refer to figure 1:  Security management view.
  521.  
  522.    The GKMP must assume trusted handling of the protocol software prior
  523.    and during installation.  If the GKMP is to use peer to peer access
  524.    control the system must control the assignment of permissions.  These
  525.    permissions must be monitored and updated as needed.  Finally,
  526.    overview of these permissions must include the maintenance of a
  527.    Certificate Revocation List.
  528.  
  529.    Secure start-up  We need to control the process of loading GKMP
  530.    software onto a host and initializing it.  The protocol needs keys,
  531.  
  532.  
  533.    Security Manager --> --> --> --> --> --> --> --> --> --> --> Network
  534.                                    Permissions
  535.                                    Secure Start-ups
  536.                                    Compromise recovery
  537.  
  538.                     Figure 1:  Security Management View
  539.  
  540.    public and private, to operate.  It also must have identify
  541.    information of the host on whose behalf it will act.
  542.  
  543.    There are some life cycle and security concerns with the software
  544.    while in transit, stored, distributed, and installed.  A one time
  545.    start-up procedure must verify the identity of the host.  Procedural
  546.    and physical identification techniques will verify the identity of
  547.    the host (i.e., the Armed Forces Courier Service (ARFCS) accounting,
  548.    or registered mail).  Upon key delivery the security manager logs
  549.    it's receipt and assumes responsibility for the key.
  550.  
  551.    After proper installation of the software a paper trail verifies the
  552.    recipient.  The computer would initiate an association with the
  553.    security management function to initialize the protocol software
  554.    (create a unique public and private key pair for network operation
  555.    and receive network permissions).  This activation process uses keys
  556.    distributed with the software (good only for initialization) to
  557.    secure an exchange with the security manager.  The host then creates
  558.    a unique public and private pair and sends the public key to the
  559.  
  560.  
  561.  
  562. Harney & Muckenhirn           Experimental                     [Page 10]
  563.  
  564. RFC 2094                   GKMP Architecture                   July 1997
  565.  
  566.  
  567.    security manager.  The security manager creates a credential that
  568.    uniquely identifies the host and it permissions.  This credential is
  569.    signed by the security management with its private key and can be
  570.    verified by all net members with the public key.
  571.  
  572.    Permission management  Each host on the network is given a
  573.    permissions certificate signed by the security management which
  574.    uniquely identify that host and identifies the access permissions it
  575.    is allowed.  These permission certificates are used by the network
  576.    hosts to assign permissions to other hosts.
  577.  
  578.    This process assigns permissions to equipment or human beings in
  579.    accordance with their duties.  This process involves security
  580.    clearances and human judgment therefore it is outside the scope of
  581.    this protocol.
  582.  
  583.    The security management function, especially in military operations,
  584.    would be responsible for managing permissions and classifications at
  585.    each host.  In the commercial world, permission management
  586.    corresponds to projects or duties.
  587.  
  588.  
  589.    Compromise recovery management  If a group member is found
  590.    compromised, the protocol must facilitate the exclusion of the
  591.    compromised member and return to secure operations.  The security
  592.    management function will provide control of compromise recovery.
  593.  
  594.    Usually, physical inspections or accounting techniques find
  595.    compromises.  These separate systems report the compromise to the key
  596.    management system.  We must assume the loss of all key resident at
  597.    that host.  The security management function will rescind the
  598.    permission allocated to this compromised host.  We create a list of
  599.    all know compromised hosts and distribution that list across the
  600.    network.  Each host is then responsible for reviewing the propriety
  601.    of each association and enforcing access control to data.
  602.  
  603. 3.1.2 Group management
  604.  
  605.    The group manager interacts with other management functions in the
  606.    network to provide the GKMP with group membership lists and group
  607.    relevant commands.  The GKMP deals strictly with cryptographic key.
  608.    It relies on external communication and network management services
  609.    to supply network related information.  Primarily, it relies on the
  610.    network management service to provide it with the addresses of group
  611.    members (if the group is sender initiated).
  612.  
  613.  
  614.  
  615.  
  616.  
  617.  
  618. Harney & Muckenhirn           Experimental                     [Page 11]
  619.  
  620. RFC 2094                   GKMP Architecture                   July 1997
  621.  
  622.  
  623.    The GKMP allows an external entity to determine the controller of a
  624.    group.  The controller of the group should be able to handle the
  625.    additional processing and communication requirements associated with
  626.    the role.  If this is not a necessary function given the
  627.    implementation, this assignment of controller duties can be set to
  628.    some automated default.  However, even if defaulted some external
  629.    management entity determines how the role of controller is allocated.
  630.  
  631.    The group manager can receive group progress reports from the group
  632.    controller.  The GKMP provides a service for the network.  It makes
  633.    sense that someone in the network is interested in the progress of
  634.    this service.  The GKMP can provide progress reports.  It is up to
  635.    the network management to determine the manner and recipient of the
  636.    reports.  Reference figure 2:  Network manager interaction.
  637.  
  638.  
  639.    Group Manager --> --> --> --> --> --> --> --> -->Network Manager
  640.            /\
  641.            |
  642.            |       Commands, Role assignments
  643.            |       Group member list, Reports
  644.            |
  645.            \/
  646.    {[Group Controller]     Network}
  647.  
  648.                   Figure 2:  Network Manager Interaction
  649.  
  650.    Group to member mapping  When the GKMP is implemented in sender
  651.    initiated group establishment mode, a list of group member addresses
  652.    must be provided as part of the group establishment command.  The
  653.    GKMP will use these addresses to contact the group members and create
  654.    the group.
  655.  
  656.    The creation of groups involves the assignment of a group address,
  657.    update of router databases, and distribution of this group address to
  658.    the group members.  This is a classic function of network management.
  659.    The GKMP group controller would be another recipient of this
  660.    information.
  661.  
  662.    Protocol role allocation  The Group Management Protocol assigns roles
  663.    to members of a particular group.  These roles are binary one is
  664.    either the control over the group or a member of a group.  Some
  665.    external entity will allocate the identity of the group controller
  666.    and group receiver.  This is a desirable aspect because some
  667.    computers are more capable (i.e., central site, great deal of process
  668.    power available to control a group).  We allow some external entity
  669.    to allocate these roles to individual group members, this is
  670.    important in the military application do to the fact that in a
  671.  
  672.  
  673.  
  674. Harney & Muckenhirn           Experimental                     [Page 12]
  675.  
  676. RFC 2094                   GKMP Architecture                   July 1997
  677.  
  678.  
  679.    commercial application the allocating authority and group controller
  680.    may very well always be the same.
  681.  
  682.    Group key progress reporting  The Group Key Management Protocol has
  683.    to be able to report to somebody.  If we create a group, we should
  684.    report it to group requester.  Contrarily if we are not able to
  685.  
  686.  
  687.    Network = {[(Group 1 controller) Group 1 members],
  688.    [(Group 2 controller) Group 2 members],
  689.    [(Group 3 controller) Group 3 members], }
  690.  
  691.                   Figure 3:  Distributed Group Management
  692.  
  693.    create a group we should report that especially since failure to
  694.    create a group at least as a first study will highly correlate with a
  695.    failure of the underlying communications.  The Group Key Management
  696.    Protocol does not have an ability to fix the underlying
  697.    communications so the communication management function must deal
  698.    with these failures.
  699.  
  700. 3.2 Protocol Roles
  701.  
  702.    Creation and distribution of grouped key require assignment of roles.
  703.    These identify what functions the individual hosts perform in the
  704.    protocol.  The two primary roles are those of controller and
  705.    receiver.  The controller initiates the creation of the key, forms
  706.    the key distribution messages, and collects acknowledgment of key
  707.    receipt from the receivers.  The receivers wait for a distribution
  708.    message, decrypt, validate, and acknowledge the receipt of new key.
  709.  
  710.    One of the essential concepts behind the GKMP is delegation of group
  711.    control.  Since each host in the network has the capability to act as
  712.    a group controller, the processing and communication requirements of
  713.    controlling the groups in the network can be distributed equitably
  714.    throughout the network.  This avoids potential single points of
  715.    failure, communication congestion, and processor overloading.  Refer
  716.    to figure 3:  Distributed group management.
  717.  
  718. 3.2.1 Group controller
  719.  
  720.    The group controller is the a group member with authority to perform
  721.    critical protocol actions (i.e., create key, distribute key, create
  722.    group rekey messages, and report on the progress of these actions).
  723.    All group members have the capability to be a group controller and
  724.    could assume this duty upon assignment.
  725.  
  726.  
  727.  
  728.  
  729.  
  730. Harney & Muckenhirn           Experimental                     [Page 13]
  731.  
  732. RFC 2094                   GKMP Architecture                   July 1997
  733.  
  734.  
  735.    The group controller helps the cryptographic group reach and maintain
  736.    key synchronization.  A group must operate on the same symmetric
  737.    cryptographic key.  If part of the group loses or inappropriately
  738.    changes it's key, it will not be able to send or receive data to
  739.    another host operating on the correct key.  Therefor, it is important
  740.    that those operations that create or change key are unambiguous and
  741.    controlled (i.e., it would not be appropriate for multiple hosts to
  742.    try to rekey a net simultaneously).
  743.  
  744. 3.2.2 Group receiver
  745.  
  746.    Simply stated a group receiver is any group member who is not acting
  747.    as the controller.  The group receivers will:  assist the controller
  748.    in creating key, validate the controller authorization to perform
  749.    actions, accept key from the controller, request key from the
  750.    controller, maintain local CRL lists, perform peer review of key
  751.    management actions, and manage local key.
  752.  
  753. 3.3 Scenarios
  754.  
  755. 3.3.1 Group establishment
  756.  
  757.    The protocol to establish a group of host that share a cryptographic
  758.    key must create a high quality key, verify that all intended
  759.    recipients have permission to join the group, distribute the key to
  760.    all qualified members, and report on the progress.  This process
  761.    consists of two phases:  creation of the key and distribution of the
  762.    key.  Refer to figure 4:  Group Establishment.
  763.  
  764.    The group establishment process is proceeds in the following manner.
  765.    First, a "create group" command is issued to the group commander.
  766.    The group controller validates the command to ensure it came from an
  767.    authorized commander and the group is within the controller's
  768.    permission range.  Next, the controller creates a key.  Then that key
  769.    is passed to the group members, after they pass the peer to peer
  770.    review process.
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786. Harney & Muckenhirn           Experimental                     [Page 14]
  787.  
  788. RFC 2094                   GKMP Architecture                   July 1997
  789.  
  790.  
  791.    Group Controller
  792.            |
  793.            |
  794.            \/      Create group keys
  795.            |--> --> --> --> --> --> -->Group member
  796.            |
  797.            |
  798.            \/      Distribute keys
  799.            |--> --> --> --> --> --> --> Group member
  800.            |
  801.            |
  802.            \/      Distribute keys
  803.            |--> --> --> --> --> --> --> Group member
  804.            |
  805.            |
  806.            \/      Distribute keys
  807.            |--> --> --> --> --> --> --> Group member
  808.  
  809.                       Figure 4:  Group Establishment
  810.  
  811.    Validate command  The create group command is signed by the group
  812.    commander ( they may be the same device).  This signature should be
  813.    asymmetric in nature.  The public key to validate this command can be
  814.    sent with the command itself, if the public bound to the identity of
  815.    the commander.
  816.  
  817.    The group controller receives the command.  It verifies that the
  818.    signature, thereby ensuring the message was sent by the claimed
  819.    source and the message has not been modified in transit.
  820.  
  821.    Creation of group keys  The controller initiates the creation of two
  822.    keys for use in the group.  The creation of a cryptographic key
  823.    requires that the key be sufficiently random.  Randomizers, capable
  824.    of creating high grade cryptographic key, tend to be hardware based
  825.    and are not likely to be practical for this protocol.  There are
  826.    several established key creation protocols based in software (e.g.,
  827.    Diffe-Hellman, FireFly, RSA). All these software based algorithms
  828.    involve two hosts cooperating to create a cryptographic key.  These
  829.    software algorithms are more appropriate for this protocol.
  830.  
  831.    Also important, in the creation of these keys, is verification of the
  832.    authorization of the key creation partner.  Authorization to posses
  833.    the keys include permissions that equal or exceed the group traffic
  834.    and identity verification.
  835.  
  836.  
  837.  
  838.  
  839.  
  840.  
  841.  
  842. Harney & Muckenhirn           Experimental                     [Page 15]
  843.  
  844. RFC 2094                   GKMP Architecture                   July 1997
  845.  
  846.  
  847.    Distribution of group keys  The controller distributes the group keys
  848.    to the net members.  The controller must verify the identity and
  849.    permissions of each member prior to the key being distributed.
  850.  
  851.  
  852.                            Rekey Group
  853.    Group Controller --> --> --> --> --> -->{Group (group member 1-n)}
  854.  
  855.  
  856.                           Figure 5:  Group Rekey
  857.  
  858.    Likewise, the net member must verify the controller's identity,
  859.    authorization to perform this action, and permissions.
  860.  
  861.    The key being distributed is the same level as the data that it will
  862.    encrypt.  Hence, we must encrypt the key during distribution.  If no
  863.    suitable key exists between the controller and member, a new key must
  864.    be created.  This new key is cooperatively created between the
  865.    controller and net member in a similar manner as the net keys.
  866.  
  867.    The controller creates a message for encryption in the key held
  868.    between the controller and member.  This message will include key
  869.    management information and the keys.
  870.  
  871. 3.3.2 Group rekey
  872.  
  873.    Cryptographic key has a life span.  New key must replace "old" key
  874.    prior to the end of its cryptographic life.  This process is rekey.
  875.  
  876.    Rekey has the advantage of using an existing cryptographic
  877.    association to distribute key.  Also, there is no requirement to
  878.    verify the identity and authorization for the other members.
  879.    Identify and authorization are assumed.
  880.  
  881.    A group rekey consists of two stages.  First the Group Controller
  882.    creates new group keys.  Second these "new" keys are sent to the
  883.    Group Members in a multicast message.  Refer to figure 5:  Group
  884.    Rekey.
  885.  
  886.    Creation of group keys  The controller of the rekey will create the
  887.    new keys in exactly the same manner as used during group
  888.    establishment.
  889.  
  890.  
  891.  
  892.  
  893.  
  894.  
  895.  
  896.  
  897.  
  898. Harney & Muckenhirn           Experimental                     [Page 16]
  899.  
  900. RFC 2094                   GKMP Architecture                   July 1997
  901.  
  902.  
  903.    Distribution of group keys  The GKMP creates a message for the group
  904.    address.  This message uses one of the keys distributed during group
  905.    establishment to encrypt the new keys.  It also contains an
  906.    authorization token identifying the controller as the rekey agent and
  907.    new management data.  All members of the group using a multicast
  908.    protocol (if one exists) accept this message.
  909.  
  910.    The message which rekeys the group encrypts the new keys in the
  911.    existing KEK. Since all group members possess the KEK the entire
  912.    group can decrypt this message.
  913.  
  914.    The token authorizing the group controller to perform this rekey is
  915.    also included.  This token is asymmetrically signed by the group
  916.    commander.  It uniquely identifies the group controller's authority
  917.    to rekey this group.  It also identifies the group the level of
  918.    traffic and rekey interval.
  919.  
  920. 3.3.3 Deletion
  921.  
  922.    It is desirable to be able to delete group members for either
  923.    administrative purposes or security reasons.  Administrative deletion
  924.    is the deletion of a trusted group member.  It is possible to confirm
  925.    the deletion of trusted group members.  Security relevant deletion is
  926.    the deletion of an untrusted member.  It assumes that the member is
  927.    ignore all deletion commands.
  928.  
  929.    Administrative delete  Administrative deletion removes the group keys
  930.    from trusted group members.  This deletion consists of two messages
  931.    the first sends a command to the group encrypted in the groups TEK.
  932.    The command essentially says:  acknowledge receipt and then delete
  933.    group keys.  This command is signed by the group controller to
  934.    prevent unauthorized deletions.
  935.  
  936.    The acknowledgment message is also encrypted under the group TEK and
  937.    is sent to acknowledge receipt of the command.  We could acknowledge
  938.    accomplishment of the command if the net is willing to accept the
  939.    burden of creating pairwise keys between the exiting group members
  940.    and the group controller.
  941.  
  942.    Compromise recovery  Compromise recovery is the deletion of untrusted
  943.    group members.  This actually involves the creation of an entirely
  944.    new group, without the untrusted member.  Once the new group is
  945.    created, net operations can be shifted to the new group, effectively
  946.    denying the untrusted member access to the data.
  947.  
  948.  
  949.  
  950.  
  951.  
  952.  
  953.  
  954. Harney & Muckenhirn           Experimental                     [Page 17]
  955.  
  956. RFC 2094                   GKMP Architecture                   July 1997
  957.  
  958.  
  959.    There is always a trade-off between security and continued net
  960.    operations when a member is found to be compromised.  The security
  961.    first position states that if a member is compromised, the group must
  962.    be destroyed and then a new secure group created.  However,
  963.    operational concerns sometimes out weigh the security concerns.  The
  964.    operational position is that the group will continue to operate with
  965.    the compromised member and will shift to a new secure group when it
  966.    becomes available.
  967.  
  968.    The GKMP does not mandate either position.  However, the speed and
  969.    flexibility of the GKMP does allow a new secure group to be created
  970.    quickly.  Thereby, restricting the potential damage done by a
  971.    compromised member.
  972.  
  973.    Once a member is found to be compromised, that members certificate is
  974.    added to a Certificate Revocation List (CRL). The CRL is an
  975.    asymmetrically signed piece of data, signed by a security manager.
  976.    The list is made up of compromised resource ID's, a version of the
  977.    CRL, and perhaps an identifier of the security manager.  The CRL is
  978.    accessed every time a new key is negotiated.  If one of the key
  979.    creators is on the CRL the key is destroyed and interaction
  980.    terminated.
  981.  
  982.    The idea behind a CRL is each host would keep records of all open
  983.    associations and compromised resources.  The host would then make
  984.    sure that it does not have and will not create a secure association
  985.    open with anyone who is on the CRL. The CRL concept of becomes more
  986.    complicated in the case of groups.  This is because it is not
  987.    necessary for every member in the group to know who the other group
  988.    members are.  Hence, a group member does not have sufficient
  989.    information to identify compromised group associations.  The GKMP
  990.    proposes that the group controllers be responsible for reviewing the
  991.    CRL and taking appropriate actions should a group member be
  992.    compromised.
  993.  
  994.    Another issue with CRLs is the speed that they can be distributed
  995.    across a network.  Every time a key is created the cooperating hosts
  996.    exchange the version number of their current CRL. If the versions do
  997.    not match.  The most current version is passed to the host with the
  998.    old version.  Hence, CRLs propagate when keys are created.  If this
  999.    is infrequently and there is a single CRL insertion point, the list
  1000.    may take a few days to move across the net.  The GKMP allows a
  1001.    speedier distribution of the CRL.
  1002.  
  1003.    The GKMP delegates control of groups to specific group controllers (a
  1004.    subset of the network).  These controllers are responsible for
  1005.    maintaining the security of the group.  If quicker distribution of
  1006.    the CRL were desired, the CRL generator ( security management
  1007.  
  1008.  
  1009.  
  1010. Harney & Muckenhirn           Experimental                     [Page 18]
  1011.  
  1012. RFC 2094                   GKMP Architecture                   July 1997
  1013.  
  1014.  
  1015.    function could seed the CRL at these controllers.  Controllers are
  1016.    points of key management activity and are logical CRL staging areas.
  1017.  
  1018. 4 Issues
  1019.  
  1020.    What are the unresolved issues with this protocol?
  1021.  
  1022. 4.1 Access Control
  1023.  
  1024.    One interesting issue with a grouped key protocol is access control.
  1025.    This is because we are moving away from having humans in the loop or
  1026.    having a central authority to check the propriety of the group.
  1027.  
  1028.    The group protocol must police itself.  It must ensure that each
  1029.    member of a group meets the classic military access control policy (
  1030.    i.e., a group member`s classification level must be higher or equal
  1031.    to the classification of the group that it's in).
  1032.  
  1033.    Is allocation of permissions by a higher authority sufficient to
  1034.    provide access control?  Or is a more discretionary mechanism
  1035.    necessary?
  1036.  
  1037. 4.2 MLS
  1038.  
  1039.    A GKMP must be capable of operating in a multi-level secure
  1040.    environment.  The integration of a key management protocol capable of
  1041.    creating keys of several different classifications with an operating
  1042.    system capable of operating with multiple classifications in non-
  1043.    trivial.
  1044.  
  1045.    Classified label standards needed to be incorporated.  The
  1046.    classification labels used by the key management protocol should
  1047.    coincide with the labels used by the MLS operating system.  These
  1048.    interoperability issues need to be addressed.
  1049.  
  1050. 4.3 Error Conditions
  1051.  
  1052.    A group protocol is more complex than a pairwise protocol hence there
  1053.    are more possible error conditions.  In a pairwise protocol you have
  1054.    two parties; they must communicate between themselves.  It is
  1055.    relatively simple to define an take care of all the potential error
  1056.    conditions.
  1057.  
  1058.  
  1059.  
  1060.  
  1061.  
  1062.  
  1063.  
  1064.  
  1065.  
  1066. Harney & Muckenhirn           Experimental                     [Page 19]
  1067.  
  1068. RFC 2094                   GKMP Architecture                   July 1997
  1069.  
  1070.  
  1071.    One assumption with any group protocol is the underlying internet is,
  1072.    to some degree, always broken.  The protocol designer has to assume
  1073.    that messages will be delayed or destroyed in transit, all member
  1074.    will not receive all multicast messages, and acknowledgment of
  1075.    actions may not be delivered.  This assumption is important if a
  1076.    protocol uses multicast functions to speed-up actions.
  1077.  
  1078.    The protocol must provide recovery mechanisms to allow group members
  1079.    to recover from loss of messages.  It must recover in a way that is
  1080.    transparent to the host and underlying communications network.
  1081.  
  1082.    For example, there is an issue whether or not we can create an
  1083.    application layer acknowledgment of multi-cast actions.  The issue
  1084.    deals with the required bandwidth that acknowledgment would take up.
  1085.    It may be much more friendly to the underlying communications systems
  1086.    to have each member identify potential errors and correct them in a
  1087.    pairwise manner.  The task of handling error conditions in a key
  1088.    management protocol is double difficult because many error conditions
  1089.    can be induced error condition (invoked by a third party trying to
  1090.    break the security of that system) to retrieve there key that is in
  1091.    transit or to block the successful dissemination of a key thereby
  1092.    attacking the system security mechanism.
  1093.  
  1094. 4.4 Commercial vs.  Military
  1095.  
  1096.    Commercial and military key management differ in many ways.
  1097.    Commercial Key management protocols tend to emphasize inter-
  1098.    operability, freedom of action, and performance.  Military systems
  1099.    tend to emphasize security and control of operations.
  1100.  
  1101.    There will be a difference in cryptographic algorithms.  The military
  1102.    protocol would certainly use high grade encryption because of
  1103.    protecting classified information.  The commercial system would
  1104.    probably using algorithms.  and techniques certified for unclassified
  1105.    communication systems.  The main difference is in the algorithms
  1106.    length and type.
  1107.  
  1108.    A military protocol would require more management and structure than
  1109.    a commercial one.  The military has always adopted a hierarchical
  1110.    communication structure and the commercial system, especially if you
  1111.    look at the internet, work mainly by anarchist style.
  1112.  
  1113. 4.4.1 Algorithm Type
  1114.  
  1115.    Another difference between military and commercial key management is
  1116.    the type of cryptographic algorithms.  The commercial world uses
  1117.    encryption algorithms like DES and in the future Skipjack.  The
  1118.    military uses other cryptographic algorithms that differ in key
  1119.  
  1120.  
  1121.  
  1122. Harney & Muckenhirn           Experimental                     [Page 20]
  1123.  
  1124. RFC 2094                   GKMP Architecture                   July 1997
  1125.  
  1126.  
  1127.    length and have more restrictions.  An example of this would be the
  1128.    identification of ACCORDION, as a military key encryption algorithm
  1129.    as used in the EKMS program run by NSA.
  1130.  
  1131.    Any experiments with a grouped key management protocol must consider
  1132.    the differences between military and commercial algorithms.  The
  1133.    commercial algorithms tend to be quicker to implement, run faster,
  1134.    involve less processing time, and allows an unclassified experiment.
  1135.    However, we must be careful not paint an unrealistic picture of the
  1136.    performance of the protocol based on these commercial algorithms.  A
  1137.    military algorithm tends to be more cumbersome to process, slow to
  1138.    process, require more bandwidth, a lot of unpleasant characteristics
  1139.    from the commercial stand point, but allow for a higher grade of
  1140.    cryptographic security.  One way of dealing with the disparity
  1141.    between algorithms is to use the commercial cryptographic algorithms
  1142.    and leave the fields the size used by a comparative DOD cryptographic
  1143.    algorithms and insert delays to simulate DOD algorithm processing
  1144.    times.
  1145.  
  1146. 4.4.2 Management Philosophy
  1147.  
  1148.    Management for a military network is far more structured than a
  1149.    commercial network.  A military network would restrict the creation
  1150.    of network groups, the rekeying of those groups, and access to the
  1151.    data contained in those groups.  In contrast the commercial world
  1152.    would enable any member in the network to create a group and allow
  1153.    any other member of the net to join that group.
  1154.  
  1155.    The group Key Management Protocol must allow for both these
  1156.    architectures i.e., all for very structure command control hierarchy
  1157.    and another free form group creation.
  1158.  
  1159. 4.5 Receiver Initiated Operations
  1160.  
  1161.    How do they actually work, what are the performance trades,
  1162.    experimentation needed.
  1163.  
  1164.    Who is the group leader?
  1165.  
  1166.    How do we elect a new leader?
  1167.  
  1168.    Will multiple leaders be created?
  1169.  
  1170.    Will rule based access control allow fine enough access disgression?
  1171.  
  1172.  
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178. Harney & Muckenhirn           Experimental                     [Page 21]
  1179.  
  1180. RFC 2094                   GKMP Architecture                   July 1997
  1181.  
  1182.  
  1183.    Methods for distributed GKP/GRP dissemination need to be examined.
  1184.    This includes:
  1185.  
  1186.     o  resolving group identification issues, such as how to notify
  1187.        potential members of membership requirements without compromising
  1188.        any security-relevant information about the group;
  1189.  
  1190.     o  approaches for rapidly identifying GKP/GRP sources must be
  1191.        developed, such as a "Key ARP" whereby a new member broadcasts
  1192.        into the group a request for key service and existing members
  1193.        resolve which will provide service; and,
  1194.  
  1195.     o  Security effects of distributing access control decisions must
  1196.        also be reviewed.
  1197.  
  1198. 5 Security Considerations
  1199.  
  1200.    This document, in entirety, concerns security.
  1201.  
  1202. 6 Addresses of Authors
  1203.  
  1204.    Hugh Harney
  1205.    SPARTA, Inc.
  1206.    Secure Systems Engineering Division
  1207.    9861 Broken Land Parkway, Suite 300
  1208.    Columbia, MD 21046-1170
  1209.    United States
  1210.    telephone:        +1 410 381 9400 (ext.  203)
  1211.    electronic mail:  hh@columbia.sparta.com
  1212.  
  1213.  
  1214.  
  1215.    Carl Muckenhirn
  1216.    SPARTA, Inc.
  1217.    Secure Systems Engineering Division
  1218.    9861 Broken Land Parkway, Suite 300
  1219.    Columbia, MD 21046-1170
  1220.    United States
  1221.    telephone:        +1 410 381 9400 (ext.  208)
  1222.    electronic mail:  cfm@columbia.sparta.com
  1223.  
  1224.  
  1225.  
  1226.  
  1227.  
  1228.  
  1229.  
  1230.  
  1231.  
  1232.  
  1233.  
  1234. Harney & Muckenhirn           Experimental                     [Page 22]
  1235.  
  1236.