2012-11-14 16 views
8

Sto ricercando soluzioni di gestione delle chiavi per diventare conforme PCI. Ho parlato con un certo numero di venditori nell'arena, e mentre mi piacciono i loro prodotti, il costo è oltre il mio budget. Qualcuno è a conoscenza di soluzioni open source o a basso costo per la gestione delle chiavi? Io uso un ambiente Windows/.NET, quindi preferirei soluzioni rivolte a quell'ambiente, tuttavia sarei interessato a conoscere tutto ciò che è là fuori.Soluzione di gestione chiavi open source

Grazie

+0

Si tratta di un'applicazione desktop o web/mobile? – kgilpin

risposta

4

Abbiamo avuto un'esperienza simile a te. Avevamo bisogno di una soluzione di gestione delle chiavi per la conformità PCI e tutti i prodotti commerciali che abbiamo visto erano troppo costosi. Alcuni manager chiave costano più del nostro prodotto per i piccoli clienti!

Abbiamo finito per creare un gestore di chiavi basato su software. Abbiamo creato requisiti e gli sviluppatori offshore lo hanno codificato. Un tempo stavano cercando altri clienti per usarlo. Non so se lo sono ancora o no.

Lasciatemi spiegare le opzioni che abbiamo esplorato. La prima cosa da ricordare è che la conformità e la sicurezza PCI sono cose diverse, si può essere conformi PCI e non molto sicuri.

Opzione 0: assegnare una chiave per colonna DB e memorizzare le chiavi in ​​un file DLL. I collegamenti dell'applicazione nel file DLL consentono di accedere alle chiavi per crittografare e decrittografare i dati. Nessuno conosce le chiavi Per la sostituzione periodica delle chiavi, si crea una nuova DLL con nuove chiavi, si riduce il tempo necessario a decrittografare tutti i dati utilizzando le vecchie chiavi e reencrypt i dati utilizzando nuove chiavi. Quindi riavvia l'applicazione utilizzando la nuova DLL con nuove chiavi. (Nota se hai mai pensato di ripristinare un backup del DB, devi conservare le vecchie chiavi.)

La prima volta che ho sentito parlare dell'opzione 0 mi ha sorpreso che fosse conforme PCI. Non utilizzare l'opzione 0.

modi per migliorare Opzione 0.

Se si dispone di un HSM nel proprio ambiente, utilizzare la HSM per crittografare le chiavi nel file DLL. All'avvio dell'applicazione decodificherà le chiavi utilizzando HSM. Se si desidera maggiore sicurezza, decrittografare le chiavi ogni volta che sono necessarie.

Una volta crittografate le chiavi, è possibile salvarle in una tabella DB. Se si assegna a ogni chiave (vecchia e nuova) un id-id intero piccolo, è possibile memorizzare l'id chiave con i dati crittografati. Ciò consente di eseguire la sostituzione incrementale delle chiavi ed evitare tempi morti.

Avendo le chiavi in ​​chiaro nella memoria in molti processi, aumenta l'esposizione a un attacco di scansione della memoria che trova i tasti. È possibile creare un nuovo processo che è l'unico processo che decrittografa le chiavi. Le tue applicazioni parlano di questo nuovo processo per crittografare e decrittografare i dati. Questo nuovo processo dovrebbe essere su una scatola con una piccola "superficie" per proteggerlo. Poiché i dati sensibili stanno andando oltre la rete ora, queste comunicazioni dovrebbero essere crittografate. SSL è una buona opzione.

4

Mi rendo conto che è un vecchio thread, ma ci sono un paio di opzioni:

  1. Una soluzione di gestione chiave completamente gratuito e open-source è a http://sourceforge.net/projects/strongkey. Devo ammettere che il software è un po 'datato ed è abbastanza complesso da configurare perché presuppone che tu abbia una PKI per emettere certificati digitali ai client delle applicazioni per comunicare con il server di gestione delle chiavi e per proteggere le chiavi sul dispositivo client.
  2. Il software originale StrongKey è stato semplificato drasticamente tre anni fa e integrato in un'appliance con un modulo hardware crittografico (TPM e HSM) per fornire una gestione delle chiavi più potente.Sfortunatamente, anche se il software sull'appliance è FOSS, la soluzione integrata non è gratuita - il suo prezzo è indicato sul suo sito web (http://www.strongauth.com/products/key-appliance.html).

Tuttavia, ci sono molti vantaggi con l'opzione # 2 in quanto consente di sfruttare Clouds pubblici pur essendo totalmente PCI-compliant (cercare "Regulatory Compliant Cloud Computing (RC3)" e fare clic sul collegamento a IBM - Posso solo pubblicare due link nella mia risposta) con ulteriori annunci su come sfruttare questo dispositivo annunciato all'RSA 2013 di San Francisco.

Spero che questo aiuti.

4

Dai uno sguardo a KeyManager, che è il componente di gestione delle chiavi della suite OpenStack. L'applicazione può essere utilizzata come soluzione di gestione delle chiavi stand-alone al di fuori di OpenStack.

Essendo un componente di OpenStack, KeyManager viene attivamente sviluppato con nuove funzionalità pianificate su cicli di sei mesi.

2

Aggiungo a questa lista come ho trovato in una ricerca e altri possono beneficiare di un elenco esteso.

Recentemente ho trovato KeyWhiz che sembra essere in alfa.

4

KLMS su KMIP è una soluzione buona e facile da utilizzare per la gestione delle chiavi. Questa è una soluzione open source scritta in Java. Vedere il link sottostante per riferimento. http://www.ibm.com/developerworks/library/se-kmip4j/

Il pacchetto denominato stubInterface contiene tutte le API richieste per utilizzare KLMS su KMIP.

klms: Key Lifecycle Management Systems

KMIP: Key Management Interoperability Protocol

+0

KMIP è anche disponibile in .net. –

+0

Include un'implementazione del server ?. –

+0

È disponibile in Node.js? Sto cercando una soluzione simile ma per Node.js –

0

SNipeit è il migliore che ho visto che è open source, molto robusto, e molto facile da usare, anche per i non-tecnici.

https://snipeitapp.com/demo/

Check it out là.

+1

prova a spiegare la tua risposta per una migliore comprensione non solo postare un link, OP può anche cercare su google, –