Inhaltsverzeichnis
3.4 Rješavanje problema
Rješavanje čestih problema s PQ-kriptografskom infrastrukturom.
Brza dijagnostika
Pokrenite ove naredbe za provjeru statusa sustava:
# 1. Verzija OpenSSL openssl version # Očekivano: OpenSSL 3.6.0 ili noviji # 2. Jesu li PQ-algoritmi dostupni? openssl list -signature-algorithms | grep -i "ml-dsa" openssl list -kem-algorithms | grep -i "ml-kem" # 3. Je li provider aktivan? openssl list -providers # 4. .NET Runtime dotnet --list-runtimes | grep "NETCore.App 8"
OpenSSL pogreške
libcrypto nije pronađen
Simptom:
Unable to load DLL 'libcrypto-3-x64.dll'
Dijagnostika:
# Windows - pretraživanje DLL-a where libcrypto-3-x64.dll # Linux - pretraživanje dijeljene biblioteke ldconfig -p | grep libcrypto # macOS - pretraživanje dylib-a ls /usr/local/lib/libcrypto*
Rješenje za Windows (PowerShell kao administrator):
# Provjera PATH-a $env:PATH -split ";" | Select-String "OpenSSL" # Proširenje PATH-a (ako ne postoji) [Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\Program Files\OpenSSL\bin", "Machine") # Ili postavljanje OPENSSL_PATH [Environment]::SetEnvironmentVariable("OPENSSL_PATH", "C:\Program Files\OpenSSL\bin", "Machine")
Rješenje za Linux:
# Ažuriranje ldconfig echo "/usr/local/openssl/lib64" | sudo tee /etc/ld.so.conf.d/openssl.conf sudo ldconfig # Verifikacija ldconfig -p | grep libcrypto
Verzija OpenSSL-a je prestara
Simptom:
OpenSSL version 3.6.0+ required for ML-DSA
Dijagnostika:
# Potpuna verzija i informacije o kompilaciji openssl version -a # Pronalazak instaliranih verzija (Linux) find /usr -name "openssl" -type f 2>/dev/null # Pronalazak instaliranih verzija (Windows) where /r C:\ openssl.exe 2>nul
Rješenje: Ažurirajte na OpenSSL 3.6.0+ → Instalacija
PQ-algoritmi nisu dostupni
Simptom:
openssl list -signature-algorithms | grep -i "ml-dsa" # Nema izlaza
Dijagnostika:
# Provjera statusa providera openssl list -providers # Svi dostupni algoritmi za potpise openssl list -signature-algorithms # Svi dostupni KEM-algoritmi openssl list -kem-algorithms
Mogući uzroci:
- OpenSSL < 3.6.0 (ML-DSA/ML-KEM tek od 3.6)
- Provider nije učitan
- Prilagođena kompilacija bez PQ podrške
Pogreške certifikata
Prikaz detalja certifikata
# Analiza certifikata u PEM formatu openssl x509 -in cert.pem -text -noout # Provjera algoritma potpisa openssl x509 -in cert.pem -text -noout | grep "Signature Algorithm" # Za PQ-certifikate očekivano: # Signature Algorithm: ML-DSA-65 ili ML-DSA-87 # Detalji javnog ključa openssl x509 -in cert.pem -pubkey -noout | openssl pkey -pubin -text -noout
Verifikacija lanca certifikata
# Jednostavna verifikacija openssl verify -CAfile root-ca.crt -untrusted intermediate.crt server.crt # Opširno s detaljima pogrešaka openssl verify -verbose -CAfile root-ca.crt -untrusted intermediate.crt server.crt # Očekivani izlaz pri uspjehu: # server.crt: OK
Česte verifikacijske pogreške:
| Pogreška | Značenje | Rješenje |
|---|---|---|
unable to get local issuer certificate | CA certifikat nedostaje | Dodajte Root/Intermediate CA |
certificate has expired | Certifikat je istekao | Obnovite certifikat |
certificate signature failure | Potpis nevažeći | Certifikat je oštećen/manipuliran |
self signed certificate in chain | Samopotpisani nije pouzdan | Dodajte Root CA u Trust Store |
Pogreške pohrane ključeva
PQ-ključ nije pronađen
Simptom:
PQ private key not found for certificate thumbprint: ABC123...
Dijagnostika:
Windows (PowerShell):
# Putanja PQ-pohrane ključeva $pqKeyStore = "$env:LOCALAPPDATA\WvdS.Crypto\PqKeys" # Provjera postojanja Test-Path $pqKeyStore # Popis sadržaja Get-ChildItem $pqKeyStore -ErrorAction SilentlyContinue # Provjera dozvola Get-Acl $pqKeyStore | Format-List
Linux:
# Putanja PQ-pohrane ključeva PQ_KEYSTORE=~/.local/share/wvds-crypto/pqkeys # Provjera postojanja ls -la $PQ_KEYSTORE # Provjera dozvola (trebalo bi biti 700) stat $PQ_KEYSTORE
Rješenje:
- Vraćanje sigurnosne kopije
- Ako nema sigurnosne kopije: Ponovo kreirajte certifikat s novim parom ključeva
Pogreške FIPS-načina rada
FIPS Provider nije aktivan
Dijagnostika:
# Popis providera openssl list -providers # Trebalo bi sadržavati: # fips # name: OpenSSL FIPS Provider # status: active
Rješenje:
Aktivirajte FIPS Provider u openssl.cnf → FIPS konfiguracija
Algoritam nije FIPS-usklađen
Simptom:
error:0308010C:digital envelope routines::unsupported
Uzrok: Algoritam nije dopušten u FIPS-načinu rada.
FIPS 140-3 dopušteni algoritmi:
| Tip | Dopušteno | Nije dopušteno |
|---|---|---|
| Potpis | ML-DSA-44/65/87, RSA >=2048, ECDSA | Ed25519, Ed448 |
| KEM | ML-KEM-512/768/1024 | X25519, X448 |
| Hash | SHA-256, SHA-384, SHA-512 | MD5, SHA-1 |
| Šifra | AES-GCM | ChaCha20 |
Mrežna dijagnostika
Testiranje TLS veze
# TLS handshake i provjera certifikata openssl s_client -connect server.example.com:443 -showcerts # S specifičnim CA paketom openssl s_client -connect server.example.com:443 -CAfile /path/to/ca-bundle.crt # Prisiljavanje TLS 1.3 openssl s_client -connect server.example.com:443 -tls1_3
Preuzimanje certifikata s poslužitelja
# Preuzimanje i spremanje certifikata openssl s_client -connect server.example.com:443 < /dev/null 2>/dev/null | \ openssl x509 -outform PEM > server.crt # Analiza certifikata openssl x509 -in server.crt -text -noout
Analiza logova
OpenSSL kodovi pogrešaka
# Pretraživanje koda pogreške openssl errstr 0308010C # Prikaz svih nedavnih pogrešaka (ako je u debug načinu) openssl errstr
Provjera Windows Event Log
# Događaji vezani uz kriptografiju Get-EventLog -LogName Application -Source "*Crypto*" -Newest 20 # Pogreške .NET Runtime Get-EventLog -LogName Application -Source ".NET Runtime" -Newest 10 -EntryType Error
Provjera Linux Sysloga
# Unosi vezani uz OpenSSL journalctl | grep -i openssl | tail -20 # Pogreške .NET Runtime journalctl | grep -i dotnet | tail -20
Daljnje informacije
- Instalacija – Ispravno postavljanje
- Konfiguracija – FIPS-način rada, putanje
- Rad – Health provjere, certifikati
Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional
Zuletzt geändert: 29.01.2026. u 23:13