Passa al contenuto principale

11.4. Use of Reports (Uso dei rapporti)

11.4. Use of Reports (Uso dei rapporti)

Questa sezione descrive come l'USM utilizza il meccanismo di rapporto (Report) SNMP per comunicare errori e altre informazioni.

Report PDU (PDU di rapporto)

Il PDU di rapporto (Report PDU), definito in [RFC3416], è utilizzato dall'USM per restituire informazioni sugli errori che si sono verificati durante l'elaborazione dei messaggi. I rapporti sono particolarmente importanti per:

  1. Scoperta (Discovery) - restituire lo snmpEngineID del motore autorevole
  2. Sincronizzazione temporale (Time synchronization) - restituire i valori temporali correnti del motore
  3. Notifica di errore (Error notification) - indicare errori di autenticazione, privacy o altri errori correlati alla sicurezza

USM Statistics (Statistiche USM)

L'USM mantiene diversi contatori che tracciano varie condizioni di errore. Questi contatori sono definiti nel gruppo usmStats del modulo MIB (sezione 5):

  • usmStatsUnsupportedSecLevels - Messaggi con livelli di sicurezza non supportati
  • usmStatsNotInTimeWindows - Messaggi al di fuori della finestra temporale
  • usmStatsUnknownUserNames - Messaggi con nomi utente sconosciuti
  • usmStatsUnknownEngineIDs - Messaggi con ID motore sconosciuti
  • usmStatsWrongDigests - Messaggi con digest di autenticazione errati
  • usmStatsDecryptionErrors - Messaggi con errori di decrittazione

Report Generation (Generazione di rapporti)

Quando l'USM rileva un errore durante l'elaborazione di messaggi in ingresso, PUÒ (MAY) generare un Report-PDU contenente:

  1. L'oggetto contatore delle statistiche USM appropriato
  2. Il valore corrente di quel contatore
  3. Il msgID rilevante dal messaggio ricevuto (per l'abbinamento)

Considerazioni importanti:

  • I rapporti NON vengono sempre generati per ogni errore. La decisione dipende dal livello di sicurezza e dal tipo di errore.
  • I rapporti per determinati errori (come usmStatsNotInTimeWindows per la scoperta) sono utilizzati in modo costruttivo.
  • I rapporti NON DEVONO (MUST NOT) essere inviati in risposta a un altro rapporto per evitare cicli infiniti.

Security Levels for Reports (Livelli di sicurezza per i rapporti)

I rapporti vengono inviati con livelli di sicurezza variabili a seconda dell'errore:

  1. noAuthNoPriv - Utilizzato per:

    • Scoperta (engineID sconosciuto)
    • Fallimenti di sincronizzazione temporale
    • Nomi utente sconosciuti
  2. Uguale alla richiesta - Utilizzato per:

    • Fallimenti di autenticazione (digest errato)
    • Errori di decrittazione
    • Errori fuori finestra temporale (dopo la sincronizzazione)

Report Reception (Ricezione di rapporti)

Quando un generatore di comandi o un iniziatore di notifiche riceve un Report-PDU:

  1. Risposta di scoperta: Se il rapporto contiene usmStatsUnknownEngineIDs e il varBind contiene un engineID non zero, l'applicazione ha scoperto con successo l'identità del motore autorevole.

  2. Risposta di sincronizzazione temporale: Se il rapporto contiene usmStatsNotInTimeWindows, l'applicazione dovrebbe estrarre msgAuthoritativeEngineBoots e msgAuthoritativeEngineTime dai securityParameters e aggiornare la sua cache locale.

  3. Indicazione di errore: Per altri tipi di rapporti, l'applicazione dovrebbe trattare il rapporto come un'indicazione che la richiesta originale è fallita per il motivo specificato.

Report Handling Best Practices (Migliori pratiche di gestione dei rapporti)

  1. Evitare tempeste di rapporti: Le implementazioni dovrebbero limitare la velocità o sopprimere la generazione di rapporti per prevenire la congestione della rete.

  2. Registrare i rapporti: I rapporti relativi alla sicurezza dovrebbero essere registrati per l'audit e l'analisi della sicurezza.

  3. Feedback utente: Le applicazioni dovrebbero fornire un feedback chiaro agli utenti quando i rapporti indicano fallimenti di autenticazione o autorizzazione.

  4. Errori di finestra temporale: Dopo diversi rapporti usmStatsNotInTimeWindows, le implementazioni dovrebbero sospettare uno scostamento dell'orologio e possono richiedere un intervento manuale.

Privacy and Reports (Privacy e rapporti)

I rapporti generati in risposta a messaggi con privacy possono richiedere una gestione speciale:

  • Se la decrittazione fallisce, il rapporto dovrebbe indicare usmStatsDecryptionErrors.
  • Il rapporto stesso dovrebbe essere inviato con lo stesso livello di sicurezza richiesto nel messaggio originale, se possibile.
  • Se il livello di sicurezza non può essere determinato (ad esempio, a causa di grave corruzione del messaggio), il rapporto dovrebbe essere inviato con noAuthNoPriv.