28 junio 2014

sslassert - Scripts simples para estar seguro que tu server Web HTTPS esta configurado correctamente

Bateria de pruebas para estar seguro que tu server Web tiene configurado correctamente SSL.

Basicamente funcionan en SH (un subconjunto del shel BASH). ¿Por qué? Es un archivo, sin instalación, sólo requiere OpenSSL y cosas básicas de un shell POSIX. Y sobre todo se está llamando a OpenSSL de todos modos, así que ¿por qué no en BASH?

sslfacts

export HOSTPORT=www.google.com
export URLPATH=/
source sslassert.sh

A continuación, genera una serie de hechos basados ​​en el sitio:

    accepted and rejected cipher suites
    protocol support for sslv2 - tls1.2
    various statistics on symmetric and public key cryptography
    various certificate facts
    common problems and attacks

Podes ver la lista completa de hechos mediante la ejecución del script de ejemplo:


./sslfact.sh libinjection.client9.com


sslassert

Entonces vos querrás probar los hechos en contra de lo que tus expectativas dicen.

El mismo script (o guión) muestra cómo podes usar cualquiera de los operadores de las pruebas de BASH (por ejemplo-gt,-ge,-lt,-le,-ne,-eq, =,! =,> etc)


#!/bin/sh

export HOSTPORT=www.google.com
export URLPATH=/

source sslassert.sh

sslassert 'secure-renegotiation               = on'
sslassert 'compression                        = off'
sslassert 'certificate-length               -ge 1024'
sslassert 'protocol-ssl-v2                    = off'
sslassert 'protocol-tls-v12                   = on'
sslassert 'crypto-weak                        = off'
sslassert 'beast-attack                       = off'

exit $SSLASSERT_EXIT


y eso es todo.

Nota para referencia posterior:
La cadena de certificados no esta auto-firmada

Certificate chain
 0 s:/OU=Domain Control Validated/CN=YOUR SERVER HERE
   i:/C=US/ST=Arizona/L=Scottsdale/O=GoDaddy.com, Inc./OU=http://certificates.godaddy.com/repository/CN=Go Daddy Secure Certification Authority/serialNumber=1234
 1 s:/C=US/ST=Arizona/L=Scottsdale/O=GoDaddy.com, Inc./OU=http://certificates.godaddy.com/repository/CN=Go Daddy Secure Certification Authority/serialNumber=1234
   i:/C=US/O=The Go Daddy Group, Inc./OU=Go Daddy Class 2 Certification Authority
 2 s:/C=US/O=The Go Daddy Group, Inc./OU=Go Daddy Class 2 Certification Authority
   i:/C=US/O=The Go Daddy Group, Inc./OU=Go Daddy Class 2 Certification Authority


Mirando en el # 2 de la cadena, verás un certificado autofirmado para Go-Daddy. Eso es normal en el interior del cliente-http ya, así que enviarlo es un poco extraño, y podría causar problemas. Sin duda es un desperdicio de espacio.

Basado en: https://github.com/client9/sslassert

No hay comentarios: