Nytt verktyg för att testa SSL-TLS (OWASP-CM-001): SSLAudit

SSLAudit är ett verktyg för att verifierar SSL certifikat och vilka protokoll och krypteringsalgoritmer som stöds av en HTTPS-webbserver. Resultatet betygsätts enligt SSLLabs SSL Server Rating Guide. Jag (Michael Boman) skapade SSLAudit för jag saknade ett bra verktyg för att verifiera HTTPS-servrar (OWASP-CM-001). Det finns flera verktyg som kan testa HTTPS-servrar, men de uppfyllde inte mina krav:
  • SSLDigger från Foundstone (som inte får användas i kommersiella syften, dvs. inte av konsulter på uppdrag) och THCSSLCheck från The Hacker’s Choice: båda är proprietär programvara utan källkod och är svåra att uppdatera. SSLDigger har inte uppdaterats sedan 2004 och THCSSLCheck var senast uppdaterad 2006.
  • SSLScan (med tillhörande perl modul) är öppen källkod har mycket liknande funktionalitet och kan fungera för dig, men det kan inte betygsätta resultatet (vilket inte är svårt att lägga till genom den perl modul som finns) och jag hade problem att få den fungera på Windows/Cygwin.
  • SSLLabs har även en online tjänst för att skanna och betygsätta publika HTTPS-webbsajter, men fungerar inte på interna nätverk.
SSLAudit uppfyller mina krav. Verktyget är öppen källkod, licensierat enligt GPL 2.0, och vilka protokoll och krypteringsalgoritmer konfigureras enkelt via en .INI textfil. SSLAudit funkar fint på både Windows och Linux, och använder sig av standard CPAN moduler. Just nu rapporterar den bara resultatet till terminalfönstret, men det finns planer för att kunna skapa HTML-rapporter.

Användarinstruktioner:
sslaudit.pl website [port]
Exempel:
$> perl sslaudit.pl www.google.com

Connecting to www.google.com:443 - OK
Certificate CN: www.google.com == Hostname: www.google.com
Subject Name: /C=US/ST=California/L=Mountain View/O=Google Inc/CN=www.google.com
Issuer Name: /C=ZA/O=Thawte Consulting (Pty) Ltd./CN=Thawte SGC CA

-----BEGIN CERTIFICATE-----
MIIDITCCAoqgAwIBAgIQL9+89q6RUm0PmqPfQDQ+mjANBgkqhkiG9w0BAQUFADBM
MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wOTEyMTgwMDAwMDBaFw0x
MTEyMTgyMzU5NTlaMGgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
MRYwFAYDVQQHFA1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKFApHb29nbGUgSW5jMRcw
FQYDVQQDFA53d3cuZ29vZ2xlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkC
gYEA6PmGD5D6htffvXImttdEAoN4c9kCKO+IRTn7EOh8rqk41XXGOOsKFQebg+jN
gtXj9xVoRaELGYW84u+E593y17iYwqG7tcFR39SDAqc9BkJb4SLD3muFXxzW2k6L
05vuuWciKh0R73mkszeK9P4Y/bz5RiNQl/Os/CRGK1w7t0UCAwEAAaOB5zCB5DAM
BgNVHRMBAf8EAjAAMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwudGhhd3Rl
LmNvbS9UaGF3dGVTR0NDQS5jcmwwKAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUF
BwMCBglghkgBhvhCBAEwcgYIKwYBBQUHAQEEZjBkMCIGCCsGAQUFBzABhhZodHRw
Oi8vb2NzcC50aGF3dGUuY29tMD4GCCsGAQUFBzAChjJodHRwOi8vd3d3LnRoYXd0
ZS5jb20vcmVwb3NpdG9yeS9UaGF3dGVfU0dDX0NBLmNydDANBgkqhkiG9w0BAQUF
AAOBgQCfQ89bxFApsb/isJr/aiEdLRLDLE5a+RLizrmCUi3nHX4adpaQedEkUjh5
u2ONgJd8IyAPkU0Wueru9G2Jysa9zCRo1kNbzipYvzwY4OA8Ys+WAi0oR1A04Se6
z5nRUP8pJcA2NhUzUnC+MY+f6H/nEQyNv4SgQhqAibAxWEEHXw==
-----END CERTIFICATE-----

