11 Ferramentas Gratuitas para Resolver Problemas SSL/TLS (Guia Completo)

Foto do autor

By luis

É comum, para engenheiros web, webmasters e administradores de sistemas, encontrar a necessidade de diagnosticar problemas relacionados a SSL/TLS.

Embora existam diversas ferramentas online para análise de certificados SSL e testes de vulnerabilidades SSL/TLS, elas podem não ser adequadas para testar URLs, VIPs ou IPs de ambientes de intranet.

Para solucionar problemas em recursos internos, é imprescindível o uso de ferramentas autônomas, instaladas na sua rede, capazes de executar os testes necessários.

Diversos cenários podem demandar tais ferramentas:

  • Dificuldades na implementação de certificados SSL em servidores web.
  • Necessidade de verificar se os protocolos e cifras mais recentes estão em uso.
  • Verificação da configuração após a implementação.
  • Identificação de riscos de segurança provenientes de testes de penetração.

As ferramentas a seguir podem ser de grande auxílio na resolução desses problemas.

DeepViolet

DeepViolet é um software de análise SSL/TLS baseado em Java, disponível em formato binário ou compilável a partir do código-fonte.

Se você procura uma alternativa ao SSL Labs para uso em redes internas, o DeepViolet é uma excelente opção. Ele verifica:

  • A exposição de cifras consideradas fracas.
  • Algoritmos de assinatura pouco seguros.
  • O status de revogação de certificados.
  • O tempo de expiração dos certificados.
  • A cadeia de confiança, incluindo a presença de raízes autoassinadas.

SSL Diagnos

Com o SSL Diagnos, é possível avaliar rapidamente a segurança SSL de um site. Ele extrai informações sobre protocolos SSL, conjuntos de cifras, além de verificar vulnerabilidades como Heartbleed e BEAST.

Além do HTTPS, o SSL Diagnos permite testar a robustez do SSL em serviços como SMTP, SIP, POP3 e FTPS.

SSLyze

SSLyze é uma biblioteca Python e uma ferramenta de linha de comando que se conecta a endpoints SSL e realiza uma análise para detectar quaisquer configurações SSL/TLS inadequadas.

A análise com o SSLyze é rápida, pois os testes são distribuídos entre múltiplos processos. Desenvolvedores podem integrá-lo facilmente a aplicativos, com a opção de exportar os resultados em formatos XML ou JSON.

O SSLyze também está disponível no Kali Linux. Se você é novo no Kali, pode procurar informações sobre como instalar o Kali Linux no VMWare Fusion.

OpenSSL

O OpenSSL, ferramenta autônoma e poderosa, não deve ser subestimado. Disponível para Windows e Linux, ele permite realizar diversas tarefas relacionadas a SSL, como verificação, geração de CSR, conversão de certificados, entre outras.

SSL Labs Scan

Se você é fã do Qualys SSL Labs, saiba que não está sozinho! Muitos profissionais de segurança e administradores de sistemas também apreciam essa ferramenta.

Para automatizar testes em massa com o SSL Labs, a ferramenta de linha de comando SSL Labs Scan pode ser extremamente útil.

SSL Scan

Compatível com Windows, Linux e MAC, o SSL Scan auxilia na identificação rápida de diversas métricas:

  • Destaque de cifras SSLv2/SSLv3/CBC/3DES/RC4.
  • Relatório de cifras fracas (inferiores a 40 bits), nulas ou anônimas.
  • Verificação de compressão TLS e da vulnerabilidade Heartbleed.
  • E muito mais.

Se você lida com problemas relacionados à criptografia, o SSL Scan é uma ferramenta que agiliza a solução de problemas.

API TLS Scanner etechpt.com

A API TLS Scanner da etechpt.com pode ser uma ótima solução para webmasters.

É um método eficiente para verificar o protocolo TLS, CN, SAN e outros detalhes do certificado em poucos segundos. Você pode testar essa API com um cadastro gratuito para até 3.000 requisições mensais.

O plano premium básico oferece um volume maior de requisições e 10.000 chamadas de API por apenas US$ 5 mensais.

TestSSL

Como o nome sugere, o TestSSL é uma ferramenta de linha de comando para Linux e outros sistemas operacionais. Ele testa diversas métricas essenciais, indicando o status de cada uma delas.

Exemplo de saída:

Testing protocols via sockets except SPDY+HTTP2

SSLv2 not offered (OK)
SSLv3 not offered (OK)
TLS 1 offered
TLS 1.1 offered
TLS 1.2 offered (OK)
SPDY/NPN h2, spdy/3.1, http/1.1 (advertised)
HTTP2/ALPN h2, spdy/3.1, http/1.1 (offered)

Testing ~standard cipher categories

NULL ciphers (no encryption) not offered (OK)
Anonymous NULL Ciphers (no authentication) not offered (OK)
Export ciphers (w/o ADH+NULL) not offered (OK)
LOW: 64 Bit + DES encryption (w/o export) not offered (OK)
Weak 128 Bit ciphers (SEED, IDEA, RC[2,4]) not offered (OK)
Triple DES Ciphers (Medium) not offered (OK)
High encryption (AES+Camellia, no AEAD) offered (OK)
Strong encryption (AEAD ciphers) offered (OK)

