PDA

View Full Version : TLS 1.2 support for Windows XP



anon
30.05.18, 09:10
The included readme tells you everything you need to know, but I'll quote the most relevant parts:


NOTE: This patch only works on the x86 edition of Windows XP. It won't
work on the x64 edition or Windows Server 2003, and attempts at applying
it to either will completely break your system.

Here's the list of things you will have after doing all this:
* Support for the TLS 1.1 and 1.2 protocols on programs that use
Schannel and do not specify one by default (e.g. uTorrent)
* Support for the AES 128 and 256 ciphers on programs that use Schannel
(most Windows and .NET apps)
* Support for SHA-128, 256 and 512 certificate signatures
* A more secure setup that disables most cipher suites known to be weak
or insecure as of April 2019

And the things you _won't_ have:
* TLS 1.1 and 1.2 support on Internet Explorer 8
* Forward secrecy and elliptic curve encryption ciphers
* Server Name Indication (an extension that's unrelated to the protocol
version in use and not implemented by Microsoft)
* TLS session tickets (same)


If you're getting a "received an unexpected EOF or 0 bytes from the transport stream" on mRatio or RatioMaster Plus under Windows XP, installing this may fix it. Unfortunately, I was unable to get either program to use TLS 1.2 no matter what I tried (up to and including stealing a copy of System.dll from newer versions of the .NET Framework), so they're stuck with TLS 1.0.

Enjoy!


http://www.sb-innovation.de/attachment.php?attachmentid=18813

anon
05.08.18, 04:19
As it turns out, you can get TLS 1.1 and 1.2 support on IE8 if you uncomment a certain block of the attached registry file that says otherwise and install KB4339093...

http://www.sb-innovation.de/attachment.php?attachmentid=18997

Of course, there's no forward secrecy or SNI, and Internet Explorer 8 is still Internet Explorer 8, but if you're reading this thread you probably don't care :smilie4:

lost.keys
02.10.18, 03:32
WTF, Waffles is working on XP again!!! They only use HTTPs tracker announcer and thanks to this method, it is now possible to use uTorrent with Waffles & any other tracker using HTTPs announcers. Very underappreciated post right there, people...

God, how I love SB-Innovation, for many years now... Anon & Lucius - you guys are some kult personnes

anon
04.10.18, 03:32
This was just a throwaway project of mine until someone reported mRatio was broken on Waffles under Windows XP, and version 1 of this patch solved the problem. At that point, I decided to improve it with files from newer security updates and give it a separate thread. It took me two days to test and put everything together, so I'm glad it was useful :happy: I can't believe Microsoft never added support for the AES cipher through a "normal" update during the 13 years Windows XP was officially supported.

