TLS 1.0 è più sicuro di TLS 1.2?

17

Volevo solo confermarlo, il mio amministratore di sistema mi sta dicendo che TLS 1.0 è più sicuro di TLS 1.2 e mi ha detto che dovrei rimanere su TLS 1.0 ... è così preciso?

Ha affermato che TLS 1.2 è più vulnerabile e che TLS 1.0 è più sicuro. E che il bug Heartbleed è più vulnerabile da TLS 1.1. e TLS 1.2 e NOT da TLS 1.0.

Grazie!

    
posta olimits7 01.05.2015 - 16:50
fonte

4 risposte

49

Il tuo amministratore ha ricevuto vero errore (oppure c'è stato un errore di traduzione).

TLS 1.1 e 1.2 risolvono alcuni problemi in TLS 1.0 (ovvero la prevedibilità di IV per la crittografia CBC dei record). È possibile aggirare questo problema in TLS 1.0, ma dipende dall'entità con cui le implementazioni funzionano. Quindi, in questo senso, TLS 1.1 e 1.2 sono più sicuri di TLS 1.0, poiché sono più facili da implementare in modo sicuro.

Il cosiddetto "heartbleed" non è un difetto protocollo ; è un bug di implementazione presente in alcune versioni OpenSSL (OpenSSL è un'implementazione diffusa di SSL / TLS , ma certamente non l'unico). Quando una versione OpenSSL ha quel bug, lo ha per tutte le versioni del protocollo, incluso TLS 1.0. Pertanto, quando si applica il heartbleed, vale anche per TLS 1.0, TLS 1.1 e TLS 1.2. Quando non si applica, beh, non si applica.

La fonte della confusione è che il tuo amministratore (o le sue fonti) non sembrano comprendere o concettualizzare la differenza tra protocol e implementazioni . TLS 1.0 e TLS 1.2 sono protocolli descritti in standard pertinenti ( RFC 2246 e RFC 5246 , rispettivamente). Un protocollo dice quali byte devono essere inviati quando. Un'implementazione è un software che esegue il protocollo. OpenSSL è un'implementazione. Accade così che il bug "heartbleed" si verifichi nell'implementazione di una relativamente nuova funzionalità del protocollo ("l'estensione del battito cardiaco") che le implementazioni OpenSSL molto vecchie non conoscono. Pertanto, le implementazioni molto vecchie di OpenSSL non soffrono di problemi di cuore (sebbene abbiano altri problemi seri, essendo molto vecchie). Le stesse implementazioni molto vecchie non conoscono affatto TLS 1.1 e TLS 1.2. Quindi, nella mente del tuo amministratore, i due fatti indipendenti si sono uniti in un unico (ma imperfetto) mantra, che dice erroneamente che heartbleed è un problema di sicurezza di TLS 1.1 e 1.2.

    
risposta data 01.05.2015 - 17:06
fonte
23

TLS 1.0

TLS 1.0 era un aggiornamento da SSL 3.0 e le differenze non erano drammatiche, ma sono abbastanza significative che SSL 3.0 e TLS 1.0 non interagiscono.

Alcune delle principali differenze tra SSL 3.0 e TLS 1.0 sono:

  • Le funzioni di derivazione della chiave sono diverse
  • I MAC sono diversi - SSL 3.0 utilizza una modifica di un HMAC precedente mentre TLS 1.0 utilizza HMAC.
  • I messaggi finiti sono diversi
  • TLS ha più avvisi
  • TLS richiede il supporto DSS / DH

TLS 1.1

TLS 1.1 è un aggiornamento di TLS 1.0.

Le principali modifiche sono:

  • L'Implicit Initialization Vector (IV) è sostituito da un IV esplicito per la protezione dagli attacchi Cipher block chaining (CBC).
  • La gestione degli errori imbottiti viene modificata per utilizzare l'avviso bad_record_mac piuttosto che l'avviso decryption_failed per proteggere dagli attacchi CBC.
  • I registri IANA sono definiti per i parametri del protocollo
  • La chiusura anticipata non causa più la non riscossione di una sessione.

TLS 1.2

TLS 1.2 è basato su TLS 1.1, contiene una maggiore flessibilità.

Le principali differenze includono:

  • La combinazione MD5 / SHA-1 nella funzione pseudocasuale (PRF) è stata sostituita con i PRF specificati nella suite di crittografia.
  • La combinazione MD5 / SHA-1 nell'elemento con firma digitale è stata sostituita con un singolo hash. Gli elementi firmati includono un campo che specifica esplicitamente l'algoritmo hash utilizzato.
  • Si è verificata una sostanziale pulizia della capacità del client e del server di specificare quali algoritmi di hash e firma accetteranno.
  • Aggiunta del supporto per la crittografia autenticata con modalità dati aggiuntive.
  • La definizione di estensioni TLS e AES Cipher Suites sono state unite in
  • Verifica più rigorosa dei numeri di versione di EncryptedPreMasterSecret.
  • Molti dei requisiti sono stati rafforzati
  • La lunghezza di Verify_data dipende dalla suite di crittografia
  • Descrizione delle difese d'attacco Bleichenbacher / Dlima ripulite.

Questa risposta è basata sulle seguenti fonti:

risposta data 01.05.2015 - 16:54
fonte
5

Chiunque ti abbia detto questo probabilmente non capisce cosa sia Heartbleed: è una vulnerabilità specifica dell'implementazione (in alcune versioni di OpenSSL), non è realmente correlata alla versione di SSL / TLS.

Dal link :

The vulnerable versions have been out there for over two years now and they have been rapidly adopted by modern operating systems. A major contributing factor has been that TLS versions 1.1 and 1.2 came available with the first vulnerable OpenSSL version (1.0.1) and security community has been pushing the TLS 1.2 due to earlier attacks against TLS (such as the BEAST).

Questo non dice in alcun modo che TLS 1.1 e 1.2 siano più vulnerabili di 1.0. Significa solo che, le versioni precedenti di OpenSSL non avevano quel bug, ma non supportavano nemmeno TLS 1.1 e 1.2. Durante l'aggiornamento alle versioni più recenti di OpenSSL per ottenere supporto per le versioni più recenti di TLS (a causa di problemi con versioni precedenti di TLS), sono state apportate altre modifiche al codice di OpenSSL, inclusa l'introduzione di tale bug. Questo ha più a che fare con la timeline di sviluppo di OpenSSL rispetto alle versioni di TLS.

OpenSSL è stato risolto per questo particolare problema (quindi è consigliabile utilizzare una versione non vulnerabile).

In generale le versioni più recenti di TLS hanno miglioramenti di sicurezza, in particolare TLS 1.2 ha il supporto per pacchetti di crittografia che sono generalmente considerati più sicuri.

    
risposta data 01.05.2015 - 17:05
fonte
3

And that the Heartbleed bug is most vulnerable from TLS 1.1. and TLS 1.2 and NOT from TLS 1.0.

Potrebbe essere che il tuo amministratore abbia mescolato alcuni fatti: è vero che Heartbleed è collegato in qualche modo a TLS 1.1 e TLS 1.2. Ma la connessione è solo, che la versione 1.0.1 di OpenSSL non solo ha aggiunto il supporto per TLS 1.1 e TLS 1.2, ma ha anche introdotto il supporto per l'estensione Heartbeat. Il bug Heartbleed è stato causato da errori di implementazione nella gestione di questa estensione. E quindi solo i server più recenti che supportano TLS 1.1 e TLS 1.2 in cui sono interessati dal problema.

Il bug Heartbleed ora è corretto, ma il supporto per TLS 1.1 e TLS 1.2 e anche l'estensione Heartbeat è ancora lì. Inoltre, altri stack TLS supportano le nuove versioni TLS senza il supporto per l'estensione Heartbeat.

    
risposta data 01.05.2015 - 18:03
fonte

Leggi altre domande sui tag