it-swarm.dev

Implicazioni del certificato SSL scadute

Quali sono le implicazioni di sicurezza di un certificato SSL scaduto? Ad esempio, se un certificato SSL da una CA attendibile è scaduto, il canale di comunicazione continuerà a rimanere sicuro?

36
Imran Azad

La comunicazione è ancora crittografata, ma il meccanismo di trust è compromesso. Ma di solito il fattore più importante è che gli utenti riceveranno brutti messaggi di avviso sulla sicurezza del tuo sito. Molti non daranno giudizi informati sull'integrità della connessione, andranno semplicemente a comprare cose altrove.

33
symcbean

Su base teorica, un certificato scaduto è un certificato che non deve più essere utilizzato. Ciò è reso esplicito in il profilo Internet X.509 nell'algoritmo di convalida del certificato (sezione 6.1.3, elemento a.2). In pratica, ciò ha due conseguenze:

  1. Il proprietario della chiave (il server) deve mantenere la sua chiave privata, beh, privata. Chiunque ottenga una copia della chiave privata può impersonare il server. Mantenere alcuni dati privati ​​non è del tutto immediato; per esempio. devi pensare a come esegui i tuoi backup. Una volta scaduto il certificato, il server potrebbe semplicemente smettere di preoccuparsi della privacy della chiave, poiché la chiave pubblica corrispondente non deve più essere utilizzata. Se tu (come client SSL ) decidi di accettare un certificato server scaduto, rischi di utilizzare una chiave pubblica per la quale ha la chiave privata corrispondente semplicemente abbandonato e raccolto da un cattivo.

  2. Esiste una cosa nota come revoca . Quando una CA revoca un certificato, dice: "sì, quella è la mia firma su quel certificato, ma tutti agiamo come se non l'avessi mai firmato". Una tipica situazione di revoca è quando la chiave privata è stata compromessa. La CA pubblica costantemente lo stato di revoca dei certificati emessi tramite CRL (elenchi di certificati revocati) e OCSP (un protocollo di controllo dello stato di revoca dedicato). Un client SSL dovrebbe ottenere informazioni sullo stato di revoca del certificato del server prima di accettarlo (in un contesto Web/HTTPS, la maggior parte dei client non si preoccupa). Il punto chiave è che una volta scaduto un certificato, la CA cessa di tenere traccia del suo stato di revoca (questo evita che il CRL cresca indefinitamente). Pertanto, un cliente che accetta un certificato scaduto si assume il rischio di utilizzare inconsapevolmente un certificato che è stato revocato nel corso della sua vita.

Come lo dice Peter Gutmann , la fine della data di validità in un certificato "indica il momento in cui devi pagare alla tua CA una tassa di rinnovo per ottenere la riemissione del certificato". Il modello di business della CA commerciale si basa intrinsecamente sul fatto che i clienti rispettino la data di fine validità. Questo spiega anche il motivo per cui i browser Web desiderano visualizzare avvisi spaventosi alla scadenza di un certificato.

32
Thomas Pornin

In senso pratico, guarderei la data di scadenza. Se la data è scaduta solo pochi giorni, allora, personalmente, mi fiderei.

Tuttavia, i certificati che sono trascorsi anni dalla data di scadenza potrebbero essere stati compromessi e non dovrebbero essere attendibili. (In effetti, se un sito che usi spesso viene improvvisamente viene fuori con un certificato che è scaduto da molto tempo, allora è una bella bandiera rossa.)

IE: se il certificato è scaduto ieri, la connessione non è in realtà meno sicura di quanto non fosse ieri. Non diventa automaticamente insicuro una volta trascorsa la data di scadenza.

Tuttavia, devi tracciare la linea da qualche parte ... ed è per questo che è la data di scadenza.

3
user606723

Un altro pensiero sulla scadenza di un certificato è la questione dell'algoritmo chiave asimmetrica stesso. Da una chiave pubblica è possibile determinare la chiave privata? Beh, la risposta è improbabile piuttosto che impossibile. Generalmente si presume che occorrerebbero un milione di anni prima che un computer trovi la chiave privata da una chiave pubblica. Ma cosa succede se si esegue un milione di computer per un anno. Potresti finire con la chiave privata e ora quando pensi di utilizzare quella chiave privata sarebbe davvero frustrante rendersi conto che l'utente ha rinnovato il certificato. (Ciò NON significa che abbia pagato denaro per conservare il vecchio certificato, ma significa che un nuovo certificato con una nuova chiave pubblica è in atto ora e il milione di computer dovrebbe iniziare il loro lavoro da zero)

A proposito, cosa succede se uso tutti questi computer per continuare a generare coppie di chiavi pubbliche e private e archiviare i due in una tabella a due colonne in un database. C'è qualche possibilità di leggere la chiave privata direttamente dalla chiave pubblica inserita?

1
krish