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'erreur | Valeur |
|---|---|
| UNSUPPORTED_CRITICAL_PAYLOAD | 1 |
| Voir section 2.5. | |
| INVALID_IKE_SPI | 4 |
| Voir section 2.21. | |
| INVALID_MAJOR_VERSION | 5 |
| Voir section 2.5. | |
| INVALID_SYNTAX | 7 |
| 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_ID | 9 |
| Voir section 2.3. | |
| INVALID_SPI | 11 |
| Voir section 1.5. | |
| NO_PROPOSAL_CHOSEN | 14 |
| 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_PAYLOAD | 17 |
| Voir les sections 1.2 et 1.3. | |
| AUTHENTICATION_FAILED | 24 |
| 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_REQUIRED | 34 |
| Voir section 2.9. | |
| NO_ADDITIONAL_SAS | 35 |
| Voir section 1.3. | |
| INTERNAL_ADDRESS_FAILURE | 36 |
| Voir section 3.15.4. | |
| FAILED_CP_REQUIRED | 37 |
| Voir section 2.19. | |
| TS_UNACCEPTABLE | 38 |
| Voir section 2.9. | |
| INVALID_SELECTORS | 39 |
| 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_FAILURE | 43 |
| Voir section 2.25. | |
| CHILD_SA_NOT_FOUND | 44 |
| Voir section 2.25. |
| Messages NOTIFY : types d'état | Valeur |
|---|---|
| INITIAL_CONTACT | 16384 |
| Voir section 2.4. | |
| SET_WINDOW_SIZE | 16385 |
| Voir section 2.3. | |
| ADDITIONAL_TS_POSSIBLE | 16386 |
| Voir section 2.9. | |
| IPCOMP_SUPPORTED | 16387 |
| Voir section 2.22. | |
| NAT_DETECTION_SOURCE_IP | 16388 |
| Voir section 2.23. | |
| NAT_DETECTION_DESTINATION_IP | 16389 |
| Voir section 2.23. | |
| COOKIE | 16390 |
| Voir section 2.6. | |
| USE_TRANSPORT_MODE | 16391 |
| Voir section 1.3.1. | |
| HTTP_CERT_LOOKUP_SUPPORTED | 16392 |
| Voir section 3.6. | |
| REKEY_SA | 16393 |
| Voir section 1.3.3. | |
| ESP_TFC_PADDING_NOT_SUPPORTED | 16394 |
| Voir section 1.3.1. | |
| NON_FIRST_FRAGMENTS_ALSO | 16395 |
| Voir section 1.3.1. |