Description
- Type: Non-conformance Bug
- Priority: Minor
Non-conformance Bug
Version: development branch
Expected behavior
The DTLS RFC specifies the following requirement regarding the handling invalid records :
Unlike TLS, DTLS is resilient in the face of invalid records (e.g., invalid formatting, length, MAC, etc.). In general, invalid records SHOULD be silently discarded, thus preserving the association; however, an error MAY be logged for diagnostic purposes. Implementations which choose to generate an alert instead, MUST generate fatal level alerts to avoid attacks where the attacker repeatedly probes the implementation to see how it responds to various types of error. Note that if DTLS is run over UDP, then any implementation which does this will be extremely susceptible to denial-of-service (DoS) attacks because UDP forgery is so easy. Thus, this practice is NOT RECOMMENDED for such transports.
Actual behavior
When TinyDTLS expects a ClientKeyExchange message but instead receives a record with the content type set to ALERT. It responds with a warning-level \dmsg{ALERT} (Close Notify)
I have attached the handshake trace for the mentioned non-conformance.
capture.zip
Description
Non-conformance Bug
Version: development branch
Expected behavior
The DTLS RFC specifies the following requirement regarding the
handling invalid records:Actual behavior
When TinyDTLS expects a ClientKeyExchange message but instead receives a record with the content type set to ALERT. It responds with a warning-level \dmsg{ALERT} (Close Notify)
I have attached the handshake trace for the mentioned non-conformance.
capture.zip