Inhaltsverzeichnis
BSI IT-Grundschutz preslikava
Preslikava knjižnice WvdS za post-kvantno kriptografijo na gradnike BSI IT-Grundschutz.
Pregled
Kompendij BSI IT-Grundschutz1) določa varnostne zahteve za IT-sisteme. Ta stran dokumentira, kako WvdS izpolnjuje ustrezne gradnike.
Kripto-koncept"] CON5["CON.5
Upravljanje
ključev"] OPS115["OPS.1.1.5
Beleženje"] APP31["APP.3.1
Spletne aplikacije"] NET31["NET.3.1
Usmerjevalniki/stikala"] end subgraph WVDS["WvdS PQ-Crypto"] CFG["CryptoConfig"] KDF["KeyDerivation"] LOG["Revizijski dogodki"] TLS["TLS-razširitve"] CERT["X.509 certifikati"] end CON1 --> CFG CON5 --> KDF OPS115 --> LOG APP31 --> TLS NET31 --> CERT style CFG fill:#4caf50,color:#fff style KDF fill:#4caf50,color:#fff style LOG fill:#4caf50,color:#fff style TLS fill:#4caf50,color:#fff style CERT fill:#4caf50,color:#fff
CON.1 Kripto-koncept
Gradnik: Koncepti in postopki - Kripto-koncept2)
| Zahteva | BSI-ID | WvdS-izvedba | Status |
|---|---|---|---|
| Izbira primernih kriptografskih postopkov | CON.1.A1 | ML-DSA (FIPS 204), ML-KEM (FIPS 203) | ✅ |
| Varnostna kopija kriptografskih ključev | CON.1.A2 | KeyDerivation, PEM-izvoz s šifriranjem | ✅ |
| Šifriranje komunikacije | CON.1.A3 | TLS 1.3 s PQ-algoritmi | ✅ |
| Primerne dolžine ključev | CON.1.A4 | ML-DSA-44/65/87, ML-KEM-512/768/1024 | ✅ |
| Dokumentiranje kripto-koncepta | CON.1.A5 | Dokumentacija konceptov | ✅ |
| Redna preverjanja | CON.1.A6 | Verzioniran API, NIST-skladnost | ✅ |
Podrobnosti izvedbe
CON.1.A1 - Izbira primernih kriptografskih postopkov:
// WvdS uporablja izključno NIST-standardizirane algoritme CryptoConfig.DefaultMode = CryptoMode.Hybrid; // Razpoložljivi algoritmi: // - ML-DSA-44/65/87 (NIST FIPS 204) // - ML-KEM-512/768/1024 (NIST FIPS 203) // - RSA-2048/3072/4096 (klasično) // - ECDSA P-256/384/521 (klasično)
CON.1.A4 - Primerne dolžine ključev:
Dolžine ključev ustrezajo BSI-priporočilom3):
| Algoritem | Varnostna raven | BSI-priporočilo |
|---|---|---|
| ML-DSA-44 | NIST Level 2 (~128 bitov) | Kratkoživljajoči certifikati |
| ML-DSA-65 | NIST Level 3 (~192 bitov) | Standardno priporočilo |
| ML-DSA-87 | NIST Level 5 (~256 bitov) | Najvišja varnost |
CON.5 Razvoj in uporaba sistemov za upravljanje ključev
Gradnik: Upravljanje ključev4)
| Zahteva | BSI-ID | WvdS-izvedba | Status |
|---|---|---|---|
| Analiza zahtev | CON.5.A1 | Dokumentiran API, scenariji | ✅ |
| Generiranje ključev | CON.5.A2 | OpenSSL 3.6 CSPRNG | ✅ |
| Shranjevanje ključev | CON.5.A3 | Šifriran PEM-izvoz | ✅ |
| Distribucija ključev | CON.5.A4 | X.509-certifikati, CSR-potek | ✅ |
| Izpeljava ključev | CON.5.A5 | HKDF, PBKDF2, Argon2id | ✅ |
| Uničenje ključev | CON.5.A6 | SecureZeroMemory, IDisposable | ✅ |
| Arhiviranje ključev | CON.5.A7 | PEM/PFX z zaščito z geslom | ✅ |
Podrobnosti izvedbe
CON.5.A5 - Izpeljava ključev:
Funkcije za izpeljavo ključev ustrezajo BSI-priporočilom5) in NIST-standardom6).
// HKDF (RFC 5869) za izpeljavo ključev var derivedKey = KeyDerivationExtensions.DeriveKey( sharedSecret, salt: cryptoRandom, info: contextInfo, outputLength: 32, HashAlgorithmName.SHA256 ); // Argon2id za izpeljavo na podlagi gesla (Memory-Hard) var key = OpenSslKdf.Argon2id( password, salt, outputLength: 32, iterations: 3, memoryKiB: 65536, // 64 MB parallelism: 4 );
CON.5.A6 - Uničenje ključev:
// Samodejno uničenje ključev preko IDisposable using var keyPair = ctx.GenerateKeyPair(PqAlgorithm.MlDsa65); // ... uporaba ... // Dispose() pokliče SecureZeroMemory na bajtih zasebnega ključa
OPS.1.1.5 Beleženje
Gradnik: Beleženje7)
| Zahteva | BSI-ID | WvdS-izvedba | Status |
|---|---|---|---|
| Ustvarjanje smernic za beleženje | OPS.1.1.5.A1 | Dokumentirani dogodki | ✅ |
| Zagotavljanje celovitosti | OPS.1.1.5.A3 | Podpisani revizijski dnevniki | ⏳ |
| Zaščita podatkov beleženja | OPS.1.1.5.A4 | Šifrirani dnevniki | ⏳ |
Dogodki za beleženje
| Dogodek | Podatki | Namen |
|---|---|---|
| KeyGeneration | Algorithm, KeyId, Timestamp | Revizijska sled |
| CertificateCreation | Subject, Serial, Validity | Nadzor PKI |
| SignatureOperation | KeyId, DataHash, Mode | Sledljivost |
| ValidationResult | CertChain, Status, Reason | Varnostni nadzor |
APP.3.1 Spletne aplikacije in spletne storitve
Relevantnost: TLS-konfiguracija za spletne strežnike
| Zahteva | BSI-ID | WvdS-izvedba | Status |
|---|---|---|---|
| TLS-šifriranje | APP.3.1.A14 | Hibridni TLS-certifikati | ✅ |
| Varna avtentikacija | APP.3.1.A15 | mTLS s PQ-certifikati | ✅ |
// Hibridni strežniški certifikat za TLS var serverCert = request.CreateServerCertificate( intermediateCa, dnsNames: new[] { "api.example.com" }, mode: CryptoMode.Hybrid // ECDSA + ML-DSA );
NET.3.1 Usmerjevalniki in stikala
Relevantnost: Omrežne naprave s certifikati
| Zahteva | BSI-ID | WvdS-izvedba | Status |
|---|---|---|---|
| Zavarovanje upravljalskega dostopa | NET.3.1.A4 | mTLS-certifikati | ✅ |
| Varni protokoli | NET.3.1.A9 | SSH/TLS s PQ | ✅ |
Kontrolni seznam dokazil za revizorje
Za BSI-revizije uporabite ta kontrolni seznam:
| # | Kontrolna točka | Dokazilo | ✓ |
| — | —————– | ———- | — |
| 1 | Kripto-koncept dokumentiran | Koncepti | ☐ |
| 2 | NIST-skladni algoritmi | Reference FIPS 203/204 | ☐ |
| 3 | Generiranje ključev preko CSPRNG | Izvorna koda OpenSSL 3.6 | ☐ |
| 4 | Izpeljava ključev dokumentirana | KeyDerivation API | ☐ |
| 5 | Varno uničenje ključev | Vzorec IDisposable v kodi | ☐ |
| 6 | Hibridna kriptografija | CryptoMode.Hybrid | ☐ |
| 7 | Upravljanje certifikatov | PKI-scenariji | ☐ |
BSI TR-03116 (Kriptografske zahteve)
Tehnična smernica BSI TR-031168) določa konkretne kriptografske zahteve:
| Zahteva | TR-03116 del | WvdS-skladnost |
|---|---|---|
| TLS 1.3 Cipher Suites | Del 4 | ✅ Podprto |
| Podpisni algoritmi | Del 1 | ✅ ML-DSA (NIST) |
| Izmenjava ključev | Del 4 | ✅ ML-KEM (NIST) |
| Zgoščevalne funkcije | Del 1 | ✅ SHA-256/384/512 |
Nadaljnje branje
Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional