Налаштування помилки сервера оглушення: `SSL3_GET_CLIENT_HELLO: неправильний номер версії`


9

Я налаштовую stunnelсервер на Windows XP, і я отримую цю помилку, коли клієнт намагається отримати доступ:

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)

Будь-яка ідея, що з цим робити? Я читав в Інтернеті, що це може означати, що мій сервер рекламує, що він може спілкуватися в SSL3, але насправді це не може. Якщо це правда, я хотів би знати, як я можу це виправити. Я редагую stunnel.confфайл, але не знаю, що в ньому змінити, щоб виправити це.

ОНОВЛЕННЯ:

Наведене вище повідомлення про помилку відображається лише тоді, коли клієнт Twilio (тобто сервер Twilio) намагається отримати доступ до мого сервера. Коли я намагаюся отримати доступ до свого сервера на одному зі своїх комп’ютерів, ця сторінка відображається, але після появи вмісту Chrome відображає сторінку як "завантажувану" протягом 30 секунд, наприкінці якої stunnelвидається це повідомлення:

transfer: s_poll_wait: TIMEOUTclose exceeded: closing

ОНОВЛЕННЯ:

Ось захоплення проводів: https://gist.github.com/cool-RR/4963477

Файл кришки: https://dl.dropbox.com/u/1927707/wireshark.cap

Зауважте, що сервер працює на порту 8088.

ОНОВЛЕННЯ:

Ось журнал із сервера (з налагодженням = 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)

ОНОВЛЕННЯ:

Ось мій stunnel.confфайл.


Файл, що випадає, здається, відсутній. Сервер повертає HTTP / 404
Mircea Vutcovici

@MirceaVutcovici Вибачте, виправлено зараз.
Рам Рахум

Я збільшив суму за запитання до 100 балів.
Рам Рахум

1
Чи можете ви також включити файл stunnel.conf? Оскільки, схоже, ваш сервер відмовляється від з'єднань SSLv3.0
Стефан

Включено його зараз
Рам Рахум

Відповіді:


3

Вам слід зробити мережеве захоплення та побачити, чому його відхилено. Також перевірте журнали на обох кінцевих точках. Підвищення debugрівня в конфлікті оглушення.

Вам потрібно зробити мережевий слід, щоб визначити, яку версію протоколу SSL підтримує клієнт. Потім переконайтеся, що ваш сервер також підтримує цю версію.

Клієнт надсилає повідомлення ClientHello із зазначенням найвищої версії протоколу TLS, яку він підтримує, випадкове число, список запропонованих CipherSuites та запропоновані методи стиснення.

Джерело

Зауважте, що протокол SSL було змінено кілька років тому через помилку безпеки при повторних переговорах. Див. CVE-2009-3555 і цю сторінку про повторну переговорну перевірку SSL

Сервер відповідає:

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)

Ви повинні перевірити журнали на сервері SSL, щоб побачити, чому він відмовився від з'єднання. Спробуйте включити SSL налагодження на Stunnel з: debug=7.

stunnelСервер має options = NO_SSLv3, але клієнт намагається підключитися з допомогою SSLv3. Вам потрібно оновити клієнт для підтримки нової версії SSL або вам потрібно змінити stunnelконфігурацію, щоб прийняти SSLv3.


Я оновив питання з більш детальною інформацією. Чи потрібно мені ще зробити мережеве захоплення?
Рам Рачум

Так, щоб знати, яку версію підтримує клієнт SSL.
Мірча Вутковичі

Я зробив захоплення Wireshark і пов’язав його з цим питанням.
Рам Рахум

1
Гаразд, проблема полягає в тому, що у вас увімкнено режим FIPS (він включений за замовчуванням у stunnel, зібраному з FIPS) і що клієнт намагається підключитися за допомогою SSLv3 (я припускаю, вам потрібно підтвердити з журналів або захоплення мережі). Але FIPS працює лише з TLSv1 або новішими.
Mircea Vutcovici

1
У вас є два рішення: 1. оновіть клієнт SSL (Twilio). 2. вимкнути відповідність FIPS та знизити безпеку, додавши fips = noв stunnel.conf
Мірча Вутковичі,

0

Це може бути невідповідність версії SSL між клієнтом і сервером. Переконайтеся, що клієнт налаштований лише для SSL3, відключивши старіші версії SSL на клієнті.


Я поняття не маю, як це зробити.
Рам Рахум
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.