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-02.txt < prev    next >
Text File  |  1997-06-18  |  77KB  |  2,381 lines

  1.  
  2.  
  3.  
  4.                        An Architecture for Describing
  5.                       Internet Management Frameworks 
  6.  
  7.                              17 June 1997
  8.  
  9.  
  10.                                D. Harrington
  11.                            Cabletron Systems, Inc.
  12.                               dbh@cabletron.com
  13.  
  14.                                 B. Wijnen
  15.                           IBM T.J. Watson Research
  16.                              wijnen@vnet.ibm.com
  17.  
  18.  
  19.                    <draft-ietf-snmpv3-next-gen-arch-02.txt>
  20.  
  21.  
  22.  
  23.  
  24.                            Status of this Memo
  25.  
  26. This document is an Internet-Draft. Internet-Drafts are working
  27. documents of the Internet Engineering Task Force (IETF), its areas,
  28. and its working groups. Note that other groups may also distribute
  29. working documents as Internet-Drafts.
  30.  
  31. Internet-Drafts are draft documents valid for a maximum of six months
  32. and may be updated, replaced, or obsoleted by other documents at any
  33. time. It is inappropriate to use Internet- Drafts as reference material
  34. or to cite them other than as ``work in progress.''
  35.  
  36. To learn the current status of any Internet-Draft, please check the
  37. ``1id-abstracts.txt'' listing contained in the Internet- Drafts Shadow
  38. Directories on ds.internic.net (US East Coast), nic.nordu.net (Europe),
  39. ftp.isi.edu (US West Coast), or munnari.oz.au (Pacific Rim).
  40.  
  41.  
  42.  
  43.                               Abstract
  44.  
  45. This document describes an architecture for describing Internet
  46. Management Frameworks. The architecture is designed to be modular 
  47. to allow the evolution of the protocol over time. The major portions 
  48. of the architecture are a messaging engine containing a message 
  49. processing and control subsystem and a security subsystem, plus a 
  50. data processing engine, called a context engine, which contains an 
  51. access control subsystem, a MIB access subsystem, and possibly 
  52. multiple orangelets which provide specific functional processing 
  53. of network management data.
  54.  
  55.  
  56.  
  57. Harrington/Wijnen         Expires December 1977        [Page  1]
  58.  
  59. Draft   Architecture for Describing Internet Management Frameworks   March 1997
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116. Harrington/Wijnen         Expires December 1977        [Page  2]
  117.  
  118. Draft   Architecture for Describing Internet Management Frameworks   March 1997
  119.  
  120.  
  121. 0. Issues
  122.  
  123. 0.1.  Issues to be resolved
  124.  . Need the "readable" introduction supplement
  125.  . taxonomy:
  126.     orangelets
  127.  . should the scopedPDU be contained in the securityParameters
  128.     SEQUENCE, so encryption can include the PDU and some of the
  129.     security parameters?
  130.  . Who counts SNMP messages? who counts snmpv3 messages?
  131.  . reportPDUs created from an error status or OID returned by the appropriate 
  132.     subsystem/model?
  133.  . foward refreences need to be handled
  134.  . some TCs were defined for interface parameters, but aren't part of a mIB.
  135.     move to Glossary?
  136.  . Is AdminString appropriate for all strings, such as securityidentifier and
  137.     context and group? These had different sizes and semantics.
  138.  . AdminString has size (1..255); what about default context of ""?
  139.  . snmpEngineMaxMessageSize maximum size? 65507? what about non-UDP transports?
  140.  . description of max message size
  141.  . definitioon/description of MD5/DES protocol OIDs.
  142.  . should the tree for registering protocols be in basicGroup?
  143.  . should User-based be in basicgroup conformance?
  144.  . how does MPC match incoming requests with outgoing responses?
  145.  . generateRequestMessage( globalData, scopedPDU, MIID, engineID )
  146.     why do we need engineID? isn't that implicit?
  147.  . I rearranged primitive parameters: transport/engine/contextEngine/PDU
  148.  . state_refernce releases - are these consistently defined?
  149.  . should the MPC release the state_reference when it receives a response?
  150.  . How is duplicate registration handled? error or ignore?
  151.  
  152. 0.2.  Change Log
  153.  
  154. [version 3.1]
  155.  . change securityIdentity to MIID
  156.  . write text to explain the differences between security-identities,
  157.    model-dependent identifiers, and model-independent identifiers.
  158.  . write text to explain distinction within the LCD of the security
  159.    data, the access control data, and the oranglet data.
  160.  . identify issues
  161.  . publish as <draft-ietf-snmpv3-next-gen-arch-02.txt>
  162.  
  163. [version 3.0]
  164.  . add section on threats for message security
  165.  . add section on threats for access control
  166.  . change application to orangelet
  167.  . remove references to F-Ts
  168.  . change securityIdentity to security-identity
  169.  . change securityCookie to securityIdentity
  170.  . the format of securityIdentity is defined by the model
  171.  . add securityModel to passed parameters as needed
  172.  
  173.  
  174.  
  175. Harrington/Wijnen         Expires December 1977        [Page  3]
  176.  
  177. Draft   Architecture for Describing Internet Management Frameworks   March 1997
  178.  
  179.  
  180.  . eliminate group from passed parameters
  181.  . remove unused IMPORTS
  182.  . add glossary section with initial set of words to define
  183.  . differentiate the messageEngine from the contextEngine
  184.  . eliminate the term SNMPng
  185.  . rewrote 1.1. A Note on Terminology
  186.  . eliminated assumptions about SNMP processing always being
  187.     message related
  188.  . rewrote 4.x to reflect new thinking
  189.  . rewrote 5.x to reflect new thinking
  190.  . rewrote 6.x (the MIB) to reflect new thinking
  191.  . added MIB objects at this level (previously only T-Cs)
  192.  . rewrote 7.x
  193.  . sent to v3edit list
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234. Harrington/Wijnen         Expires December 1977        [Page  4]
  235.  
  236. Draft   Architecture for Describing Internet Management Frameworks   March 1997
  237.  
  238.  
  239. 1. Introduction
  240.  
  241. A management system contains: several (potentially many) nodes, each
  242. with a processing entity, termed an agent, which has access to
  243. management instrumentation; at least one management station; and, a
  244. management protocol, used to convey management information between the
  245. agents and management stations, or between management stations and
  246. other management stations.
  247.  
  248. Management stations execute management applications which monitor and
  249. control managed elements. Managed elements are devices such as hosts,
  250. routers, terminal servers, etc., which are monitored and controlled via
  251. access to their management information.
  252.  
  253. Operations of the protocol are carried out under an administrative
  254. framework which defines minimum requirements for standard services,
  255. such as sending and receiving messages, countering security threats to 
  256. messages, controlling access to managed objects, and processing various
  257. types of requests. 
  258.  
  259. It is the purpose of this document to define an architecture which
  260. can evolve to realize effective network management in a variety
  261. of configurations and environments. The architecture has been
  262. designed to meet the needs of implementors of minimal agents, command
  263. line driven managers, mid-level managers, and full-function network 
  264. enterprise management stations.
  265.  
  266. 1.1. A Note on Terminology
  267.  
  268. This architecture is designed to allow an orderly evolution of 
  269. portions of SNMP Frameworks.
  270.  
  271. Throughout the rest of this document, the term "subsystem" will
  272. refer to an abstract and incomplete specification of a portion of
  273. a Framework, that will be further refined by a model specification.
  274.  
  275. A "model" describes a specific design of a subsystem, defining
  276. additional constraints and rules for conformance to the model.
  277. A model is sufficiently detailed to make it possible to implement 
  278. the specification.
  279.  
  280. A "implementation" is an instantiation of a subsystem, conforming to a
  281. specific model.
  282.  
  283. SNMP version 1 (SNMPv1), is the original Internet-standard Network
  284. Management Framework, as described in RFCs 1155, 1157, and 1212.
  285.  
  286. SNMP version 2 (SNMPv2) is an updated design of portions of SNMPv1,
  287. as described in RFCs 1902-1908. SNMPv2 has an incomplete message 
  288. definition.
  289.  
  290.  
  291.  
  292.  
  293. Harrington/Wijnen         Expires December 1977        [Page  5]
  294.  
  295. Draft   Architecture for Describing Internet Management Frameworks   March 1997
  296.  
  297.  
  298. Community-based SNMP version 2 (SNMPv2c) is an experimental Framework
  299. which supplements the incomplete message format of SNMPv2 with
  300. portions of the message format of SNMPv1, as described in RFC1901.
  301.  
  302. SNMP version 3 (SNMPv3) Framework is a particular configuration of 
  303. implemented subsystems, consistent with the architecture described
  304. in this document. 
  305.  
  306. Other SNMP Frameworks, i.e. other configurations of implemented 
  307. subsystems, are expected to also be consistent with this architecture. 
  308.  
  309. This document does not describe any framework, but describes an 
  310. architecture into which multiple frameworks may be fitted.
  311.  
  312. 2. Overview
  313.  
  314. The architecture presented here emphasizes the use of modularity to
  315. allow the evolution of portions of SNMP without requiring a redesign
  316. of the general architecture of SNMP.
  317.  
  318. SNMP processing must be performed in consistently ordered steps, which 
  319. fall into general categories of similar functionality. This document 
  320. will describe major abstractions of functionality required during
  321. SNMP processing, and the abstract interactions between these major 
  322. categories of functionality.
  323.  
  324. This document will describe how this architecture is meant to allow
  325. modules of functionality corresponding to these abstract categories to
  326. be designed to allow the evolution of the whole by modifying discrete
  327. modules within the architecture.
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  
  340.  
  341.  
  342.  
  343.  
  344.  
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352. Harrington/Wijnen         Expires December 1977        [Page  6]
  353.  
  354. Draft   Architecture for Describing Internet Management Frameworks   March 1997
  355.  
  356.  
  357. 3. An Evolutionary Architecture - Design Goals
  358.  
  359. The goals of the architectural design are to use encapsulation, 
  360. cohesion, hierarchical rules, and loose coupling to reduce complexity 
  361. of design and make the evolution of portions of the architecture 
  362. possible.
  363.  
  364. 3.1. Encapsulation
  365.  
  366. Encapsulation describes the practice of hiding the details that are
  367. used internal to a process. Some data is required for a given
  368. procedure, but isn't needed by any other part of the process.
  369.  
  370. In networking, the concept of a layered stack reflects this approach.
  371. The transport layer contains data specific to its processing; the data
  372. is not visible to the other layers. In programming this is reflected
  373. in language elements such as "file static" variables in C, and 
  374. "private" in C++, etc.
  375.  
  376. In this architecture, all data used for processing only within
  377. a functional portion of the architecture should have its visibility
  378. restricted to that portion if possible. The data should be accessed
  379. only by that functionality defined with the data. No reference to the
  380. data should be made from outside the functional portion of the
  381. architecture, except through predefined public interfaces.
  382.  
  383. 3.2. Cohesion
  384.  
  385. Similar functions can be grouped together and their differences 
  386. ignored, so they can be dealt with as a single entity. It is important 
  387. that the functions which are grouped together are actually similar. 
  388. Similarity of the data used to perform functions can be a good 
  389. indicator of the similarity of the functions.
  390.  
  391. For example, authentication and encryption are both security functions
  392. which are applied to a message. Access control, while similar in some 
  393. ways, is dissimilar in that it is not applied to a message, it is
  394. applied to a (proposed) request for a management operation. 
  395. The data required to perform authentication and encryption are 
  396. different than the data needed to perform access control, and the
  397. two sets of services can be described independently. 
  398.  
  399. Similar functions, especially those that use the same data elements,
  400. should be defined together. The security functions which operate at 
  401. the message level should be defined in a document together with the
  402. definitions for those data elements that are used only by those
  403. security functions. For example, a MIB with authentication keys is
  404. used only by authentication functions; they should be defined together.
  405.  
  406.  
  407.  
  408.  
  409.  
  410.  
  411. Harrington/Wijnen         Expires December 1977        [Page  7]
  412.  
  413. Draft   Architecture for Describing Internet Management Frameworks   March 1997
  414.  
  415.  
  416. 3.3. Hierarchical Rules
  417.  
  418. Functionality can be grouped into hierarchies where each element in the
  419. hierarchy receives general characteristics from its direct superior,
  420. and passes on those characteristics to each of its direct subordinates.
  421.  
  422. This architecture uses the hierarchical approach by defining
  423. subsystems, which specify the general rules of a portion of the system,
  424. models which define the specific rules to be followed by an 
  425. implementation of the portion of the system, and implementations which 
  426. encode those rules into reality for a portion of the system.
  427.  
  428. It is expected that within portions of the system, hierarchical
  429. relationships will be used to compartmentalize, or modularize, the
  430. implementation of specific functionality. For example, it is expected
  431. that within the security portion of the system, authentication and
  432. privacy will probably be contained in separate modules, and that
  433. multiple authentication and privacy mechanisms will be supported by 
  434. allowing supplemental modules that provide protocol-specific 
  435. authentication and privacy services.
  436.  
  437. 3.4. Coupling
  438.  
  439. Coupling describes the amount of interdependence between parts of
  440. a system. Loose coupling indicates that two sub-systems are relatively
  441. independent of each other; tight coupling indicates a high degree of
  442. mutual dependence.
  443.  
  444. To make it possible to evolve the architecture by replacing only part
  445. of the system, or by supplementing existing portions with alternate
  446. mechanisms for similar functionality, without obsoleting the complete
  447. system, it is necessary to limit the coupling of the parts.
  448.  
  449. Encapsulation and cohesion help to reduce coupling by limiting the
  450. visibility of those parts that are only needed within portions of a
  451. system. Another mechanism is to constrain the nature of interactions
  452. between various parts of the system.
  453.  
  454. This can be done by defining fixed, generic, flexible interfaces
  455. for transferring data between the parts of the system. The concept of 
  456. plug-and-play hardware components is based on that type of interface 
  457. between the hardware component and system into which it will be 
  458. "plugged."
  459.  
  460. This approach has been chosen so individual portions of the system
  461. can be upgraded over time, while keeping the overall system intact.
  462.  
  463. To avoid specifying fixed interfaces, which would constrain a vendor's
  464. choice of implementation strategies, a set of abstract data elements 
  465. is used for (conceptually) transferring data between subsystems in 
  466. documents which describe subsystem or model interactions. Documents 
  467.  
  468.  
  469.  
  470. Harrington/Wijnen         Expires December 1977        [Page  8]
  471.  
  472. Draft   Architecture for Describing Internet Management Frameworks   March 1997
  473.  
  474.  
  475. describing the interaction of subsystems or models should use only 
  476. the abstract data elements provided for transferring data but vendors 
  477. are not constrained to using the described data elements for 
  478. transferring data between portions of their implementation.
  479.  
  480. Loose coupling works well with the IETF standards process. If we 
  481. separate message-handling from security and from local processing,
  482. then the separate portions of the system can move through the standards
  483. process with less dependence on the status of the other portions of the
  484. standard. Security models may be able to be re-opened for discussion
  485. due to patents, new research, export laws, etc., as is clearly expected
  486. by the WG, without needing to reopen the documents which detail the 
  487. message format or the local processing of PDUs. Thus, the standards 
  488. track status of related, but independent, documents is not affected.
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506.  
  507.  
  508.  
  509.  
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529. Harrington/Wijnen         Expires December 1977        [Page  9]
  530.  
  531. Draft   Architecture for Describing Internet Management Frameworks   March 1997
  532.  
  533.  
  534. 4. Abstract Functionality
  535.  
  536. DBH: {ref: Get-Request, PDU, authentication, encryption, timeliness,
  537. managed objects, proxy, }
  538.  
  539. The architecture described here contains four subsystems, each
  540. capable of being defined as one or more different models which may 
  541. be replaced or supplemented as the growing needs of network management 
  542. require. The subsystems are a Message Processing and Control 
  543. subsystem, a Security subsystem, an Orangelet subsystem, and an 
  544. Access Control subsystem.
  545.  
  546. The subsystems are contained in two "engines".
  547.  
  548. A messageEngine deals with SNMP messages, and is responsible for
  549. sending and receiving messages, including having authentication 
  550. and encryption services applied to the messages, and determining
  551. to which Orangelet the message contents should be delivered.
  552.  
  553. A contextEngine deals with processing network management operations,
  554. and contains subsystems for Access Control, MIB access, and
  555. Orangelets which provide specific functional processing.
  556. Depending on the network management service needed, an Orangelet
  557. may use the access control and MIB access subsystems, and may use
  558. SNMP messages to communicate with remote nodes. The network
  559. management service may be requested via the payload of an SNMP 
  560. message, or may be requested via a local process. 
  561.  
  562. 4.1. The messageEngine
  563.  
  564. The messageEngine interacts with the network using SNMP messages, 
  565. and with the message processing subsystem and the security subsystem 
  566. and with orangelets using service interfaces defined within this 
  567. architecture. 
  568.  
  569. 4.1.1. Transport Mappings
  570.  
  571. SNMP messages are sent to, or received from, the network using 
  572. transport addresses. It is the responsibility of the messageEngine
  573. to listen at the appropriate local addresses, and to send messages
  574. through the appropriate addresses, consistent with mappings defined
  575. by SNMP Transport Mapping documents, such as RFC1906.
  576.  
  577. 4.1.2. SNMP-Based Message Formats
  578.  
  579. SNMP messages sent to, or received from, the network use a format
  580. defined by a version-specific Message Processing and Control model.
  581. The messageEngine determines to which version-specific model the
  582. message should be given.
  583.  
  584. The version-specific model interacts with the security subsystem,
  585.  
  586.  
  587.  
  588. Harrington/Wijnen         Expires December 1977        [Page 10]
  589.  
  590. Draft   Architecture for Describing Internet Management Frameworks   March 1997
  591.  
  592.  
  593. using a service interface defined by this architecture, to procure
  594. security services to meet the requirements of the version-specific
  595. protocol.
  596.  
  597. 4.1.3. The Interface to Orangelets
  598.  
  599. A messageEngine, as a result of the receipt of an SNMP message, may
  600. initiate a transaction with an Orangelet, such as for an incoming
  601. request, or an Orangelet may initiate a transaction with a 
  602. messageEngine, such as for an outgoing request. The messageEngine
  603. determines to which orangelet a message should be given.
  604.  
  605. 4.1.4.  Protocol Instrumentation
  606.  
  607. To monitor and manage an SNMP engine, a Management Information Base 
  608. for SNMP defines the collection of managed objects which instrument
  609. the SNMP protocol itself. The messageEngine has the responsibility
  610. for maintaining the instrumentation that is described by the
  611. SNMPv2 MIB module [RFC1907] plus the instrumentation which is 
  612. described by the IMFMIB module defined in this document.
  613.  
  614. A Message Processing and Control model may require support for
  615. MIB modules related to instrumenting version-specific aspects
  616. of the SNMP protocol.
  617.  
  618. 4.2. Security
  619.  
  620. Some environments require secure protocol interactions. Security is
  621. normally applied at two different stages - in the transmission/receipt
  622. of messages, and in the processing of the contents of messages. For
  623. purposes of this document, "security" refers to message-level security;
  624. "access control" refers to the security applied to protocol operations.
  625.  
  626. Authentication, encryption, and timeliness checking are common 
  627. functions of message level security.
  628.  
  629. 4.3. Orangelets
  630.  
  631. Orangelets coordinate the processing of management information 
  632. operations.
  633.  
  634. This document describes three common types of orangelets 
  635. and how they interact within the architecture - 1) an orangelet
  636. may process requests to perform an operation on managed objects,
  637. 2) an orangelet may initiate a transaction as the result of a
  638. local event, and 3) an orangelet may act as an intermediary,
  639. forwarding an operation to another network management entity.
  640.  
  641. Orangelets provide access to MIB information, and coordinate
  642. the application of access control to management operations.
  643.  
  644.  
  645.  
  646.  
  647. Harrington/Wijnen         Expires December 1977        [Page 11]
  648.  
  649. Draft   Architecture for Describing Internet Management Frameworks   March 1997
  650.  
  651.  
  652. A discussion of the management information and processing is 
  653. provided here, but an Orangelet model defines which set of 
  654. documents are used to specifically define the structure of management 
  655. information, textual conventions, conformance requirements, and 
  656. operations supported by the Orangelet.
  657.  
  658. 4.4.1.  Structure of Management Information
  659.  
  660. Management information is viewed as a collection of managed objects,
  661. residing in a virtual information store, termed the Management
  662. Information Base (MIB).  Collections of related objects are defined
  663. in MIB modules.  
  664.  
  665. It is the purpose of a Structure of Management Information
  666. document to establish the syntax for defining objects, modules, and
  667. other elements of managed information.
  668.  
  669. An Orangelet model defines which SMI documents are supported 
  670. by the model.
  671.  
  672. 4.4.2.  Textual Conventions
  673.  
  674. When designing a MIB module, it is often useful to define new types
  675. similar to those defined in the SMI, but with more precise semantics,
  676. or which have special semantics associated with them. These newly
  677. defined types are termed textual conventions.
  678.  
  679. An Orangelet model defines which Textual Conventions documents 
  680. are supported by the model.
  681.  
  682. 4.4.3.  Conformance Statements
  683.  
  684. It may be useful to define the acceptable lower-bounds of
  685. implementation, along with the actual level of implementation
  686. achieved.  It is the purpose of Conformance Statements to define 
  687. the notation used for these purposes.  
  688.  
  689. An Orangelet model defines which Conformance Statement documents 
  690. are supported by the model.
  691.  
  692. 4.4.4.  Protocol Operations
  693.  
  694. SNMP messages encapsulate a Protocol Data Unit (PDU). It is the 
  695. purpose of a Protocol Operations document to define the operations 
  696. of the protocol with respect to the processing of the PDUs.
  697.  
  698. An Orangelet model defines which Protocol Operations documents 
  699. are supported by the model.
  700.  
  701.  
  702.  
  703.  
  704.  
  705.  
  706. Harrington/Wijnen         Expires December 1977        [Page 12]
  707.  
  708. Draft   Architecture for Describing Internet Management Frameworks   March 1997
  709.  
  710.  
  711.  
  712. 4.5. Access Control
  713.  
  714. During processing, it may be required to control access to certain 
  715. instrumentation for certain operations. The determination of
  716. access rights requires the means to identify the access allowed for 
  717. the security-identity on whose behalf a request is generated. 
  718.  
  719. An Access Control model provides an advisory service for an
  720. Orangelet. The determination of whether to check access control
  721. policy is the responsibility of the Orangelet model. The mechanism
  722. by which access control is checked is defined by the Access Control 
  723. model.
  724.  
  725. 4.6. Coexistence 
  726.  
  727. The purpose of an evolutionary architecture is to permit new models
  728. to replace or supplement existing models. The interactions between
  729. models could result in incompatibilities, security "holes", and 
  730. other undesirable effects.
  731.  
  732. The purpose of a Coexistence document is to detail recognized anomalies
  733. and to describe required and recommended behaviors for resolving the
  734. interactions between models within the architecture.
  735.  
  736. It would be very difficult to document all the possible interactions
  737. between a model and all other previously existing models while in the
  738. process of developing a new model. 
  739.  
  740. Coexistence documents are therefore expected to be prepared separately 
  741. from model definition documents, to describe and resolve interaction
  742. anomalies between a model definition and one or more other model
  743. definitions.
  744.  
  745.  
  746.  
  747.  
  748.  
  749.  
  750.  
  751.  
  752.  
  753.  
  754.  
  755.  
  756.  
  757.  
  758.  
  759.  
  760.  
  761.  
  762.  
  763.  
  764.  
  765. Harrington/Wijnen         Expires December 1977        [Page 13]
  766.  
  767. Draft   Architecture for Describing Internet Management Frameworks   March 1997
  768.  
  769.  
  770. 5. Abstract Data Elements of the Architecture
  771.  
  772. This section contains definitions of abstract data elements used to 
  773. transfer data between subsystems.
  774.  
  775. 5.1. engineID
  776.  
  777. Each SNMP engine, consisting of potentially many subsystems, must be
  778. able to be uniquely identified. The mechanism by which this can be
  779. done is defined in the IMFMIB module, described in this document, 
  780. since it is desirable that engine identification span all frameworks.
  781.  
  782. 5.2. SecurityIdentity
  783.  
  784. A generic term for an uniquely-identifiable entity on whose behalf 
  785. a message can be generated. Each security subsystem may define a
  786. model-specific mechanism for entity identification, such as a
  787. community [RFC1157] or user [RFC1910] or party-pair [RFC1445].
  788. This model-specific identifier is not guaranteed to be represented
  789. in a character set readable by humans.
  790.  
  791. 5.3. Model Independent Identifier (MIID)
  792.  
  793. Each security model must also provide a mapping from the model
  794. specific identification to an SnmpAdminString representation, 
  795. called the MIID, which, in combination with the securityModel,
  796. can be used by all other subsystems within an engine to identify
  797. a security identity, regardless of the security mechanisms used to 
  798. provide security services.
  799.  
  800. The combination of engineID and securityModel and MIID provides a 
  801. globally-unique identifier for an entity on whose behalf a message 
  802. can be generated.
  803.  
  804. 5.4. Level of Security
  805.  
  806. Messages may require different levels of security. The acronym LoS is
  807. used to refer to the level of security.
  808.  
  809. This architecture recognizes three levels of security:
  810.     - without authentication and without privacy (noAuth/noPriv)
  811.     - with authentication but without privacy (auth/noPriv)
  812.     - with authentication and with privacy (auth/Priv)
  813.  
  814. Every message has an associated LoS; all subsystems (security, access
  815. control, orangelets, message processing and control) are required
  816. to abide the specified LoS while processing the message and its
  817. contents.
  818.  
  819.  
  820.  
  821.  
  822.  
  823.  
  824. Harrington/Wijnen         Expires December 1977        [Page 14]
  825.  
  826. Draft   Architecture for Describing Internet Management Frameworks   March 1997
  827.  
  828.  
  829. 5.5. Contexts
  830.  
  831. An SNMP context is a collection of management information
  832. accessible by an SNMP engine. An item of management information
  833. may exist in more than one context. An SNMP engine potentially
  834. has access to many contexts. 
  835.  
  836. 5.6. ContextName
  837.  
  838. An octet string used to name a context. Each context must be uniquely 
  839. named within an engine. 
  840.  
  841. 5.7. ContextEngineID
  842.  
  843. A contextEngineID uniquely identifies an engine that may realize 
  844. an instance of a named context.
  845.  
  846. 5.8. Naming Scope
  847.  
  848. The combination of a contextEngineID and a contextName uniquely 
  849. identifies a context within an administrative domain, and is called 
  850. a naming scope.
  851.  
  852. 5.9. Scoped-PDU
  853.  
  854. A scopedPDU contains a Naming-Scope and a PDU.
  855.  
  856. The Naming Scope unambiguously identifies, within the administrative 
  857. domain, the context to which the SNMP management information in 
  858. the PDU refers.
  859.  
  860. The PDU format is defined by an Orangelet model, or a document 
  861. referenced by an Orangelet model, which processes the PDU contents.
  862.  
  863. 5.10. PDU-MMS 
  864.  
  865. the maximum size of a scopedPDU to be included in a response message, 
  866. given the amount of reserved space in the message for the anticipated
  867. security parameters.
  868.  
  869. 5.11. Local Configuration Datastore
  870.  
  871. The subsystems and models in an SNMP engine may need to retain their
  872. own, possibly multiple, sets of information to perform their 
  873. processing. To allow these sets of information to be remotely
  874. configured, portions may need to be accessible as managed objects.
  875.  
  876. The collection of these possibly multiple sets of information is
  877. referred to collectively as an engine's Local Configuration Datastore
  878. (LCD). 
  879.  
  880.  
  881.  
  882.  
  883. Harrington/Wijnen         Expires December 1977        [Page 15]
  884.  
  885. Draft   Architecture for Describing Internet Management Frameworks   March 1997
  886.  
  887.  
  888. 5.11.1. Security Portion of the Local Configuration Datastore
  889.  
  890. Each Security model may need to retain its own set of information about
  891. security entities, mechanisms, and policies. 
  892.  
  893. 5.11.2. Orangelet Portion of the Local Configuration Datastore
  894.  
  895. Each Orangelet model may need to retain its own set of information 
  896. about contexts, naming scopes, and other configuration data.
  897.  
  898. 5.11.3. Access Control Portion of the Local Configuration Datastore
  899.  
  900. Each Access Control model may need to retain its own set of 
  901. information about access control policies, and the MIIDs
  902. to which the policies apply. 
  903.  
  904. 5.12. Groups
  905.  
  906. A Group identifies a set of zero or more MIIDs on whose 
  907. behalf SNMP managed objects are being processed, subject to access 
  908. control policies common to all members of the group.
  909.  
  910.  
  911.  
  912.  
  913.  
  914.  
  915.  
  916.  
  917.  
  918.  
  919.  
  920.  
  921.  
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928.  
  929.  
  930.  
  931.  
  932.  
  933.  
  934.  
  935.  
  936.  
  937.  
  938.  
  939.  
  940.  
  941.  
  942. Harrington/Wijnen         Expires December 1977        [Page 16]
  943.  
  944. Draft   Architecture for Describing Internet Management Frameworks   March 1997
  945.  
  946.  
  947. 6. Definition of Managed Objects for Internet Management Frameworks
  948.  
  949. IMF-MIB DEFINITIONS ::= BEGIN
  950.  
  951. IMPORTS
  952.     MODULE-IDENTITY, OBJECT-TYPE, snmpModules,
  953.     Unsigned32, Integer32                         FROM SNMPv2-SMI
  954.     TEXTUAL-CONVENTION                            FROM SNMPv2-TC
  955.     MODULE-COMPLIANCE, OBJECT-GROUP               FROM SNMPv2-CONF;
  956.  
  957. imfMIB MODULE-IDENTITY
  958.     LAST-UPDATED "9706160000Z"     -- 16 June 1997, midnight
  959.     ORGANIZATION "SNMPv3 Working Group"
  960.     CONTACT-INFO "WG-email:   snmpv3@tis.com
  961.                   Subscribe:  majordomo@tis.com
  962.                               In message body:  subscribe snmpv3
  963.  
  964.                   Chair:      Russ Mundy
  965.                               Trusted Information Systems
  966.                   postal:     3060 Washington Rd
  967.                               Glenwood MD 21738
  968.                   email:      mundy@tis.com
  969.                   phone:      301-854-6889
  970.  
  971.                   Co-editor   Dave Harrington
  972.                               Cabletron Systems, Inc
  973.                   postal:     Post Office Box 5005
  974.                               MailStop: Durham
  975.                               35 Industrial Way
  976.                               Rochester NH 03867-5005
  977.                   email:      dbh@cabletron.com
  978.                   phone:      603-337-7357
  979.  
  980.                    Co-editor:  Bert Wijnen
  981.                                IBM T.J. Watson Research
  982.                    postal:     Schagen 33
  983.                                3461 GL Linschoten
  984.                                Netherlands
  985.                    email:      wijnen@vnet.ibm.com
  986.                    phone:      +31-348-412-498
  987.  
  988.                  "
  989.     DESCRIPTION  "The Internet Management Architecture MIB"
  990.     ::= { snmpModules 99 }
  991.  
  992. -- Textual Conventions used in the Internet Management Architecture ***
  993.  
  994. SnmpEngineID ::= TEXTUAL-CONVENTION
  995.     STATUS       current
  996.     DESCRIPTION "An SNMP engine's administratively-unique identifier.
  997.  
  998.  
  999.  
  1000.  
  1001. Harrington/Wijnen         Expires December 1977        [Page 17]
  1002.  
  1003. Draft   Architecture for Describing Internet Management Frameworks   March 1997
  1004.  
  1005.  
  1006.                  The value for this object may not be all zeros or
  1007.                  all 'ff'H.
  1008.  
  1009.                  The initial value for this object may be configured
  1010.                  via an operator console entry or via an algorithmic
  1011.                  function. In the later case, the following
  1012.                  guidelines are recommended:
  1013.  
  1014.                   1) The first four octets are set to the binary
  1015.                      equivalent of the agent's SNMP network management
  1016.                      private enterprise number as assigned by the
  1017.                      Internet Assigned Numbers Authority (IANA).
  1018.                      For example, if Acme Networks has been assigned
  1019.                      { enterprises 696 }, the first four octets would
  1020.                      be assigned '000002b8'H.
  1021.  
  1022.                   2) The remaining eight octets are the cookie whose
  1023.                      contents are determined via one or more
  1024.                      enterprise specific methods. Such methods must
  1025.                      be designed so as to maximize the possibility
  1026.                      that the value of this object will be unique in
  1027.                      the agent's administrative domain. For example,
  1028.                      the cookie may be the IP address of the agent,
  1029.                      or the MAC address of one of the interfaces,
  1030.                      with each address suitably padded with random
  1031.                      octets. If multiple methods are defined, then
  1032.                      it is recommended that the cookie be further
  1033.                      divided into one octet that indicates the
  1034.                      method being used and seven octets which are
  1035.                      a function of the method.
  1036.                 "
  1037.     SYNTAX       OCTET STRING (SIZE (12))
  1038.  
  1039. SnmpSecurityModel ::= TEXTUAL-CONVENTION
  1040.     STATUS       current
  1041.     DESCRIPTION "An identifier that uniquely identifies a model of
  1042.                  security subsystem within the Internet
  1043.                  Management Architecture.
  1044.                 "
  1045.     SYNTAX       INTEGER(0..2147483647)
  1046.  
  1047. -- BW to DBH: why do we need the following TC? It is never used in a MIB
  1048. --            is it?
  1049. -- DBH to BW: I defined this only because it was used in an architectural
  1050. --          interface, and felt that the architecture should define the
  1051. --          limits of the syntax, and provide a common description.
  1052. --
  1053. -- SnmpSecurityStateReference ::= TEXTUAL-CONVENTION
  1054. --  STATUS       current
  1055. --  DESCRIPTION "An implementation-defined reference to the retained
  1056. --               security information required to send a response.
  1057.  
  1058.  
  1059.  
  1060. Harrington/Wijnen         Expires December 1977        [Page 18]
  1061.  
  1062. Draft   Architecture for Describing Internet Management Frameworks   March 1997
  1063.  
  1064.  
  1065. --               The security model defines what information must be
  1066. --               retained for use in sending the response.
  1067. --              "
  1068. --  SYNTAX      OCTET STRING
  1069.  
  1070. SnmpLoS ::= TEXTUAL-CONVENTION
  1071.     STATUS       current
  1072.     DESCRIPTION "A level of security at which SNMP messages can be
  1073.                  sent; in particular, one of:
  1074.                    noAuth - without authentication and without privacy,
  1075.                    auth   - with authentication but without privacy,
  1076.                    priv   - with authentication and with privacy.
  1077.                 "
  1078.     SYNTAX       INTEGER { noAuth(1), auth(2), priv(3) }
  1079.  
  1080. SnmpAdminString ::= TEXTUAL-CONVENTION
  1081.     STATUS        current
  1082.     DESCRIPTION  "An octet string containing an SNMP administrative
  1083.                   string.  Preferably this a a human readable string.
  1084.                   We're still thinking if this could use the UTF8
  1085.                   character set.
  1086.                  "
  1087.     SYNTAX        OCTET STRING (SIZE(1..255))
  1088.  
  1089. -- BW to DBH: I think these are no longer needed. They now use the
  1090. --            SnmpV3AdminString TC.
  1091. -- DBH to BW: so now all securityidentities, Gropups, and Contxets
  1092. --            can be up to 255 bytes long, and MUST always be at least
  1093. --            one byte in length? What is our new default context?
  1094. --
  1095. -- SnmpSecurityIdentity ::= TEXTUAL-CONVENTION
  1096. --  STATUS        current
  1097. --  DESCRIPTION  "A octet string which contains data in a format
  1098. --                defined by a security model which identifies a
  1099. --                unique identity for which messages may be generated.
  1100. --                The securityIdentity must be unique across all
  1101. --                securityModels supported by the engine.
  1102. --               "
  1103. --  SYNTAX       DisplayString (SIZE (0..32))
  1104. --
  1105. -- SnmpGroupName ::= TEXTUAL-CONVENTION
  1106. --  STATUS        current
  1107. --  DESCRIPTION  "An octet string which identifies a set of zero or
  1108. --                more security entities on whose behalf SNMP managed
  1109. --                objects are being processed, subject to access
  1110. --                control policies common to all members of the group.
  1111. --               "
  1112. --  SYNTAX        OCTET STRING (SIZE(1..16))
  1113. --
  1114. --SnmpContextName ::= TEXTUAL-CONVENTION
  1115. --  STATUS        current
  1116.  
  1117.  
  1118.  
  1119. Harrington/Wijnen         Expires December 1977        [Page 19]
  1120.  
  1121. Draft   Architecture for Describing Internet Management Frameworks   March 1997
  1122.  
  1123.  
  1124. --  DESCRIPTION  "A name which uniquely identifies a set of
  1125. --                management information realized by an SNMP engine.
  1126. --               "
  1127. --  SYNTAX       OCTET STRING (SIZE (0..32))
  1128. --
  1129. --
  1130. -- The IMF Engine Group
  1131. --
  1132.  
  1133. -- Administrative assignments ****************************************
  1134.  
  1135. imfAdmin           OBJECT IDENTIFIER ::= { imfMIB 1 }
  1136. imfMIBObjects      OBJECT IDENTIFIER ::= { imfMIB 2 }
  1137. imfMIBConformance  OBJECT IDENTIFIER ::= { imfMIB 3 }
  1138.  
  1139. -- the imfEngine group ***********************************************
  1140.  
  1141. imfEngine OBJECT IDENTIFIER ::= { imfMIBObjects 1 }
  1142.  
  1143. snmpEngineID     OBJECT-TYPE
  1144.     SYNTAX       SnmpEngineID
  1145.     MAX-ACCESS   read-only
  1146.     STATUS       current
  1147.     DESCRIPTION "An SNMP engine's administratively-unique identifier.
  1148.                 "
  1149.     ::= { imfEngine 1 }
  1150.  
  1151. snmpEngineBoots  OBJECT-TYPE
  1152.     SYNTAX       Unsigned32 -- (1..4294967295)
  1153.     MAX-ACCESS   read-only
  1154.     STATUS       current
  1155.     DESCRIPTION "The number of times that the engine has re-initialized
  1156.                  itself since its initial configuration.
  1157.                 "
  1158.     ::= { imfEngine 2 }
  1159.  
  1160. snmpEngineTime   OBJECT-TYPE
  1161.     SYNTAX       Integer32 (0..2147483647)
  1162.     MAX-ACCESS   read-only
  1163.     STATUS       current
  1164.     DESCRIPTION "The number of seconds since the engine last
  1165.                  incremented the snmpEngineBoots object.
  1166.                 "
  1167.     ::= { imfEngine 3 }
  1168.  
  1169. snmpEngineMaxMessageSize OBJECT-TYPE
  1170. --  SYNTAX       Integer32 (484..2147483647)
  1171. -- From BW to DBH: why did you use that large range? The 65507 is the
  1172. --                 max that fits in a UDP datagram. I thought we
  1173. --                 reached consensus on that on the mailinglist.
  1174. -- DBH to BW:      did we? I thought there were arguments that we should
  1175.  
  1176.  
  1177.  
  1178. Harrington/Wijnen         Expires December 1977        [Page 20]
  1179.  
  1180. Draft   Architecture for Describing Internet Management Frameworks   March 1997
  1181.  
  1182.  
  1183. --                 not work with the limits of UDP, since other transports
  1184. --                 are now officially supported. If I write an engine that
  1185. --                 has a larger buffer, and use a transport that can handle
  1186. --                 the larger size, why artficially limit it? The type can
  1187. --                 handle the larger number; why impose unnecessary limits?
  1188.     SYNTAX       Integer32 (484..65507)
  1189.     MAX-ACCESS   read-only
  1190.     STATUS       current
  1191.     DESCRIPTION "The maximum length in octets of an SNMP message
  1192.                  which this SNMP engine can send or receive and
  1193.                  process, determined as the minimum of the maximum
  1194.                  message size values supported among all of the
  1195.                  transports available to and supported by the engine.
  1196.                 "
  1197. -- From BW to DBH: How do you like this (picked it from RFC1910):
  1198. --                 I think it is only meant to state what it can
  1199. --                 receive!!!
  1200. -- DBH to BW:      I think the one above came from snmpv2*. I think the send 
  1201. --                 was included to indictae 
  1202. --                 to an enquiring manager how large a getBulk might be
  1203. --                 supported, so a manager didn't send one obviously too large,
  1204. --                 and to reflect that a message might be receivable, but not
  1205. --                 be able to be processed due to resource limitations (such
  1206. --                 as an ASN.1-decoded message being larger than the encoded
  1207. --             message, or a secured message with a non-sent key that led
  1208. --                 to resource allocation problems...)
  1209. --  DESCRIPTION "The maximum length in octets of an SNMP message which
  1210. --               this agent will accept using any transport mapping.
  1211. --              "
  1212.     ::= { imfEngine 4 }
  1213.  
  1214. -- From BW to DBH: Was the following decided at the interim?
  1215. --                 We had those defined in USEC doc.... so if we
  1216. --                 do define these protocols here, then I can
  1217. --                 remove them from USEC doc.
  1218. -- DBH to BW:      Not sure if decided; If we want protocols defined 
  1219. --            in a common place, the arch mib should provide the tree.
  1220. --                I don't object to MD5 and DES being defined in USEC, but
  1221. --                the arch doc does specify they are expected, so I think
  1222. --                it treasonable to define here, especially if we want to 
  1223. --                make it mandatory for basic compliance.
  1224. --
  1225. -- The IMF IETF-Standard Authentication Protocols Group
  1226. --
  1227.  
  1228. imfAuthProtocols      OBJECT IDENTIFIER ::= { imfAdmin 1 }
  1229.  
  1230. imfNoAuthProtocol     OBJECT IDENTIFIER ::= { imfAuthProtocols 1 }
  1231.  
  1232. imfAuthMD5Protocol    OBJECT IDENTIFIER ::= { imfAuthProtocols 2 }
  1233.  
  1234.  
  1235.  
  1236.  
  1237. Harrington/Wijnen         Expires December 1977        [Page 21]
  1238.  
  1239. Draft   Architecture for Describing Internet Management Frameworks   March 1997
  1240.  
  1241.  
  1242. DBH to BW: should we have a description of this object to make it 
  1243. meaningful? ditto for DES below.
  1244.  
  1245. --
  1246. -- The IMF IETF-Standard Privacy Protocols Group
  1247. --
  1248.  
  1249. imfPrivProtocols      OBJECT IDENTIFIER ::= { imfAdmin 2 }
  1250.  
  1251. imfNoPrivProtocol     OBJECT IDENTIFIER ::= { imfPrivProtocols 1 }
  1252.  
  1253. imfDESPrivProtocol    OBJECT IDENTIFIER ::= { imfPrivProtocols 2 }
  1254.  
  1255. -- conformance information
  1256.  
  1257. imfMIBCompliances
  1258.                OBJECT IDENTIFIER ::= { imfMIBConformance 1 }
  1259. imfMIBGroups
  1260.                OBJECT IDENTIFIER ::= { imfMIBConformance 2 }
  1261.  
  1262. -- compliance statements
  1263.  
  1264. imfMIBCompliance MODULE-COMPLIANCE
  1265.     STATUS       current
  1266.     DESCRIPTION "The compliance statement for SNMP engines which
  1267.                  implement the IMF MIB.
  1268.                 "
  1269.     MODULE    -- this module
  1270.         MANDATORY-GROUPS {
  1271.                           imfEngineBasicGroup
  1272.                          }
  1273.     ::= { imfMIBCompliances 1 }
  1274.  
  1275. -- units of conformance
  1276.  
  1277. imfEngineBasicGroup OBJECT-GROUP
  1278.     OBJECTS {
  1279.              snmpEngineID,
  1280.              snmpEngineMaxMessageSize,
  1281.              snmpEngineBoots,
  1282.              snmpEngineTime
  1283.             }
  1284.     STATUS       current
  1285.     DESCRIPTION "A collection of objects for identifying and
  1286.                  determining the configuration limits of an
  1287.                  SNMP agent.
  1288.                 "
  1289.     ::= { imfMIBGroups 1 }
  1290.  
  1291. -- DBH to BW: should the tree for registering protocols be in basicGroup?
  1292. --            I thouhgt we had consensus that user-based security was required
  1293.  
  1294.  
  1295.  
  1296. Harrington/Wijnen         Expires December 1977        [Page 22]
  1297.  
  1298. Draft   Architecture for Describing Internet Management Frameworks   March 1997
  1299.  
  1300.  
  1301. --            as a minimum. No?
  1302.  
  1303. END
  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.  
  1342.  
  1343.  
  1344.  
  1345.  
  1346.  
  1347.  
  1348.  
  1349.  
  1350.  
  1351.  
  1352.  
  1353.  
  1354.  
  1355. Harrington/Wijnen         Expires December 1977        [Page 23]
  1356.  
  1357. Draft   Architecture for Describing Internet Management Frameworks   March 1997
  1358.  
  1359.  
  1360. 7. Model Design Requirements
  1361.  
  1362. The basic design elements come from SNMPv2u and SNMPv2*, as
  1363. described in RFCs 1909-1910, and from a set of internet drafts.
  1364. these are the two most popular de facto "administrative framework"
  1365. standards that include security and access control for SNMPv2.
  1366.  
  1367. SNMPv1 and SNMPv2c [RFC1901] are two administrative frameworks based 
  1368. on communities to provide trivial authentication and access control.
  1369. SNMPv1 and SNMPv2c Frameworks can coexist with Frameworks designed
  1370. to fit into this architecture, and modified versions of SNMPv1 and 
  1371. SNMPv2c Frameworks could be fit into this architecture, but this 
  1372. document does not provide guidelines for that coexistence.
  1373.  
  1374. Within any subsystem model, there should be no reference to any 
  1375. specific model of another subsystem, or to data defined by a specific 
  1376. model of another subsystem.
  1377.  
  1378. Transfer of data between the subsystems is deliberately described as a fixed 
  1379. set of abstract data elements and primitive functions which can be overloaded 
  1380. to satisfy the needs of multiple model definitions.
  1381.  
  1382. Documents which define models to be used within this architecture are constrained 
  1383. to using the abstract data elements for transferring data between subsystems, 
  1384. possibly defining specific mechanisms for converting the abstract data into 
  1385. model-usable formats. This constraint exists to allow subsystem and model 
  1386. documents to be written recognizing common borders of the subsystem and model. 
  1387. Vendors are not constrained to recognize these borders in their implementations.
  1388.  
  1389. The architecture defines certain standard services to be provided 
  1390. between subsystems, and the architecture defines abstract data 
  1391. elements to transfer the data necessary to perform the services.
  1392.  
  1393. Each model definition for a subsystem must support the standard service
  1394. interfaces, but whether, or how, or how well, it performs the service 
  1395. is defined by the model definition.
  1396.  
  1397. 7.1. Security Model Design Requirements
  1398.  
  1399. 7.1.1. Threats
  1400.  
  1401. Several of the classical threats to network protocols are applicable
  1402. to the network management problem and therefore would be applicable
  1403. to any security model used in an Internet Management Framework. Other 
  1404. threats are not applicable to the network management problem.  This 
  1405. section discusses principal threats, secondary threats, and threats 
  1406. which are of lesser importance.
  1407.  
  1408. The principal threats against which any security model used within
  1409. this architecture should provide protection are:
  1410.  
  1411.  
  1412.  
  1413.  
  1414. Harrington/Wijnen         Expires December 1977        [Page 24]
  1415.  
  1416. Draft   Architecture for Describing Internet Management Frameworks   March 1997
  1417.  
  1418.  
  1419. Modification of Information
  1420.      The modification threat is the danger that some unauthorized 
  1421.      entity may alter in-transit SNMP messages generated on behalf 
  1422.      of an authorized security-identity in such a way as to effect 
  1423.      unauthorized management operations, including falsifying the 
  1424.      value of an object.
  1425.  
  1426. Masquerade
  1427.      The masquerade threat is the danger that management operations 
  1428.      not authorized for some security-identity may be attempted by 
  1429.      assuming the identity of another security-identity that has the 
  1430.      appropriate authorizations.
  1431.  
  1432. Message Stream Modification
  1433.      The SNMPv3 protocol is typically based upon a connectionless
  1434.      transport service which may operate over any subnetwork service.
  1435.      The re-ordering, delay or replay of messages can and does occur
  1436.      through the natural operation of many such subnetwork services.
  1437.      The message stream modification threat is the danger that messages
  1438.      may be maliciously re-ordered, delayed or replayed to an extent
  1439.      which is greater than can occur through the natural operation of a
  1440.      subnetwork service, in order to effect unauthorized management
  1441.      operations.
  1442.  
  1443. Disclosure
  1444.      The disclosure threat is the danger of eavesdropping on the
  1445.      exchanges between SNMP engines. Protecting against this threat 
  1446.      may be required as a matter of local policy.
  1447.  
  1448. There are at least two threats against which a security model used 
  1449. by a framework within this architecture need not protect.
  1450.  
  1451. Denial of Service
  1452.      A security model need not attempt to address the broad range of 
  1453.      attacks by which service on behalf of authorized users is denied.
  1454.      Indeed, such denial-of-service attacks are in many cases
  1455.      indistinguishable from the type of network failures with which any
  1456.      viable network management protocol must cope as a matter of 
  1457.      course.
  1458.  
  1459. Traffic Analysis
  1460.      A security model need not attempt to address traffic analysis 
  1461.      attacks.  Many traffic patterns are predictable - agents may be 
  1462.      managed on a regular basis by a relatively small number of 
  1463.      management stations - and therefore there is no significant 
  1464.      advantage afforded by protecting against traffic analysis.
  1465.  
  1466. 7.1.2. Security Processing
  1467.  
  1468. Received messages must be validated by a model of the security 
  1469. subsystem. Validation includes authentication and privacy processing 
  1470.  
  1471.  
  1472.  
  1473. Harrington/Wijnen         Expires December 1977        [Page 25]
  1474.  
  1475. Draft   Architecture for Describing Internet Management Frameworks   March 1997
  1476.  
  1477.  
  1478. if needed, but it is explicitly allowed to send messages which do 
  1479. not require authentication or privacy.
  1480.  
  1481. A received message will contain a specified Level of Security to be
  1482. used during processing. All messages requiring privacy must also
  1483. require authentication.
  1484.  
  1485. A security model specifies rules by which authentication and privacy
  1486. are to be done. A model may define mechanisms to provide additional
  1487. security features, but the model definition is constrained to using 
  1488. (possibly a subset of) the abstract data elements defined in this 
  1489. document for transferring data between subsystems.
  1490.  
  1491. Each Security model may allow multiple security mechanisms to be used
  1492. concurrently within an implementation of the model. Each Security model
  1493. defines how to determine which protocol to use, given the LoS and the
  1494. security parameters relevant to the message. Each Security model, with
  1495. its associated protocol(s) defines how the sending/receiving entities
  1496. are identified, and how secrets are configured.
  1497.  
  1498. Authentication and Privacy protocols supported by security models
  1499. are uniquely identified using Object Identifiers. IETF standard 
  1500. protocol for authentication or privacy should have an identifier
  1501. defined within the ImfAuthenticationProtocols or ImfPrivacyProtocols 
  1502. subtrees. Enterprise-specific protocol identifiers should be defined 
  1503. within the enterprise subtree. 
  1504.  
  1505. For privacy, the Security model defines what portion of the message
  1506. is encrypted.
  1507.  
  1508. The persistent data used for security should be SNMP-manageable, but 
  1509. the Security model defines whether an instantiation of the MIB is a 
  1510. conformance requirement. 
  1511.  
  1512. Security models are replaceable within the security subsystem. Multiple
  1513. Security model Implementations may exist concurrently within an engine.
  1514. The number of Security models defined by the SNMP community should
  1515. remain small to promote interoperability. It is required that an
  1516. implementation of the User-Based Security model be used in all
  1517. engines to ensure at least a minimal level of interoperability.
  1518.  
  1519. 7.1.3. validate the security-stamp in a received message
  1520.  
  1521. given a message, the MMS, LoS, and the security parameters from that
  1522. message, verify the message has not been altered, and authenticate
  1523. the identification of the security-identity for whom the message was
  1524. generated.
  1525.  
  1526. If encrypted, decrypt the message
  1527.  
  1528. Additional requirements may be defined by the model, and additional
  1529.  
  1530.  
  1531.  
  1532. Harrington/Wijnen         Expires December 1977        [Page 26]
  1533.  
  1534. Draft   Architecture for Describing Internet Management Frameworks   March 1997
  1535.  
  1536.  
  1537. services provided by the model, but the model is constrained to use 
  1538. only the defined abstract data elements for transferring data between 
  1539. subsystems. Implementations are no so constrained.
  1540.  
  1541. return a MIID identifying the security-identity for whom 
  1542. the message was generated and return the portions of the message 
  1543. needed for further processing:
  1544.          a PDU - a PDU containing varbinds and a verb according to
  1545.             the rules of the Local Processing model to be used.
  1546.          LoS - the level of security required. The same level of 
  1547.             security must also be used during application of access 
  1548.             control.
  1549.          MMS - the maximum size of a message able to be generated
  1550.             by this engine for the destination agent.
  1551.          PDU-MMS - the maximum size of a PDU to be included in a 
  1552.             response message, given the amount of
  1553.             reserved space in the message for the anticipated
  1554.             security parameters.
  1555.  
  1556. 7.1.4. Security Identity
  1557.  
  1558. Different security models define identifiers which represent some
  1559. <thing> which somehow exists, and is capable of using SNMP.
  1560. The <thing> may be person, or a network-management platform, or
  1561. an aggregate of persons, or an aggregation of persons and devices,
  1562. or some other abstraction of entities that are recognized as
  1563. being able to use SNMP-defined services. 
  1564.  
  1565. This document will refer to that abstraction as a security-identity.
  1566.  
  1567. 7.1.5. Model Dependent Identifier
  1568.  
  1569. Each Security model defines how security-identities are identified 
  1570. within the model, i.e. how they are named. Model-dependent identifiers 
  1571. must be unique within the model. The combination of engineID, 
  1572. securityModel, and the correct model-dependent identifier can be 
  1573. used to uniquely identify a security-identity.
  1574.  
  1575. For example, David Harrington may be represented on a particular
  1576. engine by multiple security models - as the user "davidh", the 
  1577. community "david", and the foobar "david". It is legal to use 
  1578. "david" in more than one model, since uniqueness is only guaranteed 
  1579. within the model, but there cannot be two "david" communities. 
  1580. The combination of the engineID, the <user> model, and the user
  1581. "davidh" uniquely identifies the security-entity David Harrington.
  1582.  
  1583. 7.1.6. Model Independent Identifier
  1584.  
  1585. It is desirable to be able to refer to a security-entity using a human 
  1586. readable identifier, such as for audit trail entries.
  1587. Therefore, each Security model is required to define a mapping between 
  1588.  
  1589.  
  1590.  
  1591. Harrington/Wijnen         Expires December 1977        [Page 27]
  1592.  
  1593. Draft   Architecture for Describing Internet Management Frameworks   March 1997
  1594.  
  1595.  
  1596. a model-dependent identifier and an identifier restricted to a human
  1597. readable character set. This identifier is called a MIID.
  1598.  
  1599. The type of a MIID is a human-readable OCTET STRING following the
  1600. conventions of the SnmpAdminString TEXTUAL-CONVENTION, defined below. 
  1601.  
  1602. The combination of engineID and securityModel and MIID can be used as a 
  1603. globally-unique identifier for a security-identity. 
  1604.  
  1605. It is important to note that since the MIID may be accessible outside 
  1606. the engine, care must be taken to not disclose sensitive data, such 
  1607. as by including passwords in open text in the MIID.
  1608.  
  1609. 7.1.5. Security MIBs
  1610.  
  1611. Each Security model defines the MIB modules required for security 
  1612. processing, including any MIB modules required for the security
  1613. mechanism(s) supported. The MIB modules must be defined concurrently 
  1614. with the procedures which use the MIB module. The MIB modules are 
  1615. subject to normal security and access control rules.
  1616.  
  1617. The mapping between the model-dependent identifier and the MIID 
  1618. must be able to be determined using SNMP, if the model-dependent
  1619. MIB is instantiated and access control policy allows.
  1620.  
  1621. 7.1.6. Security State Cacheing
  1622.  
  1623. For each message received, the security subsystem caches the state information
  1624. such that a response message can be generated using the same security
  1625. state information, even if the security portion of the Local Configuration
  1626. Datastore is altered between the time of the incoming request and the
  1627. outgoing response.
  1628.  
  1629. The Orangelet subsystem has the responsibility for explicitly releasing 
  1630. the cached data. To enable this, an abstract state_reference data element
  1631. is passed from the security subsystem to the message processing and control
  1632. subsystem, which passes it to the orangelet subsystem.
  1633.  
  1634. The cached security data must be implicitly released via the generation of a 
  1635. response, or explicitly released by using the state_release() primitive:
  1636.  
  1637. state_release( state_reference )
  1638.  
  1639. 7.2. MessageEngine and Message Processing and Control Model Requirements
  1640.  
  1641. A messageEngine may contain multiple version-specific Message Processing and
  1642. Control models. 
  1643.  
  1644. Within any version-specific Message Processing and Control model, there may be 
  1645. an explicit binding to a particular security model but there should be no 
  1646. reference to any data defined by a specific security model. there should be 
  1647.  
  1648.  
  1649.  
  1650. Harrington/Wijnen         Expires December 1977        [Page 28]
  1651.  
  1652. Draft   Architecture for Describing Internet Management Frameworks   March 1997
  1653.  
  1654.  
  1655. no reference to any specific Orangelet model, or to any data defined by a 
  1656. specific Orangelet model; there should be no reference to any specific Access 
  1657. Control model, or to any data defined by a specific Access Control model.
  1658.  
  1659. The Message Processing and Control model must always (conceptually) 
  1660. pass the complete PDU, i.e. it never forwards less than the complete 
  1661. list of varbinds.
  1662.  
  1663. 7.2.1. Receiving an SNMP Message from the Network
  1664.  
  1665. Upon receipt of a message from the network, the messageEngine will, 
  1666. in an implementation-defined manner, establish a mechanism for coordinating 
  1667. all processing regarding this received message, e.g. it may assign a "handle" 
  1668. to the message.
  1669. DBH: It is no longer valid that the MPC coordinates all processing. But it
  1670. still needs to match requests and responses. how does an incoming request get 
  1671. matched to the outgoing response?
  1672.  
  1673. A Message Processing and Control model will specify how to determine the values 
  1674. of the global data (MMS, the securityModel, the LoS), and the security 
  1675. parameters block. The Message Processing and Control will call the security
  1676. model to provide security processing for the message using the primitive:
  1677.  
  1678. processMsg( globalData, securityParameters, wholeMsg, wholeMsgLen )
  1679.  
  1680. The Security model, after completion of its processing, will return to
  1681. the Message Processing and Control model the extracted information, using
  1682. the returnProcess() primitive:
  1683.  
  1684. returnProcess( scopedPDUmms, MIID, cachedSecurityData, scopedPDU, statusCode )
  1685.  
  1686. 7.2.2. Send SNMP messages to the network
  1687.  
  1688. The Message Processing and Control model will pass a PDU, the 
  1689. MIID, and all global data to be included in the message to 
  1690. the Security model using the following primitives:
  1691.  
  1692. For requests and notifications:
  1693.  
  1694. generateRequestMessage( globalData, scopedPDU, MIID, engineID )
  1695.  
  1696. DBH: why do we need engineID? isn't that implicit?
  1697.  
  1698. For response messages:
  1699.  
  1700. generateResponseMessage( globalData, scopedPDU, MIID, cachedSecurityData )
  1701.  
  1702. The Security model will construct the message, and return the completed
  1703. message to the messageEngine using the returngenerate() primitive:
  1704.  
  1705. returnGenerate( wholeMsg, wholeMsglen, statusCode )
  1706.  
  1707.  
  1708.  
  1709. Harrington/Wijnen         Expires December 1977        [Page 29]
  1710.  
  1711. Draft   Architecture for Describing Internet Management Frameworks   March 1997
  1712.  
  1713.  
  1714.  
  1715. The messageEngine will send the message to the desired address using the 
  1716. appropriate transport.
  1717.  
  1718. 7.2.3. Generate a Request or Notification Message for an Orangelet
  1719.  
  1720. The messageEngine will receive a request for the generation of an SNMP message 
  1721. from an orangelet via the send_pdu primitive:
  1722.  
  1723. send_pdu( transportDomain, transportAddress, snmpVersion,
  1724.     LoS, securityModel, MIID, contextEngineID, 
  1725.     contextName, PDU,
  1726.  
  1727. The messageEngine checks the verb in the PDU to determine if it is a message
  1728. which may receive a response, and if so, caches the msgID of the generated
  1729. message and the associated orangelet.
  1730.  
  1731. The messageEngine will generate the message according to the process described 
  1732. in 7.2.2.
  1733.  
  1734. 7.2.4. Forward Received Response Message to an Orangelet
  1735.  
  1736. The Message Processing and Control will receive the SNMP message 
  1737. according to the process described in 7.2.1.
  1738.  
  1739. The Message Processing and Control will determine which orangelet is 
  1740. awaiting a response, using the msgID and the cached information from  
  1741. step 7.2.3
  1742.  
  1743. The messageEngine matches the msgID of an incoming response to the cached
  1744. msgIDs of messages sent by this messageEngine, and forwards the response to the 
  1745. associated Orangelet using the process_pdu() primitive:
  1746.  
  1747. process_pdu( contextEngineID, contextName, pdu, LoS, scopedPdu-MMS,
  1748.     securityModel, MIID, state-reference )
  1749.  
  1750. 7.2.5. Forward Received Request or Notification Message to an Orangelet
  1751.  
  1752. The messageEngine will receive the SNMP message according to the process 
  1753. described in 7.2.1.
  1754.  
  1755. The messageEngine will look into the scopedPDU to determine the contextEngineID,
  1756. then determine which orangelet has registered to support that contextEngineID,
  1757. and forwards the request or notification to the registered Orangelet using the 
  1758. process_pdu() primitive:
  1759.  
  1760. process_pdu( contextEngineID, contextName, pdu, LoS, scopedPdu-MMS,
  1761.     securityModel, MIID, state-reference )
  1762.  
  1763.  
  1764.  
  1765.  
  1766.  
  1767.  
  1768. Harrington/Wijnen         Expires December 1977        [Page 30]
  1769.  
  1770. Draft   Architecture for Describing Internet Management Frameworks   March 1997
  1771.  
  1772.  
  1773. 7.2.6. Generate a Response Message for an Orangelet
  1774.  
  1775. The messageEngine will receive a request for the generation of an SNMP response
  1776. message from an orangelet via the return_pdu primitive:
  1777.  
  1778. return_pdu( contextEngineID, contextName, LoS, MIID, state_reference, 
  1779.     PDU, PDU-MMS, status_code )
  1780.  
  1781. The messageEngine will generate the message according to the process described 
  1782. in 7.2.2.
  1783.  
  1784. 7.3. Orangelet Model Design Requirements
  1785.  
  1786. Within an Orangelet model, there may be an explicit binding to a specific 
  1787. SNMP message version, i.e. a specific Message Processing and Control model,
  1788. and to a specific Access Control model, but there should be no reference to 
  1789. any data defined by a specific Message Processing and Control model or Access 
  1790. Control model.
  1791.  
  1792. Within an Orangelet model, there should be no reference to any 
  1793. specific Security model, or any data defined by a specific Security 
  1794. model.
  1795.  
  1796. An Orangelet determines whether explicit or implicit access control
  1797. should be applied to the operation, and, if access control is needed,
  1798. which Access Control model should be used.
  1799.  
  1800. An orangelet has the responsibility to define any MIB modules used 
  1801. to provide orangelet-specific services. 
  1802.  
  1803. Orangelets interact with the messageEngine to initiate messages, receive
  1804. responses, receive asynchronous messages, and send responses.
  1805.  
  1806. 7.3.1. Orangelets that Initiate Messages
  1807.  
  1808. Orangelets may request that the messageEngine send messages containing SNMP 
  1809. polling requests or notifications using the send_pdu() primitive:
  1810.  
  1811. send_pdu( transportDomain, transportAddress, snmpVersion,
  1812.     LoS, securityModel, MIID, contextEngineID, 
  1813.     contextName, PDU,
  1814.  
  1815. [DBH: I rearranged these parameters into groups of related data organized
  1816. roughly by order of locality - transport/engine/contextEngine/PDU.]
  1817.  
  1818. If it is desired that a message be sent to multiple targets, it is the 
  1819. reponsibility of the orangelet to provide the iteration.
  1820.  
  1821. The messageEngine assumes necessary access control has been applied 
  1822. to the PDU, and provides no access control services.
  1823.  
  1824.  
  1825.  
  1826.  
  1827. Harrington/Wijnen         Expires December 1977        [Page 31]
  1828.  
  1829. Draft   Architecture for Describing Internet Management Frameworks   March 1997
  1830.  
  1831.  
  1832. The messageEngine looks at the verb, and for operations which will elicit a 
  1833. response, the msgID and the associated orangelet are cached.
  1834.  
  1835. 7.3.2. Orangelets that Receive Responses
  1836.  
  1837. The messageEngine matches the msgID of an incoming response to the cached
  1838. msgIDs of messages sent by this messageEngine, and forwards the response to the 
  1839. associated Orangelet using the process_pdu() primitive:
  1840.  
  1841. process_pdu( contextEngineID, contextName, pdu, LoS, scopedPdu-MMS,
  1842.     securityModel, MIID, state-reference )
  1843.  
  1844. DBH: should the MPC release the state_reference when it receives a response?
  1845. There isn't much reason to force the orangelet to handle this if the MPC
  1846. already knows it is a response message, i.e. the end of a transaction.
  1847.  
  1848. 7.3.3. Orangelets that Receive Asynchronous Messages
  1849.  
  1850. When a messageEngine receives a message that is not the response to a request 
  1851. from this messageEngine, it must determine to which Orangelet the message 
  1852. should be given. 
  1853.  
  1854. An Orangelet that wishes to receive asynchronous messages registers
  1855. itself with the messageEngine using the registration primitive.
  1856. An Orangelet that wishes to stop receiving asynchronous messages
  1857. should un-register itself with the messageEngine.
  1858.  
  1859. register_contextEngineID ( contextEngineID )
  1860. unregister_contextEngineID ( contextEngineID )
  1861.  
  1862. Only one registration per contextEngineID is permitted at the same
  1863. time. Duplicate registrations are ignored.
  1864.  
  1865. [DBH: there is no provision for an error for this. Is the second
  1866. just ignored?]
  1867.  
  1868. All asynchronously received messages referencing a registered contextEngineID 
  1869. will be sent to the orangelet which registered to support that contextEngineID.
  1870. This includes incoming requests, incoming notifications, and proxies.
  1871.  
  1872. It forwards the PDU to the registered Orangelet, using the process_pdu() 
  1873. primitive:
  1874.  
  1875. process_pdu( contextEngineID, contextName, PDU, PDU-MMS,
  1876.     LoS, securityModel, MIID, state_reference )
  1877.  
  1878. 7.3.4. Orangelets that Send Responses
  1879.  
  1880. Request operations require responses. These operations include Get requests,
  1881. set requests, and inform requests. An Orangelet sends a response via the 
  1882. return_pdu primitive:
  1883.  
  1884.  
  1885.  
  1886. Harrington/Wijnen         Expires December 1977        [Page 32]
  1887.  
  1888. Draft   Architecture for Describing Internet Management Frameworks   March 1997
  1889.  
  1890.  
  1891.  
  1892. return_pdu( contextEngineID, contextName, LoS, MIID, state_reference, 
  1893.     PDU, PDU-MMS, status_code )
  1894.  
  1895. The contextEngineID, contextName, LoS, MIID, and state_reference parameters
  1896. are from the initial process_pdu() primitive. The PDU and status_code are
  1897. the results of processing.
  1898.  
  1899. DBH: in the v2adv approach, a handle was passed so the messageEngine
  1900. could match the response to the incoming request. How is it done now?
  1901.  
  1902. 7.4. Access Control Model Design Requirements
  1903.  
  1904. An Access Control model must determine whether the specified 
  1905. MIID is allowed to perform the requested operation on 
  1906. a specified managed object. The Access Control model specifies the 
  1907. rules by which access control is determined.
  1908.  
  1909. A model may define mechanisms to provide additional processing 
  1910. features, but is constrained to using the abstract data elements 
  1911. defined in this document for transferring data between subsystems.
  1912.  
  1913. The persistent data used for access control should be manageable
  1914. using SNMP, but the Access Control model defines whether an 
  1915. instantiation of the MIB is a conformance requirement.
  1916.  
  1917.  
  1918.  
  1919.  
  1920.  
  1921.  
  1922.  
  1923.  
  1924.  
  1925.  
  1926.  
  1927.  
  1928.  
  1929.  
  1930.  
  1931.  
  1932.  
  1933.  
  1934.  
  1935.  
  1936.  
  1937.  
  1938.  
  1939.  
  1940.  
  1941.  
  1942.  
  1943.  
  1944.  
  1945. Harrington/Wijnen         Expires December 1977        [Page 33]
  1946.  
  1947. Draft   Architecture for Describing Internet Management Frameworks   March 1997
  1948.  
  1949.  
  1950. 8. Security Consideration
  1951.  
  1952. This document describes how a framework can use a Security model 
  1953. and a Local Processing model to achieve a level of security for 
  1954. network management messages and controlled access to data.
  1955.  
  1956. The level of security provided is determined by the specific Security 
  1957. model implementation(s) and the specific Local Processing model 
  1958. implementation(s) incorporated into this framework.
  1959.  
  1960. Orangelets have access to data which is not secured. Orangelets
  1961. should take reasonable steps to protect the data from disclosure.
  1962.  
  1963. It is the responsibility of the purchaser of a management framework
  1964. implementation to ensure that:
  1965.   1) an implementation of this framework is fully compliant with
  1966.       the rules defined by this architecture,
  1967.   2) the implementation of the Security model complies with the
  1968.       rules of the Security model,
  1969.   3) the implementation of the Local Processing model complies
  1970.       with the rules of the Local Processing model,
  1971.   4) the implementation of associated orangelets comply
  1972.       with the rules of this framework relative to orangelets,
  1973.   5) the Security model of the implementation(s) incorporated into
  1974.       the framework satisfy the security needs of the organization,
  1975.   6) the Local Processing model of the implementation(s) incorporated
  1976.       into the framework satisfy the access control policies of the
  1977.       organization,
  1978.   7) the implementation of the Security model protects against
  1979.       inadvertently revealing security secrets in its design of
  1980.       implementation-specific data structures,
  1981.   8) the implementation of the Local Processing model protects against
  1982.       inadvertently revealing configuration secrets in its design of
  1983.       implementation-specific data structures,
  1984.   9) and implementation of the orangelets protect security and 
  1985.       access control configuration secrets from disclosure.
  1986.  
  1987.  
  1988.  
  1989.  
  1990.  
  1991.  
  1992.  
  1993.  
  1994.  
  1995.  
  1996.  
  1997.  
  1998.  
  1999.  
  2000.  
  2001.  
  2002.  
  2003.  
  2004. Harrington/Wijnen         Expires December 1977        [Page 34]
  2005.  
  2006. Draft   Architecture for Describing Internet Management Frameworks   March 1997
  2007.  
  2008.  
  2009. 9. Glossary
  2010.  
  2011.  
  2012.  
  2013.  
  2014.  
  2015.  
  2016.  
  2017.  
  2018.  
  2019.  
  2020.  
  2021.  
  2022.  
  2023.  
  2024.  
  2025.  
  2026.  
  2027.  
  2028.  
  2029.  
  2030.  
  2031.  
  2032.  
  2033.  
  2034.  
  2035.  
  2036.  
  2037.  
  2038.  
  2039.  
  2040.  
  2041.  
  2042.  
  2043.  
  2044.  
  2045.  
  2046.  
  2047.  
  2048.  
  2049.  
  2050.  
  2051.  
  2052.  
  2053.  
  2054.  
  2055.  
  2056.  
  2057.  
  2058.  
  2059.  
  2060.  
  2061.  
  2062.  
  2063. Harrington/Wijnen         Expires December 1977        [Page 35]
  2064.  
  2065. Draft   Architecture for Describing Internet Management Frameworks   March 1997
  2066.  
  2067.  
  2068. 10. References
  2069.  
  2070. [RFC1155] Rose, M., and K. McCloghrie, "Structure and Identification of
  2071.     Management Information for TCP/IP-based internets", STD 16, RFC
  2072.     1155, May 1990.
  2073.  
  2074. [RFC1157] Case, J., M. Fedor, M. Schoffstall, and J. Davin, The Simple
  2075.     Network Management Protocol", RFC 1157, University of Tennessee
  2076.     at Knoxville, Performance Systems International, Performance
  2077.     International, and the MIT Laboratory for Computer
  2078.     Science, May 1990.
  2079.  
  2080. [RFC1212] Rose, M., and K. McCloghrie, "Concise MIB Definitions", 
  2081.     STD 16, RFC 1212, March 1991.
  2082.  
  2083. [RFC1445] Galvin, J., and McCloghrie, K., "Administrative Model for
  2084.     version 2 of the Simple Network Management Protocol (SNMPv2)", 
  2085.     RFC 1445, Trusted Information Systems, Hughes LAN Systems, 
  2086.     April 1993.
  2087.  
  2088. [RFC1901] The SNMPv2 Working Group, Case, J., McCloghrie, K.,
  2089.     Rose, M., and S., Waldbusser, "Introduction to 
  2090.     Community-based SNMPv2", RFC 1901, January 1996.
  2091.  
  2092. [RFC1902] The SNMPv2 Working Group, Case, J., McCloghrie, K.,
  2093.     Rose, M., and S., Waldbusser, "Structure of Management
  2094.     Information for Version  2 of the Simple Network Management
  2095.     Protocol (SNMPv2)", RFC 1905, January 1996.
  2096.  
  2097. [RFC1903] The SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M.,
  2098.     and S. Waldbusser, "Textual Conventions for Version 2 of the Simple
  2099.     Network Management Protocol (SNMPv2)", RFC 1903, January 1996.
  2100.  
  2101. [RFC1904] The SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M.,
  2102.     and S., Waldbusser, "Conformance Statements for Version 2 of the 
  2103.     Simple Network Management Protocol (SNMPv2)", RFC 1904, 
  2104.     January 1996.
  2105.  
  2106. [RFC1905] The SNMPv2 Working Group, Case, J., McCloghrie, K.,
  2107.     Rose, M., and S., Waldbusser, "Protocol Operations for
  2108.     Version 2 of the Simple Network Management Protocol (SNMPv2)",
  2109.     RFC 1905, January 1996.
  2110.  
  2111. [RFC1906] The SNMPv2 Working Group, Case, J., McCloghrie, K.,
  2112.     Rose, M., and S. Waldbusser, "Transport Mappings for
  2113.     Version 2 of the Simple Network Management Protocol (SNMPv2)",
  2114.     RFC 1906, January 1996.
  2115.  
  2116. [RFC1907] The SNMPv2 Working Group, Case, J., McCloghrie, K.,
  2117.     Rose, M., and S. Waldbusser, "Management Information Base for
  2118.     Version 2 of the Simple Network Management Protocol (SNMPv2)",
  2119.  
  2120.  
  2121.  
  2122. Harrington/Wijnen         Expires December 1977        [Page 36]
  2123.  
  2124. Draft   Architecture for Describing Internet Management Frameworks   March 1997
  2125.  
  2126.  
  2127.     RFC 1907 January 1996.
  2128.  
  2129. [RFC1908] The SNMPv2 Working Group, Case, J., McCloghrie, K.,
  2130.     Rose, M., and S. Waldbusser, "Coexistence between Version 1
  2131.     and Version 2 of the Internet-standard Network Management
  2132.     Framework", RFC 1908, January 1996.
  2133.  
  2134. [RFC1909] McCloghrie, K., Editor, "An Administrative Infrastructure 
  2135.     for SNMPv2", RFC1909, February 1996
  2136.  
  2137. [RFC1910] Waters, G., Editor, "User-based Security Model for SNMPv2",
  2138.     RFC1910, February 1996
  2139.  
  2140.  
  2141.  
  2142.  
  2143.  
  2144.  
  2145.  
  2146.  
  2147.  
  2148.  
  2149.  
  2150.  
  2151.  
  2152.  
  2153.  
  2154.  
  2155.  
  2156.  
  2157.  
  2158.  
  2159.  
  2160.  
  2161.  
  2162.  
  2163.  
  2164.  
  2165.  
  2166.  
  2167.  
  2168.  
  2169.  
  2170.  
  2171.  
  2172.  
  2173.  
  2174.  
  2175.  
  2176.  
  2177.  
  2178.  
  2179.  
  2180.  
  2181. Harrington/Wijnen         Expires December 1977        [Page 37]
  2182.  
  2183. Draft   Architecture for Describing Internet Management Frameworks   March 1997
  2184.  
  2185.  
  2186. 11. Editor's Addresses
  2187.  
  2188.                    Co-editor:  Bert Wijnen
  2189.                                IBM T.J. Watson Research
  2190.                    postal:     Schagen 33
  2191.                                3461 GL Linschoten
  2192.                                Netherlands
  2193.                    email:      wijnen@vnet.ibm.com
  2194.                    phone:      +31-348-412-498
  2195.  
  2196.                    Co-editor   Dave Harrington
  2197.                                Cabletron Systems, Inc
  2198.                    postal:     Post Office Box 5005
  2199.                                MailStop: Durham
  2200.                                35 Industrial Way
  2201.                                Rochester NH 03867-5005
  2202.                    email:      dbh@cabletron.com
  2203.                    phone:      603-337-7357
  2204.  
  2205.  
  2206.  
  2207.  
  2208.  
  2209.  
  2210.  
  2211.  
  2212.  
  2213.  
  2214.  
  2215.  
  2216.  
  2217.  
  2218.  
  2219.  
  2220.  
  2221.  
  2222.  
  2223.  
  2224.  
  2225.  
  2226.  
  2227.  
  2228.  
  2229.  
  2230.  
  2231.  
  2232.  
  2233.  
  2234.  
  2235.  
  2236.  
  2237.  
  2238.  
  2239.  
  2240. Harrington/Wijnen         Expires December 1977        [Page 38]
  2241.  
  2242. Draft   Architecture for Describing Internet Management Frameworks   March 1997
  2243.  
  2244.  
  2245. 12. Acknowledgements
  2246.  
  2247. This document builds on the work of the SNMP Security and 
  2248. Administrative Framework Evolution team, comprised of
  2249.  
  2250.      David Harrington (Cabletron Systems Inc.)
  2251.      Jeff Johnson (Cisco)
  2252.      David Levi (SNMP Research Inc.)
  2253.      John Linn (Openvision)
  2254.      Russ Mundy (Trusted Information Systems) chair
  2255.      Shawn Routhier (Epilogue)
  2256.      Glenn Waters (Nortel)
  2257.      Bert Wijnen (IBM T.J. Watson Research)
  2258.  
  2259.  
  2260.  
  2261.  
  2262.  
  2263.  
  2264.  
  2265.  
  2266.  
  2267.  
  2268.  
  2269.  
  2270.  
  2271.  
  2272.  
  2273.  
  2274.  
  2275.  
  2276.  
  2277.  
  2278.  
  2279.  
  2280.  
  2281.  
  2282.  
  2283.  
  2284.  
  2285.  
  2286.  
  2287.  
  2288.  
  2289.  
  2290.  
  2291.  
  2292.  
  2293.  
  2294.  
  2295.  
  2296.  
  2297.  
  2298.  
  2299. Harrington/Wijnen         Expires December 1977        [Page 39]
  2300.  
  2301. Draft   Architecture for Describing Internet Management Frameworks   March 1997
  2302.  
  2303.  
  2304. Table of Contents
  2305.  
  2306. 0. Issues                                                              3
  2307. 0.1.  Issues to be resolved                                            3
  2308. 0.2.  Change Log                                                       3
  2309. 1. Introduction                                                        5
  2310. 1.1. A Note on Terminology                                             5
  2311. 2. Overview                                                            6
  2312. 3. An Evolutionary Architecture - Design Goals                         7
  2313. 3.1. Encapsulation                                                     7
  2314. 3.2. Cohesion                                                          7
  2315. 3.3. Hierarchical Rules                                                8
  2316. 3.4. Coupling                                                          8
  2317. 4. Abstract Functionality                                             10
  2318. 4.1. The messageEngine                                                10
  2319. 4.1.1. Transport Mappings                                             10
  2320. 4.1.2. SNMP-Based Message Formats                                     10
  2321. 4.1.3. The Interface to Orangelets                                    11
  2322. 4.1.4.  Protocol Instrumentation                                      11
  2323. 4.2. Security                                                         11
  2324. 4.3. Orangelets                                                       11
  2325. 4.4.1.  Structure of Management Information                           12
  2326. 4.4.2.  Textual Conventions                                           12
  2327. 4.4.3.  Conformance Statements                                        12
  2328. 4.4.4.  Protocol Operations                                           12
  2329. 4.5. Access Control                                                   13
  2330. 4.6. Coexistence                                                      13
  2331. 5. Abstract Data Elements of the Architecture                         14
  2332. 5.1. engineID                                                         14
  2333. 5.2. SecurityIdentity                                                 14
  2334. 5.3. Model Independent Identifier (MIID)                              14
  2335. 5.4. Level of Security                                                14
  2336. 5.5. Contexts                                                         15
  2337. 5.6. ContextName                                                      15
  2338. 5.7. ContextEngineID                                                  15
  2339. 5.8. Naming Scope                                                     15
  2340. 5.9. Scoped-PDU                                                       15
  2341. 5.10. PDU-MMS                                                         15
  2342. 5.11. Local Configuration Datastore                                   15
  2343. 5.11.1. Security Portion of the Local Configuration Datastore         16
  2344. 5.11.2. Orangelet Portion of the Local Configuration Datastore        16
  2345. 5.11.3. Access Control Portion of the Local Configuration Datastore   16
  2346. 5.12. Groups                                                          16
  2347. 6. Definition of Managed Objects for Internet Management Frameworks   17
  2348. 7. Model Design Requirements                                          24
  2349. 7.1. Security Model Design Requirements                               24
  2350. 7.1.1. Threats                                                        24
  2351. 7.1.2. Security Processing                                            25
  2352. 7.1.3. validate the security-stamp in a received message              26
  2353. 7.1.4. Security Identity                                              27
  2354. 7.1.5. Model Dependent Identifier                                     27
  2355. 7.1.6. Model Independent Identifier                                   27
  2356. 7.1.5. Security MIBs                                                  28
  2357. 7.1.6. Security State Cacheing                                        28
  2358. 7.2. MessageEngine and Message Processing and Control Model Requirements 28
  2359. 7.2.1. Receiving an SNMP Message from the Network                     29
  2360. 7.2.2. Send SNMP messages to the network                              29
  2361. 7.2.3. Generate a Request or Notification Message for an Orangelet    30
  2362. 7.2.4. Forward Received Response Message to an Orangelet              30
  2363. 7.2.5. Forward Received Request or Notification Message to an Orangelet 30
  2364. 7.2.6. Generate a Response Message for an Orangelet                   31
  2365. 7.3. Orangelet Model Design Requirements                              31
  2366. 7.3.1. Orangelets that Initiate Messages                              31
  2367. 7.3.2. Orangelets that Receive Responses                              32
  2368. 7.3.3. Orangelets that Receive Asynchronous Messages                  32
  2369. 7.3.4. Orangelets that Send Responses                                 32
  2370. 7.4. Access Control Model Design Requirements                         33
  2371. 8. Security Consideration                                             34
  2372. 9. Glossary                                                           35
  2373. 10. References                                                        36
  2374. 11. Editor's Addresses                                                38
  2375. 12. Acknowledgements                                                  39
  2376.  
  2377.  
  2378.  
  2379. Harrington/Wijnen         Expires December 1977        [Page 40]
  2380.  
  2381.