1.3. L'échange CREATE_CHILD_SA
1.3. L'échange CREATE_CHILD_SA
L'échange CREATE_CHILD_SA est utilisé pour créer de nouvelles SA enfants (Child SAs) et pour renouveler (rekey) à la fois les SA IKE et les SA enfants. Cet échange consiste en une seule paire requête/réponse, et une partie de sa fonction était désignée sous le nom d'échange de Phase 2 dans IKEv1. Il PEUT être initié par l'une ou l'autre extrémité de la SA IKE après la réalisation des échanges initiaux.
Une SA est renouvelée en créant une nouvelle SA puis en supprimant l'ancienne. Cette section décrit la première partie du renouvellement, la création de nouvelles SA ; la section 2.8 couvre la mécanique du renouvellement, y compris le transfert du trafic des anciennes SA vers les nouvelles et la suppression des anciennes SA. Les deux sections doivent être lues ensemble pour comprendre l'intégralité du processus de renouvellement.
L'une ou l'autre extrémité peut initier un échange CREATE_CHILD_SA, donc dans cette section le terme initiateur fait référence à l'extrémité qui initie cet échange. Une implémentation PEUT refuser toutes les requêtes CREATE_CHILD_SA au sein d'une SA IKE.
La requête CREATE_CHILD_SA PEUT éventuellement contenir une charge utile KE pour un échange Diffie-Hellman supplémentaire afin de permettre de plus fortes garanties de secret de transmission (forward secrecy) pour la SA enfant. Le matériel de clé pour la SA enfant est une fonction de SK_d établi lors de l'établissement de la SA IKE, des nonces échangés lors de l'échange CREATE_CHILD_SA et de la valeur Diffie-Hellman (si des charges utiles KE sont incluses dans l'échange CREATE_CHILD_SA).
Si un échange CREATE_CHILD_SA inclut une charge utile KEi, au moins l'une des offres SA DOIT inclure le groupe Diffie-Hellman du KEi. Le groupe Diffie-Hellman du KEi DOIT être un élément du groupe que l'initiateur s'attend à ce que le répondeur accepte (des groupes Diffie-Hellman supplémentaires peuvent être proposés). Si le répondeur sélectionne une proposition utilisant un groupe Diffie-Hellman différent (autre que NONE), le répondeur DOIT rejeter la requête et indiquer son groupe Diffie-Hellman préféré dans la charge utile de notification INVALID_KE_PAYLOAD. Deux octets de données sont associés à cette notification : le numéro du groupe Diffie-Hellman accepté, en ordre big endian. En cas de tel rejet, l'échange CREATE_CHILD_SA échoue, et l'initiateur réessaiera probablement l'échange avec une proposition Diffie-Hellman et un KEi dans le groupe que le répondeur a indiqué dans la charge utile de notification INVALID_KE_PAYLOAD.
Le répondeur envoie une notification NO_ADDITIONAL_SAS pour indiquer qu'une requête CREATE_CHILD_SA est inacceptable parce que le répondeur ne souhaite pas accepter d'autres SA enfants sur cette SA IKE. Cette notification peut également être utilisée pour rejeter le renouvellement de la SA IKE. Certaines implémentations minimales peuvent n'accepter qu'une seule mise en place de SA enfant dans le contexte d'un échange IKE initial et rejeter toute tentative ultérieure d'en ajouter davantage.