Hallo,
ich entwickle einen WebSocket Server, der das WSS Protokoll unterstützen soll. Dazu soll beim Handshake TLS 1.3 verwendet werden.
Bei TLS 1.3 werden Named Groups im Handshake-Protokoll verwendet:
Private Enum TLSNamedGroup
secp256r1 = &H17 'ECDHE Elliptic Curve Group
secp384r1 = &H18 'ECDHE Elliptic Curve Group
secp521r1 = &H19 'ECDHE Elliptic Curve Group
x25519 = &H1D 'ECDHE Elliptic Curve Group
x448 = &H1E 'ECDHE Elliptic Curve Group
ffdhe2048 = &H100 'DHE Finite Field Group
ffdhe3072 = &H101 'DHE Finite Field Group
ffdhe4096 = &H102 'DHE Finite Field Group
ffdhe6144 = &H103 'DHE Finite Field Group
ffdhe8192 = &H104 'DHE Finite Field Group
End Enum
Chrome z.B. sendet in client_hello key_share per default die Gruppe &H1D (x25519) mit den dazu passenden Parametern.
Ich verwende CNG BCrypt-Funktionen zum Generieren der Schlüsselpaare. Nun stelle ich fest, dass Microsoft die ECDHE Kurven erst ab Windows 10, Server 2016 anbietet. TLS 1.3 ist das sicherste Protokoll für https. Ich finde, es ist ein Unding, dass sicherheitsrelevante Betriebssystem-Teile nicht in Produkten, die von Microsoft noch gewartet werden, übernommen werden. Diese Politik zwingt Win7 und Win8, Server 2008, Server2012 User, TLS 1.2 zu verwenden. Als Software-Lieferant kann ich Unternehmen nicht zum Umstieg zwingen.
https://docs.microsoft.com/en-us/windows/desktop/seccng/cng-named-elliptic-curves
Beginning in Windows 10, CNG provides support for the following named elliptic curves (ANSI X9.62, X9.63, FIPS 186-2).
**BCRYPT\_ECC\_CURVE\_25519**
René Rössler