====== 1.3 Primerjava z .NET 10 ====== Zakaj WvdS.System.Security.Cryptography namesto .NET 10 PQC? ---- ===== .NET 10 PQC-podpora ===== Microsoft je v .NET 10 (Preview, GA november 2025) vgradil nativno PQC-podporo((Microsoft .NET 10 PQC: https://learn.microsoft.com/en-us/dotnet/api/system.security.cryptography?view=net-10.0)): * ''MLDsa'' / ''MLDsaCng'' / ''MLDsaOpenSsl'' – ML-DSA podpisi * ''MLKem'' / ''MLKemCng'' / ''MLKemOpenSsl'' – ML-KEM enkapsulacija ključev * ''SlhDsa'' / ''SlhDsaCng'' / ''SlhDsaOpenSsl'' – SLH-DSA podpisi * ''CompositeMLDsa'' – Hibridni pristop (ročno) ---- ===== Prednosti naše rešitve ===== ^ Vidik ^ Microsoft .NET 10 ^ WvdS-rešitev ^ | **Razpoložljivost** | .NET 10+ (november 2025) | .NET 8.0+ (že na voljo) | | **Migracijska strategija** | Nov API, spremembe kode | Drop-in zamenjava, 2 vrstici | | **Hibridni način** | Ročno preko ''CompositeMLDsa'' | Samodejno z ''CryptoMode.Hybrid'' | | **Obstoječa koda** | Mora biti prepisana | Deluje nespremenjeno | | **X.509 integracija** | Novi razredi | Razširja obstoječi ''X509Certificate2'' | | **CMS/PKCS#7** | Ni dokumentirano | Polna podpora | | **RSA/ECDSA razširitve** | Ločeni razredi | Razširja obstoječi ''RSA'', ''ECDsa'' | ---- ===== Migracija: .NET 10 vs. WvdS ===== ==== Z .NET 10 (nov API) ==== // .NET 10: Potrebna popolnoma nova koda using var mlDsa = MLDsa.Create(MLDsaAlgorithm.MLDsa65); byte[] signature = mlDsa.SignData(data); // Hibrid ročno implementirati using var composite = CompositeMLDsa.Create( CompositeMLDsaAlgorithm.MlDsa65Ecdsa256); byte[] hybridSig = composite.SignData(data); // Obstoječa RSA-koda NE deluje več // using var rsa = RSA.Create(); // → brez PQ-podpisa ==== Z WvdS-rešitvijo (Drop-in) ==== using WvdS.System.Security.Cryptography; // Dve vrstici – končano! CryptoConfig.DefaultMode = CryptoMode.Hybrid; // Obstoječa koda samodejno deluje s PQ using var rsa = RSA.Create(4096); byte[] signature = rsa.SignData(data, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1); // → Samodejno vsebuje RSA + ML-DSA podpis ---- ===== Primerjava scenarijev ===== ==== Scenarij 1: Migracija obstoječega projekta ==== **Problem:** Velik projekt s stotinami RSA/ECDSA-klicev. | .NET 10 | Vsako mesto v kodi spremeniti, uporabiti nove razrede | | WvdS | ''CryptoConfig.DefaultMode = CryptoMode.Hybrid;'' – končano | ==== Scenarij 2: Potrebna povratna združljivost ==== **Problem:** Partnerji še ne podpirajo PQC. | .NET 10 | Dve poti kode: klasična za stare, PQ za nove partnerje | | WvdS | Hibridni način: Stari partnerji ignorirajo PQ-razširitev, novi jo validirajo | ==== Scenarij 3: CMS/PKCS#7 dokumentni podpisi ==== **Problem:** Obstoječa ''SignedCms''-integracija. | .NET 10 | Ni dokumentirano, verjetno ročna integracija | | WvdS | ''SignedCmsExtensions'' razširja obstoječi API transparentno | ==== Scenarij 4: X.509-certifikatne verige ==== **Problem:** ''X509Chain.Build()'' naj validira PQ-podpise. | .NET 10 | Potrebni novi razredi verig (nejasno) | | WvdS | Obstoječi ''X509Chain'' deluje, PQ-validacija samodejno | ---- ===== Kdaj izbrati .NET 10? ===== Microsoft .NET 10 PQC je lahko smiselna, ko: * Greenfield projekt (brez obstoječe kodne baze) * Podprt samo .NET 10+ * Ni potrebe po hibridni strategiji * Ni zahtev CMS/PKCS#7 ---- ===== Kdaj izbrati WvdS? ===== WvdS.System.Security.Cryptography je boljši, ko: * Migracija obstoječega projekta * Uporabljena .NET 8.0 ali prejšnje LTS-verzije * Pomembna povratna združljivost (hibridni način) * Potrebni CMS/PKCS#7-podpisi * Želja po minimalnem migracijskem naporu * Takojšnja razpoložljivost (ne čakati na .NET 10 GA) ---- ===== Povzetek ===== ^ Kriterij ^ Priporočilo ^ | Obstoječ projekt | **WvdS** | | .NET 8.0 LTS | **WvdS** | | Hibridna strategija | **WvdS** | | CMS/PKCS#7 | **WvdS** | | Greenfield + samo .NET 10 | .NET 10 ali WvdS | | Samo PQ (brez hibridnega) | Oboje mogoče | **Sklep:** Za večino realnih migracijskih scenarijev ponuja WvdS.System.Security.Cryptography najenostavnejšo in najmanj tvegano pot do post-kvantne kriptografije. ---- ===== Nadaljnje branje ===== * [[..:developer:migration|Migracija]] – Fazna prestavitev * [[..:developer:erste-schritte|Prvi koraki]] – Hitri začetek ---- //Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional// {{tag>konzepte vergleich dotnet10 migration}}