Ir para conteúdo
  • Cadastre-se
Entre para seguir isso  
fredericopissarra

Testando os conjuntos de algorítmos de criptografia disponíveis num site

Posts Recomendados

Quando se lida com SSL/TLS, lidamos com algoritmos de troca-de chaves, autenticação, algoritmos de criptografia assimátrico e simétrico. Mas, nem todos os sites estão up to date com os algoritmos mais modernos. Eis uma maneira de testar isso via script, bash, usando o OpenSSL mais novinho:

#!/bin/bash

#
# list-ssl-ciphers script.
# Testa os conjuntos de algoritmos válidos para um site.
#

if [ $# -ne 1 ]; then
  echo -e "\e[1;33mUsage\e[0m: $(basename $0) <sitename>"
  exit 1
fi

SERVER=$1
ciphers=$(openssl ciphers 'ALL:eNULL' | sed -e 's/:/ /g')

echo -e "\e[1;33mObtaining cipher list from \e[1;37m$(openssl version)\e[0m."

for cipher in ${ciphers[@]}
do
  echo -n Testing $cipher...
  result=$(openssl s_client -cipher "${cipher}" \
                            -connect "${SERVER}:443" \
                            -servername "${SERVER}" < /dev/null 2>&1)
  if [[ "${result}" =~ ":error:" ]] ; then
    error=$(echo -n $result | cut -d':' -f6)
    echo -e "\e[1;31mNO ($error)\e[0m"
  else
    if [[ "${result}" =~ "Cipher is ${cipher}" || \
          "$result" =~ "Cipher +:" ]] ; then
      echo -e "\e[1;32mYES\e[0m"
    else
      echo -e "\e[1;33mUNKNOWN RESPONSE\e[0m\n${result}"
    fi
  fi
done

Exemplo de uso (a lista é grande) com www.mentebinaria.com.br:

terminal.thumb.png.fa2a7cdf6e53f04f8b23f866d9b9adac.png

[]s
Fred

Editado por fredericopissarra
  • Agradecer 3
  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

PS: O redirecionamento de /dev/null no comando s_client do openssl serve para ignorar o restante da requisição https ao site. O mesmo efeito poderia ser obtido com:

echo -n | openssl s_client ... 2>&1

Mas, acho o redirecionamento mais elegante....

Compartilhar este post


Link para o post
Compartilhar em outros sites

A listagem dos algoritmos, de maneira mais legível, pode ser obtida com:

openssl ciphers -v

Notem que existem 4 (Kx [Key eXchange], Au [key AUthentication), Enc [ENCoding] e Mac [Message Authentication Code]).

Se o site não suporta ECDH (Elliptic Curve Diffie-Helman) ou, no mínimo, DHE (Diffie-Helman Ephemeral) como key-exchange, ECDSA (Elliptic Curve Digital Signature Algorithm) ou RSA como authentication, AES-128, AES-256 ou AES-384 como encoding e SHA-256, SHA-384 ou SHA-512 como MAC... descondie da segurança do site...

DH, puro e MAC MD5 ou SHA-1 não deveriam ser aceitos sem desconfiança...

Editado por fredericopissarra

Compartilhar este post


Link para o post
Compartilhar em outros sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons no total são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

Entre para seguir isso  

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...