
OpenSSL DTLS CVE-2014-0221 Remote-Dienstverweigerung
OpenSSL DTLS CVE-2014-0221 Remote Denial of Service
Datagramm-Transportschichtsicherheit. *Physische Schicht
Datagramm-Unterstützung auf TCP-Ebene: TLS
Datagramm-Unterstützung auf UDP-Ebene: DTLS: Durch geeignete Modifikation des Handshake-Prozesses werden Schlüsselaustausch, Authentifizierung, Festlegung von Sicherheitsparametern usw. abgewickelt; durch Timeout und erneute Übertragung wird eine stabile sichere Kommunikation für das verbindungslose UDP unterstützt
DTLS ist die Abkürzung für Datagram Transport Layer Security und ein Protokoll zur Bereitstellung von Sicherheit in der Kommunikation auf Basis von UDP (User Datagram Protocol). TLS (Transport Layer Security) wird hauptsächlich verwendet, um Sicherheit in der Kommunikation auf Basis von TCP (Transmission Control Protocol) bereitzustellen. Da UDP jedoch ein verbindungsloses, paketbasiertes Protokoll ist, ist es schwierig, TLS unverändert anzuwenden. DTLS wurde entwickelt, um Sicherheit in dieser UDP-basierten Kommunikation bereitzustellen.
DTLS ist der Grundstruktur von TLS sehr ähnlich, weist jedoch einige wesentliche Unterschiede auf:
Datagramm-Unterstützung: DTLS wurde für UDP, ein datagrammbasiertes Protokoll, entwickelt. TLS ist für das verbindungsorientierte TCP optimiert und wurde daher angepasst, um auf UDP datagrammweise arbeiten zu können.
Geeignete Modifikation des Handshake-Prozesses: DTLS verwendet wie TLS den Handshake-Prozess, um die Authentifizierung der Kommunikation, den Schlüsselaustausch, die Festlegung von Sicherheitsparametern usw. abzuwickeln. Da es jedoch auf UDP zurückzuführen ist, dass Pakete verloren gehen oder sich die Reihenfolge ändern kann, wurden in DTLS Mechanismen ergänzt, die mit solchen Situationen umgehen können.
Timeout und erneute Übertragung: DTLS enthält Timeout- und Neuübertragungsmechanismen für den Fall, dass Pakete verloren gehen oder eine erneute Übertragung erforderlich ist. Dies gleicht die Verbindungslosigkeit von UDP aus und ermöglicht eine stabile sichere Kommunikation.
Sicherheitsaspekte: DTLS verwendet dasselbe Sicherheitsprotokoll wie TLS, um Vertraulichkeit, Integrität und Authentifizierung der Daten zu gewährleisten. Daher können Daten auch in UDP-basierten Anwendungen sicher übertragen werden.
DTLS wird hauptsächlich eingesetzt, um in Umgebungen, die UDP verwenden – etwa VoIP (Sprachtelefonie), Multimedia-Streaming und Gameserver – Sicherheit bereitzustellen.
Warum OpenSSL: DTLS: TLS auf UDP-Basis; DTLS 1.0 wurde in OpenSSL implementiert
Schwachstelle, die es ermöglicht, über einen Man-in-the-Middle-Angriff (MITM) durch manipulierte Handshake-Übertragungen die übertragenen Daten zu entschlüsseln und die zwischen Server/Client übertragenen Daten zu manipulieren (CVE-2014-0224)
Schwachstelle, die einen Denial-of-Service-Angriff ermöglicht, indem ein abnormaler DTLS-Handshake an einen OpenSSL-DTLS-Client gesendet wird (CVE-2014-0221)
Schwachstelle, die die Ausführung beliebigen Codes ermöglicht, indem ein abnormales DTLS-Fragment an einen OpenSSL-DTLS-Client oder -Server gesendet wird (CVE-2014-0195)
Schwachstelle, die aufgrund eines Fehlers in der Funktion do_ssl3_write die Ausführung beliebigen Codes ermöglicht (CVE-2014-0198)
Diese Schwachstelle tritt in OpenSSL 1.0.0 und 1.0.1 auf, wenn die Option SSL_MODE_RELEASE_BUFFERS aktiviert ist (diese Option ist standardmäßig deaktiviert)
Schwachstelle, die es einem Angreifer aufgrund einer Race Condition in der Funktion ssl3_read_bytes ermöglicht, Daten in die Sitzung einzuschleusen oder einen Denial-of-Service-Angriff durchzuführen (CVE-2010-5298)
Diese Schwachstelle tritt in Multithread-Anwendungen mit OpenSSL 1.0.0 und 1.0.1 auf, wenn die Option SSL_MODE_RELEASE_BUFFERS aktiviert ist (diese Option ist standardmäßig deaktiviert)
Schwachstelle, die einen Denial-of-Service-Angriff auf OpenSSL-TLS-Clients ermöglicht, bei denen anonyme ECDH-Ciphersuites aktiviert sind (CVE-2014-3470)
OpenSSL 0.9.8-Reihe
OpenSSL 1.0.0-Reihe
OpenSSL 1.0.1-Reihe
Davon ist CVE-2014-0221 die Schwachstelle, die einen Denial-of-Service-Angriff ermöglicht, indem ein abnormaler DTLS-Handshake an einen OpenSSL-DTLS-Client gesendet wird
< DTLS-Denial-of-Service-Schwachstelle (CVE-2014-0221) >
o DTLS (Datagram Transport Layer Security) ist ein Protokoll, das auf TLS basiert und die Übertragung verschlüsselter Datagramme ermöglicht
o Wenn eine abnormale DTLS-Handshake-Nachricht (DTLS-Hello-Nachricht) an einen DTLS-Client gesendet wird, kann OpenSSL in einen rekursiven Zustand geraten, sodass ein Denial-of-Service-Angriff möglich ist
if(!s->server && s->d1->r_msg_hdr.frag_off == 0 && wire[0] == SSL3_MT_HELLO_REQUEST) {
if(wire[1] == 0 && wire[2] == 0 && wire[3] == 0) {
if(s->msg_callback)
s->msg_callback(0, s->version, SSL3_RT_HANDSHAKE,
wire, DTLS1_HM_HEADER_LENGTH, s, s->msg_callback_arg);
s->init_num = 0;
return dtls1_get_message_fragment(s, st1, stn, max, ok);
}
else {
al=SSL_AD_UNEXPECTED_MESSAGE;
SSLerr(SSL_F_DTLS1_GET_MESSAGE_FRAGMENT,SSL_R_UNEXPECTED_MESSAGE);
goto f_err;
}
}