Aller au contenu principal

3. DTLS Design Rationale and Overview (Fondements de conception et vue d'ensemble de DTLS)

3. DTLS Design Rationale and Overview (Fondements de conception et vue d'ensemble de DTLS)

La philosophie de conception de base de DTLS consiste à construire "TLS sur transport par datagramme". Le transport par datagramme n'exige ni ne fournit une livraison fiable ou ordonnée des données. Le protocole DTLS préserve cette propriété pour les données applicatives. Les applications telles que le streaming multimédia, la téléphonie Internet et les jeux en ligne utilisent le transport par datagramme pour la communication en raison de la nature sensible à la latence des données transportées. Le comportement de telles applications reste inchangé lorsque le protocole DTLS est utilisé pour sécuriser la communication, car le protocole DTLS ne compense pas le trafic de données perdu ou réordonné. Notez que bien que le streaming à faible latence et les jeux utilisent DTLS pour protéger les données (par exemple, pour la protection d'un canal de données WebRTC), la téléphonie utilise DTLS pour l'établissement des clés et le Secure Real-time Transport Protocol (Protocole de transport en temps réel sécurisé, SRTP) pour la protection des données [RFC5763].

TLS ne peut pas être utilisé directement sur les transports par datagramme pour les quatre raisons suivantes:

  1. TLS s'appuie sur un numéro de séquence implicite sur les enregistrements. Si un enregistrement n'est pas reçu, le destinataire utilisera le mauvais numéro de séquence lors de la tentative de suppression de la protection d'enregistrement des enregistrements suivants. DTLS résout ce problème en ajoutant des numéros de séquence aux enregistrements.

  2. La poignée de main TLS est un protocole cryptographique en pas verrouillés. Les messages doivent être transmis et reçus dans un ordre défini; tout autre ordre est une erreur. La poignée de main DTLS inclut des numéros de séquence de messages pour permettre le réassemblage de messages fragmentés et la livraison ordonnée en cas de perte ou de réordonnancement de datagrammes.

  3. Les messages de poignée de main sont potentiellement plus grands que ce qui peut être contenu dans un seul datagramme. DTLS ajoute des champs aux messages de poignée de main pour prendre en charge la fragmentation et le réassemblage.

  4. Les protocoles de transport par datagramme sont susceptibles à un comportement abusif entraînant des attaques par déni de service (DoS) contre les non-participants. DTLS ajoute une vérification de routabilité de retour et DTLS 1.3 utilise le message HelloRetryRequest de TLS 1.3 (voir la section 5.1 pour plus de détails).