Openssl - поддерживается ли шифр?
От: prrt  
Дата: 28.08.19 12:44
Оценка:
Скомпилировал openssl-1.1.1 с ключом -enable-weak-ssl-ciphers. По идее в этом случае должен поддерживаться шифр 'DES-CBC3-SHA'. Проверяю:
> openssl ciphers -v
В выводе такого шифра нет. Нет вообще ничего, где бы встречалось 'DES'.

При этом в выводе команды
> openssl ciphers -v 'DES-CBC3-SHA'
шифр присутствует.

Как тогда понять, поддерживается данный шифр библиотекой или нет?
Re: Openssl - поддерживается ли шифр?
От: reversecode google
Дата: 28.08.19 13:49
Оценка:
прочитать мануал про openssl
и ключик s
Re[2]: Openssl - поддерживается ли шифр?
От: prrt  
Дата: 28.08.19 15:44
Оценка:
Здравствуйте, reversecode, Вы писали:

R>прочитать мануал про openssl

R>и ключик s

Про ключ -s в manual указано, что вывод может исключать часть шифров, в зависимости от сгенерированного сертификата и пр. И чтобы получить список всех шифров, которые скомпилированы в библиотеке, этот ключ как раз указывать не нужно. Я же и пытаюсь понять, какие шифры были включены в библиотеку при моей компиляции. В удобном виде это делает, как я понял, ключ -v.

Если что-то я понял неправильно, поправьте, пожалуйста.
Отредактировано 28.08.2019 15:45 prrt . Предыдущая версия .
Re[3]: Openssl - поддерживается ли шифр?
От: reversecode google
Дата: 28.08.19 17:10
Оценка:
тогда для начала дайте вывод команд из начального топика
а потом расскажите что и зачем вы делаете
Re: Openssl - поддерживается ли шифр?
От: reversecode google
Дата: 28.08.19 17:28
Оценка:
Здравствуйте, prrt, Вы писали:

P>Скомпилировал openssl-1.1.1 с ключом -enable-weak-ssl-ciphers.


https://git.openssl.org/?p=openssl.git;a=commitdiff;h=8b1a5af389fb962c7d00ffc9d003c81078033e7b
Re[4]: Openssl - поддерживается ли шифр?
От: prrt  
Дата: 28.08.19 18:04
Оценка:
Здравствуйте, reversecode, Вы писали:

R>тогда для начала дайте вывод команд из начального топика

~> openssl ciphers -v
  Скрытый текст
