Best practice per la gestione delle chiavi private

3

Come devo gestire la mia chiave privata RSA per la mia applicazione web Rails ad alta sicurezza?

Può sembrare una domanda "soft", non correlata alla crittografia per sé, ma è comunque molto importante. Quali procedure di gestione e principi generali di sicurezza per lo sviluppo dovrei seguire? Quali sono le risorse definitive che specificano come prevenire non solo il lato tecnologico dell'hacking, ma anche gli inevitabili fallimenti nelle risorse umane e il semplice vecchio furto?

Fino ad ora ho generato keypair RSA sul mio MAC locale, inserendoli in una cartella / cartella segreta delle applicazioni, trasferendoli in repository private e quindi distribuendoli sul server. Anche se non si sono verificati incidenti (ancora), posso vedere che ci sono due principali problemi di sicurezza: l'accesso ai repository Git tramite l'hacking del mio account o Git backend o il furto / accesso al mio computer. Per quanto riguarda questi due, posso solo aumentare la forza delle mie password Git e machine, aumentando la sicurezza fisica degli uffici è un'altra possibilità.

Ripensando ai primi principi di sicurezza, ho preso in considerazione la creazione di coppie di chiavi per un'applicazione sul server delle applicazioni protetto (accesso su una porta personalizzata utilizzando solo le chiavi pubbliche) e non le ho mai trasferite a un repository di alcun tipo, tuttavia ci sono casi in cui la chiave privata è necessaria anche in fase di sviluppo, quindi vorrei scp la chiave dal server sul mio computer locale, esponendo ancora una volta la mia applicazione ai rischi di sicurezza fisica.

Sto pensando troppo a questo? Cosa mi manca?

    
posta S.L. Barth 11.03.2015 - 11:30
fonte

1 risposta

1

la gestione delle chiavi per le chiavi private (altamente sensibili) si ottiene di solito memorizzandole all'interno di moduli crittografici hardware (detti anche HSM). ci sono vari livelli di moduli crittografici hardware, che di solito sono classificati in linea con lo standard FIPS 140-2

L'hardware si trova sulla macchina (ad es. scheda PCI) o sulla rete (anche noto come HSM basato su rete).

Dove inizia a diventare complicato è se l'applicazione è virtualizzata, o dove è necessario iniziare a condividere la chiave tra molti host (ad esempio, 16 server Web che utilizzano tutti lo stesso certificato).

Per gli scenari HTTPS: Come opzione di scalabilità orizzontale ho visto un sacco di persone andare su load balancer e usarle per terminare la connessione iniziale dai browser del cliente. Alcuni bilanciatori di carico hanno la possibilità di memorizzare la chiave a bordo nell'hardware. Da lì, hai la possibilità di avviare un'altra connessione al tuo web server (che si trova dietro il load balancer), o di andare in chiaro, dal momento che il traffico è ora su una rete semi-protetta (?).

    
risposta data 29.07.2015 - 23:37
fonte

Leggi altre domande sui tag