DTLS/SCTP Finished Auth Bug
authorRobin Seggelmann <seggelmann@fh-muenster.de>
Wed, 9 May 2012 17:28:41 +0000 (19:28 +0200)
committerDr. Stephen Henson <steve@openssl.org>
Fri, 1 Nov 2013 22:44:20 +0000 (22:44 +0000)
commit025f7dbdd18f8392f5bd58143b113ab6a0716f7a
treefdca3c685b4cbe61b4abb3b786a3b8c838a9447e
parent44f4934bdeddfa2cc1533feaa636d5978476dc88
DTLS/SCTP Finished Auth Bug

PR: 2808

With DTLS/SCTP the SCTP extension SCTP-AUTH is used to protect DATA and
FORWARD-TSN chunks. The key for this extension is derived from the
master secret and changed with the next ChangeCipherSpec, whenever a new
key has been negotiated. The following Finished then already uses the
new key.  Unfortunately, the ChangeCipherSpec and Finished are part of
the same flight as the ClientKeyExchange, which is necessary for the
computation of the new secret. Hence, these messages are sent
immediately following each other, leaving the server very little time to
compute the new secret and pass it to SCTP before the finished arrives.
So the Finished is likely to be discarded by SCTP and a retransmission
becomes necessary. To prevent this issue, the Finished of the client is
still sent with the old key.
(cherry picked from commit 9fb523adce6fd6015b68da2ca8e4ac4900ac2be2)
(cherry picked from commit b9ef52b07897f249a9fa44943dba33fba8fb2721)
ssl/d1_clnt.c
ssl/d1_srvr.c