Valid from: Dec 18 00:00:00 2009 GMT
Valid to: Dec 18 23:59:59 2011 GMT
Certificate date valid


SSLv2 - DEFAULT - unsuccessful
SSLv2 - RC4-MD5 - unsuccessful
SSLv2 - EXP-RC4-MD5 - unsuccessful
SSLv2 - RC2-MD5 - unsuccessful
SSLv2 - EXP-RC2-MD5 - unsuccessful
SSLv2 - IDEA-CBC-MD5 - unsuccessful
SSLv2 - DES-CBC-MD5 - unsuccessful
SSLv2 - DES-CBC3-MD5 - unsuccessful


SSLv2 not supported by server


SSLv3 - DEFAULT - successful - 80
SSLv3 - NULL-MD5 - unsuccessful
SSLv3 - NULL-SHA - unsuccessful
SSLv3 - EXP-RC4-MD5 - unsuccessful
SSLv3 - RC4-MD5 - successful - 80
SSLv3 - RC4-SHA - successful - 80
SSLv3 - EXP-RC2-CBC-MD5 - unsuccessful
SSLv3 - IDEA-CBC-SHA - unsuccessful
SSLv3 - EXP-DES-CBC-SHA - unsuccessful
SSLv3 - DES-CBC-SHA - unsuccessful
SSLv3 - DES-CBC3-SHA - successful - 80
SSLv3 - EXP-EDH-DSS-DES-CBC-SHA - unsuccessful
SSLv3 - EDH-DSS-CBC-SHA - unsuccessful
SSLv3 - EDH-DSS-DES-CBC3-SHA - unsuccessful
SSLv3 - EXP-EDH-RSA-DES-CBC-SHA - unsuccessful
SSLv3 - EDH-RSA-DES-CBC-SHA - unsuccessful
SSLv3 - EDH-RSA-DES-CBC3-SHA - unsuccessful
SSLv3 - EXP-ADH-RC4-MD5 - unsuccessful
SSLv3 - ADH-RC4-MD5 - unsuccessful
SSLv3 - EXP-ADH-DES-CBC-SHA - unsuccessful
SSLv3 - ADH-DES-CBC-SHA - unsuccessful
SSLv3 - ADH-DES-CBC3-SHA - unsuccessful
SSLv3 - EXP1024-DES-CBC-SHA - unsuccessful
SSLv3 - EXP1024-RC4-SHA - unsuccessful
SSLv3 - EXP1024-DHE-DSS-DES-CBC-SHA - unsuccessful
SSLv3 - EXP1024-DHE-DSS-RC4-SHA - unsuccessful
SSLv3 - DHE-DSS-RC4-SHA - unsuccessful


SSLv3 cipher score: 80 (A)


