Passa al contenuto principale

2.5. Services provided by the User-based Security Model (Servizi forniti dal modello di sicurezza basato sull'utente)

2.5. Services provided by the User-based Security Model (Servizi forniti dal modello di sicurezza basato sull'utente)

Questa sezione descrive i servizi forniti dal modello di sicurezza basato sull'utente con i loro input e output.

I servizi sono descritti come primitive di un'interfaccia di servizio astratta e gli input e output sono descritti come elementi di dati astratti come vengono passati in queste primitive di servizio astratte.

2.5.1. Services for Generating an Outgoing SNMP Message (Servizi per generare un messaggio SNMP in uscita)

Quando il sottosistema di elaborazione dei messaggi (MP) invoca il modulo di sicurezza basato sull'utente per proteggere un messaggio SNMP in uscita, deve utilizzare il servizio appropriato fornito dal modulo di sicurezza. Vengono forniti questi due servizi:

1) Servizio per generare un messaggio di richiesta (Service to Generate a Request Message)

La primitiva di servizio astratta è:

statusInformation =            -- successo o indicazione di errore
generateRequestMsg(
IN messageProcessingModel -- tipicamente, versione SNMP
IN globalData -- intestazione messaggio, dati admin
IN maxMessageSize -- dell'entità SNMP mittente
IN securityModel -- per il messaggio in uscita
IN securityEngineID -- entità SNMP autorevole
IN securityName -- per conto di questo principale
IN securityLevel -- livello di sicurezza richiesto
IN scopedPDU -- carico utile del messaggio (testo chiaro)
OUT securityParameters -- compilato dal modulo di sicurezza
OUT wholeMsg -- messaggio completo generato
OUT wholeMsgLength -- lunghezza del messaggio generato
)

2) Servizio per generare un messaggio di risposta (Service to Generate a Response Message)

La primitiva di servizio astratta è:

statusInformation =            -- successo o indicazione di errore
generateResponseMsg(
IN messageProcessingModel -- tipicamente, versione SNMP
IN globalData -- intestazione messaggio, dati admin
IN maxMessageSize -- dell'entità SNMP mittente
IN securityModel -- per il messaggio in uscita
IN securityEngineID -- entità SNMP autorevole
IN securityName -- per conto di questo principale
IN securityLevel -- livello di sicurezza richiesto
IN scopedPDU -- carico utile del messaggio (testo chiaro)
IN securityStateReference -- riferimento allo stato di sicurezza
-- informazioni dalla richiesta originale
OUT securityParameters -- compilato dal modulo di sicurezza
OUT wholeMsg -- messaggio completo generato
OUT wholeMsgLength -- lunghezza del messaggio generato
)

Abstract Data Elements (Elementi di dati astratti)

Gli elementi di dati astratti passati come parametri nelle primitive di servizio astratte sono i seguenti:

statusInformation (informazioni di stato)

Un'indicazione se la codifica e la protezione del messaggio sono state eseguite con successo. In caso contrario, è un'indicazione del problema.

messageProcessingModel (modello di elaborazione dei messaggi)

Il numero di versione SNMP per il messaggio da generare. Questi dati non sono utilizzati dal modulo di sicurezza basato sull'utente.

globalData (dati globali)

L'intestazione del messaggio (cioè le sue informazioni amministrative). Questi dati non sono utilizzati dal modulo di sicurezza basato sull'utente.

maxMessageSize (dimensione massima del messaggio)

La dimensione massima del messaggio come inclusa nel messaggio. Questi dati non sono utilizzati dal modulo di sicurezza basato sull'utente.

securityParameters (parametri di sicurezza)

Questi sono i parametri di sicurezza. Saranno compilati dal modulo di sicurezza basato sull'utente.

securityModel (modello di sicurezza)

Il securityModel in uso. Dovrebbe essere il modello di sicurezza basato sull'utente. Questi dati non sono utilizzati dal modulo di sicurezza basato sull'utente.

securityEngineID (ID del motore di sicurezza)

Lo snmpEngineID del motore SNMP autorevole. Durante la creazione di un messaggio di richiesta, questo potrebbe essere un OCTET STRING di lunghezza zero se il securityEngineID non è ancora noto (fase di scoperta).

securityName (nome di sicurezza)

Insieme al securityLevel e al securityEngineID, questo identifica quale riga nella usmUserTable dovrebbe essere utilizzata per proteggere il messaggio.

securityLevel (livello di sicurezza)

