Windows 10 - TLS handshakes falen

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • RangedNeedles
  • Registratie: Juli 2009
  • Niet online
Hey Tweakers

Normaal vind ik altijd wel 'n oplossing op m'n vragen door wat rond te zoeken terwijl ik probeer zo weinig mogelijk mensen lastig te vallen, maar deze keer kom ik er niet echt uit O-)

Ik zit namelijk met het probleem dat TLS handshakes falen wanneer een programma een beveiligde connectie probeert op te zetten. Ik heb dit voor het eerst gemerkt toen ik via npm een bepaalde package wou installeren. Dit faalt na een timeout van 60 seconden met als boodschap:
14 verbose request uri https://registry.npmjs.org/trim
15 verbose request no auth needed
16 info attempt registry request try #1 at 19:53:01
17 verbose request id 6def0452da48b838
18 http request GET https://registry.npmjs.org/trim
19 info retry will retry, error on last attempt: Error: write EPROTO 101057795:error:140943FC:SSL routines:ssl3_read_bytes:sslv3 alert bad record mac:openssl\ssl\s3_pkt.c:1487:SSL alert number 20
19 info retry 101057795:error:1409E0E5:SSL routines:ssl3_write_bytes:ssl handshake failure:openssl\ssl\s3_pkt.c:656:
Aangezien het een nieuwe laptop betreft, ben ik dan maar voortgegaan met het installeren van m'n andere programma's waaronder OpenVPN. Maar ook hier gaat het mis wanneer ik met m'n VPN server probeer te verbinden:
Tue Jan 24 19:45:06 2017 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Tue Jan 24 19:45:06 2017 TLS Error: TLS handshake failed
Ik besef dat VPN servers configureren sowieso wel tricky kan zijn, maar met een Android device en Windows 8.1 laptop kan ik probleemloos verbinden met diezelfde VPN server; en dat al zo'n anderhalf jaar zonder problemen.

Verder ben ik nog geen programma's tegengekomen die ook dienst weigeren - ik ben maar gestopt met het inrichten van m'n laptop - maar ongetwijfeld zijn er wel meerdere.

Ik heb Google al heel wat zoekopdrachten gegeven, maar ben er nog niet echt wijzer uit geworden. Mogelijke oplossingen die je vaak tegenkomt zijn:
  • Tijd- en datuminstellingen
  • Windows en drivers updaten
  • Slechte of geen verbinding met netwerk
Ik heb de desbetreffende applicaties ook al gewhitelist in de Windows Firewall en Windows Defender tijdelijk uitgeschakeld. Maar niets van dit alles leidt tot 'n oplossing |:(

De meer geavanceerdere oplossingen bestaan dan in het monitoren van het netwerkverkeer met Wireshark om bijvoorbeeld de ondersteunde cipher lists te checken maar da's ten eerste wel erg low-level, vind ik, en ten tweede gebruikt npm noch ikzelf exotische encryptieprotocollen. Het 'grappige' is dan ook dat ik via Edge en IE gewoon wél de URL die npm probeert te laden kan bereiken.

Ergens anders zag ik ook nog iemand met hetzelfde probleem die een Skylake processor had en de fout dan maar stak op het ontbreken van Skylake support in Windows 10 wat betreft encryptie, maar dat lijkt me wel vergezocht. Mijn laptop met het probleem is geen Skylake overigens, maar eentje van de Apollo Lake generatie; een Pentium N4200. Ook wel erg nieuw, maar dit zou geen problemen mogen opleveren, toch? Verder heb ik bij het ontvangen van de laptop onmiddellijk schoon schip gemaakt door een Windows 10 Home x64 ISO te flashen op 'n USB stick (met Microsoft's Media Creation Tool) en van daaruit een verse installatie te doen. Dat resulteerde in een Windows 10 Home installatie, versie 1607.

Heeft iemand een idee in welke richting ik een oplossing moet zoeken en/of wat ik nog kan proberen? Eerlijk gezegd heb ik niet veel ideeën meer. Ik ken de basics van encryptie, maar daar stopt het ook namelijk. Het is ook niet dat je Windows even kan vragen z'n SSL/TLS implementatie te updaten :+

Voor alle duidelijkheid, kan je hier de log van npm, hier de log van VPN via UDP en hier de log van VPN via TCP bekijken.

Alvast bedankt! :>

Alle reacties


Acties:
  • 0 Henk 'm!

  • Juup
  • Registratie: Februari 2000
  • Niet online
