7. Considerazioni sulla sicurezza (Security Considerations)
Si applicano le considerazioni sulla sicurezza nella Sezione 11 della [RFC7252], la specifica CoAP.
L'osservazione delle risorse può aumentare drasticamente gli effetti negativi degli attacchi di amplificazione. Cioè, non solo i messaggi di notifica possono essere molto più grandi del messaggio di richiesta, ma la natura del protocollo può causare la generazione di un numero significativo di notifiche. Senza autenticazione del client, un server DEVE quindi limitare rigorosamente il numero di notifiche che invia tra la ricezione di riconoscimenti che confermano l'effettivo interesse del client per i dati; vale a dire, qualsiasi notifica inviata in messaggi non confermabili DEVE essere intervallata da messaggi confermabili. Si noti che un aggressore potrebbe comunque falsificare i riconoscimenti se i messaggi confermabili sono sufficientemente prevedibili.
Il protocollo segue un approccio "best-effort" per mantenere sincronizzato lo stato osservato da un client e lo stato effettivo della risorsa su un server. Ciò potrebbe comportare che il client e il server non siano sincronizzati a volte. A seconda della sensibilità della risorsa osservata, operare su un vecchio stato potrebbe rappresentare una minaccia alla sicurezza. Il client deve quindi fare attenzione a non utilizzare una rappresentazione dopo la scadenza del suo Max-Age e il server deve impostare l'opzione Max-Age su un valore ragionevole.
Come con qualsiasi protocollo che crea stato, gli aggressori possono tentare di esaurire le risorse che il server ha a disposizione per mantenere l'elenco degli osservatori per ogni risorsa. I server potrebbero voler applicare controlli di accesso a questa creazione di stato. Come comportamento degradato, il server può sempre ripiegare sull'elaborazione della richiesta come una normale richiesta GET (senza un'opzione Observe) se non è disposto o non è in grado di aggiungere un client all'elenco degli osservatori di una risorsa, anche se le risorse di sistema sono esaurite o prossime all'esaurimento.
Gli intermediari devono fare attenzione a garantire che le notifiche non possano essere utilizzate per creare un ciclo. Un modo semplice per interrompere qualsiasi ciclo è utilizzare cache per l'inoltro delle notifiche negli intermediari.
Le risorse possono essere osservate tramite CoAP protetto da Datagram Transport Layer Security (DTLS) utilizzando una qualsiasi delle modalità di sicurezza descritte nella Sezione 9 della RFC 7252. L'uso di DTLS è indicato dallo schema URI "coaps". Tutte le notifiche risultanti da una richiesta GET con un'opzione Observe DEVONO essere restituite all'interno della stessa epoca della stessa connessione della richiesta.