Kategorien
PowerShell Sonstiges Windows Server

TLS1.3 in Windows?

TLS1.3 in Windows 10 / Windows Server

Wie hier bereits angedeutet scheint sich im Bereich Windows und TLS1.3 langsam(?) was zu tun?!

Ein Blick auf die in Windows 10 1903 unterstützten TLS Versionen und Cipher macht leider noch nicht viel Hoffnung. Ebenfalls findet sich bei Microsoft nicht wirklich viel zum Thema außer z.B. dieser Blogeintrag oder der ein und andere Forenbeitrag, wann es (endlich) implentiert wird.

Zufällig bin ich in den Microsoft Docs über SecurityProtocolType gestoßen, welcher ab der Dot Net Version 4.8 folgenden Eintrag erhält:

Tls13 – 12288 – Specifies the TLS 1.3 security protocol. The TLS protocol is defined in IETF RFC 8446.

https://docs.microsoft.com/en-us/dotnet/api/system.net.securityprotocoltype?view=netframework-4.8

Nach einer Installation vom .Net Framework 4.8 auf einem Windows Server 2016 bzw. auch auf einem Windows 10 1909 vermeldet die PowerShell nach Eingabe folgender Codezile tatsächlich „Tls13“.

[enum]::GetValues('Net.SecurityProtocolType')

# Output
SystemDefault
Ssl3
Tls
Tls11
Tls12
Tls13
TLS 1.3 ProtocolType nach .Net 4.8

Das Setzen des „TLS 1.3 Registry Keys“ in „HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols“ brachte weder auf einem Server (2016 / 2019) noch Client OS in aktueller Version eine Abhilfe.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3]

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Client]
"Enabled"=dword:00000001
"DisabledByDefault"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Server]
"DisabledByDefault"=dword:00000000
"Enabled"=dword:00000001

Leider scheitern sämtliche Versuche die PowerShell (oder auch das Tool SSLWrapperDemo (Das Zip File enthält die kompilierte EXE. (Wer nicht selber kompilieren möchte.))) per Invoke-WebRequest mit einem TLS1.3-fähigen Webserver zu verbinden. Vermutlich weil mir die passenden Cipher / Cipher Suites noch nicht geläufig sind..

# Ausgeben der derzeigiten Protokolle
[Net.ServicePointManager]::SecurityProtocol

# Output
Tls, Tls11, Tls12

# Nur TLS1.3 erlauben und google.com aufrufen
[Net.ServicePointManager]::SecurityProtocol = 'Tls13'
try{
    Invoke-WebRequest -Uri https://www.google.com
} catch{
    $_.Exception.Message
    $_.Exception.Status
}

# Output :(
Die Anfrage wurde abgebrochen: Es konnte kein geschützter SSL/TLS-Kanal erstellt werden..
SecureChannelFailure

Den bislang ersten Lichtblick gab es dann mit einer Windows 10 Insider Build (2004 19035.1). Nachdem die o.g. Registry Keys gesetzt wurden, war es immerhin möglich mit der SSLWrapperDemo.exe eine TLS 1.3 gesicherte Verbindung unter Windows zu unserem Netscaler bzw. auch zu Google herzustellen – Yay!:

Update: Heute, am 19.07.2020, habe ich mich eher zufällig in die „Internetoptionen“ (inetcpl.cpl) verirrt und dort doch glatt eine kleine Neuerung gefunden: TLS1.3 verwenden (experimentell). Vorweg: Das Abhaken von TLS1.0 bi TLS1.2 ermöglicht leider noch keinen Aufruf von Google oder unseres Citrix ADCs :(.

Internet Explorer TLS1.3

Hier noch eine kurze Information zum neuen Microsoft Edge auf Chromium Basis. Dieser unterstützt, wie eigentlich alle Chromium-basierten Browser TLS in der Version 1.3.

TLS 1.3 im Microsoft Edge auf Chromium-Basis

Update II: Am 20.08.2020 hat Microsoft diesen Blog Beitrag veröffentlicht und dort erklärt, dass ab der Windows 10 Insider Build 20170 TLS 1.3 standardmäßig aktiviert wird. Da ich zuletzt die beiden Hyper-V Hosts in meinem Homelab auf die Windows Server vNext LTSC 2004 Build 20201 aktualisiert habe, konnte ich einen Test im Internet Explorer machen, welcher erfolgreich eine TLS 1.3 Verbindung zu https://www.google.de aufbaute.

TLS 1.3 Support unter Server vNext 2004 Build 20201 bzw. ab Windows 10 Insider Build 20170.
TLS 1.3 Support unter Server vNext 2004 Build 20201 bzw. ab Windows 10 Insider Build 20170.

Da die VM nicht umsonst „JANs-IIS01“ heißt, habe ich auch gleich testweise einen IIS installiert und ein SSL Binding hinzugefügt. Ohne weitere Anpassungen begrüßte mich dann ebenfalls (serverseitiges) TLS1.3:

Es bleibt dabei: To be continued… (Aber wir nähern uns dem Ende :))

P.S.: „Viel“ Aufwand für wenig etwas Ergebnis. 🙂

6 Antworten auf „TLS1.3 in Windows?“

Es ist nicht ganz korrekt was du schreibst mit Windows 10 Build 2004. TLS 1.3 funktioniert dort nicht, auch wenn der TLS 1.3 client enabled ist. Hier result von dem sslwarpperdemo:

Sending request
Getting response
Server requested renegotiation
Failed to perform SSL/TLS client handshake renegotiation, Error:0x80090326
Unknown socket exception: Error:0x80090326

Das liegt daran dass Microsoft immer noch eine Draft implementation liefert. Ist uebrigens auch im neusten Insider build immer noch so.

Hi Mat,

ich hatte das damals mit der 2004 Insider Build gemacht. Ich schau mal, ob ich am Wochenende / nächste Woche Zeit finde. Dann stelle ich das nochmal mit der aktuellen 2004 oder einer neueren Insider nach.

Zu welcher Gegenstelle versuchst du dich zu verbinden?

Viele Grüß
Jan

Hi,
da vor kurzem die neue Windows Server vNext 2004 LTSC Build 20201 gekommen ist, habe ich dort einfach nochmal getestet (und recherchiert). Dabei bin ich auf https://www.microsoft.com/security/blog/2020/08/20/taking-transport-layer-security-tls-to-the-next-level-with-tls-1-3/ vom 20.08 gestoßen, wo bekanntgegeben wird, dass TLS 1.3 ab der Win 10 Insider ab Build 20170 „by default“ aktiviert wird. Der Test mit der vNext ist jedenfalls sowohl für die Client- wie auch die (IIS) Server-Seite erfolgreich.
Viele Grüße
Jan

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.