Passa al contenuto principale

15. Validazione dei messaggi

15. Validazione dei messaggi​

I client e i server DOVREBBERO scartare qualsiasi messaggio che contenga opzioni non consentite nel messaggio ricevuto. Per esempio, un'opzione IA non è consentita in un messaggio Information-request. I client e i server POSSONO scegliere di estrarre informazioni da tale messaggio se l'informazione è utile al destinatario.

Un server DEVE scartare qualsiasi messaggio Solicit, Confirm, Rebind o Information-request che riceve con un indirizzo di destinazione unicast.

La validazione dei messaggi basata sull'autenticazione DHCP è discussa nella sezione 21.4.2.

Se un server riceve un messaggio che contiene opzioni che non dovrebbe contenere (come un messaggio Information-request con un'opzione IA), a cui mancano opzioni che dovrebbe contenere, o che non è altrimenti valido, PUÒ inviare un Reply (o Advertise come appropriato) con un'opzione Server Identifier, un'opzione Client Identifier se una era inclusa nel messaggio e un'opzione Status Code con stato UnSpecFail.

15.1. Uso degli ID di transazione​

Il campo "transaction-id" contiene un valore usato da client e server per sincronizzare le risposte del server con i messaggi dei client. Un client DOVREBBE generare un numero casuale che non possa essere facilmente indovinato o previsto da usare come ID di transazione per ciascun nuovo messaggio che invia. Si noti che se un client genera identificatori di transazione facilmente prevedibili, potrebbe diventare più vulnerabile a certi tipi di attacchi da intrusi fuori percorso (off-path). Un client DEVE lasciare invariato l'ID di transazione nelle ritrasmissioni di un messaggio.

15.2. Messaggio Solicit​

I client DEVONO scartare qualsiasi messaggio Solicit ricevuto.

I server DEVONO scartare qualsiasi messaggio Solicit che non includa un'opzione Client Identifier o che includa un'opzione Server Identifier.

15.3. Messaggio Advertise​

I client DEVONO scartare qualsiasi messaggio Advertise ricevuto che soddisfi una qualsiasi delle seguenti condizioni:

  • il messaggio non include un'opzione Server Identifier.
  • il messaggio non include un'opzione Client Identifier.
  • il contenuto dell'opzione Client Identifier non corrisponde al DUID del client.
  • il valore del campo "transaction-id" non corrisponde al valore usato dal client nel suo messaggio Solicit.

I server e gli agenti di relay DEVONO scartare qualsiasi messaggio Advertise ricevuto.

15.4. Messaggio Request​

I client DEVONO scartare qualsiasi messaggio Request ricevuto.

I server DEVONO scartare qualsiasi messaggio Request ricevuto che soddisfi una qualsiasi delle seguenti condizioni:

  • il messaggio non include un'opzione Server Identifier.
  • il contenuto dell'opzione Server Identifier non corrisponde al DUID del server.
  • il messaggio non include un'opzione Client Identifier.

15.5. Messaggio Confirm​

I client DEVONO scartare qualsiasi messaggio Confirm ricevuto.

I server DEVONO scartare qualsiasi messaggio Confirm ricevuto che non includa un'opzione Client Identifier o che includa un'opzione Server Identifier.

15.6. Messaggio Renew​

I client DEVONO scartare qualsiasi messaggio Renew ricevuto.

I server DEVONO scartare qualsiasi messaggio Renew ricevuto che soddisfi una qualsiasi delle seguenti condizioni:

  • il messaggio non include un'opzione Server Identifier.
  • il contenuto dell'opzione Server Identifier non corrisponde all'identificatore del server.
  • il messaggio non include un'opzione Client Identifier.

15.7. Messaggio Rebind​

I client DEVONO scartare qualsiasi messaggio Rebind ricevuto.

I server DEVONO scartare qualsiasi messaggio Rebind ricevuto che non includa un'opzione Client Identifier o che includa un'opzione Server Identifier.

15.8. Messaggi Decline​

I client DEVONO scartare qualsiasi messaggio Decline ricevuto.

I server DEVONO scartare qualsiasi messaggio Decline ricevuto che soddisfi una qualsiasi delle seguenti condizioni:

  • il messaggio non include un'opzione Server Identifier.
  • il contenuto dell'opzione Server Identifier non corrisponde all'identificatore del server.
  • il messaggio non include un'opzione Client Identifier.

15.9. Messaggio Release​

I client DEVONO scartare qualsiasi messaggio Release ricevuto.

I server DEVONO scartare qualsiasi messaggio Release ricevuto che soddisfi una qualsiasi delle seguenti condizioni:

  • il messaggio non include un'opzione Server Identifier.
  • il contenuto dell'opzione Server Identifier non corrisponde all'identificatore del server.
  • il messaggio non include un'opzione Client Identifier.

15.10. Messaggio Reply​

I client DEVONO scartare qualsiasi messaggio Reply ricevuto che soddisfi una qualsiasi delle seguenti condizioni:

  • il messaggio non include un'opzione Server Identifier.
  • il valore del campo "transaction-id" nel messaggio non corrisponde al valore usato nel messaggio originale.

Se il client ha incluso un'opzione Client Identifier nel messaggio originale, il messaggio Reply DEVE includere un'opzione Client Identifier e il contenuto dell'opzione Client Identifier DEVE corrispondere al DUID del client; O, se il client non ha incluso un'opzione Client Identifier nel messaggio originale, il messaggio Reply NON DEVE includere un'opzione Client Identifier.

I server e gli agenti di relay DEVONO scartare qualsiasi messaggio Reply ricevuto.

15.11. Messaggio Reconfigure​

I server e gli agenti di relay DEVONO scartare qualsiasi messaggio Reconfigure ricevuto.

I client DEVONO scartare qualsiasi messaggio Reconfigure che soddisfi una qualsiasi delle seguenti condizioni:

  • il messaggio non è stato inviato in unicast al client.
  • il messaggio non include un'opzione Server Identifier.
  • il messaggio non include un'opzione Client Identifier che contenga il DUID del client.
  • il messaggio non contiene un'opzione Reconfigure Message e il msg-type deve essere un valore valido.
  • il messaggio include opzioni IA e il msg-type nell'opzione Reconfigure Message è INFORMATION-REQUEST.
  • il messaggio non include l'autenticazione DHCP:
    • il messaggio non contiene un'opzione di autenticazione.
    • il messaggio non supera la validazione di autenticazione eseguita dal client.

15.12. Messaggio Information-request​

I client DEVONO scartare qualsiasi messaggio Information-request ricevuto.

I server DEVONO scartare qualsiasi messaggio Information-request ricevuto che soddisfi una qualsiasi delle seguenti condizioni:

  • Il messaggio include un'opzione Server Identifier e il DUID nell'opzione non corrisponde al DUID del server.
  • Il messaggio include un'opzione IA.

15.13. Messaggio Relay-forward​

I client DEVONO scartare qualsiasi messaggio Relay-forward ricevuto.

15.14. Messaggio Relay-reply​

I client e i server DEVONO scartare qualsiasi messaggio Relay-reply ricevuto.