Se seguo il ragionamento di un collega, sembra che non dovresti mai eseguire Apache Webserver o Tomcat su un server Windows se vuoi mantenere sicuro il certificato https.
Lasciatemi spiegare prima che questa domanda si evolva in una battaglia tra troll Windows e Linux.
Ad esempio, quando si utilizza Apache Tomcat per un sito Web https, la chiave privata viene archiviata in un keystore. Perché Tomcat sia in grado di utilizzare questo tasto abbiamo tre opzioni:
- Non utilizzare la password sul keystore;
- La password del keystore deve essere inserita all'avvio del servizio Tomcat;
- La password del keystore è impostata in testo normale in un file di configurazione.
L'uso dell'opzione 3 sembra il più praticato. Ma chiunque abbia accesso a questo file e al keystore è in grado di estrarre la chiave privata. Ovviamente il filesystem può proteggere il keystore e il file di configurazione. Sembra che Linux offra più opzioni per separare l'accesso a quei file per processi diversi. Questo ragionamento ha portato alla conclusione che ho iniziato con.
Non ho familiarità con il modo in cui Windows o IIS gestiscono ciò, ma aspetto che funzioni in qualche modo simili sotto il cofano. Il mio problema è che non lo so per certo. In che modo IIS è in grado di utilizzare il certificato in Windows se nessuno inserisce la sua password? O è appena memorizzato nel registro invece di un file di configurazione? E sta impostando una sicurezza del certificato elevata uguale all'opzione 2?
Qualcuno potrebbe spiegarmi come funziona?
Btw. Non sono interessato a HSM. Per ora mi interessa sapere se e come Windows / IIS protegge un certificato o una chiave privata che non usa l'opzione 3.
Ho cercato, ma non ho potuto trovare risposte conclusive. Ho sfogliato 30 pagine taggate con "certificati" e ho utilizzato google. Trovo difficile distillare una risposta definitiva da loro. Qui di seguito cito le fonti che ho trovato di qualche aiuto. Spero davvero che tu possa aiutarmi o indicarmi la giusta fonte.
Sicurezza su stackExchange:
- Quanto è sicura la mia chiave privata nel certificato digitale di Windows negozio?
- Come dovrei memorizzare le chiavi SSL sul server?
- Come memorizzare una chiave RSA privata per un'applicazione?
- Quali sono alcune buone pratiche di progettazione per il certificato multipiattaforma stoccaggio?
Microsoft
- [Blog TechNet] Cos'è una protezione avanzata per i tasti in Windows?
- [TechNet, EFS] Come vengono memorizzate le chiavi private
Vari siti:
- [ServerFault] Come gestire una protezione della chiave privata SSL dei server Web (password vs. nessuna password)?
- [CodingHorror] Mantenere private le chiavi private
- [SecurityInnovation] Come eseguire il test per Key Store non sicuro Vulnerabilità
- [RootSecurity] Come esportare certificati "non esportabili" dal Archivio certificati Microsoft
- [Symantec] In che modo gli aggressori rubano le chiavi private dai certificati digitali