SSH/Kryptografie: Unterschied zwischen den Versionen
Erscheinungsbild
	
	
 Dirkwagner verschob die Seite SSH/Kryptografie nach Kategorie:SSH/Kryptografie Markierung: Neue Weiterleitung  | 
				K Textersetzung - „–“ durch „-“  | 
				||
| (5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
#  | == 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).  | |||
{| class="wikitable options big"  | |||
|-  | |||
! Keys !! Beschreibung  | |||
|-  | |||
| Server Keys || /etc/ssh/ssh_host_*key  | |||
|-  | |||
| Client Keys || /.ssh/id_{rsa,dsa,ecdsa,ed25519}<br> ~/.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 [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].  | |||
; SSH protocol 2  | |||
* [https://en.wikipedia.org/wiki/Diffie-Hellman_key_exchange DH]  | |||
* [https://en.wikipedia.org/wiki/Elliptic_curve_Diffie-Hellman ECDH] key-exchange  | |||
* [https://en.wikipedia.org/wiki/Forward_secrecy forward secrecy]  | |||
; Group sizes  | |||
* [https://wiki.mozilla.org/Security/Guidelines/Key_Management Security/Guidelines/Key_Management]  | |||
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.  | |||
* beispielsweise 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  | |||
{|| class="wikitable sortable"  | |||
|-  | |||
|| '''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]]  | |||
<noinclude>  | |||
== Anhang ==  | |||
=== Siehe auch ===  | |||
{{Special:PrefixIndex/SSH}}  | |||
=== Dokumentation ===  | |||
=== Links ===  | |||
==== Projekt ====  | |||
==== Weblinks ====  | |||
# [https://wiki.mozilla.org/Security/Key_Management Key Management]  | |||
# [https://wiki.mozilla.org/Security/Server_Side_TLS Server Side TLS]  | |||
# [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://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://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://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://weakdh.org/ Weak Diffie-Hellman and the Logjam Attack]  | |||
# [https://jbeekman.nl/blog/2015/05/ssh-logjam/ On OpenSSH and Logjam, by Jethro Beekman]  | |||
[[Kategorie:Kryptografie/Best Practice]]  | |||
[[Kategorie:SSH/Kryptografie]]  | |||
</noinclude>  | |||
Aktuelle Version vom 11. Mai 2025, 19:50 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.
- beispielsweise 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