Ta stran prikazuje, kako validirate FIPS način vaše namestitve OpenSSL.
$openssl = "D:\Projects\openssl-3.6.0\bin\bin\openssl.exe" # Nastavitev okoljske spremenljivke $env:OPENSSL_CONF = "D:\Projects\openssl-3.6.0\bin\ssl\openssl.cnf" # Izpis ponudnikov & $openssl list -providers
S FIPS aktivnim:
Providers:
base
name: OpenSSL Base Provider
version: 3.6.0
status: active
fips
name: OpenSSL FIPS Provider
version: 3.6.0
status: active
Brez FIPS:
Providers:
default
name: OpenSSL Default Provider
version: 3.6.0
status: active
V FIPS načinu so na voljo samo certificirani algoritmi.
& $openssl list -digest-algorithms
FIPS-dovoljeno:
Ni FIPS-dovoljeno:
& $openssl list -signature-algorithms
FIPS-dovoljeno:
FIPS Provider ob nalaganju izvede samoteste:
# Verbose način za izpis samotestov $env:OPENSSL_FIPS_TEST = "1" & $openssl list -providers
Ob neuspelih samotestih se FIPS Provider ne aktivira!
FIPS moduli imajo vgrajeno zgoščeno vrednost za preverjanje integritete:
# Generiranje/preverjanje zgoščene vrednosti FIPS modula & $openssl fipsinstall -verify -module "D:\Projects\openssl-3.6.0\bin\lib\ossl-modules\fips.dll" -in "D:\Projects\openssl-3.6.0\bin\ssl\fipsmodule.cnf"
Pričakovani izpis:
VERIFY PASSED
Ob napaki:
VERIFY FAILED
Če VERIFY FAILED: DLL je bila morda spremenjena. Ponovno zgradite!
V FIPS načinu bi moral biti MD5 blokiran:
# MD5 bi moral spodleteti & $openssl dgst -md5 test.txt 2>&1
Pričakovani izpis (s FIPS):
Error setting digest xxxx:error:0308010C:digital envelope routines:inner_evp_generic_fetch:unsupported
Če MD5 deluje, FIPS ni aktiven!
V C ali .NET lahko programsko preverite FIPS:
// C# P/Invoke primer [DllImport("libcrypto-3-x64.dll")] private static extern int OSSL_PROVIDER_available(IntPtr libctx, string name); public static bool IsFipsAvailable() { return OSSL_PROVIDER_available(IntPtr.Zero, "fips") == 1; }
| # | Kontrolna točka | Status |
| — | —————– | ——– |
| 1 | enable-fips uporabljen pri gradnji | ☐ |
| 2 | fips.dll prisoten v ossl-modules/ | ☐ |
| 3 | fipsmodule.cnf generiran | ☐ |
| 4 | openssl.cnf FIPS Provider aktiviran | ☐ |
| 5 | openssl list -providers prikazuje FIPS aktiven | ☐ |
| 6 | fipsinstall -verify PASSED | ☐ |
| 7 | MD5 blokiran (test) | ☐ |
enable-fips?fips.dll prisoten?openssl.cnf pravilno konfiguriran?nmake install_fipsopenssl fipsinstall …default_properties = fips=yes manjka v openssl.cnfOPENSSL_CONF ni nastavljenaWolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional