core-wg / coap-tcp-tls

4 stars 5 forks source link

State explicitly how a UDP-to-TCP proxy would handle re-ordered incoming notifications #161

Closed cabo closed 7 years ago

cabo commented 7 years ago

(I hope this can be done in a sentence or two.)

brianraymor commented 7 years ago

@cabo - If this draft is going to start discussing UDP-TCP proxies, then your edit should also address #156, since Adam's scenario is specific to such cases:

Section A.3 is a bit more worrisome. I understand the desired optimization here, but where you reduce traffic in one direction, you run the risk of exploding it in the other. For example, consider a coap+tcp client connecting to a gateway that communicates with a CoAP-over-UDP server. When that client wants to check the health of its observations, it can send a Ping and receive a Pong that confirms that they are all alive and well. In order to be able to send a Pong that *means* “all your observations are alive and well,” the gateway has to verify that all the observations are alive and well. A simple implementation of a gateway will likely check on each observed resource individually when it gets a Ping, and then send a Pong after it hears back about all of them. So, as a client, I can set up, let’s say, two dozen observations through this gateway. Then, with each Ping I send, the gateway sends two dozen checks towards the server. This kind of message amplification attack is an awesome way to DoS both the gateway and the server. I believe the document needs a treatment of how UDP/TCP gateways handle notification health checks, along with techniques for mitigating this specific attack.

cabo commented 7 years ago

I think we covered Adam's scenario in closing #162.