registry.npmjs.org ondersteunt geen sslv3 meer, zie bv:
https://www.ssllabs.com/s...rg&s=151.101.0.162&latest

Het lijkt erop dat je oude libs (OpenSSL?) gebruikt die geen TLS ondersteunen

Een wappie is iemand die gevallen is voor de (jarenlange) Russische desinformatiecampagnes.
Wantrouwen en confirmation bias doen de rest.


Acties:
  • 0 Henk 'm!

  • RangedNeedles
  • Registratie: Juli 2009
  • Niet online
Juup schreef op donderdag 26 januari 2017 @ 17:46:
registry.npmjs.org ondersteunt geen sslv3 meer, zie bv:
https://www.ssllabs.com/s...rg&s=151.101.0.162&latest

Het lijkt erop dat je oude libs (OpenSSL?) gebruikt die geen TLS ondersteunen
Hmm, inderdaad.. Op zich ook niet zo raar: SSLv3 wordt niet meer als veilig geacht. Maar waarom biedt mijn computer niet aan om de communicatie te beveiligen met iets moderners? Ik dacht dat net die handshake ervoor diende om de ondersteunde protocollen van beide kanten bekend te maken om vervolgens het meest geschikte protocol te kizen. En met een out-of-the-box installatie zou de eindgebruiker zich hier eigenlijk ook niet mee moeten bezighouden -O-

Anyway, ik heb eens een wget (GnuWin32) uitgevoerd op de URL en daarin zie ik het volgende:
Verbinding maken met registry.npmjs.org|151.101.36.162|:443... verbonden.
FOUT: Kan certificaat van registry.npmjs.org (uitgegeven door /C=BE/O=GlobalSign nv-sa/CN=GlobalSign Organization Validation CA - SHA256 - G2) niet controleren:
Kan de autoriteit van de uitgever niet lokaal verifiëren.
FOUT: Naam 'a.sni.fastly.net' in certificaat komt niet overeen met gevraagde hostnaam 'registry.npmjs.org'.
Gebruik '--no-check-certificate' om een onbeveiligde verbinding met registry.npmjs.org te maken.
Kan geen SSL-verbinding maken.
Dus als ik het goed begrijp, kan ik dit oplossen door één of ander certificaat (GlobalSign) lokaal te installeren. Alleen snap ik niet waarom ik dit nooit heb moeten doen op andere computers waarop ik met npm bezig ben. Of waarom dit überhaupt mist op m'n systeem.

Acties:
  • 0 Henk 'm!

  • Jester-NL
  • Registratie: Januari 2003
  • Niet online

Jester-NL

... pakt een botte bijl

Probeer hier de G2 even op te halen en sla deze op in je intermediate certificate folder
https://support.globalsig...intermediate-certificates

Het lijkt erop dat je machine die niet wil lezen van de website, en daardoor het certificaat niet vertrouwt

The sky above the port was the color of television, turned to a dead channel
me @ last.fm


Acties:
  • 0 Henk 'm!

  • RangedNeedles
  • Registratie: Juli 2009
  • Niet online
Jester-NL schreef op donderdag 26 januari 2017 @ 22:06:
Probeer hier de G2 even op te halen en sla deze op in je intermediate certificate folder
https://support.globalsig...intermediate-certificates

Het lijkt erop dat je machine die niet wil lezen van de website, en daardoor het certificaat niet vertrouwt
Ik heb beide G2 certs met SHA-256 geprobeerd, maar helaas. Dat tweede certificaat heb ik trouwens via z'n base64 representatie moeten importeren omdat de .crt link een 404 geeft 8)7

En aangezien ik ondertussen toch al tig certificaten heb geïmporteerd, heb ik deze ook maar geprobeerd. Hier klopte de Common Name echt exact, buiten Country en Organization dan. Helaas ook zonder resultaat :( Geen idee of die CN, C en O eigenlijk echt verschil uitmaken.

Het certificaat dat ik gebruik voor m'n domeinnaam waarachter m'n VPN server zit, is van Let's Encrypt. Faalt dit dan om dezelfde reden? Is GlobalSign een intermediate certificate in de chain van LE? Of zeg ik nu iets doms? Anders kan ik misschien eens wat GlobalSign certificaten exporteren van m'n Windows 8.1, waar het wel werkt :)

edit
En ook dit laatste, het exporteren en importeren, is een no-go, zucht.. Een wget op een werkend systeem geeft trouwens dezelfde fout, dus moet ik het misschien toch elders gaan zoeken.

[ Voor 20% gewijzigd door RangedNeedles op 27-01-2017 00:57 ]