Форум

/ домой \ \ темы /



Тема: SSL слабое шифрование или не защищено

12/08/2020 10:40 dsmts:
Генерирую новые ключи для https трафика. Но все браузеры ругаются что tls 1.0. Не безопасное подключение, слабая защита. Использую библиотеку libsec.dll. Дамал поможет, установил OpenSSL на компьютер. А как их связать не знаю. Подскажите, пожалуйста, как правильно настроить ssl/tls.
12/08/2020 15:47 Max:
OpenSSL поможет сгенерировать ключи, но для работы программы нужна только библиотека. В выложенной на сайте версии библиотеки 1.01t для Windows OpenSSL уже включен статически и установка пакета на компьютер никак не влияет на ее работу. Вот выложенная библиотека для GNU TLS, напротив, предполагает динамическую загрузку библиотеки и ее необходимо устанавливать.

Если что-то не устраивает в силе шифрования, возможно автоматически выбираются слабые методы.

В новых версиях сервера для SSL/TLS добавлена настройка:
"Sets priorities for the ciphers, key exchange methods, and macs"
Там можно указать приоритет методов в формате библиотки.
Настройка поддерживается новыми выложенными сборками библиотек GNU TLS и OpenSSL

Для GNU TLS и для OpenSSL формат строки различается.


Для OpenSSL посмотреть формат этой строки можно здесь в разделе CIPHER LIST FORMAT:

www.openssl.org/docs/manmaster/man1/openssl-ciphers.html

По умолчанию задается такая строка:
"ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES256-SHA384:ALL:!DES:!3DES:!RC2"

В моем представлении такая строка должна обеспечивать сильное шифрование. Возможно я не прав, -- поэкспериментируйте.
Может быть вы используйте старый вариант libsec.dll, -- раньше этой настройки не было и приоритет методов вообще не задавался.

Для GnuTLS посмотреть формат строки можно здесь:
gnutls.org/manual/html_node/Priority-Strings.html


13/08/2020 05:34 dsmts:
Спасибо за быстрый ответ. Буду пробовать.
tls_cert_file="c:\shttps\ssl\certificate.crt"
tls_key_file="c:\shttps\ssl\private.key"
tls_capath="c:\shttps\ssl\"
tls_cafile="c:\shttps\ssl\ca_bundle.crt"
Можете еще подсказать про tls_capath и tls_cafile. Что бы туда не вводил, результат не меняется. Как я понял tls_cafile указывается на промежуточный сертификат? А tls_capath= для чего? И как быть если промежуточный сертификат не один, а несколько.
13/08/2020 06:03 dsmts:
Забыл написать. При старте появляются такие ошибки.
Securety library, based on OpenSSL Library Copyright (c) 1998-2019 The OpenSSL Project
This product includes software developed by the OpenSSL Projec Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudsont for use in the OpenSSL Toolkit. (www.openssl.org/)
This product includes cryptographic software written by Eric Young (eay[ dog ]cryptsoft.com).
This product includes software written by Tim Hudson (tjh[ dog ]cryptsoft.com).
This product includes software written by Dr Stephen N Henson (shenson[ dog ]bigfoot.com).



OpenSSL error: lib=9 func=109 reason=108 pem_lib.c line=697

OpenSSL error: lib=6 func=103 reason=153 p_lib.c line=137

OpenSSL error: lib=9 func=109 reason=108 pem_lib.c line=697

OpenSSL error data:Expecting: CERTIFICATE,3

TLS/SSL port=443 Number of connections=12

13/08/2020 16:57 Max:
tls_capath и tls_cafile это настройки которые напрямую передаются библиотеке.
Задавать можно что-то одно, и по моему небольшому опыту, лучше задавать cafile.
Несколько сертификатов, видимо, могут лежать и в каталоге заданном в ca-path, но так же, цепочка из нескольких ca-сертефикатов, удостоверяющих подлинность вашего сертификата может находится в одном файле. Как правило операторы подписывающие сертификаты предоставляют именно этот файл. Часто он называется fullchain.cer или CA-bundle

Да OpenSSL иногда выдает разнообразные и непонятные ошибки, при этом продолжая работать.
22/08/2020 20:39 dsmts:
Подозреваю что всё-таки дело в библиотеке, которую я с вашего сайта загрузил. При запуске ошибки. Не пойму что еще ей нужно.
Securety library, based on OpenSSL Library Copyright (c) 1998-2019 The OpenSSL Project
This product includes software developed by the OpenSSL Projec Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudsont for use in the OpenSSL Toolkit. (www.openssl.org/)
This product includes cryptographic software written by Eric Young (eay[ dog ]cryptsoft.com).
This product includes software written by Tim Hudson (tjh[ dog ]cryptsoft.com).
This product includes software written by Dr Stephen N Henson (shenson[ dog ]bigfoot.com).



OpenSSL error: lib=6 func=103 reason=153 p_lib.c line=137

OpenSSL error: lib=9 func=109 reason=108 pem_lib.c line=697

OpenSSL error data:Expecting: CERTIFICATE,3

TLS/SSL port=443 Number of connections=12

Вот кусок с файла конфигурации.
tls_lib="c:\shttps\ssl\libsec.dll"
tls_cert_file="c:\shttps\ssl\certificate.crt"
tls_key_file="c:\shttps\ssl\private.key"
tls_capath=""
tls_cafile="C:\shttps\ssl\ca_bundle.crt"
tls_priority=""

В приоритет пробовал разные данные писать. Толку ни какого.
26/08/2020 13:25 Max:
Это "рабочие" ошибки OpenSSL. Он что-то попробовал и это что-то не подошло для данного сертификата. А пробует он все подряд... В принципе можно было бы эти ошибки не выводить, но OpenSSL и серьезные, принципиальные ошибки передает по той же схеме, и автоматически отделить одни ошибки от других невозможно. По этому сейчас в лог пишутся все ошибки приходящие от OpenSSL.

Если выведена строка
TLS/SSL port=443 Number of connections=12
значит библиотека загрузилась нормально.

Если вас смущают эти ошибки, попробуйте GnuTLS, -- по моим ощущениям, он даже стабильнее работает...

И меняйте приоритет методов, это помогает от слабого шифрования.


Пользователь: Пароль: Новый пользователь:   Запомнить пароль: