2017-06-19 1 views
1

Je cherche à faire une application qui utilise DTLS, disons par exemple le chat vocal.
Le DTLS peut-il fonctionner pendant que des paquets de données son brutes sont perdus?
Certains paquets peuvent être perdus et la session DTLS fonctionne toujours correctement sans renvoyer les paquets perdus, ce qui empêche d'utiliser UDP (latence TCP avec encombrement).
Le son est toujours audible même si une partie des données audio est perdue.
Et la communication est-elle toujours sécurisée contre les attaques de relecture?DTLS peut-il encore fonctionner et être sécurisé si des paquets sont perdus?

Répondre

3

Oui, DTLS continue de fonctionner même si des paquets de données d'application sont perdus ou réorganisés par le réseau. Dans ce cas, les données en texte brut de ces paquets seront également perdues/réordonnées, correspondant exactement au comportement que vous verriez avec le texte en clair UDP. Le DTLS effectue des retransmissions pendant la phase de prise de contact, car les calculs cryptographiques ne nécessitent pas de paquets perdus. Mais cela n'affecte que les premiers paquets de l'échange. Le DTLS fournit une protection contre la relecture (décrite dans la section 3.3 de https://tools.ietf.org/html/rfc6347) de sorte qu'un attaquant (ou une erreur de routage) entraînant des arrivées de paquets dupliqués ne produise qu'un seul paquet en clair - les doublons sont supprimés. La protection contre la répétition est facultative selon cette spécification, mais toutes les implémentations dont je suis au courant la fournissent.

+0

Donc, si un paquet dans une session DTLS est perdu, un autre paquet peut arriver plus tard et être traité sans problèmes? ou si un paquet est perdu dans la session, une nouvelle session doit être faite? Je dis cela parce que beaucoup de crypto tls dépend d'un compteur, comme cbc ou gcm. –

+0

Aucune nouvelle session n'est requise, juste ce datagramme d'application unique sera perdu. –