Section 3.3. VACM


3.3. VACM

VACM is used to control access to managed objects in a MIB or MIBs. This is where the Access Control Subsystem comes into play.

3.3.1. The Basics

The msgFlags, msgSecurityModel, and scopedPDU fields are used by VACM for message access. Each parameter is used to determine access to managed objects. An error is returned to the sender if access is not allowed for the request type. VACM makes use of four tables for different aspects of access control. We will discuss these tables next.

3.3.2. Context Table

The vacmContextTable is a collection of managed objects that have access constraints which are associated with a context name. The vacmContextTable stores all available contexts. The table is indexed by a contextName, and each row in this table contains:


vacmContextName

A textual name for the context

3.3.3. Security to Group Table

The vacmSecurityToGroupTable is used to store group information. A group is made up of zero or more securityModel and securityName combinations. This combination defines what managed objects can be accessed. The table itself is indexed by a securityModel and securityName. The table contains rows made up of the following columns:


vacmSecurityModel

The security model in usee.g., USM.


vacmSecurityName

In the case of the USM, securityName and userName are identical.


vacmGroupName

A textual name for the group to which this table entry belongs.

3.3.4. Access Table

The vacmAccessTable is used to store the access rights defined for groups. This table is indexed by a groupName, contextPrefix, securityModel, and securityLevel. Each row in this table contains:


vacmGroupName

A name of a group with access rights.


vacmAccessContextMatch

A simple form of wildcarding. A value of exact dictates that the index contextName must exactly match the value in vacmAccessContextPrefix. If set to prefix, the index contextName can simply match the first few characters of the value in vacmAccessContextPrefix.


vacmAccessContextPrefix

An index contextName must match either exactly or partially the value of vacmAccessContextPrefix.


vacmAccessSecurityModel

The securityModel that must be used to gain access.


vacmAccessSecurityLevel

Defines the minimum securityLevel that must be used to gain access.


vacmAccessReadViewName

The authorized MIB viewName used for read access.


vacmAccessWriteViewName

The authorized MIB viewName used for write access.


vacmAccessNotifyViewName

The authorized MIB viewName used for notify access.

3.3.5. View Tree Family Table

The vacmViewTreeFamilyTable is used to store MIB views. A MIB view is defined as a family of view subtrees that pair an OID subtree value with a mask value. The mask indicates which subidentifiers of the associated subtree OID are significant to the MIB view's definition.

All the MIB views are stored in the vacmViewTreeFamilyTable. It is indexed by a viewName and an OID of a MIB subtree. The VACM MIB defines the vacmViewSpinLock advisory lock that is used to allow several SNMP engines to coordinate modifications to this table. Each row in the vacmViewTreeFamilyTable contains:


vacmViewTreeFamilyViewName

A textual name for the MIB view.


vacmViewTreeFamilySubtree

The OID subtree that, when combined with the mask, defines one or more MIB view subtrees.


vacmViewTreeFamilyMask

A bit mask that, in combination with the corresponding OID subtree, defines one or more MIB view subtrees.


vacmViewTreeFamilyType

Indicates whether the corresponding MIB view subtrees defined by the OID subtree and mask are included or excluded from the MIB view.

Figure 3-3[*] shows the logic flow for VACM.

[*] This image is reprinted from the paper "SNMPv3 : A Security Enhancement for SNMP" by William Stallings, which can be found online at http://www.comsoc.org/livepubs/surveys/public/4q98issue/stallings.html.

Figure 3-3. VACM logic flow





Essential SNMP
Essential SNMP, Second Edition
ISBN: 0596008406
EAN: 2147483647
Year: 2003
Pages: 165

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net