Rigenerare le chiavi ssh

Quanto è vecchia la vostra chiave ssh?

Rigenerare le chiavi ssh usate per collegarsi ai server è una rottura di scatole, ma potrebbe essere una rottura di molte unità di grandezza inferiore rispetto allo scoprire che una chiave ssh viene usata da mesi a nostra insaputa.

Quanto sono cortelunghe le chiavi ssh registrate nei file authorized-keys dei vostri server?

Per fortuna a questa ultima domanda c’è una risposta veloce sotto forma di un pratico script shell.

#!/bin/sh

set -ue

tmp="$(mktemp -t fingerprint-authkeys.XXXXXXXX)"
trap 'rm -f "$tmp"' 0

while read opts key; do
    case "$opts" in
        [0-9]*|ssh-dss|ssh-rsa)
            # not options, first "word" is part of key
            key="$opts $key"
        ;;
    esac
    echo "$key" >$tmp
    set -- $(ssh-keygen -lf "$tmp")
    bits="$1" fingerprint="$2"

    set -- $key # Note: will mangle whitespace in the comment
    case "$1" in
        [0-9]*) # SSH v1 key
            type=rsa1
            shift 3
        ;;
        ssh-rsa|ssh-dss) # SSH v2 key
            type="$1"
            shift 2
        ;;
        *)
            type=unknown
            set --
        ;;
    esac

    printf '%-14s %-9s %s %s\n' "$type" "$bits" "$fingerprint" "$*"
done <$1

Una volta salvato e reso eseguibile, si può lanciare lo script passando come unico parametro obbligatorio il percorso di un file authorized-keys.

L’output del file sarà qualcosa di simile a questo:

ssh-rsa        2048      ba:dd:ec:af:f3:48:c2:9b:64:7d:e7:21:10:fb:28:00 pippo
ssh-rsa        4096      de:ad:be:ef:51:32:a2:f1:9d:ef:35:6c:95:58:ad:00 pluto
ssh-rsa        4096      b1:9b:b0:0b:50:8a:dd:e4:ef:f8:d7:b4:0f:ec:a9:00 paperone
ssh-rsa        4096      f0:0d:be:fe:b6:48:97:ba:ac:90:0d:c2:60:bf:5e:00 paperino

Qui vediamo che la chiave di pippo è l’unica a 2048 bit, mentre le altre sono già a 4096.

Le chiavi a 1024 sono state violate nel 2010, quindi sotto i 2048 bit siete protetti giusto dai ladri di polli;  le linee guida attuali (Debian, per citarne una) consigliano l’uso di chiavi a 4096 bit.

Bisogna sottolineare che è vero che 4096 è il doppio di 2048, ma la complessità della chiave è esponenziale, quindi se si ipotizza che una chiave a 2048 potrebbe essere attaccata con successo in qualche centinaio di giorni, con la stessa potenza di calcolo potrebbero essere necessari anni per violare una chiave a 4096 bit.

Come obblighiamo gli utenti a cambiare password periodicamente, così dobbiamo anche noi cambiare periodicamente le chiavi e utilizzare possibilmente quelle a 4096 bit.

Autore: Luigi Rosa

Consulente IT, sviluppatore, SysAdmin, cazzaro, e, ovviamente, geek.

2 pensieri riguardo “Rigenerare le chiavi ssh”

Spazio per un commento