TLSv1 - DEFAULT - successful - 90
TLSv1 - NULL-MD5 - unsuccessful
TLSv1 - NULL-SHA - unsuccessful
TLSv1 - EXP-RC4-MD5 - unsuccessful
TLSv1 - RC4-MD5 - successful - 80
TLSv1 - RC4-SHA - successful - 80
TLSv1 - EXP-RC2-CBC-MD5 - unsuccessful
TLSv1 - IDEA-CBC-SHA - unsuccessful
TLSv1 - EXP-DES-CBC-SHA - unsuccessful
TLSv1 - DES-CBC-SHA - unsuccessful
TLSv1 - DES-CBC3-SHA - successful - 80
TLSv1 - EXP-EDH-DSS-DES-CBC-SHA - unsuccessful
TLSv1 - EDH-DSS-CBC-SHA - unsuccessful
TLSv1 - EDH-DSS-DES-CBC3-SHA - unsuccessful
TLSv1 - EXP-EDH-RSA-DES-CBC-SHA - unsuccessful
TLSv1 - EDH-RSA-DES-CBC-SHA - unsuccessful
TLSv1 - EDH-RSA-DES-CBC3-SHA - unsuccessful
TLSv1 - EXP-ADH-RC4-MD5 - unsuccessful
TLSv1 - ADH-RC4-MD5 - unsuccessful
TLSv1 - EXP-ADH-DES-CBC-SHA - unsuccessful
TLSv1 - ADH-DES-CBC-SHA - unsuccessful
TLSv1 - ADH-DES-CBC3-SHA - unsuccessful
TLSv1 - AES128-SHA - successful - 80
TLSv1 - AES256-SHA - successful - 100
TLSv1 - DHE-DSS-AES128-SHA - unsuccessful
TLSv1 - DHE-DSS-AES256-SHA - unsuccessful
TLSv1 - DHE-RSA-AES128-SHA - unsuccessful
TLSv1 - DHE-RSA-AES256-SHA - unsuccessful
TLSv1 - ADH-AES128-SHA - unsuccessful
TLSv1 - ADH-AES256-SHA - unsuccessful
TLSv1 - CAMELLIA128-SHA - unsuccessful
TLSv1 - CAMELLIA256-SHA - unsuccessful
TLSv1 - DHE-DSS-CAMELLIA128-SHA - unsuccessful
TLSv1 - DHE-DSS-CAMELLIA256-SHA - unsuccessful
TLSv1 - DHE-RSA-CAMELLIA128-SHA - unsuccessful
TLSv1 - DHE-RSA-CAMELLIA256-SHA - unsuccessful
TLSv1 - ADH-CAMELLIA128-SHA - unsuccessful
TLSv1 - ADH-CAMELLIA256-SHA - unsuccessful
TLSv1 - ADH-SEED-SHA - unsuccessful


TLSv1 cipher score: 90 (A)


TLSv11 - DEFAULT - successful - 95
TLSv11 - NULL-MD5 - unsuccessful
TLSv11 - NULL-SHA - unsuccessful
TLSv11 - EXP-RC4-MD5 - unsuccessful
TLSv11 - RC4-MD5 - successful - 80
TLSv11 - RC4-SHA - successful - 80
TLSv11 - EXP-RC2-CBC-MD5 - unsuccessful
TLSv11 - IDEA-CBC-SHA - unsuccessful
TLSv11 - EXP-DES-CBC-SHA - unsuccessful
TLSv11 - DES-CBC-SHA - unsuccessful
TLSv11 - DES-CBC3-SHA - successful - 80
TLSv11 - EXP-EDH-DSS-DES-CBC-SHA - unsuccessful
TLSv11 - EDH-DSS-CBC-SHA - unsuccessful
TLSv11 - EDH-DSS-DES-CBC3-SHA - unsuccessful
TLSv11 - EXP-EDH-RSA-DES-CBC-SHA - unsuccessful
TLSv11 - EDH-RSA-DES-CBC-SHA - unsuccessful
TLSv11 - EDH-RSA-DES-CBC3-SHA - unsuccessful
TLSv11 - EXP-ADH-RC4-MD5 - unsuccessful
TLSv11 - ADH-RC4-MD5 - unsuccessful
TLSv11 - EXP-ADH-DES-CBC-SHA - unsuccessful
TLSv11 - ADH-DES-CBC-SHA - unsuccessful
TLSv11 - ADH-DES-CBC3-SHA - unsuccessful
TLSv11 - AES128-SHA - successful - 80
TLSv11 - AES256-SHA - successful - 100
TLSv11 - DHE-DSS-AES128-SHA - unsuccessful
TLSv11 - DHE-DSS-AES256-SHA - unsuccessful
TLSv11 - DHE-RSA-AES128-SHA - unsuccessful
TLSv11 - DHE-RSA-AES256-SHA - unsuccessful
TLSv11 - ADH-AES128-SHA - unsuccessful
TLSv11 - ADH-AES256-SHA - unsuccessful
TLSv11 - CAMELLIA128-SHA - unsuccessful
TLSv11 - CAMELLIA256-SHA - unsuccessful
TLSv11 - DHE-DSS-CAMELLIA128-SHA - unsuccessful
TLSv11 - DHE-DSS-CAMELLIA256-SHA - unsuccessful
TLSv11 - DHE-RSA-CAMELLIA128-SHA - unsuccessful
TLSv11 - DHE-RSA-CAMELLIA256-SHA - unsuccessful
TLSv11 - ADH-CAMELLIA128-SHA - unsuccessful
TLSv11 - ADH-CAMELLIA256-SHA - unsuccessful
TLSv11 - ADH-SEED-SHA - unsuccessful


