Zum Hauptinhalt springen

2.5. Services provided by the User-based Security Model (Vom benutzerbasierten Sicherheitsmodell bereitgestellte Dienste)

2.5. Services provided by the User-based Security Model (Vom benutzerbasierten Sicherheitsmodell bereitgestellte Dienste)

Dieser Abschnitt beschreibt die vom benutzerbasierten Sicherheitsmodell bereitgestellten Dienste mit ihren Ein- und Ausgaben.

Die Dienste werden als Primitive einer abstrakten Dienstschnittstelle beschrieben, und die Ein- und Ausgaben werden als abstrakte Datenelemente beschrieben, wie sie in diesen abstrakten Dienstprimitiven übergeben werden.

2.5.1. Services for Generating an Outgoing SNMP Message (Dienste zum Generieren einer ausgehenden SNMP-Nachricht)

Wenn das Nachrichtenverarbeitungs- (MP) Subsystem das benutzerbasierte Sicherheitsmodul aufruft, um eine ausgehende SNMP-Nachricht zu sichern, muss es den entsprechenden vom Sicherheitsmodul bereitgestellten Dienst verwenden. Diese beiden Dienste werden bereitgestellt:

1) Dienst zum Generieren einer Anfragenachricht (Service to Generate a Request Message)

Die abstrakte Dienstprimitive ist:

statusInformation =            -- Erfolg oder Fehleranzeige
generateRequestMsg(
IN messageProcessingModel -- normalerweise SNMP-Version
IN globalData -- Nachrichtenkopf, Admin-Daten
IN maxMessageSize -- der sendenden SNMP-Entität
IN securityModel -- für die ausgehende Nachricht
IN securityEngineID -- autoritative SNMP-Entität
IN securityName -- im Namen dieses Principals
IN securityLevel -- angefordertes Sicherheitsniveau
IN scopedPDU -- Nachricht (Klartext) Nutzdaten
OUT securityParameters -- vom Sicherheitsmodul ausgefüllt
OUT wholeMsg -- vollständige generierte Nachricht
OUT wholeMsgLength -- Länge der generierten Nachricht
)

2) Dienst zum Generieren einer Antwortnachricht (Service to Generate a Response Message)

Die abstrakte Dienstprimitive ist:

statusInformation =            -- Erfolg oder Fehleranzeige
generateResponseMsg(
IN messageProcessingModel -- normalerweise SNMP-Version
IN globalData -- Nachrichtenkopf, Admin-Daten
IN maxMessageSize -- der sendenden SNMP-Entität
IN securityModel -- für die ausgehende Nachricht
IN securityEngineID -- autoritative SNMP-Entität
IN securityName -- im Namen dieses Principals
IN securityLevel -- angefordertes Sicherheitsniveau
IN scopedPDU -- Nachricht (Klartext) Nutzdaten
IN securityStateReference -- Referenz auf Sicherheitszustand
-- Informationen aus ursprünglicher
-- Anfrage
OUT securityParameters -- vom Sicherheitsmodul ausgefüllt
OUT wholeMsg -- vollständige generierte Nachricht
OUT wholeMsgLength -- Länge der generierten Nachricht
)

Abstract Data Elements (Abstrakte Datenelemente)

Die als Parameter in den abstrakten Dienstprimitiven übergebenen abstrakten Datenelemente sind wie folgt:

statusInformation (Statusinformationen)

Eine Anzeige, ob das Kodieren und Sichern der Nachricht erfolgreich war. Wenn nicht, ist es eine Anzeige des Problems.

messageProcessingModel (Nachrichtenverarbeitungsmodell)

Die SNMP-Versionsnummer für die zu generierende Nachricht. Diese Daten werden vom benutzerbasierten Sicherheitsmodul nicht verwendet.

globalData (globale Daten)

Der Nachrichtenkopf (d.h. seine Verwaltungsinformationen). Diese Daten werden vom benutzerbasierten Sicherheitsmodul nicht verwendet.

maxMessageSize (maximale Nachrichtengröße)

Die maximale Nachrichtengröße, wie in der Nachricht enthalten. Diese Daten werden vom benutzerbasierten Sicherheitsmodul nicht verwendet.

securityParameters (Sicherheitsparameter)

Dies sind die Sicherheitsparameter. Sie werden vom benutzerbasierten Sicherheitsmodul ausgefüllt.

securityModel (Sicherheitsmodell)

Das verwendete securityModel. Sollte benutzerbasiertes Sicherheitsmodell sein. Diese Daten werden vom benutzerbasierten Sicherheitsmodul nicht verwendet.

securityEngineID (Sicherheits-Engine-ID)

Die snmpEngineID der autoritativen SNMP-Engine. Beim Erstellen einer Anfragenachricht kann dies ein OCTET STRING mit Null-Länge sein, wenn die securityEngineID noch nicht bekannt ist (Entdeckungsphase).

securityName (Sicherheitsname)

Zusammen mit dem securityLevel und der securityEngineID identifiziert dies, welche Zeile in der usmUserTable zum Sichern der Nachricht verwendet werden soll.

