Estou executando um programa experimental em python usando python3.6.5 e Openssl. Eu uso o Ubuntu 18 que vem com o OpenSSL 1.1.0g:
openssl version -a
OpenSSL 1.1.0g 2 Nov 2017
built on: reproducible build, date unspecified
platform: debian-amd64
compiler: gcc -DDSO_DLFCN -DHAVE_DLFCN_H -DNDEBUG -DOPENSSL_THREADS -DOPENSSL_NO_STATIC_ENGINE -DOPENSSL_PIC -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DRC4_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DPADLOCK_ASM -DPOLY1305_ASM -DOPENSSLDIR="\"/usr/lib/ssl\"" -DENGINESDIR="\"/usr/lib/x86_64-linux-gnu/engines-1.1\""
OPENSSLDIR: "/usr/lib/ssl"
ENGINESDIR: "/usr/lib/x86_64-linux-gnu/engines-1.1"
Esta versão enviada tem criptografia fraca desativada. Para a configuração da experiência, preciso ativar as criptografias DES e usar o OpenSSL1.1.0g com o DES ativado.
Eu costumava seguir as seguintes instruções (depois de instalar o zlib1g-dev e o build-essential) para compilar meu próprio OpenSSL1.1.0g que tem o DES ativado, e deixar o python usá-lo em vez do fornecido. No entanto, essas etapas agora não têm efeito algum (embora isso tenha funcionado comigo no passado).
1) Faça o download do código-fonte OpenSSL 1.1.0g
em: https://www.openssl.org/source/old/1.1.0/
na pasta "Download"
2) Após descomprimir a pasta, navegue até ela, execute:
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib enable-weak-ssl-ciphers -Wl,-rpath=/usr/local/openssl/lib
3) Então, execute:
sudo make
sudo make install
4) Vá para: /etc/profile.d
6) Crie um arquivo chamado: openssl.sh
e coloque este conteúdo nele:
# /etc/profile.d/openssl.sh
export PATH=$PATH:/usr/local/openssl/bin
8) Vá para: etc/ld.so.conf.d
9) Crie um novo arquivo chamado: openssl-1.1.0g.conf
e coloque este conteúdo nele:
# /etc/ld.so/conf.d/openssl-1.1.0g.conf
/usr/local/openssl/lib
Você prevê algum motivo para o python não usar o OpenSSL da compilação com as etapas acima? Como posso fazer meu programa python3 usar a codificação DES no OpenSSL? Em outras palavras, use meu OpenSSL compilado?
Tags python ssl openssl linux ubuntu-18.04