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-next-gen-arch-06.txt < prev    next >
Text File  |  1997-10-29  |  131KB  |  3,303 lines

  1.  
  2. INTERNET-DRAFT                                             D. Harrington
  3.                                                  Cabletron Systems, Inc.
  4.                                                               R. Presuhn
  5.                                                       BMC Software, Inc.
  6.                                                                B. Wijnen
  7.                                                IBM T. J. Watson Research
  8.                                                          28 October 1997
  9.  
  10.  
  11.                      An Architecture for Describing
  12.                        SNMP Management Frameworks
  13.                 <draft-ietf-snmpv3-next-gen-arch-06.txt>
  14.  
  15. Status of this Memo
  16.  
  17.    This document is an Internet-Draft.  Internet-Drafts are working
  18.    documents of the Internet Engineering Task Force (IETF), its areas,
  19.    and its working groups.  Note that other groups may also distribute
  20.    working documents as Internet-Drafts.
  21.  
  22.    Internet-Drafts are draft documents valid for a maximum of six months
  23.    and may be updated, replaced, or obsoleted by other documents at any
  24.    time.  It is inappropriate to use Internet-Drafts as reference
  25.    material or to cite them other than as ``work in progress.''
  26.  
  27.    To learn the current status of any Internet-Draft, please check the
  28.    ``1id-abstracts.txt'' listing contained in the Internet-Drafts Shadow
  29.    Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
  30.    munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
  31.    ftp.isi.edu (US West Coast).
  32.  
  33. Copyright Notice
  34.  
  35.    Copyright (C) The Internet Society (1997).  All Rights Reserved.
  36.  
  37. Abstract
  38.  
  39.    This document describes an architecture for describing SNMP
  40.    Management Frameworks.  The architecture is designed to be modular to
  41.    allow the evolution of the SNMP protocol standards over time.  The
  42.    major portions of the architecture are an SNMP engine containing a
  43.    Message Processing Subsystem, a Security Subsystem and an Access
  44.    Control Subsystem, and possibly multiple SNMP applications which
  45.    provide specific functional processing of management data.
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53. SNMPv3 Working Group       Expires March 1998                   [Page 1]
  54.  
  55. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  56.  
  57.  
  58. Table of Contents
  59.  
  60.    1. Introduction ................................................    5
  61.    1.1. Overview ..................................................    5
  62.    1.2. SNMP ......................................................    5
  63.    1.3. Goals of this Architecture ................................    6
  64.    1.4. Security Requirements of this Architecture ................    7
  65.    1.5. Design Decisions ..........................................    8
  66.    2. Documentation Overview ......................................    9
  67.    2.1. Document Roadmap ..........................................   11
  68.    2.2. Applicability Statement ...................................   11
  69.    2.3. Coexistence and Transition ................................   11
  70.    2.4. Transport Mappings ........................................   11
  71.    2.5. Message Processing ........................................   12
  72.    2.6. Security ..................................................   12
  73.    2.7. Access Control ............................................   12
  74.    2.8. Protocol Operations .......................................   13
  75.    2.9. Applications ..............................................   13
  76.    2.10. Structure of Management Information ......................   13
  77.    2.11. Textual Conventions ......................................   13
  78.    2.12. Conformance Statements ...................................   14
  79.    2.13. Management Information Base Modules ......................   14
  80.    2.13.1. SNMP Instrumentation MIBs ..............................   14
  81.    2.14. SNMP Framework Documents .................................   14
  82.    3. Elements of the Architecture ................................   15
  83.    3.1. The Naming of Entities ....................................   15
  84.    3.1.1. SNMP engine .............................................   16
  85.    3.1.1.1. snmpEngineID ..........................................   17
  86.    3.1.1.2. Dispatcher ............................................   17
  87.    3.1.1.3. Message Processing Subsystem ..........................   18
  88.    3.1.1.3.1. Message Processing Model ............................   18
  89.    3.1.1.4. Security Subsystem ....................................   19
  90.    3.1.1.4.1. Security Model ......................................   19
  91.    3.1.1.4.2. Security Protocol ...................................   19
  92.    3.1.2. Access Control Subsystem ................................   20
  93.    3.1.2.1. Access Control Model ..................................   20
  94.    3.1.3. Applications ............................................   20
  95.    3.1.3.1. SNMP Manager ..........................................   21
  96.    3.1.3.2. SNMP Agent ............................................   22
  97.    3.2. The Naming of Identities ..................................   23
  98.    3.2.1. Principal ...............................................   23
  99.    3.2.2. securityName ............................................   23
  100.    3.2.3. Model-dependent security ID .............................   24
  101.    3.3. The Naming of Management Information ......................   25
  102.    3.3.1. An SNMP Context .........................................   26
  103.    3.3.2. contextEngineID .........................................   26
  104.    3.3.3. contextName .............................................   27
  105.    3.3.4. scopedPDU ...............................................   27
  106.  
  107.  
  108.  
  109. SNMPv3 Working Group       Expires March 1998                   [Page 2]
  110.  
  111. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  112.  
  113.  
  114.    3.4. Other Constructs ..........................................   27
  115.    3.4.1. maxSizeResponseScopedPDU ................................   27
  116.    3.4.2. Local Configuration Datastore ...........................   27
  117.    3.4.3. securityLevel ...........................................   27
  118.    4. Abstract Service Interfaces .................................   28
  119.    4.1. Dispatcher Primitives .....................................   28
  120.    4.1.1. Generate Outgoing Request or Notification ...............   28
  121.    4.1.2. Process Incoming Request or Notification PDU ............   28
  122.    4.1.3. Generate Outgoing Response ..............................   30
  123.    4.1.4. Process Incoming Response PDU ...........................   30
  124.    4.1.5. Registering Responsibility for Handling SNMP PDUs .......   30
  125.    4.2. Message Processing Subsystem Primitives ...................   31
  126.    4.2.1. Prepare Outgoing SNMP Request or Notification Message ...   31
  127.    4.2.2. Prepare an Outgoing SNMP Response Message ...............   32
  128.    4.2.3. Prepare Data Elements from an Incoming SNMP Message .....   33
  129.    4.3. Access Control Subsystem Primitives .......................   33
  130.    4.4. Security Subsystem Primitives .............................   34
  131.    4.4.1. Generate a Request or Notification Message ..............   34
  132.    4.4.2. Process Incoming Message ................................   34
  133.    4.4.3. Generate a Response Message .............................   35
  134.    4.5. Common Primitives .........................................   35
  135.    4.5.1. Release State Reference Information .....................   35
  136.    4.6. Scenario Diagrams .........................................   36
  137.    4.6.1. Command Generator or Notification Originator ............   36
  138.    4.6.2. Scenario Diagram for a Command Responder Application ....   37
  139.    5. Managed Object Definitions for SNMP Management Frameworks ...   38
  140.    6. Intellectual Property .......................................   47
  141.    7. Acknowledgements ............................................   48
  142.    8. Security Considerations .....................................   49
  143.    9. References ..................................................   50
  144.    10. Editor's Addresses .........................................   52
  145.    A. Guidelines for Model Designers ..............................   53
  146.    A.1. Security Model Design Requirements ........................   53
  147.    A.1.1. Threats .................................................   53
  148.    A.1.2. Security Processing .....................................   54
  149.    A.1.3. Validate the security-stamp in a received message .......   54
  150.    A.1.4. Security MIBs ...........................................   55
  151.    A.1.5. Cached Security Data ....................................   55
  152.    A.2. Message Processing Model Design Requirements ..............   55
  153.    A.2.1. Receiving an SNMP Message from the Network ..............   56
  154.    A.2.2. Sending an SNMP Message to the Network ..................   56
  155.    A.3. Application Design Requirements ...........................   56
  156.    A.3.1. Applications that Initiate Messages .....................   57
  157.    A.3.2. Applications that Receive Responses .....................   57
  158.    A.3.3. Applications that Receive Asynchronous Messages .........   57
  159.    A.3.4. Applications that Send Responses ........................   58
  160.    A.4. Access Control Model Design Requirements ..................   58
  161.    B. Issues ......................................................   59
  162.  
  163.  
  164.  
  165. SNMPv3 Working Group       Expires March 1998                   [Page 3]
  166.  
  167. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  168.  
  169.  
  170.    B.1. Open Issues ...............................................   59
  171.    B.2. Change Log ................................................   59
  172.    C. Full Copyright Statement ....................................   59
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  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. SNMPv3 Working Group       Expires March 1998                   [Page 4]
  222.  
  223. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  224.  
  225.  
  226. 1.  Introduction
  227.  
  228. 1.1.  Overview
  229.  
  230.    This document defines a vocabulary for describing SNMP Management
  231.    Frameworks, and an architecture for describing the major portions of
  232.    SNMP Management Frameworks.
  233.  
  234.    This document does not provide a general introduction to SNMP. Other
  235.    documents and books can provide a much better introduction to SNMP.
  236.    Nor does this document provide a history of SNMP. That also can be
  237.    found in books and other documents.
  238.  
  239.    Section 1 describes the purpose, goals, and design decisions of this
  240.    architecture.
  241.  
  242.    Section 2 describes various types of documents which define SNMP
  243.    Frameworks, and how they fit into this architecture. It also provides
  244.    a minimal road map to the documents which have previously defined
  245.    SNMP frameworks.
  246.  
  247.    Section 3 details the vocabulary of this architecture and its pieces.
  248.    This section is important for understanding the remaining sections,
  249.    and for understanding documents which are written to fit within this
  250.    architecture.
  251.  
  252.    Section 4 describes the primitives used for the abstract service
  253.    interfaces between the various subsystems, models and applications
  254.    within this architecture.
  255.  
  256.    Section 5 defines a collection of managed objects used to instrument
  257.    SNMP entities within this architecture.
  258.  
  259.    Sections 6, 7, 8, and 9 are administrative in nature.
  260.  
  261.    Appendix A contains guidelines for designers of Models which are
  262.    expected to fit within this architecture.
  263.  
  264.    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
  265.    "SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and "OPTIONAL" in this
  266.    document are to be interpreted as described in [RFC2119].
  267.  
  268. 1.2.  SNMP
  269.  
  270.    An SNMP management system contains:
  271.  
  272.       -  several (potentially many) nodes, each with an SNMP entity
  273.          containing command responder and notification originator
  274.  
  275.  
  276.  
  277. SNMPv3 Working Group       Expires March 1998                   [Page 5]
  278.  
  279. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  280.  
  281.  
  282.          applications, which have access to management instrumentation
  283.          (traditionally called agents);
  284.  
  285.       -  at least one SNMP entity containing command generator and/or
  286.          notification receiver applications (traditionally called a
  287.          manager) and,
  288.  
  289.       -  a management protocol, used to convey management information
  290.          between the SNMP entities.
  291.  
  292.    SNMP entities executing command generator and notification receiver
  293.    applications monitor and control managed elements.  Managed elements
  294.    are devices such as hosts, routers, terminal servers, etc., which are
  295.    monitored and controlled via access to their management information.
  296.  
  297.    It is the purpose of this document to define an architecture which
  298.    can evolve to realize effective management in a variety of
  299.    configurations and environments. The architecture has been designed
  300.    to meet the needs of implementations of:
  301.  
  302.       -  minimal SNMP entities with command responder and/or
  303.          notification originator applications (traditionally called SNMP
  304.          agents),
  305.  
  306.       -  SNMP entities with proxy forwarder applications (traditionally
  307.          called SNMP proxy agents),
  308.  
  309.       -  command line driven SNMP entities with command generator and/or
  310.          notification receiver applications (traditionally called SNMP
  311.          command line managers),
  312.  
  313.       -  SNMP entities with  command generator and/or notification
  314.          receiver, plus command responder and/or notification originator
  315.          applications (traditionally called SNMP mid-level managers or
  316.          dual-role entities),
  317.  
  318.       -  SNMP entities with command generator and/or notification
  319.          receiver and possibly other types of applications for managing
  320.          a potentially very large number of managed nodes (traditionally
  321.          called (network) management stations).
  322.  
  323. 1.3.  Goals of this Architecture
  324.  
  325.    This architecture was driven by the following goals:
  326.  
  327.       -  Use existing materials as much as possible. It is heavily based
  328.          on previous work, informally known as SNMPv2u and SNMPv2*.
  329.  
  330.  
  331.  
  332.  
  333. SNMPv3 Working Group       Expires March 1998                   [Page 6]
  334.  
  335. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  336.  
  337.  
  338.       -  Address the need for secure SET support, which is considered
  339.          the most important deficiency in SNMPv1 and SNMPv2c.
  340.  
  341.       -  Make it possible to move portions of the architecture forward
  342.          in the standards track, even if consensus has not been reached
  343.          on all pieces.
  344.  
  345.       -  Define an architecture that allows for longevity of the SNMP
  346.          Frameworks that have been and will be defined.
  347.  
  348.       -  Keep SNMP as simple as possible.
  349.  
  350.       -  Make it relatively inexpensive to deploy a minimal conforming
  351.          implementation.
  352.  
  353.       -  Make it possible to upgrade portions of SNMP as new approaches
  354.          become available, without disrupting an entire SNMP framework.
  355.  
  356.       -  Make it possible to support features required in large
  357.          networks, but make the expense of supporting a feature directly
  358.          related to the support of the feature.
  359.  
  360. 1.4.  Security Requirements of this Architecture
  361.  
  362.    Several of the classical threats to network protocols are applicable
  363.    to the management problem and therefore would be applicable to any
  364.    Security Model used in an SNMP Management Framework. Other threats
  365.    are not applicable to the management problem.  This section discusses
  366.    principal threats, secondary threats, and threats which are of lesser
  367.    importance.
  368.  
  369.    The principal threats against which any Security Model used within
  370.    this architecture SHOULD provide protection are:
  371.  
  372.    Modification of Information
  373.       The modification threat is the danger that some unauthorized SNMP
  374.       entity may alter in-transit SNMP messages generated on behalf of
  375.       an authorized principal in such a way as to effect unauthorized
  376.       management operations, including falsifying the value of an
  377.       object.
  378.  
  379.    Masquerade
  380.       The masquerade threat is the danger that management operations not
  381.       authorized for some principal may be attempted by assuming the
  382.       identity of another principal that has the appropriate
  383.       authorizations.
  384.  
  385.    Message Stream Modification
  386.  
  387.  
  388.  
  389. SNMPv3 Working Group       Expires March 1998                   [Page 7]
  390.  
  391. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  392.  
  393.  
  394.       The SNMP protocol is typically based upon a connectionless
  395.       transport service which may operate over any subnetwork service.
  396.       The re-ordering, delay or replay of messages can and does occur
  397.       through the natural operation of many such subnetwork services.
  398.       The message stream modification threat is the danger that messages
  399.       may be maliciously re-ordered, delayed or replayed to an extent
  400.       which is greater than can occur through the natural operation of a
  401.       subnetwork service, in order to effect unauthorized management
  402.       operations.
  403.  
  404.    Disclosure
  405.       The disclosure threat is the danger of eavesdropping on the
  406.       exchanges between SNMP engines.  Protecting against this threat
  407.       may be required as a matter of local policy.
  408.  
  409.    There are at least two threats against which a Security Model within
  410.    this architecture need not protect.
  411.  
  412.    Denial of Service
  413.       A Security Model need not attempt to address the broad range of
  414.       attacks by which service on behalf of authorized users is denied.
  415.       Indeed, such denial-of-service attacks are in many cases
  416.       indistinguishable from the type of network failures with which any
  417.       viable management protocol must cope as a matter of course.
  418.  
  419.    Traffic Analysis
  420.       A Security Model need not attempt to address traffic analysis
  421.       attacks.  Many traffic patterns are predictable - entities may be
  422.       managed on a regular basis by a relatively small number of
  423.       management stations - and therefore there is no significant
  424.       advantage afforded by protecting against traffic analysis.
  425.  
  426. 1.5.  Design Decisions
  427.  
  428.    Various design decisions were made in support of the goals of the
  429.    architecture and the security requirements:
  430.  
  431.       - Architecture
  432.          An architecture should be defined which identifies the
  433.          conceptual boundaries between the documents. Subsystems should
  434.          be defined which describe the abstract services provided by
  435.          specific portions of an SNMP framework. Abstract service
  436.          interfaces, as described by service primitives, define the
  437.          abstract boundaries between documents, and the abstract
  438.          services that are provided by the conceptual subsystems of an
  439.          SNMP framework.
  440.  
  441.       - Self-contained Documents
  442.  
  443.  
  444.  
  445. SNMPv3 Working Group       Expires March 1998                   [Page 8]
  446.  
  447. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  448.  
  449.  
  450.          Elements of procedure plus the MIB objects which are needed for
  451.          processing for a specific portion of an SNMP framework should
  452.          be defined in the same document, and as much as possible,
  453.          should not be referenced in other documents. This allows pieces
  454.          to be designed and documented as independent and self-contained
  455.          parts, which is consistent with the general SNMP MIB module
  456.          approach.  As portions of SNMP change over time, the documents
  457.          describing other portions of SNMP are not directly impacted.
  458.          This modularity allows, for example, Security Models,
  459.          authentication and privacy mechanisms, and message formats to
  460.          be upgraded and supplemented as the need arises. The self-
  461.          contained documents can move along the standards track on
  462.          different time-lines.
  463.  
  464.       - Threats
  465.          The Security Models in the Security Subsystem SHOULD protect
  466.          against the principal threats: modification of information,
  467.          masquerade, message stream modification and disclosure.  They
  468.          do not need to protect against denial of service and traffic
  469.          analysis.
  470.  
  471.       - Remote Configuration
  472.          The Security and Access Control Subsystems add a whole new set
  473.          of SNMP configuration parameters.  The Security Subsystem also
  474.          requires frequent changes of secrets at the various SNMP
  475.          entities. To make this deployable in a large operational
  476.          environment, these SNMP parameters must be able to be remotely
  477.          configured.
  478.  
  479.       - Controlled Complexity
  480.          It is recognized that producers of simple managed devices want
  481.          to keep the resources used by SNMP to a minimum.  At the same
  482.          time, there is a need for more complex configurations which can
  483.          spend more resources for SNMP and thus provide more
  484.          functionality.  The design tries to keep the competing
  485.          requirements of these two environments in balance and allows
  486.          the more complex environments to logically extend the simple
  487.          environment.
  488.  
  489. 2.  Documentation Overview
  490.  
  491.    The following figure shows the set of documents that fit within the
  492.    SNMP Architecture.
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501. SNMPv3 Working Group       Expires March 1998                   [Page 9]
  502.  
  503. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  504.  
  505.  
  506.    +------------------------- Document Set ----------------------------+
  507.    |                                                                   |
  508.    | +------------+            +-----------------+  +----------------+ |
  509.    | | Document * |            | Applicability * |  | Coexistence  * | |
  510.    | | Roadmap    |            | Statement       |  | & Transition   | |
  511.    | +------------+            +-----------------+  +----------------+ |
  512.    |                                                                   |
  513.    | +---------------------------------------------------------------+ |
  514.    | | Message Handling                                              | |
  515.    | | +----------------+  +-----------------+  +-----------------+  | |
  516.    | | | Transport      |  | Message         |  | Security        |  | |
  517.    | | | Mappings       |  | Processing and  |  |                 |  | |
  518.    | | |                |  | Dispatcher      |  |                 |  | |
  519.    | | +----------------+  +-----------------+  +-----------------+  | |
  520.    | +---------------------------------------------------------------+ |
  521.    |                                                                   |
  522.    | +---------------------------------------------------------------+ |
  523.    | | PDU Handling                                                  | |
  524.    | | +----------------+  +-----------------+  +-----------------+  | |
  525.    | | | Protocol       |  | Applications    |  | Access          |  | |
  526.    | | | Operations     |  |                 |  | Control         |  | |
  527.    | | +----------------+  +-----------------+  +-----------------+  | |
  528.    | +---------------------------------------------------------------+ |
  529.    |                                                                   |
  530.    | +---------------------------------------------------------------+ |
  531.    | | Information Model                                             | |
  532.    | | +--------------+   +--------------+    +---------------+      | |
  533.    | | | Structure of |   | Textual      |    | Conformance   |      | |
  534.    | | | Management   |   | Conventions  |    | Statements    |      | |
  535.    | | | Information  |   |              |    |               |      | |
  536.    | | +--------------+   +--------------+    +---------------+      | |
  537.    | +---------------------------------------------------------------+ |
  538.    |                                                                   |
  539.    | +---------------------------------------------------------------+ |
  540.    | | MIBs                                                          | |
  541.    | | +-------------+ +-------------+ +----------+ +----------+     | |
  542.    | | | Standard v1 | | Standard v1 | | Historic | | Draft v2 |     | |
  543.    | | | RFC1157     | | RFC1212     | | RFC14xx  | | RFC19xx  |     | |
  544.    | | | format      | | format      | | format   | | format   |     | |
  545.    | | +-------------+ +-------------+ +----------+ +----------+     | |
  546.    | +---------------------------------------------------------------+ |
  547.    |                                                                   |
  548.    +-------------------------------------------------------------------+
  549.  
  550.    Those marked with an asterisk (*) are expected to be written in the
  551.    future. Each of these documents may be replaced or supplemented.
  552.    This Architecture document specifically describes how new documents
  553.    fit into the set of documents in the area of Message and PDU
  554.  
  555.  
  556.  
  557. SNMPv3 Working Group       Expires March 1998                  [Page 10]
  558.  
  559. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  560.  
  561.  
  562.    handling.
  563.  
  564. 2.1.  Document Roadmap
  565.  
  566.    One or more documents may be written to describe how sets of
  567.    documents taken together form specific Frameworks. The configuration
  568.    of document sets might change over time, so the "road map" should be
  569.    maintained in a document separate from the standards documents
  570.    themselves.
  571.  
  572. 2.2.  Applicability Statement
  573.  
  574.    SNMP is used in networks that vary widely in size and complexity, by
  575.    organizations that vary widely in their requirements of management.
  576.    Some models will be designed to address specific problems of
  577.    management, such as message security.
  578.  
  579.    One or more documents may be written to describe the environments to
  580.    which certain versions of SNMP or models within SNMP would be
  581.    appropriately applied, and those to which a given model might be
  582.    inappropriately applied.
  583.  
  584. 2.3.  Coexistence and Transition
  585.  
  586.    The purpose of an evolutionary architecture is to permit new models
  587.    to replace or supplement existing models. The interactions between
  588.    models could result in incompatibilities, security "holes", and other
  589.    undesirable effects.
  590.  
  591.    The purpose of Coexistence documents is to detail recognized
  592.    anomalies and to describe required and recommended behaviors for
  593.    resolving the interactions between models within the architecture.
  594.  
  595.    Coexistence documents may be prepared separately from model
  596.    definition documents, to describe and resolve interaction anomalies
  597.    between a model definition and one or more other model definitions.
  598.  
  599.    Additionally, recommendations for transitions between models may also
  600.    be described, either in a coexistence document or in a separate
  601.    document.
  602.  
  603. 2.4.  Transport Mappings
  604.  
  605.    SNMP messages are sent over various transports. It is the purpose of
  606.    Transport Mapping documents to define how the mapping between SNMP
  607.    and the transport is done.
  608.  
  609.  
  610.  
  611.  
  612.  
  613. SNMPv3 Working Group       Expires March 1998                  [Page 11]
  614.  
  615. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  616.  
  617.  
  618. 2.5.  Message Processing
  619.  
  620.    A Message Processing Model document defines a message format, which
  621.    is typically identified by a version field in an SNMP message header.
  622.    The document may also define a MIB module for use in message
  623.    processing and for instrumentation of version-specific interactions.
  624.  
  625.    An SNMP engine includes one or more Message Processing Models, and
  626.    thus may support sending and receiving multiple versions of SNMP
  627.    messages.
  628.  
  629. 2.6.  Security
  630.  
  631.    Some environments require secure protocol interactions. Security is
  632.    normally applied at two different stages:
  633.  
  634.       -  in the transmission/receipt of messages, and
  635.  
  636.       -  in the processing of the contents of messages.
  637.  
  638.    For purposes of this document, "security" refers to message-level
  639.    security; "access control" refers to the security applied to protocol
  640.    operations.
  641.  
  642.    Authentication, encryption, and timeliness checking are common
  643.    functions of message level security.
  644.  
  645.    A security document describes a Security Model, the threats against
  646.    which the model protects, the goals of the Security Model, the
  647.    protocols which it uses to meet those goals, and it may define a MIB
  648.    module to describe the data used during processing, and to allow the
  649.    remote configuration of message-level security parameters, such as
  650.    passwords.
  651.  
  652.    An SNMP engine may support multiple Security Models concurrently.
  653.  
  654. 2.7.  Access Control
  655.  
  656.    During processing, it may be required to control access to managed
  657.    objects for operations.
  658.  
  659.    An Access Control Model defines mechanisms to determine whether
  660.    access to a managed object should be allowed.  An Access Control
  661.    Model may define a MIB module used during processing and to allow the
  662.    remote configuration of access control policies.
  663.  
  664.  
  665.  
  666.  
  667.  
  668.  
  669. SNMPv3 Working Group       Expires March 1998                  [Page 12]
  670.  
  671. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  672.  
  673.  
  674. 2.8.  Protocol Operations
  675.  
  676.    SNMP messages encapsulate an SNMP Protocol Data Unit (PDU). It is the
  677.    purpose of a Protocol Operations document to define the operations of
  678.    the protocol with respect to the processing of the PDUs.
  679.  
  680.    An application document defines which Protocol Operations documents
  681.    are supported by the application.
  682.  
  683. 2.9.  Applications
  684.  
  685.    An SNMP entity normally includes a number of applications.
  686.    Applications use the services of an SNMP engine to accomplish
  687.    specific tasks. They coordinate the processing of management
  688.    information operations, and may use SNMP messages to communicate with
  689.    other SNMP entities.
  690.  
  691.    Applications documents describe the purpose of an application, the
  692.    services required of the associated SNMP engine, and the protocol
  693.    operations and informational model that the application uses to
  694.    perform management operations.
  695.  
  696.    An application document defines which set of documents are used to
  697.    specifically define the structure of management information, textual
  698.    conventions, conformance requirements, and operations supported by
  699.    the application.
  700.  
  701. 2.10.  Structure of Management Information
  702.  
  703.    Management information is viewed as a collection of managed objects,
  704.    residing in a virtual information store, termed the Management
  705.    Information Base (MIB). Collections of related objects are defined in
  706.    MIB modules.
  707.  
  708.    It is the purpose of a Structure of Management Information document
  709.    to establish the syntax for defining objects, modules, and other
  710.    elements of managed information.
  711.  
  712. 2.11.  Textual Conventions
  713.  
  714.    When designing a MIB module, it is often useful to define new types
  715.    similar to those defined in the SMI, but with more precise semantics,
  716.    or which have special semantics associated with them. These newly
  717.    defined types are termed textual conventions, and may defined in
  718.    separate documents, or within a MIB module.
  719.  
  720.  
  721.  
  722.  
  723.  
  724.  
  725. SNMPv3 Working Group       Expires March 1998                  [Page 13]
  726.  
  727. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  728.  
  729.  
  730. 2.12.  Conformance Statements
  731.  
  732.    It may be useful to define the acceptable lower-bounds of
  733.    implementation, along with the actual level of implementation
  734.    achieved. It is the purpose of Conformance Statements to define the
  735.    notation used for these purposes.
  736.  
  737. 2.13.  Management Information Base Modules
  738.  
  739.    MIB documents describe collections of managed objects which
  740.    instrument some aspect of a managed node.
  741.  
  742. 2.13.1.  SNMP Instrumentation MIBs
  743.  
  744.    An SNMP MIB document may define a collection of managed objects which
  745.    instrument the SNMP protocol itself. In addition, MIB modules may be
  746.    defined within the documents which describe portions of the SNMP
  747.    architecture, such as the documents for Message processing Models,
  748.    Security Models, etc. for the purpose of instrumenting those Models,
  749.    and for the purpose of allowing remote configuration of the Model.
  750.  
  751. 2.14.  SNMP Framework Documents
  752.  
  753.    This architecture is designed to allow an orderly evolution of
  754.    portions of SNMP Frameworks.
  755.  
  756.    Throughout the rest of this document, the term "subsystem" refers to
  757.    an abstract and incomplete specification of a portion of a Framework,
  758.    that is further refined by a model specification.
  759.  
  760.    A "model" describes a specific design of a subsystem, defining
  761.    additional constraints and rules for conformance to the model.  A
  762.    model is sufficiently detailed to make it possible to implement the
  763.    specification.
  764.  
  765.    An "implementation" is an instantiation of a subsystem, conforming to
  766.    one or more specific models.
  767.  
  768.    SNMP version 1 (SNMPv1), is the original Internet-standard Network
  769.    Management Framework, as described in RFCs 1155, 1157, and 1212.
  770.  
  771.    SNMP version 2 (SNMPv2), is the SNMPv2 Framework as derived from the
  772.    SNMPv1 Framework. It is described in RFCs 1902-1907. SNMPv2 has no
  773.    message definition.
  774.  
  775.    The Community-based SNMP version 2 (SNMPv2c), is an experimental SNMP
  776.    Framework which supplements the SNMPv2 Framework, as described in
  777.    RFC1901. It adds the SNMPv2c message format, which is similar to the
  778.  
  779.  
  780.  
  781. SNMPv3 Working Group       Expires March 1998                  [Page 14]
  782.  
  783. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  784.  
  785.  
  786.    SNMPv1 message format.
  787.  
  788.    SNMP version 3 (SNMPv3), is an extensible SNMP Framework which
  789.    supplements the SNMPv2 Framework, by supporting the following:
  790.  
  791.       -  a new SNMP message format,
  792.  
  793.       -  Security for Messages, and
  794.  
  795.       -  Access Control.
  796.  
  797.    Other SNMP Frameworks, i.e., other configurations of implemented
  798.    subsystems, are expected to also be consistent with this
  799.    architecture.
  800.  
  801. 3.  Elements of the Architecture
  802.  
  803.    This section describes the various elements of the architecture and
  804.    how they are named. There are three kinds of naming:
  805.  
  806.       1) the naming of entities,
  807.  
  808.       2) the naming of identities, and
  809.  
  810.       3) the naming of management information.
  811.  
  812.    This architecture also defines some names for other constructs that
  813.    are used in the documentation.
  814.  
  815. 3.1.  The Naming of Entities
  816.  
  817.    An SNMP entity is an implementation of this architecture. Each such
  818.    SNMP entity consists of an SNMP engine and one or more associated
  819.    applications.
  820.  
  821.    The following figure shows details about an SNMP entity and the
  822.    components within it.
  823.  
  824.  
  825.  
  826.  
  827.  
  828.  
  829.  
  830.  
  831.  
  832.  
  833.  
  834.  
  835.  
  836.  
  837. SNMPv3 Working Group       Expires March 1998                  [Page 15]
  838.  
  839. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  840.  
  841.  
  842.    +-------------------------------------------------------------------+
  843.    |  SNMP entity                                                      |
  844.    |                                                                   |
  845.    |  +-------------------------------------------------------------+  |
  846.    |  |  SNMP engine (identified by snmpEngineID)                   |  |
  847.    |  |                                                             |  |
  848.    |  |  +------------+ +------------+ +-----------+ +-----------+  |  |
  849.    |  |  |            | |            | |           | |           |  |  |
  850.    |  |  | Dispatcher | | Message    | | Security  | | Access    |  |  |
  851.    |  |  |            | | Processing | | Subsystem | | Control   |  |  |
  852.    |  |  |            | | Subsystem  | |           | | Subsystem |  |  |
  853.    |  |  |            | |            | |           | |           |  |  |
  854.    |  |  +------------+ +------------+ +-----------+ +-----------+  |  |
  855.    |  |                                                             |  |
  856.    |  +-------------------------------------------------------------+  |
  857.    |                                                                   |
  858.    |  +-------------------------------------------------------------+  |
  859.    |  |  Application(s)                                             |  |
  860.    |  |                                                             |  |
  861.    |  |  +-------------+  +--------------+  +--------------+        |  |
  862.    |  |  | Command     |  | Notification |  | Proxy        |        |  |
  863.    |  |  | Generator   |  | Receiver     |  | Forwarder    |        |  |
  864.    |  |  +-------------+  +--------------+  +--------------+        |  |
  865.    |  |                                                             |  |
  866.    |  |  +-------------+  +--------------+  +--------------+        |  |
  867.    |  |  | Command     |  | Notification |  | Other        |        |  |
  868.    |  |  | Responder   |  | Originator   |  |              |        |  |
  869.    |  |  +-------------+  +--------------+  +--------------+        |  |
  870.    |  |                                                             |  |
  871.    |  +-------------------------------------------------------------+  |
  872.    |                                                                   |
  873.    +-------------------------------------------------------------------+
  874.  
  875. 3.1.1.  SNMP engine
  876.  
  877.    An SNMP engine provides services for sending and receiving messages,
  878.    authenticating and encrypting messages, and controlling access to
  879.    managed objects. There is a one-to-one association between an SNMP
  880.    engine and the SNMP entity which contains it.
  881.  
  882.    The engine contains:
  883.  
  884.       1) a Dispatcher,
  885.  
  886.       2) a Message Processing Subsystem,
  887.  
  888.       3) a Security Subsystem, and
  889.  
  890.  
  891.  
  892.  
  893. SNMPv3 Working Group       Expires March 1998                  [Page 16]
  894.  
  895. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  896.  
  897.  
  898.       4) an Access Control Subsystem.
  899.  
  900. 3.1.1.1.  snmpEngineID
  901.  
  902.    Within an administrative domain, an snmpEngineID is the unique and
  903.    unambiguous identifier of an SNMP engine. Since there is a one-to-one
  904.    association between SNMP engines and SNMP entities, it also uniquely
  905.    and unambiguously identifies the SNMP entity.
  906.  
  907. 3.1.1.2.  Dispatcher
  908.  
  909.    There is only one Dispatcher in an SNMP engine. It allows for
  910.    concurrent support of multiple versions of SNMP messages in the SNMP
  911.    engine. It does so by:
  912.  
  913.       -  sending and receiving SNMP messages to/from the network,
  914.  
  915.       -  determining the version of an SNMP message and interacting with
  916.          the corresponding Message Processing Model,
  917.  
  918.       -  providing an abstract interface to SNMP applications for
  919.          delivery of a PDU to an application.
  920.  
  921.       -  providing an abstract interface for SNMP applications that
  922.          allows them to send a PDU to a remote SNMP entity.
  923.  
  924.  
  925.  
  926.  
  927.  
  928.  
  929.  
  930.  
  931.  
  932.  
  933.  
  934.  
  935.  
  936.  
  937.  
  938.  
  939.  
  940.  
  941.  
  942.  
  943.  
  944.  
  945.  
  946.  
  947.  
  948.  
  949. SNMPv3 Working Group       Expires March 1998                  [Page 17]
  950.  
  951. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  952.  
  953.  
  954. 3.1.1.3.  Message Processing Subsystem
  955.  
  956.    The Message Processing Subsystem is responsible for preparing
  957.    messages for sending, and extracting data from received messages.
  958.  
  959.    The Message Processing Subsystem potentially contains multiple
  960.    Message Processing Models as shown in the next figure.
  961.  
  962.    * One or more Message Processing Models may be present.
  963.  
  964.    +------------------------------------------------------------------+
  965.    |                                                                  |
  966.    |  Message Processing Subsystem                                    |
  967.    |                                                                  |
  968.    |  +------------+  +------------+  +------------+  +------------+  |
  969.    |  |          * |  |          * |  |          * |  |          * |  |
  970.    |  | SNMPv3     |  | SNMPv1     |  | SNMPv2c    |  | Other      |  |
  971.    |  | Message    |  | Message    |  | Message    |  | Message    |  |
  972.    |  | Processing |  | Processing |  | Processing |  | Processing |  |
  973.    |  | Model      |  | Model      |  | Model      |  | Model      |  |
  974.    |  |            |  |            |  |            |  |            |  |
  975.    |  +------------+  +------------+  +------------+  +------------+  |
  976.    |                                                                  |
  977.    +------------------------------------------------------------------+
  978.  
  979. 3.1.1.3.1.  Message Processing Model
  980.  
  981.    Each Message Processing Model defines the format of a particular
  982.    version of an SNMP message and coordinates the preparation and
  983.    extraction of each such version-specific message format.
  984.  
  985.  
  986.  
  987.  
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994.  
  995.  
  996.  
  997.  
  998.  
  999.  
  1000.  
  1001.  
  1002.  
  1003.  
  1004.  
  1005. SNMPv3 Working Group       Expires March 1998                  [Page 18]
  1006.  
  1007. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  1008.  
  1009.  
  1010. 3.1.1.4.  Security Subsystem
  1011.  
  1012.    The Security Subsystem provides security services such as the
  1013.    authentication and privacy of messages and potentially contains
  1014.    multiple Security Models as shown in the following figure
  1015.  
  1016.    * One or more Security Models may be present.
  1017.  
  1018.    +------------------------------------------------------------------+
  1019.    |                                                                  |
  1020.    |  Security Subsystem                                              |
  1021.    |                                                                  |
  1022.    |  +----------------+  +-----------------+  +-------------------+  |
  1023.    |  |              * |  |               * |  |                 * |  |
  1024.    |  | User-Based     |  | Other           |  | Other             |  |
  1025.    |  | Security       |  | Security        |  | Security          |  |
  1026.    |  | Model          |  | Model           |  | Model             |  |
  1027.    |  |                |  |                 |  |                   |  |
  1028.    |  +----------------+  +-----------------+  +-------------------+  |
  1029.    |                                                                  |
  1030.    +------------------------------------------------------------------+
  1031.  
  1032. 3.1.1.4.1.  Security Model
  1033.  
  1034.    A Security Model defines the threats against which it protects, the
  1035.    goals of its services, and the security protocols used to provide
  1036.    security services such as authentication and privacy.
  1037.  
  1038. 3.1.1.4.2.  Security Protocol
  1039.  
  1040.    A Security Protocol defines the mechanisms, procedures, and MIB data
  1041.    used to provide a security service such as authentication or privacy.
  1042.  
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.  
  1061. SNMPv3 Working Group       Expires March 1998                  [Page 19]
  1062.  
  1063. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  1064.  
  1065.  
  1066. 3.1.2.  Access Control Subsystem
  1067.  
  1068.    The Access Control Subsystem provides authorization services by means
  1069.    of one or more Access Control Models.
  1070.  
  1071.    +------------------------------------------------------------------+
  1072.    |                                                                  |
  1073.    |  Access Control Subsystem                                        |
  1074.    |                                                                  |
  1075.    |  +---------------+   +-----------------+   +------------------+  |
  1076.    |  |             * |   |               * |   |                * |  |
  1077.    |  | View-Based    |   | Other           |   | Other            |  |
  1078.    |  | Access        |   | Access          |   | Access           |  |
  1079.    |  | Control       |   | Control         |   | Control          |  |
  1080.    |  | Model         |   | Model           |   | Model            |  |
  1081.    |  |               |   |                 |   |                  |  |
  1082.    |  +---------------+   +-----------------+   +------------------+  |
  1083.    |                                                                  |
  1084.    +------------------------------------------------------------------+
  1085.  
  1086. 3.1.2.1.  Access Control Model
  1087.  
  1088.    An Access Control Model defines a particular access decision function
  1089.    in order to support decisions regarding access rights.
  1090.  
  1091. 3.1.3.  Applications
  1092.  
  1093.    There are several types of applications, including:
  1094.  
  1095.       -  command generators, which monitor and manipulate management
  1096.          data,
  1097.  
  1098.       -  command responders, which provide access to management data,
  1099.  
  1100.       -  notification originators, which initiate asynchronous messages,
  1101.  
  1102.       -  notification receivers, which process asynchronous messages,
  1103.          and
  1104.  
  1105.       -  proxy forwarders, which forward messages between entities.
  1106.  
  1107.    These applications make use of the services provided by the SNMP
  1108.    engine.
  1109.  
  1110.  
  1111.  
  1112.  
  1113.  
  1114.  
  1115.  
  1116.  
  1117. SNMPv3 Working Group       Expires March 1998                  [Page 20]
  1118.  
  1119. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  1120.  
  1121.  
  1122. 3.1.3.1.  SNMP Manager
  1123.  
  1124.    An SNMP entity containing one or more command generator and/or
  1125.    notification receiver applications (along with their associated SNMP
  1126.    engine) has traditionally been called an SNMP manager.
  1127.    * One or more models may be present.
  1128.  
  1129.                        (traditional SNMP manager)
  1130.    +-------------------------------------------------------------------+
  1131.    | +--------------+  +--------------+  +--------------+  SNMP entity |
  1132.    | | NOTIFICATION |  | NOTIFICATION |  |   COMMAND    |              |
  1133.    | |  ORIGINATOR  |  |   RECEIVER   |  |  GENERATOR   |              |
  1134.    | | applications |  | applications |  | applications |              |
  1135.    | +--------------+  +--------------+  +--------------+              |
  1136.    |         ^                ^                 ^                      |
  1137.    |         |                |                 |                      |
  1138.    |         v                v                 v                      |
  1139.    |         +-------+--------+-----------------+                      |
  1140.    |                 ^                                                 |
  1141.    |                 |     +---------------------+  +----------------+ |
  1142.    |                 |     | Message Processing  |  | Security       | |
  1143.    | Dispatcher      v     | Subsystem           |  | Subsystem      | |
  1144.    | +-------------------+ |     +------------+  |  |                | |
  1145.    | | PDU Dispatcher    | |  +->| v1MP     * |<--->| +------------+ | |
  1146.    | |                   | |  |  +------------+  |  | | Other      | | |
  1147.    | |                   | |  |  +------------+  |  | | Security   | | |
  1148.    | |                   | |  +->| v2cMP    * |<--->| | Model      | | |
  1149.    | | Message           | |  |  +------------+  |  | +------------+ | |
  1150.    | | Dispatcher  <--------->+                  |  |                | |
  1151.    | |                   | |  |  +------------+  |  | +------------+ | |
  1152.    | |                   | |  +->| v3MP     * |<--->| | User-based | | |
  1153.    | | Transport         | |  |  +------------+  |  | | Security   | | |
  1154.    | | Mapping           | |  |  +------------+  |  | | Model      | | |
  1155.    | | (e.g RFC1906)     | |  +->| otherMP  * |<--->| +------------+ | |
  1156.    | +-------------------+ |     +------------+  |  |                | |
  1157.    |          ^            +---------------------+  +----------------+ |
  1158.    |          |                                                        |
  1159.    |          v                                                        |
  1160.    +-------------------------------------------------------------------+
  1161.    +-----+ +-----+       +-------+
  1162.    | UDP | | IPX | . . . | other |
  1163.    +-----+ +-----+       +-------+
  1164.       ^       ^              ^
  1165.       |       |              |
  1166.       v       v              v
  1167.    +------------------------------+
  1168.    |           Network            |
  1169.    +------------------------------+
  1170.  
  1171.  
  1172.  
  1173. SNMPv3 Working Group       Expires March 1998                  [Page 21]
  1174.  
  1175. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  1176.  
  1177.  
  1178. 3.1.3.2.  SNMP Agent
  1179.  
  1180.    An SNMP entity containing one or more command responder and/or
  1181.    notification originator applications (along with their associated
  1182.    SNMP engine) has traditionally been called an SNMP agent.
  1183.    +------------------------------+
  1184.    |           Network            |
  1185.    +------------------------------+
  1186.       ^       ^              ^
  1187.       |       |              |
  1188.       v       v              v
  1189.    +-----+ +-----+       +-------+
  1190.    | UDP | | IPX | . . . | other |
  1191.    +-----+ +-----+       +-------+              (traditional SNMP agent)
  1192.    +-------------------------------------------------------------------+
  1193.    |              ^                                                    |
  1194.    |              |        +---------------------+  +----------------+ |
  1195.    |              |        | Message Processing  |  | Security       | |
  1196.    | Dispatcher   v        | Subsystem           |  | Subsystem      | |
  1197.    | +-------------------+ |     +------------+  |  |                | |
  1198.    | | Transport         | |  +->| v1MP     * |<--->| +------------+ | |
  1199.    | | Mapping           | |  |  +------------+  |  | | Other      | | |
  1200.    | | (e.g. RFC1906)    | |  |  +------------+  |  | | Security   | | |
  1201.    | |                   | |  +->| v2cMP    * |<--->| | Model      | | |
  1202.    | | Message           | |  |  +------------+  |  | +------------+ | |
  1203.    | | Dispatcher  <--------->|  +------------+  |  | +------------+ | |
  1204.    | |                   | |  +->| v3MP     * |<--->| | User-based | | |
  1205.    | |                   | |  |  +------------+  |  | | Security   | | |
  1206.    | | PDU Dispatcher    | |  |  +------------+  |  | | Model      | | |
  1207.    | +-------------------+ |  +->| otherMP  * |<--->| +------------+ | |
  1208.    |              ^        |     +------------+  |  |                | |
  1209.    |              |        +---------------------+  +----------------+ |
  1210.    |              v                                                    |
  1211.    |      +-------+-------------------------+---------------+          |
  1212.    |      ^                                 ^               ^          |
  1213.    |      |                                 |               |          |
  1214.    |      v                                 v               v          |
  1215.    | +-------------+   +---------+   +--------------+  +-------------+ |
  1216.    | |   COMMAND   |   | ACCESS  |   | NOTIFICATION |  |    PROXY  * | |
  1217.    | |  RESPONDER  |<->| CONTROL |<->|  ORIGINATOR  |  |  FORWARDER  | |
  1218.    | | application |   |         |   | applications |  | application | |
  1219.    | +-------------+   +---------+   +--------------+  +-------------+ |
  1220.    |      ^                                 ^                          |
  1221.    |      |                                 |                          |
  1222.    |      v                                 v                          |
  1223.    | +----------------------------------------------+                  |
  1224.    | |             MIB instrumentation              |      SNMP entity |
  1225.    +-------------------------------------------------------------------+
  1226.  
  1227.  
  1228.  
  1229. SNMPv3 Working Group       Expires March 1998                  [Page 22]
  1230.  
  1231. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  1232.  
  1233.  
  1234. 3.2.  The Naming of Identities
  1235.  
  1236.                             principal
  1237.                                 ^
  1238.                                 |
  1239.                                 |
  1240.    +----------------------------|-------------+
  1241.    | SNMP engine                v             |
  1242.    |                    +--------------+      |
  1243.    |                    |              |      |
  1244.    |  +-----------------| securityName |---+  |
  1245.    |  | Security Model  |              |   |  |
  1246.    |  |                 +--------------+   |  |
  1247.    |  |                         ^          |  |
  1248.    |  |                         |          |  |
  1249.    |  |                         v          |  |
  1250.    |  |  +------------------------------+  |  |
  1251.    |  |  |                              |  |  |
  1252.    |  |  | Model                        |  |  |
  1253.    |  |  | Dependent                    |  |  |
  1254.    |  |  | Security ID                  |  |  |
  1255.    |  |  |                              |  |  |
  1256.    |  |  +------------------------------+  |  |
  1257.    |  |                         ^          |  |
  1258.    |  |                         |          |  |
  1259.    |  +-------------------------|----------+  |
  1260.    |                            |             |
  1261.    |                            |             |
  1262.    +----------------------------|-------------+
  1263.                                 |
  1264.                                 v
  1265.                              network
  1266.  
  1267. 3.2.1.  Principal
  1268.  
  1269.    A principal is the "who" on whose behalf services are provided or
  1270.    processing takes place.
  1271.  
  1272.    A principal can be, among other things, an individual acting in a
  1273.    particular role; a set of individuals, with each acting in a
  1274.    particular role; an application or a set of applications; and
  1275.    combinations thereof.
  1276.  
  1277. 3.2.2.  securityName
  1278.  
  1279.    A securityName is a human readable string representing a principal.
  1280.    It has a model-independent format, and can be used outside a
  1281.    particular Security Model.
  1282.  
  1283.  
  1284.  
  1285. SNMPv3 Working Group       Expires March 1998                  [Page 23]
  1286.  
  1287. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  1288.  
  1289.  
  1290. 3.2.3.  Model-dependent security ID
  1291.  
  1292.    A model-dependent security ID is the model-specific representation of
  1293.    a securityName within a particular Security Model.
  1294.  
  1295.    Model-dependent security IDs may or may not be human readable, and
  1296.    have a model-dependent syntax. Examples include community names, user
  1297.    names, and parties.
  1298.  
  1299.    The transformation of model-dependent security IDs into securityNames
  1300.    and vice versa is the responsibility of the relevant Security Model.
  1301.  
  1302.  
  1303.  
  1304.  
  1305.  
  1306.  
  1307.  
  1308.  
  1309.  
  1310.  
  1311.  
  1312.  
  1313.  
  1314.  
  1315.  
  1316.  
  1317.  
  1318.  
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324.  
  1325.  
  1326.  
  1327.  
  1328.  
  1329.  
  1330.  
  1331.  
  1332.  
  1333.  
  1334.  
  1335.  
  1336.  
  1337.  
  1338.  
  1339.  
  1340.  
  1341. SNMPv3 Working Group       Expires March 1998                  [Page 24]
  1342.  
  1343. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  1344.  
  1345.  
  1346. 3.3.  The Naming of Management Information
  1347.  
  1348.    Management information resides at an SNMP entity where a Command
  1349.    Responder Application has local access to potentially multiple
  1350.    contexts.  This application uses a contextEngineID equal to the
  1351.    snmpEngineID of its associated SNMP engine.
  1352.  
  1353.    +-----------------------------------------------------------------+
  1354.    |  SNMP entity (identified by snmpEngineID, example: abcd)        |
  1355.    |                                                                 |
  1356.    |  +------------------------------------------------------------+ |
  1357.    |  | SNMP engine (identified by snmpEngineID)                   | |
  1358.    |  |                                                            | |
  1359.    |  | +-------------+ +------------+ +-----------+ +-----------+ | |
  1360.    |  | |             | |            | |           | |           | | |
  1361.    |  | | Dispatcher  | | Message    | | Security  | | Access    | | |
  1362.    |  | |             | | Processing | | Subsystem | | Control   | | |
  1363.    |  | |             | | Subsystem  | |           | | Subsystem | | |
  1364.    |  | |             | |            | |           | |           | | |
  1365.    |  | +-------------+ +------------+ +-----------+ +-----------+ | |
  1366.    |  |                                                            | |
  1367.    |  +------------------------------------------------------------+ |
  1368.    |                                                                 |
  1369.    |  +------------------------------------------------------------+ |
  1370.    |  |  Command Responder Application                             | |
  1371.    |  |  (contextEngineID, example: abcd)                          | |
  1372.    |  |                                                            | |
  1373.    |  |  example contextNames:                                     | |
  1374.    |  |                                                            | |
  1375.    |  |  "bridge1"          "bridge2"            "" (default)      | |
  1376.    |  |  ---------          ---------            ------------      | |
  1377.    |  |      |                  |                   |              | |
  1378.    |  +------|------------------|-------------------|--------------+ |
  1379.    |         |                  |                   |                |
  1380.    |  +------|------------------|-------------------|--------------+ |
  1381.    |  |  MIB | instrumentation  |                   |              | |
  1382.    |  |  +---v------------+ +---v------------+ +----v-----------+  | |
  1383.    |  |  | context        | | context        | | context        |  | |
  1384.    |  |  |                | |                | |                |  | |
  1385.    |  |  | +------------+ | | +------------+ | | +------------+ |  | |
  1386.    |  |  | | bridge MIB | | | | bridge MIB | | | | other MIB  | |  | |
  1387.    |  |  | +------------+ | | +------------+ | | +------------+ |  | |
  1388.    |  |  |                | |                | |                |  | |
  1389.    |  |  |                | |                | | +------------+ |  | |
  1390.    |  |  |                | |                | | | some  MIB  | |  | |
  1391.    |  |  |                | |                | | +------------+ |  | |
  1392.    |  |  |                | |                | |                |  | |
  1393.    +-----------------------------------------------------------------+
  1394.  
  1395.  
  1396.  
  1397. SNMPv3 Working Group       Expires March 1998                  [Page 25]
  1398.  
  1399. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  1400.  
  1401.  
  1402. 3.3.1.  An SNMP Context
  1403.  
  1404.    An SNMP context, or just "context" for short,  is a collection of
  1405.    management information accessible by an SNMP entity. An item of
  1406.    management information may exist in more than one context. An SNMP
  1407.    entity potentially has access to many contexts.
  1408.  
  1409.    Typically, there are many instances of each managed object type
  1410.    within a management domain. For simplicity, the method for
  1411.    identifying instances specified by the MIB module does not allow each
  1412.    instance to be distinguished amongst the set of all instances within
  1413.    a management domain; rather, it allows each instance to be identified
  1414.    only within some scope or "context", where there are multiple such
  1415.    contexts within the management domain.  Often, a context is a
  1416.    physical device, or perhaps, a logical device, although a context can
  1417.    also encompass multiple devices, or a subset of a single device, or
  1418.    even a subset of multiple devices, but a context is always defined as
  1419.    a subset of a single SNMP entity.  Thus, in order to identify an
  1420.    individual item of management information within the management
  1421.    domain, its contextName and contextEngineID must be identified in
  1422.    addition to its object type and its instance.
  1423.  
  1424.    For example, the managed object type ifDescr [RFC1573], is defined as
  1425.    the description of a network interface.  To identify the description
  1426.    of device-X's first network interface, four pieces of information are
  1427.    needed: the snmpEngineID of the SNMP entity which provides access to
  1428.    the management information at device-X, the contextName (device-X),
  1429.    the managed object type (ifDescr), and the instance ("1").
  1430.  
  1431.    Each context has (at least) one unique identification within the
  1432.    management domain. The same item of management information can exist
  1433.    in multiple contexts.  An item of management information may have
  1434.    multiple unique identifications.  This occurs when an item of
  1435.    management information exists in multiple contexts, and this also
  1436.    occurs when a context has multiple unique identifications.
  1437.  
  1438.    The combination of a contextEngineID and a contextName unambiguously
  1439.    identifies a context within an administrative domain; note that there
  1440.    may be multiple unique combinations of contextEngineID and
  1441.    contextName that unambiguously identify the same context.
  1442.  
  1443. 3.3.2.  contextEngineID
  1444.  
  1445.    Within an administrative domain, a contextEngineID uniquely
  1446.    identifies an SNMP entity that may realize an instance of a context
  1447.    with a particular contextName.
  1448.  
  1449.  
  1450.  
  1451.  
  1452.  
  1453. SNMPv3 Working Group       Expires March 1998                  [Page 26]
  1454.  
  1455. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  1456.  
  1457.  
  1458. 3.3.3.  contextName
  1459.  
  1460.    A contextName is used to name a context. Each contextName MUST be
  1461.    unique within an SNMP entity.
  1462.  
  1463. 3.3.4.  scopedPDU
  1464.  
  1465.    A scopedPDU is a block of data containing a contextEngineID, a
  1466.    contextName, and a PDU.
  1467.  
  1468.    The PDU is an SNMP Protocol Data Unit containing information named in
  1469.    the context which is unambiguously identified within an
  1470.    administrative domain by the combination of the contextEngineID and
  1471.    the contextName. See, for example, RFC1905 for more information about
  1472.    SNMP PDUs.
  1473.  
  1474. 3.4.  Other Constructs
  1475.  
  1476. 3.4.1.  maxSizeResponseScopedPDU
  1477.  
  1478.    The maxSizeResponseScopedPDU is the maximum size of a scopedPDU to be
  1479.    included in a response message.  Note that the size of a scopedPDU
  1480.    does not include the size of the SNMP message header.
  1481.  
  1482. 3.4.2.  Local Configuration Datastore
  1483.  
  1484.    The subsystems, models, and applications within an SNMP entity may
  1485.    need to retain their own sets of configuration information.
  1486.  
  1487.    Portions of the configuration information may be accessible as
  1488.    managed objects.
  1489.  
  1490.    The collection of these sets of information is referred to as an
  1491.    entity's Local Configuration Datastore (LCD).
  1492.  
  1493. 3.4.3.  securityLevel
  1494.  
  1495.    This architecture recognizes three levels of security:
  1496.  
  1497.       -  without authentication and without privacy (noAuthNoPriv)
  1498.  
  1499.       -  with authentication but without privacy (authNoPriv)
  1500.  
  1501.       -  with authentication and with privacy (authPriv)
  1502.  
  1503.    These three values are ordered such that noAuthNoPriv is less than
  1504.    authNoPriv and authNoPriv is less than authPriv.
  1505.  
  1506.  
  1507.  
  1508.  
  1509. SNMPv3 Working Group       Expires March 1998                  [Page 27]
  1510.  
  1511. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  1512.  
  1513.  
  1514.    Every message has an associated securityLevel. All Subsystems
  1515.    (Message Processing, Security, Access Control) and applications are
  1516.    required to either supply a value of securityLevel or to abide by the
  1517.    supplied value of securityLevel while processing the message and its
  1518.    contents.
  1519.  
  1520. 4.  Abstract Service Interfaces
  1521.  
  1522.    Abstract service interfaces have been defined to describe the
  1523.    conceptual interfaces between the various subsystems within an SNMP
  1524.    entity.
  1525.  
  1526.    These abstract service interfaces are defined by a set of primitives
  1527.    that define the services provided and the abstract data elements that
  1528.    are to be passed when the services are invoked.  This section lists
  1529.    the primitives that have been defined for the various subsystems.
  1530.  
  1531. 4.1.  Dispatcher Primitives
  1532.  
  1533.    The Dispatcher typically provides services to the SNMP applications
  1534.    via its PDU Dispatcher.  This section describes the primitives
  1535.    provided by the PDU Dispatcher.
  1536.  
  1537. 4.1.1.  Generate Outgoing Request or Notification
  1538.  
  1539.    The PDU Dispatcher provides the following primitive for an
  1540.    application to send an SNMP Request or Notification to another SNMP
  1541.    entity:
  1542.  
  1543.    statusInformation =              -- sendPduHandle if success
  1544.                                     -- errorIndication if failure
  1545.      sendPdu(
  1546.      IN   transportDomain           -- transport domain to be used
  1547.      IN   transportAddress          -- transport address to be used
  1548.      IN   messageProcessingModel    -- typically, SNMP version
  1549.      IN   securityModel             -- Security Model to use
  1550.      IN   securityName              -- on behalf of this principal
  1551.      IN   securityLevel             -- Level of Security requested
  1552.      IN   contextEngineID           -- data from/at this entity
  1553.      IN   contextName               -- data from/in this context
  1554.      IN   pduVersion                -- the version of the PDU
  1555.      IN   PDU                       -- SNMP Protocol Data Unit
  1556.      IN   expectResponse            -- TRUE or FALSE
  1557.           )
  1558.  
  1559. 4.1.2.  Process Incoming Request or Notification PDU
  1560.  
  1561.    The PDU Dispatcher provides the following primitive to pass an
  1562.  
  1563.  
  1564.  
  1565. SNMPv3 Working Group       Expires March 1998                  [Page 28]
  1566.  
  1567. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  1568.  
  1569.  
  1570.    incoming SNMP PDU to an application:
  1571.  
  1572.    processPdu(                      -- process Request/Notification PDU
  1573.      IN   messageProcessingModel    -- typically, SNMP version
  1574.      IN   securityModel             -- Security Model in use
  1575.      IN   securityName              -- on behalf of this principal
  1576.      IN   securityLevel             -- Level of Security
  1577.      IN   contextEngineID           -- data from/at this SNMP entity
  1578.      IN   contextName               -- data from/in this context
  1579.      IN   pduVersion                -- the version of the PDU
  1580.      IN   PDU                       -- SNMP Protocol Data Unit
  1581.      IN   maxSizeResponseScopedPDU  -- maximum size of the Response PDU
  1582.      IN   stateReference            -- reference to state information
  1583.           )                         -- needed when sending a response
  1584.  
  1585.  
  1586.  
  1587.  
  1588.  
  1589.  
  1590.  
  1591.  
  1592.  
  1593.  
  1594.  
  1595.  
  1596.  
  1597.  
  1598.  
  1599.  
  1600.  
  1601.  
  1602.  
  1603.  
  1604.  
  1605.  
  1606.  
  1607.  
  1608.  
  1609.  
  1610.  
  1611.  
  1612.  
  1613.  
  1614.  
  1615.  
  1616.  
  1617.  
  1618.  
  1619.  
  1620.  
  1621. SNMPv3 Working Group       Expires March 1998                  [Page 29]
  1622.  
  1623. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  1624.  
  1625.  
  1626. 4.1.3.  Generate Outgoing Response
  1627.  
  1628.    The PDU Dispatcher provides the following primitive for an
  1629.    application to return an SNMP Response PDU to the PDU Dispatcher:
  1630.  
  1631.    returnResponsePdu(
  1632.      IN   messageProcessingModel    -- typically, SNMP version
  1633.      IN   securityModel             -- Security Model in use
  1634.      IN   securityName              -- on behalf of this principal
  1635.      IN   securityLevel             -- same as on incoming request
  1636.      IN   contextEngineID           -- data from/at this SNMP entity
  1637.      IN   contextName               -- data from/in this context
  1638.      IN   pduVersion                -- the version of the PDU
  1639.      IN   PDU                       -- SNMP Protocol Data Unit
  1640.      IN   maxSizeResponseScopedPDU  -- maximum size of the Response PDU
  1641.      IN   stateReference            -- reference to state information
  1642.                                     -- as presented with the request
  1643.      IN   statusInformation         -- success or errorIndication
  1644.           )                         -- error counter OID/value if error
  1645.  
  1646. 4.1.4.  Process Incoming Response PDU
  1647.  
  1648.    The PDU Dispatcher provides the following primitive to pass an
  1649.    incoming SNMP Response PDU to an application:
  1650.  
  1651.    processResponsePdu(              -- process Response PDU
  1652.      IN   messageProcessingModel    -- typically, SNMP version
  1653.      IN   securityModel             -- Security Model in use
  1654.      IN   securityName              -- on behalf of this principal
  1655.      IN   securityLevel             -- Level of Security
  1656.      IN   contextEngineID           -- data from/at this SNMP entity
  1657.      IN   contextName               -- data from/in this context
  1658.      IN   pduVersion                -- the version of the PDU
  1659.      IN   PDU                       -- SNMP Protocol Data Unit
  1660.      IN   statusInformation         -- success or errorIndication
  1661.      IN   sendPduHandle             -- handle from sendPdu
  1662.           )
  1663.  
  1664. 4.1.5.  Registering Responsibility for Handling SNMP PDUs
  1665.  
  1666.    Applications can register/unregister responsibility for a specific
  1667.    contextEngineID, for specific pduTypes, with the PDU Dispatcher
  1668.    according to the following primitives.  The list of particular
  1669.    pduTypes that an application can register for is determined by the
  1670.    Message Processing Model(s) supported by the SNMP entity that
  1671.    contains the PDU Dispatcher.
  1672.  
  1673.  
  1674.  
  1675.  
  1676.  
  1677. SNMPv3 Working Group       Expires March 1998                  [Page 30]
  1678.  
  1679. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  1680.  
  1681.  
  1682.    statusInformation =            -- success or errorIndication
  1683.      registerContextEngineID(
  1684.      IN   contextEngineID         -- take responsibility for this one
  1685.      IN   pduType                 -- the pduType(s) to be registered
  1686.           )
  1687.  
  1688.    unregisterContextEngineID(
  1689.      IN   contextEngineID         -- give up responsibility for this one
  1690.      IN   pduType                 -- the pduType(s) to be unregistered
  1691.           )
  1692.  
  1693.    Note that realizations of the registerContextEngineID and
  1694.    unregisterContextEngineID abstract service interfaces may provide
  1695.    implementation-specific ways for applications to register/deregister
  1696.    responsiblity for all possible values of the contextEngineID or
  1697.    pduType parameters.
  1698.  
  1699. 4.2.  Message Processing Subsystem Primitives
  1700.  
  1701.    The Dispatcher interacts with a Message Processing Model to process a
  1702.    specific version of an SNMP Message. This section describes the
  1703.    primitives provided by the Message Processing Subsystem.
  1704.  
  1705. 4.2.1.  Prepare Outgoing SNMP Request or Notification Message
  1706.  
  1707.    The Message Processing Subsystem provides this service primitive for
  1708.    preparing an outgoing SNMP Request or Notification Message:
  1709.  
  1710.    statusInformation =              -- success or errorIndication
  1711.      prepareOutgoingMessage(
  1712.      IN   transportDomain           -- transport domain to be used
  1713.      IN   transportAddress          -- transport address to be used
  1714.      IN   messageProcessingModel    -- typically, SNMP version
  1715.      IN   securityModel             -- Security Model to use
  1716.      IN   securityName              -- on behalf of this principal
  1717.      IN   securityLevel             -- Level of Security requested
  1718.      IN   contextEngineID           -- data from/at this entity
  1719.      IN   contextName               -- data from/in this context
  1720.      IN   pduVersion                -- the version of the PDU
  1721.      IN   PDU                       -- SNMP Protocol Data Unit
  1722.      IN   expectResponse            -- TRUE or FALSE
  1723.      IN   sendPduHandle             -- the handle for matching
  1724.                                     -- incoming responses
  1725.      OUT  destTransportDomain       -- destination transport domain
  1726.      OUT  destTransportAddress      -- destination transport address
  1727.      OUT  outgoingMessage           -- the message to send
  1728.      OUT  outgoingMessageLength     -- its length
  1729.           )
  1730.  
  1731.  
  1732.  
  1733. SNMPv3 Working Group       Expires March 1998                  [Page 31]
  1734.  
  1735. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  1736.  
  1737.  
  1738. 4.2.2.  Prepare an Outgoing SNMP Response Message
  1739.  
  1740.    The Message Processing Subsystem provides this service primitive for
  1741.    preparing an outgoing SNMP Response Message:
  1742.  
  1743.    result =                         -- SUCCESS or FAILURE
  1744.      prepareResponseMessage(
  1745.      IN   messageProcessingModel    -- typically, SNMP version
  1746.      IN   securityModel             -- same as on incoming request
  1747.      IN   securityName              -- same as on incoming request
  1748.      IN   securityLevel             -- same as on incoming request
  1749.      IN   contextEngineID           -- data from/at this SNMP entity
  1750.      IN   contextName               -- data from/in this context
  1751.      IN   pduVersion                -- the version of the PDU
  1752.      IN   PDU                       -- SNMP Protocol Data Unit
  1753.      IN   maxSizeResponseScopedPDU  -- maximum size of the Response PDU
  1754.      IN   stateReference            -- reference to state information
  1755.                                     -- as presented with the request
  1756.      IN   statusInformation         -- success or errorIndication
  1757.                                     -- error counter OID/value if error
  1758.      OUT  destTransportDomain       -- destination transport domain
  1759.      OUT  destTransportAddress      -- destination transport address
  1760.      OUT  outgoingMessage           -- the message to send
  1761.      OUT  outgoingMessageLength     -- its length
  1762.           )
  1763.  
  1764.  
  1765.  
  1766.  
  1767.  
  1768.  
  1769.  
  1770.  
  1771.  
  1772.  
  1773.  
  1774.  
  1775.  
  1776.  
  1777.  
  1778.  
  1779.  
  1780.  
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786.  
  1787.  
  1788.  
  1789. SNMPv3 Working Group       Expires March 1998                  [Page 32]
  1790.  
  1791. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  1792.  
  1793.  
  1794. 4.2.3.  Prepare Data Elements from an Incoming SNMP Message
  1795.  
  1796.    The Message Processing Subsystem provides this service primitive for
  1797.    preparing the abstract data elements from an incoming SNMP message:
  1798.  
  1799.    result =                         -- SUCCESS or errorIndication
  1800.      prepareDataElements(
  1801.      IN   transportDomain           -- origin transport domain
  1802.      IN   transportAddress          -- origin transport address
  1803.      IN   wholeMsg                  -- as received from the network
  1804.      IN   wholeMsgLength            -- as received from the network
  1805.      OUT  messageProcessingModel    -- typically, SNMP version
  1806.      OUT  securityModel             -- Security Model to use
  1807.      OUT  securityName              -- on behalf of this principal
  1808.      OUT  securityLevel             -- Level of Security requested
  1809.      OUT  contextEngineID           -- data from/at this entity
  1810.      OUT  contextName               -- data from/in this context
  1811.      OUT  pduVersion                -- the version of the PDU
  1812.      OUT  PDU                       -- SNMP Protocol Data Unit
  1813.      OUT  pduType                   -- SNMP PDU type
  1814.      OUT  sendPduHandle             -- handle for matched request
  1815.      OUT  maxSizeResponseScopedPDU  -- maximum size of the Response PDU
  1816.      OUT  statusInformation         -- success or errorIndication
  1817.                                     -- error counter OID/value if error
  1818.      OUT  stateReference            -- reference to state information
  1819.                                     -- to be used for possible Response
  1820.           )
  1821.  
  1822. 4.3.  Access Control Subsystem Primitives
  1823.  
  1824.    Applications are the typical clients of the service(s) of the Access
  1825.    Control Subsystem.
  1826.  
  1827.    The following primitive is provided by the Access Control Subsystem
  1828.    to check if access is allowed:
  1829.  
  1830.    statusInformation =              -- success or errorIndication
  1831.      isAccessAllowed(
  1832.      IN   securityModel             -- Security Model in use
  1833.      IN   securityName              -- principal who wants to access
  1834.      IN   securityLevel             -- Level of Security
  1835.      IN   viewType                  -- read, write, or notify view
  1836.      IN   contextName               -- context containing variableName
  1837.      IN   variableName              -- OID for the managed object
  1838.           )
  1839.  
  1840.  
  1841.  
  1842.  
  1843.  
  1844.  
  1845. SNMPv3 Working Group       Expires March 1998                  [Page 33]
  1846.  
  1847. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  1848.  
  1849.  
  1850. 4.4.  Security Subsystem Primitives
  1851.  
  1852.    The Message Processing Subsystem is the typical client of the
  1853.    services of the Security Subsystem.
  1854.  
  1855. 4.4.1.  Generate a Request or Notification Message
  1856.  
  1857.    The Security Subsystem provides the following primitive to generate a
  1858.    Request or Notification message:
  1859.  
  1860.    statusInformation =
  1861.      generateRequestMsg(
  1862.      IN   messageProcessingModel    -- typically, SNMP version
  1863.      IN   globalData                -- message header, admin data
  1864.      IN   maxMessageSize            -- of the sending SNMP entity
  1865.      IN   securityModel             -- for the outgoing message
  1866.      IN   securityEngineID          -- authoritative SNMP entity
  1867.      IN   securityName              -- on behalf of this principal
  1868.      IN   securityLevel             -- Level of Security requested
  1869.      IN   scopedPDU                 -- message (plaintext) payload
  1870.      OUT  securityParameters        -- filled in by Security Module
  1871.      OUT  wholeMsg                  -- complete generated message
  1872.      OUT  wholeMsgLength            -- length of the generated message
  1873.           )
  1874.  
  1875. 4.4.2.  Process Incoming Message
  1876.  
  1877.    The Security Subsystem provides the following primitive to process an
  1878.    incoming message:
  1879.  
  1880.    statusInformation =              -- errorIndication or success
  1881.                                     -- error counter OID/value if error
  1882.      processIncomingMsg(
  1883.      IN   messageProcessingModel    -- typically, SNMP version
  1884.      IN   maxMessageSize            -- of the sending SNMP entity
  1885.      IN   securityParameters        -- for the received message
  1886.      IN   securityModel             -- for the received message
  1887.      IN   securityLevel             -- Level of Security
  1888.      IN   wholeMsg                  -- as received on the wire
  1889.      IN   wholeMsgLength            -- length as received on the wire
  1890.      OUT  securityEngineID          -- identification of the principal
  1891.      OUT  securityName              -- identification of the principal
  1892.      OUT  scopedPDU,                -- message (plaintext) payload
  1893.      OUT  maxSizeResponseScopedPDU  -- maximum size of the Response PDU
  1894.      OUT  securityStateReference    -- reference to security state
  1895.           )                         -- information, needed for response
  1896.  
  1897.  
  1898.  
  1899.  
  1900.  
  1901. SNMPv3 Working Group       Expires March 1998                  [Page 34]
  1902.  
  1903. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  1904.  
  1905.  
  1906. 4.4.3.  Generate a Response Message
  1907.  
  1908.    The Security Subsystem provides the following primitive to generate a
  1909.    Response message:
  1910.  
  1911.    statusInformation =
  1912.      generateResponseMsg(
  1913.      IN   messageProcessingModel    -- typically, SNMP version
  1914.      IN   globalData                -- message header, admin data
  1915.      IN   maxMessageSize            -- of the sending SNMP entity
  1916.      IN   securityModel             -- for the outgoing message
  1917.      IN   securityEngineID          -- authoritative SNMP entity
  1918.      IN   securityName              -- on behalf of this principal
  1919.      IN   securityLevel             -- for the outgoing message
  1920.      IN   scopedPDU                 -- message (plaintext) payload
  1921.      IN   securityStateReference    -- reference to security state
  1922.                                     -- information from original request
  1923.      OUT  securityParameters        -- filled in by Security Module
  1924.      OUT  wholeMsg                  -- complete generated message
  1925.      OUT  wholeMsgLength            -- length of the generated message
  1926.           )
  1927.  
  1928. 4.5.  Common Primitives
  1929.  
  1930.    These primitive(s) are provided by multiple Subsystems.
  1931.  
  1932. 4.5.1.  Release State Reference Information
  1933.  
  1934.    All Subsystems which pass stateReference information also provide a
  1935.    primitive to release the memory that holds the referenced state
  1936.    information:
  1937.  
  1938.    stateRelease(
  1939.      IN   stateReference       -- handle of reference to be released
  1940.           )
  1941.  
  1942.  
  1943.  
  1944.  
  1945.  
  1946.  
  1947.  
  1948.  
  1949.  
  1950.  
  1951.  
  1952.  
  1953.  
  1954.  
  1955.  
  1956.  
  1957. SNMPv3 Working Group       Expires March 1998                  [Page 35]
  1958.  
  1959. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  1960.  
  1961.  
  1962. 4.6.  Scenario Diagrams
  1963.  
  1964. 4.6.1.  Command Generator or Notification Originator
  1965.  
  1966.    This diagram shows how a Command Generator or Notification Originator
  1967.    application requests that a PDU be sent, and how the response is
  1968.    returned (asynchronously) to that application.
  1969.  
  1970.    Command           Dispatcher               Message           Security
  1971.    Generator            |                     Processing           Model
  1972.    |                    |                     Model                    |
  1973.    |      sendPdu       |                        |                     |
  1974.    |------------------->|                        |                     |
  1975.    |                    | prepareOutgoingMessage |                     |
  1976.    :                    |----------------------->|                     |
  1977.    :                    |                        | generateRequestMsg  |
  1978.    :                    |                        |-------------------->|
  1979.    :                    |                        |                     |
  1980.    :                    |                        |<--------------------|
  1981.    :                    |                        |                     |
  1982.    :                    |<-----------------------|                     |
  1983.    :                    |                        |                     |
  1984.    :                    |------------------+     |                     |
  1985.    :                    | Send SNMP        |     |                     |
  1986.    :                    | Request Message  |     |                     |
  1987.    :                    | to Network       |     |                     |
  1988.    :                    |                  v     |                     |
  1989.    :                    :                  :     :                     :
  1990.    :                    :                  :     :                     :
  1991.    :                    :                  :     :                     :
  1992.    :                    |                  |     |                     |
  1993.    :                    | Receive SNMP     |     |                     |
  1994.    :                    | Response Message |     |                     |
  1995.    :                    | from Network     |     |                     |
  1996.    :                    |<-----------------+     |                     |
  1997.    :                    |                        |                     |
  1998.    :                    |   prepareDataElements  |                     |
  1999.    :                    |----------------------->|                     |
  2000.    :                    |                        | processIncomingMsg  |
  2001.    :                    |                        |-------------------->|
  2002.    :                    |                        |                     |
  2003.    :                    |                        |<--------------------|
  2004.    :                    |                        |                     |
  2005.    :                    |<-----------------------|                     |
  2006.    | processResponsePdu |                        |                     |
  2007.    |<-------------------|                        |                     |
  2008.    |                    |                        |                     |
  2009.  
  2010.  
  2011.  
  2012.  
  2013. SNMPv3 Working Group       Expires March 1998                  [Page 36]
  2014.  
  2015. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  2016.  
  2017.  
  2018. 4.6.2.  Scenario Diagram for a Command Responder Application
  2019.  
  2020.    This diagram shows how a Command Responder or Notification Receiver
  2021.    application registers for handling a pduType, how a PDU is dispatched
  2022.    to the application after a SNMP message is received, and how the
  2023.    Response is (asynchronously) send back to the network.
  2024.  
  2025.    Command               Dispatcher            Message          Security
  2026.    Responder                 |                 Processing          Model
  2027.    |                         |                 Model                   |
  2028.    |                         |                    |                    |
  2029.    | registerContextEngineID |                    |                    |
  2030.    |------------------------>|                    |                    |
  2031.    |<------------------------|              |     |                    |
  2032.    |                         | Receive SNMP |     |                    |
  2033.    :                         | Message      |     |                    |
  2034.    :                         | from Network |     |                    |
  2035.    :                         |<-------------+     |                    |
  2036.    :                         |                    |                    |
  2037.    :                         |prepareDataElements |                    |
  2038.    :                         |------------------->|                    |
  2039.    :                         |                    | processIncomingMsg |
  2040.    :                         |                    |------------------->|
  2041.    :                         |                    |                    |
  2042.    :                         |                    |<-------------------|
  2043.    :                         |                    |                    |
  2044.    :                         |<-------------------|                    |
  2045.    |     processPdu          |                    |                    |
  2046.    |<------------------------|                    |                    |
  2047.    |                         |                    |                    |
  2048.    :                         :                    :                    :
  2049.    :                         :                    :                    :
  2050.    |    returnResponsePdu    |                    |                    |
  2051.    |------------------------>|                    |                    |
  2052.    :                         | prepareResponseMsg |                    |
  2053.    :                         |------------------->|                    |
  2054.    :                         |                    |generateResponseMsg |
  2055.    :                         |                    |------------------->|
  2056.    :                         |                    |                    |
  2057.    :                         |                    |<-------------------|
  2058.    :                         |                    |                    |
  2059.    :                         |<-------------------|                    |
  2060.    :                         |                    |                    |
  2061.    :                         |--------------+     |                    |
  2062.    :                         | Send SNMP    |     |                    |
  2063.    :                         | Message      |     |                    |
  2064.    :                         | to Network   |     |                    |
  2065.    :                         |              v     |                    |
  2066.  
  2067.  
  2068.  
  2069. SNMPv3 Working Group       Expires March 1998                  [Page 37]
  2070.  
  2071. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  2072.  
  2073.  
  2074. 5.  Managed Object Definitions for SNMP Management Frameworks
  2075.  
  2076.    SNMP-FRAMEWORK-MIB DEFINITIONS ::= BEGIN
  2077.  
  2078.    IMPORTS
  2079.        MODULE-IDENTITY, OBJECT-TYPE,
  2080.        OBJECT-IDENTITY,
  2081.        snmpModules                           FROM SNMPv2-SMI
  2082.        TEXTUAL-CONVENTION                    FROM SNMPv2-TC
  2083.        MODULE-COMPLIANCE, OBJECT-GROUP       FROM SNMPv2-CONF;
  2084.  
  2085.    snmpFrameworkMIB MODULE-IDENTITY
  2086.        LAST-UPDATED "9710280000Z"            -- 28 October 1997
  2087.        ORGANIZATION "SNMPv3 Working Group"
  2088.        CONTACT-INFO "WG-email:   snmpv3@tis.com
  2089.                      Subscribe:  majordomo@tis.com
  2090.                                  In message body:  subscribe snmpv3
  2091.  
  2092.                      Chair:      Russ Mundy
  2093.                                  Trusted Information Systems
  2094.                      postal:     3060 Washington Rd
  2095.                                  Glenwood MD 21738
  2096.                                  USA
  2097.                      email:      mundy@tis.com
  2098.                      phone:      +1 301-854-6889
  2099.  
  2100.                      Co-editor   Dave Harrington
  2101.                                  Cabletron Systems, Inc.
  2102.                      postal:     Post Office Box 5005
  2103.                                  Mail Stop: Durham
  2104.                                  35 Industrial Way
  2105.                                  Rochester, NH 03867-5005
  2106.                                  USA
  2107.                      email:      dbh@cabletron.com
  2108.                      phone:      +1 603-337-7357
  2109.  
  2110.                      Co-editor   Randy Presuhn
  2111.                                  BMC Software, Inc.
  2112.                      postal:     1190 Saratoga Avenue
  2113.                                  Suite 130
  2114.                                  San Jose, CA 95129
  2115.                                  USA
  2116.                      email:      rpresuhn@bmc.com
  2117.                      phone:      +1 408-556-0720
  2118.  
  2119.                      Co-editor:  Bert Wijnen
  2120.                                  IBM T.J. Watson Research
  2121.                      postal:     Schagen 33
  2122.  
  2123.  
  2124.  
  2125. SNMPv3 Working Group       Expires March 1998                  [Page 38]
  2126.  
  2127. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  2128.  
  2129.  
  2130.                                  3461 GL Linschoten
  2131.                                  Netherlands
  2132.                      email:      wijnen@vnet.ibm.com
  2133.                      phone:      +31 348-432-794
  2134.                     "
  2135.        DESCRIPTION  "The SNMP Management Architecture MIB"
  2136.        ::= { snmpModules 7 }  -- DBH: check if this number is indeed OK
  2137.  
  2138.    -- Textual Conventions used in the SNMP Management Architecture ***
  2139.  
  2140.    SnmpEngineID ::= TEXTUAL-CONVENTION
  2141.        STATUS       current
  2142.        DESCRIPTION "An SNMP engine's administratively-unique identifier.
  2143.  
  2144.                     The value for this object may not be all zeros or
  2145.                     all 'ff'H or the empty (zero length) string.
  2146.  
  2147.                     The initial value for this object may be configured
  2148.                     via an operator console entry or via an algorithmic
  2149.                     function.  In the latter case, the following
  2150.                     example algorithm is recommended.
  2151.  
  2152.                     In cases where there are multiple engines on the
  2153.                     same system, the use of this algorithm is NOT
  2154.                     appropriate, as it would result in all of those
  2155.                     engines ending up with the same ID value.
  2156.  
  2157.                     1) The very first bit is used to indicate how the
  2158.                        rest of the data is composed.
  2159.  
  2160.                        0 - as defined by enterprise using former methods
  2161.                            that existed before SNMPv3. See item 2 below.
  2162.  
  2163.                        1 - as defined by this architecture, see item 3
  2164.                            below.
  2165.  
  2166.                        Note that this allows existing uses of the
  2167.                        engineID (also known as AgentID [RFC1910]) to
  2168.                        co-exist with any new uses.
  2169.  
  2170.                     2) The snmpEngineID has a length of 12 octets.
  2171.  
  2172.                        The first four octets are set to the binary
  2173.                        equivalent of the agent's SNMP management
  2174.                        private enterprise number as assigned by the
  2175.                        Internet Assigned Numbers Authority (IANA).
  2176.                        For example, if Acme Networks has been assigned
  2177.                        { enterprises 696 }, the first four octets would
  2178.  
  2179.  
  2180.  
  2181. SNMPv3 Working Group       Expires March 1998                  [Page 39]
  2182.  
  2183. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  2184.  
  2185.  
  2186.                        be assigned '000002b8'H.
  2187.  
  2188.                        The remaining eight octets are determined via
  2189.                        one or more enterprise-specific methods. Such
  2190.                        methods must be designed so as to maximize the
  2191.                        possibility that the value of this object will
  2192.                        be unique in the agent's administrative domain.
  2193.                        For example, it may be the IP address of the SNMP
  2194.                        entity, or the MAC address of one of the
  2195.                        interfaces, with each address suitably padded
  2196.                        with random octets.  If multiple methods are
  2197.                        defined, then it is recommended that the first
  2198.                        octet indicate the method being used and the
  2199.                        remaining octets be a function of the method.
  2200.  
  2201.                     3) The length of the octet strings varies.
  2202.  
  2203.                        The first four octets are set to the binary
  2204.                        equivalent of the agent's SNMP management
  2205.                        private enterprise number as assigned by the
  2206.                        Internet Assigned Numbers Authority (IANA).
  2207.                        For example, if Acme Networks has been assigned
  2208.                        { enterprises 696 }, the first four octets would
  2209.                        be assigned '000002b8'H.
  2210.  
  2211.                        The very first bit is set to 1. For example, the
  2212.                        above value for Acme Networks now changes to be
  2213.                        '800002b8'H.
  2214.  
  2215.                        The fifth octet indicates how the rest (6th and
  2216.                        following octets) are formatted. The values for
  2217.                        the fifth octet are:
  2218.  
  2219.                          0     - reserved, unused.
  2220.  
  2221.                          1     - IPv4 address (4 octets)
  2222.                                  lowest non-special IP address
  2223.  
  2224.                          2     - IPv6 address (16 octets)
  2225.                                  lowest non-special IP address
  2226.  
  2227.                          3     - MAC address (6 octets)
  2228.                                  lowest IEEE MAC address, canonical
  2229.                                  order
  2230.  
  2231.                          4     - Text, administratively assigned
  2232.                                  Maximum remaining length 27
  2233.  
  2234.  
  2235.  
  2236.  
  2237. SNMPv3 Working Group       Expires March 1998                  [Page 40]
  2238.  
  2239. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  2240.  
  2241.  
  2242.                          5     - Octets, administratively assigned
  2243.                                  Maximum remaining length 27
  2244.  
  2245.                          6-127 - reserved, unused
  2246.  
  2247.                        127-255 - as defined by the enterprise
  2248.                                  Maximum remaining length 27
  2249.                    "
  2250.        SYNTAX       OCTET STRING (SIZE(1..32))
  2251.  
  2252.    SnmpSecurityModel ::= TEXTUAL-CONVENTION
  2253.        STATUS       current
  2254.        DESCRIPTION "An identifier that uniquely identifies a
  2255.                     securityModel of the Security Subsystem within the
  2256.                     SNMP Management Architecture.
  2257.  
  2258.                     The values for securityModel are allocated as
  2259.                     follows:
  2260.  
  2261.                     - The zero value is reserved.
  2262.                     - Values between 1 and 255, inclusive, are reserved
  2263.                       for standards-track Security Models and are
  2264.                       managed by the Internet Assigned Numbers Authority
  2265.                       (IANA).
  2266.                     - Values greater than 255 are allocated to
  2267.                       enterprise-specific Security Models.  An
  2268.                       enterprise-specific securityModel value is defined
  2269.                       to be:
  2270.  
  2271.                       enterpriseID * 256 + security model within
  2272.                       enterprise
  2273.  
  2274.                       For example, the fourth Security Model defined by
  2275.                       the enterprise whose enterpriseID is 1 would be
  2276.                       260.
  2277.  
  2278.                     This scheme for allocation of securityModel
  2279.                     values allows for a maximum of 255 standards-
  2280.                     based Security Models, and for a maximum of
  2281.                     255 Security Models per enterprise.
  2282.  
  2283.                     It is believed that the assignment of new
  2284.                     securityModel values will be rare in practice
  2285.                     because the larger the number of simultaneously
  2286.                     utilized Security Models, the larger the
  2287.                     chance that interoperability will suffer.
  2288.                     Consequently, it is believed that such a range
  2289.                     will be sufficient.  In the unlikely event that
  2290.  
  2291.  
  2292.  
  2293. SNMPv3 Working Group       Expires March 1998                  [Page 41]
  2294.  
  2295. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  2296.  
  2297.  
  2298.                     the standards committee finds this number to be
  2299.                     insufficient over time, an enterprise number
  2300.                     can be allocated to obtain an additional 255
  2301.                     possible values.
  2302.  
  2303.                     Note that the most significant bit must be zero;
  2304.                     hence, there are 23 bits allocated for various
  2305.                     organizations to design and define non-standard
  2306.                     securityModels.  This limits the ability to
  2307.                     define new proprietary implementations of Security
  2308.                     Models to the first 8,388,608 enterprises.
  2309.  
  2310.                     It is worthwhile to note that, in its encoded
  2311.                     form, the securityModel value will normally
  2312.                     require only a single byte since, in practice,
  2313.                     the leftmost bits will be zero for most messages
  2314.                     and sign extension is suppressed by the encoding
  2315.                     rules.
  2316.  
  2317.                     As of this writing, there are several values
  2318.                     of securityModel defined for use with SNMP or
  2319.                     reserved for use with supporting MIB objects.
  2320.                     They are as follows:
  2321.  
  2322.                         0  reserved for 'any'
  2323.                         1  reserved for SNMPv1
  2324.                         2  reserved for SNMPv2c
  2325.                         3  User-Based Security Model (USM)
  2326.                    "
  2327.        SYNTAX       INTEGER(0..2147483647)
  2328.  
  2329.    SnmpMessageProcessingModel ::= TEXTUAL-CONVENTION
  2330.        STATUS       current
  2331.        DESCRIPTION "An identifier that uniquely identifies a Message
  2332.                     Processing Model of the Message Processing
  2333.                     Subsystem within a SNMP Management Architecture.
  2334.  
  2335.                     The values for messageProcessingModel are
  2336.                     allocated as follows:
  2337.  
  2338.                     - Values between 0 and 255, inclusive, are
  2339.                       reserved for standards-track Message Processing
  2340.                       Models and are managed by the Internet Assigned
  2341.                       Numbers Authority (IANA).
  2342.                     - Values greater than 255 are allocated to
  2343.                       enterprise-specific Message Processing Models.
  2344.                       An enterprise messageProcessingModel value is
  2345.                       defined to be:
  2346.  
  2347.  
  2348.  
  2349. SNMPv3 Working Group       Expires March 1998                  [Page 42]
  2350.  
  2351. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  2352.  
  2353.  
  2354.                       enterpriseID * 256 +
  2355.                            messageProcessingModel within enterprise
  2356.  
  2357.                       For example, the fourth Message Processing Model
  2358.                       defined by the enterprise whose enterpriseID
  2359.                       is 1 would be 260.
  2360.  
  2361.                     This scheme for allocation of securityModel
  2362.                     values allows for a maximum of 255 standards-
  2363.                     based Message Processing Models, and for a
  2364.                     maximum of 255 Message Processing Models per
  2365.                     enterprise.
  2366.  
  2367.                     It is believed that the assignment of new
  2368.                     messageProcessingModel values will be rare
  2369.                     in practice because the larger the number of
  2370.                     simultaneously utilized Message Processing Models,
  2371.                     the larger the chance that interoperability
  2372.                     will suffer. It is believed that such a range
  2373.                     will be sufficient.  In the unlikely event that
  2374.                     the standards committee finds this number to be
  2375.                     insufficient over time, an enterprise number
  2376.                     can be allocated to obtain an additional 256
  2377.                     possible values.
  2378.  
  2379.                     Note that the most significant bit must be zero;
  2380.                     hence, there are 23 bits allocated for various
  2381.                     organizations to design and define non-standard
  2382.                     messageProcessingModels.  This limits the ability
  2383.                     to define new proprietary implementations of
  2384.                     Message Processing Models to the first 8,388,608
  2385.                     enterprises.
  2386.  
  2387.                     It is worthwhile to note that, in its encoded
  2388.                     form, the securityModel value will normally
  2389.                     require only a single byte since, in practice,
  2390.                     the leftmost bits will be zero for most messages
  2391.                     and sign extension is suppressed by the encoding
  2392.                     rules.
  2393.  
  2394.                     As of this writing, there are several values of
  2395.                     messageProcessingModel defined for use with SNMP.
  2396.                     They are as follows:
  2397.  
  2398.                         0  reserved for SNMPv1
  2399.                         1  reserved for SNMPv2c
  2400.                         2  reserved for SNMPv2u and SNMPv2*
  2401.                         3  reserved for SNMPv3
  2402.  
  2403.  
  2404.  
  2405. SNMPv3 Working Group       Expires March 1998                  [Page 43]
  2406.  
  2407. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  2408.  
  2409.  
  2410.                    "
  2411.        SYNTAX       INTEGER(0..2147483647)
  2412.  
  2413.    SnmpSecurityLevel ::= TEXTUAL-CONVENTION
  2414.        STATUS       current
  2415.        DESCRIPTION "A Level of Security at which SNMP messages can be
  2416.                     sent or with which operations are being processed;
  2417.                     in particular, one of:
  2418.  
  2419.                       noAuthNoPriv - without authentication and
  2420.                                      without privacy,
  2421.                       authNoPriv   - with authentication but
  2422.                                      without privacy,
  2423.                       authPriv     - with authentication and
  2424.                                      with privacy.
  2425.  
  2426.                     These three values are ordered such that
  2427.                     noAuthNoPriv is less than authNoPriv and
  2428.                     authNoPriv is less than authPriv.
  2429.                    "
  2430.        SYNTAX       INTEGER { noAuthNoPriv(1),
  2431.                               authNoPriv(2),
  2432.                               authPriv(3)
  2433.                             }
  2434.  
  2435.    SnmpAdminString ::= TEXTUAL-CONVENTION
  2436.        DISPLAY-HINT "255a"
  2437.        STATUS       current
  2438.        DESCRIPTION "An octet string containing administrative
  2439.                     information, preferably in human-readable form.
  2440.  
  2441.                     To facilitate internationalization, this
  2442.                     information is represented using the ISO/IEC
  2443.                     IS 10646-1 character set, encoded as an octet
  2444.                     string using the UTF-8 transformation format
  2445.                     described in [RFC2044].
  2446.  
  2447.                     Since additional code points are added by
  2448.                     amendments to the 10646 standard from time
  2449.                     to time, implementations must be prepared to
  2450.                     encounter any code point from 0x00000000 to
  2451.                     0x7fffffff.
  2452.  
  2453.                     The use of control codes should be avoided.
  2454.  
  2455.                     When it is necessary to represent a newline,
  2456.                     the control code sequence CR LF should be used.
  2457.  
  2458.  
  2459.  
  2460.  
  2461. SNMPv3 Working Group       Expires March 1998                  [Page 44]
  2462.  
  2463. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  2464.  
  2465.  
  2466.                     The use of leading or trailing white space should
  2467.                     be avoided.
  2468.  
  2469.                     For code points not directly supported by user
  2470.                     interface hardware or software, an alternative
  2471.                     means of entry and display, such as hexadecimal,
  2472.                     may be provided.
  2473.  
  2474.                     For information encoded in 7-bit US-ASCII,
  2475.                     the UTF-8 encoding is identical to the
  2476.                     US-ASCII encoding.
  2477.  
  2478.                     Note that when this TC is used for an object that
  2479.                     is used or envisioned to be used as an index, then
  2480.                     a SIZE restriction must be specified so that the
  2481.                     number of sub-identifiers for any object instance
  2482.                     does not exceed the limit of 128, as defined by
  2483.                     [RFC1905].
  2484.                    "
  2485.        SYNTAX       OCTET STRING (SIZE (0..255))
  2486.  
  2487.  
  2488.    -- Administrative assignments ***************************************
  2489.  
  2490.    snmpFrameworkAdmin
  2491.        OBJECT IDENTIFIER ::= { snmpFrameworkMIB 1 }
  2492.    snmpFrameworkMIBObjects
  2493.        OBJECT IDENTIFIER ::= { snmpFrameworkMIB 2 }
  2494.    snmpFrameworkMIBConformance
  2495.        OBJECT IDENTIFIER ::= { snmpFrameworkMIB 3 }
  2496.  
  2497.    -- the snmpEngine Group ********************************************
  2498.  
  2499.    snmpEngine OBJECT IDENTIFIER ::= { snmpFrameworkMIBObjects 1 }
  2500.  
  2501.    snmpEngineID     OBJECT-TYPE
  2502.        SYNTAX       SnmpEngineID
  2503.        MAX-ACCESS   read-only
  2504.        STATUS       current
  2505.        DESCRIPTION "An SNMP engine's administratively-unique identifier.
  2506.                    "
  2507.        ::= { snmpEngine 1 }
  2508.  
  2509.    snmpEngineBoots  OBJECT-TYPE
  2510.        SYNTAX       INTEGER (1..2147483647)
  2511.        MAX-ACCESS   read-only
  2512.        STATUS       current
  2513.        DESCRIPTION "The number of times that the SNMP engine has
  2514.  
  2515.  
  2516.  
  2517. SNMPv3 Working Group       Expires March 1998                  [Page 45]
  2518.  
  2519. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  2520.  
  2521.  
  2522.                     (re-)initialized itself since its initial
  2523.                     configuration.
  2524.                    "
  2525.        ::= { snmpEngine 2 }
  2526.  
  2527.    snmpEngineTime   OBJECT-TYPE
  2528.        SYNTAX       INTEGER (0..2147483647)
  2529.        MAX-ACCESS   read-only
  2530.        STATUS       current
  2531.        DESCRIPTION "The number of seconds since the SNMP engine last
  2532.                     incremented the snmpEngineBoots object.
  2533.                    "
  2534.        ::= { snmpEngine 3 }
  2535.  
  2536.    snmpEngineMaxMessageSize OBJECT-TYPE
  2537.        SYNTAX       INTEGER (484..2147483647)
  2538.        MAX-ACCESS   read-only
  2539.        STATUS       current
  2540.        DESCRIPTION "The maximum length in octets of an SNMP message
  2541.                     which this SNMP engine can send or receive and
  2542.                     process, determined as the minimum of the maximum
  2543.                     message size values supported among all of the
  2544.                     transports available to and supported by the engine.
  2545.                    "
  2546.        ::= { snmpEngine 4 }
  2547.  
  2548.  
  2549.    -- Registration Points for Authentication and Privacy Protocols **
  2550.  
  2551.    snmpAuthProtocols OBJECT-IDENTITY
  2552.        STATUS        current
  2553.        DESCRIPTION  "Registration point for standards-track
  2554.                      authentication protocols used in SNMP Management
  2555.                      Frameworks.
  2556.                     "
  2557.        ::= { snmpFrameworkAdmin 1 }
  2558.  
  2559.    snmpPrivProtocols OBJECT-IDENTITY
  2560.        STATUS        current
  2561.        DESCRIPTION  "Registration point for standards-track privacy
  2562.                      protocols used in SNMP Management Frameworks.
  2563.                     "
  2564.        ::= { snmpFrameworkAdmin 2 }
  2565.  
  2566.    -- Conformance information ******************************************
  2567.  
  2568.    snmpFrameworkMIBCompliances
  2569.                   OBJECT IDENTIFIER ::= {snmpFrameworkMIBConformance 1}
  2570.  
  2571.  
  2572.  
  2573. SNMPv3 Working Group       Expires March 1998                  [Page 46]
  2574.  
  2575. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  2576.  
  2577.  
  2578.    snmpFrameworkMIBGroups
  2579.                   OBJECT IDENTIFIER ::= {snmpFrameworkMIBConformance 2}
  2580.  
  2581.    -- compliance statements
  2582.  
  2583.    snmpFrameworkMIBCompliance MODULE-COMPLIANCE
  2584.        STATUS       current
  2585.        DESCRIPTION "The compliance statement for SNMP engines which
  2586.                     implement the SNMP Management Framework MIB.
  2587.                    "
  2588.        MODULE    -- this module
  2589.            MANDATORY-GROUPS { snmpEngineGroup }
  2590.  
  2591.        ::= { snmpFrameworkMIBCompliances 1 }
  2592.  
  2593.    -- units of conformance
  2594.  
  2595.    snmpEngineGroup OBJECT-GROUP
  2596.        OBJECTS {
  2597.                  snmpEngineID,
  2598.                  snmpEngineBoots,
  2599.                  snmpEngineTime,
  2600.                  snmpEngineMaxMessageSize
  2601.                }
  2602.        STATUS       current
  2603.        DESCRIPTION "A collection of objects for identifying and
  2604.                     determining the configuration and current timeliness
  2605.                     values of an SNMP engine.
  2606.                    "
  2607.        ::= { snmpFrameworkMIBGroups 1 }
  2608.  
  2609.    END
  2610.  
  2611.  
  2612. 6.  Intellectual Property
  2613.  
  2614.    The IETF takes no position regarding the validity or scope of any
  2615.    intellectual property or other rights that might be claimed to
  2616.    pertain to the implementation or use of the technology described in
  2617.    this document or the extent to which any license under such rights
  2618.    might or might not be available; neither does it represent that it
  2619.    has made any effort to identify any such rights.  Information on the
  2620.    IETF's procedures with respect to rights in standards-track and
  2621.    standards-related documentation can be found in BCP-11.  Copies of
  2622.    claims of rights made available for publication and any assurances of
  2623.    licenses to be made available, or the result of an attempt made to
  2624.    obtain a general license or permission for the use of such
  2625.    proprietary rights by implementors or users of this specification can
  2626.  
  2627.  
  2628.  
  2629. SNMPv3 Working Group       Expires March 1998                  [Page 47]
  2630.  
  2631. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  2632.  
  2633.  
  2634.    be obtained from the IETF Secretariat.
  2635.  
  2636.    The IETF invites any interested party to bring to its attention any
  2637.    copyrights, patents or patent applications, or other proprietary
  2638.    rights which may cover technology that may be required to practice
  2639.    this standard.  Please address the information to the IETF Executive
  2640.    Director.
  2641.  
  2642. 7.  Acknowledgements
  2643.  
  2644.    This document is the result of the efforts of the SNMPv3 Working
  2645.    Group.  Some special thanks are in order to the following SNMPv3 WG
  2646.    members:
  2647.  
  2648.        Dave Battle (SNMP Research, Inc.)
  2649.        Uri Blumenthal (IBM T.J. Watson Research Center)
  2650.        Jeff Case (SNMP Research, Inc.)
  2651.        John Curran (BBN)
  2652.        T. Max Devlin (Hi-TECH Connections)
  2653.        John Flick (Hewlett Packard)
  2654.        David Harrington (Cabletron Systems Inc.)
  2655.        N.C. Hien (IBM T.J. Watson Research Center)
  2656.        Dave Levi (SNMP Research, Inc.)
  2657.        Louis A Mamakos (UUNET Technologies Inc.)
  2658.        Paul Meyer (Secure Computing Corporation)
  2659.        Keith McCloghrie (Cisco Systems)
  2660.        Russ Mundy (Trusted Information Systems, Inc.)
  2661.        Bob Natale (ACE*COMM Corporation)
  2662.        Mike O'Dell (UUNET Technologies Inc.)
  2663.        Dave Perkins (DeskTalk)
  2664.        Peter Polkinghorne (Brunel University)
  2665.        Randy Presuhn (BMC Software, Inc.)
  2666.        David Reid (SNMP Research, Inc.)
  2667.        Shawn Routhier (Epilogue)
  2668.        Juergen Schoenwaelder (TU Braunschweig)
  2669.        Bob Stewart (Cisco Systems)
  2670.        Bert Wijnen (IBM T.J. Watson Research Center)
  2671.  
  2672.    The document is based on recommendations of the IETF Security and
  2673.    Administrative Framework Evolution for SNMP Advisory Team.  Members
  2674.    of that Advisory Team were:
  2675.  
  2676.        David Harrington (Cabletron Systems Inc.)
  2677.        Jeff Johnson (Cisco Systems)
  2678.        David Levi (SNMP Research Inc.)
  2679.        John Linn (Openvision)
  2680.        Russ Mundy (Trusted Information Systems) chair
  2681.        Shawn Routhier (Epilogue)
  2682.  
  2683.  
  2684.  
  2685. SNMPv3 Working Group       Expires March 1998                  [Page 48]
  2686.  
  2687. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  2688.  
  2689.  
  2690.        Glenn Waters (Nortel)
  2691.        Bert Wijnen (IBM T. J. Watson Research Center)
  2692.  
  2693.    As recommended by the Advisory Team and the SNMPv3 Working Group
  2694.    Charter, the design incorporates as much as practical from previous
  2695.    RFCs and drafts. As a result, special thanks are due to the authors
  2696.    of previous designs known as SNMPv2u and SNMPv2*:
  2697.  
  2698.        Jeff Case (SNMP Research, Inc.)
  2699.        David Harrington (Cabletron Systems Inc.)
  2700.        David Levi (SNMP Research, Inc.)
  2701.        Keith McCloghrie (Cisco Systems)
  2702.        Brian O'Keefe (Hewlett Packard)
  2703.        Marshall T. Rose (Dover Beach Consulting)
  2704.        Jon Saperia (BGS Systems Inc.)
  2705.        Steve Waldbusser (International Network Services)
  2706.        Glenn W. Waters (Bell-Northern Research Ltd.)
  2707.  
  2708. 8.  Security Considerations
  2709.  
  2710.    This document describes how an implementation can include a Security
  2711.    Model to protect management messages and an Access Control Model to
  2712.    control access to management information.
  2713.  
  2714.    The level of security provided is determined by the specific Security
  2715.    Model implementation(s) and the specific Access Control Model
  2716.    implementation(s) used.
  2717.  
  2718.    Applications have access to data which is not secured.  Applications
  2719.    should take reasonable steps to protect the data from disclosure.
  2720.  
  2721.    It is the responsibility of the purchaser of an implementation to
  2722.    ensure that:
  2723.  
  2724.       1) an implementation complies with the rules defined by this
  2725.          architecture,
  2726.  
  2727.       2) the Security and Access Control Models utilized satisfy the
  2728.          security and access control needs of the organization,
  2729.  
  2730.       3) the implementations of the Models and Applications comply with
  2731.          the model and application specifications,
  2732.  
  2733.       4) and the implementation protects configuration secrets from
  2734.          inadvertent disclosure.
  2735.  
  2736.  
  2737.  
  2738.  
  2739.  
  2740.  
  2741. SNMPv3 Working Group       Expires March 1998                  [Page 49]
  2742.  
  2743. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  2744.  
  2745.  
  2746. 9.  References
  2747.  
  2748.    [RFC1155] Rose, M., and K. McCloghrie, "Structure and Identification
  2749.       of Management Information for TCP/IP-based internets", STD 16, RFC
  2750.       1155, May 1990.
  2751.  
  2752.    [RFC1157] Case, J., M. Fedor, M. Schoffstall, and J. Davin, "The
  2753.       Simple Network Management Protocol", STD 15, RFC 1157, University
  2754.       of Tennessee at Knoxville, Performance Systems s International,
  2755.       Performance International, and the MIT Laboratory for Computer
  2756.       Science, May 1990.
  2757.  
  2758.    [RFC1212] Rose, M., and K. McCloghrie, "Concise MIB Definitions", STD
  2759.       16, RFC 1212, March 1991.
  2760.  
  2761.    [RFC1901] The SNMPv2 Working Group, Case, J., McCloghrie, K., Rose,
  2762.       M., and S. Waldbusser, "Introduction to Community-based SNMPv2",
  2763.       RFC 1901, January 1996.
  2764.  
  2765.    [RFC1902] The SNMPv2 Working Group, Case, J., McCloghrie, K., Rose,
  2766.       M., and S. Waldbusser, "Structure of Management Information for
  2767.       Version  2 of the Simple Network Management Protocol (SNMPv2)",
  2768.       RFC 1902, January 1996.
  2769.  
  2770.    [RFC1903] The SNMPv2 Working Group, Case, J., McCloghrie, K., Rose,
  2771.       M., and S. Waldbusser, "Textual Conventions for Version 2 of the
  2772.       Simple Network Management Protocol (SNMPv2)", RFC 1903, January
  2773.       1996.
  2774.  
  2775.    [RFC1904] The SNMPv2 Working Group, Case, J., McCloghrie, K., Rose,
  2776.       M., and S. Waldbusser, "Conformance Statements for Version 2 of
  2777.       the Simple Network Management Protocol (SNMPv2)", RFC 1904,
  2778.       January 1996.
  2779.  
  2780.    [RFC1905] The SNMPv2 Working Group, Case, J., McCloghrie, K., Rose,
  2781.       M., and S. Waldbusser, "Protocol Operations for Version 2 of the
  2782.       Simple Network Management Protocol (SNMPv2)", RFC 1905, January
  2783.       1996.
  2784.  
  2785.    [RFC1906] The SNMPv2 Working Group, Case, J., McCloghrie, K., Rose,
  2786.       M., and S. Waldbusser, "Transport Mappings for Version 2 of the
  2787.       Simple Network Management Protocol (SNMPv2)", RFC 1906, January
  2788.       1996.
  2789.  
  2790.    [RFC1907] The SNMPv2 Working Group, Case, J., McCloghrie, K., Rose,
  2791.       M., and S. Waldbusser, "Management Information Base for Version 2
  2792.       of the Simple Network Management Protocol (SNMPv2)", RFC 1907
  2793.       January 1996.
  2794.  
  2795.  
  2796.  
  2797. SNMPv3 Working Group       Expires March 1998                  [Page 50]
  2798.  
  2799. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  2800.  
  2801.  
  2802.    [RFC1908] The SNMPv2 Working Group, Case, J., McCloghrie, K., Rose,
  2803.       M., and S. Waldbusser, "Coexistence between Version 1 and Version
  2804.       2 of the SNMP-standard Network Management Framework", RFC 1908,
  2805.       January 1996.
  2806.  
  2807.    [RFC1909] McCloghrie, K., Editor, "An Administrative Infrastructure
  2808.       for SNMPv2", RFC1909, February 1996.
  2809.  
  2810.    [RFC1910] Waters, G., Editor, "User-based Security Model for SNMPv2",
  2811.       RFC1910, February 1996.
  2812.  
  2813.    [RFC2044] Yergeau, F., "UTF-8, a transformation format of Unicode and
  2814.       ISO 10646", RFC 2044, October 1996.
  2815.  
  2816.    [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
  2817.       Requirement Levels", BCP 14, RFC 2119, March 1997.
  2818.  
  2819.    [BCP-11] Hovey, R., and S. Bradner, "The Organizations Involved in
  2820.       the IETF Standards Process", BCP 11, RFC 2028, October 1996.
  2821.  
  2822.    [SNMP-MPD] The SNMPv3 Working Group, Case, J., Harrington, D.,
  2823.       Presuhn, R., and B. Wijnen, "Message Processing and Dispatching
  2824.       for the Simple Network Management Protocol (SNMP)",
  2825.       draft-ietf-snmpv3-mpc-06.txt, October 1997.
  2826.  
  2827.    [SNMP-USM] The SNMPv3 Working Group, Blumenthal, U., and B. Wijnen,
  2828.       "The User-Based Security Model for Version 3 of the Simple Network
  2829.       Management Protocol (SNMPv3)", draft-ietf-snmpv3-usm-03.txt,
  2830.       October 1997.
  2831.  
  2832.    [SNMP-ACM] The SNMPv3 Working Group, Wijnen, B., Presuhn, R., and K.
  2833.       McCloghrie, "View-based Access Control Model for the Simple
  2834.       Network Management Protocol (SNMP)", draft-ietf-snmpv3-acm-04.txt,
  2835.       October 1997.
  2836.  
  2837.    [SNMP-APPL] The SNMPv3 Working Group, Levi, D. B., Meyer, P., and B.
  2838.       Stewart, "SNMPv3 Applications", <draft-ietf-snmpv3-appl-04.txt>,
  2839.       October 1997.
  2840.  
  2841.  
  2842.  
  2843.  
  2844.  
  2845.  
  2846.  
  2847.  
  2848.  
  2849.  
  2850.  
  2851.  
  2852.  
  2853. SNMPv3 Working Group       Expires March 1998                  [Page 51]
  2854.  
  2855. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  2856.  
  2857.  
  2858. 10.  Editor's Addresses
  2859.  
  2860.    Bert Wijnen
  2861.    IBM T.J. Watson Research
  2862.    Schagen 33
  2863.    3461 GL Linschoten
  2864.    Netherlands
  2865.  
  2866.    Phone:      +31 348-432-794
  2867.    EMail:      wijnen@vnet.ibm.com
  2868.  
  2869.  
  2870.    Dave Harrington
  2871.    Cabletron Systems, Inc
  2872.    Post Office Box 5005
  2873.    Mail Stop: Durham
  2874.    35 Industrial Way
  2875.    Rochester, NH 03867-5005
  2876.    USA
  2877.  
  2878.    Phone:      +1 603-337-7357
  2879.    EMail:      dbh@cabletron.com
  2880.  
  2881.  
  2882.    Randy Presuhn
  2883.    BMC Software, Inc.
  2884.    1190 Saratoga Avenue
  2885.    Suite 130
  2886.    San Jose, CA 95129
  2887.    USA
  2888.  
  2889.    Phone:      +1 408-556-0720
  2890.    EMail:      rpresuhn@bmc.com
  2891.  
  2892.  
  2893.  
  2894.  
  2895.  
  2896.  
  2897.  
  2898.  
  2899.  
  2900.  
  2901.  
  2902.  
  2903.  
  2904.  
  2905.  
  2906.  
  2907.  
  2908.  
  2909. SNMPv3 Working Group       Expires March 1998                  [Page 52]
  2910.  
  2911. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  2912.  
  2913.  
  2914. APPENDIX A
  2915.  
  2916.  
  2917. A.  Guidelines for Model Designers
  2918.  
  2919.    This appendix describes guidelines for designers of models which are
  2920.    expected to fit into the architecture defined in this document.
  2921.  
  2922.    SNMPv1 and SNMPv2c are two SNMP frameworks which use communities to
  2923.    provide trivial authentication and access control. SNMPv1 and SNMPv2c
  2924.    Frameworks can coexist with Frameworks designed according to this
  2925.    architecture, and modified versions of SNMPv1 and SNMPv2c Frameworks
  2926.    could be designed to meet the requirements of this architecture, but
  2927.    this document does not provide guidelines for that coexistence.
  2928.  
  2929.    Within any subsystem model, there should be no reference to any
  2930.    specific model of another subsystem, or to data defined by a specific
  2931.    model of another subsystem.
  2932.  
  2933.    Transfer of data between the subsystems is deliberately described as
  2934.    a fixed set of abstract data elements and primitive functions which
  2935.    can be overloaded to satisfy the needs of multiple model definitions.
  2936.  
  2937.    Documents which define models to be used within this architecture
  2938.    SHOULD use the standard primitives between subsystems, possibly
  2939.    defining specific mechanisms for converting the abstract data
  2940.    elements into model-usable formats. This constraint exists to allow
  2941.    subsystem and model documents to be written recognizing common
  2942.    borders of the subsystem and model. Vendors are not constrained to
  2943.    recognize these borders in their implementations.
  2944.  
  2945.    The architecture defines certain standard services to be provided
  2946.    between subsystems, and the architecture defines abstract service
  2947.    interfaces to request these services.
  2948.  
  2949.    Each model definition for a subsystem SHOULD support the standard
  2950.    service interfaces, but whether, or how, or how well, it performs the
  2951.    service is dependent on the model definition.
  2952.  
  2953. A.1.  Security Model Design Requirements
  2954.  
  2955. A.1.1.  Threats
  2956.  
  2957.    A document describing a Security Model MUST describe how the model
  2958.    protects against the threats described under "Security Requirements
  2959.    of this Architecture", section 1.4.
  2960.  
  2961.  
  2962.  
  2963.  
  2964.  
  2965. SNMPv3 Working Group       Expires March 1998                  [Page 53]
  2966.  
  2967. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  2968.  
  2969.  
  2970. A.1.2.  Security Processing
  2971.  
  2972.    Received messages MUST be validated by a Model of the Security
  2973.    Subsystem.  Validation includes authentication and privacy processing
  2974.    if needed, but it is explicitly allowed to send messages which do not
  2975.    require authentication or privacy.
  2976.  
  2977.    A received message contains a specified securityLevel to be used
  2978.    during processing.  All messages requiring privacy MUST also require
  2979.    authentication.
  2980.  
  2981.    A Security Model specifies rules by which authentication and privacy
  2982.    are to be done.  A model may define mechanisms to provide additional
  2983.    security features, but the model definition is constrained to using
  2984.    (possibly a subset of) the abstract data elements defined in this
  2985.    document for transferring data between subsystems.
  2986.  
  2987.    Each Security Model may allow multiple security protocols to be used
  2988.    concurrently within an implementation of the model. Each Security
  2989.    Model defines how to determine which protocol to use, given the
  2990.    securityLevel and the security parameters relevant to the message.
  2991.    Each Security Model, with its associated protocol(s) defines how the
  2992.    sending/receiving entities are identified, and how secrets are
  2993.    configured.
  2994.  
  2995.    Authentication and Privacy protocols supported by Security Models are
  2996.    uniquely identified using Object Identifiers. IETF standard protocols
  2997.    for authentication or privacy should have an identifier defined
  2998.    within the snmpAuthProtocols or the snmpPrivProtocols subtrees.
  2999.    Enterprise specific protocol identifiers should be defined within the
  3000.    enterprise subtree.
  3001.  
  3002.    For privacy, the Security Model defines what portion of the message
  3003.    is encrypted.
  3004.  
  3005.    The persistent data used for security should be SNMP-manageable, but
  3006.    the Security Model defines whether an instantiation of the MIB is a
  3007.    conformance requirement.
  3008.  
  3009.    Security Models are replaceable within the Security Subsystem.
  3010.    Multiple Security Model implementations may exist concurrently within
  3011.    an SNMP engine.  The number of Security Models defined by the SNMP
  3012.    community should remain small to promote interoperability.
  3013.  
  3014. A.1.3.  Validate the security-stamp in a received message
  3015.  
  3016.    A Message Processing Model requests that a Security Model:
  3017.      - verifies that the message has not been altered,
  3018.  
  3019.  
  3020.  
  3021. SNMPv3 Working Group       Expires March 1998                  [Page 54]
  3022.  
  3023. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  3024.  
  3025.  
  3026.      - authenticates the identification of the principal for whom the
  3027.        message was generated.
  3028.      - decrypts the message if it was encrypted.
  3029.  
  3030.    Additional requirements may be defined by the model, and additional
  3031.    services may be provided by the model, but the model is constrained
  3032.    to use the following primitives for transferring data between
  3033.    subsystems. Implementations are not so constrained.
  3034.  
  3035.    A Message Processing Model uses the processMsg primitive as described
  3036.    in section 4.5.
  3037.  
  3038. A.1.4.  Security MIBs
  3039.  
  3040.    Each Security Model defines the MIB module(s) required for security
  3041.    processing, including any MIB module(s) required for the security
  3042.    protocol(s) supported.  The MIB module(s) SHOULD be defined
  3043.    concurrently with the procedures which use the MIB module(s).  The
  3044.    MIB module(s) are subject to normal access control rules.
  3045.  
  3046.    The mapping between the model-dependent security ID and the
  3047.    securityName MUST be able to be determined using SNMP, if the model-
  3048.    dependent MIB is instantiated and if access control policy allows
  3049.    access.
  3050.  
  3051. A.1.5.  Cached Security Data
  3052.  
  3053.    For each message received, the Security Model caches the state
  3054.    information such that a Response message can be generated using the
  3055.    same security information, even if the Local Configuration Datastore
  3056.    is altered between the time of the incoming request and the outgoing
  3057.    response.
  3058.  
  3059.    A Message Processing Model has the responsibility for explicitly
  3060.    releasing the cached data if such data is no longer needed. To enable
  3061.    this, an abstract securityStateReference data element is passed from
  3062.    the Security Model to the Message Processing Model.
  3063.  
  3064.    The cached security data may be implicitly released via the
  3065.    generation of a response, or explicitly released by using the
  3066.    stateRelease primitive, as described in section 4.1.
  3067.  
  3068. A.2.  Message Processing Model Design Requirements
  3069.  
  3070.    An SNMP engine contains a Message Processing Subsystem which may
  3071.    contain multiple Message Processing Models.
  3072.  
  3073.    The Message Processing Model MUST always (conceptually) pass the
  3074.  
  3075.  
  3076.  
  3077. SNMPv3 Working Group       Expires March 1998                  [Page 55]
  3078.  
  3079. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  3080.  
  3081.  
  3082.    complete PDU, i.e., it never forwards less than the complete list of
  3083.    varBinds.
  3084.  
  3085. A.2.1.  Receiving an SNMP Message from the Network
  3086.  
  3087.    Upon receipt of a message from the network, the Dispatcher in the
  3088.    SNMP engine determines the version of the SNMP message and interacts
  3089.    with the corresponding Message Processing Model to determine the
  3090.    abstract data elements.
  3091.  
  3092.    A Message Processing Model specifies the SNMP Message format it
  3093.    supports and describes how to determine the values of the abstract
  3094.    data elements (like msgID, msgMaxSize, msgFlags,
  3095.    msgSecurityParameters, securityModel, securityLevel etc). A Message
  3096.    Processing Model interacts with a Security Model to provide security
  3097.    processing for the message using the processMsg primitive, as
  3098.    described in section 4.5.
  3099.  
  3100. A.2.2.  Sending an SNMP Message to the Network
  3101.  
  3102.    The Dispatcher in the SNMP engine interacts with a Message Processing
  3103.    Model to prepare an outgoing message. For that it uses the following
  3104.    primitives:
  3105.  
  3106.       -  for requests and notifications: prepareOutgoingMessage, as
  3107.          described in section 4.4
  3108.  
  3109.       -  for response messages: prepareResponseMessage, as described in
  3110.          section 4.4
  3111.  
  3112.    A Message Processing Model, when preparing an Outgoing SNMP Message,
  3113.    interacts with a Security Model to secure the message. For that it
  3114.    uses the following primitives:
  3115.  
  3116.       -  for requests and notifications: generateRequestMsg, as
  3117.          described in section 4.5.
  3118.  
  3119.       -  for response messages: generateResponseMsg as described in
  3120.          section 4.5.
  3121.  
  3122.       Once the SNMP message is prepared by a Message Processing Model,
  3123.       the Dispatcher sends the message to the desired address using the
  3124.       appropriate transport.
  3125.  
  3126. A.3.  Application Design Requirements
  3127.  
  3128.    Within an application, there may be an explicit binding to a specific
  3129.    SNMP message version, i.e., a specific Message Processing Model, and
  3130.  
  3131.  
  3132.  
  3133. SNMPv3 Working Group       Expires March 1998                  [Page 56]
  3134.  
  3135. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  3136.  
  3137.  
  3138.    to a specific Access Control Model, but there should be no reference
  3139.    to any data defined by a specific Message Processing Model or Access
  3140.    Control Model.
  3141.  
  3142.    Within an application, there should be no reference to any specific
  3143.    Security Model, or any data defined by a specific Security Model.
  3144.  
  3145.    An application determines whether explicit or implicit access control
  3146.    should be applied to the operation, and, if access control is needed,
  3147.    which Access Control Model should be used.
  3148.  
  3149.    An application has the responsibility to define any MIB module(s)
  3150.    used to provide application-specific services.
  3151.  
  3152.    Applications interact with the SNMP engine to initiate messages,
  3153.    receive responses, receive asynchronous messages, and send responses.
  3154.  
  3155.  
  3156. A.3.1.  Applications that Initiate Messages
  3157.  
  3158.    Applications may request that the SNMP engine send messages
  3159.    containing SNMP commands or notifications using the sendPdu primitive
  3160.    as described in section 4.2.
  3161.  
  3162.    If it is desired that a message be sent to multiple targets, it is
  3163.    the responsibility of the application to provide the iteration.
  3164.  
  3165.    The SNMP engine assumes necessary access control has been applied to
  3166.    the PDU, and provides no access control services.
  3167.  
  3168.    The SNMP engine looks at the "expectResponse" parameter, and if a
  3169.    response is expected, then the appropriate information is cached such
  3170.    that a later response can be associated to this message, and can then
  3171.    be returned to the application. A sendPduHandle is returned to the
  3172.    application so it can later correspond the response with this message
  3173.    as well.
  3174.  
  3175. A.3.2.  Applications that Receive Responses
  3176.  
  3177.    The SNMP engine matches the incoming response messages to outstanding
  3178.    messages sent by this SNMP engine, and forwards the response to the
  3179.    associated application using the processResponsePdu primitive, as
  3180.    described in section 4.2.
  3181.  
  3182. A.3.3.  Applications that Receive Asynchronous Messages
  3183.  
  3184.    When an SNMP engine receives a message that is not the response to a
  3185.    request from this SNMP engine, it must determine to which application
  3186.  
  3187.  
  3188.  
  3189. SNMPv3 Working Group       Expires March 1998                  [Page 57]
  3190.  
  3191. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  3192.  
  3193.  
  3194.    the message should be given.
  3195.  
  3196.    An Application that wishes to receive asynchronous messages registers
  3197.    itself with the engine using the primitive registerContextEngineID as
  3198.    described in section 4.2.
  3199.  
  3200.    An Application that wishes to stop receiving asynchronous messages
  3201.    should unregister itself with the SNMP engine using the primitive
  3202.    unregisterContextEngineID as described in section 4.2.
  3203.  
  3204.    Only one registration per combination of PDU type and contextEngineID
  3205.    is permitted at the same time. Duplicate registrations are ignored.
  3206.    An errorIndication will be returned to the application that attempts
  3207.    to duplicate a registration.
  3208.  
  3209.    All asynchronously received messages containing a registered
  3210.    combination of PDU type and contextEngineID are sent to the
  3211.    application which registered to support that combination.
  3212.  
  3213.    The engine forwards the PDU to the registered application, using the
  3214.    processPdu primitive, as described in section 4.2.
  3215.  
  3216. A.3.4.  Applications that Send Responses
  3217.  
  3218.    Request operations require responses.  An application sends a
  3219.    response via the returnResponsePdu primitive, as described in section
  3220.    4.2.
  3221.  
  3222.    The contextEngineID, contextName, securityModel, securityName,
  3223.    securityLevel, and stateReference parameters are from the initial
  3224.    processPdu primitive. The PDU and statusInformation are the results
  3225.    of processing.
  3226.  
  3227. A.4.  Access Control Model Design Requirements
  3228.  
  3229.    An Access Control Model determines whether the specified securityName
  3230.    is allowed to perform the requested operation on a specified managed
  3231.    object. The Access Control Model specifies the rules by which access
  3232.    control is determined.
  3233.  
  3234.    The persistent data used for access control should be manageable
  3235.    using SNMP, but the Access Control Model defines whether an
  3236.    instantiation of the MIB is a conformance requirement.
  3237.  
  3238.    The Access Control Model must provide the primitive isAccessAllowed.
  3239.  
  3240.  
  3241.  
  3242.  
  3243.  
  3244.  
  3245. SNMPv3 Working Group       Expires March 1998                  [Page 58]
  3246.  
  3247. Internet Draft      Architecture for SNMP Frameworks     28 October 1997
  3248.  
  3249.  
  3250. B.  Issues
  3251.  
  3252.    The issues list will be deleted when it is time to publish as an RFC.
  3253.  
  3254. B.1.  Open Issues
  3255.  
  3256.    -  we need a mechanism for a manager to be able to discover what
  3257.       securityModels are supported by a particular implementation
  3258.  
  3259. B.2.  Change Log
  3260.  
  3261.    Current version
  3262.  
  3263.       -  Minor layout and editorial clarifications.
  3264.  
  3265.       -  Adjusted layout per RFC 2223 and added copyright statements
  3266.          required by RFC 2026.
  3267.  
  3268.       -  Removed duplicate description of common primitives.
  3269.  
  3270. C.  Full Copyright Statement
  3271.  
  3272.    Copyright (C) The Internet Society (1997).  All Rights Reserved.
  3273.  
  3274.    This document and translations of it may be copied and furnished to
  3275.    others, and derivative works that comment on or otherwise explain it
  3276.    or assist in its implmentation may be prepared, copied, published and
  3277.    distributed, in whole or in part, without restriction of any kind,
  3278.    provided that the above copyright notice and this paragraph are
  3279.    included on all such copies and derivative works.  However, this
  3280.    document itself may not be modified in any way, such as by removing
  3281.    the copyright notice or references to the Internet Society or other
  3282.    Internet organizations, except as needed for the purpose of
  3283.    developing Internet standards in which case the procedures for
  3284.    copyrights defined in the Internet Standards process must be
  3285.    followed, or as required to translate it into languages other than
  3286.    English.
  3287.  
  3288.    The limited permissions granted above are perpetual and will not be
  3289.    revoked by the Internet Society or its successors or assigns.
  3290.  
  3291.    This document and the information contained herein is provided on an
  3292.    "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
  3293.    TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
  3294.    BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
  3295.    HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
  3296.    MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
  3297.  
  3298.  
  3299.  
  3300.  
  3301. SNMPv3 Working Group       Expires March 1998                  [Page 59]
  3302.  
  3303.