Passa al contenuto principale

3. DTLS Design Rationale and Overview (Motivazione del design e panoramica di DTLS)

3. DTLS Design Rationale and Overview (Motivazione del design e panoramica di DTLS)

La filosofia di design di base di DTLS consiste nel costruire "TLS su trasporto a datagrammi". Il trasporto a datagrammi non richiede né fornisce consegna affidabile o ordinata dei dati. Il protocollo DTLS preserva questa proprietà per i dati applicativi. Applicazioni come lo streaming multimediale, la telefonia Internet e il gaming online utilizzano il trasporto a datagrammi per la comunicazione a causa della natura sensibile al ritardo dei dati trasportati. Il comportamento di tali applicazioni rimane invariato quando il protocollo DTLS viene utilizzato per proteggere la comunicazione, poiché il protocollo DTLS non compensa il traffico dati perso o riordinato. Si noti che mentre lo streaming a bassa latenza e il gaming utilizzano DTLS per proteggere i dati (ad esempio, per la protezione di un canale dati WebRTC), la telefonia utilizza DTLS per lo stabilimento delle chiavi e il Secure Real-time Transport Protocol (Protocollo di trasporto in tempo reale sicuro, SRTP) per la protezione dei dati [RFC5763].

TLS non può essere utilizzato direttamente su trasporti a datagrammi per i seguenti quattro motivi:

  1. TLS si basa su un numero di sequenza implicito sui record. Se un record non viene ricevuto, il destinatario utilizzerà il numero di sequenza errato quando tenterà di rimuovere la protezione del record dai record successivi. DTLS risolve questo problema aggiungendo numeri di sequenza ai record.

  2. L'handshake TLS è un protocollo crittografico a passi bloccati. I messaggi devono essere trasmessi e ricevuti in un ordine definito; qualsiasi altro ordine è un errore. L'handshake DTLS include numeri di sequenza dei messaggi per abilitare il riassemblaggio dei messaggi frammentati e la consegna ordinata nel caso in cui i datagrammi vengano persi o riordinati.

  3. I messaggi di handshake sono potenzialmente più grandi di quanto possa essere contenuto in un singolo datagramma. DTLS aggiunge campi ai messaggi di handshake per supportare la frammentazione e il riassemblaggio.

  4. I protocolli di trasporto a datagrammi sono suscettibili a comportamenti abusivi che effettuano attacchi denial-of-service (DoS) contro i non partecipanti. DTLS aggiunge un controllo di raggiungibilità di ritorno e DTLS 1.3 utilizza il messaggio HelloRetryRequest di TLS 1.3 (vedere la sezione 5.1 per i dettagli).