Microsoft CryptoAPI FIPS 140-2

1

Il mio cliente mi chiede di utilizzare le librerie crittografiche convalidate FIPS 140-2. Attualmente ho crittografia AES 256 utilizzando Microsoft CryptoAPI nella mia applicazione. Per prima cosa ottengo il provider (HCRYPTPROV) utilizzando CryptAcquireContext con MS_ENH_RSA_AES_PROV e PROV_RSA_AES. Quindi creo una chiave tramite CryptDeriveKey, ecc.

Ho trovato questa istruzione link che indica la convalida FIPS 140-2.

Dice che

Rather than validate individual components and products, Microsoft chooses to validate only the underlying cryptographic modules. Subsequently, many Windows components and Microsoft products are built to rely on the Cryptographic API: Next Generation (CNG) and legacy Cryptographic API (CAPI) FIPS 140 validated cryptographic modules. Windows components and Microsoft products use the documented application programming interfaces (APIs) for each of the modules to access various cryptographic services.

Quindi dice

The list of validated CNG binaries is identified in the CNG Validated Cryptographic Modules section.

e

When developing using CNG directly, it is the responsibility of the developer to follow the security rules outlined in the FIPS 140 Security Policy for each module. The security policy for each module is provided on the CMVP website. Links to each of the Security Policy documents is provided in the tables below.

Usando le informazioni nelle tabelle sembra che AES 256 sia consentito ai FIPS. Quindi posso vedere le seguenti librerie dinamiche.

bcryptprimitives.dll and ncryptsslp.dll

Ho controllato la versione della libreria (10.0.14393) e ho la versione corretta sul mio computer. Ho guardato tramite Process Hacker e ho visto che l'applicazione utilizza le librerie. Ma allo stesso tempo ho un sacco di librerie aggiuntive come crypt32.dll, cryptsp.dll, advapi32.dll, bcrypt.dll, bcryptprimitives.dll o ncrypt.dll. Non riesco a controllare se sono usati come wrapper o che possiedono alcune funzioni crittografiche sottostanti.

Nel link che è collegato a bcryptprimitives.dll e ncryptsslp.dll, posso vedere una serie di funzioni primitive CNG che possono essere utilizzate dai chiamanti per accedere ai servizi di crittografia. Allo stesso tempo sembra che anche CAPI (CryptoAPI?) Sia consentito.

Quindi devo passare da CryptoAPI all'elenco della funzione CNG per utilizzare le librerie crittografiche convalidate FIPS 140-2 o è consentito alle funzioni che attualmente utilizzo? Ma come controllare se I solo utilizzano le librerie convalidate FIPS 140-2?

    
posta Eugen 08.06.2017 - 21:14
fonte

0 risposte

Leggi altre domande sui tag