securityLevel (Sicherheitsniveau)

Das angeforderte securityLevel. Eines von: noAuthNoPriv, authNoPriv oder authPriv.

scopedPDU (bereichsdefiniertes PDU)

Die Nachrichtennutzdaten. Das scopedPDU enthält die contextEngineID, den contextName und das PDU.

securityStateReference (Sicherheitszustandsreferenz)

Ein Handle/Referenz zu cachedSecurityData. Dies wird beim Generieren von Antwort- oder Berichtsnachrichten verwendet, um Sicherheitsinformationen aus der ursprünglichen Anfragenachricht abzurufen.

wholeMsg (vollständige Nachricht)

Die vollständige serialisierte Nachricht, die für die Übertragung bereit ist.

wholeMsgLength (vollständige Nachrichtenlänge)

Die Länge der wholeMsg in Oktetten.

2.5.2. Services for Processing an Incoming SNMP Message (Dienste zur Verarbeitung einer eingehenden SNMP-Nachricht)

Wenn das Nachrichtenverarbeitungs- (MP) Subsystem das benutzerbasierte Sicherheitsmodul aufruft, um eine eingehende SNMP-Nachricht zu verarbeiten, muss es den entsprechenden vom Sicherheitsmodul bereitgestellten Dienst verwenden. Der bereitgestellte Dienst ist:

statusInformation =             -- Fehleranzeige oder Erfolg
processIncomingMsg(
IN messageProcessingModel -- normalerweise SNMP-Version
IN maxMessageSize -- der empfangenden SNMP-Entität
IN securityParameters -- für die empfangene Nachricht
IN securityModel -- für die empfangene Nachricht
IN securityLevel -- Sicherheitsniveau
IN wholeMsg -- wie über das Netz empfangen
IN wholeMsgLength -- Länge wie empfangen
OUT securityEngineID -- autoritative SNMP-Entität
OUT securityName -- Identifizierung des Principals
OUT scopedPDU -- Nachricht (Klartext) Nutzdaten
OUT maxSizeResponseScopedPDU -- maximale Größe des Antwort-PDU
OUT securityStateReference -- Referenz auf Sicherheitszustand
)

Abstract Data Elements for Processing (Abstrakte Datenelemente für die Verarbeitung)

Die als Parameter übergebenen abstrakten Datenelemente sind wie folgt:

statusInformation (Statusinformationen)

Eine Anzeige, ob die Nachrichtenverarbeitung erfolgreich war. Wenn nicht, ist es eine Anzeige des Fehlers und kann die OID und den Wert des inkrementierten Fehlerzählers enthalten.

messageProcessingModel (Nachrichtenverarbeitungsmodell)

Die SNMP-Versionsnummer der empfangenen Nachricht. Dies wird von USM nicht verwendet.

maxMessageSize (maximale Nachrichtengröße)

Die maximale Nachrichtengröße für die empfangene Nachricht. Dies wird zur Berechnung von maxSizeResponseScopedPDU verwendet.

securityParameters (Sicherheitsparameter)

Die Sicherheitsparameter aus der empfangenen Nachricht.

securityModel (Sicherheitsmodell)

Die Sicherheitsmodellkennung aus der empfangenen Nachricht. Sollte 3 für USM sein.

securityLevel (Sicherheitsniveau)

Das Sicherheitsniveau aus der empfangenen Nachricht: noAuthNoPriv, authNoPriv oder authPriv.

wholeMsg (vollständige Nachricht)

Die vollständige empfangene Nachricht.

wholeMsgLength (vollständige Nachrichtenlänge)

Die Länge der empfangenen Nachricht in Oktetten.

securityEngineID (Sicherheits-Engine-ID) (OUT)

Die aus den securityParameters extrahierte msgAuthoritativeEngineID.

securityName (Sicherheitsname) (OUT)

Der aus den securityParameters extrahierte msgUserName.

scopedPDU (bereichsdefiniertes PDU) (OUT)

Das aus der Nachricht extrahierte entschlüsselte und authentifizierte scopedPDU.

maxSizeResponseScopedPDU (maximale Größe des Antwort-bereichsdefinierten PDU) (OUT)

Die maximale Größe eines scopedPDU, das in einer Antwortnachricht gesendet werden kann. Dies wird basierend auf der empfangenen maxMessageSize und der Größe der Sicherheitsparameter berechnet.

securityStateReference (Sicherheitszustandsreferenz) (OUT)

Eine Referenz zu zwischengespeicherten Sicherheitsdaten. Dies wird später beim Generieren einer Antwort- oder Berichtsnachricht auf die empfangene Nachricht verwendet.

Service Primitive Usage (Verwendung von Dienstprimitiven)

Diese abstrakten Dienstprimitive definieren die Schnittstelle zwischen dem Nachrichtenverarbeitungssubsystem und dem benutzerbasierten Sicherheitsmodell. Die tatsächlichen Implementierungsdetails sind in Abschnitt 3 (Verfahrenselemente) spezifiziert.