uso di PRNG in OpenSSL - modalità fips

4

Sto lavorando su un dispositivo di rete basato su centos, richiesto per passare i fips 140-2 livello 2. Ho intenzione di usare openssl in modalità fips e CTR_DRBG userà come PRNG. sarà sufficiente per soddisfare i requisiti NIST SP 800-90?

Devo fornire una fonte esterna di entropia o il default di linux / dev / random è sufficiente? Ran

    
posta user3087632 04.04.2017 - 23:41
fonte

2 risposte

3

CTR_DRBG è un PRNG approvato per la conformità FIPS, definito in NIST SP800-90A. La /dev/random di Linux è, in linea di principio, una fonte di entropia adeguata per NIST SP800-90B, ma se è adatta in un particolare caso d'uso dipende da dove il kernel Linux stesso può ottenere entropia. Avere un RNG hardware (come RDRAND sulle moderne CPU Intel) solleva meno domande durante la certificazione.

Oltre a ciò, una certificazione FIPS 140 livello 2 include alcuni requisiti di sicurezza effettivi (diversamente dal livello 1), quindi non è sufficiente (ma è necessario) utilizzare algoritmi approvati. Per ottenere la certificazione del prodotto è necessario soddisfare tutti gli altri requisiti della certificazione (registrazione, lavaggio dei dati, autenticazione dell'operatore, auto-test inutili, ecc.) E soddisfare il valutatore che ha soddisfatto tutti i requisiti.

    
risposta data 05.04.2017 - 02:59
fonte
0

CTR_DRBG (AES) utilizzando OpenSSL FIPS Object Module v2.x funzionante in modalità FIPS dovrebbe essere sufficiente per FIPS 140-2 livello 1. Sapevi che questo modulo è già certificato FIPS da OpenSSL Software Foundation? Potresti essere in grado di rivendicare l'applicabilità del certificato CMVP esistente se il tuo dispositivo è strettamente correlato alle configurazioni testate elencate in Politica di sicurezza . Prima di impegnarti a sostenere la tua certificazione, consulta la lista dei moduli crittografici .

Se devi avere la tua certificazione FIPS, come parte di tale certificazione dovrai analizzare le fonti di entropia per dimostrare di avere sufficiente entropia. Dovrai produrre un rapporto di analisi dell'entropia (EAR) che descrive come operano le tue sorgenti di entropia ( /dev/random in questo caso). Dovrai anche raccogliere eventi di entropia e calcolare la minima entropia per ciascuna fonte per giustificare le tue affermazioni.

Il kernel di Linux ( /drivers/char/random.c ) implementa più sorgenti di entropia del software. Sono add_disk_randomness() , add_input_randomness() , add_interrupt_randomness() . A seconda della configurazione hardware (ad es. Sistema headless con solo memoria flash) si potrebbe avere un'entropia di avvio insufficiente. In questi casi dovrai integrare ulteriori fonti di entropia per certificare. Una possibilità sono le fonti di CPU, qualcosa come Intel RdSeed . Un'altra possibilità è CPU Jitter solo per software.

    
risposta data 05.04.2017 - 17:54
fonte

Leggi altre domande sui tag