DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: T d

⟦2e9bfbbd6⟧ TextFile

    Length: 58495 (0xe47f)
    Types: TextFile
    Names: »draft-ietf-snmpsec-mib-01.txt«

Derivation

└─⟦4f9d7c866⟧ Bits:30007245 EUUGD6: Sikkerheds distributionen
    └─⟦this⟧ »./papers/IETF-drafts/draft-ietf-snmpsec-mib-01.txt« 

TextFile




          Internet Draft          SNMP Party MIB           December 1991



                         Definitions of Managed Objects
                        for Administration of SNMP Parties


                                 16 December 1991


                                 Keith McCloghrie
                             Hughes LAN Systems, Inc.
                                   kzm@hls.com


                                 James R. Davin
                       MIT Laboratory for Computer Science
                               jrd@ptt.lcs.mit.edu

                                       and

                                 James M. Galvin
                        Trusted Information Systems, Inc.
                                  galvin@tis.com




          1.  Abstract

          This memo defines an experimental portion of the Management
          Information Base (MIB) for use with network management
          protocols in TCP/IP-based internets. In particular, it
          describes a representation of the SNMP parties defined in [8]
          as objects defined according to the Internet Standard SMI [1].
          These definitions are consistent with the SNMP Security
          protocols set forth in [9].

          2.  Status of this Memo

          This draft document will be submitted to the RFC editor as an
          extension to the SNMP MIB.  Distribution of this memo is
          unlimited.  Please send comments to the authors.

          This memo does not specify a standard for the Internet
          community.






          McCloghrie/Davin/Galvin                               [Page 1]
\f





          Internet Draft          SNMP Party MIB           December 1991


          3.  The Network Management Framework

          The Internet-standard Network Management Framework consists of
          three components.  They are:

               RFC 1155 which defines the SMI, the mechanisms used for
               describing and naming objects for the purpose of
               management.  RFC 1212 defines a more concise description
               mechanism, which is wholly consistent with the SMI.

               RFC 1156 which defines MIB-I, the core set of managed
               objects for the Internet suite of protocols.  RFC 1213,
               defines MIB-II, an evolution of MIB-I based on
               implementation experience and new operational
               requirements.

               RFC 1157 which defines the SNMP, the protocol used for
               network access to managed objects.

          The Framework permits new objects to be defined for the
          purpose of experimentation and evaluation.


          4.  Objects

          Managed objects are accessed via a virtual information store,
          termed the Management Information Base or MIB.  Objects in the
          MIB are defined using the subset of Abstract Syntax Notation
          One (ASN.1) [5] defined in the SMI.  In particular, each
          object has a name, a syntax, and an encoding.  The name is an
          object identifier, an administratively assigned name, which
          specifies an object type.  The object type together with an
          object instance serves to uniquely identify a specific
          instantiation of the object.  For human convenience, we often
          use a textual string, termed the OBJECT DESCRIPTOR, to also
          refer to the object type.

          The syntax of an object type defines the abstract data
          structure corresponding to that object type.  The ASN.1
          language is used for this purpose.  However, the SMI [1]
          purposely restricts the ASN.1 constructs which may be used.
          These restrictions are explicitly made for simplicity.

          The encoding of an object type is simply how that object type
          is represented using the object type's syntax.  Implicitly





          McCloghrie/Davin/Galvin                               [Page 2]
\f





          Internet Draft          SNMP Party MIB           December 1991


          tied to the notion of an object type's syntax and encoding is
          how the object type is represented when being transmitted on
          the network.

          The SMI specifies the use of the basic encoding rules of ASN.1
          [6], subject to the additional requirements imposed by the
          SNMP.


          4.1.  Format of Definitions

          Section 6 contains the specification of all object types
          contained in this MIB module.  The object types are defined
          using the conventions defined in the SMI, as amended by the
          extensions specified in [7].


          5.  Overview

          5.1.  Structure

          This MIB contains the definitions for four tables, a number of
          OBJECT IDENTIFIER assignments, and some conventions for
          initial use with some of the assignments.  The four tables are
          the SNMP Party Public database, the SNMP Party Secrets
          database, the SNMP Access Control database, and the SNMP Views
          database.

          The SNMP Party Public database and the SNMP Party Secrets
          database are defined as separate tables specifically for the
          purpose of positioning them in different parts of the MIB tree
          namespace.  In particular, the SNMP Party Secrets database
          contains secret information, for which security demands that
          access to it be limited to parties which use both
          authentication and privacy.  It is therefore positioned in a
          separate branch of the MIB tree, at the highest level
          possible, so as to provide for the easiest means of
          accommodating the required limitation.

          In contrast, the SNMP Party Public database contains public
          information about SNMP parties.  In particular, it contains
          the parties' clocks which need to be read-able (but not
          write-able) by unauthenticated queries, since an
          unauthenticated query of a party's clock is the first step of
          the procedure to re-establish clock synchronization (see [9]).





          McCloghrie/Davin/Galvin                               [Page 3]