Also, you are fortunate Waffles is apparently hosted on a dedicated server (as this patch doesn't add SNI support), and to a lesser degree that it supports the cipher suites listed above, though the latter isn't likely to change soon. A lot of sites still allow the relatively unsafe combination of RSA, AES and SHA1 (which by the way is all mRatio can do under XP even after installing this, due to its reliance on .NET 2.0).

DashingDave
16.10.18, 08:50
This information is very useful. It works perfectly as it should on Windows 7.
I hope XP guys can make it work though! Everything needs a little effort.

anon
01.05.19, 05:22
A new version of the patch is out, please redownload and reapply.

You're highly encouraged to read this (https://msfn.org/board/topic/171814-posready-2009-updates-ported-to-windows-xp-sp3-enu/), apply the POSReady registry tweak, and install all available updates before Microsoft shuts the Windows Update site down on July. They will add a variety of improvements and security fixes.

Abarth
19.08.19, 21:06
Hallo anon,

ich hoffe es ist in Ordnung, wenn ich auf Deutsch schreibe.

Ich habe den neuen Patch in WinXP SP3 installiert.
Es lief alles ohne Probleme ab.

Wenn ich aber mit dem IE8 https://www.howsmyssl.com/ aufrufe, wir mir weiterhin nur TLS 1.0 angezeigt.

Auch ein anderes Programm, welches auf .net basiert hat weiterhin folgende Fehlermeldung:
===========================================
Socket Fehler: GetRequestStreamCallback System.Net.WebException: Die zugrunde liegende Verbindung wurde geschlossen: Unerwarteter Fehler beim Senden.. ---> System.IO.IOException: Unerwartetes Dateiende oder 0 Bytes vom Transportstream erhalten.
bei System.Net.TlsStream.EndWrite(IAsyncResult asyncResult)
bei System.Net.PooledStream.EndWrite(IAsyncResult asyncResult)
bei System.Net.ConnectStream.WriteHeadersCallback(IAsy ncResult ar)
--- Ende der internen Ausnahmestapelüberwachung ---
bei System.Net.HttpWebRequest.EndGetRequestStream(IAsy ncResult asyncResult, TransportContext& context)
bei System.Net.HttpWebRequest.EndGetRequestStream(IAsy ncResult asyncResult)
bei AlfSocketNet.AlfSocket.GetRequestStreamCallback(IA syncResult asynchronousResult)
===========================================

Was kann/muss ich noch ändern?

Viele Grüße.

anon
21.08.19, 17:30
Um TLS 1.2 Support für den IE8 zu erreichen, muss zunächst KB4493435 installiert werden (https://www.catalog.update.microsoft.com/Search.aspx?q=KB4493435). Danach müssen folgende Befehle ausgeführt werden.


reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Int ernet Settings" /v "SecureProtocols" /t REG_DWORD /d 0xa80 /f
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Int ernet Settings" /v "SecureProtocols" /t REG_DWORD /d 0xa80 /f

reg delete "HKLM\SOFTWARE\Microsoft\Internet Explorer\AdvancedOptions\CRYPTO\TLS1.1" /v "OSVersion" /f
reg delete "HKLM\SOFTWARE\Microsoft\Internet Explorer\AdvancedOptions\CRYPTO\TLS1.2" /v "OSVersion" /f

reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Int ernet Settings\WinHttp" /v "DefaultSecureProtocols" /t REG_DWORD /d 0xa80 /f

Bei .NET-basierten Programmen ist unter Windows XP leider kein TLS über Version 1.0 möglich. Egal welche .NET-Framework Version benutzt wird oder welche Workarounds du probierst.

Abarth
21.08.19, 17:45
Ok, danke.
Der IE8 ist eigentlich nicht so wichtig, da ich einen anderen Browser verwende.

.NET wäre wichtiger...

Meinst du, dass ich trotzdem alle Updates von POSReady in WinXP installieren sollte?

In 2017 habe ich die bis dahin aufgeführten POSReady-Updates installiert.
Ist da noch Wichtiges dazu gekommen?

Nachtrag:
Verändert der Patch (DLL oder Registry) auch die Anzeige der Schriften?
Ich habe seit der Änderung bei einem .NET basierenden Programm eine veränderte Schrift. Diese ist unscharf. Aber nicht alle Texte bei dem Programm, sondern nur einige davon.

Was muss ich ggf. ändern?

anon
24.08.19, 02:07
Der IE8 ist eigentlich nicht so wichtig, da ich einen anderen Browser verwende.

Ich empfehle den Browser New Moon (http://rtfreesoft.blogspot.com/search/label/browser). Dieser wird noch regelmäßig aktualisiert und unterstützt Windows XP.


Meinst du, dass ich trotzdem alle Updates von POSReady in WinXP installieren sollte?

In 2017 habe ich die bis dahin aufgeführten POSReady-Updates installiert.
Ist da noch Wichtiges dazu gekommen?

Wenn deine CPU SSE2 Instruktionen unterstützt, was sie tut, wenn sie innerhalb der letzten 15 Jahre hergestellt wurde, empfehle ich die POSReady Updates zu installieren. Seit 2017 gab es viele Updates (einschließlich eines präventiven Fixes für eine besonders kritische Sicherheitslücke) und diese sind alle praxiserprobt. Das einzige Problem auf welches du stoßen kannst betrifft den Windows Installer, der unter Umständen nicht mehr funktioniert. Dies kann aber mit den folgenden Befehlen behoben werden.

sc stop MSIServer
regsvr32 /u /s msi.dll
regsvr32 /s msi.dll


Verändert der Patch (DLL oder Registry) auch die Anzeige der Schriften?

Nein, der Patch verändert nichts in Bezug auf die Schriften. Ich habe dein Problem während meiner Tests nicht nachvollziehen können, weshalb ich keine Idee habe, was dies verursacht haben könnte.

Abarth
25.08.19, 20:14
Hallo anon,

alle POSReady-Updates drin.
TLS 1.2 funktioniert beim IE8 noch nicht, aber das ist egal.

Aber ich habe ein anderes Problem.
Und zwar bei einem Programm, welches auf .NET basiert, meldet einen Fehler, wenn ich die Datenbank im Programm reorganisiere.

Es kommt folgender Fehler:
Die Anweisung "0x099c13bf" verweist auf Speicher bei "0x00000000". Die Daten wurden wegen eines E/A-Fehlers in "0x00000000...75b1b11c" nicht in den Arbeitsspeicher übertragen.

Das Programm läuft sonst fehlerfrei.
Wenn ich den Reorg von einem anderen Rechner im Netz starte (ohne POSReady-Updates), dann läuft der Reorg fehlerfrei durch.

An was kann das liegen?

anon
29.08.19, 00:12
alle POSReady-Updates drin.
TLS 1.2 funktioniert beim IE8 noch nicht, aber das ist egal.

Du musst wahrscheinlich das .reg File erneut ausführen. Auch beim echten POSReady mit allen installierten Updates, ist TLS 1.1 und TLS 1.2 standardmäßig deaktiviert und muss manuell aktiviert werden (was die Registry-Befehle tun).


Aber ich habe ein anderes Problem.
Und zwar bei einem Programm, welches auf .NET basiert, meldet einen Fehler, wenn ich die Datenbank im Programm reorganisiere.

Es kommt folgender Fehler:
Die Anweisung "0x099c13bf" verweist auf Speicher bei "0x00000000". Die Daten wurden wegen eines E/A-Fehlers in "0x00000000...75b1b11c" nicht in den Arbeitsspeicher übertragen.

Das Programm läuft sonst fehlerfrei.
Wenn ich den Reorg von einem anderen Rechner im Netz starte (ohne POSReady-Updates), dann läuft der Reorg fehlerfrei durch.

An was kann das liegen?

Wenn deine CPU keine SSE2 Unterstützung hat, solltest du die Updates ab August 2018 nicht installieren. Microsoft hat dort nämlich angefangen, die Binaries mit SSE2 Instruktionen zu kompilieren. Dies führt dann zu merkwürdigen Fehlern wie du ihn hast. Das Gleiche gilt auch für Windows 7 Updates die zur gleichen Zeit rauskamen.

Ansonsten habe ich keine Idee :gsorry: Ich habe bei .NET Programmen keine derartigen Probleme und habe darüber auch keine Meldungen im MSFN.org Forum gefunden, welches ich aktiv verfolge.

Es wäre auch immer noch möglich, dass eins oder mehrere .NET-Framework Updates kaputt sind. In diesem Fall wäre es sinnvoll, die Updates eins nach dem anderen zu deinstallieren, bis du das kaputte Update gefunden hast.

Abarth
29.08.19, 10:12
Du musst wahrscheinlich das .reg File erneut ausführen. Auch beim echten POSReady mit allen installierten Updates, ist TLS 1.1 und TLS 1.2 standardmäßig deaktiviert und muss manuell aktiviert werden (was die Registry-Befehle tun).

Das habe ich gemacht und die Einträge sind auch in der Reg drin.



Wenn deine CPU keine SSE2 Unterstützung hat, solltest du die Updates ab August 2018 nicht installieren. Microsoft hat dort nämlich angefangen, die Binaries mit SSE2 Instruktionen zu kompilieren. Dies führt dann zu merkwürdigen Fehlern wie du ihn hast. Das Gleiche gilt auch für Windows 7 Updates die zur gleichen Zeit rauskamen.

Ansonsten habe ich keine Idee :gsorry: Ich habe bei .NET Programmen keine derartigen Probleme und habe darüber auch keine Meldungen im MSFN.org Forum gefunden, welches ich aktiv verfolge.

Es wäre auch immer noch möglich, dass eins oder mehrere .NET-Framework Updates kaputt sind. In diesem Fall wäre es sinnvoll, die Updates eins nach dem anderen zu deinstallieren, bis du das kaputte Update gefunden hast.

Es ist ein Phenom II x4 945 verbaut, welcher SSE2, SSE3, SSE4a hat.
Daran sollte es nicht liegen.

Wenn ich den Reorg aufrufe, dann wird ja wahrscheinlich aus dem Programm heraus ein anderes Programm gestartet. Gibt es eine Möglichkeit aufzuzeichnen, was hier im Hintergrund passiert? Dann könnte ich schauen, welches Programm/Datei hier in Frage kommt.

anon
02.09.19, 03:59
Das habe ich gemacht und die Einträge sind auch in der Reg drin.

Naja, selbst mit TLS 1.2 wäre der Internet Explorer 8 immer noch ein veralteter Browser, der nur die einfachsten Seiten korrekt darstellen kann. Ganz zu schweigen von einem fehlenden Update oder Patch für SNI-Zertifikats-Support (was mittlerweile für viele sichere Server benötigt wird). Also sollte das auf jeden Fall kein großes Problem sein =]


Es ist ein Phenom II x4 945 verbaut, welcher SSE2, SSE3, SSE4a hat.
Daran sollte es nicht liegen.

Wenn ich den Reorg aufrufe, dann wird ja wahrscheinlich aus dem Programm heraus ein anderes Programm gestartet. Gibt es eine Möglichkeit aufzuzeichnen, was hier im Hintergrund passiert? Dann könnte ich schauen, welches Programm/Datei hier in Frage kommt.

Ich würde für diese Aufgabe den Process Monitor 3.10 empfehlen (siehe https://superuser.com/questions/1131344/) oder alternativ Event Monitor Service (https://www.novirusthanks.org/products/event-monitor-service/).

Abarth
21.09.19, 02:12
Ich bin jetzt auf was gestoßen, was mit dem Fehler zusammen hängt:
Es kommt folgender Fehler:
Die Anweisung "0x099c13bf" verweist auf Speicher bei "0x00000000". Die Daten wurden wegen eines E/A-Fehlers in "0x00000000...75b1b11c" nicht in den Arbeitsspeicher übertragen.

Und zwar soll es an der ntdll.dll liegen, welche in der deutschen Version bei den POS-Updates fehlerhaft sein soll.

Ich wollte diese gegen eine ältere Version ersetzen, aber das klappt einfach nicht.
Wie kann ich diese austauschen und ist das dann problemlos möglich, so dass keine weiteren Fehler kommen?

Abarth
23.09.19, 19:45
Sporadisch tritt ein weiterer Fehler auf, welcher in der Ereignisanzeige folgende Information hinterlässt:
Anwendungspopup: Windows - AUSNAHMEFEHLER: Die Registrierung des NaT-Verbrauchs ist fehlgeschlagen. Ein NaT-Wert wurde durch eine nicht spekulative Anweisung verbraucht.

Bei den weiteren Informationen hierzu wird wieder die "ntdll.dll" aufgeführt.

Was kann ich hier machen?

anon
25.09.19, 04:06
Hi, entschuldige die späte Antwort.

Zunächst mal gibt es einen Bug in nicht englischen Versionen der ntdll.dll, welcher dazu führt, dass Text-Strings um eins verschoben werden. Deshalb siehst du die Fehlermeldungen über die NaT-Werte (was nebenbei bemerkt nur bei Itanium Prozessoren auftritt, welche für Desktop-Systeme inzwischen nicht mehr benutzt werden). Dieser (https://msfn.org/board/topic/171814--/?do=findComment&comment=1166938) Beitrag erklärt das Problem und beinhaltet die Lösung.

Allerdings ist der Fehler nur kosmetischer Natur, weshalb es nicht den wichtigsten Fehler behebt, der das Programm vom Laufen abhält. Wenn du die ntdll.dll durch eine ältere Version ersetzen möchtest, um zu überprüfen, ob dass das Problem behebt, enthält der MSFN Beitrag eine entsprechende Vorgehensweise dafür. Mein bevorzugter Weg wäre allerdings in irgendein Wiederherstellungs-System zu booten (Hiren's Mini XP, Parted Magic, etc.), die aktuelle Datei umzubenennen und die neue einzufügen.

Abarth
25.09.19, 11:59
Hallo anon,

ich habe noch eine "ältere" Version der ntdll.dll auf einer Sicherung, welche ich vor dem letzten Update gemacht hatte.
Nun ist aber die Frage, ob ich die ntdll.dll einfach gegen die alte austauschen kann, oder ob es hier evtl. Probleme mit anderen Dateien kommt, welche mit der "alten" ntdll.dll nicht zurecht kommen.

Und das nächste ist, dass ich die nicht einfach austauschen kann.
Egal was ich mache, die wird immer wieder durch die neue ersetzt.

Selbst wenn ich diese umbenne, wird die umbenannte dafür hergenommen.
Die ist dann vom löschen gesperrt.

So wie es den Anschein hat ist dies so eine wichtige DLL, dass die gar nicht verändert werden kann.

Oder wie kann ich das machen?

anon
27.09.19, 04:25
Nun ist aber die Frage, ob ich die ntdll.dll einfach gegen die alte austauschen kann, oder ob es hier evtl. Probleme mit anderen Dateien kommt, welche mit der "alten" ntdll.dll nicht zurecht kommen.

Gut, das Mischen von alten und neuen Systemdateien ist für gewöhnlich keine gute Idee, insbesondere bei so kritischen wie ntdll. Es gibt natürlich keine Garantie dass nichts schief geht, aber da du die Änderung jederzeit rückgängig machen kannst, ist es defintiv einen Versuch wert.


Und das nächste ist, dass ich die nicht einfach austauschen kann.
Egal was ich mache, die wird immer wieder durch die neue ersetzt.

Selbst wenn ich diese umbenne, wird die umbenannte dafür hergenommen.
Die ist dann vom löschen gesperrt.

Du musst die Datei offline austauschen (z. B. mit einer Live-Boot-CD) und außerdem die Kopien in den folgenden Verzeichnissen löschen oder ersetzen:

c:\windows\system32\dllcache
c:\windows\servicepackfiles\i386

Andernfalls "repariert" Windows die ersetzten Dateien immer wieder mit den Originalen.

anon
04.04.20, 08:22
Apparently, this update from blackwingcat (well-known for his stellar efforts at keeping Windows 2000 relevant) makes .NET 4.0 programs able to use TLS 1.2 under XP. I don't have time to try it, but for those who do, here you are. This is an unofficial patch that modifies important system files, so make backups beforehand and don't blame him or me if something goes wrong.

Original source (in Japanese): http://blog.livedoor.jp/blackwingcat/archives/1986401.html

I only slightly rewrote the installer so that it works when extracted from this archive, does not check the system language, and applies all Schannel registry values. Everything else is his work. You'll need to reboot manually after NGEN finishes.

hollenwollen
30.04.20, 03:35
Apparently, this update from blackwingcat (well-known for his stellar efforts at keeping Windows 2000 relevant) makes .NET 4.0 programs able to use TLS 1.2 under XP. I don't have time to try it, but for those who do, here you are. This is an unofficial patch that modifies important system files, so make backups beforehand and don't blame him or me if something goes wrong.

Original source (in Japanese): http://blog.livedoor.jp/blackwingcat/archives/1986401.html

I only slightly rewrote the installer so that it works when extracted from this archive, does not check the system language, and applies all Schannel registry values. Everything else is his work. You'll need to reboot manually after NGEN finishes.

Hey anon I am on windows 10 and still having this issue in two different trackers. if i apply this would it work on windows 10? thanks!

anon
30.04.20, 18:07
Hey anon I am on windows 10 ... if i apply this ...

Don't! This is for Windows XP only, and experimental and untested on top of that.

For mRatio, you'll have to install and use 34407. For RatioMaster Plus, see 352891 to enable TLS 1.2 support for it and all .NET-based programs (in theory) with no need to do anything else.