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.