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:

  1. Vraćanje sigurnosne kopije
  2. 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.cnfFIPS 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


Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional

Zuletzt geändert: 29.01.2026. u 23:13