TLS_AES_256_GCM_SHA384 TLSv1.3 Kx=any Au=any Enc=AESGCM(256) Mac=AEAD
TLS_CHACHA20_POLY1305_SHA256 TLSv1.3 Kx=any Au=any Enc=CHACHA20/POLY1305(256) Mac=AEAD
TLS_AES_128_GCM_SHA256 TLSv1.3 Kx=any Au=any Enc=AESGCM(128) Mac=AEAD
ECDHE-ECDSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH Au=ECDSA Enc=AESGCM(256) Mac=AEAD
ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH Au=RSA Enc=AESGCM(256) Mac=AEAD
DHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=DH Au=RSA Enc=AESGCM(256) Mac=AEAD
ECDHE-ECDSA-CHACHA20-POLY1305 TLSv1.2 Kx=ECDH Au=ECDSA Enc=CHACHA20/POLY1305(256) Mac=AEAD
ECDHE-RSA-CHACHA20-POLY1305 TLSv1.2 Kx=ECDH Au=RSA Enc=CHACHA20/POLY1305(256) Mac=AEAD
DHE-RSA-CHACHA20-POLY1305 TLSv1.2 Kx=DH Au=RSA Enc=CHACHA20/POLY1305(256) Mac=AEAD
ECDHE-ECDSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH Au=ECDSA Enc=AESGCM(128) Mac=AEAD
ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH Au=RSA Enc=AESGCM(128) Mac=AEAD
DHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=AESGCM(128) Mac=AEAD
ECDHE-ECDSA-AES256-SHA384 TLSv1.2 Kx=ECDH Au=ECDSA Enc=AES(256) Mac=SHA384
ECDHE-RSA-AES256-SHA384 TLSv1.2 Kx=ECDH Au=RSA Enc=AES(256) Mac=SHA384
DHE-RSA-AES256-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=AES(256) Mac=SHA256
ECDHE-ECDSA-AES128-SHA256 TLSv1.2 Kx=ECDH Au=ECDSA Enc=AES(128) Mac=SHA256
ECDHE-RSA-AES128-SHA256 TLSv1.2 Kx=ECDH Au=RSA Enc=AES(128) Mac=SHA256
DHE-RSA-AES128-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=AES(128) Mac=SHA256
ECDHE-ECDSA-AES256-SHA TLSv1 Kx=ECDH Au=ECDSA Enc=AES(256) Mac=SHA1
ECDHE-RSA-AES256-SHA TLSv1 Kx=ECDH Au=RSA Enc=AES(256) Mac=SHA1
DHE-RSA-AES256-SHA SSLv3 Kx=DH Au=RSA Enc=AES(256) Mac=SHA1
ECDHE-ECDSA-AES128-SHA TLSv1 Kx=ECDH Au=ECDSA Enc=AES(128) Mac=SHA1
ECDHE-RSA-AES128-SHA TLSv1 Kx=ECDH Au=RSA Enc=AES(128) Mac=SHA1
DHE-RSA-AES128-SHA SSLv3 Kx=DH Au=RSA Enc=AES(128) Mac=SHA1
RSA-PSK-AES256-GCM-SHA384 TLSv1.2 Kx=RSAPSK Au=RSA Enc=AESGCM(256) Mac=AEAD
DHE-PSK-AES256-GCM-SHA384 TLSv1.2 Kx=DHEPSK Au=PSK Enc=AESGCM(256) Mac=AEAD
RSA-PSK-CHACHA20-POLY1305 TLSv1.2 Kx=RSAPSK Au=RSA Enc=CHACHA20/POLY1305(256) Mac=AEAD
DHE-PSK-CHACHA20-POLY1305 TLSv1.2 Kx=DHEPSK Au=PSK Enc=CHACHA20/POLY1305(256) Mac=AEAD
ECDHE-PSK-CHACHA20-POLY1305 TLSv1.2 Kx=ECDHEPSK Au=PSK Enc=CHACHA20/POLY1305(256) Mac=AEAD
AES256-GCM-SHA384 TLSv1.2 Kx=RSA Au=RSA Enc=AESGCM(256) Mac=AEAD
PSK-AES256-GCM-SHA384 TLSv1.2 Kx=PSK Au=PSK Enc=AESGCM(256) Mac=AEAD
PSK-CHACHA20-POLY1305 TLSv1.2 Kx=PSK Au=PSK Enc=CHACHA20/POLY1305(256) Mac=AEAD
RSA-PSK-AES128-GCM-SHA256 TLSv1.2 Kx=RSAPSK Au=RSA Enc=AESGCM(128) Mac=AEAD
DHE-PSK-AES128-GCM-SHA256 TLSv1.2 Kx=DHEPSK Au=PSK Enc=AESGCM(128) Mac=AEAD
AES128-GCM-SHA256 TLSv1.2 Kx=RSA Au=RSA Enc=AESGCM(128) Mac=AEAD
PSK-AES128-GCM-SHA256 TLSv1.2 Kx=PSK Au=PSK Enc=AESGCM(128) Mac=AEAD
AES256-SHA256 TLSv1.2 Kx=RSA Au=RSA Enc=AES(256) Mac=SHA256
AES128-SHA256 TLSv1.2 Kx=RSA Au=RSA Enc=AES(128) Mac=SHA256
ECDHE-PSK-AES256-CBC-SHA384 TLSv1 Kx=ECDHEPSK Au=PSK Enc=AES(256) Mac=SHA384
ECDHE-PSK-AES256-CBC-SHA TLSv1 Kx=ECDHEPSK Au=PSK Enc=AES(256) Mac=SHA1
SRP-RSA-AES-256-CBC-SHA SSLv3 Kx=SRP Au=RSA Enc=AES(256) Mac=SHA1
SRP-AES-256-CBC-SHA SSLv3 Kx=SRP Au=SRP Enc=AES(256) Mac=SHA1
RSA-PSK-AES256-CBC-SHA384 TLSv1 Kx=RSAPSK Au=RSA Enc=AES(256) Mac=SHA384
DHE-PSK-AES256-CBC-SHA384 TLSv1 Kx=DHEPSK Au=PSK Enc=AES(256) Mac=SHA384
RSA-PSK-AES256-CBC-SHA SSLv3 Kx=RSAPSK Au=RSA Enc=AES(256) Mac=SHA1
DHE-PSK-AES256-CBC-SHA SSLv3 Kx=DHEPSK Au=PSK Enc=AES(256) Mac=SHA1
AES256-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(256) Mac=SHA1
PSK-AES256-CBC-SHA384 TLSv1 Kx=PSK Au=PSK Enc=AES(256) Mac=SHA384
PSK-AES256-CBC-SHA SSLv3 Kx=PSK Au=PSK Enc=AES(256) Mac=SHA1
ECDHE-PSK-AES128-CBC-SHA256 TLSv1 Kx=ECDHEPSK Au=PSK Enc=AES(128) Mac=SHA256
ECDHE-PSK-AES128-CBC-SHA TLSv1 Kx=ECDHEPSK Au=PSK Enc=AES(128) Mac=SHA1
SRP-RSA-AES-128-CBC-SHA SSLv3 Kx=SRP Au=RSA Enc=AES(128) Mac=SHA1
SRP-AES-128-CBC-SHA SSLv3 Kx=SRP Au=SRP Enc=AES(128) Mac=SHA1
RSA-PSK-AES128-CBC-SHA256 TLSv1 Kx=RSAPSK Au=RSA Enc=AES(128) Mac=SHA256
DHE-PSK-AES128-CBC-SHA256 TLSv1 Kx=DHEPSK Au=PSK Enc=AES(128) Mac=SHA256
RSA-PSK-AES128-CBC-SHA SSLv3 Kx=RSAPSK Au=RSA Enc=AES(128) Mac=SHA1
DHE-PSK-AES128-CBC-SHA SSLv3 Kx=DHEPSK Au=PSK Enc=AES(128) Mac=SHA1
AES128-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(128) Mac=SHA1
PSK-AES128-CBC-SHA256 TLSv1 Kx=PSK Au=PSK Enc=AES(128) Mac=SHA256
PSK-AES128-CBC-SHA SSLv3 Kx=PSK Au=PSK Enc=AES(128) Mac=SHA1

