fredericopissarra Posted May 31, 2018 at 11:08 PM Share Posted May 31, 2018 at 11:08 PM 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: []s Fred Link to comment Share on other sites More sharing options...
fredericopissarra Posted June 1, 2018 at 02:46 AM Author Share Posted June 1, 2018 at 02:46 AM 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.... Link to comment Share on other sites More sharing options...
fredericopissarra Posted June 1, 2018 at 03:06 AM Author Share Posted June 1, 2018 at 03:06 AM 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... Link to comment Share on other sites More sharing options...
fredericopissarra Posted June 1, 2018 at 03:14 AM Author Share Posted June 1, 2018 at 03:14 AM Dica: Gerando configurações para Apache, Nginx e outros. Aplicação da Mozilla no GitHub:https://mozilla.github.io/server-side-tls/ssl-config-generator/ Link to comment Share on other sites More sharing options...
fransalles Posted June 2, 2018 at 01:30 AM Share Posted June 2, 2018 at 01:30 AM Excelente Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.