SNMP Administrative Model: ASCII

James M Galvin <galvin@tis.com> Wed, 18 December 1991 18:43 UTC

Received: from TIS.COM by NRI.NRI.Reston.VA.US id aa02573; 18 Dec 91 13:43 EST
Received: from TIS.COM by TIS.COM (4.1/SUN-5.64) id AA02638; Wed, 18 Dec 91 11:49:18 EST
Message-Id: <9112181649.AA02638@TIS.COM>
Reply-To: James M Galvin <galvin@tis.com>
To: snmp-sec-dev@tis.com
Cc: Submission to Internet Drafts:;, TIS.COM@NRI.Reston.VA.US
MMDF-Warning: Parse error in original version of preceding line at NRI.NRI.Reston.VA.US
Subject: SNMP Administrative Model: ASCII
Date: Wed, 18 Dec 1991 11:49:17 -0500
From: James M Galvin <galvin@tis.com>



















			 SNMP Administrative Model




			       James R. Davin
		    MIT Laboratory for Computer Science

			      James M. Galvin
		     Trusted Information Systems, Inc.

			      Keith McCloghrie
			  Hughes LAN Systems, Inc.


			     December 18, 1991







       Contents


       1  Status of this Memo                                  1


       2  Abstract                                             1


       3  Introduction                                         1


       4  Elements of the Model                                2

          4.1   SNMP Party                                     2

          4.2   SNMP Protocol Entity                           6

          4.3   SNMP Management Station                        7

          4.4   SNMP Agent                                     7

          4.5   View Subtree                                   8

          4.6   MIB View                                       8

          4.7   SNMP Management Communication                  8

          4.8   SNMP Authenticated Management Communica-
          tion                                                10

          4.9   SNMP Private Management Communication         11

          4.10  SNMP Management Communication Class           12

          4.11  SNMP Access Control Policy                    12

          4.12  SNMP Proxy Party                              14

          4.13  Procedures                                    16

             4.13.1  Generating a Request                     16

             4.13.2  Processing a Received Communication      17




       INTERNET-DRAFT                          December 1991


             4.13.3  Generating a Response                    20


       5  Application of the Model                            21

          5.1   Non-Secure Minimal Agent Configuration        21

          5.2   Secure Minimal Agent Configuration            24

          5.3   Proxy Configuration                           26

             5.3.1   Foreign Proxy Configuration              27

             5.3.2   Native Proxy Configuration               31

          5.4   Public Key Configuration                      34


       6  Compatibility                                       37


       7  Security Considerations                             37
























       Davin, Galvin, McCloghrie                           [Page ii]




       INTERNET-DRAFT                          December 1991


       1    Status of this Memo


       This draft document will be submitted to the RFC editor as a
       protocol specification. Distribution of this memo is unlimited.
       Please send comments to the SNMP Security Developers
       mailing list (snmp-sec-dev@tis.com) or to the authors ( James
       R. Davin <jrd@ptt.lcs.mit.edu>, James M. Galvin
       <galvin@tis.com>, and Keith McCloghrie <kzm@hls.com>).



       2    Abstract


       This memo presents an elaboration of the SNMP
       administrative model set forth in [1]. This model provides a
       unified conceptual basis for administering SNMP protocol
       entities to support


          o authentication and integrity,

          o privacy,

          o access control, and

          o the cooperation of multiple protocol entities.



       3    Introduction


       This memo presents an elaboration of the SNMP
       administrative model set forth in [1]. It describes how the
       elaborated administrative model is applied to realize effective
       network management in a variety of configurations and
       environments.

       The model described here entails the use of distinct identities
       for peers that exchange SNMP messages. Thus, it represents a
       departure from the community-based administrative model set
       forth in [1]. By unambiguously identifying the source and

       Davin, Galvin, McCloghrie                            [Page 1]




       INTERNET-DRAFT                          December 1991


       intended recipient of each SNMP message, this new strategy
       improves upon the historical community scheme both by
       supporting a more convenient access control model and
       allowing for effective use of asymmetric (public key) security
       protocols in the future.



       4    Elements of the Model


       4.1   SNMP Party


       A SNMP party  is a conceptual, virtual execution context
       whose operation is restricted (for security or other purposes)
       to an administratively defined subset of all possible operations
       of a particular SNMP protocol entity (see Section 4.2).
       Whenever a SNMP protocol entity processes a SNMP
       message, it does so by acting as a SNMP party and is thereby
       restricted to the set of operations defined for that party. The
       set of possible operations specified for a SNMP party may be
       overlapping or disjoint with respect to the sets of other SNMP
       parties; it may also be a proper or improper subset of all
       possible operations of the SNMP protocol entity.

       Architecturally, each SNMP party comprises


          o a single, unique party identity,

          o a single authentication protocol and associated
           parameters by which all protocol messages originated by
           the party are authenticated as to origin and integrity,

          o a single privacy protocol and associated parameters by
           which all protocol messages received by the party are
           protected from disclosure,

          o a single MIB view (see Section 4.6) to which all
           management operations performed by the party are
           applied, and

       Davin, Galvin, McCloghrie                            [Page 2]




       INTERNET-DRAFT                          December 1991


          o a logical network location at which the party executes,
           characterized by a transport protocol domain and
           transport addressing information.


       Conceptually, each SNMP party may be represented by an
       ASN.1 value with the syntax (This representation of a SNMP
       party is an abstraction that provides a convenient syntax to
       use in the discussions in this memo.)


          SnmpParty ::= SEQUENCE {
            partyIdentity
               OBJECT IDENTIFIER,
            partyTDomain
               OBJECT IDENTIFIER,
            partyTAddr
               OCTET STRING,
            partyProxyFor
               OBJECT IDENTIFIER,
            partyMaxMessageSize
               INTEGER,
            partyAuthProtocol
               OBJECT IDENTIFIER,
            partyAuthClock
               INTEGER,
            partyAuthLastMsg
               INTEGER,
            partyAuthNonce
               INTEGER,
            partyAuthPrivate
               OCTET STRING,
            partyAuthPublic
               OCTET STRING,
            partyAuthLifetime
               INTEGER,
            partyPrivProtocol
               OBJECT IDENTIFIER,
            partyPrivPrivate
               OCTET STRING,

       Davin, Galvin, McCloghrie                            [Page 3]




       INTERNET-DRAFT                          December 1991


            partyPrivPublic
               OCTET STRING
          }



       For each SnmpParty value that represents a SNMP party,
       the following statements are true:


          o Its partyIdentity component is called the identity of
           the party and corresponds to the party identity.

          o Its partyTDomain component is called the transport
           domain and indicates the kind of transport service by
           which the party receives network management traffic.
           An example of a transport domain is
           rfcXXXXDomain (SNMP over UDP).

          o Its partyTAddr component is called the transport
           addressing information and represents a transport
           service address by which the party receives network
           management traffic.

          o Its partyProxyFor component is called the proxied
           party  and represents the identity of a second SNMP
           party or other management entity with which
           interaction may be necessary to satisfy received
           management requests. In this context, the value
           noProxy signifies that the party responds to received
           management requests by entirely local mechanisms.

          o Its partyMaxMessageSize component is called the
           maximum message size and identifies the maximum
           length in octets of a SNMP message this party is
           prepared to accept.

          o Its partyAuthProtocol component is called the
           authentication protocol and identifies a protocol and a
           mechanism by which all messages generated by the party
           are authenticated as to integrity and origin. In this
           context, the value noAuth signifies that messages

       Davin, Galvin, McCloghrie                            [Page 4]




       INTERNET-DRAFT                          December 1991


           generated by the party are not authenticated as to
           integrity and origin.

          o Its partyAuthClock component is called the
           authentication clock and represents a notion of the
           current time that is specific to the party. The
           significance of this component is specific to the
           authentication protocol.

          o Its partyAuthLastMsg component is called the
           last-timestamp and represents a notion of time
           associated with the most recent, authentic protocol
           message generated by the party. The significance of this
           component is specific to the authentication protocol.

          o Its partyAuthNonce component is called the nonce
           and represents a monotonically increasing integer
           associated with the most recent, authentic protocol
           message generated by the party. The significance of this
           component is specific to the authentication protocol.

          o Its partyAuthPrivate component is called the private
           authentication key and represents any secret value
           needed to support the authentication protocol. The
           significance of this component is specific to the
           authentication protocol.

          o Its partyAuthPublic component is called the public
           authentication key and represents any public value that
           may be needed to support the authentication protocol.
           The significance of this component is specific to the
           authentication protocol.

          o Its partyAuthLifetime component is called the
           lifetime and represents an administrative upper bound
           on acceptable delivery delay for protocol messages
           generated by the party. The significance of this
           component is specific to the authentication protocol.

          o Its partyPrivProtocol component is called the privacy
           protocol and identifies a protocol and a mechanism by

       Davin, Galvin, McCloghrie                            [Page 5]




       INTERNET-DRAFT                          December 1991


           which all protocol messages received by the party are
           protected from disclosure. In this context, the value
           noPriv signifies that messages received by the party are
           not protected from disclosure.

          o Its partyPrivPrivate component is called the private
           privacy key and represents any secret value needed to
           support the privacy protocol. The significance of this
           component is specific to the privacy protocol.

          o Its partyPrivPublic component is called the public
           privacy key and represents any public value that may be
           needed to support the privacy protocol. The significance
           of this component is specific to the privacy protocol.


       If, for all SNMP parties realized by a SNMP protocol entity,
       the authentication protocol is noAuth and the privacy
       protocol is noPriv, then that protocol entity is called
       non-secure.


       4.2   SNMP Protocol Entity


       A SNMP protocol entity is an actual process which performs
       network management operations by generating and/or
       responding to SNMP protocol messages in the manner
       specified in [1]. When a protocol entity is acting as a
       particular SNMP party (see Section 4.1), the operation of that
       entity must be restricted to the subset of all possible
       operations that is administratively defined for that party.

       By definition, the operation of a SNMP protocol entity
       requires no concurrency between processing of any single
       protocol message (by a particular SNMP party) and
       processing of any other protocol message (by a potentially
       different SNMP party). Accordingly, implementation of a
       SNMP protocol entity to support more than one party need
       not be multi-threaded. However, there may be situations
       where implementors may choose to use multi-threading.

       Davin, Galvin, McCloghrie                            [Page 6]




       INTERNET-DRAFT                          December 1991


       Architecturally, every SNMP protocol entity maintains a local
       database that represents all SNMP parties known to it --
       those whose operation is performed locally, those whose
       operation is performed through communication with remote
       proxied parties, and those whose operation is performed by
       remote parties. In addition, every SNMP protocol entity
       maintains a local database that represents an access control
       policy (see Section 4.11) that defines the access privileges
       associated with known SNMP parties.


       4.3   SNMP Management Station


       A SNMP management station is the operational role assumed
       by a SNMP party when it initiates SNMP management
       operations by the generation of appropriate SNMP protocol
       messages or when it receives and processes trap notifications.

       Sometimes, the term SNMP management station is applied to
       partial implementations of the SNMP (in graphics
       workstations, for example) that focus upon this operational
       role. Such partial implementations may provide for
       convenient, local invocation of management services, but they
       may provide little or no support for performing SNMP
       management operations on behalf of remote protocol users.


       4.4   SNMP Agent


       A SNMP agent is the operational role assumed by a SNMP
       party when it performs SNMP management operations in
       response to received SNMP protocol messages such as those
       generated by a SNMP management station (see Section 4.3).

       Sometimes, the term SNMP agent is applied to partial
       implementations of the SNMP (in embedded systems, for
       example) that focus upon this operational role. Such partial
       implementations provide for realization of SNMP management
       operations on behalf of remote users of management services,

       Davin, Galvin, McCloghrie                            [Page 7]




       INTERNET-DRAFT                          December 1991


       but they may provide little or no support for local invocation
       of such services.


       4.5   View Subtree


       A view subtree is the set of all MIB object instances which
       have a common ASN.1 OBJECT IDENTIFIER prefix to
       their names. A view subtree is identified by the OBJECT
       IDENTIFIER value which is the longest OBJECT
       IDENTIFIER prefix common to all (potential) MIB object
       instances in that subtree.


       4.6   MIB View


       A MIB view is a subset of the set of all instances of all object
       types defined according to the Internet-standard SMI [2] (i.e.,
       of the universal set of all instances of all MIB objects), subject
       to the following constraints:


          o Each element of a MIB view is uniquely named by an
           ASN.1 OBJECT IDENTIFIER value. As such,
           identically named instances of a particular object type
           (e.g., in different agents) must be contained within
           different MIB views. That is, a particular object
           instance name resolves within a particular MIB view to
           at most one object instance.

          o Every MIB view is defined as a collection of view
           subtrees.


       4.7   SNMP Management Communication


       A SNMP management communication is a communication
       from one specified SNMP party to a second specified SNMP
       party about management information that is represented in

       Davin, Galvin, McCloghrie                            [Page 8]




       INTERNET-DRAFT                          December 1991


       the MIB view of the appropriate party. In particular, a SNMP
       management communication may be:


          o a query by the originating party about information in
           the MIB view of the addressed party (e.g., getRequest
           and getNextRequest);

          o an indicative assertion to the addressed party about
           information in the MIB view of the originating party
           (e.g., getResponse or trapNotification); or

          o an imperative assertion by the originating party about
           information in the MIB view of the addressed party
           (e.g., setRequest).


       A management communication is represented by an ASN.1
       value with the syntax

          SnmpMgmtCom ::= [1] IMPLICIT SEQUENCE {
            dstParty
               OBJECT IDENTIFIER,
            srcParty
               OBJECT IDENTIFIER,
            pdu
               PDUs
          }



       For each SnmpMgmtCom value that represents a SNMP
       management communication, the following statements are
       true:

          o Its dstParty component is called the destination and
           identifies the SNMP party to which the communication
           is directed.

          o Its srcParty component is called the source and
           identifies the SNMP party from which the
           communication is originated.

       Davin, Galvin, McCloghrie                            [Page 9]




       INTERNET-DRAFT                          December 1991


          o Its pdu component has the form and significance
           attributed to it in [1].


       4.8   SNMP Authenticated Management
            Communication


       A SNMP authenticated management communication is a
       SNMP management communication (see Section 4.7) for
       which the originating SNMP party is (possibly) reliably
       identified and for which the integrity of the transmission of
       the communication is (possibly) protected. An authenticated
       management communication is represented by an ASN.1 value
       with the syntax


          SnmpAuthMsg ::= [1] IMPLICIT SEQUENCE {
            authInfo
               ANY, - defined by authentication protocol
            authData
               SnmpMgmtCom
          }



       For each SnmpAuthMsg value that represents a SNMP
       authenticated management communication, the following
       statements are true:


          o Its authInfo component is called the authentication
           information and represents information required in
           support of the authentication protocol used by the
           SNMP party originating the message. The detailed
           significance of the authentication information is specific
           to the authentication protocol in use; it has no effect on
           the application semantics of the communication other
           than its use by the authentication protocol in
           determining whether the communication is authentic or
           not.

       Davin, Galvin, McCloghrie                          [Page 10]




       INTERNET-DRAFT                          December 1991


          o Its authData component is called the authentication
           data and represents a SNMP management
           communication.



       4.9   SNMP Private Management Communication


       A SNMP private management communication is a SNMP
       authenticated management communication (see Section 4.8)
       that is (possibly) protected from disclosure. A private
       management communication is represented by an ASN.1 value
       with the syntax


          SnmpPrivMsg ::= [1] IMPLICIT SEQUENCE {
            privDst
               OBJECT IDENTIFIER,
            privData
               [1] IMPLICIT OCTET STRING
          }




       For each SnmpPrivMsg value that represents a SNMP
       private management communication, the following statements
       are true:


          o Its privDst component is called the private destination
           and identifies the SNMP party to which the
           communication is directed.


          o Its privData component is called the private data and
           represents the (possibly encrypted) serialization
           (according to the conventions of [3] and [1]) of a SNMP
           authenticated management communication (see
           Section 4.8).


       Davin, Galvin, McCloghrie                          [Page 11]




       INTERNET-DRAFT                          December 1991


       4.10   SNMP Management Communication Class


       A SNMP management communication class corresponds to a
       specific SNMP PDU type defined in [1]. A management
       communication class is represented by an ASN.1 INTEGER
       value according to the type of the identifying PDU (see
       Table 1).

       The value by which a communication class is represented is
       computed as 2 raised to the value of the ASN.1
       context-specific tag for the appropriate SNMP PDU.

       A set of management communication classes is represented by
       the ASN.1 INTEGER value that is the sum of the
       representations of the communication classes in that set. The
       null set is represented by the value zero.

       In general, it is expected that the communication classes Get
       and GetNext will be assigned together.



       4.11   SNMP Access Control Policy


       A SNMP access control policy is a specification of a local
       access policy in terms of the network management
       communication classes which are authorized between pairs of
       SNMP parties. Architecturally, such a specification comprises
       three parts:



                      Get             1
                      GetNext         2
                      GetResponse     4
                      Set              8
                      Trap           16

             Table 1: Management Communication Classes



       Davin, Galvin, McCloghrie                          [Page 12]




       INTERNET-DRAFT                          December 1991


          o the targets of SNMP access control - the SNMP parties
           that may perform management operations as requested
           by management communications received from other
           parties,

          o the subjects of SNMP access control - the SNMP parties
           that may request, by sending management
           communications to other parties, that management
           operations be performed, and

          o the policy that specifies the SNMP management
           communications classes that a particular subject is
           authorized to request of a particular target.


       Access to individual MIB object instances is determined
       implicitly since by definition each (target) SNMP party
       performs operations on exactly one MIB view. Thus, defining
       the permitted access of a (reliably) identified subject party to
       a particular target party effectively defines the access
       permitted by that subject to that target's MIB view and,
       accordingly, to particular MIB object instances.

       Conceptually, a SNMP access policy is represented by a
       collection of ASN.1 values with the following syntax:


          AclEntry ::= SEQUENCE {
            aclTarget
               OBJECT IDENTIFIER,
            aclSubject
               OBJECT IDENTIFIER,
            aclPrivileges
               INTEGER
          }



       For each such value that represents one part of a SNMP access
       policy the following statements are true:

       Davin, Galvin, McCloghrie                          [Page 13]




       INTERNET-DRAFT                          December 1991


          o Its aclTarget component is called the target and
           identifies the SNMP party to which the partial policy
           permits access.

          o Its aclSubject component is called the subject and
           identifies the SNMP party to which the partial policy
           grants privileges.

          o Its aclPrivileges component is called the privileges and
           represents a set of SNMP management communication
           classes that are authorized to be processed by the
           specified target party when received from the specified
           subject party.



       4.12   SNMP Proxy Party


       A SNMP proxy party is a SNMP party that performs
       management operations by communicating with another,
       logically remote party.

       When communication between a logically remote party and a
       SNMP proxy party is via the SNMP (over any transport
       protocol), then the proxy party is called a SNMP native proxy
       party. Deployment of SNMP native proxy parties is a means
       whereby the processing or bandwidth costs of management
       may be amortized or shifted -- thereby facilitating the
       construction of large management systems.

       When communication between a logically remote party and a
       SNMP proxy party is not via the SNMP, then the proxy party
       is called a SNMP foreign proxy party. Deployment of foreign
       proxy parties is a means whereby otherwise unmanageable
       devices or portions of an internet may be managed via the
       SNMP.

       The transparency principle that defines the behavior of a
       SNMP party in general applies to a SNMP proxy party. In
       particular:

       Davin, Galvin, McCloghrie                          [Page 14]




       INTERNET-DRAFT                          December 1991


           The manner in which one SNMP party processes
           SNMP protocol messages received from another
           SNMP party is entirely transparent to the latter.


       The transparency principle derives directly from the historical
       SNMP philosophy of divorcing architecture from
       implementation. To this dichotomy are attributable many of
       the most valuable benefits in both the information and
       distribution models of the management framework, and it is
       the architectural cornerstone upon which large management
       systems may be built. Consistent with this philosophy,
       although the implementation of SNMP proxy agents in certain
       environments may resemble that of a transport-layer bridge,
       this particular implementation strategy (or any other!) does
       not merit special recognition either in the SNMP management
       architecture or in standard mechanisms for proxy
       administration.

       Implicit in the transparency principle is the requirement that
       the semantics of SNMP management operations are preserved
       between any two SNMP peers. In particular, the "as if
       simultaneous" semantics of a Set operation are extremely
       difficult to guarantee if its scope extends to management
       information resident at multiple network locations. For this
       reason, proxy configurations that admit Set operations that
       apply to information at multiple locations are discouraged,
       although such operations are not explicitly precluded by the
       architecture in those rare cases where they might be
       supported in a conformant way.

       Also implicit in the transparency principle is the requirement
       that the interaction between a management station and a
       proxy agent not supply information to the station about the
       nature or progress of the mechanisms by which its requests are
       realized. That is, it should seem -- except for any distinction
       in an underlying transport address -- to the management
       station as if it were interacting directly with the proxied
       device. Thus, a timeout in the communication between a
       proxy agent and its proxied device should be represented as a

       Davin, Galvin, McCloghrie                          [Page 15]




       INTERNET-DRAFT                          December 1991


       timeout in the communication between the management
       station and the proxy agent. Similarly, an error response from
       a proxied device should -- as much as possible -- be
       represented by the corresponding error response in the
       interaction between the proxy agent and management station.


       4.13   Procedures


       This section describes the procedures followed by a SNMP
       protocol entity in processing SNMP messages. These
       procedures are independent of the particular authentication
       and privacy protocols that may be in use.


       4.13.1   Generating a Request


       This section describes the procedure followed by a SNMP
       protocol entity whenever either a management request or a
       trap notification is to be transmitted by a SNMP party.


         1. An ASN.1 SnmpMgmtCom value is constructed for
           which the srcParty component identifies the originating
           party, for which the dstParty component identifies the
           receiving party, and for which the other component
           specifies the desired management operation.

         2. The local database is consulted to determine the
           authentication protocol and other relevant information
           for the originating SNMP party.

         3. An ASN.1 SnmpAuthMsg value is constructed with
           the following properties:

             o Its authInfo component is constructed according
               to the authentication protocol specified for the
               originating party.
               In particular, if the authentication protocol for the
               originating SNMP party is identified as noAuth,

       Davin, Galvin, McCloghrie                          [Page 16]




       INTERNET-DRAFT                          December 1991


               then this component corresponds to the OCTET
               STRING value of zero length.
             o Its authData component is the constructed
               SnmpMgmtCom value.

         4. The local database is consulted to determine the privacy
           protocol and other relevant information for the receiving
           SNMP party.

         5. An ASN.1 SnmpPrivMsg value is constructed with the
           following properties:

             o Its privDst component identifies the receiving
               SNMP party.
             o Its privData component is the (possibly
               encrypted) serialization of the SnmpAuthMsg
               value according to the conventions of [3] and [1].
               In particular, if the privacy protocol for the
               receiving SNMP party is identified as noPriv, then
               the privData component is unencrypted.
               Otherwise, the privData component is processed
               according to the privacy protocol.

         6. The constructed SnmpPrivMsg value is serialized
           according to the conventions of [3] and [1].

         7. The serialized SnmpPrivMsg value is transmitted
           using the transport address and transport domain for
           the receiving SNMP party.


       4.13.2   Processing a Received Communication


       This section describes the procedure followed by a SNMP
       protocol entity whenever a management communication is
       received.


         1. If the received message is not the serialization (according
           to the conventions of [3] and [1]) of an ASN.1

       Davin, Galvin, McCloghrie                          [Page 17]




       INTERNET-DRAFT                          December 1991


           SnmpPrivMsg value, then that message is discarded
           without further processing.

         2. The local database is consulted for information about
           the receiving SNMP party identified by the privDst
           component of the SnmpPrivMsg value.

         3. If information about the receiving SNMP party is absent
           from the local database, or specifies a transport domain
           and address which indicates that the receiving party's
           operation is not performed by the local SNMP protocol
           entity, then the received message is discarded without
           further processing.

         4. An ASN.1 OCTET STRING value is constructed
           (possibly by decryption) from the privData component
           of said SnmpPrivMsg value according to the privacy
           protocol in use.
           In particular, if the privacy protocol recorded for the
           party is identified as noPriv, then the OCTET
           STRING value corresponds exactly to the privData
           component of the SnmpPrivMsg value.

         5. If the OCTET STRING value is not the serialization
           (according to the conventions of [3] and [1]) of an ASN.1
           SnmpAuthMsg value, then the received message is
           discarded without further processing.

         6. If the dstParty component of the authData
           component of the obtained SnmpAuthMsg value is
           not the same as the privDst component of the
           SnmpPrivMsg value, then the received message is
           discarded without further processing.

         7. The local database is consulted for information about
           the originating SNMP party identified by the srcParty
           component of the authData component of the
           SnmpAuthMsg value.

         8. If information about the originating SNMP party is
           absent from the local database, then the received
           message is discarded without further processing.

       Davin, Galvin, McCloghrie                          [Page 18]




       INTERNET-DRAFT                          December 1991


         9. The obtained SnmpAuthMsg value is evaluated
           according to the authentication protocol and other
           relevant information associated with the originating
           SNMP party in the local database.

           In particular, if the authentication protocol is identified
           as noAuth, then the SnmpAuthMsg value is always
           evaluated as authentic.

         10. If the SnmpAuthMsg value is evaluated as
           unauthentic, then the received message is discarded
           without further processing, and an authentication failure
           is noted.

         11. The ASN.1 SnmpMgmtCom value is extracted from
           the authData component of the SnmpAuthMsg
           value.

         12. The local database is consulted for access privileges
           permitted by the local access policy to the originating
           SNMP party with respect to the receiving SNMP party.

         13. The management communication class is determined
           from the ASN.1 tag value associated with the
           SnmpMgmtCom value.

         14. If the management communication class of the received
           message is either 16 or 4 (i.e., Trap or GetResponse) and
           this class is not among the access privileges, then the
           received message is discarded without further processing.

         15. If the management communication class of the received
           message is not among the access privileges, then the
           received message is discarded without further processing
           after generation and transmission of a response message.
           This response message is directed to the originating
           SNMP party on behalf of the receiving SNMP party. Its
           var-bind-list and request-id components are identical
           to those of the received request. Its error-index
           component is zero and its error-status component is
           readOnly.

       Davin, Galvin, McCloghrie                          [Page 19]




       INTERNET-DRAFT                          December 1991


         16. If the proxied party associated with the receiving SNMP
           party in the local database is identified as noProxy,
           then the SNMP management communication represented
           by the SnmpMgmtCom value is performed by the
           receiving SNMP protocol entity with respect to the MIB
           view identified with the receiving SNMP party identity
           according to the procedures set forth in [1].

         17. If the proxied party associated with the receiving SNMP
           party in the local database is not identified as noProxy,
           then the SNMP management communication
           represented by the SnmpMgmtCom value is
           performed by appropriate cooperation between the
           receiving SNMP party and the identified proxied party.

           In particular, if the transport domain associated with
           the identified proxied party in the local database is
           rfcXXXXDomain, then the operation requested by
           the received message is performed by the generation of a
           corresponding request to the proxied party on behalf of
           the receiving party. If the received message requires a
           response from the local SNMP protocol entity, then that
           response is subsequently generated from the response (if
           any) received from the proxied party corresponding to
           the newly generated request.


       4.13.3   Generating a Response


       This section describes the procedure followed by a SNMP
       protocol entity whenever a response to a management request
       is generated.

       The procedure for generating a response to a SNMP
       management request is identical to the procedure for
       transmitting a request (see Section 4.13.1), except for the
       derivation of the transport domain and address information.
       In this case, the response is transmitted using the transport
       domain and address (not from the local database but) from
       which the corresponding request originated.

       Davin, Galvin, McCloghrie                          [Page 20]




       INTERNET-DRAFT                          December 1991


       5    Application of the Model


       This section describes how the administrative model set forth
       above is applied to realize effective network management in a
       variety of configurations and environments. Several types of
       administrative configurations are identified, and examples are
       given of how each may be realized.


       5.1   Non-Secure Minimal Agent Configuration


       This section presents an example configuration for a minimal,
       non-secure SNMP agent that interacts with one or more
       SNMP management stations. Table 2 presents information
       about SNMP parties that is known both to the minimal agent
       and to the manager, while Table 3 presents similarly common
       information about the local access policy.

       As represented in Table 2, the example agent party operates
       at UDP port 161 at IP address 1.2.3.4 using the party identity
       gracie; the example manager operates at UDP port 2001 at
       IP address 1.2.3.5 using the identity george. At minimum, a
       non-secure SNMP agent implementation must provide for
       administrative configuration (and non-volatile storage) of the
       identities and transport addresses of two SNMP parties: itself
       and a remote peer. Strictly speaking, other information about
       these two parties (including access policy information) need
       not be configurable.

       Suppose that the managing party george wishes to
       interrogate the agent named gracie by issuing a SNMP
       GetNext request message. The manager consults its local
       database of party information. Because the authentication
       protocol for the party george is recorded as noAuth, the
       GetNext request message generated by the manager is not
       authenticated as to origin and integrity. Because, according to
       the manager's database, the privacy protocol for the party
       gracie is noPriv, the GetNext request message is not
       protected from disclosure. Rather, it is simply assembled,

       Davin, Galvin, McCloghrie                          [Page 21]




       INTERNET-DRAFT                          December 1991







              Identity          gracie        george
                         (agent)       (manager)
              Domain          rfcXXXX    rfcXXXX
              Address          1.2.3.4, 161   1.2.3.5, 2001
              Proxied Party     noProxy     noProxy
              Auth Prot        noAuth      noAuth
              Auth Priv Key    ""            ""
              Auth Pub Key    ""            ""
              Auth Clock       0             0
              Auth Last Msg    0             0
              Auth Lifetime     0             0
              Priv Prot         noPriv       noPriv
              Priv Priv Key     ""            ""
              Priv Pub Key     ""            ""

             Table 2: Party Information for Minimal Agent










                  Target    Subject   Privileges
                  gracie    george   3
                  george   gracie    20

            Table 3: Access Information for Minimal Agent






       Davin, Galvin, McCloghrie                          [Page 22]




       INTERNET-DRAFT                          December 1991


       serialized, and transmitted to the transport address (IP
       address 1.2.3.4, UDP port 161) associated in the manager's
       database with the party gracie.

       When the GetNext request message is received at the agent,
       the identity of the party to which it is directed (gracie) is
       extracted from the message, and the receiving protocol entity
       consults its local database of party information. Because the
       privacy protocol for the party gracie is recorded as noPriv,
       the received message is assumed to not be protected from
       disclosure. Similarly, the identity of the originating party
       (george) is extracted, and the local party database is
       consulted. Because the authentication protocol for the party
       george is recorded as noAuth, the received message is
       immediately accepted as authentic.

       The received message is fully processed only if the access
       policy database local to the agent authorizes GetNext request
       communications by the party george with respect to the
       agent party gracie. The access policy database presented as
       Table 3 authorizes such communications (as well as GetNext
       operations).

       When the received request is processed, a GetResponse
       message is generated by the agent gracie for the originating
       peer george. Because the authentication protocol for gracie
       is recorded in the local party database as noAuth, the
       GetResponse message generated by the manager is not
       authenticated as to origin or integrity. Because, according to
       the local database, the privacy protocol for the party george
       is noPriv, the response message is not protected from
       disclosure. Rather, as required by [1], the response message is
       directed to the transport address from which the
       corresponding request originated -- without regard for the
       transport address associated with george in the local
       database.

       When the generated response is received by the manager, the
       identity of the party to which it is directed (george) is
       extracted from the message, and the manager consults its

       Davin, Galvin, McCloghrie                          [Page 23]




       INTERNET-DRAFT                          December 1991


       local database of party information. Because the privacy
       protocol for the party george is recorded as noPriv, the
       received response is assumed not to be protected from
       disclosure. Similarly, the identity of the originating party
       (gracie) is extracted, and the local party database is
       consulted. Because the authentication protocol for the party
       gracie is recorded as noAuth, the received response is
       immediately accepted as authentic.

       The received message is fully processed only if the access
       policy database local to the agent authorizes GetResponse
       communications by the party gracie with respect to the
       manager party george. The access policy database presented
       as Table 3 authorizes such response messages (as well as Trap
       messages).



       5.2   Secure Minimal Agent Configuration


       This section presents an example configuration for a secure,
       minimal SNMP agent that interacts with a single SNMP
       management station. Table 4 presents information about
       SNMP parties that is known both to the minimal agent and to
       the manager, while Table 5 presents similarly common
       information about the local access policy.

       The interaction of manager and agent in this configuration is
       very similar to that sketched above for the non-secure minimal
       agent -- except that all protocol messages are authenticated
       as to origin and integrity and protected from disclosure. This
       example requires encryption in order to support distribution
       of secret keys via the SNMP itself. A more elaborate example
       comprising an additional pair of SNMP parties could support
       the exchange of non-secret information in authenticated
       messages without incurring the cost of encryption.

       As represented in Table 4, the example agent party operates
       at UDP port 161 at IP address 1.2.3.4 using the party identity
       ollie; the example manager operates at UDP port 2001 at IP

       Davin, Galvin, McCloghrie                          [Page 24]




       INTERNET-DRAFT                          December 1991







         Identity          ollie                   stan
                    (agent)                 (manager)
         Domain          rfcXXXX             rfcXXXX
         Address          1.2.3.4, 161             1.2.3.5, 2001
         Proxied Party     noProxy              noProxy
         Auth Prot        md5AuthProtocol    md5AuthProtocol
         Auth Priv Key    "ABCD"               "EFGH"
         Auth Pub Key    ""                     ""
         Auth Clock       0                      0
         Auth Last Msg    0                      0
         Auth Lifetime     500                    500
         Priv Prot         desPrivProtocol      desPrivProtocol
         Priv Priv Key     "JKLM"               "QRST"
         Priv Pub Key     ""                     ""

          Table 4: Party Information for Secure Minimal Agent










                   Target   Subject   Privileges
                   ollie     stan      3
                   stan     ollie      20

          Table 5: Access Information for Secure Minimal Agent






       Davin, Galvin, McCloghrie                          [Page 25]




       INTERNET-DRAFT                          December 1991


       address 1.2.3.5 using the identity stan. At minimum, a secure
       SNMP agent implementation must provide for administrative
       configuration (and non-volatile storage) of relevant
       information about two SNMP parties: itself and a remote
       peer. Both ollie and stan authenticate all messages that they
       generate by using the SNMP authentication protocol
       md5AuthProtocol and their distinct, private authentication
       keys. Although these private authentication key values
       ("ABCD" and "EFGH") are presented here for expository
       purposes, knowledge of private authentication keys is not
       normally afforded to human beings and is confined to those
       portions of the protocol implementation that require it.

       Using the md5AuthProtocol, the public authentication key
       for each SNMP party is irrelevant. Also, because the
       md5AuthProtocol is symmetric in character, the private
       authentication key for each party must be known to another
       SNMP party with which authenticated communication is
       desired. In contrast, asymmetric (public key) authentication
       protocols would not depend upon sharing of a private key for
       their operation. Although the administrative model set forth
       here can easily accommodate asymmetric protocols, none are
       currently defined for use with the SNMP.

       All protocol messages originated by the party stan are
       encrypted on transmission using the desPrivProtocol
       privacy protocol and the private key "QRST"; they are
       decrypted upon reception according to the same protocol and
       key. Similarly, all messages originated by the party ollie are
       encrypted on transmission using the desPrivProtocol
       protocol and private authentication key "JKLM"; they are
       correspondingly decrypted on reception.



       5.3   Proxy Configuration


       This section presents example configurations for SNMP proxy
       management. On the one hand, proxy management via a
       so-called foreign proxy configuration provides the capability to

       Davin, Galvin, McCloghrie                          [Page 26]




       INTERNET-DRAFT                          December 1991


       manage non-SNMP devices; on the other, it allows an
       administrator to shift the computational burden of rich
       management functionality away from network devices whose
       primary task is not management, via a native proxy
       configuration. Among a variety of other benefits, to the extent
       that SNMP proxy agents function as points of aggregation for
       management information, configurations of this sort may also
       reduce the bandwidth requirements of large-scale management
       activities.



       5.3.1   Foreign Proxy Configuration


       This section presents an example configuration by which a
       SNMP management station may manage network elements
       that do not themselves support the SNMP. This configuration
       centers on a SNMP proxy agent that performs SNMP
       management operations by communicating with a non-SNMP
       device using a proprietary protocol.

       Table 6 presents information about SNMP parties that is
       recorded in the local database of the SNMP proxy agent.
       Table 7 presents information about SNMP parties that is
       recorded in the local database of the SNMP management
       station. Table 8 presents information about the access policy
       specified by the local administration.

       As represented in Table 6, the proxy agent party operates at
       UDP port 161 at IP address 1.2.3.5 using the party identity
       moe; the example manager operates at UDP port 2002 at IP
       address 1.2.3.4 using the identity larry. Both larry and moe
       authenticate all messages that they generate by using the
       protocol md5AuthProtocol and their distinct, private
       authentication keys. Although these private authentication
       key values ("ABCD" and "EFGH") are presented here for
       expository purposes, knowledge of private keys is not normally
       afforded to human beings and is confined to those portions of
       the protocol implementation that require it.

       Davin, Galvin, McCloghrie                          [Page 27]




       INTERNET-DRAFT                          December 1991




         Identity          larry                  moe                   curly
                    (manager)              (proxy)                (proxied)
         Domain          rfcXXXX             rfcXXXX             acmeMgmtPrtcl
         Address          1.2.3.4, 2002            1.2.3.5, 161             0x98765432
         Proxied Party     noProxy              curly                  noProxy
         Auth Prot        md5AuthProtocol    md5AuthProtocol    noAuth
         Auth Priv Key    "ABCD"               "EFGH"               ""
         Auth Pub Key    ""                     ""                     ""
         Auth Clock       0                      0                      0
         Auth Last Msg    0                      0                      0
         Auth Lifetime     500                    500                    0
         Priv Prot         noPriv                noPriv                noPriv
         Priv Priv Key     ""                     ""                     ""
         Priv Pub Key     ""                     ""                     ""

              Table 6: Party Information for Proxy Agent




         Identity          larry                  moe
                    (manager)              (proxy)
         Domain          rfcXXXX             rfcXXXX
         Address          1.2.3.4, 2002            1.2.3.5, 161
         Proxied Party     noProxy              noProxy
         Auth Prot        md5AuthProtocol    md5AuthProtocol
         Auth Priv Key    "ABCD"               "EFGH"
         Auth Pub Key    ""                     ""
         Auth Clock       0                      0
         Auth Last Msg    0                      0
         Auth Lifetime     500                    500
         Priv Prot         noPriv                noPriv
         Priv Priv Key     ""                     ""
         Priv Pub Key     ""                     ""

           Table 7: Party Information for Management Station



       Davin, Galvin, McCloghrie                          [Page 28]




       INTERNET-DRAFT                          December 1991


       Using the md5AuthProtocol, the public authentication key
       for each SNMP party is irrelevant. Also, because the
       md5AuthProtocol is symmetric in character, the private
       authentication key for each party must be known to another
       SNMP party with which authenticated communication is
       desired. In contrast, asymmetric (public key) authentication
       protocols would not depend upon sharing of a private key for
       their operation. Although the administrative model set forth
       here can easily accommodate asymmetric protocols, none are
       currently defined for use with the SNMP.

       Although all SNMP agents that use cryptographic keys in
       their communication with other protocol entities will almost
       certainly engage in private SNMP exchanges to distribute
       those keys, in order to simplify this example, neither the
       management station nor the proxy agent sends or receives
       private SNMP communications. Thus, the privacy protocol for
       each of them is recorded as noPriv.

       The party curly does not send or receive SNMP protocol
       messages; rather, all communication with that party proceeds
       via a hypothetical proprietary protocol identified by the value
       acmeMgmtPrtcl. Because the party curly does not
       participate in the SNMP, many of the attributes recorded for
       that party in a local database are ignored.

       In order to interrogate the proprietary device associated with
       the party curly, the management station larry constructs a
       SNMP GetNext request and transmits it to the party moe
       operating (see Table 7) at UDP port 161, and IP address
       1.2.3.5. This request is authenticated using the private
       authentication key "ABCD."

       When that request is received by the party moe, the
       originator of the message is verified as being the party larry
       by using local knowledge (see Table 6) of the private
       authentication key "ABCD." Because party larry is
       authorized to issue GetNext requests with respect to party
       moe by the relevant access control policy (Table 8), the
       request is accepted. Because the local database records the

       Davin, Galvin, McCloghrie                          [Page 29]




       INTERNET-DRAFT                          December 1991


       proxied party for party moe as curly, the request is satisfied
       by its translation into appropriate operations of the
       acmeMgmtPrtcl directed at party curly. These new
       operations are transmitted to the party curly at the address
       0x98765432 in the acmeMgmtPrtcl domain.

       When and if the proprietary protocol exchange between the
       proxy agent and the proprietary device concludes, a SNMP
       GetResponse management operation is constructed by the
       SNMP party moe to represent the results. This response
       communication is authenticated as to origin and integrity
       using the authentication protocol md5AuthProtocol and
       private authentication key "EFGH" specified for transmissions
       from party moe. It is then transmitted the SNMP party
       larry operating at the management station at IP address
       1.2.3.4 and UDP port 2002 (the source address for the
       corresponding request).

       When this response is received by the party larry, the
       originator of the message is verified as being the party moe
       by using local knowledge (see Table 7) of the private
       authentication key "EFGH." Because party moe is authorized
       to issue Get responses with respect to party larry by the
       relevant access control policy (Table 8), the response is
       accepted, and the interrogation of the proprietary device is
       complete.

       It is especially useful to observe that the database of SNMP
       parties recorded at the proxy agent (Table 6) need be neither
       static nor configured exclusively by the management station.
       For instance, suppose that, in this example, the
       acmeMgmtPrtcl was a proprietary, MAC-layer mechanism
       for managing stations attached to a local area network. In
       such an environment, the SNMP party moe would reside at a
       SNMP proxy agent attached to such a LAN and could, by
       participating in the LAN protocols, detect the attachment and
       disconnection of various stations on the LAN. In this scenario,
       the SNMP proxy agent could easily adjust its local database
       of SNMP parties to support indirect management of the LAN

       Davin, Galvin, McCloghrie                          [Page 30]




       INTERNET-DRAFT                          December 1991


       stations by the SNMP management station. For each new
       LAN station detected, the SNMP proxy agent would add to
       its database both an entry analogous to that for party curly
       (representing the new LAN station itself) and an entry
       analogous to that for party moe (representing a proxy for
       that new station in the SNMP domain).

       By using the SNMP to interrogate the database of parties
       held locally by the SNMP proxy agent, a SNMP management
       station can discover and interact with new stations as they are
       attached to the LAN.


       5.3.2   Native Proxy Configuration


       This section presents an example configuration that supports
       SNMP native proxy operations -- indirect interaction between
       a SNMP agent and a management station that is mediated by
       a second SNMP (proxy) agent.

       This example configuration is highly similar to that presented
       in the discussion of SNMP foreign proxy in the previous
       section. In this example, however, the party associated with
       the identity curly receives messages via the SNMP, and,
       accordingly interacts with the SNMP proxy agent moe using
       authenticated SNMP communications.

       Table 9 presents information about SNMP parties that is
       recorded in the local database of the SNMP proxy agent.
       Table 7 presents information about SNMP parties that is
       recorded in the local database of the SNMP management
       station. Table 10 presents information about the access policy
       specified by the local administration.

       As represented in Table 9, the proxy agent party operates at
       UDP port 161 at IP address 1.2.3.5 using the party identity
       moe; the example manager operates at UDP port 2003 at IP
       address 1.2.3.4 using the identity larry; the proxied party
       operates at UDP port 161 at IP address 1.2.3.6 using the
       party identity curly. All three SNMP parties authenticate all

       Davin, Galvin, McCloghrie                          [Page 31]




       INTERNET-DRAFT                          December 1991




                   Target   Subject   Privileges
                   moe     larry     3
                   larry    moe      20

             Table 8: Access Information for Foreign Proxy




         Identity          larry                  moe                   curly
                    (manager)              (proxy)                (proxied)
         Domain          rfcXXXX             rfcXXXX             rfcXXXX
         Address          1.2.3.4, 2003            1.2.3.5, 161             1.2.3.6, 161
         Proxied Party     noProxy              curly                  noProxy
         Auth Prot        md5AuthProtocol    md5AuthProtocol    md5AuthProtocol
         Auth Priv Key    "ABCD"               "EFGH"               "JKLM"
         Auth Pub Key    ""                     ""                     ""
         Auth Clock       0                      0                      0
         Auth Last Msg    0                      0                      0
         Auth Lifetime     500                    500                    500
         Priv Prot         noPriv                noPriv                noPriv
         Priv Priv Key     ""                     ""                     ""
         Priv Pub Key     ""                     ""                     ""

              Table 9: Party Information for Proxy Agent




                   Target   Subject   Privileges
                   moe     larry     3
                   larry    moe      20
                   curly    moe      3
                   moe     curly     20

             Table 10: Access Information for Native Proxy



       Davin, Galvin, McCloghrie                          [Page 32]




       INTERNET-DRAFT                          December 1991


       messages that they generate as to origin and integrity by using
       the authentication protocol md5AuthProtocol and their
       distinct, private authentication keys. Although these private
       key values ("ABCD," "EFGH," and "JKLM") are presented
       here for expository purposes, knowledge of private keys is not
       normally afforded to human beings and is confined to those
       portions of the protocol implementation that require it.

       In order to interrogate the proxied device associated with the
       party curly, the management station larry constructs a
       SNMP GetNext request and transmits it to the party moe
       operating (see Table 7) at UDP port 161, and IP address
       1.2.3.5. This request is authenticated using the private
       authentication key "ABCD."

       When that request is received by the party moe, the
       originator of the message is verified as being the party larry
       by using local knowledge (see Table 9) of the private
       authentication key "ABCD." Because party larry is
       authorized to issue GetNext (and Get) requests with respect
       to party moe by the relevant access control policy (Table 10),
       the request is accepted. Because the local database records
       the proxied party for party moe as curly, the request is
       satisfied by its translation into a corresponding SNMP
       GetNext request directed from party moe to party curly.
       This new communication is authenticated using the private
       authentication key "EFGH" and transmitted to party curly
       at the IP address 1.2.3.6.

       When this new request is received by the party curly, the
       originator of the message is verified as being the party moe
       by using local knowledge (see Table 9) of the private
       authentication key "EFGH." Because party moe is authorized
       to issue GetNext (and Get) requests with respect to party
       curly by the relevant access control policy (Table 10), the
       request is accepted. Because the local database records the
       proxied party for party curly as noProxy, the GetNext
       request is satisfied by local mechanisms. A SNMP Get
       response representing the results of the query is then

       Davin, Galvin, McCloghrie                          [Page 33]




       INTERNET-DRAFT                          December 1991


       generated by party curly. This response communication is
       authenticated as to origin and integrity using the private
       authentication key "JKLM" and transmitted to party moe at
       IP address 1.2.3.5 (the source address for the corresponding
       request).

       When this response is received by party moe, the originator
       of the message is verified as being the party curly by using
       local knowledge (see Table 9) of the private authentication key
       "JKLM." Because party curly is authorized to issue Get
       responses with respect to party moe by the relevant access
       control policy (Table 10), the response is not rejected.
       Instead, it is translated into a GetNext response that
       corresponds to the original GetNext request from party larry.
       This response is authenticated as to origin and integrity using
       the private authentication key "EFGH" and is transmitted to
       the party larry at IP address 1.2.3.4 (the source address for
       the original request).

       When this response is received by the party larry, the
       originator of the message is verified as being the party moe
       by using local knowledge (see Table 7) of the private
       authentication key "EFGH." Because party moe is authorized
       to issue Get responses with respect to party larry by the
       relevant access control policy (Table 10), the response is
       accepted, and the interrogation is complete.



       5.4   Public Key Configuration


       This section presents an example configuration predicated
       upon a hypothetical security protocol. This hypothetical
       protocol would be based on asymmetric (public key)
       cryptography as a means for providing data origin
       authentication (but not protection against disclosure). This
       example illustrates the consistency of the administrative model
       with public key technology, and the extension of the example
       to support protection against disclosure should be apparent.

       Davin, Galvin, McCloghrie                          [Page 34]




       INTERNET-DRAFT                          December 1991



         Identity          ollie                 stan
                     (agent)              (manager)
         Domain          rfcXXXX           rfcXXXX
         Address          1.2.3.4, 161           1.2.3.5, 2004
         Proxied Party     noProxy            noProxy
         Auth Prot        pkAuthProtocol    pkAuthProtocol
         Auth Priv Key    "ABCD"             ""
         Auth Pub Key    ""                   "efgh"
         Auth Clock       0                    0
         Auth Last Msg    0                    0
         Auth Lifetime     500                  500
         Priv Prot         noPriv              noPriv
         Priv Priv Key     ""                   ""
         Priv Pub Key     ""                   ""

           Table 11: Party Information for Public Key Agent



         Identity          ollie                 stan
                     (agent)              (manager)
         Domain          rfcXXXX           rfcXXXX
         Address          1.2.3.4, 161           1.2.3.5, 2004
         Proxied Party     noProxy            noProxy
         Auth Prot        pkAuthProtocol    pkAuthProtocol
         Auth Priv Key    ""                   "EFGH"
         Auth Pub Key    "abcd"               ""
         Auth Clock       0                    0
         Auth Last Msg    0                    0
         Auth Lifetime     500                  500
         Priv Prot         noPriv              noPriv
         Priv Priv Key     ""                   ""
         Priv Pub Key     ""                   ""

       Table 12:  Party Information for Public Key Management
       Station



       Davin, Galvin, McCloghrie                          [Page 35]




       INTERNET-DRAFT                          December 1991


       The example configuration comprises a single SNMP agent
       that interacts with a single SNMP management station.
       Tables 11 and 12 present information about SNMP parties
       that is by the agent and manager, respectively, while Table 5
       presents information about the local access policy that is
       known to both manager and agent.

       As represented in Table 11, the example agent party operates
       at UDP port 161 at IP address 1.2.3.4 using the party identity
       ollie; the example manager operates at UDP port 2004 at IP
       address 1.2.3.5 using the identity stan. Both ollie and stan
       authenticate all messages that they generate as to origin and
       integrity by using the hypothetical SNMP authentication
       protocol pkAuthProtocol and their distinct, private
       authentication keys. Although these private authentication
       key values ("ABCD" and "EFGH") are presented here for
       expository purposes, knowledge of private keys is not normally
       afforded to human beings and is confined to those portions of
       the protocol implementation that require it.

       In most respects, the interaction between manager and agent
       in this configuration is almost identical to that in the example
       of the minimal, secure SNMP agent described above. The
       most significant difference is that neither SNMP party in the
       public key configuration has knowledge of the private key by
       which the other party authenticates its transmissions as to
       their origin and integrity. Instead, for each received
       authenticated SNMP communication, the identity of the
       originator is verified by applying an asymmetric cryptographic
       algorithm to the received message together with the public
       authentication key for the originating party. Thus, in this
       configuration, the agent knows the manager's public key
       ("efgh") but not its private key ("EFGH"); similarly, the
       manager knows the agent's public key ("abcd") but not its
       private key ("ABCD").

       For simplicity, privacy protocols are not addressed in this
       example configuration, although their use would be necessary
       to the secure, automated distribution of secret keys.

       Davin, Galvin, McCloghrie                          [Page 36]




       INTERNET-DRAFT                          December 1991


       6    Compatibility


       Ideally, all SNMP management stations and agents would
       communicate exclusively using the secure facilities described
       in this memo. In reality, many SNMP agents may implement
       only the insecure SNMP mechanisms described in [1] for some
       time to come.

       New SNMP agent implementations should never implement
       both the insecure mechanisms of [1] and the facilities
       described here. Rather, consistent with the SNMP philosophy,
       the burden of supporting both sorts of communication should
       fall entirely upon managers. Perhaps the best way to realize
       both old and new modes of communication is by the use of a
       SNMP proxy agent deployed locally on the same system with
       a management station implementation. The management
       station implementation itself operates exclusively by using the
       newer, secure modes of communication, and the local proxy
       agent translates the requests of the manager into older,
       insecure modes as needed.

       It should be noted that proxy agent implementations may
       require additional information beyond that described in this
       memo in order to accomplish the requisite translation tasks
       implicit in the definition of the proxy function. This
       information could easily be retrieved from a filestore.



       7    Security Considerations


       It is important to note that, in the example configuration for
       native proxy operations presented in this memo, the use of
       symmetric cryptography does not securely prevent direct
       communication between the SNMP management station and
       the proxied SNMP agent.

       While secure isolation of the management station and the
       proxied agent can, according to the administrative model set

       Davin, Galvin, McCloghrie                          [Page 37]




       INTERNET-DRAFT                          December 1991


       forth in this memo, be realized using symmetric cryptography,
       the required configuration is more complex and is not
       described in this memo. Rather, it is recommended that
       native proxy configurations that require secure isolation of
       management station from proxied agent be implemented using
       security protocols based on asymmetric (or "public key")
       cryptography.

       In order to participate in the administrative model set forth in
       this memo, SNMP implementations must support local,
       non-volatile storage of the local party database. Accordingly,
       every attempt has been made to minimize the amount of
       non-volatile storage required.































       Davin, Galvin, McCloghrie                          [Page 38]




       INTERNET-DRAFT                          December 1991


       References

       [1] Jeffrey D. Case, Mark S. Fedor, Martin L. Schoffstall, and
          James R. Davin. A Simple Network Management Protocol
          (SNMP). RFC 1157, DDN Network Information Center,
          SRI International, May 1990. Obsoletes RFC1098.

       [2] Marshall T. Rose and Keith McCloghrie. Structure and
          Identification of Management Information for TCP/IP
          based internets. RFC 1155, DDN Network Information
          Center, SRI International, May 1990. Obsoletes RFC1065.

       [3] Information Processing -- Open Systems Interconnection
          -- Specification of Basic Encoding Rules for Abstract
          Syntax Notation One (ASN.1). International Organization
          for Standardization/International Electrotechnical
          Institute, 1987. International Standard 8825.



























       Davin, Galvin, McCloghrie                          [Page 39]