TLSv11 cipher score: 90 (A)


TLSv12 - DEFAULT - successful - 100
TLSv12 - NULL-MD5 - unsuccessful
TLSv12 - NULL-SHA - unsuccessful
TLSv12 - EXP-RC4-MD5 - unsuccessful
TLSv12 - RC4-MD5 - successful - 80
TLSv12 - RC4-SHA - successful - 80
TLSv12 - EXP-RC2-CBC-MD5 - unsuccessful
TLSv12 - IDEA-CBC-SHA - unsuccessful
TLSv12 - EXP-DES-CBC-SHA - unsuccessful
TLSv12 - DES-CBC-SHA - unsuccessful
TLSv12 - DES-CBC3-SHA - successful - 80
TLSv12 - EXP-EDH-DSS-DES-CBC-SHA - unsuccessful
TLSv12 - EDH-DSS-CBC-SHA - unsuccessful
TLSv12 - EDH-DSS-DES-CBC3-SHA - unsuccessful
TLSv12 - EXP-EDH-RSA-DES-CBC-SHA - unsuccessful
TLSv12 - EDH-RSA-DES-CBC-SHA - unsuccessful
TLSv12 - EDH-RSA-DES-CBC3-SHA - unsuccessful
TLSv12 - EXP-ADH-RC4-MD5 - unsuccessful
TLSv12 - ADH-RC4-MD5 - unsuccessful
TLSv12 - EXP-ADH-DES-CBC-SHA - unsuccessful
TLSv12 - ADH-DES-CBC-SHA - unsuccessful
TLSv12 - ADH-DES-CBC3-SHA - unsuccessful
TLSv12 - AES128-SHA - successful - 80
TLSv12 - AES256-SHA - successful - 100
TLSv12 - DHE-DSS-AES128-SHA - unsuccessful
TLSv12 - DHE-DSS-AES256-SHA - unsuccessful
TLSv12 - DHE-RSA-AES128-SHA - unsuccessful
TLSv12 - DHE-RSA-AES256-SHA - unsuccessful
TLSv12 - ADH-AES128-SHA - unsuccessful
TLSv12 - ADH-AES256-SHA - unsuccessful
TLSv12 - CAMELLIA128-SHA - unsuccessful
TLSv12 - CAMELLIA256-SHA - unsuccessful
TLSv12 - DHE-DSS-CAMELLIA128-SHA - unsuccessful
TLSv12 - DHE-DSS-CAMELLIA256-SHA - unsuccessful
TLSv12 - DHE-RSA-CAMELLIA128-SHA - unsuccessful
TLSv12 - DHE-RSA-CAMELLIA256-SHA - unsuccessful
TLSv12 - ADH-CAMELLIA128-SHA - unsuccessful
TLSv12 - ADH-CAMELLIA256-SHA - unsuccessful
TLSv12 - ADH-SEED-SHA - unsuccessful


TLSv12 cipher score: 90 (A)


Protocol score: 90 (A)

Tillgänglighet:
SSLAudit kan laddas ner från Google Code project hosting, där det även finns funktionalitet för att rapportera eventuella buggar och önskade förbättringar.

/Michael Boman

3 kommentarer :: Nytt verktyg för att testa SSL-TLS (OWASP-CM-001): SSLAudit

  1. Värt att lägga till i dokumentationen, för att kunna köra det måste man installera följande dependencies (från en någorlunda ren ubuntu :)

    sudo perl -MCPAN -e 'install Net::SSLeay'
    sudo perl -MCPAN -e 'install IO::Socket::SSL'
    sudo perl -MCPAN -e 'install Time::ParseData'

  2. För övrigt: bra verktyg, man tackar!

  3. För att fylla på Martins lista lite.
    Man kan även behöva installera:

    sudo perl -MCPAN -e 'install Config::IniFiles'

    och ändra "Time::ParseData" till "Time::ParseDate" :)

Skicka en kommentar