BenBE's humble thoughts Thoughts the world doesn't need yet …

06.03.2016

Erkennen der verfügbaren Cipher-Suites

Filed under: Software — Schlagwörter: , , , , , , , — BenBE @ 21:43:58

Nicht nur, wenn man gegen Verbrechen und Monster kämpfen möchte, ist es interessant zu erfahren, welche Cipher Suites ein Server unterstützt. Prinzipiell ist hierfür eine Testseite wie der SSL-Test von Qualys interessant, aber leider ist dieser etwas unflexibel, wenn es darum geht, beim Probieren verschiedener Setting behilflich zu sein.

Aber basierend auf einem Script bei Stack Overflow lässt sich schnell etwas bauen:

#!/usr/bin/env bash

# OpenSSL requires the port number.
SERVER=$1:443
DELAY=1
ciphers=$(openssl ciphers 'ALL:eNULL' | sed -e 's/:/ /g')

echo Obtaining cipher list from $(openssl version).

for cipher in ${ciphers[@]}
do
    echo -n Testing $cipher...
    result=$(echo -n | openssl s_client -cipher "$cipher" -connect $SERVER 2>&1)
    if [[ "$result" =~ ":error:" ]] ; then
        error=$(echo -n $result | cut -d':' -f6-)
        echo NO \($error\)
    else
        if [[ "$result" =~ "Cipher is " ]] ; then
            echo YES
        else
            echo UNKNOWN RESPONSE
            echo $result
        fi
    fi
done

Eine kleine Anmerkung gilt den Zeilen 14 und 18, die gegenüber dem Original getauscht sind, da das Script ansonsten behauptet, dass mein Server jegliche Cipher akzeptiert (was natürlich nicht der Fall ist).

Wenn es dagegen etwas umfangreicher sein soll, gibt es mit meiner offenen Reimplementierung des SSL-Tests eine deutlich schnellere Alternative. Den Quelltext dafür findet man auf Github.

Flattr this!

Keine Kommentare »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress