SSH/Kryptografie: Unterschied zwischen den Versionen
Dirkwagner verschob die Seite SSH/Kryptografie nach Kategorie:SSH/Kryptografie Markierung: Neue Weiterleitung |
Weiterleitung auf Kategorie:SSH/Kryptografie entfernt Markierung: Weiterleitung entfernt |
||
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). | |||
; Dazu gehören | |||
{| class="wikitable options" | |||
|- | |||
! 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 [http://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. | |||
* 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 | |||
{|| 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)] | |||
# [http://www.openssh.com/txt/draft-miller-secsh-umac-01.txt umac draft] | |||
# [https://safecurves.cr.yp.to/ Safe curves] | |||
# [http://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] | |||
# [http://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] | |||
# [http://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> |
Version vom 4. Mai 2024, 12:35 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).
- Dazu gehören
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