2.5. Services provided by the User-based Security Model (Services fournis par le modèle de sécurité basé sur l'utilisateur)
2.5. Services provided by the User-based Security Model (Services fournis par le modèle de sécurité basé sur l'utilisateur)
Cette section décrit les services fournis par le modèle de sécurité basé sur l'utilisateur avec leurs entrées et sorties.
Les services sont décrits comme des primitives d'une interface de service abstraite et les entrées et sorties sont décrites comme des éléments de données abstraits tels qu'ils sont passés dans ces primitives de service abstraites.
2.5.1. Services for Generating an Outgoing SNMP Message (Services pour générer un message SNMP sortant)
Lorsque le sous-système de traitement de messages (MP) invoque le module de sécurité basé sur l'utilisateur pour sécuriser un message SNMP sortant, il doit utiliser le service approprié fourni par le module de sécurité. Ces deux services sont fournis:
1) Service pour générer un message de requête (Service to Generate a Request Message)
La primitive de service abstraite est:
statusInformation = -- succès ou indication d'erreur
generateRequestMsg(
IN messageProcessingModel -- généralement, version SNMP
IN globalData -- en-tête de message, données admin
IN maxMessageSize -- de l'entité SNMP expéditrice
IN securityModel -- pour le message sortant
IN securityEngineID -- entité SNMP autorisée
IN securityName -- au nom de ce principal
IN securityLevel -- niveau de sécurité demandé
IN scopedPDU -- charge utile du message (texte clair)
OUT securityParameters -- rempli par le module de sécurité
OUT wholeMsg -- message complet généré
OUT wholeMsgLength -- longueur du message généré
)
2) Service pour générer un message de réponse (Service to Generate a Response Message)
La primitive de service abstraite est:
statusInformation = -- succès ou indication d'erreur
generateResponseMsg(
IN messageProcessingModel -- généralement, version SNMP
IN globalData -- en-tête de message, données admin
IN maxMessageSize -- de l'entité SNMP expéditrice
IN securityModel -- pour le message sortant
IN securityEngineID -- entité SNMP autorisée
IN securityName -- au nom de ce principal
IN securityLevel -- niveau de sécurité demandé
IN scopedPDU -- charge utile du message (texte clair)
IN securityStateReference -- référence à l'état de sécurité
-- informations de la requête originale
OUT securityParameters -- rempli par le module de sécurité
OUT wholeMsg -- message complet généré
OUT wholeMsgLength -- longueur du message généré
)
Abstract Data Elements (Éléments de données abstraits)
Les éléments de données abstraits passés comme paramètres dans les primitives de service abstraites sont les suivants:
statusInformation (informations d'état)
Une indication de si l'encodage et la sécurisation du message ont réussi. Sinon, c'est une indication du problème.
messageProcessingModel (modèle de traitement des messages)
Le numéro de version SNMP pour le message à générer. Ces données ne sont pas utilisées par le module de sécurité basé sur l'utilisateur.
globalData (données globales)
L'en-tête du message (c'est-à-dire ses informations administratives). Ces données ne sont pas utilisées par le module de sécurité basé sur l'utilisateur.
maxMessageSize (taille maximale du message)
La taille maximale du message telle qu'incluse dans le message. Ces données ne sont pas utilisées par le module de sécurité basé sur l'utilisateur.
securityParameters (paramètres de sécurité)
Ce sont les paramètres de sécurité. Ils seront remplis par le module de sécurité basé sur l'utilisateur.
securityModel (modèle de sécurité)
Le securityModel en cours d'utilisation. Devrait être le modèle de sécurité basé sur l'utilisateur. Ces données ne sont pas utilisées par le module de sécurité basé sur l'utilisateur.
securityEngineID (ID du moteur de sécurité)
Le snmpEngineID du moteur SNMP autorisé. Lors de la création d'un message de requête, cela peut être un OCTET STRING de longueur nulle si le securityEngineID n'est pas encore connu (phase de découverte).
securityName (nom de sécurité)
Avec le securityLevel et le securityEngineID, cela identifie quelle ligne de la usmUserTable doit être utilisée pour sécuriser le message.
securityLevel (niveau de sécurité)
Le securityLevel demandé. L'un de: noAuthNoPriv, authNoPriv, ou authPriv.
scopedPDU (PDU délimité)
La charge utile du message. Le scopedPDU contient le contextEngineID, le contextName et le PDU.
securityStateReference (référence d'état de sécurité)
Un handle/référence aux cachedSecurityData. Ceci est utilisé lors de la génération de messages de réponse ou de rapport pour récupérer les informations de sécurité du message de requête original.
wholeMsg (message complet)
Le message sérialisé complet prêt pour la transmission.
wholeMsgLength (longueur du message complet)
La longueur du wholeMsg en octets.
2.5.2. Services for Processing an Incoming SNMP Message (Services pour traiter un message SNMP entrant)
Lorsque le sous-système de traitement de messages (MP) invoque le module de sécurité basé sur l'utilisateur pour traiter un message SNMP entrant, il doit utiliser le service approprié fourni par le module de sécurité. Le service fourni est:
statusInformation = -- indication d'erreur ou succès
processIncomingMsg(
IN messageProcessingModel -- généralement, version SNMP
IN maxMessageSize -- de l'entité SNMP réceptrice
IN securityParameters -- pour le message reçu
IN securityModel -- pour le message reçu
IN securityLevel -- niveau de sécurité
IN wholeMsg -- tel que reçu sur le fil
IN wholeMsgLength -- longueur telle que reçue
OUT securityEngineID -- entité SNMP autorisée
OUT securityName -- identification du principal
OUT scopedPDU -- charge utile du message (texte clair)
OUT maxSizeResponseScopedPDU -- taille maximale du PDU de réponse
OUT securityStateReference -- référence à l'état de sécurité
)
Abstract Data Elements for Processing (Éléments de données abstraits pour le traitement)
Les éléments de données abstraits passés comme paramètres sont les suivants:
statusInformation (informations d'état)
Une indication de si le traitement du message a réussi. Sinon, c'est une indication de l'erreur et peut inclure l'OID et la valeur du compteur d'erreurs qui a été incrémenté.
messageProcessingModel (modèle de traitement des messages)
Le numéro de version SNMP du message reçu. Ceci n'est pas utilisé par l'USM.
maxMessageSize (taille maximale du message)
La taille maximale du message pour le message reçu. Ceci est utilisé pour calculer maxSizeResponseScopedPDU.
securityParameters (paramètres de sécurité)
Les paramètres de sécurité du message reçu.
securityModel (modèle de sécurité)
L'identifiant du modèle de sécurité du message reçu. Devrait être 3 pour l'USM.
securityLevel (niveau de sécurité)
Le niveau de sécurité du message reçu: noAuthNoPriv, authNoPriv, ou authPriv.
wholeMsg (message complet)
Le message complet tel que reçu.
wholeMsgLength (longueur du message complet)
La longueur du message reçu en octets.
securityEngineID (ID du moteur de sécurité) (OUT)
Le msgAuthoritativeEngineID extrait des securityParameters.
securityName (nom de sécurité) (OUT)
Le msgUserName extrait des securityParameters.
scopedPDU (PDU délimité) (OUT)
Le scopedPDU déchiffré et authentifié extrait du message.
maxSizeResponseScopedPDU (taille maximale du PDU de réponse délimité) (OUT)
La taille maximale d'un scopedPDU qui peut être envoyé dans un message de réponse. Ceci est calculé en fonction du maxMessageSize reçu et de la taille des paramètres de sécurité.
securityStateReference (référence d'état de sécurité) (OUT)
Une référence aux données de sécurité mises en cache. Ceci est utilisé plus tard lors de la génération d'un message de réponse ou de rapport au message reçu.
Service Primitive Usage (Utilisation des primitives de service)
Ces primitives de service abstraites définissent l'interface entre le sous-système de traitement de messages et le modèle de sécurité basé sur l'utilisateur. Les détails réels de l'implémentation sont spécifiés dans la section 3 (Éléments de procédure).