Il securityLevel richiesto. Uno tra: noAuthNoPriv, authNoPriv o authPriv.

scopedPDU (PDU con ambito)

Il carico utile del messaggio. Lo scopedPDU contiene il contextEngineID, il contextName e il PDU.

securityStateReference (riferimento allo stato di sicurezza)

Un handle/riferimento ai cachedSecurityData. Questo viene utilizzato durante la generazione di messaggi di risposta o rapporto per recuperare le informazioni di sicurezza dal messaggio di richiesta originale.

wholeMsg (messaggio completo)

Il messaggio serializzato completo pronto per la trasmissione.

wholeMsgLength (lunghezza del messaggio completo)

La lunghezza del wholeMsg in ottetti.

2.5.2. Services for Processing an Incoming SNMP Message (Servizi per elaborare un messaggio SNMP in arrivo)

Quando il sottosistema di elaborazione dei messaggi (MP) invoca il modulo di sicurezza basato sull'utente per elaborare un messaggio SNMP in arrivo, deve utilizzare il servizio appropriato fornito dal modulo di sicurezza. Il servizio fornito è:

statusInformation =             -- indicazione di errore o successo
processIncomingMsg(
IN messageProcessingModel -- tipicamente, versione SNMP
IN maxMessageSize -- dell'entità SNMP ricevente
IN securityParameters -- per il messaggio ricevuto
IN securityModel -- per il messaggio ricevuto
IN securityLevel -- livello di sicurezza
IN wholeMsg -- come ricevuto sulla rete
IN wholeMsgLength -- lunghezza come ricevuta
OUT securityEngineID -- entità SNMP autorevole
OUT securityName -- identificazione del principale
OUT scopedPDU -- carico utile del messaggio (testo chiaro)
OUT maxSizeResponseScopedPDU -- dimensione massima del PDU di risposta
OUT securityStateReference -- riferimento allo stato di sicurezza
)

Abstract Data Elements for Processing (Elementi di dati astratti per l'elaborazione)

Gli elementi di dati astratti passati come parametri sono i seguenti:

statusInformation (informazioni di stato)

Un'indicazione se l'elaborazione del messaggio è stata eseguita con successo. In caso contrario, è un'indicazione dell'errore e può includere l'OID e il valore del contatore di errori che è stato incrementato.

messageProcessingModel (modello di elaborazione dei messaggi)

Il numero di versione SNMP del messaggio ricevuto. Questo non è utilizzato da USM.

maxMessageSize (dimensione massima del messaggio)

La dimensione massima del messaggio per il messaggio ricevuto. Questo viene utilizzato per calcolare maxSizeResponseScopedPDU.

securityParameters (parametri di sicurezza)

I parametri di sicurezza dal messaggio ricevuto.

securityModel (modello di sicurezza)

L'identificatore del modello di sicurezza dal messaggio ricevuto. Dovrebbe essere 3 per USM.

securityLevel (livello di sicurezza)

Il livello di sicurezza dal messaggio ricevuto: noAuthNoPriv, authNoPriv o authPriv.

wholeMsg (messaggio completo)

Il messaggio completo come ricevuto.

wholeMsgLength (lunghezza del messaggio completo)

La lunghezza del messaggio ricevuto in ottetti.

securityEngineID (ID del motore di sicurezza) (OUT)

Il msgAuthoritativeEngineID estratto dai securityParameters.

securityName (nome di sicurezza) (OUT)

Il msgUserName estratto dai securityParameters.

scopedPDU (PDU con ambito) (OUT)

Lo scopedPDU decriptato e autenticato estratto dal messaggio.

maxSizeResponseScopedPDU (dimensione massima del PDU di risposta con ambito) (OUT)

La dimensione massima di uno scopedPDU che può essere inviato in un messaggio di risposta. Questo viene calcolato in base al maxMessageSize ricevuto e alla dimensione dei parametri di sicurezza.

securityStateReference (riferimento allo stato di sicurezza) (OUT)

Un riferimento ai dati di sicurezza memorizzati nella cache. Questo viene utilizzato successivamente durante la generazione di un messaggio di risposta o rapporto al messaggio ricevuto.

Service Primitive Usage (Uso delle primitive di servizio)

Queste primitive di servizio astratte definiscono l'interfaccia tra il sottosistema di elaborazione dei messaggi e il modello di sicurezza basato sull'utente. I dettagli effettivi dell'implementazione sono specificati nella sezione 3 (Elementi di procedura).