\f





          Internet Draft          SNMP Party MIB           December 1991


          5.2.  Instance Identifiers

          In all four of the tables in this MIB, the object instances
          are identified by values which have an underlying syntax of
          OBJECT IDENTIFIER.  For the Party Public database and the
          Party Secrets database, the index variable is the party
          identifier.  For the Access Control database and the Views
          database, two index variables are defined, both of which have
          a syntax of OBJECT IDENTIFIER.  (See the INDEX clauses in the
          MIB definitions below for the specific variables.)

          According to RFC 1212 [7], section 4.1.6, the syntax of the
          object(s) specified in an INDEX clause indicates how to form
          the instance-identifier.  In particular, for each such object
          which is object identifier-valued, its contribution to the
          instance identifier is:

               `n+1' sub-identifiers, where `n' is the number of sub-
               identifiers in the value (the first sub-identifier is `n'
               itself, following this, each sub-identifier in the value
               is copied);


          5.3.  Textual Conventions

          The datatypes, Party, Clock, and TAddress, are used as textual
          conventions in this document.  These textual conventions have
          NO effect on either the syntax nor the semantics of any
          managed object. Objects defined using these conventions are
          always encoded by means of the rules that define their
          primitive type.  Hence, no changes to the SMI or the SNMP are
          necessary to accommodate these textual conventions which are
          adopted merely for the convenience of readers.

















          McCloghrie/Davin/Galvin                               [Page 4]
\f





          Internet Draft          SNMP Party MIB           December 1991


          6.  Definitions

          RFCxxxx-MIB DEFINITIONS ::= BEGIN

          IMPORTS
                  system, mib, private, internet
                          FROM RFC1155-SMI
                  OBJECT-TYPE
                          FROM RFC-1212;


          snmpParty       OBJECT IDENTIFIER ::= { internet 5 }
          partyAdmin      OBJECT IDENTIFIER ::= { snmpParty 1 }
          partyPublic     OBJECT IDENTIFIER ::= { snmpParty 2 }

          snmpSecrets     OBJECT IDENTIFIER ::= { internet 6 }
          partyPrivate    OBJECT IDENTIFIER ::= { snmpSecrets 1 }
          partyAccess     OBJECT IDENTIFIER ::= { snmpSecrets 2 }
          partyViews      OBJECT IDENTIFIER ::= { snmpSecrets 3 }

          Clock ::= INTEGER (0..2147483647)  -- a textual convention denoting
                                   -- a non-negative integer which counts the
                                   -- time in seconds since some epoch.

          Party ::= OBJECT IDENTIFIER        -- a textual convention denoting
                                             -- a SNMP Party identifier


          --- definitions of Authentication Protocols

          partyProtocols
              OBJECT IDENTIFIER ::= { partyAdmin 1 }

          noAuth                  -- The protocol without authentication
              OBJECT IDENTIFIER ::= { partyProtocols 1 }

          noPriv                  -- The protocol without privacy
              OBJECT IDENTIFIER ::= { partyProtocols 3 }

          desPrivProtocol         -- The DES Privacy Protocol
              OBJECT IDENTIFIER ::= { partyProtocols 4 }

          md5AuthProtocol         -- The MD5 Authentication Protocol
              OBJECT IDENTIFIER ::= { partyProtocols 5 }






          McCloghrie/Davin/Galvin                               [Page 5]
\f





          Internet Draft          SNMP Party MIB           December 1991


          --- definitions of Transport Domains

          transportDomains
              OBJECT IDENTIFIER ::= { partyAdmin 2 }

          rfcXxxxDomain    --- RFC-Xxxx (SNMP over UDP, using SNMP Parties)
              OBJECT IDENTIFIER ::= { transportDomains 1 }

          TAddress ::= OCTET STRING  -- a textual convention denoting
                                     -- a transport service address.
                -- For rfcXxxxDomain, a TAddress is 6 octets long, the
                -- initial 4 octets containing the IP-address
                -- in network-byte order and the last 2 containing the
                -- UDP port in network-byte order.


          --- definitions of Proxy Domains

          proxyDomains
              OBJECT IDENTIFIER ::= { partyAdmin 3 }

          noProxy                --- Local operation
              OBJECT IDENTIFIER ::= { proxyDomains 1 }



























          McCloghrie/Davin/Galvin                               [Page 6]
\f





          Internet Draft          SNMP Party MIB           December 1991


          ---    Definition of Initial Party Identifiers

          --  When devices are installed, they need to be configured
          --  with an initial set of SNMP parties.  The configuration
          --  of SNMP parties requires (among other things) the
          --  assignment of several OBJECT IDENTIFIERs.  Any local network
          --  administration can obtain the delegated authority necessary
          --  to assign its own OBJECT IDENTIFIERs.  However, to cater
          --  for those administrations who have not obtained the necessary
          --  authority, this document allocates a branch of the naming
          --  tree for use with the following conventions.

          initialPartyId
              OBJECT IDENTIFIER ::= { partyAdmin 4 }

          --  Note these are identified as "initial" party identifiers
          --  since these allow secure SNMP communication to proceed,
          --  thereby allowing further SNMP parties to be configured
          --  through use of the SNMP itself.

          --  The following definitions identify a party identifier,
          --  and specify the initial values of various object
          --  instances indexed by that identifier.  In addition,
          --  the initial MIB view and access control parameters
          --  assigned, by convention, to these parties are identified.

          --    Party Identifiers for use as initial SNMP parties
          --       at IP address  a.b.c.d

          -- partyIdentity            = { initialPartyId a b c d 1 }
          -- partyTDomain             = { rfcXxxxDomain }
          -- partyTAddress            = a.b.c.d, 161
          -- partyProxyFor            = { noProxy }
          -- partyAuthProtocol        = { noAuth }
          -- partyAuthClock           = 0
          -- partySecretsAuthPrivate  = ''h    (the empty string)
          -- partyAuthPublic          = ''h    (the empty string)
          -- partyAuthLifetime        = 0
          -- partyPrivProtocol        = { noPriv }
          -- partySecretsPrivPrivate  = ''h    (the empty string)
          -- partyPrivPublic          = ''h    (the empty string)









          McCloghrie/Davin/Galvin                               [Page 7]
\f





          Internet Draft          SNMP Party MIB           December 1991


          -- partyIdentity            = { initialPartyId a b c d 2 }
          -- partyTDomain             = { rfcXxxxDomain }
          -- partyTAddress            = 0.0.0.0, 0
          -- partyProxyFor            = { noProxy }
          -- partyAuthProtocol        = { noAuth }
          -- partyAuthClock           = 0
          -- partySecretsAuthPrivate  = ''h    (the empty string)
          -- partyAuthPublic          = ''h    (the empty string)
          -- partyAuthLifetime        = 0
          -- partyPrivProtocol        = { noPriv }
          -- partySecretsPrivPrivate  = ''h    (the empty string)
          -- partyPrivPublic          = ''h    (the empty string)

          -- partyIdentity            = { initialPartyId a b c d 3 }
          -- partyTDomain             = { rfcXxxxDomain }
          -- partyTAddress            = a.b.c.d, 161
          -- partyProxyFor            = { noProxy }
          -- partyAuthProtocol        = { md5AuthProtocol }
          -- partyAuthClock           = 0
          -- partySecretsAuthPrivate  = assigned by local administration
          -- partyAuthPublic          = ''h    (the empty string)
          -- partyAuthLifetime        = 30000
          -- partyPrivProtocol        = { noPriv }
          -- partySecretsPrivPrivate  = ''h    (the empty string)
          -- partyPrivPublic          = ''h    (the empty string)

          -- partyIdentity            = { initialPartyId a b c d 4 }
          -- partyTDomain             = { rfcXxxxDomain }
          -- partyTAddress            = 0.0.0.0, 0
          -- partyProxyFor            = { noProxy }
          -- partyAuthProtocol        = { md5AuthProtocol }
          -- partyAuthClock           = 0
          -- partySecretsAuthPrivate  = assigned by local administration
          -- partyAuthPublic          = ''h    (the empty string)
          -- partyAuthLifetime        = 30000
          -- partyPrivProtocol        = { noPriv }
          -- partySecretsPrivPrivate  = ''h    (the empty string)
          -- partyPrivPublic          = ''h    (the empty string)












          McCloghrie/Davin/Galvin                               [Page 8]
\f





          Internet Draft          SNMP Party MIB           December 1991


          -- partyIdentity            = { initialPartyId a b c d 5 }
          -- partyTDomain             = { rfcXxxxDomain }
          -- partyTAddress            = a.b.c.d, 161
          -- partyProxyFor            = { noProxy }
          -- partyAuthProtocol        = { md5AuthProtocol }
          -- partyAuthClock           = 0
          -- partySecretsAuthPrivate  = assigned by local administration
          -- partyAuthPublic          = ''h    (the empty string)
          -- partyAuthLifetime        = 30000
          -- partyPrivProtocol        = { desPrivProtocol }
          -- partySecretsPrivPrivate  = assigned by local administration
          -- partyPrivPublic          = ''h    (the empty string)

          -- partyIdentity            = { initialPartyId a b c d 6 }
          -- partyTDomain             = { rfcXxxxDomain }
          -- partyTAddress            = 0.0.0.0, 0
          -- partyProxyFor            = { noProxy }
          -- partyAuthProtocol        = { md5AuthProtocol }
          -- partyAuthClock           = 0
          -- partySecretsAuthPrivate  = assigned by local administration
          -- partyAuthPublic          = ''h    (the empty string)
          -- partyAuthLifetime        = 30000
          -- partyPrivProtocol        = { desPrivProtocol }
          -- partySecretsPrivPrivate  = assigned by local administration
          -- partyPrivPublic          = ''h   (the empty string)


          --  The initial access control parameters assigned, by
          --  convention, to these parties are:

          -- aclTarget     = { initialPartyId a b c d 1 }
          -- aclSubject    = { initialPartyId a b c d 2 }
          -- aclPrivileges = 3 (Get & Get-Next)

          -- aclTarget     = { initialPartyId a b c d 2 }
          -- aclSubject    = { initialPartyId a b c d 1 }
          -- aclPrivileges = 20 (GetResponse & Trap)

          -- aclTarget     = { initialPartyId a b c d 3 }
          -- aclSubject    = { initialPartyId a b c d 4 }
          -- aclPrivileges = 11 (Get, Get-Next & Set)

          -- aclTarget     = { initialPartyId a b c d 4 }
          -- aclSubject    = { initialPartyId a b c d 3 }
          -- aclPrivileges = 20 (GetResponse & Trap)





          McCloghrie/Davin/Galvin                               [Page 9]
\f





          Internet Draft          SNMP Party MIB           December 1991


          -- aclTarget     = { initialPartyId a b c d 5 }
          -- aclSubject    = { initialPartyId a b c d 6 }
          -- aclPrivileges = 11 (Get, Get-Next & Set)

          -- aclTarget     = { initialPartyId a b c d 6 }
          -- aclSubject    = { initialPartyId a b c d 5 }
          -- aclPrivileges = 20 (GetResponse & Trap)



          --  The initial MIB views assigned, by convention, to
          --  these parties are:

          -- viewParty    = { initialPartyId a b c d 1 }
          -- viewSubtree  = { system }
          -- viewStatus   = { included }
          -- viewMask     = { ''h }

          -- viewParty    = { initialPartyId a b c d 1 }
          -- viewSubtree  = { snmpParty }
          -- viewStatus   = { included }
          -- viewMask     = { ''h }

          -- viewParty    = { initialPartyId a b c d 3 }
          -- viewSubtree  = { internet }
          -- viewStatus   = { included }
          -- viewMask     = { ''h }

          -- viewParty    = { initialPartyId a b c d 3 }
          -- viewSubtree  = { snmpSecrets }
          -- viewStatus   = { excluded }
          -- viewMask     = { ''h }

          -- viewParty    = { initialPartyId a b c d 5 }
          -- viewSubtree  = { internet }
          -- viewStatus   = { included }
          -- viewMask     = { ''h }













          McCloghrie/Davin/Galvin                              [Page 10]
\f





          Internet Draft          SNMP Party MIB           December 1991


          --   The SNMP Party Public Database

          -- The non-secret party information

          partyTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF PartyEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "The SNMP Party Public database.

                      An agent must ensure that there is, at all times,
                      a one-to-one correspondence between entries in
                      this table and entries in the partySecretsTable.

                      The creation/deletion of instances in this table
                      via SNMP Set-Requests is not allowed.  Instead,
                      entries in this table are created/deleted as a
                      side-effect of the creation/deletion of
                      corresponding entries in the partySecretsTable.

                      Thus, a SNMP Set-Request whose varbinds contain a
                      reference to a non-existent instance of a
                      partyTable object, but no reference to the
                      corresponding instance of a partySecretsTable
                      object, will be rejected."
          ::= { partyPublic 1 }

          partyEntry OBJECT-TYPE
              SYNTAX  PartyEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "Locally held non-secret information about a
                      particular SNMP party, which is available for
                      access by network management.  Note that this does
                      not include all locally held information about a
                      party; in particular, it does not include the
                      'last-timestamp' (i.e., the timestamp of the last
                      authentic message received) or the 'nonce'."
              INDEX  { partyIdentity }
              ::= { partyTable 1 }

          PartyEntry ::=
              SEQUENCE {





          McCloghrie/Davin/Galvin                              [Page 11]
\f





          Internet Draft          SNMP Party MIB           December 1991


                  partyIdentity
                      Party,
                  partyTDomain
                      OBJECT IDENTIFIER,
                  partyTAddress
                      TAddress,
                  partyProxyFor
                      Party,
                  partyAuthProtocol
                      OBJECT IDENTIFIER,
                  partyAuthClock
                      Clock,
                  partyAuthPublic
                      OCTET STRING,
                  partyAuthLifetime
                      INTEGER,
                  partyPrivProtocol
                      OBJECT IDENTIFIER,
                  partyPrivPublic
                      OCTET STRING,
                  partyMaxMessageSize
                      INTEGER
              }

          partyIdentity  OBJECT-TYPE
              SYNTAX  Party
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "A party identifier uniquely identifying a
                      particular SNMP party."
              ::= { partyEntry 1 }

          partyTDomain  OBJECT-TYPE
              SYNTAX  OBJECT IDENTIFIER
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "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)."
              DEFVAL  { rfcXxxxDomain }
              ::= { partyEntry 2 }






          McCloghrie/Davin/Galvin                              [Page 12]
\f





          Internet Draft          SNMP Party MIB           December 1991


          partyTAddress  OBJECT-TYPE
              SYNTAX  TAddress
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The transport service address by which the party
                      receives network management traffic, formatted
                      according to the corresponding value of
                      partyTDomain.  For rfcXxxxDomain, partyTAddress is
                      formatted as a 4-octet IP Address concatenated
                      with a 2-octet UDP port number."
              DEFVAL  { '000000000000'h }
              ::= { partyEntry 3 }

          partyProxyFor OBJECT-TYPE
              SYNTAX  Party
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "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 distinguished value { noProxy
                      } signifies that the party responds to received
                      management requests by entirely local mechanisms."
              DEFVAL  { noProxy }
              ::= { partyEntry 4 }

          partyAuthProtocol OBJECT-TYPE
              SYNTAX  OBJECT IDENTIFIER
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The authentication protocol by which all messages
                      generated by the party are authenticated as to
                      origin and integrity. In this context, the value {
                      noAuth } signifies that messages generated by the
                      party are not authenticated."
              DEFVAL  { md5AuthProtocol }
              ::= { partyEntry 5 }

          partyAuthClock OBJECT-TYPE
              SYNTAX  Clock
              ACCESS  read-write
              STATUS  mandatory





          McCloghrie/Davin/Galvin                              [Page 13]
\f





          Internet Draft          SNMP Party MIB           December 1991


              DESCRIPTION
                      "The authentication clock which represents the
                      local notion of the current time specific to the
                      party.  This value must not be decremented unless
                      the party's secret information is changed
                      simultaneously, at which time the party's nonce
                      and last-timestamp values must also be reset to
                      zero, and the new value of the clock,
                      respectively."
              DEFVAL  { 0 }
              ::= { partyEntry 6 }

          partyAuthPublic OBJECT-TYPE
              SYNTAX  OCTET STRING     -- for md5AuthProtocol: (SIZE (0..16))
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "A publically-readable value for the party.

                      Depending on the party's authentication protocol,
                      this value may be needed to support the party's
                      authentication protocol.  Alternatively, it may be
                      used by a manager during the procedure for
                      altering secret information about a party.  (For
                      example, by altering the value of an instance of
                      this object in the same SNMP Set-Request used to
                      update an instance of partyAuthPrivate, a
                      subsequent Get-Request can determine if the Set-
                      Request was successful in the event that no
                      response to the Set-Request is received.)

                      The length of the value is dependent on the
                      party's authentication protocol.  If not used by
                      the authentication protocol, it is recommended
                      that agents support values of any length up to and
                      including the length of the corresponding
                      partyAuthPrivate object."
              DEFVAL  { ''h }      -- the empty string
              ::= { partyEntry 7 }

          partyAuthLifetime OBJECT-TYPE
              SYNTAX  INTEGER (0..2147483647)
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION





          McCloghrie/Davin/Galvin                              [Page 14]
\f





          Internet Draft          SNMP Party MIB           December 1991


                      "The lifetime (in units of seconds) which
                      represents an administrative upper bound on
                      acceptable delivery delay for protocol messages
                      generated by the party."
              DEFVAL  { 30000 }
              ::= { partyEntry 8 }

          partyPrivProtocol OBJECT-TYPE
              SYNTAX  OBJECT IDENTIFIER
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The privacy protocol by 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."
              DEFVAL  { noPriv }
              ::= { partyEntry 9 }

          partyPrivPublic OBJECT-TYPE
              SYNTAX  OCTET STRING     -- for desPrivProtocol: (SIZE (0..16))
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "A publically-readable value for the party.

                      Depending on the party's privacy protocol, this
                      value may be needed to support the party's privacy
                      protocol.  Alternatively, it may be used by a
                      manager as a part of its procedure for altering
                      secret information about a party.  (For example,
                      by altering the value of an instance of this
                      object in the same SNMP Set-Request used to update
                      an instance of partyPrivPrivate, a subsequent
                      Get-Request can determine if the Set-Request was
                      successful in the event that no response to the
                      Set-Request is received.)

                      The length of the value is dependent on the
                      party's privacy protocol.  If not used by the
                      privacy protocol, it is recommended that agents
                      support values of any length up to and including
                      the length of the corresponding partyPrivPrivate
                      object."





          McCloghrie/Davin/Galvin                              [Page 15]
\f





          Internet Draft          SNMP Party MIB           December 1991


              DEFVAL  { ''h }     -- the empty string
              ::= { partyEntry 10 }

          partyMaxMessageSize OBJECT-TYPE
              SYNTAX  INTEGER (484..65507)
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The maximum length in octets of a SNMP message
                      which this party will accept.  For parties which
                      execute at an agent, the agent initializes this
                      object to the maximum length supported by the
                      agent, and does not let the object be set to any
                      larger value.  For parties which do not execute at
                      the agent, the agent must allow the manager to set
                      this object to any legal value, even if it is
                      larger than the agent can generate."
              DEFVAL  { 484 }
              ::= { partyEntry 11 }




          --   The SNMP Party Secrets Database

          -- The secret party information

          partySecretsTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF PartySecretsEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "The SNMP Party Secrets database."
          ::= { partyPrivate 1 }

          partySecretsEntry OBJECT-TYPE
              SYNTAX  PartySecretsEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "Locally held secret information about a
                      particular SNMP party, which is available for
                      access by network management.

                      When a SNMP Set-Request is used to update the





          McCloghrie/Davin/Galvin                              [Page 16]
\f





          Internet Draft          SNMP Party MIB           December 1991


                      values of instances of objects in this table, it
                      is recommended that the same SNMP Set-Request also
                      alter the value of a non-secret object instance
                      (e.g., an instance of partyAuthPublic or
                      partyPrivPublic).  This allows a Get-Request of
                      that non-secret object instance to determine if
                      the Set-Request was successful in the event that
                      no response which matches the Set-Request, is
                      received."
              INDEX  { partySecretsIdentity }
              ::= { partySecretsTable 1 }

          PartySecretsEntry ::=
              SEQUENCE {
                  partySecretsIdentity
                      Party,
                  partySecretsAuthPrivate
                      OCTET STRING,
                  partySecretsPrivPrivate
                      OCTET STRING,
                  partySecretsStatus
                      INTEGER
              }

          partySecretsIdentity  OBJECT-TYPE
              SYNTAX  Party
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "A party identifier uniquely identifying a
                      particular SNMP party."
              ::= { partySecretsEntry 1 }

          partySecretsAuthPrivate OBJECT-TYPE
              SYNTAX  OCTET STRING     -- for md5AuthProtocol: (SIZE (16))
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "An encoding of the party's private authentication
                      key which may be needed to support the
                      authentication protocol.  Although the value of
                      this variable may be altered by a management
                      operation (e.g., a SNMP Set-Request), its value
                      can never be retrieved by a management operation:
                      when read, the value of this variable is the zero





          McCloghrie/Davin/Galvin                              [Page 17]
\f





          Internet Draft          SNMP Party MIB           December 1991


                      length OCTET STRING.

                      The value of this variable represents the private
                      authentication key indirectly (i.e., NOT directly)
                      according to an encoding.  The encoding is the
                      exclusive-OR of the old private authentication key
                      prior to an alteration with the new private
                      authentication key after the alteration.  In
                      calculating the exclusive-OR, the old key is
                      padded with zeros if shorter than the new key.  If
                      no value for the old key exists, a zero-length
                      OCTET STRING is used in the calculation."
              DEFVAL  { ''h }     -- the empty string
              ::= { partySecretsEntry 2 }

          partySecretsPrivPrivate OBJECT-TYPE
              SYNTAX  OCTET STRING      -- for desPrivProtocol: (SIZE (16))
              ACCESS  read-write
              STATUS  mandatory

              DESCRIPTION
                      "An encoding of the party's private encryption key
                      which may be needed to support the privacy
                      protocol.  Although the value of this variable may
                      be altered by a management operation (e.g., a SNMP
                      Set-Request), its value can never be retrieved by
                      a management operation: when read, the value of
                      this variable is the zero length OCTET STRING.

                      The value of this variable represents the private
                      encryption key indirectly (i.e., NOT directly)
                      according to an encoding.  The encoding is the
                      exclusive-OR of the old private encryption key
                      prior to an alteration with the new private
                      encryption key after the alteration.  In
                      calculating the exclusive-OR, the old key is
                      padded with zeros if shorter than the new key.  If
                      no value for the old key exists, a zero-length
                      OCTET STRING is used in the calculation."
              DEFVAL  { ''h }     -- the empty string
              ::= { partySecretsEntry 3 }

          partySecretsStatus OBJECT-TYPE
              SYNTAX  INTEGER  { valid(1), invalid(2) }
              ACCESS  read-write





          McCloghrie/Davin/Galvin                              [Page 18]
\f





          Internet Draft          SNMP Party MIB           December 1991


              STATUS  mandatory
              DESCRIPTION
                      "The status of the locally-held information on a
                      particular SNMP party.

                      Setting an instance of this object to the value
                      'valid(1)' has the effect of ensuring that valid
                      local knowledge exists for the corresponding
                      party.  For valid local knowledge to exist, there
                      must be corresponding instances of each object in
                      this table and in the partyTable.  Thus, the
                      creation of instances in the partyTable (but not
                      in the aclTable or viewTable) occurs as a direct
                      result of the creation of instances in this table.

                      Setting an instance of this object to the value
                      'invalid(2)' has the effect of invalidating all
                      local knowledge of the corresponding party,
                      including the invalidating of any/all entries in
                      the partyTable, the partySecretsTable, the
                      aclTable, and the viewTable which reference said
                      party.

                      It is an implementation-specific matter as to
                      whether the agent removes an invalidated entry
                      from the table.  Accordingly, management stations
                      must be prepared to receive from agents tabular
                      information corresponding to entries not currently
                      in use.  Proper interpretation of such entries
                      requires examination of the relevant
                      partySecretsStatus object."
              DEFVAL  { valid }
              ::= { partySecretsEntry 4 }

















          McCloghrie/Davin/Galvin                              [Page 19]
\f





          Internet Draft          SNMP Party MIB           December 1991


          --  The SNMP Access Privileges Database

          --  Implementation of this group of objects is mandatory.
          --  It allows the SNMP itself to be used to configure new SNMP
          --  parties, or to manipulate the access privileges of existing
          --  parties.


          aclTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF AclEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "The access privileges database."
          ::= { partyAccess 1 }

          aclEntry OBJECT-TYPE
              SYNTAX  AclEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "The access privileges for a particular requesting
                      SNMP party in accessing a particular target SNMP
                      party."
              INDEX  { aclTarget, aclSubject }
              ::= { aclTable 1 }

          AclEntry ::=
              SEQUENCE {
                  aclTarget
                      Party,
                  aclSubject
                      Party,
                  aclPrivileges
                      INTEGER,
                  aclStatus
                      INTEGER
              }

          aclTarget OBJECT-TYPE
              SYNTAX  Party
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The target SNMP party whose performance of





          McCloghrie/Davin/Galvin                              [Page 20]
\f





          Internet Draft          SNMP Party MIB           December 1991


                      management operations is constrained by this set
                      of access privileges."
              ::= { aclEntry 1 }

          aclSubject OBJECT-TYPE
              SYNTAX  Party
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The subject SNMP party whose requests for
                      management operations to be performed is
                      constrained by this set of access privileges."
              ::= { aclEntry 2 }

          aclPrivileges OBJECT-TYPE
              SYNTAX  INTEGER (0..31)
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The access privileges which govern what
                      management operations a particular target party
                      may perform when requested by a particular subject
                      party.  These privileges are specified as a sum of
                      values, where each value specifies a SNMP PDU type
                      by which the subject party may request a permitted
                      operation.  The value for a particular PDU type is
                      computed as 2 raised to the value of the ASN.1
                      context-specific tag for the appropriate SNMP PDU
                      type.  Thus, the values (for the tags defined in
                      RFC 1157) are:

                       Get         :   1
                       GetNext     :   2
                       GetResponse :   4
                       Set         :   8
                       Trap        :  16

                      The null set is represented by the value zero."
              DEFVAL  { 3 }      -- Get & Get-Next
              ::= { aclEntry 3 }

          aclStatus OBJECT-TYPE
              SYNTAX  INTEGER  { valid(1), invalid(2) }
              ACCESS  read-write
              STATUS  mandatory





          McCloghrie/Davin/Galvin                              [Page 21]
\f





          Internet Draft          SNMP Party MIB           December 1991


              DESCRIPTION
                      "The status of the access privileges for a
                      particular requesting SNMP party in accessing a
                      particular target SNMP party.  Setting an instance
                      of this object to the value 'invalid(2)' has the
                      effect of invalidating the corresponding access
                      privileges.

                      It is an implementation-specific matter as to
                      whether the agent removes an invalidated entry
                      from the table.  Accordingly, management stations
                      must be prepared to receive from agents tabular
                      information corresponding to entries not currently
                      in use.  Proper interpretation of such entries
                      requires examination of the relevant aclStatus
                      object."
              DEFVAL  { valid }
              ::= { aclEntry 4 }




          --   The MIB View Database

          --  Implementation of this group of objects is mandatory.
          --  It allows the SNMP itself to be used to configure new SNMP
          --  parties, or to manipulate the MIB views of existing parties.


          viewTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF ViewEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "The table contained in the local database which
                      defines local MIB views. Each SNMP party has a
                      single MIB view which is defined by two
                      collections of view subtrees: the included view
                      subtrees, and the excluded view subtrees.  Every
                      such subtree, both included and excluded, is
                      defined in this table.

                      To determine if a particular object instance is in
                      a particular SNMP party's MIB view, compare the
                      object instance's Object Identifier with each





          McCloghrie/Davin/Galvin                              [Page 22]
\f





          Internet Draft          SNMP Party MIB           December 1991


                      entry (for this party) in this table.  If none
                      match, then the object instance is not in the MIB
                      view.  If one or more match, then the object
                      instance is included in, or excluded from, the MIB
                      view according to the value of viewStatus in the
                      entry whose value of viewSubtree has the most
                      sub-identifiers.  If multiple entries match and
                      have the same number of sub-identifiers, then the
                      lexicographically greatest instance of viewStatus
                      determines the inclusion or exclusion.

                      An object instance's Object Identifier X matches
                      an entry in this table when the number of sub-
                      identifiers in X is at least as many as in the
                      value of viewSubtree for the entry, and each sub-
                      identifier in the value of viewSubtree matches its
                      corresponding sub-identifier in X. Two sub-
                      identifiers match either if the corresponding bit
                      of viewMask is zero (the 'wild card' value), or if
                      they are equal.

                      Due to this 'wild card' capability, we introduce
                      the term, a 'family' of view subtrees, to refer to
                      the set of subtrees defined by a particular
                      combination of values of viewSubtree and viewMask.
                      In the case where no 'wild card' is defined in
                      viewMask, the family of view subtrees reduces to a
                      single view subtree."
          ::= { partyViews 1 }

          viewEntry OBJECT-TYPE
              SYNTAX  ViewEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "Information on a particular family of view
                      subtrees included in or excluded from a particular
                      SNMP party's MIB view."
              INDEX  { viewParty, viewSubtree }
              ::= { viewTable 1 }

          ViewEntry ::=
              SEQUENCE {
                  viewParty
                      Party,





          McCloghrie/Davin/Galvin                              [Page 23]
\f





          Internet Draft          SNMP Party MIB           December 1991


                  viewSubtree
                      OBJECT IDENTIFIER,
                  viewStatus
                      INTEGER,
                  viewMask
                      OCTET STRING
              }

          viewParty  OBJECT-TYPE
              SYNTAX  Party
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The SNMP party whose single MIB view includes or
                      excludes a particular family of view subtrees."
              ::= { viewEntry 1 }

          viewSubtree OBJECT-TYPE
              SYNTAX  OBJECT IDENTIFIER
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The view subtree which, in combination with the
                      corresponding instance of viewMask, defines a
                      family of view subtrees.  This family is included
                      in, or excluded from the particular SNMP party's
                      MIB view, according to the value of the
                      corresponding instance of viewStatus."
              ::= { viewEntry 2 }

          viewStatus OBJECT-TYPE
              SYNTAX  INTEGER  {
                          included(1),
                          excluded(2),
                          invalid(3)
                      }
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The status of a particular family of view
                      subtrees within the particular SNMP party's MIB
                      view.  The value 'included(1)' indicates that the
                      corresponding instances of viewSubtree and
                      viewMask define a family of view subtrees included
                      in the MIB view.  The  value 'excluded(2)'





          McCloghrie/Davin/Galvin                              [Page 24]
\f





          Internet Draft          SNMP Party MIB           December 1991


                      indicates that the corresponding instances of
                      viewSubtree and viewMask define a family of view
                      subtrees excluded from the MIB view.

                      Setting an instance of this object to the value
                      'invalid(2)' has the effect of invalidating the
                      presence or absence of the corresponding family of
                      view subtrees in the corresponding SNMP party's
                      MIB view.

                      It is an implementation-specific matter as to
                      whether the agent removes an invalidated entry
                      from the table.  Accordingly, management stations
                      must be prepared to receive from agents tabular
                      information corresponding to entries not currently
                      in use. Proper interpretation of such entries
                      requires examination of the relevant viewStatus
                      object."
              DEFVAL  { included }
              ::= { viewEntry 3 }

          viewMask  OBJECT-TYPE
              SYNTAX  OCTET STRING (SIZE (0..16))
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The bit mask which, in combination with the
                      corresponding instance of viewSubtree, defines a
                      family of view subtrees.

                      Each bit of this bit mask corresponds to a sub-
                      identifier of viewSubtree, with the most
                      significant bit of the i-th octet of this octet
                      string value corresponding to the (8*i - 7)-th
                      sub-identifier, and the least significant bit of
                      the i-th octet of this octet string corresponding
                      to the (8*i)-th sub-identifier.

                      Each bit of this bit mask specifies whether or not
                      the corresponding sub-identifiers must match when
                      determining if an Object Identifier is in this
                      family of view subtrees; a '1' indicates that an
                      exact match must occur; a '0' indicates 'wild
                      card', i.e., any sub-identifier value matches.






          McCloghrie/Davin/Galvin                              [Page 25]
\f





          Internet Draft          SNMP Party MIB           December 1991


                      Thus, the Object Identifier X of an object
                      instance is contained in a family of view subtrees
                      if the following criteria is met:

                           for each sub-identifier of the value of
                           viewSubtree, either:

                                the i-th bit of viewMask is 0, or

                                the i-th sub-identifier of X is equal to
                                the i-th sub-identifier of the value of
                                viewSubtree.

                      If the value of this bit mask is M bits long and
                      there are more than M sub-identifiers in the
                      corresponding instance of viewSubtree, then the
                      bit mask is extended with 1's to be the required
                      length.

                      Note that when the value of this object is the
                      zero-length string, this extension rule results in
                      a mask of all-1's being used (i.e., no 'wild
                      card'), and the family of view subtrees is the one
                      view subtree uniquely identified by the
                      corresponding instance of viewSubtree."
              DEFVAL  { ''h }
              ::= { viewEntry 4 }


          END




















          McCloghrie/Davin/Galvin                              [Page 26]
\f





          Internet Draft          SNMP Party MIB           December 1991


          7.  Acknowledgments

          This document was produced on behalf of the SNMP Security
          Working Group of the Internet Engineering Task Force.  The
          authors wish to thank the members of the working group, and
          others who contributed to this effort.












































          McCloghrie/Davin/Galvin                              [Page 27]
\f





          Internet Draft          SNMP Party MIB           December 1991


          8.  References

          [1]  M.T. Rose and K. McCloghrie, Structure and Identification
               of Management Information for TCP/IP-based internets,
               Internet Working Group Request for Comments 1155.
               Network Information Center, SRI International, Menlo
               Park, California, (May, 1990).

          [2]  K. McCloghrie and M.T. Rose, Management Information Base
               for Network Management of TCP/IP-based internets,
               Internet Working Group Request for Comments 1156.
               Network Information Center, SRI International, Menlo
               Park, California, (May, 1990).

          [3]  J.D. Case, M.S. Fedor, M.L. Schoffstall, and J.R. Davin,
               Simple Network Management Protocol, Internet Working
               Group Request for Comments 1157.  Network Information
               Center, SRI International, Menlo Park, California, (May,
               1990).

          [4]  K. McCloghrie, M.T. Rose (editors), Management
               Information Base for Network Management of TCP/IP-based
               internets, Internet Working Group Request for Comments
               1213.  Network Information Center, SRI International,
               Menlo Park, California, (March, 1991).

          [5]  Information processing systems - Open Systems
               Interconnection - Specification of Abstract Syntax
               Notation One (ASN.1), International Organization for
               Standardization.  International Standard 8824, (December,
               1987).

          [6]  Information processing systems - Open Systems
               Interconnection - Specification of Basic Encoding Rules
               for Abstract Notation One (ASN.1), International
               Organization for Standardization.  International Standard
               8825, (December, 1987).

          [7]  M.T. Rose, K. McCloghrie (editors), Concise MIB
               Definitions, Internet Working Group Request for Comments
               1212.  Network Information Center, SRI International,
               Menlo Park, California, (March, 1991).

          [8]  J.R. Davin, K. McCloghrie, J.M. Galvin, SNMP
               Administrative Model, RFC Xxxx (in preparation),





          McCloghrie/Davin/Galvin                              [Page 28]
\f





          Internet Draft          SNMP Party MIB           December 1991


               (December, 1991).

          [9]  J.M. Galvin, K. McCloghrie, J.R. Davin, SNMP Security
               Protocol, RFC Yyyy (in preparation), (December, 1991).














































          McCloghrie/Davin/Galvin                              [Page 29]
\f





          Internet Draft          SNMP Party MIB           December 1991


          Table of Contents


          1 Abstract ..............................................    1
          2 Status of this Memo ...................................    1
          3 The Network Management Framework ......................    2
          4 Objects ...............................................    2
          4.1 Format of Definitions ...............................    3
          5 Overview ..............................................    3
          5.1 Structure ...........................................    3
          5.2 Instance Identifiers ................................    4
          5.3 Textual Conventions .................................    4
          6 Definitions ...........................................    5
          6.1 The SNMP Party Public Database ......................   11
          6.2 The SNMP Party Secrets Database .....................   16
          6.3 The SNMP Access Privileges Database .................   20
          6.4 The MIB View Database ...............................   22
          7 Acknowledgments .......................................   27
          8 References ............................................   28































          McCloghrie/Davin/Galvin                              [Page 30]