home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft_ietf_q_t / draft-ietf-snmpv3-acm-00.txt < prev    next >
Text File  |  1997-06-19  |  61KB  |  1,887 lines

  1.                  Access Control Model for version 3 of the
  2.                 Simple Network Management Protocol (SNMPv3)
  3.  
  4.                             18 June 1997
  5.  
  6.  
  7.                              Bert Wijnen
  8.                        IBM T. J. Watson Research
  9.                           wijnen@vnet.ibm.com
  10.  
  11.                             Randy Presuhn
  12.                           BMC Software, Inc.
  13.                            rpresuhn@bmc.com
  14.  
  15.                             Keith McCloghrie
  16.                           Cisco Systems, Inc.
  17.                              kzm@cisco.com
  18.  
  19.  
  20.                     <draft-ietf-snmpv3-acm-00.txt>
  21.  
  22.  
  23.                           Status of this Memo
  24.  
  25. This document is an Internet-Draft.  Internet-Drafts are working
  26. documents of the Internet Engineering Task Force (IETF), its areas,
  27. and its working groups.  Note that other groups may also distribute
  28. working documents as Internet-Drafts.
  29.  
  30. Internet-Drafts are draft documents valid for a maximum of six months
  31. and may be updated, replaced, or obsoleted by other documents at any
  32. time.  It is inappropriate to use Internet- Drafts as reference
  33. material or to cite them other than as ``work in progress.''
  34.  
  35. To learn the current status of any Internet-Draft, please check the
  36. ``1id-abstracts.txt'' listing contained in the Internet- Drafts Shadow
  37. Directories on ds.internic.net (US East Coast), nic.nordu.net (Europe),
  38. ftp.isi.edu (US West Coast), or munnari.oz.au (Pacific Rim).
  39.  
  40.  
  41.  
  42.                           Abstract
  43.  
  44. This document describes the Access Control Model (ACM) for SNMP
  45. version 3 for use in the SNMP architecture [SNMP-ARCH].  This
  46. document defines the Elements of Procedure for applying access
  47. control to management information.  This document also includes
  48. a MIB for remotely monitoring/managing the configuration parameters
  49. for this ACM.
  50.  
  51.  
  52.  
  53.  
  54.  
  55. Wijnen/Presuhn/McCloghrie      Expires December 1997           [Page  1]
  56.  
  57. Draft           Access Control Model (ACM) for SNMPv3          June 1997
  58.  
  59.  
  60. 0.1 Issues
  61.   - Where do we do the miId to groupName mapping
  62.   - Should we use UTF-8 for human readable names like
  63.     contextName, viewName, groupName etc.
  64.     We now use a SnmpAdminString TC which still needs to be defined.
  65.   - acknowledgements needs expansion
  66.   - Do we want to mandate a standard out-of-the-box configuration.
  67.   - How do we return a proper indication of the error-counter
  68.     to be used in a possible reportPDU.
  69.   - Do we keep the statistics (error counters) here or in MPC
  70.  
  71. 0.2  Change Log
  72.  
  73. [version 3.1] - This is the June 18 version.
  74.   - remove old (resolved) issues
  75.   - list new issues
  76.   - corrections/additions by myself (bert)
  77.   - corrections based on dbh comments
  78.   - removed change log of before 1st interim meeting.
  79.  
  80. [version 3.0] - this is the first ACM doc (June 12 version).
  81.   - Modifications as agreed at 1st Interim Meeting
  82.     - Make Access Control Module a separate document
  83.     - Use viewName as index instead of an integer
  84.     - add notify_view
  85.     - use SnmpAdminString
  86.   - Other Modification
  87.     - use miId and secModel
  88.     - add groupTable
  89.     - add/rename Stats counters
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114. Wijnen/Presuhn/McCloghrie      Expires December 1997           [Page  2]
  115.  
  116. Draft           Access Control Model (ACM) for SNMPv3          June 1997
  117.  
  118.  
  119. 1.  Introduction
  120.  
  121. The Architecture for describing Internet Management Frameworks
  122. is composed of multiple subsystems:
  123.   1) a message processing and control subsystem,
  124.   2) a security subsystem,
  125.   3) an access control subsystem, and
  126.   4) orangelets.
  127.  
  128. It is important to understand the SNMP architecture and the
  129. terminology of the architecture to understand where the model
  130. described in this document fits into the architecture and interacts
  131. with other subsystems within the architecture.  The reader is
  132. expected to have read and understood the description of the SNMP
  133. architecture, as defined in [SNMP-ARCH].
  134.  
  135. The Access Control subsystem of an SNMP engine provides services
  136. to orangelets so that these orangelets can check if access to an
  137. object is allowed or not.
  138.  
  139. An Access Control model has the responsibility for checking if
  140. a specific type of access (read, write, notify) to a particular
  141. object (instance) is allowed.
  142.  
  143. It is the purpose of this document to define a specific model of
  144. the Access Control subsystem, designated the SNMP version 3 Access
  145. Control model.
  146.  
  147. 1.2  Access Control
  148.  
  149. Access Control occurs (either implicit or explicit) in an SNMP
  150. engine acting in an agent role when processing SNMP request
  151. messages from an SNMP engine acting in a manager role.  These
  152. request messages include these types of operations: GetRequest,
  153. GetNextRequest, GetBulkRequest, and SetRequest operations.
  154.  
  155. Access Control also occurs in an SNMP engine when an SNMP
  156. notification message is generated. These notification messages
  157. include these types of operations: InformRequest and SNMPv2-trap
  158. operations.
  159.  
  160. Access Control via the Access Control module only occurs if the
  161. orangelet that processes or generates the operation explicitly
  162. calls upon the access control service for checking of access
  163. rights.  So it is the responsibility of an orangelet to make
  164. the proper calls for access checking.
  165.  
  166. 1.3  Local Configuration Datastore
  167.  
  168. To implement the model described in this document, each SNMP
  169. engine needs to retain its own set of information about access
  170.  
  171.  
  172.  
  173. Wijnen/Presuhn/McCloghrie      Expires December 1997           [Page  3]
  174.  
  175. Draft           Access Control Model (ACM) for SNMPv3          June 1997
  176.  
  177.  
  178. rights and policies, and the like.  This set of information is
  179. called the SNMP engine's Local Configuration Datastore (LCD)
  180. because it is locally-stored information.
  181.  
  182. In order to allow an SNMP engine's LCD to be remotely configured,
  183. portions of the LCD need to be accessible as managed objects.
  184. A MIB module, the SNMPv3 Access Control Model Configuration MIB,
  185. which defines these managed object types is included in this
  186. document.
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232. Wijnen/Presuhn/McCloghrie      Expires December 1997           [Page  4]
  233.  
  234. Draft           Access Control Model (ACM) for SNMPv3          June 1997
  235.  
  236.  
  237. 2.  Elements of the Model
  238.  
  239. This section contains definitions to realize the access control
  240. applied by this Access Control Model.
  241.  
  242. 2.1  Groups
  243.  
  244. A groupName identifies a group (set) of zero or more
  245. securityIdentities on whose behalf SNMP management objects can be
  246. accessed.  The Access Control module assumes the securityIdentity
  247. has already been authenticated as needed and provides no
  248. authentication by itself.
  249.  
  250. This SNMPv3 Access Control model requires the securityModel and the
  251. securityIdentity to be passed as input to the Access Control module
  252. when a request is made to check for access rights.
  253.  
  254. 2.2  Level of Security (LoS)
  255.  
  256. Different access rights can be defined for different Levels of
  257. Security.  The LoS identifies the Level of Security that will be
  258. assumed when checking for access rights.
  259.  
  260. This Access Control Model requires the LoS to be passed as input
  261. to the Access Control module when a request is made to check access
  262. rights.
  263.  
  264. 2.3  Contexts
  265.  
  266. An SNMP context is a collection of management information
  267. accessible by an SNMP agent.  An item of management information
  268. may exist in more than one context.  An SNMP agent potentially
  269. has access to many contexts.
  270.  
  271. 2.4  Access Policy
  272.  
  273. This Access Control model determines the access rights of groups
  274. (representing zero, one or more securityIdentities
  275. which have the same access rights).  For a particular context
  276. (contextName) to which a group (groupName) has access using
  277. a particular Level of Security (LoS), that group's access rights
  278. are given by a read-view, a write-view and a notify-view.
  279.  
  280. The read-view is the set of object instances authorized
  281. for the group when reading objects.  Reading objects occurs
  282. when processing a retrieval (Get, GetNext, GetBulk) operation.
  283.  
  284. The write-view is the set of object instances authorized for
  285. the group when writing objects.  Writing objects occurs when
  286. processing a Set operation.
  287.  
  288.  
  289.  
  290.  
  291. Wijnen/Presuhn/McCloghrie      Expires December 1997           [Page  5]
  292.  
  293. Draft           Access Control Model (ACM) for SNMPv3          June 1997
  294.  
  295.  
  296. The notify-view is the set of object instances authorized for
  297. the group when sending objects in a notification.  Such occurs
  298. when sending a notification (Inform or Trap).
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  
  340.  
  341.  
  342.  
  343.  
  344.  
  345.  
  346.  
  347.  
  348.  
  349.  
  350. Wijnen/Presuhn/McCloghrie      Expires December 1997           [Page  6]
  351.  
  352. Draft           Access Control Model (ACM) for SNMPv3          June 1997
  353.  
  354.  
  355. 3.  Elements of Procedure
  356.  
  357. This section describes the procedures followed by the Access Control
  358. module that implements this Access Control Model when checking access
  359. rights as requested by an orangelet.
  360.  
  361. The abstract service interface into the access control service is:
  362.  
  363.    Boolean  is_access_allowed ( secModel, miId, LoS,
  364.                                 viewType, contextName,
  365.                                 variableName
  366.                               )
  367.  
  368. Where:
  369.  
  370.   Boolean       - FALSE if no access is allowed.
  371.                   TRUE  if access is allowed.
  372.   secModel      - security model to which the miId belongs.
  373.   miId          - security model independent ID (securityIdentity).
  374.   LoS           - Level of Security
  375.   viewType      - view to be checked (read, write or notify).
  376.   contextName   - context in which the variable_name is accessed.
  377.   variableName  - variable that is accessed.
  378.  
  379. 3.1  Processing the is_access_allowed service request
  380.  
  381. This section describes the procedure followed by the Access Control
  382. module whenever it receives a request to check if access is allowed.
  383.  
  384. (1)  The LCD (snmpV3AcContextTable) is consulted for information about
  385.      the SNMP context identified by the contextName.  If information
  386.      about this SNMP context is absent from the LCD, then the
  387.      snmpV3AcStatsUnknownContexts counter is incremented, and FALSE
  388.      is returned to the caller.
  389.  
  390. (2)  The LCD (snmpV3AcGroupTable) is consulted for information about
  391.      the security model (secModel) and securityIdentity (miId).  If
  392.      information about this combination is absent from the LCD, then
  393.      the snmpV3AcStatsNoGroups counter is incremented, and FALSE is
  394.      returned to the caller.
  395.  
  396. (3)  The LCD (snmpV3AcTable) is consulted for information about
  397.      the contextName, groupName and LoS.  If information about this
  398.      combination is absent from the LCD, then the snmpV3AcStatsNoViews
  399.      counter is incremented, and FALSE is returned to the caller.
  400.  
  401. (4)  If the SNMPv2 viewType is the read, then the read-view is used
  402.      for checking if the variableName is accessible.
  403.      If access is allowed, then TRUE is returned to the caller.
  404.      Otherwise the snmpV3AcStatsUnauthorizedAccesses counter is
  405.      incremented and FALSE is returned to the caller.
  406.  
  407.  
  408.  
  409. Wijnen/Presuhn/McCloghrie      Expires December 1997           [Page  7]
  410.  
  411. Draft           Access Control Model (ACM) for SNMPv3          June 1997
  412.  
  413.  
  414.  
  415. (5)  If the SNMPv2 viewType is the write, then the write-view is used
  416.      for checking if the variableName is accessible.
  417.      If access is allowed, then TRUE is returned to the caller.
  418.      Otherwise the snmpV3AcStatsUnauthorizedAccesses counter is
  419.      incremented and FALSE is returned to the caller.
  420.  
  421. (6)  If the SNMPv2 viewType is the notify, then the notify-view is
  422.      used for checking if the variableName is accessible.
  423.      If access is allowed, then TRUE is returned to the caller.
  424.      Otherwise the snmpV3AcStatsUnauthorizedAccesses counter is
  425.      incremented and FALSE is returned to the caller.
  426.  
  427. Editor's note:
  428.    We decided that a boolean would be returned. Maybe it is better
  429.    to return a status_code which can have one of these values:
  430.        otherError
  431.        accessAllowed
  432.        unknownContext
  433.        noGroup
  434.        noView
  435.        accessNotAllowed
  436.    Then the caller can generate the appropriate reportPDU (or tell the
  437.    MPC to generate the appropriate reportPDU).
  438. End Editor's note
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468. Wijnen/Presuhn/McCloghrie      Expires December 1997           [Page  8]
  469.  
  470. Draft           Access Control Model (ACM) for SNMPv3          June 1997
  471.  
  472.  
  473. 4.  Definitions
  474.  
  475. SNMPV3-AC-MIB DEFINITIONS ::= BEGIN
  476.  
  477. IMPORTS
  478.     Counter32, Unsigned32, BITS,
  479.     MODULE-IDENTITY, OBJECT-TYPE, snmpModules  FROM SNMPv2-SMI
  480.     TEXTUAL-CONVENTION, TestAndIncr,
  481.     RowStatus, StorageType,                    FROM SNMPv2-TC
  482.     MODULE-COMPLIANCE, OBJECT-GROUP            FROM SNMPv2-CONF
  483.     SnmpAdminString,
  484.     SnmpLoS,
  485.     SnmpSecurityModel                          FROM SNMPv3-MIB;
  486.  
  487. snmpV3AcMIB MODULE-IDENTITY
  488.     LAST-UPDATED "9706180000Z"     -- 18 June 1997, midnight
  489.     ORGANIZATION "SNMPv3 Working Group"
  490.     CONTACT-INFO "WG-email:   snmpv3@tis.com
  491.                   Subscribe:  majordomo@tis.com
  492.                               In msg body:  subscribe snmpv3
  493.  
  494.                   Chair:      Russ Mundy
  495.                               Trusted Information Systems
  496.                   postal:     3060 Washington Rd
  497.                               Glenwood MD 21738
  498.                   email:      mundy@tis.com
  499.                   phone:      301-854-6889
  500.  
  501.                   Co-editor:  Bert Wijnen
  502.                               IBM T.J. Watson Research
  503.                   postal:     Schagen 33
  504.                               3461 GL Linschoten
  505.                               Netherlands
  506.                   email:      wijnen@vnet.ibm.com
  507.                   phone:      +31-348-412-498
  508.  
  509.                   Co-editor:  Randy Presuhn
  510.                               BMC Software, Inc
  511.                   postal:     1190 Saratoga Avenue, Suite 130
  512.                               San Jose, CA  95129-3433
  513.                               USA
  514.                   email:      rpresuhn@bmc.com
  515.                   phone:      +1-408-556-0720
  516.  
  517.                   Co-editor:  Keith McCloghrie
  518.                               Cisco Systems, Inc.
  519.                   postal:     170 West Tasman Drive
  520.                               San Jose, CA  95134-1706
  521.                               USA
  522.                   email:      kzm@cisco.com
  523.                   phone:      +1-408-526-5260
  524.  
  525.  
  526.  
  527. Wijnen/Presuhn/McCloghrie      Expires December 1997           [Page  9]
  528.  
  529. Draft           Access Control Model (ACM) for SNMPv3          June 1997
  530.  
  531.  
  532.                  "
  533.  
  534.     DESCRIPTION  "The management information definitions for the
  535.                   SNMPv3 Access Control Model.
  536.                  "
  537.     ::= { snmpModules 99 }
  538.  
  539. -- Administrative assignments ****************************************
  540.  
  541. snmpV3AcMIBObjects      OBJECT IDENTIFIER ::= { snmpV3AcMIB 1 }
  542. snmpV3AcMIBConformance  OBJECT IDENTIFIER ::= { snmpV3AcMIB 2 }
  543.  
  544. -- Statistics for Access Control Checking ****************************
  545.  
  546. snmpV3AcStats OBJECT IDENTIFIER ::= { snmpV3AcMIBObjects 1 }
  547.  
  548. snmpV3AcStatsUnknownContexts OBJECT-TYPE
  549.     SYNTAX       Counter32
  550.     MAX-ACCESS   read-only
  551.     STATUS       current
  552.     DESCRIPTION "The total number of packets received by the SNMP
  553.                  engine which were dropped because they referenced a
  554.                  context that was not known to the engine.
  555.                 "
  556.     ::= { snmpV3AcStats 1 }
  557.  
  558. snmpV3AcStatsNoGroups OBJECT-TYPE
  559.     SYNTAX       Counter32
  560.     MAX-ACCESS   read-only
  561.     STATUS       current
  562.     DESCRIPTION "The total number of packets received by the SNMP
  563.                  engine which were dropped because the security model
  564.                  independent ID (securityIdentity, miId) did not map
  565.                  a group in the snmpV3AcGroupTable.
  566.                 "
  567.     ::= { snmpV3AcStats 2 }
  568.  
  569. snmpV3AcStatsNoViews OBJECT-TYPE
  570.     SYNTAX       Counter32
  571.     MAX-ACCESS   read-only
  572.     STATUS       current
  573.     DESCRIPTION "The total number of packets received by the SNMP
  574.                  engine which were dropped because the combination
  575.                  of contextName, groupName and LoS does not have
  576.                  an entry in the snmpV3AcTable at all.
  577.                 "
  578.     ::= { snmpV3AcStats 3 }
  579.  
  580. snmpV3AcStatsUnauthorizedAccesses OBJECT-TYPE
  581.     SYNTAX       Counter32
  582.     MAX-ACCESS   read-only
  583.  
  584.  
  585.  
  586. Wijnen/Presuhn/McCloghrie      Expires December 1997           [Page 10]
  587.  
  588. Draft           Access Control Model (ACM) for SNMPv3          June 1997
  589.  
  590.  
  591.     STATUS       current
  592.     DESCRIPTION "The total number of packets received by the SNMP
  593.                  engine which were dropped because the type of access
  594.                  requested is invalid or not authorized.
  595.                 "
  596.     ::= { snmpV3AcStats 4 }
  597.  
  598. -- Information about Mapping of miId into a group ********************
  599.  
  600. -- Editor's question:
  601. --     I have included the mapping table for the miId into a
  602. --     groupName into this MIB. I think that keeps the acces
  603. --     control nicely grouped together. Comments?
  604. -- End Editor's question.
  605.  
  606. snmpV3AcGroupTable OBJECT-TYPE
  607.     SYNTAX       SEQUENCE OF SnmpV3AcGroupEntry
  608.     MAX-ACCESS   not-accessible
  609.     STATUS       current
  610.     DESCRIPTION "The table that maps the Security Model Independent ID
  611.                  into a groupName which defines an acces control
  612.                  policy for a group of security identities.
  613.                 "
  614.     ::= { snmpV3AcMIBObjects 2 }
  615.  
  616. snmpV3AcGroupEntry OBJECT-TYPE
  617.     SYNTAX       SnmpV3AcGroupEntry
  618.     MAX-ACCESS   not-accessible
  619.     STATUS       current
  620.     DESCRIPTION "An entry in this table maps a miId into a groupName."
  621.     INDEX       { snmpV3AcSecModel,
  622.                   snmpV3AcMiId
  623.                 }
  624.     ::= { snmpV3AcGroupTable 1 }
  625.  
  626. SnmpV3AcGroupEntry ::= SEQUENCE
  627.     {
  628.         snmpV3AcSecModel           SnmpV3SecurityModel,
  629.         snmpV3AcMiId               SnmpV3AdminString,
  630.         snmpV3AcGroupName          SnmpV3AdminString,
  631.         snmpV3AcGroupStorageType   StorageType,
  632.         snmpV3AcGroupStatus        RowStatus
  633.     }
  634.  
  635. snmpV3AcSecModel OBJECT-TYPE
  636.     SYNTAX       SnmpV3SecurityModel
  637.     MAX-ACCESS   not-accessible
  638.     STATUS       current
  639.     DESCRIPTION "The security model, which is the first index in this
  640.                  table.
  641.                 "
  642.  
  643.  
  644.  
  645. Wijnen/Presuhn/McCloghrie      Expires December 1997           [Page 11]
  646.  
  647. Draft           Access Control Model (ACM) for SNMPv3          June 1997
  648.  
  649.  
  650.     ::= { snmpV3AcGroupEntry 1 }
  651.  
  652. snmpV3AcMiId     OBJECT-TYPE
  653.     SYNTAX       SnmpV3AdminString
  654.     MAX-ACCESS   not-accessible
  655.     STATUS       current
  656.     DESCRIPTION "The Security Model Independent ID (miId) for a
  657.                  particular security identity. It is used as a second
  658.                  index in this table.
  659.                 "
  660.     ::= { snmpV3AcGroupEntry 2 }
  661.  
  662. snmpV3AcGroupName OBJECT-TYPE
  663.     SYNTAX       SnmpV3AdminString
  664.     MAX-ACCESS   read-create
  665.     STATUS       current
  666.     DESCRIPTION "The groupName to which this miId belongs. This
  667.                  groupName represents a access control policy and is
  668.                  used as an index in the snmpV3AcTable.
  669.                 "
  670.     ::= { snmpV3AcGroupEntry 3 }
  671.  
  672. snmpV3AcGroupStorageType OBJECT-TYPE
  673.     SYNTAX       StorageType
  674.     MAX-ACCESS   read-create
  675.     STATUS       current
  676.     DESCRIPTION "The storage type for this conceptual row.
  677.                  Conceptual rows having the value 'permanent'
  678.                  need not allow write-access to any columnar
  679.                  objects in the row.
  680.                 "
  681.     DEFVAL      { nonVolatile }
  682.     ::= { snmpV3AcGroupEntry 6 }
  683.  
  684. snmpV3AcGroupStatus OBJECT-TYPE
  685.     SYNTAX       RowStatus
  686.     MAX-ACCESS   read-create
  687.     STATUS       current
  688.     DESCRIPTION "The status of this conceptual row.
  689.  
  690.                  For those columnar objects which permit write-access,
  691.                  their value in an existing conceptual row can be
  692.                  changed irrespective of the value of
  693.                  snmpV3AcGroupStatus for that row.
  694.                 "
  695.     ::= { snmpV3AcGroupEntry 7 }
  696.  
  697. -- Information about Local Contexts **********************************
  698.  
  699. snmpV3AcContextTable OBJECT-TYPE
  700.     SYNTAX       SEQUENCE OF SnmpV3AcContextEntry
  701.  
  702.  
  703.  
  704. Wijnen/Presuhn/McCloghrie      Expires December 1997           [Page 12]
  705.  
  706. Draft           Access Control Model (ACM) for SNMPv3          June 1997
  707.  
  708.  
  709.     MAX-ACCESS   not-accessible
  710.     STATUS       current
  711.     DESCRIPTION "The table of locally available contexts. If a context
  712.                  is listed in this table that does not mean that
  713.                  access to this context has been defined in the
  714.                  snmpV3AcTable. It just means that the context exists
  715.                  and that MIB objects may exist in this context.
  716.  
  717.                  This table must be made accessible via the default
  718.                  context.
  719.  
  720.                  This table is read-only meaning that SNMP engines
  721.                  in a manager role cannot configure contexts.
  722.  
  723.                  Instead the table is meant to provide input to SNMP
  724.                  engines in a manager role such that they can
  725.                  properly configure the snmpV3AcTable to control
  726.                  access to all contexts in an SNMP engine operating
  727.                  in an agent role.
  728.                 "
  729.     ::= { snmpV3AcMIBObjects 3 }
  730.  
  731. snmpV3AcContextEntry OBJECT-TYPE
  732.     SYNTAX       SnmpV3AcContextEntry
  733.     MAX-ACCESS   not-accessible
  734.     STATUS       current
  735.     DESCRIPTION "Information about a particular context."
  736.     INDEX       { snmpV3AcContextName }
  737.     ::= { snmpV3AcContextTable 1 }
  738.  
  739. SnmpV3AcContextEntry ::= SEQUENCE
  740.     {
  741.         snmpV3AcContextName        SnmpV3AdminString
  742.     }
  743.  
  744. snmpV3AcContextName OBJECT-TYPE
  745.     SYNTAX       SnmpV3AdminString (SIZE(0..32))
  746.     MAX-ACCESS   read-only
  747.     STATUS       current
  748.     DESCRIPTION "A textual name uniquely identifying a particular
  749.                  context on a particular agent.
  750.                 "
  751.     ::= { snmpV3AcContextEntry 1 }
  752.  
  753. -- Information about Access Rights ***********************************
  754.  
  755. snmpV3AcTable    OBJECT-TYPE
  756.     SYNTAX       SEQUENCE OF SnmpV3AcEntry
  757.     MAX-ACCESS   not-accessible
  758.     STATUS       current
  759.     DESCRIPTION "The table of group access rights configured in the
  760.  
  761.  
  762.  
  763. Wijnen/Presuhn/McCloghrie      Expires December 1997           [Page 13]
  764.  
  765. Draft           Access Control Model (ACM) for SNMPv3          June 1997
  766.  
  767.  
  768.                  local configuration datastore (LCD).
  769.  
  770.                  Each entry is indexed by a contextName, a GroupName
  771.                  and a Level of Security (LoS). When checking if access
  772.                  is allowed, then one entry from this table needs to
  773.                  be selected and the proper viewName from that entry
  774.                  must be used for access control checking.
  775.  
  776.                  To select the proper entry, first a match must be
  777.                  found for the contextName. The procedure for this
  778.                  process depends on the value of snmpV3AcContextMatch:
  779.                  - exact
  780.                    In this case, the snmpV3AcContextName represents
  781.                    an exact contextName, and so the name must match
  782.                    exactly.
  783.                  - prefix
  784.                    In this case, the snmpV3AcContextName represents
  785.                    a prefix of a contextName, so that (a limited from
  786.                    of) wildcarding is possible.  The value of
  787.                    snmpV3AcContextName must match with the first part
  788.                    of the contextName to which access is requested.
  789.  
  790.                    For example, if we use a prefix contextName
  791.                    'repeater', then both contexts named 'repeater1'
  792.                    and 'repeater2' are accessible.
  793.  
  794.                  In case multiple entries match, then the entry with
  795.                  the longest snmpV3AcContextName wins.
  796.  
  797.                  The second match to make is for the groupName. Here
  798.                  an exact match must be found.
  799.  
  800.                  The 3rd match to make is for the LoS. Here an exact
  801.                  match must be found.
  802.                 "
  803. -- Editors Question to Keith:
  804. -- I have removed snmpV3AcContextName from the AcTable.... I was
  805. -- thinking that it has the same semantics as snmpV3AcContextName
  806. -- in the SnmpV3AcContextTable above. But now that we also allow
  807. -- for wildcarding here, now I am not so sure that the semantics
  808. -- are indeed the same. Should I define a snmpV2AcContextPrefix
  809. -- instead?
  810. -- End Editors Question
  811.     ::= { snmpV3AcMIBObjects 4 }
  812.  
  813. snmpV3AcEntry    OBJECT-TYPE
  814.     SYNTAX       SnmpV3AcEntry
  815.     MAX-ACCESS   not-accessible
  816.     STATUS       current
  817.     DESCRIPTION "An access right configured in the local configuration
  818.                  datastore (LCD) authorizing access to an SNMP context.
  819.  
  820.  
  821.  
  822. Wijnen/Presuhn/McCloghrie      Expires December 1997           [Page 14]
  823.  
  824. Draft           Access Control Model (ACM) for SNMPv3          June 1997
  825.  
  826.  
  827.                 "
  828.     INDEX       { snmpV3AcContextName,
  829.                   snmpV3AcGroupName,
  830.                   snmpV3AcLoS
  831.                 }
  832.     ::= { snmpV3AcTable 1 }
  833.  
  834. SnmpV3AcEntry ::= SEQUENCE
  835.     {
  836.         snmpV3AcLoS              SnmpV3LoS,
  837.         snmpV3AcContextMatch     INTEGER,
  838.         snmpV3AcReadViewName     SnmpV3AdminString,
  839.         snmpV3AcWriteViewName    SnmpV3AdminString,
  840.         snmpV3AcNotifyViewName   SnmpV3AdminString,
  841.         snmpV3AcStorageType      StorageType,
  842.         snmpV3AcStatus           RowStatus
  843.     }
  844.  
  845. snmpV3AcLoS      OBJECT-TYPE
  846.     SYNTAX       SnmpV3LoS
  847.     MAX-ACCESS   not-accessible
  848.     STATUS       current
  849.     DESCRIPTION "The minimum level of security required in order to
  850.                  gain the access rights allowed by this conceptual
  851.                  row.
  852.                 "
  853.     ::= { snmpV3AcEntry 1 }
  854.  
  855. snmpV3AcContextMatch OBJECT-TYPE
  856.     SYNTAX       INTEGER
  857.                 { exact (0),       -- exact match of context Name
  858.                   prefix (1)       -- Only match to this prefix
  859.                 }
  860.     MAX-ACCESS   read-create
  861.     STATUS       current
  862.     DESCRIPTION "If exact is set, then the contextName of the
  863.                  index part snmpV3AcContextName of this entry in this
  864.                  table represents a full contextName.
  865.  
  866.                  If prefix is set, then the contextName of the
  867.                  index part snmpV3AcContextName of this entry in this
  868.                  table represents a partial contextName which acts
  869.                  as a prefix so that a simple form of wildcarding
  870.                  is possible.
  871.                 "
  872.     ::= { snmpV3AcEntry 2 }
  873.  
  874. snmpV3AcReadViewName OBJECT-TYPE
  875.     SYNTAX       SnmpV3AdminString
  876.     MAX-ACCESS   read-create
  877.     STATUS       current
  878.  
  879.  
  880.  
  881. Wijnen/Presuhn/McCloghrie      Expires December 1997           [Page 15]
  882.  
  883. Draft           Access Control Model (ACM) for SNMPv3          June 1997
  884.  
  885.  
  886.     DESCRIPTION "The value of an instance of this object identifies
  887.                  the MIB view of the SNMP context to which this
  888.                  conceptual row authorizes read access.
  889.  
  890.                  The identified MIB view is that for which
  891.                  snmpV3AcViewName has the same value as the instance
  892.                  of this object; if the value is the empty string or
  893.                  if there is no active MIB view having this value of
  894.                  snmpV3AcViewName, then no access is granted.
  895.  
  896.                  Otherwise, this object is ignored and can take any
  897.                  value at the Access Control module's discretion,
  898.                  e.g., the empty string.
  899.                 "
  900.     DEFVAL      { ''H }   -- the empty string
  901.     ::= { snmpV3AcEntry 3 }
  902.  
  903. snmpV3AcWriteViewName OBJECT-TYPE
  904.     SYNTAX       SnmpV3AdminString
  905.     MAX-ACCESS   read-create
  906.     STATUS       current
  907.     DESCRIPTION "The value of an instance of this object identifies
  908.                  the MIB view of the SNMP context to which this
  909.                  conceptual row authorizes write access.
  910.  
  911.                  The identified MIB view is that for which
  912.                  snmpV3AcViewName has the same value as the instance
  913.                  of this object; if the value is the empty string or
  914.                  if there is no active MIB view having this value of
  915.                  snmpV3AcViewName, then no access is granted.
  916.  
  917.                  Otherwise, this object is ignored and can take any
  918.                  value at the Access Control module's discretion,
  919.                  e.g., the empty string.
  920.                 "
  921.     DEFVAL      { ''H }   -- the empty string
  922.     ::= { snmpV3AcEntry 4 }
  923.  
  924. snmpV3AcNotifyViewName OBJECT-TYPE
  925.     SYNTAX       SnmpV3AdminString
  926.     MAX-ACCESS   read-create
  927.     STATUS       current
  928.     DESCRIPTION "The value of an instance of this object identifies
  929.                  the MIB view of the SNMP context to which this
  930.                  conceptual row authorizes access for notifications.
  931.  
  932.                  The identified MIB view is that for which
  933.                  snmpV3AcViewName has the same value as the instance
  934.                  of this object; if the value is the empty string or
  935.                  if there is no active MIB view having this value of
  936.                  snmpV3AcViewName, then no access is granted.
  937.  
  938.  
  939.  
  940. Wijnen/Presuhn/McCloghrie      Expires December 1997           [Page 16]
  941.  
  942. Draft           Access Control Model (ACM) for SNMPv3          June 1997
  943.  
  944.  
  945.  
  946.                  Otherwise, this object is ignored and can take any
  947.                  value at the Access Control module's discretion,
  948.                  e.g., the empty string.
  949.                 "
  950.     DEFVAL      { ''H }   -- the empty string
  951.     ::= { snmpV3AcEntry 5 }
  952.  
  953. snmpV3AcStorageType OBJECT-TYPE
  954.     SYNTAX       StorageType
  955.     MAX-ACCESS   read-create
  956.     STATUS       current
  957.     DESCRIPTION "The storage type for this conceptual row.
  958.  
  959.                  Conceptual rows having the value 'permanent'
  960.                  need not allow write-access to any columnar
  961.                  objects in the row.
  962.                 "
  963.     DEFVAL      { nonVolatile }
  964.     ::= { snmpV3AcEntry 6 }
  965.  
  966. snmpV3AcStatus   OBJECT-TYPE
  967.     SYNTAX       RowStatus
  968.     MAX-ACCESS   read-create
  969.     STATUS       current
  970.     DESCRIPTION "The status of this conceptual row.
  971.  
  972.                  For those columnar objects which permit write-access,
  973.                  their value in an existing conceptual row can be
  974.                  changed irrespective of the value of snmpV3AcStatus
  975.                  for that row.
  976.                 "
  977.     ::= { snmpV3AcEntry 7 }
  978.  
  979. -- Information about MIB views ***************************************
  980. -- Support for views having instance-level granularity is optional
  981.  
  982. snmpV3AcViewTable OBJECT-TYPE
  983.     SYNTAX       SEQUENCE OF SnmpV3AcViewEntry
  984.     MAX-ACCESS   not-accessible
  985.     STATUS       current
  986.     DESCRIPTION "The table of locally defined MIB views.
  987.  
  988.                  When an SNMP engine in the manager role wants to
  989.                  create a new MIB view, then it must first create
  990.                  an entry in the snmpV3AcViewTable, using a
  991.                  non-existing index-value for snmpV3AcViewName.
  992.                  If the creation of such an entry is successful,
  993.                  the SNMP engine in the manager role can then start
  994.                  creating entries in the snmpV3AcSubtreeFamiliyTable.
  995.  
  996.  
  997.  
  998.  
  999. Wijnen/Presuhn/McCloghrie      Expires December 1997           [Page 17]
  1000.  
  1001. Draft           Access Control Model (ACM) for SNMPv3          June 1997
  1002.  
  1003.  
  1004.                  When deleting MIB views, it is strongly advised that
  1005.                  first the related snmpV3AcSubtreeFamilityEntries are
  1006.                  deleted from the snmpV3AcSubtreeFamiliyTable and that
  1007.                  only upon completion of that deletion process the
  1008.                  snmpV3AcViewEntry is deleted from the
  1009.                  snmpV3AcViewTable.
  1010.  
  1011.                  Furthermore, a manager should take great care to
  1012.                  delete all the 'included' family entries before
  1013.                  deleting any of the 'excluded' ones.
  1014.  
  1015.                  Following these procedures there should be no
  1016.                  collisions when multiple managers try to update
  1017.                  the MIB views at an SNMP engine in an agent role.
  1018.  
  1019.                  If managers do not follow these procedures then it is
  1020.                  agent-implementation dependent as to what the result
  1021.                  of possible collisions will be.
  1022.                 "
  1023.     ::= { snmpV3AcMIBObjects 5 }
  1024.  
  1025. snmpV3AcViewEntry OBJECT-TYPE
  1026.     SYNTAX       SnmpV3AcViewEntry
  1027.     MAX-ACCESS   not-accessible
  1028.     STATUS       current
  1029.     DESCRIPTION "Information on a particular local MIB view."
  1030.     INDEX       { snmpV3AcViewName }
  1031.     ::= { snmpV3AcViewTable 1 }
  1032.  
  1033. SnmpV3AcViewEntry ::= SEQUENCE
  1034.     {
  1035.         snmpV3AcViewName         SnmpV3AdminString,
  1036.         snmpV3AcViewStorageType  StorageType,
  1037.         snmpV3AcViewStatus       RowStatus
  1038.     }
  1039.  
  1040. snmpV3AcViewName OBJECT-TYPE
  1041.     SYNTAX       SnmpV3AdminString (SIZE(1..32))
  1042.     MAX-ACCESS   not-accessible
  1043.     STATUS       current
  1044.     DESCRIPTION "An unique viewName that uniquely identifies a MIB
  1045.                  viewEntry in this table.
  1046.                 "
  1047.     ::= { snmpV3AcViewEntry 1 }
  1048.  
  1049. snmpV3AcViewStorageType OBJECT-TYPE
  1050.     SYNTAX       StorageType
  1051.     MAX-ACCESS   read-create
  1052.     STATUS       current
  1053.     DESCRIPTION "The storage type for this conceptual row.
  1054.  
  1055.  
  1056.  
  1057.  
  1058. Wijnen/Presuhn/McCloghrie      Expires December 1997           [Page 18]
  1059.  
  1060. Draft           Access Control Model (ACM) for SNMPv3          June 1997
  1061.  
  1062.  
  1063.                  Conceptual rows having the value 'permanent' need
  1064.                  not allow write-access to any columnar objects in
  1065.                  the row.
  1066.                 "
  1067.     DEFVAL      { nonVolatile }
  1068.     ::= { snmpV3AcViewEntry 2 }
  1069.  
  1070. snmpV3AcViewStatus OBJECT-TYPE
  1071.     SYNTAX       RowStatus
  1072.     MAX-ACCESS   read-create
  1073.     STATUS       current
  1074.     DESCRIPTION "The status of this conceptual row.
  1075.  
  1076.                  For those columnar objects which permit write-access,
  1077.                  their value in an existing conceptual row can be
  1078.                  changed irrespective of the value of
  1079.                  snmpV3AcViewStatus for that row.
  1080.                 "
  1081.     ::= { snmpV3AcViewEntry 3 }
  1082.  
  1083. -- Subtree families of MIB views *************************************
  1084.  
  1085. snmpV3AcSubtreeFamilyTable OBJECT-TYPE
  1086.     SYNTAX       SEQUENCE OF SnmpV3AcSubtreeFamilyEntry
  1087.     MAX-ACCESS   not-accessible
  1088.     STATUS       current
  1089.     DESCRIPTION "Locally held information about families of subtrees
  1090.                  within MIB views.
  1091.  
  1092.                  Each MIB view is defined by two collections of view
  1093.                  subtrees: the included view subtrees, and the
  1094.                  excluded view subtrees.
  1095.                  Every such subtree, both included and excluded,
  1096.                  is defined in this table.
  1097.  
  1098.                  To determine if a particular object instance is in
  1099.                  a particular MIB view, compare the object instance's
  1100.                  OBJECT IDENTIFIER with each of the MIB view's active
  1101.                  entries in this table.  If none match, then the
  1102.                  object instance is not in the MIB view.  If one or
  1103.                  more match, then the object instance is included in,
  1104.                  or excluded from, the MIB view according to the
  1105.                  value of snmpV3AcSubtreeFamilyType in the entry
  1106.                  whose value of snmpV3AcSubtreeFamilySubtree has the
  1107.                  most sub-identifiers.  If multiple entries match
  1108.                  and have the same number of sub-identifiers, then
  1109.                  the lexicographically greatest instance of
  1110.                  snmpV3AcSubtreeFamilyType determines the inclusion
  1111.                  or exclusion.
  1112.  
  1113.                  An object instance's OBJECT IDENTIFIER X matches an
  1114.  
  1115.  
  1116.  
  1117. Wijnen/Presuhn/McCloghrie      Expires December 1997           [Page 19]
  1118.  
  1119. Draft           Access Control Model (ACM) for SNMPv3          June 1997
  1120.  
  1121.  
  1122.                  active entry in this table when the number of
  1123.                  sub-identifiers in X is at least as many as in the
  1124.                  value of snmpV3AcSubtreeFamilySubtree for the entry,
  1125.                  and each sub-identifier in the value of
  1126.                  snmpV3AcSubtreeFamilySubtree matches its
  1127.                  corresponding sub-identifier in X.
  1128.                  Two sub-identifiers match either if the
  1129.                  corresponding bit of snmpV3AcSubtreeFamilyMask is
  1130.                  zero (the 'wild card' value), or if they are equal.
  1131.  
  1132.                  A 'family' of view subtrees is the set of subtrees
  1133.                  defined by a particular combination of values of
  1134.                  snmpV3AcSubtreeFamilySubtree and
  1135.                  snmpV3AcSubtreeFamilyMask.
  1136.                  In the case where no 'wild card' is defined in
  1137.                  snmpV3AcSubtreeFamilyMask, the family of view
  1138.                  subtrees reduces to a single view subtree.
  1139.  
  1140.                  When an SNMP engine in the manager role wants to
  1141.                  create a new MIB view, then it should first create
  1142.                  an entry in the snmpV3AcViewTable, using a
  1143.                  non-existing index-value for snmpV3AcViewName.
  1144.                  If the creation of such an entry is successful,
  1145.                  the SNMP engine in the manager role can then start
  1146.                  creating entries in the snmpV3AcSubtreeFamiliyTable.
  1147.  
  1148.                  When deleting MIB views, it is strongly advised that
  1149.                  first the related snmpV3AcSubtreeFamilityEntries are
  1150.                  deleted from the snmpV3AcSubtreeFamiliyTable and that
  1151.                  only upon completion of that deletion process the
  1152.                  snmpV3AcViewEntry is deleted from the
  1153.                  snmpV3AcViewTable.
  1154.  
  1155.                  Following these procedures there should be no
  1156.                  collisions when multiple managers try to update
  1157.                  the MIB views at an SNMP engine in an agent role.
  1158.                 "
  1159.     ::= { snmpV3AcMIBObjects 6 }
  1160.  
  1161. snmpV3AcSubtreeFamilyEntry OBJECT-TYPE
  1162.     SYNTAX       SnmpV3AcSubtreeFamilyEntry
  1163.     MAX-ACCESS   not-accessible
  1164.     STATUS       current
  1165.     DESCRIPTION "Information on a particular family of view subtrees
  1166.                  included in or excluded from a particular SNMP
  1167.                  context's MIB view.  The MIB view must exist
  1168.                  (i.e., be represented by a conceptual row in the
  1169.                  snmpV3AcViewTable) before any subtree families can
  1170.                  be defined for it.
  1171.  
  1172.                  Implementations must not restrict the number of
  1173.  
  1174.  
  1175.  
  1176. Wijnen/Presuhn/McCloghrie      Expires December 1997           [Page 20]
  1177.  
  1178. Draft           Access Control Model (ACM) for SNMPv3          June 1997
  1179.  
  1180.  
  1181.                  families of view subtrees for a given MIB view,
  1182.                  except as dictated by resource constraints on the
  1183.                  overall number of entries in the
  1184.                  snmpV3AcSubtreeFamilyTable.
  1185.  
  1186.                  The value of snmpV3AcViewName in this INDEX clause
  1187.                  of this table identifies the MIB view in which this
  1188.                  subtree family exists.
  1189.  
  1190.                  A MIB view for which there are no conceptual rows
  1191.                  in this table is the empty set of view subtrees.
  1192.                 "
  1193.     INDEX       { snmpV3AcViewName,
  1194.                   IMPLIED snmpV3AcSubtreeFamilySubtree
  1195.                 }
  1196.     ::= { snmpV3AcSubtreeFamilyTable 1 }
  1197.  
  1198. SnmpV3AcSubtreeFamilyEntry ::= SEQUENCE
  1199.     {
  1200.         snmpV3AcSubtreeFamilySubtree      OBJECT IDENTIFIER,
  1201.         snmpV3AcSubtreeFamilyMask         OCTET STRING,
  1202.         snmpV3AcSubtreeFamilyType         INTEGER,
  1203.         snmpV3AcSubtreeFamilyStorageType  StorageType,
  1204.         snmpV3AcSubtreeFamilyStatus       RowStatus
  1205.     }
  1206.  
  1207. snmpV3AcSubtreeFamilySubtree OBJECT-TYPE
  1208.     SYNTAX       OBJECT IDENTIFIER
  1209.     MAX-ACCESS   not-accessible
  1210.     STATUS       current
  1211.     DESCRIPTION "The MIB subtree which when combined with the
  1212.                  corresponding instance of snmpV3AcSubtreeFamilyMask
  1213.                  defines a family of view subtrees.
  1214.                 "
  1215.     ::= { snmpV3AcSubtreeFamilyEntry 1 }
  1216.  
  1217. snmpV3AcSubtreeFamilyMask OBJECT-TYPE
  1218.     SYNTAX       OCTET STRING (SIZE (0..16))
  1219.     MAX-ACCESS   read-create
  1220.     STATUS       current
  1221.     DESCRIPTION "The bit mask which,
  1222.                  in combination with the corresponding instance of
  1223.                  snmpV3AcSubtreeFamilySubtree, defines a family of
  1224.                  view subtrees.
  1225.  
  1226.                  Each bit of this bit mask corresponds to a
  1227.                  sub-identifier of snmpV3AcSubtreeFamilySubtree,
  1228.                  with the most significant bit of the i-th octet
  1229.                  of this octet string value (extended if necessary,
  1230.                  see below) corresponding to the (8*i - 7)-th
  1231.                  sub-identifier, and the least significant bit of
  1232.  
  1233.  
  1234.  
  1235. Wijnen/Presuhn/McCloghrie      Expires December 1997           [Page 21]
  1236.  
  1237. Draft           Access Control Model (ACM) for SNMPv3          June 1997
  1238.  
  1239.  
  1240.                  the i-th octet of this octet string corresponding
  1241.                  to the (8*i)-th sub-identifier, where i is in the
  1242.                  range 1 through 16.
  1243.  
  1244.                  Each bit of this bit mask specifies whether or not
  1245.                  the corresponding sub-identifiers must match when
  1246.                  determining if an OBJECT IDENTIFIER is in this
  1247.                  family of view subtrees; a '1' indicates that an
  1248.                  exact match must occur; a '0' indicates 'wild card',
  1249.                  i.e., any sub-identifier value matches.
  1250.  
  1251.                  Thus, the OBJECT IDENTIFIER X of an object instance
  1252.                  is contained in a family of view subtrees if, for
  1253.                  each sub-identifier of the value of
  1254.                  snmpV3AcSubtreeFamilySubtree, either:
  1255.  
  1256.                    the i-th bit of snmpV3AcSubtreeFamilyMask is 0, or
  1257.  
  1258.                    the i-th sub-identifier of X is equal to the
  1259.                    i-th sub-identifier of the value of
  1260.                    snmpV3AcSubtreeFamilySubtree.
  1261.  
  1262.                  If the value of this bit mask is M bits long
  1263.                  and there are more than M sub-identifiers in
  1264.                  the corresponding instance of
  1265.                  snmpV3AcSubtreeFamilySubtree, then the bit mask
  1266.                  is extended with 1's to be the required length.
  1267.  
  1268.                  Note that when the value of this object is the
  1269.                  zero-length string, this extension rule results in
  1270.                  a mask of all-1's being used (i.e., no 'wild card'),
  1271.                  and the family of view subtrees is the one view
  1272.                  subtree uniquely identified by the corresponding
  1273.                  instance of snmpV3AcSubtreeFamilySubtree.
  1274.                 "
  1275.     DEFVAL      { ''H }
  1276.     ::= { snmpV3AcSubtreeFamilyEntry 2 }
  1277.  
  1278. snmpV3AcSubtreeFamilyType OBJECT-TYPE
  1279.     SYNTAX       INTEGER  { included(1), excluded(2) }
  1280.     MAX-ACCESS   read-create
  1281.     STATUS       current
  1282.     DESCRIPTION "The indication of whether the corresponding instances
  1283.                  of snmpV3AcSubtreeFamilySubtree and
  1284.                  snmpV3AcSubtreeFamilyMask define a family of view
  1285.                  subtrees which is included in or excluded from the
  1286.                  MIB view.
  1287.                 "
  1288.     DEFVAL      { included }
  1289.     ::= { snmpV3AcSubtreeFamilyEntry 3 }
  1290.  
  1291.  
  1292.  
  1293.  
  1294. Wijnen/Presuhn/McCloghrie      Expires December 1997           [Page 22]
  1295.  
  1296. Draft           Access Control Model (ACM) for SNMPv3          June 1997
  1297.  
  1298.  
  1299. snmpV3AcSubtreeFamilyStorageType OBJECT-TYPE
  1300.     SYNTAX       StorageType
  1301.     MAX-ACCESS   read-create
  1302.     STATUS       current
  1303.     DESCRIPTION "The storage type for this conceptual row.
  1304.  
  1305.                  Conceptual rows having the value 'permanent' need
  1306.                  not allow write-access to any columnar objects in
  1307.                  the row.
  1308.  
  1309.                  An SNMP engine in the manager role is advised to
  1310.                  use the same value for this row as the value used
  1311.                  in the corresponding row in the snmpV3AcViewTable.
  1312.                 "
  1313.     DEFVAL      { nonVolatile }
  1314.     ::= { snmpV3AcSubtreeFamilyEntry 4 }
  1315.  
  1316. snmpV3AcSubtreeFamilyStatus OBJECT-TYPE
  1317.     SYNTAX       RowStatus
  1318.     MAX-ACCESS   read-create
  1319.     STATUS       current
  1320.     DESCRIPTION "The status of this conceptual row.
  1321.  
  1322.                  For those columnar objects which permit write-access,
  1323.                  their value in an existing conceptual row can be
  1324.                  changed irrespective of the value of
  1325.                  snmpV3AcSubtreeFamilyStatus for that row.
  1326.  
  1327.                  An SNMP engine in the manager role is advised to
  1328.                  use the same value for this row as the value used
  1329.                  in the corresponding row in the snmpV3AcViewTable.
  1330.                 "
  1331.     ::= { snmpV3AcSubtreeFamilyEntry 5 }
  1332.  
  1333. -- Conformance information *******************************************
  1334.  
  1335. snmpV3AcMIBCompliances
  1336.                OBJECT IDENTIFIER ::= { snmpV3AcMIBConformance 1 }
  1337. snmpV3AcMIBGroups
  1338.                OBJECT IDENTIFIER ::= { snmpV3AcMIBConformance 2 }
  1339.  
  1340. -- Compliance statements *********************************************
  1341.  
  1342. snmpV3AcMIBCompliance MODULE-COMPLIANCE
  1343.     STATUS       current
  1344.     DESCRIPTION "The compliance statement for SNMP engines which
  1345.                  implement the SNMPv3 ACM configuration MIB.
  1346.                 "
  1347.     MODULE -- this module
  1348.         MANDATORY-GROUPS { snmpV3AcBasicGroup }
  1349.  
  1350.  
  1351.  
  1352.  
  1353. Wijnen/Presuhn/McCloghrie      Expires December 1997           [Page 23]
  1354.  
  1355. Draft           Access Control Model (ACM) for SNMPv3          June 1997
  1356.  
  1357.  
  1358.         OBJECT        snmpV3AcContextMatch
  1359.         MIN-ACCESS    read-only
  1360.         DESCRIPTION  "Write access is not required."
  1361.  
  1362.         OBJECT        snmpV3AcReadViewName
  1363.         MIN-ACCESS    read-only
  1364.         DESCRIPTION  "Write access is not required."
  1365.  
  1366.         OBJECT        snmpV3AcWriteViewName
  1367.         MIN-ACCESS    read-only
  1368.         DESCRIPTION  "Write access is not required."
  1369.  
  1370.         OBJECT        snmpV3AcNotifyViewName
  1371.         MIN-ACCESS    read-only
  1372.         DESCRIPTION  "Write access is not required."
  1373.  
  1374.         OBJECT        snmpV3AcStorageType
  1375.         MIN-ACCESS    read-only
  1376.         DESCRIPTION  "Write access is not required."
  1377.  
  1378.         OBJECT        snmpV3AcStatus
  1379.         MIN-ACCESS    read-only
  1380.         DESCRIPTION  "Create access to the snmpV3AcViewTable
  1381.                       is not required.
  1382.                      "
  1383.  
  1384.         OBJECT        snmpV3AcViewStorageType
  1385.         MIN-ACCESS    read-only
  1386.         DESCRIPTION  "Write access is not required."
  1387.  
  1388.         OBJECT        snmpV3AcViewStatus
  1389.         MIN-ACCESS    read-only
  1390.         DESCRIPTION  "Create access to the snmpV3AcViewTable
  1391.                       is not required.
  1392.                      "
  1393.  
  1394.         OBJECT        snmpV3AcSubtreeFamilyMask
  1395.         WRITE-SYNTAX  OCTET STRING (SIZE (0))
  1396.         MIN-ACCESS    read-only
  1397.         DESCRIPTION  "Support for configuration via SNMP of
  1398.                       subtree families defined using wild-cards
  1399.                       is not required.
  1400.                      "
  1401.  
  1402.         OBJECT        snmpV3AcSubtreeFamilyType
  1403.         MIN-ACCESS    read-only
  1404.         DESCRIPTION  "Write access is not required."
  1405.  
  1406.         OBJECT        snmpV3AcSubtreeFamilyStorageType
  1407.         MIN-ACCESS    read-only
  1408.         DESCRIPTION  "Write access is not required."
  1409.  
  1410.  
  1411.  
  1412. Wijnen/Presuhn/McCloghrie      Expires December 1997           [Page 24]
  1413.  
  1414. Draft           Access Control Model (ACM) for SNMPv3          June 1997
  1415.  
  1416.  
  1417.  
  1418.         OBJECT        snmpV3AcSubtreeFamilyStatus
  1419.         MIN-ACCESS    read-only
  1420.         DESCRIPTION  "Create access to the snmpV3AcSubtreeFamilyTable
  1421.                       is not required.
  1422.                      "
  1423.     ::= { snmpV3AcMIBCompliances 1 }
  1424.  
  1425. -- Units of conformance **********************************************
  1426.  
  1427. snmpV3AcBasicGroup OBJECT-GROUP
  1428.     OBJECTS { snmpV3AcStatsUnknownContexts,
  1429.               snmpV3AcStatsNoGroups,
  1430.               snmpV3AcStatsNoViews,
  1431.               snmpV3AcStatsUnauthorizedAccesses, -- length 33
  1432.               snmpV3AcGroupName,
  1433.               snmpV3AcGroupStorageType,
  1434.               snmpV3AcGroupStatus,
  1435.               snmpV3AcContextName,
  1436.               snmpV3AcReadViewName,
  1437.               snmpV3AcWriteViewName,
  1438.               snmpV3AcNotifyViewName,
  1439.               snmpV3AcStorageType,
  1440.               snmpV3AcStatus,
  1441.               snmpV3AcViewStorageType,
  1442.               snmpV3AcViewStatus,
  1443.               snmpV3AcSubtreeFamilyMask,
  1444.               snmpV3AcSubtreeFamilyType,
  1445.               snmpV3AcSubtreeFamilyStorageType,  -- length 32
  1446.               snmpV3AcSubtreeFamilyStatus
  1447.             }
  1448.     STATUS       current
  1449.     DESCRIPTION "A collection of objects providing for remote
  1450.                  configuration of an SNMP engine which implements
  1451.                  the SNMPv3 Access Control Model (ACM).
  1452.                 "
  1453.     ::= { snmpV3AcMIBGroups 1 }
  1454.  
  1455.  
  1456. END
  1457.  
  1458.  
  1459.  
  1460.  
  1461.  
  1462.  
  1463.  
  1464.  
  1465.  
  1466.  
  1467.  
  1468.  
  1469.  
  1470.  
  1471. Wijnen/Presuhn/McCloghrie      Expires December 1997           [Page 25]
  1472.  
  1473. Draft           Access Control Model (ACM) for SNMPv3          June 1997
  1474.  
  1475.  
  1476. 5.  Security Considerations
  1477.  
  1478. 5.1  Recommended Practices
  1479.  
  1480. This document is meant for use in the SNMP architecture. The
  1481. Access Control Model (ACM) described in this document controls
  1482. access rights to management information based on:
  1483.  
  1484.    - contextName, representing a set of management information at the
  1485.      managed system where the Access Control module is running.
  1486.    - groupName, representing a group or set of zero, one or more
  1487.      securityIdentities. These securityIdentities are mapped into
  1488.      one or more groups in the SNMPv3 Access Control subsystem.
  1489.    - Level of Security (LoS) used for the transmission of an SNMP
  1490.      message.
  1491.  
  1492. When the Access Control module (ACM) is called for checking access
  1493. rights, it is assumed that the calling module has ensured the
  1494. authentication and privacy aspects as specified by the Level of
  1495. Security (LoS) that is being passed.
  1496.  
  1497. 5.2  Defining Groups
  1498.  
  1499. GroupNames are used to give access to a group of zero, one or more
  1500. securityIdentities. Within the ACM, a groupName is considered to
  1501. exist if that groupName is used (as an index) in a row in the
  1502. snmpV3AcTable.
  1503. By mapping a securityIdentity into a group, a Management System can
  1504. add/delete securityIdentities to/from a group.
  1505.  
  1506. 5.3  Conformance
  1507.  
  1508. Conformance rules are described in the SNMP architecture document
  1509. [SNMP-ARCH].
  1510.  
  1511.  
  1512.  
  1513.  
  1514.  
  1515.  
  1516.  
  1517.  
  1518.  
  1519.  
  1520.  
  1521.  
  1522.  
  1523.  
  1524.  
  1525.  
  1526.  
  1527.  
  1528.  
  1529.  
  1530. Wijnen/Presuhn/McCloghrie      Expires December 1997           [Page 26]
  1531.  
  1532. Draft           Access Control Model (ACM) for SNMPv3          June 1997
  1533.  
  1534.  
  1535. 6.  Editor's Addresses
  1536.  
  1537.    Co-editor:  Bert Wijnen
  1538.                IBM T. J. Watson Research
  1539.    postal:     Schagen 33
  1540.                3461 GL Linschoten
  1541.                Netherlands
  1542.    email:      wijnen@vnet.ibm.com
  1543.    phone:      +31-348-432-794
  1544.  
  1545.    Co-editor:  Randy Presuhn
  1546.                BMC Software, Inc
  1547.    postal:     1190 Saratoga Avenue, Suite 130
  1548.                San Jose, CA  95129-3433
  1549.                USA
  1550.    email:      rpresuhn@bmc.com
  1551.    phone:      +1-408-556-0720
  1552.  
  1553.    Co-editor:  Keith McCloghrie
  1554.                Cisco Systems, Inc.
  1555.    postal:     170 West Tasman Drive
  1556.                San Jose, CA  95134-1706
  1557.                USA
  1558.    email:      kzm@cisco.com
  1559.    phone:      +1-408-526-5260
  1560.  
  1561.  
  1562. 7.  Acknowledgements
  1563.  
  1564. This document describes the work of the SNMP Security and
  1565. Administrative Framework Evolution team, comprised of
  1566.  
  1567.     David Harrington (Cabletron Systems Inc.)
  1568.     Jeff Johnson (Cisco)
  1569.     David Levi (SNMP Research Inc.)
  1570.     John Linn (Openvision)
  1571.     Russ Mundy (Trusted Information Systems) chair
  1572.     Shawn Routhier (Epilogue)
  1573.     Glenn Waters (Nortel)
  1574.     Bert Wijnen (IBM T. J. Watson Research)
  1575.  
  1576.  
  1577.  
  1578.  
  1579.  
  1580.  
  1581.  
  1582.  
  1583.  
  1584.  
  1585.  
  1586.  
  1587.  
  1588.  
  1589. Wijnen/Presuhn/McCloghrie      Expires December 1997           [Page 27]
  1590.  
  1591. Draft           Access Control Model (ACM) for SNMPv3          June 1997
  1592.  
  1593.  
  1594. 8.  References
  1595.  
  1596. [RFC1902] The SNMPv2 Working Group, Case, J., McCloghrie, K.,
  1597.      Rose, M., and S., Waldbusser, "Structure of Management
  1598.      Information for Version  2 of the Simple Network Management
  1599.      Protocol (SNMPv2)", RFC 1905, January 1996.
  1600.  
  1601. [RFC1905] The SNMPv2 Working Group, Case, J., McCloghrie, K.,
  1602.      Rose, M., and S., Waldbusser, "Protocol Operations for
  1603.      Version 2 of the Simple Network Management Protocol (SNMPv2)",
  1604.      RFC 1905, January 1996.
  1605.  
  1606. [RFC1906] The SNMPv2 Working Group, Case, J., McCloghrie, K.,
  1607.      Rose, M., and S. Waldbusser, "Transport Mappings for
  1608.      Version 2 of the Simple Network Management Protocol (SNMPv2)",
  1609.      RFC 1906, January 1996.
  1610.  
  1611. [RFC1907] The SNMPv2 Working Group, Case, J., McCloghrie, K.,
  1612.      Rose, M., and S. Waldbusser, "Management Information Base for
  1613.      Version 2 of the Simple Network Management Protocol (SNMPv2)",
  1614.      RFC 1907, January 1996.
  1615.  
  1616. [RFC1908] The SNMPv2 Working Group, Case, J., McCloghrie, K.,
  1617.      Rose, M., and S. Waldbusser, "Coexistence between Version 1
  1618.      and Version 2 of the Internet-standard Network Management
  1619.      Framework", RFC 1908, January 1996.
  1620.  
  1621. [SNMP-ARCH] The SNMPv3 Working Group, Harrington, D., Wijnen, B.,
  1622.      "An Architecture for describing Internet Management Frameworks",
  1623.      draft-ietf-snmpv3-next-gen-arch-02.txt, June 1997.
  1624.  
  1625. [SNMPv3-ACM] The SNMPv3 Working Group, Wijnen, B., Harrington, D.,
  1626.      "Access Control Model for Version 3 of the Simple Network
  1627.      Management Protocol (SNMPv3)", draft-ietf-snmpv3-acm-00.txt,
  1628.      June 1997.
  1629.  
  1630. [SNMPv3-MPC] The SNMPv3 Working Group, Wijnen, B., Harrington, D.,
  1631.      "Message Processing and Control Model for version 3 of the Simple
  1632.      Network Management Protocol (SNMPv3)",
  1633.      draft-ietf-snmpv3-mpc-00.txt,
  1634.      March 1997.
  1635.  
  1636. [SNMPv3-USEC] The SNMPv3 Working Group, Blumenthal, U., Wijnen, B.,
  1637.      "The User-Based Security Model for Version 3 of the Simple
  1638.      Network Management Protocol (SNMPv3)",
  1639.      draft-ietf-snmpv3-usec-01.txt, June 1997.
  1640.  
  1641.  
  1642.  
  1643.  
  1644.  
  1645.  
  1646.  
  1647.  
  1648. Wijnen/Presuhn/McCloghrie      Expires December 1997           [Page 28]
  1649.  
  1650. Draft           Access Control Model (ACM) for SNMPv3          June 1997
  1651.  
  1652.  
  1653. APPENDIX A - Installation
  1654.  
  1655. A.1.  Installation Parameters
  1656.  
  1657. During installation, an SNMPv3 engine acting in an authoritative role
  1658. is configured with several parameters.  These include for the Access
  1659. Control module:
  1660.  
  1661. (1) A security posture
  1662.  
  1663.     The choice of security posture determines the extent of the view
  1664.     configured for unauthenticated access.  One of three possible
  1665.     choices is selected:
  1666.  
  1667.           minimum-secure,
  1668.           semi-secure, or
  1669.           very-secure.
  1670.  
  1671. (2) A default context
  1672.  
  1673.     One entry in the snmpV3AcContextTable with a contextName of
  1674.     "" (the empty string, representing the default context.
  1675.  
  1676. Editor's note:
  1677.     If we do keep the groupTable, then we also need an entry in
  1678.     the groupTable for group public. It should have a miId of
  1679.     "public" for USEC that maps into groupName "public"
  1680. End Editor's note.
  1681.  
  1682. (3) Three entries in the snmpV3AcTable as follows:
  1683.  
  1684.     - One entry to be used for unauthenticated access:
  1685.  
  1686.                                 no privacy support  privacy support
  1687.                                 ------------------  ---------------
  1688.       snmpV3AcContextName       ""                  ""
  1689.       snmpV3AcGroupName         "public"            "public"
  1690.       snmpV3AcLoS               noAuth/noPriv       noAuth/noPriv
  1691.       snmpV3AcReadViewName      "restricted"        "restricted"
  1692.       snmpV3AcWriteViewName     ""                  ""
  1693.       snmpV3AcNotifyViewName    "restricted"        "restricted"
  1694.       snmpV3AcStorageType       permanent           permanent
  1695.       snmpV3AcStatus            active              active
  1696.  
  1697.     - One entry to be used for authenticated access but without
  1698.       privacy:
  1699.                                 no privacy support  privacy support
  1700.                                 ------------------  ---------------
  1701.       snmpV3AcContextName       ""                  ""
  1702.       snmpV3AcGroupName         "public"            "public"
  1703.       snmpV3AcLoS               Auth/noPriv         Auth/noPriv
  1704.  
  1705.  
  1706.  
  1707. Wijnen/Presuhn/McCloghrie      Expires December 1997           [Page 29]
  1708.  
  1709. Draft           Access Control Model (ACM) for SNMPv3          June 1997
  1710.  
  1711.  
  1712.       snmpV3AcReadViewName      "all"               "all"
  1713.       snmpV3AcWriteViewName     "all"               "all"
  1714.       snmpV3AcNotifyViewName    "all"               "all"
  1715.       snmpV3AcStorageType       permanent           permanent
  1716.       snmpV3AcStatus            active              active
  1717.  
  1718.     - One entry to be used for authenticated access with privacy:
  1719.  
  1720.                                 no privacy support  privacy support
  1721.                                 ------------------  ---------------
  1722.       snmpV3AcContextName                           ""
  1723.       snmpV3AcGroupName                             "public"
  1724.       snmpV3AcLoS                                   Auth/Priv
  1725.       snmpV3AcReadViewName                          "all"
  1726.       snmpV3AcWriteViewName                         "all"
  1727.       snmpV3AcNotifyViewName                        "all"
  1728.       snmpV3AcStorageType                           permanent
  1729.       snmpV3AcStatus                                active
  1730.  
  1731. (4) Two views depending on the security posture.
  1732.  
  1733.     -  One view (the <all> view) for authenticated access:
  1734.  
  1735.        -  the <all> MIB view is the following subtree:
  1736.               "internet"        [RFC1902]
  1737.  
  1738. Editor's note:
  1739.     I picked this up from the RFC1910.
  1740.     I have experience myself that MIBs were defined outside the
  1741.     internet subtree, so maybe this should just be
  1742.               "iso"
  1743. End Editor's note.
  1744.  
  1745.     -  A second view (the <restricted> view) for unauthenticated
  1746.        access.  This view is configured according to the selected
  1747.        security posture:
  1748.  
  1749.        -  For the "very-secure" posture:
  1750.  
  1751.           the <restricted> MIB view is the union of these subtrees:
  1752.               "snmp"            [RFC1907]
  1753.               "snmpEngine"      [SNMPv3-USEC]
  1754.               "snmpV3Stats"     [SNMPv3-MPC]
  1755.               "snmpV3AcStats"   [SNMPv3-ACM]
  1756.  
  1757.        -  For the "semi-secure" posture:
  1758.  
  1759.           the <restricted> MIB view is the union of these subtrees:
  1760.               "snmp"            [RFC1907]
  1761.               "snmpEngine"      [SNMPv3-USEC]
  1762.               "snmpV3Stats"     [SNMPv3-MPC]
  1763.  
  1764.  
  1765.  
  1766. Wijnen/Presuhn/McCloghrie      Expires December 1997           [Page 30]
  1767.  
  1768. Draft           Access Control Model (ACM) for SNMPv3          June 1997
  1769.  
  1770.  
  1771.               "snmpV3AcStats"   [SNMPv3-ACM]
  1772.               "system"          [RFC1907]
  1773.  
  1774.        -  For the "minimum-secure" posture:
  1775.  
  1776.           the <restricted> MIB view is the following subtree.
  1777.               "internet"        [RFC1902]
  1778.  
  1779.     -  Access rights to allow:
  1780.  
  1781.        - read-notify access for LoS "noAuth" on behalf of security
  1782.          entities that belong to the group "public" to the
  1783.          <restricted> MIB view in the context with contextName "".
  1784.  
  1785.        - read-write-notify access for LoS "auth" on behalf of security
  1786.          entities that belong to the group "public" to the
  1787.          <all> MIB view in the context with contextName "".
  1788.  
  1789.        - if privacy is supported,
  1790.          read-write-notify access for LoS "auth" on behalf of security
  1791.          entities that belong to the group "public" to the
  1792.          <all> MIB view in the context with contextName "".
  1793.  
  1794. -- Editor's note:
  1795.             If we find it useful (I do) then I will also work out
  1796.             the entries in the viewTable and viewSubtreeFamilyTable
  1797.             so that we have the above views defined.
  1798. -- End Editor's note
  1799.  
  1800.  
  1801.  
  1802.  
  1803.  
  1804.  
  1805.  
  1806.  
  1807.  
  1808.  
  1809.  
  1810.  
  1811.  
  1812.  
  1813.  
  1814.  
  1815.  
  1816.  
  1817.  
  1818.  
  1819.  
  1820.  
  1821.  
  1822.  
  1823.  
  1824.  
  1825. Wijnen/Presuhn/McCloghrie      Expires December 1997           [Page 31]
  1826.  
  1827. Draft           Access Control Model (ACM) for SNMPv3          June 1997
  1828.  
  1829.  
  1830. Table of Contents
  1831.  
  1832. 0.1 Issues                                                             2
  1833. 0.2  Change Log                                                        2
  1834. 1.  Introduction                                                       3
  1835. 1.2  Access Control                                                    3
  1836. 1.3  Local Configuration Datastore                                     3
  1837. 2.  Elements of the Model                                              5
  1838. 2.1  Groups                                                            5
  1839. 2.2  Level of Security (LoS)                                           5
  1840. 2.3  Contexts                                                          5
  1841. 2.4  Access Policy                                                     5
  1842. 3.  Elements of Procedure                                              7
  1843. 3.1  Processing the is_access_allowed service request                  7
  1844. 4.  Definitions                                                        9
  1845. 5.  Security Considerations                                           26
  1846. 5.1  Recommended Practices                                            26
  1847. 5.2  Defining Groups                                                  26
  1848. 5.3  Conformance                                                      26
  1849. 6.  Editor's Addresses                                                27
  1850. 7.  Acknowledgements                                                  27
  1851. 8.  References                                                        28
  1852. A.1.  Installation Parameters                                         29
  1853.  
  1854.  
  1855.  
  1856.  
  1857.  
  1858.  
  1859.  
  1860.  
  1861.  
  1862.  
  1863.  
  1864.  
  1865.  
  1866.  
  1867.  
  1868.  
  1869.  
  1870.  
  1871.  
  1872.  
  1873.  
  1874.  
  1875.  
  1876.  
  1877.  
  1878.  
  1879.  
  1880.  
  1881.  
  1882.  
  1883.  
  1884.  
  1885.  
  1886. Wijnen/Presuhn/McCloghrie      Expires December 1997           [Page 32]
  1887.