Un server HTTPS può perdere accidentalmente la sua chiave privata?

23

Esistono casi noti di siti Web HTTPS che perdono la chiave privata del loro certificato SSL? È anche tecnicamente possibile che un amministratore di un sito Web non corretto configuri erroneamente un sito per inviare la chiave privata come parte della catena di certificati?

    
posta John Blatz 26.11.2018 - 23:23
fonte

4 risposte

37

Are there any known cases of HTTPS websites leaking the private key of their SSL certificate?

Sì. Il bug Heartbleed comportava perdite di memoria dal server HTTP tali che:

We attacked ourselves from outside, without leaving a trace. Without using any privileged information or credentials we were able steal from ourselves the secret keys used for our X.509 certificates, ...

A parte bug come quello,

Is it even technically possible for a bad website admin to misconfigure a site to send the private key as part of the certificate chain?

Certo. Se specifichi il file sbagliato, ad esempio, SSLCertificateChainFile , quindi Boom! Ecco la chiave privata.

Come sottolinea @duskwuff nei commenti, ci sono protezioni contro questo. Né Apache né NGINX invieranno una chiave PEM inclusa in un file di certificato; lo silenziano silenziosamente (che, sono pronto a scommettere, è una protezione messa in atto dopo un certo numero di eventi in cui le persone hanno fatto ciò che ho suggerito potrebbe funzionare).

Altre errate configurazioni, come una web root errata combinata con permessi allentati o eccessivi privilegi del web server, possono anche far trapelare la chiave, ma quelle errate configurazioni sono sia banali che estreme (ad esempio, devi davvero cercare di rompere le cose così male) .

L'operazione non è consigliata.

    
risposta data 26.11.2018 - 23:35
fonte
6

Sì, tramite errata configurazione o errori di configurazione non ancora noti. Non ripeterò il contenuto della risposta di @gowenfawr.

Vale la pena menzionare come un accenno che ci sono un numero di possibili errori di configurazione che non rilevano direttamente la chiave ma che potrebbero consentire a un utente malintenzionato di decifrare parti della comunicazione. Parte del lavoro verso TLS 1.3 mira a mitigare ciò rimuovendo il supporto per determinati cifrari e altre configurazioni potenzialmente insicure ( link ).

Allo stesso modo ci sono altre cose che possono causare la perdita di riservatezza; come la vulnerabilità SSL v2 nota come DROWN ( link ) dove precedentemente era noto che SSL v2 non era sicuro, ma molte installazioni lo lasciavano abilitato per ragioni di compatibilità.

Anche se non ideale, ciò ha portato alla possibilità di estrarre la chiave di sessione da un server che utilizzava le stesse chiavi o certificato, ma stava eseguendo SSL v2 tramite un padding oracle, anche esponendo il contenuto dei servizi TLS 1.2 usando lo stesso certificato (dopo aver osservato un numero di connessioni tra la vittima e il server).

DROWN shows that merely supporting SSLv2 is a threat to modern servers and clients. It allows an attacker to decrypt modern TLS connections between up-to-date clients and servers by sending probes to a server that supports SSLv2 and uses the same private key.

In termini di perdite dirette della chiave, puoi anche pubblicare la tua chiave privata su un server web configurato in modo errato o tramite un problema di directory trasversale (o simile)

    
risposta data 26.11.2018 - 23:52
fonte
1

Are there any known cases of HTTPS websites leaking the private key of their SSL certificate?

In senso stretto, una chiave privata dovrebbe disporre delle autorizzazioni dr-------- , con root:root . Quindi, solo l'utente root può leggere il certificato. Se questo non è configurato correttamente e il server Web ha accesso alla chiave privata, in alcune circostanze, ad esempio il server Web, viene compromesso. Quindi qui potremmo vedere la chiave privata essere "trapelata", inconsapevolmente dal server web. Questo, ovviamente, si applica a qualsiasi programma che abbia accesso in lettura alla chiave privata.

Is it even technically possible for a bad website admin to misconfigure a site to send the private key as part of the certificate chain?

Secondo la configurazione, l'ho fatto con Apache 2, no! Quindi, una delle configurazioni del mio server web comprende:

    SSLCertificateFile /etc/apache2/ssl/safesploit.com.cert.pem
    SSLCertificateKeyFile /etc/apache2/ssl/safesploit.com.key.pem
    SSLCertificateChainFile /etc/apache2/ssl/fullchain.pem

Quindi, mentre comprendo la tua preoccupazione per un "cattivo amministratore" che colloca la chiave privata all'interno del fullchain, semplicemente non è possibile all'interno di vaniglia di Apache 2, a meno che Apache non sia stato modificato per accettare questo tipo di configurazione.

Per contesto:

  • Chiavi pubbliche -r - r - r-- root root
  • Chiavi private -r -------- root root
risposta data 26.11.2018 - 23:41
fonte
1

Ho scoperto un difetto in Traefik non molto tempo fa, quando un endpoint dell'API stava perdendo la chiave privata per il loro certificato SSL (CVE-2018-15598).

link

    
risposta data 29.11.2018 - 13:43
fonte

Leggi altre domande sui tag