Aller au contenu principal

3.10. Notify Payload

3.10. Notify Payload

Le Notify payload, désigné N dans le présent document, est utilisé pour transmettre des données informatives, telles que des conditions d'erreur et des transitions d'état, à un pair IKE. Un Notify payload peut apparaître dans un message de réponse (généralement en précisant pourquoi une demande a été rejetée), dans un échange INFORMATIONAL (pour signaler une erreur ne figurant pas dans une demande IKE), ou dans tout autre message pour indiquer les capacités de l'émetteur ou modifier le sens de la demande.

Le Notify payload est défini comme suit :

                    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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Next Payload |C| RESERVED | Payload Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Protocol ID | SPI Size | Notify Message Type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
~ Security Parameter Index (SPI) ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
~ Notification Data ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 16 : Format du Notify payload

  • Protocol ID (1 octet) - Si cette notification concerne une SA existante dont le SPI est indiqué dans le champ SPI, ce champ indique le type de cette SA. Pour les notifications concernant des Child SA, ce champ DOIT contenir soit (2) pour AH, soit (3) pour ESP. Parmi les notifications définies dans le présent document, le SPI n'est inclus qu'avec INVALID_SELECTORS, REKEY_SA et CHILD_SA_NOT_FOUND. Si le champ SPI est vide, ce champ DOIT être envoyé à zéro et DOIT être ignoré à la réception.

  • SPI Size (1 octet) - Longueur en octets du SPI telle que définie par l'ID de protocole IPsec, ou zéro si aucun SPI n'est applicable. Pour une notification concernant l'IKE SA, le SPI Size DOIT être zéro et le champ doit être vide.

  • Notify Message Type (2 octets) - Spécifie le type de message de notification.

  • SPI (longueur variable) - Security Parameter Index.

  • Notification Data (longueur variable) - Données d'état ou d'erreur transmises en plus du Notify Message Type. Les valeurs de ce champ dépendent du type (voir ci-dessous).

Le type de charge utile pour le Notify payload est quarante-et-un (41).

3.10.1. Types de messages Notify

Les informations de notification peuvent être des messages d'erreur expliquant pourquoi une SA n'a pas pu être établie. Elles peuvent aussi être des données d'état qu'un processus gérant une base de données SA souhaite communiquer à un processus pair.

Le tableau ci-dessous liste les messages de notification et leurs valeurs correspondantes. Le nombre de statuts d'erreur différents a été fortement réduit par rapport à IKEv1, à la fois pour simplifier et pour éviter de divulguer des informations de configuration à des sondes.

Les types dans la plage 0 - 16383 servent à signaler des erreurs. Une implémentation recevant un Notify payload avec l'un de ces types qu'elle ne reconnaît pas dans une réponse DOIT supposer que la demande correspondante a entièrement échoué. Les types d'erreur non reconnus dans une demande et les types d'état dans une demande ou une réponse DOIVENT être ignorés et devraient être journalisés.

Les Notify payloads à types d'état PEUVENT être ajoutés à tout message et DOIVENT être ignorés s'ils ne sont pas reconnus. Ils servent à indiquer des capacités et, dans le cadre de la négociation de SA, à négocier des paramètres non cryptographiques.

Pour plus d'informations sur la gestion des erreurs, voir la section 2.21.

Les valeurs du tableau suivant ne sont à jour qu'à la date de publication du RFC 4306, plus deux types d'erreur ajoutés dans le présent document. D'autres valeurs ont pu être ajoutées depuis ou le seront après publication. Les lecteurs doivent consulter [IKEV2IANA] pour les valeurs les plus récentes.

Messages NOTIFY : types d'erreurValeur
UNSUPPORTED_CRITICAL_PAYLOAD1
Voir section 2.5.
INVALID_IKE_SPI4
Voir section 2.21.
INVALID_MAJOR_VERSION5
Voir section 2.5.
INVALID_SYNTAX7
Indique que le message IKE reçu était invalide parce qu'un type, une longueur ou une valeur était hors plage, ou parce que la demande a été rejetée pour des raisons de politique. Pour éviter une attaque DoS par messages forgés, ce statut ne peut être renvoyé que pour et dans un paquet chiffré si le Message ID et la somme de contrôle cryptographique étaient valides. Pour éviter de divulguer des informations à quelqu'un sondant un nœud, ce statut DOIT être envoyé en réponse à toute erreur non couverte par les autres types de statut. Pour faciliter le débogage, des informations d'erreur plus détaillées devraient être écrites sur une console ou dans un journal.
INVALID_MESSAGE_ID9
Voir section 2.3.
INVALID_SPI11
Voir section 1.5.
NO_PROPOSAL_CHOSEN14
Aucune des suites cryptographiques proposées n'était acceptable. Peut être envoyé chaque fois que les propositions offertes (y compris sans s'y limiter les valeurs de charge utile SA, la notification USE_TRANSPORT_MODE, la notification IPCOMP_SUPPORTED) ne sont pas acceptables pour le répondant. Peut aussi servir d'erreur « générique » de Child SA lorsque la Child SA ne peut pas être créée pour une autre raison. Voir aussi la section 2.7.
INVALID_KE_PAYLOAD17
Voir les sections 1.2 et 1.3.
AUTHENTICATION_FAILED24
Envoyé dans la réponse à un message IKE_AUTH lorsque, pour une raison quelconque, l'authentification a échoué. Aucune donnée associée. Voir aussi la section 2.21.2.
SINGLE_PAIR_REQUIRED34
Voir section 2.9.
NO_ADDITIONAL_SAS35
Voir section 1.3.
INTERNAL_ADDRESS_FAILURE36
Voir section 3.15.4.
FAILED_CP_REQUIRED37
Voir section 2.19.
TS_UNACCEPTABLE38
Voir section 2.9.
INVALID_SELECTORS39
PEUT être envoyé dans un échange INFORMATIONAL IKE lorsqu'un nœud reçoit un paquet ESP ou AH dont les sélecteurs ne correspondent pas à ceux de la SA sur laquelle il a été livré (ce qui a provoqué l'abandon du paquet). Les Notification Data contiennent le début du paquet fautif (comme dans les messages ICMP) et le champ SPI de la notification est réglé pour correspondre au SPI de la Child SA.
TEMPORARY_FAILURE43
Voir section 2.25.
CHILD_SA_NOT_FOUND44
Voir section 2.25.
Messages NOTIFY : types d'étatValeur
INITIAL_CONTACT16384
Voir section 2.4.
SET_WINDOW_SIZE16385
Voir section 2.3.
ADDITIONAL_TS_POSSIBLE16386
Voir section 2.9.
IPCOMP_SUPPORTED16387
Voir section 2.22.
NAT_DETECTION_SOURCE_IP16388
Voir section 2.23.
NAT_DETECTION_DESTINATION_IP16389
Voir section 2.23.
COOKIE16390
Voir section 2.6.
USE_TRANSPORT_MODE16391
Voir section 1.3.1.
HTTP_CERT_LOOKUP_SUPPORTED16392
Voir section 3.6.
REKEY_SA16393
Voir section 1.3.3.
ESP_TFC_PADDING_NOT_SUPPORTED16394
Voir section 1.3.1.
NON_FIRST_FRAGMENTS_ALSO16395
Voir section 1.3.1.