Zur Zeit ist das ED25519-Schlüsselformat, das sicherste verfügbare SSH-Schlüsselformat!
RSA mit großer Schlüssellänge ist der zweitsicherste, die DSA-Schlüssel sind alle NSA-optimiert und somit als unsicher anzusehen.
ACHTUNG
Die ED25519-Schlüssel werden erst seit Ubuntu 14.04 (ab OpenSSH 6.5) unterstützt!
Der ED25519-Schlüssel hat eine feste Länge von 256 Bit, hier wird die Option "-b" ignoriert:
> ssh-keygen -o -t ed25519 -a 256
Die Option -a beschreibt, mit wieviel Rotationen die Passphrase verschlüsselt wird.
Je größer diese Anzahl ist, desto stärker ist die Passphrase gegen Brut-Force-Angriffe gesichert aber desto langsammer ist auch der Verbindungsaufbau.
Die gleiche Wartezeit, die zum generieren des Schlüssels benötigt wird, fällt auch bei einem Verbindungsaufbau mit dem generierten Schlüssel an.
Also wenn das generieren eines Schlüssels mit 65536 Runden ca. 10 Minuten dauert, dann wird der Vebindungsaufbau mit diesem Schlüssel von diesem Rechner aus, auch ca. 10 Minuten benötigen!
In soeinem Fall sollte man die Anzahl der Runden auf einen Wert reduzieren, bei dem die Zeit zum generieren bzw. für den Verbindungsaufbau, in einem verträglichen Zeitrahmen liegt.
Auf einem Rechner mit einer "Intel Core i7-2620M 2.70GHz"-CPU, dauert der Login mit einem ED25519-Schlüssel mit 1024 Runden, ca. 10 Sekunden und mit 65536 Runden ca. 10 Minuten. Mit 128 Runden dauert der Verbindungsaufbau auf einem Rechner mit einer "Intel Core i7-2620M 2.70GHz"-CPU, ca. eine Sekunde.
Um das Problem zu beheben, müssen einmalig zwei Zeilen an die ~/.bashrc unten angefügt werden:
> echo 'eval $(ssh-agent)' >> ~/.bashrc > echo "ssh-add" >> ~/.bashrc
Ab jetzt wird beim öffnen eines Terminal-Fensters die Passphrase abgefragt und die Schlüssel (auch der Ed25519-Schlüssel) ordentlich aufgenommen. Und ein passwortloser Login ist jetzt auch mit dem Ed25519-Schlüssel möglich.
Stand: Mai 2011
RSA war mal durch Patente geschützt, die sind jetzt aber abgelaufen. Der ECDSA-Algorithmus stammt noch aus der Zeit und sollte eine freie Alternative zum durch Patent geschützten RSA sein.
Vor kurzem wurde der ECDSA-Algorithmus geknackt. ECDSA-Schlüssel sollte man als "veraltet" und "unsicher" betrachten.
Schlüsselstärkenvergleich (Brutforce-Angriff, kein Strukturangriff!):
Auf dieser Seite wurden Transfervergleiche mit unterschiedlichen Cipher (Kodes) gefahren:
Da die Pakete bei FTP unbearbeitet über das Netz gehen, ist es die schnellste aber auch unsicherste Methode, Daten zu übertragen. Aus diesem Grunde verwendet man heute SSH/SCP/SFTP zur verschlüsselten Datenübertragung. Hier kann man die Daten auf verschiedene Weise verschlüsseln/kodieren. Jeder von SSH unterstützte Kode hat seine besonderen Eigenschaften, deshalb ergibt sich auch ein Unterschied in der Datenübertragungsrate und der Sicherheit in Abhängigkeit vom verwendeten Kode:
Welche Kodes (Cipher) von der eingesetzten SSH-Version unterstützt werden, kann man sich wie folgt anzeigen lassen:
# man ssh_config
Beispiel:
# ssh -c blowfish -X fritz@rechner # scp -c blowfish testdatei.txt fritz@rechner:
Es ist auch möglich mehrere Kodes (Cipher) kommasepariert anzugeben:
# ssh -c blowfish,blowfish-cbc,aes256-ctr,aes192-ctr,aes128-ctr,3des,arcfour,arcfour256,arcfour128 -X fritz@rechner # scp -c blowfish,blowfish-cbc,aes256-ctr,aes192-ctr,aes128-ctr,3des,arcfour,arcfour256,arcfour128 testdatei.txt fritz@rechner:
Man kann die bevorzugten Kodes (Cipher) auch in der Konfigurationsdatei vom SSH-Client dauerhaft eintragen und spart sich so das aufführen auf der Kommandozeile.
# vi /etc/ssh/ssh_config .... Ciphers blowfish,blowfish-cbc,aes256-ctr,aes192-ctr,aes128-ctr,3des,arcfour,arcfour256,arcfour128 ....
RSA basiert darauf, dass man Primzahlen nicht erraten kann, weil man davon ausgeht, dass sie im Zahlenraum unvorhersehbar verteilt sind… Geht man von existierenden mathematischen Beweisführungen aus, dann liegt man da gar nicht so falsch… Aber wenn man die empirischen Erfahrungen im gesamten Zahlenraum, die von heutigen Computern bearbeitet werden, betrachtet, dann ist das komplett falsch!
Siehe dazu den Vortrag über die Riemannsche Vermutung.
Riemann hatte vor Jahrhunderten schon vermutet, dass die Primzahlen, im Zahlenraum, nur auf einem schmalen Streifen liegen. Das wurde mathematisch noch nicht bewiesen (darauf berufen sich alle) aber es wurde im gesamten Zahlenraum, den Computer bearbeiten können, schon empirisch nachgewiesen. Demnach sind auch RSA-Schlüssel (egal wie lang) nicht mehr sicher. Nun kann man sagen, dass RSA ja schon durch die Kosinusfunktionen abgelöst wurden… aber da haben wir das gleiche Problem, wie bei DSA, diese Schlüssel (z.B. ed25519) sind in ihrer Länge auf nur 256Bit beschränkt.
Soviel zu Sicherheit, heutzutage!!!