Passa al contenuto principale

11.1. Recommended Practices (Pratiche raccomandate)

Questa sezione descrive le pratiche raccomandate per l'utilizzo del modello di sicurezza basato sull'utente per massimizzare la sicurezza.

Password Selection (Selezione della password)

Le password dovrebbero essere scelte per massimizzare la sicurezza:

  1. Length (Lunghezza): Le password DOVREBBERO essere lunghe almeno 8 caratteri. Password più lunghe forniscono una migliore sicurezza.

  2. Complexity (Complessità): Le password DOVREBBERO contenere un mix di:

    • Lettere maiuscole
    • Lettere minuscole
    • Cifre
    • Caratteri speciali
  3. Avoid Patterns (Evitare pattern): Le password NON DOVREBBERO essere:

    • Parole del dizionario
    • Pattern semplici (ad esempio, "12345678", "password")
    • Informazioni personali (nomi, compleanni, ecc.)
    • Stringhe ripetitive (ad esempio, "aaaaaaaa")

Key Management (Gestione delle chiavi)

  1. Key Storage (Archiviazione delle chiavi): Le chiavi di autenticazione e privacy DEVONO essere archiviate in modo sicuro e protette da accessi non autorizzati.

  2. Key Distribution (Distribuzione delle chiavi): La distribuzione iniziale delle chiavi DOVREBBE essere eseguita attraverso meccanismi sicuri fuori banda.

  3. Key Updates (Aggiornamenti delle chiavi): Le chiavi DOVREBBERO essere modificate periodicamente. La frequenza dipende dai requisiti di sicurezza della distribuzione.

  4. Key Localization (Localizzazione delle chiavi): Utilizzare sempre chiavi localizzate (chiavi specifiche per ogni motore SNMP) piuttosto che chiavi globali.

Time Synchronization (Sincronizzazione temporale)

  1. Initial Synchronization (Sincronizzazione iniziale): I motori SNMP non autorevoli DEVONO eseguire la sincronizzazione temporale con i motori autorevoli prima di inviare messaggi autenticati.

  2. Clock Accuracy (Accuratezza dell'orologio): I motori SNMP DOVREBBERO mantenere orologi ragionevolmente accurati. Una grande deriva dell'orologio può causare il rifiuto di messaggi legittimi.

  3. Boots Counter (Contatore di avvii): Il contatore msgAuthoritativeEngineBoots DEVE essere incrementato ogni volta che un motore SNMP si reinizializza. Questo contatore DEVE persistere attraverso i riavvii.

User Management (Gestione degli utenti)

  1. User Creation (Creazione utente): Quando si creano utenti, specificare sempre sia i protocolli di autenticazione che quelli di privacy, anche se la privacy non verrà utilizzata immediatamente.

  2. User Deletion (Eliminazione utente): Quando si eliminano utenti, assicurarsi che tutte le chiavi e i dati di configurazione associati siano cancellati in modo sicuro.

  3. Template Users (Utenti modello): Utilizzare utenti modello (utenti configurati sul motore autorevole) per la clonazione per creare nuovi utenti su motori non autorevoli.

Message Security Levels (Livelli di sicurezza dei messaggi)

Scegliere il livello di sicurezza appropriato per ogni messaggio:

  1. noAuthNoPriv: Solo per messaggi di scoperta o informazioni non sensibili. Non raccomandato per uso operativo.

  2. authNoPriv: Fornisce autenticazione ma non privacy. Adatto quando la riservatezza non è richiesta ma l'integrità del messaggio e l'autenticazione dell'origine sono necessarie.

  3. authPriv: Fornisce sia autenticazione che privacy. Raccomandato per tutte le operazioni sensibili.

Implementation Considerations (Considerazioni sull'implementazione)

  1. Random Number Generation (Generazione di numeri casuali): Le implementazioni DEVONO utilizzare generatori di numeri casuali crittograficamente forti per generare chiavi e vettori di inizializzazione.

  2. Clock Synchronization (Sincronizzazione dell'orologio): Le implementazioni DOVREBBERO fornire meccanismi per sincronizzarsi con sorgenti temporali esterne (ad esempio, NTP) per mantenere un tempo accurato.

  3. Audit Logging (Registrazione di audit): Le implementazioni DOVREBBERO registrare eventi rilevanti per la sicurezza, inclusi i fallimenti di autenticazione e i fallimenti di sincronizzazione temporale.

  4. Error Handling (Gestione degli errori): Le implementazioni DEVONO gestire le condizioni di errore in modo sicuro, evitando perdite di informazioni che potrebbero aiutare gli attaccanti.