web-dev-qa-db-fra.com

Installation de bugs Stunnel Server: `ssl3_get_client_hello: mauvais numéro de version`

Je confecte un serveur stunnel sur Windows XP et je reçois ce bogue lorsqu'un client tente d'accéder:

2013.02.14 00:02:16 LOG7[8848:7664]: Service [https] accepted (FD=320) from 107.20.36.147:56160
2013.02.14 00:02:16 LOG7[8848:7664]: Creating a new thread
2013.02.14 00:02:16 LOG7[8848:7664]: New thread created
2013.02.14 00:02:16 LOG7[8848:9792]: Service [https] started
2013.02.14 00:02:16 LOG5[8848:9792]: Service [https] accepted connection from 107.20.36.147:56160
2013.02.14 00:02:16 LOG7[8848:9792]: SSL state (accept): before/accept initialization
2013.02.14 00:02:16 LOG7[8848:9792]: SSL alert (write): fatal: handshake failure
2013.02.14 00:02:16 LOG3[8848:9792]: SSL_accept: 1408A10B: error:1408A10B:SSL routines:SSL3_GET_CLIENT_HELLO:wrong version number
2013.02.14 00:02:16 LOG5[8848:9792]: Connection reset: 0 byte(s) sent to SSL, 0 byte(s) sent to socket
2013.02.14 00:02:16 LOG7[8848:9792]: Local socket (FD=320) closed
2013.02.14 00:02:16 LOG7[8848:9792]: Service [https] finished (0 left)

Une idée de quoi faire à ce sujet? J'ai lu en ligne que cela pourrait signifier que mon serveur fait la publicité qu'elle peut communiquer dans SSL3, mais elle ne peut en fait pas. Si cela est vrai, je voudrais savoir comment je peux résoudre ce problème. Je monte le stunnel.conf Dossier mais je n'ai aucune idée de quoi changer pour résoudre ce problème.

Mise à jour:

Le message d'erreur ci-dessus indique uniquement lorsque le client Twilio (I.e. Twilio's Server) tente d'accéder à mon serveur. Lorsque j'essaie d'accéder à mon serveur avec l'un de mes ordinateurs, la page apparaît, mais une fois le contenu figurant, Chrome affiche la page comme "chargement" pendant environ 30 secondes, à la fin de laquelle stunnel donne ce message:

transfer: s_poll_wait: TIMEOUTclose exceeded: closing

Mise à jour:

Voici la capture Wireshark: https://gist.github.com/cool-rr/4963477

Fichier CAP: https://dl.dropbox.com/1927707/wirshark.cap

Notez que le serveur fonctionne sur le port 8088.

Mise à jour:

Voici le journal du serveur (avec débogage = 7):

