
OpenSSL DTLS CVE-2014-0221 Negazione remota
OpenSSL DTLS CVE-2014-0221 Negazione Remota
Sicurezza del livello di trasporto datagram. *Livello fisico
Supporto datagram a livello TCP: TLS
Supporto datagram a livello UDP: DTLS: gestisce scambio di chiavi, autenticazione, impostazione parametri di sicurezza, ecc., attraverso opportune modifiche del processo di Handshake; supporta una comunicazione sicura e affidabile su UDP, che ha caratteristiche non connesse, tramite timeout e ritrasmissioni.
DTLS è l'acronimo di Datagram Transport Layer Security, un protocollo per fornire sicurezza nelle comunicazioni basate su UDP (User Datagram Protocol). TLS (Transport Layer Security) è principalmente utilizzato per fornire sicurezza nelle comunicazioni basate su TCP (Transmission Control Protocol), ma poiché UDP è un protocollo non orientato alla connessione e basato su pacchetti, è difficile applicare TLS direttamente. Per fornire sicurezza in tali comunicazioni basate su UDP, è stato progettato DTLS.
DTLS è molto simile nella struttura di base a TLS, ma presenta alcune differenze principali:
Supporto datagram: DTLS è progettato per adattarsi a UDP, un protocollo basato su datagram. TLS è ottimizzato per TCP orientato alla connessione, quindi è stato modificato per funzionare in unità di datagram per l'applicazione su UDP.
Modifica opportuna del processo Handshake: DTLS, come TLS, utilizza il processo Handshake per gestire l'autenticazione della comunicazione, lo scambio di chiavi, l'impostazione dei parametri di sicurezza, ecc. Tuttavia, a causa della natura di UDP in cui possono verificarsi perdite di pacchetti o variazioni di ordine, sono stati aggiunti meccanismi in DTLS per far fronte a queste situazioni.
Timeout e ritrasmissione: DTLS include meccanismi di timeout e ritrasmissione per gestire la perdita di pacchetti o la necessità di ritrasmissione. Ciò compensa la natura non connessa di UDP, consentendo una comunicazione sicura e affidabile.
Considerazioni sulla sicurezza: DTLS utilizza gli stessi protocolli di sicurezza di TLS per garantire riservatezza, integrità e autenticazione dei dati. Pertanto, può trasmettere dati in modo sicuro anche in applicazioni basate su UDP.
DTLS viene utilizzato principalmente per fornire sicurezza in ambienti che utilizzano UDP, come VoIP (chiamate vocali), streaming multimediale, server di gioco, ecc.
Perché OpenSSL? DTLS: TLS basato su UDP, DTLS 1.0 è stato implementato in OpenSSL.
Vulnerabilità che consente di decrittare i dati trasmessi e manipolare i dati tra server/client tramite un attacco Man-in-the-Middle (MITM) con handshake manipolato (CVE-2014-0224)
Vulnerabilità che consente un attacco denial of service inviando un handshake DTLS anomalo a un client OpenSSL DTLS (CVE-2014-0221)
Vulnerabilità che consente l'esecuzione di codice arbitrario inviando un frammento DTLS anomalo a un client o server OpenSSL DTLS (CVE-2014-0195)
Vulnerabilità che consente l'esecuzione di codice arbitrario a causa di un difetto nella funzione do_ssl3_write (CVE-2014-0198)
Tale vulnerabilità si verifica in OpenSSL 1.0.0 e 1.0.1 quando l'opzione SSL_MODE_RELEASE_BUFFERS è attivata (tale opzione è disattivata per impostazione predefinita)
Vulnerabilità che consente a un attaccante di iniettare dati nella sessione o effettuare un attacco denial of service a causa di una race condition nella funzione ssl3_read_bytes (CVE-2010-5298)
Tale vulnerabilità si verifica in applicazioni multithread che utilizzano OpenSSL 1.0.0 e 1.0.1 quando l'opzione SSL_MODE_RELEASE_BUFFERS è attivata (tale opzione è disattivata per impostazione predefinita)
Vulnerabilità che può causare un attacco denial of service a un client TLS OpenSSL con cipher suite ECDH anonime attivate (CVE-2014-3470)
Versioni OpenSSL 0.9.8
Versioni OpenSSL 1.0.0
Versioni OpenSSL 1.0.1
Tra questi, CVE-2014-0221 è la vulnerabilità che consente un attacco denial of service inviando un handshake DTLS anomalo a un client OpenSSL DTLS
< Vulnerabilità denial of service DTLS (CVE-2014-0221) >
o DTLS (Datagram Transport Layer Security) è un protocollo basato su TLS per la trasmissione di datagram crittografati
o Se viene inviato un messaggio di handshake DTLS anomalo (messaggio DTLS Hello) a un client DTLS, OpenSSL è implementato in modo da poter entrare in uno stato ricorsivo, consentendo un attacco denial of service
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;
}
}