Message Processing and Control Model for version 3 of the Simple Network Management Protocol (SNMPv3) 17 June 1997 J. Case Snmp Research Inc. case@snmp.com D. Harrington Cabletron Systems, Inc. dbh@cabletron.com B. Wijnen IBM T. J. Watson Research wijnen@vnet.ibm.com Status of this Memo This document is an Internet-Draft. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet- Drafts as reference material or to cite them other than as ``work in progress.'' To learn the current status of any Internet-Draft, please check the ``1id-abstracts.txt'' listing contained in the Internet- Drafts Shadow Directories on ds.internic.net (US East Coast), nic.nordu.net (Europe), ftp.isi.edu (US West Coast), or munnari.oz.au (Pacific Rim). Abstract This document describes the SNMP version 3 Message Processing and Control Model for use in the SNMP architecture [SNMP-ARCH]. This model defines the SNMP version 3 message format, and the procedure for coordinating the processing of a message in SNMPv3 format. Harrington/Case Expires November 1977 [Page 1] \ Draft SNMPv3 Message Processing and Control model May 1997 Harrington/Case Expires November 1977 [Page 2] \ Draft SNMPv3 Message Processing and Control model May 1997 0. Issues . Interactions with Applications needs more synchronization with SNMPv3 applications (orangelets) document I am using "applications" instead of "orangelets". DaveL c.s. are talking about applications and not about orangelets . Interactions with Security Model needs more synchronization with SNMPv3 USEC document. Statistics counters have already been moved to this MPC document and have now generic names that should fit any security model. . Do we need to keep the security threats in section 5? . Should statistics counters from ACM be moved to MPC ?? Bert thinks YES. . Need to check the SNMP-MPC-MIB with a MIB compiler . Need to decide if we want to enumerate Security and Application status Codes, so that we can document in which case a specific statsCounter gets incremented and a reportPDU gets sent. Could decide that such is implementation matter. . acknowledgements needs expansion . sendRequestPdu() primitive should we allow the application to pass stateReference which the MPC could save with its state info about an outstanding SNMP request message, so that when it returns the response message it can pass back a stateReference that the application can use to correlate a response to a request. . scopedPDU defines contextEngineID as SIZE(0|12). Do we need 0? . should the architecture require that all message formats have the version number first? . should globalData parameters be expanded in primitive? . should we use the name primitive, or call them abstract service interfaces? . when matching a response to the outstanding requests, what info must be checked? msgID, contextEngineID? Does the MPC need to look at the verb directly? 0.1. Change Log [version 2.1] . spell-check . removed references to groupName . replaced discussion of threats with reference to [SNMP-ARCH] . moved unresolved co-editor questions into Issues list . worked on improving consistency internally and with other documents . changed errorCode, errorStatus, etc to statusCode. . modified 4.7.1. discussion . published as draft-ietf-snmpv3-mpc-model-01.txt [version 2.0] . changes as a result of 1st interim meeting . some new wording in introduction . rewording in overview with a drawing . added reportFlag to msgFlags Harrington/Case Expires November 1977 [Page 3] \ Draft SNMPv3 Message Processing and Control model May 1997 . describe overall MPC model: MPC Selection mechanism . describe overall MPC model: MPC Multiplexing Layer . describe v3MPC model. . added the abstract interface definitions for interacting with SNMPv3 USEC Model . added the abstract interface definitions for interacting with applications . added MIB definitions for error Counters (statistics) . removed references to LPM and Access Control . Bert added as editor ( thank you for the help, bert - dbh ) Harrington/Case Expires November 1977 [Page 4] \ Draft SNMPv3 Message Processing and Control model May 1997 1. Introduction The Architecture for describing Internet Management Frameworks is composed of multiple subsystems: 1) a message processing and control subsystem, 2) a security subsystem, 3) an access control subsystem, and 4) orangelets. It is important to understand the SNMP architecture and the terminology of the architecture to understand where the model described in this document fits into the architecture and interacts with other subsystems within the architecture. The reader is expected to have read and understood the description of the SNMP architecture, as defined in [SNMP-ARCH]. The Message Processing and Control subsystem of an SNMP engine interacts with the network using SNMP messages, interacts with applications using data elements defined by the Message Processing and Control model, within the constraints of the Architecture, and interacts with other models within the constraints of the architecture. A Message Processing and Control model has the responsibility for coordinating the sending and receiving of SNMP messages, and for coordinating the interaction with other subsystems to acquire the desired services for the processing of a message. It is the purpose of this document to define: - the overall MPC Model, including the MPC Selection and the MPC Multiplexing Layer - a specific model of Message Processing and Control subsystem, designated the SNMP version 3 Message Processing and Control (v3MPC) model. Other (future) documents can add specific models of an MPC for other SNMP versions (like a v1MPC and/or a v2cMPC) which then fit into the overall MPC model described in this document. Harrington/Case Expires November 1977 [Page 5] \ Draft SNMPv3 Message Processing and Control model May 1997 2. Overview The following illustration depicts the MPC: MPC External Interface +----------------------------------------------+ | MPC SELECTION | +----------------------------------------------+ ^ ^ ^ | | | v v v +-------+ +--------+ +-------+ | v1MPC | | v2cMPC | | v3MPC | . . . +-------+ +--------+ +-------+ ^ ^ ^ | | | v v v +----------------------------------------------+ | MULTIPLEXING LAYER | +----------------------------------------------+ MPC Abstract Service Interface 2.1. MPC External Interface The SNMP Message Processing and Control model is part of an SNMP meesageEngine which interacts with the network. It can possibly handle multiple SNMP Message formats (like the SNMPv1 [RFC1157], SNMPv2c [RFC1901] and SNMPv3 message formats). The MPC Selection mechanism receives and sends messages from/to the network. For incoming messages it determines the specific message format of an incoming SNMP message and then selects the corresponding version-specific MPC module to further process the SNMP message. The transport mappings for sending and receiving messages are defined in [RFC1906]. This document defines the SNMP version 3 MPC (v3MPC) model and the corresponding SNMPv3 message format. Other documents may specify additional version-specific MPC models. The MPC model, while sending and receiving SNMP messages, collects statistics about SNMP messages and the behavior of the SNMP engine. These statistics are maintained in managed objects to make it accessible to remote SNMP engines. This document will define the managed objects, and the MIB module which contains them. This document will also describe how these managed objects might be used to provide useful network management. 2.2. MPC Abstract Service Interface Harrington/Case Expires November 1977 [Page 6] \ Draft SNMPv3 Message Processing and Control model May 1997 The SNMP Message Processing and Control model is a specification of a subsystem within an SNMP messageEngine which interacts with other subsystems, requesting services from, and performing services for, those other subsystems. The v3MPC module interacts with one or more SNMPv3 Security Models to ensure that the proper security measures (authentication, timeliness checking, en/decryption) are applied to the messages being sent and received. It uses the abstract service interface to the security model, as defined by the SNMP architecture, to request services from such a security module. The v3MPC is designed to guarantee certain behaviors and to meet a particular set of requirements. It will attempt to achieve its goals by controlling the processing of messages, sometimes by defining a fixed behavior that must be adhered to by a conforming implementation of this model, sometimes by defining options which can be specified by the developer or by the user to cause processing to meet optional requirements. This document describes how the internal interactions are coordinated and constrained by the v3MPC model. Once an incoming message has passed the version-specific MPC processing (like the v3MPC processing) and is ready for processing by an application, the MPC uses a Multiplexing Layer which hides the differences between the various message formats of the different SNMP versions. It uses the abstract service interface to the applications, as defined by the SNMP architecture, to request or provide services from or to the applications. Harrington/Case Expires November 1977 [Page 7] \ Draft SNMPv3 Message Processing and Control model May 1997 3. Transport Mappings The MPC model recognizes the transport mappings defined in RFC 1906, and may support additional transport mappings defined in other documents. During installation, an SNMP engine acting in an agent role is configured with one or more transport service addresses These parameters may be specified explicitly, or they may be specified implicitly as the same set of network-layer addresses configured for other uses by the device together with the well- known transport-layer "port" information for the appropriate transport domain [RFC1906]. The agent listens on each of these transport service addresses for messages. Harrington/Case Expires November 1977 [Page 8] \ Draft SNMPv3 Message Processing and Control model May 1997 4. The SNMPv3 message format This is the format of a message to be processed by the v3MPC. DEFINITIONS ::= BEGIN snmpV3Message ::= SEQUENCE { -- administrative parameters (globalData) version INTEGER { snmpv3 (3) }, msgID INTEGER (0..2147483647), mms Integer32 (484..2147483647), msgFlags OCTET STRING (SIZE(1)), -- .... ..00 noAuth/noPriv -- .... ..01 auth/noPriv -- .... ..10 auth/priv -- .... ..11 reserved -- .... .1.. reportableFlag -- .... 1... reportFlag securityModel SnmpSecurityModel, -- security model-specific parameters -- format defined by Security Model securityParameters OCTET STRING (SIZE(0..2048)), -- local-processing model-specific data data ScopedPduData } ScopedPduData ::= CHOICE { plaintext ScopedPDU, encrypted OCTET STRING -- encrypted value } scopedPDU ::= SEQUENCE { contextEngineID OCTET STRING (SIZE(0|12)), contextName OCTET STRING (SIZE(0..32)), data ANY -- e.g. PDUs as defined in RFC1905 } END 4.1. SNMP version The SNMP version field set to snmpv3(3) identifies the message as an snmpV3Message. 4.2. msgID The msgID is used by the v3MPC to coordinate the processing of the Harrington/Case Expires November 1977 [Page 9] \ Draft SNMPv3 Message Processing and Control model May 1997 message by different subsystem models within the architecture. Note that the request-id [RFC1905] used during local processing identifies the request, not the message that carried the request, and therefore might not be equal to the msgID. 4.3. MMS The maximum message size supported by the sender of the message. That is the maximum message size that the sender can accept when another SNMP engine sends an SNMP message (be it a response or any other message) to the sender of this message. When a request message is being generated, the MMS is provided by the engine which generates the message. When a response message is being generated, the MMS from the request message is used by the v3MPC to determine the maximum size that is acceptable to send. 4.4. msgFlags The msgFlags field contains flags to control the processing of the message. If the reportableFlag is set, then reportPDUs are allowed to be returned to the sender under those conditions which cause the generation of reportPDUs. If the reportableFlag is zero, then a reportPDU must not be sent. The reportableFlag should always be zero when the message is a report, a response, or a trap. The reportFlag is set for report-PDUs so that the v3MPC can recognize such a reportPDU and process it internally. It is the v3MPC module that generates and processes reportPDUs. If the auth flag is set, then the security implementation is required to identify the securityIdentity on whose behalf a request is generated and to authenticate such identification. If the auth flag is zero, authentication of the securityIdentity is not required. If the priv flag is set, then the security implementation is required to protect the data within an SNMP operation from disclosure, i.e. to encrypt the data. If the priv flag is zero, then the security implementation does not need to protect the data using encryption. It is an explicit requirement of the SNMP Architecture that if privacy is selected, then authentication of the identification is required, i.e. priv flag can only be set if auth flag is also set. The combination of the auth flag and the priv flag comprises a Level of Security (LoS), as defined in [SNMP-ARCH]. Harrington/Case Expires November 1977 [Page 10] \ Draft SNMPv3 Message Processing and Control model May 1997 4.5. securityModel The v3MPC supports the concurrent existence of multiple security models to provide security services for snmpV3Messages. The securityModel identifies which security model should be used to provide security processing for the message. The mapping to the appropriate implementation within an SNMP messageEngine is done in an implementation-dependent manner. 4.6. security parameters This octet string is not interpreted by the v3MPC. This abstract data element is used by the v3MPC to transfer security-model-specific data from the snmpV3Message to the security subsystem model indicated by the securityModel field in the message. This data is used exclusively by the security model, and the contents and format of the data is defined by the security model. 4.7. scopedPDU A scopedPDU contains a PDU and information to identify an administratively unique context. The object identifiers in the PDU refer to managed objects which are expected to be accessible within the specified context. 4.7.1. contextEngineID A contextEngineID is the unique identifier of the SNMP contextEngine that has access to the managed objects referenced in the PDUs. The v3MPC will compare the contextEngineID to the registered contextEngineIDs to determine to which application the scopedPDU should be forwarded. 4.7.2. contextName This is the name of the locally-unique context, within the engine specified by the contextEngineID, which realizes the managed objects referenced within the PDUs. 4.7.3. data The data contains the PDUs. The v3MPC specifies that the PDUs are those as specified in RFC1905. Harrington/Case Expires November 1977 [Page 11] \ Draft SNMPv3 Message Processing and Control model May 1997 5. Services of the SNMP Message Processing and Control Model 5.1. Services of the MPC Selection process 5.1.1. Receiving an SNMP message from the network The MPC Selection process when it receives an SNMP message from the network first increments the snmpInPkts counter [RFC1907]. If the received message is not the serialization (according to the conventions of [RFC1906]) of a Message value, then the snmpInASNParseErrs counter [RFC1907] is incremented, and the message is discarded without further processing. The MPC Selection process determines the SNMP version of an incoming message. If the version is not supported by this SNMP messageEngine (e.g. there is no version-specific MPC for this version) then the snmpInBadVersions counter [RFC1907] is incremented, and the message is discarded without further processing. Based on the SNMP version of the message, the MPC passes the message on to the appropriate version-specific MPC. Before doing so, it caches the origin network address information, so that a possible response can be sent back to the sender of the message. 5.1.2. Sending an SNMP message onto the network The MPC Selection process gets called by the version-specific MPC to send an SNMP message onto the network to a specified destination. The MPC selection process sends the message to the specified destination. It then advises the calling version-specific MPC about the success or failure of the sending of the message. 5.2. Services of the v3MPC Model 5.2.1. Interacting with a Security Model to Protect against Threats Several of the classical threats to network protocols are applicable to the network management problem and therefore would be applicable to any SNMP security model. These are described in [SNMP-ARCH]. 5.2.1.1. Receive SNMPv3 messages from the network Upon receipt of an SNMPv3 message from the network (passed to the v3MPC by the MPC Selection process), this SNMPv3 Message Processing and Control model extracts and caches the version, msgID, MMS, and the msgFlags, determines the LoS, and determines where the block of security parameters start in the message. The v3MPC, in an implementation-defined manner, establishes a mechanism for coordinating processing regarding this received Harrington/Case Expires November 1977 [Page 12] \ Draft SNMPv3 Message Processing and Control model May 1997 message, e.g. it may assign a "handle" to the message and it's cached data. The SNMPv3 Message Processing and Control model passes the various header fields. the LoS, the whole message and it's length, and the block of security parameters to the implementation of the Security Model specified in the message header. The abstract service interface for this is: processMsg(version, msgID, mms, msgFlags, securityModel, securityParameters, LoS, wholeMsg, wholeMsgLen) The Security Model, after completion of its processing, returns to the Message Processing and Control implementation a status code and, if the message passed all security checks, a MIID, a cachedSecurityDataReference, a scopedPDUmms, and the scopedPDU itself. The abstract service interface for this is: returnMsg(MIID, cachedSecurityDataReference, scopedPDUmms, scopedPDU, statusCode) In the event of an error in security processing (as indicated by the statusCode), the v3MPC module updates the proper error counter, generates a reportPDU and discards the message without further processing. If successful, the v3MPC adds the cachedSecurityDataReference to it's set of cached information. If the reportFlag is set, then the v3MPC assumes that this is an SNMPv3 error report and parses the reportPDU. It then takes appropriate action (like resending the request in case of a notInTimeWindows report or advising the original application about a failed request). If the reportFlag is not set, then the v3MPC determines if this message is a response to an outstanding request. To do so it checks if there is an outstanding request message for the msgID and contextEngineID contained in the message. The v3MPC passes this message, together with an indication if this is a response message or not, to the MPC Multiplexing layer, which will determine what to do with the payload of the message. If this is a response message, then any cached data for this msgID is discarded, the message processing part of the transaction is complete. If the Multiplexing layer returns an error in the statusCode, then an appropriate reportPDU is generated and the message (including any cached data) is discarded without further processing. Harrington/Case Expires November 1977 [Page 13] \ Draft SNMPv3 Message Processing and Control model May 1997 5.2.1.2. Send SNMPv3 messages to the network The MPC Multiplexing Layer passes a request to the v3MPC to be sent out as an SNMPv3 message. The v3MPC interacts with the SNMPv3 Security Model to secure the outgoing message. There are 2 types of SNMPv3 messages to consider: a. An SNMP request or notification. In this case, the abstract service interface is: generateRequestMsg(version, msgID, mms, msgFlags, securityModel, securityParameters, LoS, MIID, engineID, scopedPDU) The v3MPC module fills out the globalData of the SNMPv3 message before calling upon the generateRequestMsg service. It does so as follows: - the version is set to snmpv3 (3). - a unique msgID is generated. It is best to use random numbers for the msgID. - the mms is set to the value of snmpEngineMaxMessageSize.0 - the msgFlags are set: - the auth and priv flags are set according to the LoS requested. - the reportableFlag is set to 1 - the other bits of the msgFlags octet are set to zero. - the securityModel is set to SnmpV3UsecModel b. An SNMP response. In this case, the abstract service interface is: generateResponseMsg(version, msgID, mms, msgFlags, securityModel, securityParameters, scopedPDU, cachedSecurityDataReference) The v3MPC module fills out the global data based on the cached information it saved from the incoming request to which this is a response. The cachedSecurityDataReference is also picked up from that cache. The Security Model will construct the message, and return the completed message to the Message Processing and Control model. The abstract service interface is: returnGeneratedMsg(wholeMsg, wholeMsgLen, statusCode) If the statusCode indicates success, then the v3MPC passes the completed message to the MPC Selection process for sending it to the destination. If the sending of the message succeeds, then the MPC Multiplexing Layer is advised that the sending of the SNMP message was successful. Harrington/Case Expires November 1977 [Page 14] \ Draft SNMPv3 Message Processing and Control model May 1997 If the statusCode indicates an error, or if the actual sending of the message failed, then the MPC Multiplexing Layer is advised that the sending of the SNMP message failed. If the message is a request, then the msgID, the target snmpEngineID and the target contextEngineID are saved in a cache, so that when a response is received, it can be matched up to an outstanding request. 5.3. Services of the MPC Multiplexing Layer 5.3.1. Application Registration for handling payloads (PDUs) Applications must register, with the MPC multilexing layer, the contextEngineIDs for which they wish to receive PDUs delivered in asynchronous messages. The abstract interfaces for this are: boolean register_contextEngineID(contextEngineID) unregister_contextEngineID(contextEngineID) Only one application can register to provide asynchronous support for a contextEngineID. If a second one tries to register then a FAILED error code is returned. Otherwise a SUCCESS code is returned. The unregister primitive does not return an error code. If unregister primitive is called for a non-registered contextEngineID, then the request is ignored. 5.3.2. Sending the payload of an SNMP Message to an application The MPC Model determines by which application a scopedPDU should be processed. If the message is a response to an outstanding request, then the response is passed to the application that issued the request. The abstract service interface for that is: processResponsePdu(contextEngineID, contextName, PDU, LoS, status_code) If the message is not a response to an outstanding request, the MPC checks, in an implementation-dependent manner, which application registered for the contextEngineID contained in the scoped PDU. If no application registered for it, then the snmpMPCUnknownContextEngineIDs counter is incremented and an statusCode is returned to the calling version-specific MPC. Harrington/Case Expires November 1977 [Page 15] \ Draft SNMPv3 Message Processing and Control model May 1997 Otherwise the registered application is called to handle the scopedPDU. The abstract service interface is: processPdu(contextEngineID, contextName, PDU, PDU-MMS, LoS, securityModel, MIID, stateReference) When such an application finishes processing the PDU they must return a statusCode and possibly a response. The abstract service interface is: returnPdu(contextEngineID, contextName, PDU, LoS, stateReference, statusCode) If the statusCode indicates an error, then the stateReference data is discarded, a possible error counter is incremented and the error code is passed on to the version-specific MPC for further processing. 5.3.3. Applications sending SNMP requests When an application wants to send an SNMP request to another SNMP engine, it can call upon the services of the MPC Multiplexing Layer. The abstract service interface is: sendRequestPdu(TDomain, TAddress, snmpVersion, LoS, securityModel, MIID, contextEngineID, contextName, PDU) The MPC keeps state information about where the request came from and then passes the message up to the version-specific MPC for further processing. When an application wants to send an SNMP message that will not result in an SNMP response message (like a trap), it can call upon the services of the MPC Multiplexing Layer. The abstract service interface is: sendPdu(TDomain, TAddress, snmpVersion, LoS, securityModel, MIID, contextEngineID, contextName, PDU) The MPC passes the message on to the version-specific MPC and then discards the information. Harrington/Case Expires November 1977 [Page 16] \ Draft SNMPv3 Message Processing and Control model May 1997 6. Definitions 6.1. Definitions for the SNMP Message Processing and Control Model SNMP-MPC-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, snmpModules, Counter32 FROM SNMPv2-SMI; TEXTUAL-CONVENTION, TDomain, TAddress FROM SNMPv2-TC; MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF; snmpEngineID, SnmpSecurityModel, SnmpAdminString FROM IMF-MIB; snmpMPCMIB MODULE-IDENTITY LAST-UPDATED "9706170000Z" -- 17 June 1997, midnight ORGANIZATION "SNMPv3 Working Group" CONTACT-INFO "WG-email: snmpv3@tis.com Subscribe: majordomo@tis.com In message body: subscribe snmpv3 Chair: Russ Mundy Trusted Information Systems postal: 3060 Washington Rd Glenwood MD 21738 email: mundy@tis.com phone: 301-854-6889 Co-editor: Dr. Jeffrey Case Snmp Research International, Inc. postal: phone: Co-editor Dave Harrington Cabletron Systems, Inc postal: Post Office Box 5005 MailStop: Durham 35 Industrial Way Rochester NH 03867-5005 email: dbh@cabletron.com phone: 603-337-7357 Co-editor: Bert Wijnen IBM T. J. Watson Research postal: Schagen 33 3461 GL Linschoten Netherlands email: wijnen@vnet.ibm.com phone: +31-348-432-794 Harrington/Case Expires November 1977 [Page 17] \ Draft SNMPv3 Message Processing and Control model May 1997 " DESCRIPTION "The snmp MPC MIB" ::= { snmpModules xx } -- Administrative assignments snmpMPCMIBObjects OBJECT IDENTIFIER ::= { snmpMPCMIB 1 } snmpMPCMIBConformance OBJECT IDENTIFIER ::= { snmpMPCMIB 2 } -- Statistics for MPC Model ****************************************** snmpMPCStats OBJECT IDENTIFIER ::= { snmpMPCMIBObjects 1 } snmpMPCStatsUnknownContextEngineIDs OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The total number of packets received by the SNMP engine which were dropped because they referenced a contextEngineID that was not known to the engine (e.g. was not registered by any application). " ::= { snmpMPCStats 1 } snmpMPCStatsUnsupportedLoS OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The total number of packets received by the SNMP engine which were dropped because they requested a Level of Security that was unknown to the engine or otherwise unavailable. " ::= { snmpMPCStats 2 } snmpMPCStatsNotInTimeWindows OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The total number of packets received by the SNMP engine which were dropped because they appeared outside of the engine's window. " ::= { snmpMPCStats 3 } snmpMPCStatsUnknownSecurityIdentities OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The total number of packets received by the SNMP Harrington/Case Expires November 1977 [Page 18] \ Draft SNMPv3 Message Processing and Control model May 1997 engine which were dropped because they referenced a security model specific securityIdentity that was not known to the engine. " ::= { snmpMPCStats 4 } snmpMPCStatsAuthenticationErrors OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The total number of packets received by the SNMP engine which were dropped because they could not be authenticated (i.e. the MAC did not match). " ::= { snmpMPCStats 5 } snmpMPCStatsPrivacyErrors OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The total number of packets received by the SNMP engine which were dropped because they could not be decrypted. " ::= { snmpMPCStats 6 } -- Conformance information snmpMPCMIBCompliances OBJECT IDENTIFIER ::= { snmpMPCMIBConformance 1 } snmpMPCMIBGroups OBJECT IDENTIFIER ::= { snmpMPCMIBConformance 2 } -- Compliance statements snmpMPCMIBCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The compliance statement for SNMP entities which implement the SNMP MPC MIB. " MODULE -- this module MANDATORY-GROUPS { snmpMPCBasicGroup } ::= { snmpMPCMIBCompliances 1 } snmpMPCBasicGroup OBJECT-GROUP OBJECTS { snmpMPCStatsUnknownContextEngineIDs, Harrington/Case Expires November 1977 [Page 19] \ Draft SNMPv3 Message Processing and Control model May 1997 snmpMPCStatsUnsupportedLoS, snmpMPCStatsNotInTimeWindows, snmpMPCStatsUnknownSecurityIdentities, snmpMPCStatsAuthenticationErrors, snmpMPCStatsPrivacyErrors } STATUS current DESCRIPTION "A collection of objects providing for remote monitoring of an implementation of an SNMP Message Processing and Control model. " ::= { snmpMPCMIBGroups 1 } END Harrington/Case Expires November 1977 [Page 20] \ Draft SNMPv3 Message Processing and Control model May 1997 7. Security Consideration The SNMP Message Processing and Control model coordinates the processing of messages to provide a level of security for network management messages and to direct the SNMP Message Payload to the proper SNMP application. The level of security actually provided is primarily determined by the specific Security Model implementations and the specific SNMP application implementations incorporated into this framework. Applications have access to data which is not secured. Applications should take reasonable steps to protect the data from disclosure, and when they send data across the network, they should obey the LoS and call upon the Access Control Model services to apply access control. Harrington/Case Expires November 1977 [Page 21] \ Draft SNMPv3 Message Processing and Control model May 1997 8. Glossary LoS MIID MMS MPC PDU SNMP ScopedPDU ScopedPduData SnmpAdminString SnmpSecurityModel SnmpV3UsecModel TAddress TDomain USEC auth cachedSecurityDataReference contextEngine contextEngineID contextName engineID generateRequestMsg generateResponseMsg globalData meesageEngine messageEngine MIID mms msgFlags msgID noAuth noPriv notInTimeWindows orangelets plaintext priv processMsg processPdu processResponsePdu reportFlag reportPDU reportPDUs reportableFlag responsePDU returnGeneratedMsg returnMsg returnPdu scopedPDU scopedPDUmms securityIdentity Harrington/Case Expires November 1977 [Page 22] \ Draft SNMPv3 Message Processing and Control model May 1997 securityModel securityParameters sendPdu sendRequestPdu snmpEngineID snmpEngineMaxMessageSize.0 snmpModules snmpV3Message snmpV3Messages snmpVersion snmpv3 stateReference statsCounter statusCode v1MPC - an MPC model designed to be compatible with RFC1157 v2cMPC - an MPC model designed to be compatible with RFC1901 v3MPC - the MPC model described in this document wholeMsg - a complete message wholeMsgLen - the length of a complete message Harrington/Case Expires November 1977 [Page 23] \ Draft SNMPv3 Message Processing and Control model May 1997 9. References [RFC1901] The SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and S., Waldbusser, "Introduction to Community-based SNMPv2", RFC 1901, January 1996. [RFC1902] The SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and S., Waldbusser, "Structure of Management Information for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1902, January 1996. [RFC1905] The SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and S., Waldbusser, "Protocol Operations for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1905, January 1996. [RFC1906] The SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Transport Mappings for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1906, January 1996. [RFC1907] The SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Management Information Base for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1907 January 1996. [RFC1908] The SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Coexistence between Version 1 and Version 2 of the Internet-standard Network Management Framework", RFC 1908, January 1996. [SNMP-ARCH] The SNMPv3 Working Group, Harrington, D., Wijnen, B., "An Architecture for describing Internet Management Frameworks", draft-ietf-snmpv3-next-gen-arch-02.txt, June 1997. [SNMPv3-MPC] The SNMPv3 Working Group, Wijnen, B., Harrington, D., "Message Processing and Control Model for version 3 of the Simple Network Management Protocol (SNMPv3)", draft-ietf-snmpv3-mpc-01.txt, June 1997. [SNMPv3-ACM] The SNMPv3 Working Group, Wijnen, B., Harrington, D., "Access Control Model for Version 3 of the Simple Network Management Protocol (SNMPv3)", draft-ietf-snmpv3-acm-00.txt, June 1997. [SNMPv3-USEC] The SNMPv3 Working Group, Blumenthal, U., Wijnen, B. "User-Based Security Model for version 3 of the Simple Network Management Protocol (SNMPv3)", draft-ietf-snmpv3-usec-01.txt, June 1997. Harrington/Case Expires November 1977 [Page 24] \ Draft SNMPv3 Message Processing and Control model May 1997 10. Editor's Addresses Co-editor: Dr. Jeffrey Case Snmp Research International, Inc. postal: email: case@snmp.com phone: Co-editor Dave Harrington Cabletron Systems, Inc postal: Post Office Box 5005 MailStop: Durham 35 Industrial Way Rochester NH 03867-5005 email: dbh@cabletron.com phone: 603-337-7357 Co-editor: Bert Wijnen IBM T. J. Watson Research postal: Schagen 33 3461 GL Linschoten Netherlands email: wijnen@vnet.ibm.com phone: +31-348-432-794 Harrington/Case Expires November 1977 [Page 25] \ Draft SNMPv3 Message Processing and Control model May 1997 11. Acknowledgements This document builds on the work of the SNMP Security and Administrative Framework Evolution team, comprised of David Harrington (Cabletron Systems Inc.) Jeff Johnson (Cisco) David Levi (SNMP Research Inc.) John Linn (Openvision) Russ Mundy (Trusted Information Systems) chair Shawn Routhier (Epilogue) Glenn Waters (Nortel) Bert Wijnen (IBM T.J. Watson Research) Harrington/Case Expires November 1977 [Page 26] \ Draft SNMPv3 Message Processing and Control model May 1997 Table of Contents 0. Issues 3 0.1. Change Log 3 1. Introduction 5 2. Overview 6 2.1. MPC External Interface 6 2.2. MPC Abstract Service Interface 6 3. Transport Mappings 8 4. The SNMPv3 message format 9 4.1. SNMP version 9 4.2. msgID 9 4.3. MMS 10 4.4. msgFlags 10 4.5. securityModel 11 4.6. security parameters 11 4.7. scopedPDU 11 4.7.1. contextEngineID 11 4.7.2. contextName 11 4.7.3. data 11 5. Services of the SNMP Message Processing and Control Model 12 5.1. Services of the MPC Selection process 12 5.1.1. Receiving an SNMP message from the network 12 5.1.2. Sending an SNMP message onto the network 12 5.2. Services of the v3MPC Model 12 5.2.1. Interacting with a Security Model to Protect against Threats 12 5.2.1.1. Receive SNMPv3 messages from the network 12 5.2.1.2. Send SNMPv3 messages to the network 14 5.3. Services of the MPC Multiplexing Layer 15 5.3.1. Application Registration for handling payloads (PDUs) 15 5.3.2. Sending the payload of an SNMP Message to an application 15 5.3.3. Applications sending SNMP requests 16 6. Definitions 17 6.1. Definitions for the SNMP Message Processing and Control Model 17 7. Security Consideration 21 8. Glossary 22 9. References 24 10. Editor's Addresses 25 11. Acknowledgements 26 Harrington/Case Expires November 1977 [Page 27]