Appendix E. Algorithm for Assigning Link State IDs
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 0 | Key ID | Auth Data Len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Cryptographic sequence number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 18 : Usage of the Authentication field
in the OSPF packet header when Cryptographic
Authentication is employed
Chaque fois que l'état du voisin passe à « Down ». Chaque fois qu'un paquet OSPF est accepté comme authentique, le numéro de séquence cryptographique est fixé au numéro de séquence du paquet reçu.
Cette spécification ne fournit pas de procédure de dépassement (rollover) pour le numéro de séquence cryptographique. Lorsque le numéro de séquence cryptographique que le routeur envoie atteint la valeur maximale, le routeur doit réinitialiser à 0 le numéro de séquence cryptographique qu'il envoie. Après cela, les voisins du routeur rejetteront les paquets OSPF du routeur pendant une période de RouterDeadInterval, puis le routeur sera forcé de rétablir toutes les adjacences sur l'interface. Cependant, il est attendu que de nombreuses implémentations utiliseront « secondes depuis le redémarrage » (ou « secondes depuis 1960 », etc.) comme numéro de séquence cryptographique. Un tel choix empêchera essentiellement le dépassement, puisque le champ de numéro de séquence cryptographique est de 32 bits de long.
L'option d'authentification cryptographique OSPF ne fournit pas de confidentialité (confidentiality).
Lorsque l'authentification cryptographique est utilisée, le champ d'authentification de 64 bits dans l'en-tête standard du paquet OSPF est redéfini comme indiqué à la Figure 18. Les nouvelles définitions de champ sont les suivantes :
Key ID
Ce champ identifie l'algorithme et la clé secrète utilisés pour créer le message digest ajouté au paquet OSPF. Les identificateurs de clé sont uniques par interface (ou, de manière équivalente, par sous-réseau).
Auth Data Len
La longueur en octets du message digest ajouté au paquet OSPF.
Cryptographic sequence number
Un numéro de séquence non signé de 32 bits non décroissant. Utilisé pour se protéger contre les attaques par rejeu.
Le message digest ajouté au paquet OSPF n'est en fait pas considéré comme faisant partie du paquet de protocole OSPF : le message digest n'est pas inclus dans la longueur de paquet de l'en-tête OSPF, bien qu'il soit inclus dans le champ de longueur de l'en-tête IP du paquet.
Chaque clé est identifiée par la combinaison de l'interface et du Key ID. Une interface peut avoir plusieurs clés actives à un moment donné. Cela permet une transition fluide d'une clé à une autre. Chaque clé possède quatre constantes de temps qui lui sont associées. Ces constantes de temps peuvent être exprimées en termes d'une horloge heure-du-jour, ou en termes de l'horloge locale d'un routeur (par exemple, nombre de secondes depuis le dernier redémarrage) :
KeyStartAccept
L'heure à laquelle le routeur commencera à accepter les paquets qui ont été créés avec la clé donnée.
KeyStartGenerate
L'heure à laquelle le routeur commencera à utiliser la clé pour la génération de paquets.
KeyStopGenerate
L'heure à laquelle le routeur cessera d'utiliser la clé pour la génération de paquets.
KeyStopAccept
L'heure à laquelle le routeur cessera d'accepter les paquets qui ont été créés avec la clé donnée.
Afin d'obtenir une transition fluide des clés, KeyStartAccept doit être inférieur à KeyStartGenerate et KeyStopGenerate doit être inférieur à KeyStopAccept. Si KeyStopGenerate et KeyStopAccept sont laissés non spécifiés, la durée de vie de la clé est infinie. Lorsqu'une nouvelle clé remplace une ancienne, l'heure KeyStartGenerate de la nouvelle clé doit être inférieure ou égale à l'heure KeyStopGenerate de l'ancienne clé.
Le stockage des clés doit persister à travers un redémarrage système, à chaud ou à froid, pour éviter des problèmes opérationnels. Si la dernière clé associée à une interface expire, il est inacceptable de revenir à une condition non authentifiée, et non conseillé de perturber le routage. Par conséquent, le routeur doit envoyer une notification « expiration de la dernière clé d'authentification » au gestionnaire de réseau et traiter la clé comme ayant une durée de vie infinie jusqu'à ce que la durée de vie soit prolongée, que la clé soit supprimée par la gestion de réseau, ou qu'une nouvelle clé soit configurée.
D.4 Génération de message (Message generation)
Après avoir construit le contenu d'un paquet OSPF, la procédure d'authentification indiquée par la valeur Autype de l'interface d'envoi est appelée avant l'envoi du paquet. La procédure d'authentification modifie le paquet OSPF comme suit.
D.4.1 Génération de l'authentification nulle (Generating Null authentication)
Lors de l'utilisation de l'authentification nulle, le paquet est modifié comme suit :
(1) Le champ Autype dans l'en-tête standard OSPF est fixé à 0.
(2) Le champ checksum dans l'en-tête standard OSPF est fixé à la somme de contrôle IP standard de tout le contenu du paquet, en commençant par l'en-tête du paquet OSPF mais en excluant le champ d'authentification de 64 bits. Cette somme de contrôle est calculée comme le complément à un sur 16 bits de la somme des compléments à un de tous les mots de 16 bits du paquet, à l'exclusion du champ d'authentification. Si la longueur du paquet n'est pas un nombre entier de mots de 16 bits, le paquet est complété par un octet de zéro avant le calcul de la somme de contrôle.
D.4.2 Génération de l'authentification par mot de passe simple (Generating Simple password authentication)
Lors de l'utilisation de l'authentification par mot de passe simple, le paquet est modifié comme suit :
(1) Le champ Autype dans l'en-tête standard OSPF est fixé à 1.
(2) Le champ checksum dans l'en-tête standard OSPF est fixé à la somme de contrôle IP standard de tout le contenu du paquet, en commençant par l'en-tête du paquet OSPF mais en excluant le champ d'authentification de 64 bits. Cette somme de contrôle est calculée comme le complément à un sur 16 bits de la somme des compléments à un de tous les mots de 16 bits du paquet, à l'exclusion du champ d'authentification. Si la longueur du paquet n'est pas un nombre entier de mots de 16 bits, le paquet est complété par un octet de zéro avant le calcul de la somme de contrôle.
(3) Le champ d'authentification de 64 bits dans l'en-tête du paquet OSPF est fixé au mot de passe de 64 bits (c'est-à-dire la clé d'authentification) qui a été configuré pour l'interface.
D.4.3 Génération de l'authentification cryptographique (Generating Cryptographic authentication)
Lors de l'utilisation de l'authentification cryptographique, il peut y avoir plusieurs clés configurées pour l'interface. Dans ce cas, parmi les clés valides pour la génération de message (c'est-à-dire ayant KeyStartGenerate <= heure courante < KeyStopGenerate), choisir celle dont l'heure KeyStartGenerate est la plus récente. En utilisant cette clé, modifier le paquet comme suit :
(1) Le champ Autype dans l'en-tête standard OSPF est fixé à 2.