====== 3.2 Build Windows FIPS ====== Questa guida spiega come compilare OpenSSL con supporto FIPS 140-3. ---- ===== Cos'è FIPS 140-3? ===== **FIPS 140-3** (Federal Information Processing Standard) è uno standard americano per moduli crittografici. Definisce: * Quali algoritmi sono permessi * Come devono essere generati i chiavi * Autotest all'avvio * Rilevamento manomissioni **Chi ha bisogno di FIPS?** | Settore | FIPS richiesto? | |---------|-----------------| | Agenzie governative USA | **Sì** | | Agenzie governative UE | Spesso (BSI raccomanda) | | Banche | **Di solito sì** | | Sanità | **Spesso sì** | | App interne | Raramente | ---- ===== Prerequisiti ===== Oltre ai [[.:vorbereitung:windows-tools|prerequisiti standard]]: * ☑ NASM è **obbligatorio** (non opzionale!) * ☑ Directory di build pulita ---- ===== Passi di Compilazione ===== ==== Passo 1: Preparare l'Ambiente ==== call "%ProgramFiles%\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat" set PATH=%STRAWBERRY_PERL%\bin;%LOCALAPPDATA%\bin\NASM;%PATH% cd /d %OPENSSL_SRC% ==== Passo 2: Configurare con FIPS ==== perl Configure VC-WIN64A enable-fips --prefix=D:\Projects\openssl-3.6.0\bin --openssldir=D:\Projects\openssl-3.6.0\bin\ssl **Importante:** Il parametro ''enable-fips'' abilita il FIPS provider. ==== Passo 3: Compilare ==== nmake ==== Passo 4: Installare (incluso FIPS) ==== nmake install_sw install_fips ''install_fips'' installa il FIPS provider e genera la configurazione del modulo! ---- ===== Risultato ===== Oltre ai file standard: bin\ ├── bin\ │ ├── openssl.exe │ ├── libcrypto-3-x64.dll │ └── libssl-3-x64.dll ├── lib\ │ └── ossl-modules\ │ ├── fips.dll # Modulo FIPS Provider │ └── legacy.dll └── ssl\ ├── openssl.cnf └── fipsmodule.cnf # Configurazione Modulo FIPS ---- ===== Attivare FIPS ===== ==== Modificare openssl.cnf ==== Aprite ''D:\Projects\openssl-3.6.0\bin\ssl\openssl.cnf'' e aggiungete: # All'inizio del file openssl_conf = openssl_init [openssl_init] providers = provider_sect alg_section = algorithm_sect [provider_sect] fips = fips_sect base = base_sect [fips_sect] activate = 1 [base_sect] activate = 1 [algorithm_sect] default_properties = fips=yes ---- ===== Verificare la Modalità FIPS ===== set OPENSSL_CONF=D:\Projects\openssl-3.6.0\bin\ssl\openssl.cnf # Elencare i provider openssl list -providers Output atteso: Providers: base name: OpenSSL Base Provider version: 3.6.0 status: active fips name: OpenSSL FIPS Provider version: 3.6.0 status: active ---- ===== Continua con ===== * [[.:testen:fips-validieren|Validare la modalità FIPS]] * [[.:testen:start|4. Test]] * [[.:build:start|Torna alla panoramica build]] ---- //Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//