Som webbutvecklare, webbansvarig eller systemadministratör stöter du ofta på situationer där felsökning av SSL/TLS-relaterade problem är nödvändig.
Det finns en mängd onlineverktyg för att granska SSL-certifikat och testa sårbarheter i SSL/TLS. Dessa verktyg är dock inte till någon nytta när det gäller att testa interna URL:er, VIP eller IP-adresser.
För att felsöka resurser som finns i det interna nätverket behöver du ett fristående program eller verktyg som du kan installera i nätverket och använda för att utföra de nödvändiga testerna.
Det kan finnas många olika anledningar till att du behöver testa, till exempel:
- Problem uppstår vid implementeringen av SSL-certifikat på webbservern.
- Du vill säkerställa att de senaste eller specifika krypteringsalgoritmer och protokoll används.
- Efter implementeringen vill du verifiera konfigurationen.
- En säkerhetsrisk har upptäckts i ett resultat från ett penetrationstest.
Följande verktyg är praktiska för att felsöka sådana problem.
DeepViolet
DeepViolet är ett Java-baserat skanningsverktyg för SSL/TLS. Det är tillgängligt som en binär fil, men du kan också kompilera det från källkoden.
Om du letar efter ett alternativ till SSL Labs som ska användas i ett internt nätverk, är DeepViolet ett bra val. Det söker efter bland annat:
- Exponering av svaga krypteringsalgoritmer
- Svaga signeringsalgoritmer
- Återkallningsstatus för certifikat
- Certifikatets utgångsdatum
- Visualisering av förtroendekedjan, inklusive egen signerade rotcertifikat
SSL-diagnos
Med SSL-diagnos kan du snabbt utvärdera SSL-styrkan på din webbplats. Verktyget extraherar information om SSL-protokoll, krypteringssviter, samt kontrollerar mot Heartbleed och BEAST-sårbarheter.
Detta verktyg testar inte bara HTTPS, utan även SSL-styrkan för SMTP, SIP, POP3 och FTPS.
SSLyze
SSLyze är ett Python-bibliotek och kommandoradsverktyg som ansluter till en SSL-slutpunkt och genomför en skanning för att identifiera eventuella felkonfigurationer i SSL/TLS.
Skanning med SSLyze går snabbt tack vare att testet distribueras över flera processer. Om du är utvecklare och vill integrera verktyget med en befintlig applikation har du möjlighet att få resultatet i XML- eller JSON-format.
SSLyze finns även tillgängligt i Kali Linux. Om du är ny användare av Kali kan du läsa mer om hur man installerar Kali Linux på VMWare Fusion.
OpenSSL
Underskatta inte OpenSSL. Det är ett kraftfullt fristående verktyg som är tillgängligt för både Windows och Linux. Med OpenSSL kan du utföra många SSL-relaterade uppgifter som verifiering, generering av CSR (Certificate Signing Request) och konvertering av certifikat.
SSL Labs Scan
Gillar du Qualys SSL Labs? I så fall är du inte ensam!
Om du letar efter ett kommandoradsverktyg för SSL Labs för att kunna automatisera eller utföra tester i bulk är SSL Labs Scan ett användbart alternativ.
SSL-skanning
SSL-skanning är kompatibelt med Windows, Linux och macOS. Det hjälper dig att snabbt identifiera följande viktiga punkter:
- Markerar osäkra protokoll som SSLv2/SSLv3 och krypteringsalgoritmer som CBC/3DES/RC4.
- Rapporterar svaga krypteringsalgoritmer (<40 bitar) och anonyma krypteringsalgoritmer.
- Verifierar TLS-komprimering och sårbarheten Heartbleed.
- Och mycket mer…
Om du arbetar med krypteringsrelaterade problem kan SSL-skanning vara ett användbart verktyg för att påskynda felsökningen.
adminvista.com TLS Scanner API
En annan smart lösning för webbansvariga är adminvista.com TLS Scanner API.
Detta API är en effektiv metod för att kontrollera TLS-protokoll, CN, SAN och andra certifikatdetaljer på bråkdelen av en sekund. Du kan testa API:et utan kostnad med ett gratis abonnemang som ger upp till 3000 förfrågningar per månad.
Baspremium-nivån ger dig en högre förfrågningsfrekvens och 10 000 API-anrop för endast 5 dollar i månaden.
TestSSL
Som namnet antyder är TestSSL ett kommandoradsverktyg som är kompatibelt med Linux eller macOS. Det testar alla viktiga punkter och ger en status för om allt fungerar som det ska eller om det finns problem.
Exempel:
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)
Som du ser täcker TestSSL.sh ett stort antal sårbarheter, krypteringspreferenser och protokoll. Verktyget finns även tillgängligt som docker-avbildning.
Om du behöver göra en fjärrskanning med testssl.sh kan du använda adminvista.com TLS Scanner.
TLS-skanning
Du kan antingen bygga TLS-Scan från källkoden eller ladda ner en binär version för Linux/macOS. Verktyget extraherar certifikatinformation från servern och skriver ut följande punkter i JSON-format:
- Verifiering av värdnamn
- Kontroll av TLS-kompression
- Kontroll av krypteringsalgoritmer och TLS-versioner
- Kontroll av återanvändning av sessioner
Verktyget har stöd för protokollen TLS, SMTP, STARTTLS och MySQL. Du kan även integrera resultatet i ett logganalysverktyg som Splunk eller ELK.
Chifferskanning
Chifferskanning är ett snabbt verktyg för att analysera vilka krypteringsalgoritmer som en HTTPS-webbplats stöder. Verktyget kan också visa resultatet i JSON-format och är internt baserat på OpenSSL-kommandon.
SSL-revision
SSL-revision är ett verktyg med öppen källkod som används för att verifiera certifikat, protokoll och krypteringsalgoritmer, samt ger en betyg baserat på SSL Labs.
Jag hoppas att dessa verktyg hjälper dig att integrera kontinuerliga skanningar med ditt befintliga logganalysverktyg och underlättar felsökning av SSL/TLS-relaterade problem.