Come posso mantenere riservata la chiave ssl per il nostro sito Web?


12

Voglio mantenere riservata la nostra chiave SSL per il nostro sito Web. È memorizzato su 2 chiavette USB, una in una cassetta di sicurezza e una che tengo al sicuro. E poi sono l'unico che lo applica al server Web in modo che sia totalmente sicuro.

Solo che ...

Almeno su IIS, è possibile esportare la chiave. Quindi chiunque sia un amministratore può quindi ottenere una copia della chiave. C'è un modo per aggirare questo? O per definizione tutti gli amministratori hanno pieno accesso a tutte le chiavi?

Aggiornamento: ho amministratori di sistema di cui mi fido completamente. Ciò che ha portato a questo è uno di loro ha lasciato (avevano un'ora di pendolarismo per la nostra compagnia, un pendolarismo di 5 minuti per quello nuovo). Mentre mi fido di questo individuo, così come disabilitiamo il suo account di Active Directory quando qualcuno lascia, ho pensato che avremmo avuto un modo per assicurarci che non conservassero la possibilità di usare il nostro SSL.

E ciò che mi ha colpito più facilmente è se sono l'unico che ce l'ha. Il nostro certificato scade a gennaio, quindi questo era il momento di cambiare la pratica se potessimo. Sulla base delle risposte sembra che non possiamo.

Quindi questo porta a una nuova domanda: quando qualcuno che ha accesso al certificato parte, è pratica normale ottenere un nuovo certificato e far revocare quello esistente. O se la persona che se ne è andata è degna di fiducia, allora continuiamo con il certificato che abbiamo?


5
Anche se il server che hai utilizzato non ti ha permesso di esportarlo, deve comunque essere in memoria e può quindi essere estratto. L'unica opzione che vedo è l'utilizzo di un modulo crittografico hardware, come una smartcard essere tre solo uno con la chiave, ma chiunque abbia accesso fisico alla macchina potrebbe rubarlo. Puoi comunque revocarlo se viene rubato.
user2313067

27
Se non ti fidi dei tuoi amministratori, hai un problema con le risorse umane.
Michael Hampton

5
Perché hai copiato la chiave su quei supporti USB in primo luogo? La chiave segreta utilizzata con SSL non deve trovarsi in luoghi diversi dal server in cui viene utilizzata. (Può ovviamente essere incluso nelle copie di backup del server, ma è meno importante eseguire il backup di quella chiave rispetto agli altri dati sul server, poiché puoi sempre generare una nuova chiave segreta e farla firmare come hai fatto con il vecchio.)
Kasperd,

Non sono un esperto in questo settore, ma non esistono moduli di codifica hardware che contengono una chiave che rimane al loro interno e solo le richieste di firma entrano e le firme escono? Saldare o incollare uno nel server potrebbe essere la soluzione.
matega,

Risposte:


26

Una persona con accesso amministrativo (o spesso persino fisico) a un server sarà in grado di estrarre la chiave privata. Sia attraverso l'esportazione, lo sniffing della memoria o altri trucchi del genere.

I tuoi amministratori hanno accesso alle chiavi private dei tuoi server web. Accettalo come un fatto e aggira quello. Se i tuoi amministratori di sistema non sono affidabili, potresti aver bisogno di amministratori di sistema migliori o almeno un numero inferiore di amministratori di sistema con accesso ai server Web. Se si tratta di una paranoia di sicurezza della gestione, potrebbe esserci un problema più profondo relativo alla loro capacità di fidarsi di un amministratore di sistema.

Questo non vuol dire che dovresti consentire a tutti di avere accesso alla chiave privata. Ci dovrebbe essere sempre la necessità di accedere prima che l'accesso sia concesso. Con questo in mente, prenderai misure estreme per assicurarti che un amministratore di sistema con il pieno controllo di un sito Web non possa esportare la chiave privata, ma possa comunque manipolare il sito Web stesso in un numero qualsiasi di modi quasi non rintracciabili? Siamo tornati alla fiducia qui, e penso che questo sia il nocciolo del problema che deve essere affrontato.


2
+1 per "I tuoi amministratori hanno accesso alle chiavi private dei tuoi server web. Accettalo come dato di fatto e aggiralo". Domande sull'effetto di "Come posso impedire a persone con diritti di amministratore di eseguire X?" indica un problema più profondo per me. O troppo diffidente, o troppo lassista nel dare i diritti di amministratore.
Brandon,

2
Ho aggiornato con il motivo per cui ho chiesto. Non è un problema con gli amministratori di sistema, è un desiderio di seguire le migliori pratiche.
David Thielen,

11

Quando importi la chiave, hai la possibilità di contrassegnarla come non esportabile. Ciò ti impedirà di utilizzare IIS o il certificato MMC per esportarlo. Almeno, lo rende un po 'più difficile.

Tuttavia, se dispongono di un account amministratore sulla macchina o se hanno accesso fisico ad esso, saranno comunque in grado di ottenere la chiave con altri mezzi.



0

È qui che può essere utile una "CA intermedia".

La "CA principale" in questo esempio di seguito è di proprietà di una società SSL e non di te.

Non hai il controllo diretto delle chiavi create dalla CA principale, quindi se una chiave firmata dalla CA principale viene compromessa, devi esaminarle per revocarla.

Ma:

Root CA (SSL company)
 |
 +-Intermediate CA (You)
   |
   +-Server Key for site

Se si inserisce un'altra CA nel mezzo e si fa firmare al proprio certificato SSL acquistato il proprio certificato CA anziché firmare direttamente il proprio certificato del server, è possibile mantenere il controllo dei certificati del server di seguito ed emettere certificati di revoca o fare qualsiasi altra cosa se le cose sottostanti sono compromesse .

Tieni la chiave privata della CA intermedia per te e gli amministratori non devono vederla.

Puoi anche fare questo:

Root CA (SSL company)
 |
 +-Intermediate CA (You)
   |
   +-Server Key 1 for site
   +-Server Key 2 for site 
   +-Server Key 3 for site

È possibile prepararsi al compromesso e generare in anticipo i certificati, in modo da poter passare rapidamente nel caso in cui venga revocata una singola chiave. Gli amministratori non ottengono le chiavi per 2 o 3 fino a un compromesso di 1. Puoi mettere un avviso sul tuo sito su questo schema e questo comunicherà anche ai tuoi amministratori che sei pronto in caso di compromesso e che affari divertenti sul loro fine non distruggerà il tuo sito.


1
Ciò non causerebbe avvisi SSL per gli utenti per una CA non attendibile?
Ceejayoz,

1
Immagino che funzionerebbe bene solo se è possibile installare la CA come certificato attendibile nel browser dell'utente, ad esempio in un'impostazione Intranet aziendale. Sapevo che qualcosa non andava nel mio brillante schema. :(
LawrenceC,

0

Esistono molti articoli che suggeriscono di archiviare le chiavi private in un luogo diverso dal server, ma quelle chiavi sono per i certificati di firma del codice . Immagina di avere le chiavi su un computer offline a cui solo tu hai accesso, viene scritto del software, ottieni la chiave privata dal server offline, firma il codice e quindi non hai più bisogno della chiave privata finché non devi firmare di nuovo il codice.

La migliore soluzione è sempre stata e continuerà a conservare la chiave offline. Il modo in cui lo fai dipende completamente da te (ci sono alcuni metodi), ricorda di tenerlo ben custodito in un ufficio sicuro o da qualche parte che non è facile per qualcuno da mettere in tasca.

Maggiori informazioni su: https://www.thesslstore.com/blog/heres-what-happens-when-your-private-key-gets-compromised/

Al contrario, i certificati SSL sono per i siti Web per consentire la comunicazione HTTPS: la chiave privata è necessaria durante ogni stretta di mano dal server web. Pertanto, archiviarlo offline non funzionerà.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.