~> openssl ciphers -v 'DES-CBC3-SHA'
  Скрытый текст
TLS_AES_256_GCM_SHA384 TLSv1.3 Kx=any Au=any Enc=AESGCM(256) Mac=AEAD
TLS_CHACHA20_POLY1305_SHA256 TLSv1.3 Kx=any Au=any Enc=CHACHA20/POLY1305(256) Mac=AEAD
TLS_AES_128_GCM_SHA256 TLSv1.3 Kx=any Au=any Enc=AESGCM(128) Mac=AEAD
DES-CBC3-SHA SSLv3 Kx=RSA Au=RSA Enc=3DES(168) Mac=SHA1

R>а потом расскажите что и зачем вы делаете
Я пытаюсь скомпилировать openssl с поддержкой тех же шифров, которые поддерживает google.com — https://www.ssllabs.com/ssltest/analyze.html?d=google.com&s=216.58.194.174&hideResults=on
При указании ключа 'enable-weak-ssl-ciphers' в билд библиотеки у меня вошли все шифры с указанной выше страницы, за исключением TLS_RSA_WITH_3DES_EDE_CBC_SHA. Отсюда вижу, что данному шифру в openssl соответствует название DES-CBC3-SHA. Дальше я пытаюсь понять, входит ли этот шифр в билд библиотеки или нет. В этом и суть вопроса топика.

R>https://git.openssl.org/?p=openssl.git;a=commitdiff;h=8b1a5af389fb962c7d00ffc9d003c81078033e7b

