È possibile avvolgere ed esportare la chiave privata RSA nell'hardware conforme a FIPS 140-2 Level 3?

2

Vorrei fare quanto segue su token crittografico certificato FIPS 140-3 Level 3 usando PKCS # 11:

  1. Genera coppia di chiavi RSA sul token

  2. Importa la chiave AES da più componenti

  3. Avvolgi ed esporta la chiave privata RSA con la chiave AES (PKCS # 8) nel file

Sto provando a farlo con pochi token crittografici FIPS 140-2 Level 3 senza successo. Ricevo CKR_DEVICE_ERROR.

Quindi ti sto chiedendo se è possibile farlo? La conformità di FIPS 140-2 Level 3 consente di avvolgere ed esportare la chiave privata dal token? O è solo questione di implementazione di PKCS # 11?

    
posta user1563721 17.03.2015 - 17:46
fonte

3 risposte

3

FIPS 140-2 non proibisce esplicitamente l'esportazione delle chiavi; quello che dice è che il modulo deve impedire divulgazione non autorizzata ; afferma inoltre che quando una chiave privata viene esportata da un modulo, deve essere eseguita con crittografia. La parola importante è "non autorizzata": la semplice crittografia con un tasto AES non è sufficiente; tale chiave deve anche essere tale che sia nota solo a sistemi o persone "autorizzati" e ciò dipende da molte altre parti di FIPS 140-2. Fondamentalmente, non è possibile esportare una chiave privata "genericamente" semplicemente in virtù dell'utilizzo della crittografia; deve essere parte di una procedura documentata che è conforme ai ruoli e ai vincoli definiti in FIPS 140-2 ed è stata valutata come parte del processo che ha permesso al modulo di essere "certificato FIPS 140-2 livello 3".

Per farla breve:

  • Alcuni moduli mai consentono di esportare una chiave privata, indipendentemente dalla crittografia.
  • Alcuni moduli permetteranno di esportare una chiave privata solo se, al momento della generazione della chiave , è stata contrassegnata come "estraibile" (vedi l'attributo PKCS # 11 "CKA_EXTRACTABLE").
  • Alcuni moduli permetteranno di esportare una chiave privata, ma solo come parte di una procedura completamente specificata coperta da FIPS 140-2 livello 3; in pratica, ciò accade solo per lo spostamento di chiavi tra due moduli hardware ugualmente conformi allo standard 140-2.

È molto improbabile che un modulo FIPS 140-2 livello 3 certificato consenta l'esportazione di una chiave privata illimitata, protetta solo con una chiave AES fornita esternamente e che sia ancora FIPS 140-2 livello 3.

    
risposta data 17.03.2015 - 18:38
fonte
0

Thales nShield HSM consente il wrapping di una chiave privata. È possibile impostare una chiave ACL per consentirne il wrapping con qualsiasi chiave, e in tal caso "autorizzazione" consiste nel solo caricare la chiave privata.

Quando si utilizza la libreria Thales PKCS # 11, le chiavi possono essere impostate su CKA_EXTRACTABLE = true per consentire C_WrapKey, e in tal caso il wrapping sarà consentito da qualsiasi chiave con permessi CKA_WRAP. (In effetti, le chiavi private possono essere impostate su CKA_SENSITIVE = false, anche quando si utilizza FIPS 140-2 livello 3 e la libreria PKCS # 11 le avvolgerà per estrarre dal limite FIPS e quindi decrittografarle.)

Certificazione FIPS di esempio Thales, con collegamento a Policy di sicurezza

    
risposta data 18.03.2015 - 12:28
fonte
0

Se il modulo che stai utilizzando è convalidato con FIPS 140-2, ti consiglio di leggere la Politica di sicurezza disponibile pubblicamente. Questo e la documentazione del prodotto dovrebbero dirti se sei in grado di esportare la chiave privata. La politica di sicurezza è disponibile qui: link Potrebbe essere che il modulo non supporti la combinazione di tasti AES in modalità Approvata. Dovrai anche assicurarti che la dimensione della chiave AES che stai utilizzando sia abbastanza grande da corrispondere alla forza equivalente della chiave RSA, ad esempio, una chiave AES a 128 bit ha una forza stimata minore di una chiave RSA a 4096 bit! Questo è contro i requisiti di output della chiave FIPS.

    
risposta data 24.03.2015 - 14:50
fonte

Leggi altre domande sui tag