2. IKE Protocol Details and Variations
2. IKE Protocol Details and Variations
IKE écoute et envoie normalement sur le port UDP 500, mais les messages IKE peuvent aussi être reçus sur le port UDP 4500 avec un format légèrement différent (voir la Section 2.23). Comme UDP est un protocole de datagrammes (non fiable), IKE intègre la récupération après erreurs de transmission, y compris perte, rejeu et falsification de paquets. IKE est conçu pour fonctionner tant que (1) au moins un paquet d'une série de retransmissions atteint sa destination avant expiration; et (2) le canal n'est pas tellement rempli de paquets falsifiés et rejoués qu'il épuise les capacités réseau ou CPU de l'une des extrémités. Même sans ces exigences minimales, IKE doit échouer proprement (comme si le réseau était rompu).
Bien que les messages IKEv2 soient courts, ils contiennent des structures sans borne supérieure stricte (notamment certificats numériques), et IKEv2 n'a pas de mécanisme de fragmentation des grands messages. IP définit une fragmentation des messages UDP surdimensionnés, mais les tailles maximales varient selon les implémentations. De plus, la fragmentation IP expose à des attaques par déni de service [DOSUDPPROT]. Enfin, certains NAT ou pare-feu peuvent bloquer les fragments IP.
Toutes les implémentations IKEv2 DOIVENT pouvoir envoyer, recevoir et traiter des messages IKE jusqu'à 1280 octets, et DEVRAIENT le faire jusqu'à 3000 octets. Elles doivent connaître la taille maximale UDP supportée et PEUVENT raccourcir les messages en omettant certains certificats ou propositions de suite cryptographique. L'usage des formats « Hash and URL » plutôt que l'inclusion de certificats évite la plupart des problèmes. Si les recherches d'URL ne sont possibles qu'après établissement du Child SA, des problèmes de récursion peuvent empêcher cette technique.
La charge UDP de tous les paquets contenant des messages IKE envoyés sur le port 4500 DOIT commencer par un préfixe de quatre zéros; sinon le récepteur ne sait pas les traiter.
Contents
- 2.1. Use of Retransmission Timers
- 2.2. Use of Sequence Numbers for Message ID
- 2.3. Window Size for Overlapping Requests
- 2.4. State Synchronization and Connection Timeouts
- 2.5. Version Numbers and Forward Compatibility
- 2.6. IKE SA SPIs and Cookies
- 2.6.1. Interaction COOKIE et INVALID_KE_PAYLOAD (voir Section 2.6)
- 2.7. Cryptographic Algorithm Negotiation
- 2.8. Rekeying
- 2.8.1–2.8.3 (voir Section 2.8)
- 2.9. Traffic Selector Negotiation
- 2.9.1–2.9.2 (voir Section 2.9)
- 2.10. Nonces
- 2.11. Address and Port Agility
- 2.12. Reuse of Diffie-Hellman Exponentials