10. TLS/mTLS komunikacija

Scenariji: 4
FFI-funkcije: ~30
Status: ⏳ Načrtovano

Ta kategorija zajema vse scenarije za postkvantno varno TLS komunikacijo. Nastavitev strežnika, konfiguracija odjemalca in uvajanje mTLS.


Scenariji

ID Scenarij Opis Kompleksnost Status
10.1 Nastavitev TLS strežnika Strežnik s PQ certifikatom ⭐⭐⭐
10.2 Konfiguracija TLS odjemalca Odjemalec za PQ-TLS ⭐⭐⭐
10.3 Uvajanje mTLS Obojestranska avtentikacija ⭐⭐⭐⭐
10.4 Hibridni TLS ECDHE + ML-KEM izmenjava ključev ⭐⭐⭐⭐

TLS 1.3 s PQ izmenjavo ključev

sequenceDiagram participant C as Odjemalec participant S as Strežnik Note over C,S: TLS 1.3 Handshake s hibridno izmenjavo ključev C->>S: ClientHello (x25519_mlkem768) Note right of C: ECDH + ML-KEM Key Shares S->>C: ServerHello (x25519_mlkem768) S->>C: EncryptedExtensions S->>C: Certificate (ML-DSA-65) S->>C: CertificateVerify S->>C: Finished Note over C: Validacija certifikata Note over C: Izračun hibridnega ključa C->>S: Finished Note over C,S: Šifrirana komunikacija


Šifrirni nabori

Šifrirni nabor Izmenjava ključev Avtentikacija Šifriranje
TLS_AES_256_GCM_SHA384 x25519_mlkem768 ML-DSA-65 AES-256-GCM
TLS_CHACHA20_POLY1305_SHA256 x25519_mlkem768 ML-DSA-65 ChaCha20-Poly1305
TLS_AES_256_GCM_SHA384 x25519 (hibridni nadomestek) ECDSA P-384 AES-256-GCM

Konfiguracija strežnika

Strežnik Konfiguracija PQ podpora
Nginx ssl_certificate + ssl_protocols Prek OpenSSL 3.6
Apache SSLCertificateFile + SSLProtocol Prek OpenSSL 3.6
Kestrel (.NET) HttpsConnectionAdapterOptions Izvirno
HAProxy bind … ssl crt Prek OpenSSL 3.6

Panožne zahteve

Panoga TLS zahteva Posebnosti
Energetika/SCADA TLS 1.2+ IEC 62351, nadomestek brez povezave
Zdravstvo TLS 1.3 gematik TI-Konnektor
Avtomobilska industrija TLS 1.3 V2X, kratka rokovanja
Industrija 4.0 TLS 1.3 + mTLS OPC UA varnost

Hiter začetek s kodo

Kestrel strežnik (ASP.NET Core)

// Program.cs
var builder = WebApplication.CreateBuilder(args);
 
builder.WebHost.ConfigureKestrel(options =>
{
    options.ListenAnyIP(443, listenOptions =>
    {
        listenOptions.UseHttps(httpsOptions =>
        {
            // Nalaganje PQ certifikata
            var cert = ctx.LoadCertificate("server.crt.pem");
            var key = ctx.LoadPrivateKey("server.key.pem", password);
            httpsOptions.ServerCertificate = ctx.CreateX509Certificate2(cert, key);
 
            // Zahtevanje TLS 1.3
            httpsOptions.SslProtocols = SslProtocols.Tls13;
 
            // Odjemalčev certifikat za mTLS
            httpsOptions.ClientCertificateMode = ClientCertificateMode.RequireCertificate;
            httpsOptions.ClientCertificateValidation = (cert, chain, errors) =>
            {
                return ctx.ValidateCertificate(cert, trustStore).IsValid;
            };
        });
    });
});

HttpClient s PQ-TLS

// Konfiguracija HttpClient za PQ-TLS
var handler = new SocketsHttpHandler
{
    SslOptions = new SslClientAuthenticationOptions
    {
        EnabledSslProtocols = SslProtocols.Tls13,
        RemoteCertificateValidationCallback = (sender, cert, chain, errors) =>
        {
            // PQ validacija certifikata
            return ctx.ValidateCertificate(cert, trustStore).IsValid;
        }
    }
};
 
var httpClient = new HttpClient(handler);
var response = await httpClient.GetAsync("https://pq-server.example.com/api/data");

Konfiguracija OpenSSL 3.6

# /etc/ssl/openssl.cnf
 
[openssl_init]
providers = provider_sect
 
[provider_sect]
default = default_sect
oqsprovider = oqsprovider_sect
 
[default_sect]
activate = 1
 
[oqsprovider_sect]
activate = 1
module = /usr/lib/ossl-modules/oqsprovider.so

Povezane kategorije

Kategorija Povezava
3. Izdaja certifikatov Strežniški certifikati
9. Avtentikacija mTLS avtentikacija odjemalca
7. Šifriranje Izmenjava ključev

« ← 9. Avtentikacija | ↑ Scenariji | 11. Upravljanje ključev → »


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

Zuletzt geändert: dne 30.01.2026 ob 06:44