Kryptografie/Chiffrier Suits: Unterschied zwischen den Versionen
K Dirkwagner verschob die Seite Verschlüsselung:Theorie nach Kryptografie:Theorie: Textersetzung - „Verschlüsselung“ durch „Kryptografie“ |
K Textersetzung - „Verschlüsselung“ durch „Kryptografie“ |
||
Zeile 31: | Zeile 31: | ||
* Die Freiheit, mit jedem beliebigen Client kompatibel zu sein (auch mit veralteten Betriebssystemen), verringert natürlich die Sicherheit unserer Chiffrierzeichenfolgen. | * Die Freiheit, mit jedem beliebigen Client kompatibel zu sein (auch mit veralteten Betriebssystemen), verringert natürlich die Sicherheit unserer Chiffrierzeichenfolgen. | ||
* Wir behandeln diese Themen im Abschnitt [https://bettercrypto.org/#compatibility TODO]. | * Wir behandeln diese Themen im Abschnitt [https://bettercrypto.org/#compatibility TODO]. | ||
* Alle diese Abschnitte ermöglichen es einem Systemadministrator, seine oder ihre Bedürfnisse nach starker | * Alle diese Abschnitte ermöglichen es einem Systemadministrator, seine oder ihre Bedürfnisse nach starker Kryptografie mit Benutzerfreundlichkeit und Kompatibilität in Einklang zu bringen. | ||
; Themen | ; Themen | ||
Zeile 42: | Zeile 42: | ||
== Chiffriersuiten == | == Chiffriersuiten == | ||
=== Chiffriersuite === | === Chiffriersuite === | ||
Eine Chiffriersuite ist eine standardisierte Sammlung, die authentifizierte | Eine Chiffriersuite ist eine standardisierte Sammlung, die authentifizierte Kryptografiesverfahren bietet | ||
* Algorithmen für den Schlüsselaustausch | * Algorithmen für den Schlüsselaustausch | ||
* | * Kryptografiesalgorithmen (Chiffren) und | ||
* Algorithmus für Nachrichtenauthentifizierungscodes (MAC) | * Algorithmus für Nachrichtenauthentifizierungscodes (MAC) | ||
Zeile 52: | Zeile 52: | ||
# Chiffre | # Chiffre | ||
# Nachrichten-Authentifizierungs-Code (MAC) | # Nachrichten-Authentifizierungs-Code (MAC) | ||
# Authentifizierte | # Authentifizierte Kryptografie mit zugehörigen Daten (AEAD) | ||
==== Aufbau einer Chiffrierzeichenfolge ==== | ==== Aufbau einer Chiffrierzeichenfolge ==== | ||
Zeile 70: | Zeile 70: | ||
==== Forward Secrecy ==== | ==== Forward Secrecy ==== | ||
[[Perfect Forward Secrecy]] ist eine eigenschaft einer [[ | [[Perfect Forward Secrecy]] ist eine eigenschaft einer [[Kryptografie]], die Vertraulichkeit auch dann zu gewährleistet, wenn der Serverschlüssel kompromittiert wurde. | ||
== Chiffriersuiten == | == Chiffriersuiten == | ||
Zeile 341: | Zeile 341: | ||
Die von uns empfohlenen Chiffrierzeichenfolgen sind für die Verwendung durch Kopieren und Einfügen gedacht und müssen "out of the box" funktionieren. | Die von uns empfohlenen Chiffrierzeichenfolgen sind für die Verwendung durch Kopieren und Einfügen gedacht und müssen "out of the box" funktionieren. | ||
* TLSv1.2 wird gegenüber TLSv1.0 bevorzugt (und bietet dennoch eine brauchbare Chiffrierkette für TLSv1.0-Server). | * TLSv1.2 wird gegenüber TLSv1.0 bevorzugt (und bietet dennoch eine brauchbare Chiffrierkette für TLSv1.0-Server). | ||
* AES256 und CAMELLIA256 gelten derzeit als sehr starke | * AES256 und CAMELLIA256 gelten derzeit als sehr starke Kryptografieen. | ||
* AES128 und CAMELLIA128 gelten derzeit als starke | * AES128 und CAMELLIA128 gelten derzeit als starke Kryptografieen. | ||
* DHE oder ECDHE für Vorwärtsgeheimnis | * DHE oder ECDHE für Vorwärtsgeheimnis | ||
* RSA, da dies für die meisten heutigen Konfigurationen geeignet ist | * RSA, da dies für die meisten heutigen Konfigurationen geeignet ist | ||
Zeile 358: | Zeile 358: | ||
# [[Diffie Hellman Key Exchanges]] | # [[Diffie Hellman Key Exchanges]] | ||
# [[Random Number Generator]] | # [[Random Number Generator]] | ||
# [[ | # [[Kryptografie:Schlüssellängen]] | ||
# [[Public Key Infrastructure]] | # [[Public Key Infrastructure]] | ||
# [[TLS]] | # [[TLS]] | ||
[[Kategorie: | [[Kategorie:Kryptografie]] |
Version vom 16. Januar 2023, 13:23 Uhr
Überblick
- Warum wird in practicalsettings cipher string B empfohlen?
- Struktur von Chiffrierzeichenketten
- Definieren PFS
- Erläuterung der Cipher String A und Cipher String B
- Cipher Strings
Warum wurden bestimmte Einstellungen gewählt?
- Schlüssellängen
- Algorithmen
- Hash-Funktionen
- Andere kryptografische Parameter
- ENISA-Berichte
- gehen die Berichte von ENISA viel mehr auf diese Themen ein und sollten zusätzlich konsultiert werden.
- ENISA und Vincent Rijmen, Nigel P. Smart, Bogdan warinschi, Gaven Watson, 2013
- ECRYPT 2 (II & SYM, 2012)
- BSI (für Sicherheit in der Informationstechnik (BSI), 2018)
- Themen
- Zufallszahlengeneratoren (Abschnitt Zufallszahlengeneratoren),
- Keylängen (Abschnitt Keylengths),
- ECC (Abschnitt A note on Elliptic Curve Cryptography), ein Warnhinweis zu SHA-1 (Abschnitt A note on SHA-1)
- Diffie-Hellman-Schlüsselaustausch (Abschnitt A note on Diffie Hellman Key Exchanges).
- All dies ist wichtig, um zu verstehen, warum bestimmte Entscheidungen für Cipher String A und B getroffen wurden
- Für die meisten Systemadministratoren ist jedoch die Frage der Kompatibilität eine der dringendsten.
- Die Freiheit, mit jedem beliebigen Client kompatibel zu sein (auch mit veralteten Betriebssystemen), verringert natürlich die Sicherheit unserer Chiffrierzeichenfolgen.
- Wir behandeln diese Themen im Abschnitt TODO.
- Alle diese Abschnitte ermöglichen es einem Systemadministrator, seine oder ihre Bedürfnisse nach starker Kryptografie mit Benutzerfreundlichkeit und Kompatibilität in Einklang zu bringen.
- Themen
- PKIs (Abschnitt Public Key Infrastructures),
- Zertifizierungsstellen und über
- Härtung einer PKI
- Die letztgenannten Themen verdienen ein eigenes Buch.
- Daher kann dieser Leitfaden nur einige aktuelle Themen in diesem Bereich erwähnen.
Chiffriersuiten
Chiffriersuite
Eine Chiffriersuite ist eine standardisierte Sammlung, die authentifizierte Kryptografiesverfahren bietet
- Algorithmen für den Schlüsselaustausch
- Kryptografiesalgorithmen (Chiffren) und
- Algorithmus für Nachrichtenauthentifizierungscodes (MAC)
Komponenten
- Schlüsselaustauschprotokoll
- Authentifizierung
- Chiffre
- Nachrichten-Authentifizierungs-Code (MAC)
- Authentifizierte Kryptografie mit zugehörigen Daten (AEAD)
Aufbau einer Chiffrierzeichenfolge
DHE | RSA | AES256 | SHA256 |
Nomenklatur
- Gängige Benennungsschemata für Chiffrierstrings
- IANA-Namen (siehe Anhang Links) und
- die bekannteren OpenSSL-Namen
Hier werden OpenSSL-Namen verwenden, es sei denn, ein bestimmter Dienst verwendet IANA-Namen
Forward Secrecy
Perfect Forward Secrecy ist eine eigenschaft einer Kryptografie, die Vertraulichkeit auch dann zu gewährleistet, wenn der Serverschlüssel kompromittiert wurde.
Chiffriersuiten
- Systemadministratoren treffen Entscheidungen
- Sicherheit der Kommunikation
- Hohen Sicherheit der Cipher-Suite bei gleichzeitigem
- Ausschluss einiger Benutzer
- Unterstützung möglichst vieler Benutzer
- Qualys SSL Labs
- Qualys SSL Labs
- gibt Administratoren und Sicherheitsingenieuren ein Werkzeug an die Hand
- Einrichtung testen und die Kompatibilität mit Clients vergleichen können
- Achtung
- Die hier gewählten Einstellungen sind nur beispielhaft und MÜSSEN angepasst werden!
- Chiffriersuiten auszuwählen und überprüfen
- Eigenen Chiffriersuiten auszuwählen und überprüfen
- basierend auf den Anweisungen im Abschnitt [ChoosingYourOwnCipherSuites]
Starke Chiffren
- Starken Chiffriersuiten = Weniger Clients
- Umgebung
- Lokales Netzwerk
- Einheitliche Client-Infrastruktur
- Maschine-zu-Maschine-Kommunikation
- We arrived at this set of cipher suites by selecting
- TLS 1.2
- Perfect forward secrecy / ephemeral Diffie Hellman
- strong MACs (SHA-2) or
- GCM as Authenticated Encryption scheme
- OpenSSL string
- EDH+aRSA+AES256:EECDH+aRSA+AES256:!SSLv3
- Configuration A ciphers
ID | OpenSSL Name | Version | KeyEx | Auth | Cipher | MAC |
---|---|---|---|---|---|---|
0x009F | DHE-RSA-AES256-GCM-SHA384 | TLSv1.2 | DH | RSA | AESGCM(256) | AEAD |
0x006B | DHE-RSA-AES256-SHA256 | TLSv1.2 | DH | RSA | AES(256) (CBC) | SHA256 |
0xC030 | ECDHE-RSA-AES256-GCM-SHA384 | TLSv1.2 | ECDH | RSA | AESGCM(256) | AEAD |
0xC028 | ECDHE-RSA-AES256-SHA384 | TLSv1.2 | ECDH | RSA | AES(256) (CBC) | SHA384 |
- Compatibility
Zeitweise waren von diesem Cipher String nur abgedeckt
- Win 7
- Win 8.1 Crypto Stack,
- OpenSSL >= 1.0.1e,
- Safari 6 / iOS 6.0.1 und Safari 7 / OS X 10.9
Schwächere Chiffren
- Schwächere Chiffren = bessere Kompatibilität
In diesem Abschnitt schlagen wir einen etwas schwächeren Satz von Chiffriersuiten vor.
- Zum Beispiel gibt es bekannte Schwachstellen für die SHA-1-Hash-Funktion, die in diesem Satz enthalten ist.
- Der Vorteil dieses Satzes von Chiffriersuiten ist nicht nur die bessere Kompatibilität mit einer breiten Palette von Clients, sondern auch die geringere Rechenlast für die Bereitstellungshardware.
Alle Beispiele in dieser Veröffentlichung verwenden Konfiguration B. Wir haben diesen Satz von Cipher Suites durch Auswahl von:
- TLS 1.2, TLS 1.1, TLS 1.0
- Erlauben von SHA-1 (siehe die Kommentare zu SHA-1 im Abschnitt [SHA])
- OpenSSL-Zeichenkette
EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4:!SEED:!ECDSA:CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA'
- Konfiguration B-Chiffren
ID | OpenSSL Name | Version | KeyEx | Auth | Cipher | MAC |
---|---|---|---|---|---|---|
0x009F | DHE-RSA-AES256-GCM-SHA384 | TLSv1.2 | DH | RSA | AESGCM(256) | AEAD |
0x006B | DHE-RSA-AES256-SHA256 | TLSv1.2 | DH | RSA | AES(256) | SHA256 |
0xC030 | ECDHE-RSA-AES256-GCM-SHA384 | TLSv1.2 | ECDH | RSA | AESGCM(256) | AEAD |
0xC028 | ECDHE-RSA-AES256-SHA384 | TLSv1.2 | ECDH | RSA | AES(256) | SHA384 |
0x009E | DHE-RSA-AES128-GCM-SHA256 | TLSv1.2 | DH | RSA | AESGCM(128) | AEAD |
0x0067 | DHE-RSA-AES128-SHA256 | TLSv1.2 | DH | RSA | AES(128) | SHA256 |
0xC02F | ECDHE-RSA-AES128-GCM-SHA256 | TLSv1.2 | ECDH | RSA | AESGCM(128) | AEAD |
0xC027 | ECDHE-RSA-AES128-SHA256 | TLSv1.2 | ECDH | RSA | AES(128) | SHA256 |
0x0088 | DHE-RSA-CAMELLIA256-SHA | SSLv3 | DH | RSA | Camellia(256) | SHA1 |
0x0039 | DHE-RSA-AES256-SHA | SSLv3 | DH | RSA | AES(256) | SHA1 |
0xC014 | ECDHE-RSA-AES256-SHA | SSLv3 | ECDH | RSA | AES(256) | SHA1 |
0x0045 | DHE-RSA-CAMELLIA128-SHA | SSLv3 | DH | RSA | Camellia(128) | SHA1 |
0x0033 | DHE-RSA-AES128-SHA | SSLv3 | DH | RSA | AES(128) | SHA1 |
0xC013 | ECDHE-RSA-AES128-SHA | SSLv3 | ECDH | RSA | AES(128) | SHA1 |
0x0084 | CAMELLIA256-SHA | SSLv3 | RSA | RSA | Camellia(256) | SHA1 |
0x0035 | AES256-SHA | SSLv3 | RSA | RSA | AES(256) | SHA1 |
0x0041 | CAMELLIA128-SHA | SSLv3 | RSA | RSA | Camellia(128) | SHA1 |
0x002F | AES128-SHA | SSLv3 | RSA | RSA | AES(128) | SHA1 |
- Kompatibilität
- Beachten Sie, dass diese Cipher Suites nicht mit dem Crypto Stack von Windows XP funktionieren (z.B. IE, Outlook),
- Erläuterung
- Für eine ausführliche Erklärung der gewählten Chiffriersuiten siehe [ChoosingYourOwnCipherSuites].
- Kurz gesagt, es ist praktisch unmöglich, eine einzige perfekte Chiffrierkette zu finden, und es muss ein Kompromiss zwischen Kompatibilität und Sicherheit gefunden werden.
- Auf der einen Seite gibt es obligatorische und optionale Chiffren, die in einigen RFCs definiert sind, auf der anderen Seite gibt es Clients und Server, die nur Teilmengen der Spezifikation implementieren.
- Die Autoren wollten starke Chiffren, vorwärts gerichtete Geheimhaltung [25] und die bestmögliche Kompatibilität mit den Clients, während sie gleichzeitig einen Chiffrierstring sicherstellen wollten, der auf älteren Installationen (z. B. OpenSSL 0.9.8) verwendet werden kann.
- Out of the box
Die von uns empfohlenen Chiffrierzeichenfolgen sind für die Verwendung durch Kopieren und Einfügen gedacht und müssen "out of the box" funktionieren.
- TLSv1.2 wird gegenüber TLSv1.0 bevorzugt (und bietet dennoch eine brauchbare Chiffrierkette für TLSv1.0-Server).
- AES256 und CAMELLIA256 gelten derzeit als sehr starke Kryptografieen.
- AES128 und CAMELLIA128 gelten derzeit als starke Kryptografieen.
- DHE oder ECDHE für Vorwärtsgeheimnis
- RSA, da dies für die meisten heutigen Konfigurationen geeignet ist
- AES256-SHA als letzter Ausweg: Mit dieser Chiffre am Ende funktionieren sogar Serversysteme mit sehr alten OpenSSL-Versionen (Version 0.9.8 bietet zum Beispiel keine Unterstützung für ECC und TLSv1.1 oder höher).
- Beachten Sie jedoch, dass diese Cipher-Suite keine Vorwärtsverschlüsselung bietet.
- Sie soll die gleiche Client-Abdeckung bieten (z.B. Unterstützung der Microsoft Krypto-Bibliotheken) auf älteren Systemen.