Aller au contenu principal

7. Considérations de sécurité (Security Considerations)

Les considérations de sécurité de la section 11 de la [RFC7252], la spécification CoAP, s'appliquent.

L'observation des ressources peut augmenter considérablement les effets négatifs des attaques par amplification. C'est-à-dire que non seulement les messages de notification peuvent être beaucoup plus volumineux que le message de demande, mais la nature du protocole peut entraîner la génération d'un nombre important de notifications. Sans authentification du client, un serveur DOIT donc limiter strictement le nombre de notifications qu'il envoie entre la réception d'accusés de réception confirmant l'intérêt réel du client pour les données ; c'est-à-dire que toutes les notifications envoyées dans des messages non confirmables DOIVENT être entrecoupées de messages confirmables. Notez qu'un attaquant peut toujours usurper les accusés de réception si les messages confirmables sont suffisamment prévisibles.

Le protocole suit une approche du mieux possible pour maintenir l'état observé par un client et l'état réel de la ressource sur un serveur synchronisés. Cela peut entraîner une désynchronisation du client et du serveur par moments. Selon la sensibilité de la ressource observée, opérer sur un état ancien peut constituer une menace pour la sécurité. Le client doit donc veiller à ne pas utiliser une représentation après l'expiration de son Max-Age, et le serveur doit définir l'option Max-Age sur une valeur raisonnable.

Comme avec tout protocole créant un état, les attaquants peuvent tenter d'épuiser les ressources dont dispose le serveur pour maintenir la liste des observateurs pour chaque ressource. Les serveurs peuvent souhaiter appliquer des contrôles d'accès à cette création d'état. En tant que comportement dégradé, le serveur peut toujours se replier sur le traitement de la demande comme une demande GET normale (sans option Observe) s'il ne veut pas ou ne peut pas ajouter un client à la liste des observateurs d'une ressource, y compris si les ressources système sont épuisées ou proches de l'épuisement.

Les intermédiaires doivent veiller à ce que les notifications ne puissent pas être utilisées pour créer une boucle. Un moyen simple de rompre les boucles consiste à utiliser des caches pour transférer les notifications dans les intermédiaires.

Les ressources peuvent être observées via CoAP sécurisé par Datagram Transport Layer Security (DTLS) en utilisant l'un des modes de sécurité décrits à la section 9 de la RFC 7252. L'utilisation de DTLS est indiquée par le schéma d'URI "coaps". Toutes les notifications résultant d'une demande GET avec une option Observe DOIVENT être renvoyées dans la même époque de la même connexion que la demande.