Stunnel sunucusu kurulurken hata oluştu: `` SSL3_GET_CLIENT_HELLO: yanlış sürüm numarası`


9

stunnelWindows XP'de bir sunucu kuruyorum ve bir istemci erişmeye çalıştığında bu hatayı alıyorum:

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)

Bu konuda ne yapılacağı hakkında bir fikrin var mı? Çevrimiçi okudum, bunun sunucumun SSL3'te iletişim kurabileceği reklamı olduğu anlamına gelebilir, ancak aslında yapamaz. Bu doğruysa bunu nasıl düzeltebileceğimi bilmek isterim. stunnel.confDosyayı düzenliyorum ama bunu düzeltmek için ne değiştireceğime dair hiçbir fikrim yok.

GÜNCELLEME:

Yukarıdaki hata mesajı yalnızca Twilio istemcisi (yani Twilio'nun sunucusu) sunucuma erişmeye çalıştığında gösterilir. Sunucuma bilgisayarlarımdan biriyle erişmeye çalıştığımda sayfa görünüyor, ancak içerik görüntülendikten sonra Chrome sayfayı yaklaşık 30 saniye boyunca "yükleniyor" olarak gösteriyor ve sonunda stunnelşu mesajı veriyor:

transfer: s_poll_wait: TIMEOUTclose exceeded: closing

GÜNCELLEME:

İşte wireshark yakalama: https://gist.github.com/cool-RR/4963477

Kapak dosyası: https://dl.dropbox.com/u/1927707/wireshark.cap

Sunucunun 8088 bağlantı noktasında çalıştığını unutmayın.

GÜNCELLEME:

İşte sunucu günlüğü (debug = 7 ile):

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)

GÜNCELLEME:

İşte benim stunnel.confdosyam.


Dropbox dosyası eksik görünüyor. Sunucu HTTP / 404
Mircea Vutcovici

@MirceaVutcovici Üzgünüz, düzeltildi.
Ram Rachum

Sorudaki ödülü 100 puana çıkardım.
Ram Rachum

1
Lütfen stunnel.conf dosyasını da ekleyebilir misiniz? Sunucunuz SSLv3.0 bağlantılarını reddediyor gibi görünüyor
Stephane

Şimdi dahil
Ram Rachum

Yanıtlar:


3

Bir ağ yakalaması yapmalı ve neden reddedildiğini görmelisiniz. Ayrıca her iki son noktadaki günlükleri kontrol edin. debugStunnel conf seviyesini arttırın .

İstemcinin hangi SSL protokolünün desteklediğini anlamak için bir ağ izlemesi yapmanız gerekir. Ardından sunucunuzun bu sürümü de desteklediğinden emin olun.

İstemci, desteklediği en yüksek TLS protokol sürümünü, rastgele bir sayıyı, önerilen CipherSuites listesini ve önerilen sıkıştırma yöntemlerini belirten bir ClientHello mesajı gönderir.

Kaynak

SSL protokolünün, yeniden görüşmedeki bir güvenlik hatası nedeniyle birkaç yıl önce değiştirildiğini lütfen unutmayın. Bkz. CVE-2009-3555 ve SSL Yeniden Pazarlaması hakkındaki bu sayfa

Sunucu şu yanıtı veriyor:

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)

Bağlantıyı neden reddettiğini görmek için SSL sunucusundaki günlükleri kontrol etmeniz gerekir. SSL ile stunnel üzerinde ayıklama etkinleştirmek için deneyin: debug=7.

stunnelSunucu vardır options = NO_SSLv3, ancak müşteri SSLv3 kullanarak bağlanmaya çalışıyor. SSL'nin daha yeni bir sürümünü desteklemek için istemciyi yükseltmeniz veya stunnelSSLv3'ü kabul edecek yapılandırmayı değiştirmeniz gerekir .


Soruyu daha fazla ayrıntıyla güncelledim. Hala ağ yakalamam için bana ihtiyacın var mı?
Ram Rachum

Evet, SSL istemcisi tarafından hangi sürümün desteklendiğini bilmek.
Mircea Vutcovici

Bir Wireshark yakalaması yaptım ve soruya bağlandım.
Ram Rachum

1
Tamam, sorun, FIPS modunu etkinleştirmiş olmanız (varsayılan olarak FIPS ile derlenmiş stunnel'de etkinleştirilmiş) ve istemcinin SSLv3 kullanarak bağlanmaya çalıştığıdır (sanırım, günlüklerden veya ağ yakalamadan onaylamanız gerekir). Ancak FIPS yalnızca TLSv1 veya daha yenisi ile çalışmaktadır.
Mircea Vutcovici

1
2 çözümünüz var: 1. SSL istemcisini (Twilio) yükseltin. 2. fips = nostunnel.conf dosyasına ekleyerek FIPS uyumunu devre dışı bırakın ve güvenliği azaltın
Mircea Vutcovici

0

İstemci ile sunucu arasında bir SSL sürümü uyuşmazlığı olabilir. İstemcideki eski SSL sürümlerini devre dışı bırakarak istemcinin yalnızca SSL3 için yapılandırıldığından emin olun.


Bunu nasıl yapacağım hakkında hiçbir fikrim yok.
Ram Rachum
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.