Как включить отключенный шифр по умолчанию в openssl 1.1.0g для моего клиента python

Я использую библиотеку Python ssl, которая построена на openssl. Я использую Ubuntu с OpenSSL 1.1.0g.

В OpenSSL 1.1.0g следующий шифр DES-CBC3-SHA по умолчанию отключен. Мне нужно настроить мой клиент с включенным шифром. Мне нужно для тестирования. В контексте SSL я нашел несколько способов, позволяющих включить некоторые отключенные параметры по умолчанию. Например, в этой документации следующее отрицает SSL 3.0, который отключен по умолчанию. :

ctx = ssl.create_default_context(Purpose.CLIENT_AUTH)
ctx.options &= ~ssl.OP_NO_SSLv3

Как включить нужный мне шифр? Я использовал:

ctx.set_cipher(myciphers)

Где myciphers содержит список шифров. Но это не помогло. Поскольку шифр отключен OpenSSL.

Как включить отключенные наборы шифров в OpenSSL?

EDIT: Кроме того, документация python ssl-модуля состояние 3DES не включено по умолчанию начиная с версии 3.4, а я забавляюсь 3.6:

3DES был исключен из строки шифра по умолчанию.

Мне нужно включить шифр 3DES для целей моего клиента. Как это сделать? есть ли способ сделать это, используя параметры контекста ssl?


person user9371654    schedule 04.08.2018    source источник
comment
3DES отключен в более новых версиях Debian и Ubuntu во время компиляции OpenSSL. Это означает, что его невозможно включить из Python, поскольку необходимый код просто не скомпилирован в библиотеку OpenSSL. Чтобы иметь поддержку 3DES с системным Python, вам необходимо пересобрать библиотеку OpenSSL с включенным 3DES.   -  person Steffen Ullrich    schedule 04.08.2018
comment
@ Штеффен Ульрих, спасибо. Любые полезные ссылки для простых шагов по созданию OpenSSL? какие версии? Есть идеи, какая последняя версия Ubuntu с OpenSSL поддерживает 3DES и Chacha? потому что я пробовал Ubuntu 16, но ChaCha отсутствовал.   -  person user9371654    schedule 04.08.2018
comment
@Steffen Ullrich, другая проблема: как управлять python, чтобы использовать скомпилированный OpenSSL, а не встроенный?   -  person user9371654    schedule 04.08.2018
comment
Объяснение того, как скомпилировать OpenSSL и Python: stackoverflow.com/questions/23548188/ (адаптировать для другой версии OpenSSL и включить свой шифр) я бы посоветовал, чтобы не загрязнять вашей системы, чтобы сделать это в контейнере или, по крайней мере, в chroot. Конечно, лучшим решением для всего этого было бы понять, можете ли вы сделать что-нибудь, чтобы снять ограничение на DES-CBC3-SHA. Для временных решений вы также можете использовать что-то вроде stunnel для работы с частью TLS и позволить Python не заниматься всем этим.   -  person Patrick Mevzek    schedule 04.08.2018