2013.02.17 17:06:52 LOG7[7636:2092]: No limit detected for the number of clients
2013.02.17 17:06:52 LOG5[7636:2092]: stunnel 4.54 on x86-pc-msvc-1500 platform
2013.02.17 17:06:52 LOG5[7636:2092]: Compiled/running with OpenSSL 1.0.1c-fips 10 May 2012
2013.02.17 17:06:52 LOG5[7636:2092]: Threading:WIN32 SSL:+ENGINE+OCSP+FIPS Auth:none Sockets:SELECT+IPv6
2013.02.17 17:06:52 LOG5[7636:2092]: Reading configuration from file stunnel.conf
2013.02.17 17:06:52 LOG5[7636:2092]: FIPS mode is enabled
2013.02.17 17:06:52 LOG7[7636:2092]: Compression not enabled
2013.02.17 17:06:52 LOG7[7636:2092]: Snagged 64 random bytes from C:\Documents and Settings\User/.rnd
2013.02.17 17:06:52 LOG7[7636:2092]: Wrote 1024 new random bytes to C:\Documents and Settings\User/.rnd
2013.02.17 17:06:52 LOG7[7636:2092]: PRNG seeded successfully
2013.02.17 17:06:52 LOG6[7636:2092]: Initializing service [https]
2013.02.17 17:06:52 LOG7[7636:2092]: Certificate: G:\Dropbox\StartSSL\SSL Cert.pem
2013.02.17 17:06:52 LOG7[7636:2092]: Certificate loaded
2013.02.17 17:06:52 LOG7[7636:2092]: Key file: G:\Dropbox\StartSSL\SSL Cert.pem
2013.02.17 17:06:52 LOG7[7636:2092]: Private key loaded
2013.02.17 17:06:52 LOG7[7636:2092]: Could not load DH parameters from G:\Dropbox\StartSSL\SSL Cert.pem
2013.02.17 17:06:52 LOG7[7636:2092]: Using hardcoded DH parameters
2013.02.17 17:06:52 LOG7[7636:2092]: DH initialized with 2048-bit key
2013.02.17 17:06:52 LOG7[7636:2092]: ECDH initialized with curve prime256v1
2013.02.17 17:06:52 LOG7[7636:2092]: SSL options set: 0x03000004
2013.02.17 17:06:52 LOG5[7636:2092]: Configuration successful
2013.02.17 17:06:52 LOG7[7636:2092]: Service [https] (FD=268) bound to 0.0.0.0:8088
2013.02.17 17:07:08 LOG7[7636:2092]: Service [https] accepted (FD=320) from 54.242.25.199:45922
2013.02.17 17:07:08 LOG7[7636:2092]: Creating a new thread
2013.02.17 17:07:08 LOG7[7636:2092]: New thread created
2013.02.17 17:07:08 LOG7[7636:8004]: Service [https] started
2013.02.17 17:07:08 LOG5[7636:8004]: Service [https] accepted connection from 54.242.25.199:45922
2013.02.17 17:07:08 LOG7[7636:8004]: SSL state (accept): before/accept initialization
2013.02.17 17:07:08 LOG7[7636:8004]: SSL alert (write): fatal: handshake failure
2013.02.17 17:07:08 LOG3[7636:8004]: SSL_accept: 1408A10B: error:1408A10B:SSL routines:SSL3_GET_CLIENT_HELLO:wrong version number
2013.02.17 17:07:08 LOG5[7636:8004]: Connection reset: 0 byte(s) sent to SSL, 0 byte(s) sent to socket
2013.02.17 17:07:08 LOG7[7636:8004]: Local socket (FD=320) closed
2013.02.17 17:07:08 LOG7[7636:8004]: Service [https] finished (0 left)

Mise à jour:

Voici mon stunnel.conf fichier.

9
Ram Rachum

Vous devez faire capter un réseau et voir pourquoi il a été rejeté. Vérifiez également les journaux sur les deux points d'extrémité. Augmentez le niveau debug dans le Stunnel Conf.

Vous devez faire une trace de réseau pour déterminer quelle version du protocole SSL Le client prend en charge. Assurez-vous ensuite que votre serveur prend également en charge cette version.

Un client envoie un message client spécifiant la version de protocole TLS la plus élevée qu'elle prend en charge, un nombre aléatoire, une liste de chiphersites suggérés et des méthodes de compression suggérées.

source

Veuillez noter que le protocole SSL a été modifié il y a quelques années à cause d'un bogue de sécurité dans la renégociation. Voir CVE-2009-3555 et cette page sur la renégociation SSL

Le serveur répond avec:

Secure Sockets Layer
    SSLv3 Record Layer: Alert (Level: Fatal, Description: Handshake Failure)
        Content Type: Alert (21)
        Version: SSL 3.0 (0x0300)
        Length: 2
        Alert Message
            Level: Fatal (2)
            Description: Handshake Failure (40)

Vous devez vérifier les journaux sur le serveur SSL pour voir pourquoi il a refusé la connexion. Essayez d'activer le débogage SSL sur Stunnel avec: debug=7.

Le serveur stunnel a options = NO_SSLv3, mais le client tente de se connecter à l'aide de SSLV3. Vous devez mettre à niveau le client pour prendre en charge une nouvelle version de SSL ou vous devez modifier la configuration stunnel pour accepter SSLV3.

3
Mircea Vutcovici

Il pourrait s'agir d'une inadéquation de version SSL entre le client et le serveur. Assurez-vous que le client est configuré pour SSL3 uniquement en désactivant les anciennes versions SSL sur le client.

0
Daniel t.