OpenSSH - Private Keys schützen

Martin Kleppmann gibt eine umfassende Übersicht über OpenSSH‘s Private Key Verschlüsselung. Er zeigt wie unsicher die standardmäßig verwendete Verschlüsselung ist.

Mit PKCS #8 (Private-Key Information Syntax Standard) kann der Private Key mit einem beliebigen Verschlüsselungsalgorithmus geschützt werden. Die Liste der unterstützen Algorithmen von OpenSSL kann man mit folgendem Kommando ermitteln:

$ openssl list-cipher-commands

Auf Debian wheezy-Systemen steht u.A. camellia-256-cbc, auf Debian squeeze zumindest aes-256-cbc zur Verfügung um die Private Keys zu verschlüsseln. Das folgende Skript verschlüsselt die Standard RSA- und DSA-Private Key-Dateien:

#!/bin/bash

cipher='camellia-256-cbc'

set -e
umask 0077
for alg in rsa dsa; do
    mv ~/.ssh/id_$alg ~/.ssh/id_$alg.old
    openssl pkcs8 -topk8 -v2 $cipher -in ~/.ssh/id_$alg.old -out ~/.ssh/id_$alg
    rm ~/.ssh/id_$alg.old
done

Comments !