Aller au contenu principal

11.4. Use of Reports (Utilisation des rapports)

11.4. Use of Reports (Utilisation des rapports)​

Cette section décrit comment l'USM utilise le mécanisme de rapport (Report) SNMP pour communiquer des erreurs et d'autres informations.

Report PDU (PDU de rapport)​

Le PDU de rapport (Report PDU), défini dans [RFC3416], est utilisé par l'USM pour retourner des informations sur les erreurs survenues pendant le traitement des messages. Les rapports sont particulièrement importants pour:

  1. Découverte (Discovery) - retourner le snmpEngineID du moteur autorisé
  2. Synchronisation temporelle (Time synchronization) - retourner les valeurs de temps actuelles du moteur
  3. Notification d'erreur (Error notification) - indiquer des erreurs d'authentification, de confidentialité ou autres erreurs liées à la sécurité

USM Statistics (Statistiques USM)​

L'USM maintient plusieurs compteurs qui suivent diverses conditions d'erreur. Ces compteurs sont définis dans le groupe usmStats du module MIB (section 5):

  • usmStatsUnsupportedSecLevels - Messages avec des niveaux de sécurité non pris en charge
  • usmStatsNotInTimeWindows - Messages en dehors de la fenêtre temporelle
  • usmStatsUnknownUserNames - Messages avec des noms d'utilisateur inconnus
  • usmStatsUnknownEngineIDs - Messages avec des ID de moteur inconnus
  • usmStatsWrongDigests - Messages avec des résumés d'authentification incorrects
  • usmStatsDecryptionErrors - Messages avec des erreurs de déchiffrement

Report Generation (Génération de rapport)​

Lorsque l'USM détecte une erreur lors du traitement d'un message entrant, il PEUT (MAY) générer un Report-PDU contenant:

  1. L'objet compteur de statistiques USM approprié
  2. La valeur actuelle de ce compteur
  3. Le msgID pertinent du message reçu (pour la correspondance)

Considérations importantes:

  • Les rapports ne sont PAS toujours générés pour chaque erreur. La décision dépend du niveau de sécurité et du type d'erreur.
  • Les rapports pour certaines erreurs (comme usmStatsNotInTimeWindows pour la découverte) sont utilisés de manière constructive.
  • Les rapports NE DOIVENT PAS (MUST NOT) être envoyés en réponse à un autre rapport pour éviter les boucles infinies.

Security Levels for Reports (Niveaux de sécurité pour les rapports)​

Les rapports sont envoyés avec des niveaux de sécurité variables selon l'erreur:

  1. noAuthNoPriv - Utilisé pour:

    • Découverte (engineID inconnu)
    • Échecs de synchronisation temporelle
    • Noms d'utilisateur inconnus
  2. Identique à la requête - Utilisé pour:

    • Échecs d'authentification (résumé incorrect)
    • Erreurs de déchiffrement
    • Erreurs hors fenêtre temporelle (après synchronisation)

Report Reception (Réception de rapport)​

Lorsqu'un générateur de commandes ou un initiateur de notification reçoit un Report-PDU:

  1. Réponse de découverte: Si le rapport contient usmStatsUnknownEngineIDs et que le varBind contient un engineID non nul, l'application a réussi à découvrir l'identité du moteur autorisé.

  2. Réponse de synchronisation temporelle: Si le rapport contient usmStatsNotInTimeWindows, l'application devrait extraire msgAuthoritativeEngineBoots et msgAuthoritativeEngineTime des securityParameters et mettre à jour son cache local.

  3. Indication d'erreur: Pour les autres types de rapports, l'application devrait traiter le rapport comme une indication que la demande originale a échoué pour la raison spécifiée.

Report Handling Best Practices (Meilleures pratiques de gestion des rapports)​

  1. Éviter les tempêtes de rapports: Les implémentations devraient limiter le débit ou supprimer la génération de rapports pour éviter la congestion du réseau.

  2. Enregistrer les rapports: Les rapports liés à la sécurité devraient être enregistrés pour l'audit et l'analyse de sécurité.

  3. Retour d'information utilisateur: Les applications devraient fournir un retour d'information clair aux utilisateurs lorsque les rapports indiquent des échecs d'authentification ou d'autorisation.

  4. Erreurs de fenêtre temporelle: Après plusieurs rapports usmStatsNotInTimeWindows, les implémentations devraient suspecter un décalage d'horloge et peuvent nécessiter une intervention manuelle.

Privacy and Reports (Confidentialité et rapports)​

Les rapports générés en réponse à des messages avec confidentialité peuvent nécessiter un traitement spécial:

  • Si le déchiffrement échoue, le rapport devrait indiquer usmStatsDecryptionErrors.
  • Le rapport lui-même devrait être envoyé avec le même niveau de sécurité que celui demandé dans le message original, si possible.
  • Si le niveau de sécurité ne peut pas être déterminé (par exemple, en raison d'une corruption grave du message), le rapport devrait être envoyé avec noAuthNoPriv.