L’authentification a pour rôle d’assurer que le paquet reste inchangé pendant la transmission, et que le mot de passe est valide pour l’usager qui fait la requête.

Pour construire ce mécanisme, on doit avoir connaissance des fonctions de hachage à une seule direction. Des exemples de ces fonctions sont : MD5 et SHA-1. Ces fonctions prennent en entrée une chaîne de caractères de longueur indéfinie, et génèrent en sortie une chaîne d’octets de longueur finie (16 octets pour MD5, 20 octets pour SHA-1).

Ces fonctions de hachage à une seule direction ont la propriété suivante:

Étant donné une chaîne d’octets qui est le résultat d’une fonction de hachage à une direction. Il doit être très difficile de trouver une quelconque chaîne d’entrée qui, une fois passée dans la fonction, donne cette même chaîne en sortie.

On peut dire aussi que :

Il est très difficile de trouver deux chaînes de caractères qui passées dans la fonction de hachage à une direction, donnent le même résultat. Si on trouve deux chaînes qui ont le même code de hachage, on dit que l’on a trouvé une collision.

Avant d’utiliser une fonction de hachage à une direction pour faire de la sécurité, il est important de définir ce que veut dire « très difficile ». Dans le cas de SHA-1, les chances qu’une deuxième chaîne de caractères donne un résultat identique à la première est de l’ordre de 1 sur 1,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 (Source : SET « Secure Electronic Transaction Specification », groupe formé par Visa, MasterCard et d’autres.). Il n’est donc pas réaliste de trouver une telle combinaison dans des temps acceptables, même avec des ordinateurs très puissants.

Pour authentifier l’information qui va être transmise, on doit aussi avoir un mot de passe qui est « partagé ». Le mot de passe ne doit donc être connu que par les deux entités qui s’envoient les messages, et préférablement par personne d’autre.


La figure ci dessous montre le mécanisme d’authentification :



Les étapes d’authentification sont les suivantes :

  •   Le transmetteur groupe des informations à transmettre avec le mot de passe.
  •   On passe ensuite ce groupe dans la fonction de hachage à une direction.
  •   Les données et le code de hachage sont ensuite transmis sur le réseau.
  •   Le receveur prend le bloc des données, et y ajoute le mot de passe.
  •   On passe ce groupe dans la fonction de hachage à une direction.
  •   Si le code de hachage est identique à celui transmis, le transmetteur est authentifié.

Avec cette technique, le mot de passe est validé sans qu’il ait été transmis sur le réseau. Quelqu’un qui saisit les paquets SNMPv3 passants sur le réseau ne peut pas facilement trouver le mot de passe.

Pour ce qui est de SNMPv3, l’authentification se fait à l’aide de HMAC-MD5-96 ou de HMAC-SHA- 96, qui est un peu plus compliqué que ce qui a été decrit ici. Le résultat de la fonction de hachage est placé dans le bloc paramètres de sécurité du paquet SNMPv3.

L’authentification se fait sur tout le paquet.

Il est important de rappeler que l’étape d’authentification ne vise pas à cacher l’existence du paquet ou à le rendre illisible. Si uniquement l’authentification est appliquée, les personnes qui saisissent les paquets passants sur le réseau peuvent encore voir le contenu de celui-ci. Toutefois, elles ne peuvent pas en changer le contenu sans connaître le mot de passe.