Ci sono dei vantaggi per la sicurezza nell'eliminazione della chiave privata di un server web https dopo averlo avviato?

2

Supponiamo che tu abbia un server web che offre pagine tramite HTTPS. Dopo l'avvio del processo, se si eliminasse la chiave privata, ciò impedirebbe il ripristino della chiave privata in caso di compromissione del server? Supponendo che un utente malintenzionato ottenga l'accesso privilegiato, un raschietto della memoria non potrebbe recuperare la chiave privata?

Questo design è solo un brutto esempio di sicurezza attraverso l'oscurità?

    
posta Python Novice 20.12.2015 - 22:02
fonte

2 risposte

3

Non ne vale la pena.

Capisco che la domanda significhi: "Se memorizzo solo la chiave privata nella RAM, questo aiuta la sicurezza?"

Forse. Ma questo incantesimo schiera l'inferno.

Immagino che questa situazione sia simile a un server in cui devi essere fisicamente presente per il riavvio. Come con una password di avvio. Questo è molto poco pratico. Ciò che ottieni da questo modello è la resistenza contro gli attacchi offline. Come se qualcuno si allontanasse con il server. In realtà potresti voler difenderti se non ti fidi veramente della sicurezza fisica del server. Ma il modo più tradizionale di difendersi dagli attacchi offline sarebbe la crittografia completa del disco.

Se vuoi una chiave privata non estraibile, allora dovresti cercare di acquistare un HSM . (Il più economico che conosco è $ 500 YubiHSM .) O conservare il Keys fuori server in qualche modo, forse nel modo CloudFlare SSL senza chiave funziona .

Il vantaggio di queste soluzioni è che anche gli attacchi online non funzionano più. Non puoi più estrarre la chiave privata dalla RAM. (E le chiavi private AFAIK sono uno degli aghi più facili da trovare nel pagliaio della RAM se hai già root sulla scatola. Link: ErrataSec , Link: HeartLeech , Link: SecSe .)

    
risposta data 21.12.2015 - 10:39
fonte
2

Stai parlando di due tipi di sicurezza:

  1. Riservatezza della connessione SSL che dipende dalla disponibilità della chiave privata e
  2. Integrità del sistema, che viene compromessa prima che una chiave privata diventi vulnerabile.

La connessione SSL stabilita tra client e server Web dipende dalla disponibilità della chiave privata in modo che possa completare lo scambio di chiavi di sessione.

Se un utente malintenzionato accede al tuo sistema e ottiene privilegi elevati, assicurarsi che la chiave privata sul file system sia a basso impatto, ma un superutente può anche MMAP_PHYS in tutta la memoria di sistema e scansionarlo per le chiavi con un po 'di tempo più problemi.

Quindi, no, l'eliminazione delle chiavi private non impedirebbe il ripristino della chiave privata (dalla memoria), tranne nel caso in cui si verificasse un'interruzione dell'alimentazione, riavvio o qualcosa del genere. Fondamentalmente, l'integrità del sistema DEVE essere garantita per mantenere le risorse del sistema (chiavi) al sicuro dagli intrusi.

Questo design è solo un brutto esempio di sicurezza attraverso l'oscurità?

No, non sicurezza attraverso l'oscurità. SSL si basa su concetti crittografici validi. La sicurezza in profondità impone che le chiavi private (leggi: integrità del sistema) siano protette da altri livelli di sicurezza come i controlli di accesso obbligatori.

    
risposta data 21.12.2015 - 02:45
fonte

Leggi altre domande sui tag