Passa al contenuto principale

3.10. Notify Payload (Payload di notifica)

3.10. Notify Payload (Payload di notifica)

Il Notify payload, indicato come N in questo documento, serve a trasmettere dati informativi, come condizioni di errore e transizioni di stato, a un peer IKE. Un Notify payload può comparire in un messaggio di risposta (di solito specificando perché una richiesta è stata rifiutata), in uno scambio INFORMATIONAL (per segnalare un errore non presente in una richiesta IKE), o in qualsiasi altro messaggio per indicare le capacità del mittente o modificare il significato della richiesta.

Il Notify payload è definito come segue:

                    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 ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figura 16: Formato del Notify payload

  • Protocol ID (1 ottetto) - Se questa notifica riguarda una SA esistente la cui SPI è nel campo SPI, questo campo indica il tipo di quella SA. Per notifiche riguardanti Child SA, questo campo DEVE contenere (2) per AH o (3) per ESP. Tra le notifiche definite in questo documento, la SPI è inclusa solo con INVALID_SELECTORS, REKEY_SA e CHILD_SA_NOT_FOUND. Se il campo SPI è vuoto, questo campo DEVE essere inviato a zero e DEVE essere ignorato in ricezione.

  • SPI Size (1 ottetto) - Lunghezza in ottetti della SPI come definita dall'ID protocollo IPsec, o zero se non c'è SPI applicabile. Per una notifica riguardante l'IKE SA, la SPI Size DEVE essere zero e il campo deve essere vuoto.

  • Notify Message Type (2 ottetti) - Specifica il tipo di messaggio di notifica.

  • SPI (lunghezza variabile) - Security Parameter Index.

  • Notification Data (lunghezza variabile) - Dati di stato o errore trasmessi oltre al Notify Message Type. I valori dipendono dal tipo (vedere sotto).

Il tipo di payload per il Notify payload è quarantuno (41).

3.10.1. Tipi di messaggio Notify

Le informazioni di notifica possono essere messaggi di errore che spiegano perché una SA non ha potuto essere stabilita. Possono anche essere dati di stato che un processo che gestisce un database SA desidera comunicare a un processo peer.

La tabella seguente elenca i messaggi di notifica e i valori corrispondenti. Il numero di stati di errore distinti è stato fortemente ridotto rispetto a IKEv1 sia per semplificare sia per evitare di fornire informazioni di configurazione a sonde.

I tipi nell'intervallo 0 - 16383 servono a segnalare errori. Un'implementazione che riceve un Notify payload con uno di questi tipi non riconosciuti in una risposta DEVE presumere che la richiesta corrispondente sia fallita completamente. Tipi di errore non riconosciuti in una richiesta e tipi di stato in una richiesta o risposta DEVONO essere ignorati e dovrebbero essere registrati.

I Notify payload con tipi di stato POSSONO essere aggiunti a qualsiasi messaggio e DEVONO essere ignorati se non riconosciuti. Servono a indicare capacità e, come parte della negoziazione SA, a negoziare parametri non crittografici.

Ulteriori informazioni sulla gestione degli errori si trovano nella sezione 2.21.

I valori nella tabella seguente sono aggiornati alla data di pubblicazione del RFC 4306, più due tipi di errore aggiunti in questo documento. Altri valori possono essere stati aggiunti successivamente. I lettori devono consultare [IKEV2IANA] per i valori più recenti.

Messaggi NOTIFY: tipi di erroreValore
UNSUPPORTED_CRITICAL_PAYLOAD1
Vedere sezione 2.5.
INVALID_IKE_SPI4
Vedere sezione 2.21.
INVALID_MAJOR_VERSION5
Vedere sezione 2.5.
INVALID_SYNTAX7
Indica che il messaggio IKE ricevuto non era valido perché un tipo, una lunghezza o un valore erano fuori intervallo o perché la richiesta è stata rifiutata per motivi di policy. Per evitare un attacco DoS con messaggi falsi, questo stato può essere restituito solo per e in un pacchetto crittografato se Message ID e checksum crittografico erano validi. Per evitare fughe di informazioni verso chi sonda un nodo, questo stato DEVE essere inviato in risposta a qualsiasi errore non coperto dagli altri tipi di stato. Per il debug, informazioni di errore più dettagliate dovrebbero essere scritte su console o log.
INVALID_MESSAGE_ID9
Vedere sezione 2.3.
INVALID_SPI11
Vedere sezione 1.5.
NO_PROPOSAL_CHOSEN14
Nessuna delle suite crittografiche proposte era accettabile. Può essere inviato quando le proposte offerte (inclusi, a titolo esemplificativo, valori del payload SA, notifica USE_TRANSPORT_MODE, notifica IPCOMP_SUPPORTED) non sono accettabili per il rispondente. Può anche essere usato come errore «generico» della Child SA quando la Child SA non può essere creata per altri motivi. Vedere anche la sezione 2.7.
INVALID_KE_PAYLOAD17
Vedere le sezioni 1.2 e 1.3.
AUTHENTICATION_FAILED24
Inviato nella risposta a un messaggio IKE_AUTH quando, per qualche motivo, l'autenticazione è fallita. Nessun dato associato. Vedere anche la sezione 2.21.2.
SINGLE_PAIR_REQUIRED34
Vedere sezione 2.9.
NO_ADDITIONAL_SAS35
Vedere sezione 1.3.
INTERNAL_ADDRESS_FAILURE36
Vedere sezione 3.15.4.
FAILED_CP_REQUIRED37
Vedere sezione 2.19.
TS_UNACCEPTABLE38
Vedere sezione 2.9.
INVALID_SELECTORS39
PUÒ essere inviato in uno scambio INFORMATIONAL IKE quando un nodo riceve un pacchetto ESP o AH i cui selettori non corrispondono a quelli della SA su cui è stato consegnato (e ciò ha causato lo scarto del pacchetto). Le Notification Data contengono l'inizio del pacchetto in errore (come nei messaggi ICMP) e il campo SPI della notifica è impostato in modo da corrispondere alla SPI della Child SA.
TEMPORARY_FAILURE43
Vedere sezione 2.25.
CHILD_SA_NOT_FOUND44
Vedere sezione 2.25.
Messaggi NOTIFY: tipi di statoValore
INITIAL_CONTACT16384
Vedere sezione 2.4.
SET_WINDOW_SIZE16385
Vedere sezione 2.3.
ADDITIONAL_TS_POSSIBLE16386
Vedere sezione 2.9.
IPCOMP_SUPPORTED16387
Vedere sezione 2.22.
NAT_DETECTION_SOURCE_IP16388
Vedere sezione 2.23.
NAT_DETECTION_DESTINATION_IP16389
Vedere sezione 2.23.
COOKIE16390
Vedere sezione 2.6.
USE_TRANSPORT_MODE16391
Vedere sezione 1.3.1.
HTTP_CERT_LOOKUP_SUPPORTED16392
Vedere sezione 3.6.
REKEY_SA16393
Vedere sezione 1.3.3.
ESP_TFC_PADDING_NOT_SUPPORTED16394
Vedere sezione 1.3.1.
NON_FIRST_FRAGMENTS_ALSO16395
Vedere sezione 1.3.1.