Un sistema SW costruito con Microsoft CNG può essere compatibile con FIPS 140-2 Level 2?

5

Dobbiamo progettare e costruire un sistema che segni i file con dati sensibili, come prove / prove. La procedura di firma è semplice, in pratica calcola MD5 del contenuto del file e crittografa il risultato MD5 con 3DES. Il problema è principale la memorizzazione e la gestione delle chiavi.

Le chiavi saranno fornite dall'agenzia governativa utilizzando una SmartCard (Cryptoflex) o inviando un file crittografato con il nostro certificato.

La domanda è, può essere costruire un sistema del genere utilizzando esclusivamente moduli software, non HSM o simili, essendo tale sistema compatibile con FIPS 140-2 Level 2?

L'idea è di caricare le chiavi in Windows CNG utilizzando il software Windows KSP (Windows Server 2008 R2) e quindi, richiedendo a CNG di eseguire le operazioni di crittografia sui dati da firmare.

In alternativa il sistema potrebbe essere di livello basso CC-1 o conforme a EAL 5.

Microsoft CNG è FIPS 140-2 Livello 1 e sembra che ci siano piani per essere conformi al Livello 2. Inoltre si afferma che può essere utilizzato per costruire un sistema conforme al Livello 2. La nostra domanda è di evitare che HSM o qualsiasi soluzione HW memorizzino le chiavi e / o eseguano operazioni crittografiche. Il caricamento delle chiavi utilizzando un lettore di smart card è ok a causa di un dispositivo economico (< 100 $?).

È possibile utilizzare qualsiasi altra libreria software, in combinazione con Microsoft CNG o una sostituzione completa come alcune implementazioni di PKCS # 11. La libreria deve essere .Net, preferibilmente .Net 4. L'ultima e ultima domanda / difficile è, stiamo pensando di eseguire questo software in Microsoft IIS come un'applicazione web (solo intranet), interagendo con il database locale e il filesystem locale, questo è un problema e dovrebbe essere progettato come applicazione Windows autonoma?

Qualsiasi consiglio è apprezzato.

    
posta David Oliván Ubieto 19.06.2012 - 08:54
fonte

2 risposte

5

OK, ci sono un sacco di domande per una risposta, e penso che probabilmente posso solo colpirne due .. ma qui va:

FIPS 140-2 livello 2

I requisiti FIPS 140-2 sono incentrati su come le chiavi sono gestite, protette, manipolate e archiviate. Per riferimento, sto leggendo i Requisiti di sicurezza dal sito NIST.

Quello che vedo è che nella transizione dal Livello 1 al Livello 2, lo standard aggiunge requisiti relativi all'archiviazione fisica del materiale chiave, la maggior parte sorprendentemente antimanomissione a livello fisico. I requisiti passano dal lavorare nel Livello 1 in cui il key storage può essere software, ai requisiti in cui non riesco a vedere alcun modo in cui si possano tenere le chiavi nella memoria di un PC o laptop standard - si deve avere una posizione fisica protetta per il materiale chiave.

Questo non vuol dire che il luogo fisico protetto debba essere un HSM da $ 10.000 - se sto leggendo Moduli crittografici convalidati elencare correttamente, ci sono alcuni casi in cui i fornitori di prodotti che sembrano essere basati su SmartCard sono convalidati fino al Livello 3. Certamente alcuni prodotti SmartCard forniscono prove di manomissione .

Dalla mia esperienza, quando gestisci il tuo keystore nel software, non puoi davvero chiamare il sistema generale una soluzione FIPS 140-2 livello 2 - perché non puoi dare quel tamper prove a prova di fuoco abbastanza strong. Ma puoi ottenere moduli software che possono "operare in modalità FIPS 140-2 di livello 2" - nel senso che interagiranno con un dispositivo che può fornire prove di manomissione a questo livello e il modulo lo farà in un modo conforme agli standard che non sposta la chiave in nessun posto dove non dovrebbe andare.

Per cercare di inchiodare la domanda - se riesci a trovare un prodotto compatibile con smart card di livello 2 FIPS 140-2 (e penso che tu possa farlo), puoi far funzionare una soluzione di costo inferiore a HSM, ma hai per rendersi conto che la SmartCard dovrà essere presente ogni volta che si desidera che la propria soluzione esegua operazioni di crittografia, in quanto togliere le chiavi dalla scheda distruggerà lo scopo della prova di manomissione. Quindi non sono sicuro che riuscirai a "caricare le chiavi utilizzando un lettore di smart card" che a mio avviso implica il tentativo di rimuovere le chiavi protette dalla scheda.

Standard alternativi: CC-1 e EAL 5

Sono un po 'confuso qui perché questi non sono esattamente la stessa cosa. EAL 5 è per un livello abbastanza rigoroso di verifica che un prodotto soddisfi il suo comportamento di sicurezza definito. Ma non è la stessa cosa delle protezioni chiave fornite da FIPS 140-2. Spesso ho sviluppato sistemi che hanno dovuto usare entrambi , perché offrono diversi tipi di garanzia. Avere un livello EAL veramente alto ti proteggerà in modi diversi dall'avere FIPS di livello 2.

Sarei molto riluttante a raccomandare l'interscambio di questi: è necessario progettare un sistema che si protegga dal livello dei rischi nell'ambiente e dal valore delle informazioni / operazioni che protegge. Scambiare tra gli standard non lo farà, l'analisi della sicurezza lo farà.

Intranet o autonomo

Questo deve essere basato sulle esigenze di un'applicazione. Dove lo situi, in che modo controlli l'accesso, a quali scopi avrà la rete Intranet o gli utenti locali, e ciò che devi proteggere imporrà dove lo metti e quali protezioni ti occorrono.

Certamente, più accessibile fai l'applicazione, più ampia sarà la tua area di attacco. Ma i sistemi online possono anche essere più facili da aggiornare e mantenere, e se la disponibilità in una situazione di crisi supera l'inaccessibilità in caso di attacco, allora online potrebbe essere meglio del client standalone.

Sarei diffidente nei consigli su questo punto che non derivano da una discussione abbastanza esauriente sul tuo scopo e prodotto.

    
risposta data 23.11.2012 - 21:10
fonte
2

I servizi di sicurezza di Netscape hanno una certificazione FIPS-140 livello 2, ma non su Windows: link

. I wrapper netti per PKCS # 11 esistono: link

Ma (i) non aspettatevi di usare MD5 in un modulo FIPS compatibile (ii) leggete la differenza tra HMAC e "hash e encrypt" e ripensate il vostro schema di "firma".

    
risposta data 31.01.2013 - 10:55
fonte

Leggi altre domande sui tag