SSH/Kryptografie: Unterschied zwischen den Versionen
Erscheinungsbild
K Textersetzung - „http://“ durch „https://“ |
|||
Zeile 20: | Zeile 20: | ||
Aktuelle OpenSSH-Server und -Client unterstützen [[CHACHA20]] | Aktuelle OpenSSH-Server und -Client unterstützen [[CHACHA20]] | ||
* Wenn CHACHA20 (OpenSSH 6.5+) nicht verfügbar ist | * Wenn CHACHA20 (OpenSSH 6.5+) nicht verfügbar ist | ||
* AES-GCM (OpenSSH 6.1+) und jeder andere Algorithmus, der EtM (Encrypt then MAC) verwendet [ | * AES-GCM (OpenSSH 6.1+) und jeder andere Algorithmus, der EtM (Encrypt then MAC) verwendet [https://blog.djm.net.au/2013/11/chacha20-and-poly1305-in-openssh.html legt die Paketlänge offen] - was dem Angreifer einige Informationen liefert. | ||
* NIST-Kurven (<tt>ecdh-sha2-nistp512,ecdh-sha2-nistp384,ecdh-sha2-nistp256</tt>) sind aus Kompatibilitätsgründen aufgeführt, aber die Verwendung von <tt>Kurve25519</tt> wird [https://safecurves.cr.yp.to/ generell bevorzugt]. | * NIST-Kurven (<tt>ecdh-sha2-nistp512,ecdh-sha2-nistp384,ecdh-sha2-nistp256</tt>) sind aus Kompatibilitätsgründen aufgeführt, aber die Verwendung von <tt>Kurve25519</tt> wird [https://safecurves.cr.yp.to/ generell bevorzugt]. | ||
Zeile 96: | Zeile 96: | ||
# [https://wiki.mozilla.org/Security/Server_Side_TLS Server Side TLS] | # [https://wiki.mozilla.org/Security/Server_Side_TLS Server Side TLS] | ||
# [https://www.ietf.org/rfc/rfc4418.txt RFC4418 (umac)] | # [https://www.ietf.org/rfc/rfc4418.txt RFC4418 (umac)] | ||
# [ | # [https://www.openssh.com/txt/draft-miller-secsh-umac-01.txt umac draft] | ||
# [https://safecurves.cr.yp.to/ Safe curves] | # [https://safecurves.cr.yp.to/ Safe curves] | ||
# [ | # [https://blog.djm.net.au/2013/11/chacha20-and-poly1305-in-openssh.html DJM blog] | ||
# [https://stribika.github.io/2015/01/04/secure-secure-shell.html Stribika blog] | # [https://stribika.github.io/2015/01/04/secure-secure-shell.html Stribika blog] | ||
# [ | # [https://2013.diac.cr.yp.to/slides/gueron.pdf AES-GCM performance study] | ||
# [https://security.googleblog.com/2014/04/speeding-up-and-strengthening-https.html CHACHA20 vs AES-GCM performance study] | # [https://security.googleblog.com/2014/04/speeding-up-and-strengthening-https.html CHACHA20 vs AES-GCM performance study] | ||
# [ | # [https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/usr.bin/ssh/PROTOCOL.certkeys?rev=1.9&content-type=text/plain PROTOCOL.certkeys] | ||
# [https://wiki.gnupg.org/rfc4880bis rfc44880bis from GnuPG] | # [https://wiki.gnupg.org/rfc4880bis rfc44880bis from GnuPG] | ||
# [https://weakdh.org/ Weak Diffie-Hellman and the Logjam Attack] | # [https://weakdh.org/ Weak Diffie-Hellman and the Logjam Attack] |
Version vom 7. April 2025, 14:43 Uhr
Umgang mit Schlüsselmaterial
Schlüsselmaterial identifiziert die kryptografischen Geheimnisse, aus denen ein Schlüssel besteht.
- Sämtliches Schlüsselmaterial muss als RESTRICTED-Daten behandelt werden
- Nur Personen mit spezieller Ausbildung und dem Bedarf an Wissen sollten Zugang zu Schlüsselmaterial haben.
- Das Schlüsselmaterial muss bei der Übertragung verschlüsselt werden.
- Schlüsselmaterial kann im Klartext gespeichert werden, aber nur mit einer angemessenen Zugangskontrolle (begrenzter Zugang).
Keys | Beschreibung |
---|---|
Server Keys | /etc/ssh/ssh_host_*key |
Client Keys | /.ssh/id_{rsa,dsa,ecdsa,ed25519} ~/.ssh/identity |
Chiffren und Algorithmen
- Wahl der Chiffren und Algorithmen
Aktuelle OpenSSH-Server und -Client unterstützen CHACHA20
- Wenn CHACHA20 (OpenSSH 6.5+) nicht verfügbar ist
- AES-GCM (OpenSSH 6.1+) und jeder andere Algorithmus, der EtM (Encrypt then MAC) verwendet legt die Paketlänge offen - was dem Angreifer einige Informationen liefert.
- NIST-Kurven (ecdh-sha2-nistp512,ecdh-sha2-nistp384,ecdh-sha2-nistp256) sind aus Kompatibilitätsgründen aufgeführt, aber die Verwendung von Kurve25519 wird generell bevorzugt.
- SSH protocol 2
- DH
- ECDH key-exchange
- forward secrecy
- Group sizes
Die verschiedenen Algorithmen, die von einer bestimmten OpenSSH-Version unterstützt werden, lassen sich mit den folgenden Befehlen auflisten
$ ssh -Q cipher $ ssh -Q cipher-auth $ ssh -Q mac $ ssh -Q kex $ ssh -Q key
Anmelde-Latenz
- Client-Schlüsselgröße und Anmelde-Latenz
Ermitteln der Auswirkungen der Verwendung größerer Schlüssel auf die Leistung.
- z.B. RSA 4096 Bytes Schlüssel - auf der Client-Seite
Tests
Idle, i7 4500 intel CPU
- OpenSSH_6.7p1
- OpenSSL 1.0.1l
- ed25519 server keys
Der folgende Befehl wird 10 Mal ausgeführt
time ssh localhost -i .ssh/id_thekey exit
- Ergebnisse
Client key | Minimum | Maximum | Average |
RSA 4096 | 120ms | 145ms | 127ms |
RSA 2048 | 120ms | 129ms | 127ms |
ed25519 | 117ms | 138ms | 120ms |
Zusammenfassung
- Latenzunterschiede sind nicht signifikant
- Sie beeinträchtigen die Leistung nicht wesentlich
Konfiguration
SSH/Kryptografie/Konfiguration