Почитал. Тогда, видимо, лучше при компиляции openssl указывать не 'enable-weak-ssl-ciphers', а явно перечислять все нужные шифры. У гугла RC4 отсутствует.
Отредактировано 28.08.2019 18:08 prrt . Предыдущая версия .
Re[5]: Openssl - поддерживается ли шифр?
От: Anton Batenev Россия https://github.com/abbat
Дата: 28.08.19 19:10
Оценка:
Здравствуйте, prrt, Вы писали:

p> Я пытаюсь скомпилировать openssl с поддержкой тех же шифров, которые поддерживает google.com — https://www.ssllabs.com/ssltest/analyze.html?d=google.com&s=216.58.194.174&hideResults=on


А зачем? Гугл поддерживает WEAK-шифры ради старых клиентов, которые в новое шифрование не могут. А если у тебя есть возможность собрать и использовать новую openssl, то тебе кроме AES никакие другие шифры не нужны. Возможно еще CHACHA20-POLY1305 для клиентов, которые не поддерживают аппаратное ускорение (AES-NI). Т.е. опции типа таких:

no-shared
enable-unit-test
enable-rfc3779
enable-cms
no-ssl3
no-ssl3-method
no-camellia
no-idea
no-mdc2
no-rc5
no-seed
no-psk
no-srp
no-gost
no-zlib
no-dso
enable-ec_nistp_64_gcc_128   // ifeq ($(ARCH), x64)
github.com/abbat
Re[6]: Openssl - поддерживается ли шифр?
От: prrt  
Дата: 28.08.19 19:30
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

AB>Здравствуйте, prrt, Вы писали:


p>> Я пытаюсь скомпилировать openssl с поддержкой тех же шифров, которые поддерживает google.com — https://www.ssllabs.com/ssltest/analyze.html?d=google.com&s=216.58.194.174&hideResults=on


AB>А зачем? Гугл поддерживает WEAK-шифры ради старых клиентов, которые в новое шифрование не могут. А если у тебя есть возможность собрать и использовать новую openssl, то тебе кроме AES никакие другие шифры не нужны. Возможно еще CHACHA20-POLY1305 для клиентов, которые не поддерживают аппаратное ускорение (AES-NI). Т.е. опции типа таких:


Нет, мне именно и нужна поддержка старых клиентов. И именно ради поддержки старых клиентов я и взял за основу гугл. Фактически, если бы не требовалась поддержка клиента IE8 / XP, то этого топика и не было бы...
Re[7]: Openssl - поддерживается ли шифр?
От: Anton Batenev Россия https://github.com/abbat
Дата: 28.08.19 20:22
Оценка:
Здравствуйте, prrt, Вы писали:

p> Нет, мне именно и нужна поддержка старых клиентов. И именно ради поддержки старых клиентов я и взял за основу гугл. Фактически, если бы не требовалась поддержка клиента IE8 / XP, то этого топика и не было бы...


Тогда "enable-weak-ssl-ciphers" — это то, что тебе нужно и в твоем случае 3DES поддерживается. Полный список поддерживаемых шифров можно получить:

$ openssl -V 'ALL:NULL:@SECLEVEL=0'


Использовать в программе шифры ниже SECLEVEL (по умолчанию 1) можно вызвав SSL_CTX_set_security_level.
github.com/abbat
Re[8]: Openssl - поддерживается ли шифр?
От: prrt  
Дата: 28.08.19 21:42
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

AB>Тогда "enable-weak-ssl-ciphers" — это то, что тебе нужно и в твоем случае 3DES поддерживается. Полный список поддерживаемых шифров можно получить:


AB>
AB>$ openssl -V 'ALL:NULL:@SECLEVEL=0'
AB>


AB>Использовать в программе шифры ниже SECLEVEL (по умолчанию 1) можно вызвав SSL_CTX_set_security_level.


Да, действительно, с этой командой шифр появился в результатах. Выходит, что
> openssl ciphers -V
выдаёт список шифров, которые были бы доступны, если бы я при компиляции не указывал опцию "enable-weak-ssl-ciphers", т.е. при компиляции по умолчанию, а не при текущей компиляции. А я-то ошибочно посчитал, что DEFAULT — это всегда актуальный список доступных шифров в данном конкретном билде.

Спасибо!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.