15. Message Validation (Validation des messages)
15. Message Validation (Validation des messages)
Les clients et les serveurs DEVRAIENT ignorer tout message contenant des options non autorisées dans le message reçu. Par exemple, une option IA n'est pas autorisée dans un message Information-request. Les clients et les serveurs PEUVENT choisir d'extraire des informations de ce message si l'information est utile au destinataire.
Un serveur DOIT ignorer tout message Solicit, Confirm, Rebind ou Information-request qu'il reçoit avec une adresse de destination unicast.
La validation des messages basée sur l'authentification DHCP est discutée dans la section 21.4.2.
Si un serveur reçoit un message qui contient des options qu'il ne devrait pas contenir (comme un message Information-request avec une option IA), qui omet des options qu'il devrait contenir, ou qui n'est pas valide pour une autre raison, il PEUT envoyer un Reply (ou Advertise selon le cas) avec une option Server Identifier, une option Client Identifier si l'une était incluse dans le message, et une option Status Code avec l'état UnSpecFail.
15.1. Use of Transaction IDs (Utilisation des ID de transaction)
Le champ « transaction-id » contient une valeur utilisée par les clients et les serveurs pour synchroniser les réponses du serveur avec les messages des clients. Un client DEVRAIT générer un nombre aléatoire qui ne peut pas être facilement deviné ou prédit pour utiliser comme ID de transaction pour chaque nouveau message qu'il envoie. Notez que si un client génère des identifiants de transaction facilement prévisibles, il peut devenir plus vulnérable à certains types d'attaques par des intrus hors-chemin (off-path). Un client DOIT laisser l'ID de transaction inchangé dans les retransmissions d'un message.
15.2. Solicit Message (Message Solicit)
Les clients DOIVENT ignorer tout message Solicit reçu.
Les serveurs DOIVENT ignorer tout message Solicit qui n'inclut pas d'option Client Identifier ou qui inclut une option Server Identifier.
15.3. Advertise Message (Message Advertise)
Les clients DOIVENT ignorer tout message Advertise reçu qui satisfait l'une des conditions suivantes :
- le message n'inclut pas d'option Server Identifier.
- le message n'inclut pas d'option Client Identifier.
- le contenu de l'option Client Identifier ne correspond pas au DUID du client.
- la valeur du champ « transaction-id » ne correspond pas à la valeur utilisée par le client dans son message Solicit.
Les serveurs et les agents de relais DOIVENT ignorer tout message Advertise reçu.
15.4. Request Message (Message Request)
Les clients DOIVENT ignorer tout message Request reçu.
Les serveurs DOIVENT ignorer tout message Request reçu qui satisfait l'une des conditions suivantes :
- le message n'inclut pas d'option Server Identifier.
- le contenu de l'option Server Identifier ne correspond pas au DUID du serveur.
- le message n'inclut pas d'option Client Identifier.
15.5. Confirm Message (Message Confirm)
Les clients DOIVENT ignorer tout message Confirm reçu.
Les serveurs DOIVENT ignorer tout message Confirm reçu qui n'inclut pas d'option Client Identifier ou qui inclut une option Server Identifier.
15.6. Renew Message (Message Renew)
Les clients DOIVENT ignorer tout message Renew reçu.
Les serveurs DOIVENT ignorer tout message Renew reçu qui satisfait l'une des conditions suivantes :
- le message n'inclut pas d'option Server Identifier.
- le contenu de l'option Server Identifier ne correspond pas à l'identifiant du serveur.
- le message n'inclut pas d'option Client Identifier.
15.7. Rebind Message (Message Rebind)
Les clients DOIVENT ignorer tout message Rebind reçu.
Les serveurs DOIVENT ignorer tout message Rebind reçu qui n'inclut pas d'option Client Identifier ou qui inclut une option Server Identifier.
15.8. Decline Messages (Messages Decline)
Les clients DOIVENT ignorer tout message Decline reçu.
Les serveurs DOIVENT ignorer tout message Decline reçu qui satisfait l'une des conditions suivantes :
- le message n'inclut pas d'option Server Identifier.
- le contenu de l'option Server Identifier ne correspond pas à l'identifiant du serveur.
- le message n'inclut pas d'option Client Identifier.
15.9. Release Message (Message Release)
Les clients DOIVENT ignorer tout message Release reçu.
Les serveurs DOIVENT ignorer tout message Release reçu qui satisfait l'une des conditions suivantes :
- le message n'inclut pas d'option Server Identifier.
- le contenu de l'option Server Identifier ne correspond pas à l'identifiant du serveur.
- le message n'inclut pas d'option Client Identifier.
15.10. Reply Message (Message Reply)
Les clients DOIVENT ignorer tout message Reply reçu qui satisfait l'une des conditions suivantes :
- le message n'inclut pas d'option Server Identifier.
- la valeur du champ « transaction-id » dans le message ne correspond pas à la valeur utilisée dans le message original.
Si le client a inclus une option Client Identifier dans le message original, le message Reply DOIT inclure une option Client Identifier et le contenu de l'option Client Identifier DOIT correspondre au DUID du client ; OU, si le client n'a pas inclus d'option Client Identifier dans le message original, le message Reply NE DOIT PAS inclure d'option Client Identifier.
Les serveurs et les agents de relais DOIVENT ignorer tout message Reply reçu.
15.11. Reconfigure Message (Message Reconfigure)
Les serveurs et les agents de relais DOIVENT ignorer tout message Reconfigure reçu.
Les clients DOIVENT ignorer tout message Reconfigure qui satisfait l'une des conditions suivantes :
- le message n'a pas été envoyé en unicast au client.
- le message n'inclut pas d'option Server Identifier.
- le message n'inclut pas d'option Client Identifier contenant le DUID du client.
- le message ne contient pas d'option Reconfigure Message et le msg-type doit être une valeur valide.
- le message inclut des options IA et le msg-type dans l'option Reconfigure Message est INFORMATION-REQUEST.
- le message n'inclut pas l'authentification DHCP :
- le message ne contient pas d'option d'authentification.
- le message ne réussit pas la validation d'authentification effectuée par le client.
15.12. Information-request Message (Message Information-request)
Les clients DOIVENT ignorer tout message Information-request reçu.
Les serveurs DOIVENT ignorer tout message Information-request reçu qui satisfait l'une des conditions suivantes :
- Le message inclut une option Server Identifier et le DUID dans l'option ne correspond pas au DUID du serveur.
- Le message inclut une option IA.
15.13. Relay-forward Message (Message Relay-forward)
Les clients DOIVENT ignorer tout message Relay-forward reçu.
15.14. Relay-reply Message (Message Relay-reply)
Les clients et les serveurs DOIVENT ignorer tout message Relay-reply reçu.