Kryptografie/Chiffrier Suits: Unterschied zwischen den Versionen
Zeile 62: | Zeile 62: | ||
=== Forward Secrecy === | === Forward Secrecy === | ||
; Eigenschaft einer [[Kryptografie]], die Vertraulichkeit auch dann zu gewährleistet, wenn der Serverschlüssel kompromittiert wurde | |||
* [[Perfect Forward Secrecy]] | * [[Perfect Forward Secrecy]] | ||
Version vom 18. Januar 2023, 12:01 Uhr
Überblick
- 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 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
- Keylängen
- 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
Chiffriersuit
- Sammlung, die authentifizierte Kryptografieverfahren bietet
- Standardisierte Algorithmen für den Schlüsselaustausch
- Kryptografiealgorithmen (Chiffren)
- 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
- Benennungsschemata für Chiffrezeichenfolgen
- IANA-Namen
- OpenSSL-Namen
Forward Secrecy
- 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
- Set of cipher suites
- 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
- 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
- bessere Kompatibilität mit einer breiten Palette von Clients
- geringere Rechenlast für die Bereitstellungshardware
- Konfiguration B
Cipher Suites
- 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.