1.3. Lo scambio CREATE_CHILD_SA
1.3. Lo scambio CREATE_CHILD_SA
Lo scambio CREATE_CHILD_SA viene utilizzato per creare nuove Child SA e per rinnovare (rekey) sia le IKE SA sia le Child SA. Questo scambio consiste in una singola coppia richiesta/risposta, e una parte della sua funzione era definita come scambio di Fase 2 in IKEv1. PUÒ essere avviato da entrambe le estremità della IKE SA dopo il completamento degli scambi iniziali.
Una SA viene rinnovata creando una nuova SA e poi eliminando quella vecchia. Questa sezione descrive la prima parte del rekey, ovvero la creazione di nuove SA; la Sezione 2.8 tratta i meccanismi del rekey, inclusi lo spostamento del traffico dalle SA vecchie a quelle nuove e l'eliminazione delle SA vecchie. Le due sezioni devono essere lette insieme per comprendere l'intero processo di rekey.
Entrambe le estremità possono avviare uno scambio CREATE_CHILD_SA, quindi in questa sezione il termine iniziatore si riferisce all'estremità che avvia questo scambio. Un'implementazione PUÒ rifiutare tutte le richieste CREATE_CHILD_SA all'interno di una IKE SA.
La richiesta CREATE_CHILD_SA PUÒ facoltativamente contenere un payload KE per uno scambio Diffie-Hellman aggiuntivo per garantire garanzie più forti di segretezza in avanti (forward secrecy) per la Child SA. Il materiale di chiave per la Child SA è funzione di SK_d stabilito durante l'istituzione della IKE SA, dei nonce scambiati durante lo scambio CREATE_CHILD_SA e del valore Diffie-Hellman (se i payload KE sono inclusi nello scambio CREATE_CHILD_SA).
Se uno scambio CREATE_CHILD_SA include un payload KEi, almeno una delle offerte SA DEVE includere il gruppo Diffie-Hellman del KEi. Il gruppo Diffie-Hellman del KEi DEVE essere un elemento del gruppo che l'iniziatore si aspetta che il risponditore accetti (possono essere proposti gruppi Diffie-Hellman aggiuntivi). Se il risponditore seleziona una proposta che utilizza un gruppo Diffie-Hellman diverso (oltre a NONE), il risponditore DEVE rifiutare la richiesta e indicare il proprio gruppo Diffie-Hellman preferito nel payload Notify INVALID_KE_PAYLOAD. Ci sono due ottetti di dati associati a questa notifica: il numero del gruppo Diffie-Hellman accettato in ordine big endian. In caso di tale rifiuto, lo scambio CREATE_CHILD_SA fallisce e l'iniziatore probabilmente ritenterà lo scambio con una proposta Diffie-Hellman e un KEi nel gruppo che il risponditore ha indicato nel payload Notify INVALID_KE_PAYLOAD.
Il risponditore invia una notifica NO_ADDITIONAL_SAS per indicare che una richiesta CREATE_CHILD_SA è inaccettabile perché il risponditore non è disposto ad accettare altre Child SA su questa IKE SA. Questa notifica può essere utilizzata anche per rifiutare il rekey della IKE SA. Alcune implementazioni minime possono accettare solo una singola Child SA impostata nel contesto di uno scambio IKE iniziale e rifiutare qualsiasi tentativo successivo di aggiungerne altre.