Testing server preferences

Has server cipher order? yes (OK)
Negotiated protocol TLSv1.2
Negotiated cipher ECDHE-ECDSA-CHACHA20-POLY1305-OLD, 256 bit ECDH (P-256)
Cipher order
TLSv1: ECDHE-RSA-AES128-SHA AES128-SHA ECDHE-RSA-AES256-SHA AES256-SHA DES-CBC3-SHA 
TLSv1.1: ECDHE-RSA-AES128-SHA AES128-SHA ECDHE-RSA-AES256-SHA AES256-SHA 
TLSv1.2: ECDHE-ECDSA-CHACHA20-POLY1305-OLD ECDHE-ECDSA-CHACHA20-POLY1305 ECDHE-ECDSA-AES128-GCM-SHA256
ECDHE-ECDSA-AES128-SHA ECDHE-ECDSA-AES128-SHA256 ECDHE-ECDSA-AES256-GCM-SHA384
ECDHE-ECDSA-AES256-SHA ECDHE-ECDSA-AES256-SHA384 ECDHE-RSA-CHACHA20-POLY1305-OLD
ECDHE-RSA-CHACHA20-POLY1305 ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-SHA
ECDHE-RSA-AES128-SHA256 AES128-GCM-SHA256 AES128-SHA AES128-SHA256
ECDHE-RSA-AES256-GCM-SHA384 ECDHE-RSA-AES256-SHA ECDHE-RSA-AES256-SHA384 AES256-GCM-SHA384
AES256-SHA AES256-SHA256

Testing vulnerabilities

Heartbleed (CVE-2014-0160) not vulnerable (OK), no heartbeat extension
CCS (CVE-2014-0224) not vulnerable (OK)
Ticketbleed (CVE-2016-9244), experiment. not vulnerable (OK)
Secure Renegotiation (CVE-2009-3555) not vulnerable (OK)
Secure Client-Initiated Renegotiation not vulnerable (OK)
CRIME, TLS (CVE-2012-4929) not vulnerable (OK)
BREACH (CVE-2013-3587) potentially NOT ok, uses gzip HTTP compression. - only supplied "/" tested
Can be ignored for static pages or if no secrets in the page
POODLE, SSL (CVE-2014-3566) not vulnerable (OK)
TLS_FALLBACK_SCSV (RFC 7507) Downgrade attack prevention supported (OK)
SWEET32 (CVE-2016-2183, CVE-2016-6329) not vulnerable (OK)
FREAK (CVE-2015-0204) not vulnerable (OK)
DROWN (CVE-2016-0800, CVE-2016-0703) not vulnerable on this host and port (OK)
make sure you don't use this certificate elsewhere with SSLv2 enabled services
https://censys.io/ipv4?q=EDF8A1A3D0FFCBE0D6EA4C44DB5F4BE1A7C2314D1458ADC925A30AA6235B9820 could help you to find out
LOGJAM (CVE-2015-4000), experimental not vulnerable (OK): no DH EXPORT ciphers, no DH key detected
BEAST (CVE-2011-3389) TLS1: ECDHE-RSA-AES128-SHA AES128-SHA ECDHE-RSA-AES256-SHA
AES256-SHA DES-CBC3-SHA 
VULNERABLE -- but also supports higher protocols (possible mitigation): TLSv1.1 TLSv1.2
LUCKY13 (CVE-2013-0169) VULNERABLE, uses cipher block chaining (CBC) ciphers
RC4 (CVE-2013-2566, CVE-2015-2808) no RC4 ciphers detected (OK)

Como se pode observar, o TestSSL abrange um grande número de vulnerabilidades, preferências de cifra, protocolos, e muito mais. Ele também está disponível em uma imagem Docker.

Para realizar análises remotas com o TestSSL, o TLS Scanner da etechpt.com é uma opção viável.

TLS Scan

O TLS-Scan pode ser compilado a partir do código-fonte ou baixado como binário para Linux/OSX. Ele coleta informações do certificado do servidor e exibe as seguintes métricas em formato JSON:

  • Verificações de nome de host.
  • Verificações de compressão TLS.
  • Enumeração de versões de cifras e TLS.
  • Verificações de reutilização de sessão.

Ele suporta protocolos TLS, SMTP, STARTTLS e MySQL. Os resultados podem ser integrados a ferramentas de análise de logs como Splunk ou ELK.

Cipher Scan

O Cipher Scan é uma ferramenta rápida para analisar quais cifras um site HTTPS oferece suporte. Ele também oferece a opção de exibir a saída em formato JSON. Internamente, ele utiliza o comando OpenSSL.

SSL Audit

O SSL Audit é um software de código aberto que verifica certificados e o suporte a protocolos, cifras, e oferece uma classificação com base nos critérios do SSL Labs.

Espera-se que as ferramentas de código aberto listadas acima facilitem a integração de verificações contínuas com seus analisadores de log, ajudando a otimizar a solução de problemas.