DEV Community

Cover image for Como Habilitar o Provedor Legado no OpenSSL 3.x
Guilherme Sousa
Guilherme Sousa

Posted on

Como Habilitar o Provedor Legado no OpenSSL 3.x

Com o OpenSSL 3.x, algoritmos antigos como RC2 foram movidos para o provedor legacy. Se você precisa usá-los (por questões de legado ou compatibilidade), é só seguir este passo a passo para habilitá-los.

1. Primeiro: confirme sua versão do OpenSSL

Antes de começar, veja se sua versão do OpenSSL é 3.x. Use o comando:

openssl version
Enter fullscreen mode Exit fullscreen mode

Se a saída for algo como OpenSSL 3.0.9, estamos no caminho certo! Caso contrário, talvez seja necessário atualizar.

2. Ativando o provedor legacy

O segredo está no arquivo de configuração do OpenSSL, o openssl.cnf. Ele geralmente fica aqui:

  • Linux: /etc/ssl/openssl.cnf
  • MacOS: /usr/local/etc/openssl/openssl.cnf
  • Windows: %ProgramFiles%\Common Files\SSL\openssl.cnf

Se não encontrar o arquivo, pode criar um novo.

Adicione ou edite o seguinte trecho:

openssl_conf = openssl_init

[openssl_init]
providers = provider_sect

[provider_sect]
default = default_sect
legacy = legacy_sect

[default_sect]
activate = 1

[legacy_sect]
activate = 1
Enter fullscreen mode Exit fullscreen mode

Isso configura o OpenSSL para carregar tanto o provedor padrão quanto o legacy.

3. Exportando a configuração

Agora, informe ao OpenSSL onde está o arquivo atualizado:

export OPENSSL_CONF=/etc/ssl/openssl.cnf
Enter fullscreen mode Exit fullscreen mode

4. Testando os provedores carregados

Verifique se o provedor legacy está ativo:

openssl list -providers
Enter fullscreen mode Exit fullscreen mode

Se tudo estiver correto, você verá algo como:

Providers:
  default
  legacy
Enter fullscreen mode Exit fullscreen mode

Se o legacy não aparecer, revise o arquivo openssl.cnf e o comando de exportação.

5. Testando o uso de algoritmos legados

Agora que o provedor legacy está ativo, você pode usar algoritmos antigos. Vamos testar isso na prática. Crie um arquivo de entrada chamado input.txt (ou substitua pelo nome de um arquivo que você já tenha):

echo "Texto de teste para criptografia." > input.txt
Enter fullscreen mode Exit fullscreen mode

Agora, execute o comando de criptografia usando RC2-40-CBC:

openssl enc -rc2-40-cbc -e -in input.txt -out output.enc -provider legacy
Enter fullscreen mode Exit fullscreen mode

Este comando faz o seguinte:

  • Lê o arquivo input.txt (que você acabou de criar).
  • Cria um arquivo criptografado chamado output.enc.
  • Usa o algoritmo RC2-40-CBC, que depende do provedor legacy.

Para verificar que deu certo, você pode descriptografar o arquivo:

openssl enc -rc2-40-cbc -d -in output.enc -out decrypted.txt -provider legacy
Enter fullscreen mode Exit fullscreen mode

Depois, confira o conteúdo do arquivo decrypted.txt:

cat decrypted.txt
Enter fullscreen mode Exit fullscreen mode

Se tudo correu bem, o texto original deve aparecer.

Dica Extra: Migre para algoritmos modernos

RC2 e outros algoritmos legados são obsoletos e inseguros. Sempre que possível, substitua por algo mais confiável, como AES-256-CBC. Aqui está um exemplo de como usar:

openssl enc -aes-256-cbc -e -in input.txt -out output.enc -k "sua-senha-segura"
Enter fullscreen mode Exit fullscreen mode

Conclusão

Agora você sabe como habilitar o provedor legacy no OpenSSL 3.x e usar algoritmos antigos. Só lembre-se: isso deve ser uma solução temporária. Para novos projetos, prefira algoritmos mais seguros para proteger seus dados!

Do your career a big favor. Join DEV. (The website you're on right now)

It takes one minute, it's free, and is worth it for your career.

Get started

Community matters

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Dive into an ocean of knowledge with this thought-provoking post, revered deeply within the supportive DEV Community. Developers of all levels are welcome to join and enhance our collective intelligence.

Saying a simple "thank you" can brighten someone's day. Share your gratitude in the comments below!

On DEV, sharing ideas eases our path and fortifies our community connections. Found this helpful? Sending a quick thanks to the author can be profoundly valued.

Okay