Empfehlungen


Kryptographische Algorithmen und Schlüssellängen

Dieser Abschnitt beschreibt welche kryptographischen Algorithmen als sicher eingestuft werden können und daher für die Verschlüsselung von Daten zu verwenden sind. Die Auswahl bietet eine längerfristige Orientierung bei der Wahl jeweils geeigneter Methoden. Die vorgeschlagenen Schlüssellängen der kryptographischen Algorithmen sind jeweils in die folgenden drei Kategorien aufgeteilt:

  • Minimale Schlüssellänge, die zum heutigen Zeitpunkt noch als überwiegend sicher gilt, mittelfristig aber nicht mehr empfohlen werden kann.
  • Empfohlene Schlüssellänge, die für die nächsten Jahre als sicher gilt.
  • Schlüssellänge für langfristig schützenswerten Informationen und in Systemen mit langer vorgesehener Einsatzdauer (> 2030)

Bei der Auswahl von kryptographischen Algorithmen ist zunächst zu klären, welche Art kryptographischer Verfahren benötigt werden, denn das Schlüsselmanagement muss mit der Funktionalität des Produktes harmonieren. Dabei sind insbesondere grundsätzliche Unterschiede der Algorithmen zu berücksichtigen:

  • Symmetrische Verfahren benutzen einen geheim zu haltenden Schlüssel für die Ver- und Entschlüsselung.

    Vorteile:
    • Sie sind schnell, d. h. sie haben einen hohen Datendurchsatz.
    • Die Sicherheit ist im wesentlichen durch die Schlüssellänge festgelegt, d. h. bei guten symmetrischen Verfahren sollte es keine Attacken geben, die wesentlich besser sind als das Durchprobieren aller Schlüssel (Brute-Force-Attacken).
    • Sie bieten hohe Sicherheit bei relativ kurzem Schlüssel.
    • Die Schlüsselerzeugung ist einfach, da gewöhnlich als Schlüssel jede Bitfolge einer festen Länge erlaubt ist und als Schlüssel eine Zufallszahl gewählt werden kann.

    Nachteile:
    • Jeder Teilnehmer muss sämtliche Schlüssel seiner Kommunikationspartner geheim halten.
    • Zur Schlüsselverteilung sind sie weniger gut geeignet als asymmetrische Verfahren, insbesondere bei einer großen Anzahl von Kommunikationspartnern.
  • Asymmetrische Verfahren benutzen einen öffentlichen Schlüssel für die Verschlüsselung und einen privaten (geheim zu haltenden) für die Entschlüsselung.

    Vorteile:
    • Jeder Teilnehmer einer vertraulichen Kommunikation muss nur seinen eigenen privaten Schlüssel geheim halten.
    • Sie bieten elegante Lösungen für die Schlüsselverteilung in Netzen, da die öffentlichen Schlüssel bzw. Schlüsselzertifikate frei zugänglich auf zentralen Servern gespeichert werden können, ohne die Sicherheit des Verfahrens zu beeinträchtigen.
    • Sie lassen sich einfach für digitale Signaturen benutzen.
    • Sie sind gut geeignet für Nicht-Abstreitbarkeitszwecke.

    Nachteile:
    • Sie sind langsam, d. h. sie haben im allgemeinen einen geringen Datendurchsatz.
    • Es gibt wesentlich bessere Attacken als das Durchprobieren aller Schlüssel, deshalb werden (im Vergleich zu symmetrischen Verfahren) relativ lange Schlüssel benötigt, um ein gleich hohes Maß an Sicherheit zu erreichen.
    • Die Sicherheit beruht "nur" auf der vermuteten, aber von der Fachwelt anerkannten, algorithmischen Schwierigkeit eines mathematischen Problems (zum Beispiel die Zerlegung einer großen Zahl in die Primfaktoren).
    • Die Schlüsselerzeugung ist im Allgemeinen komplex und aufwendig, da die Erzeugung "schwacher" Schlüsselpaare vermieden werden muss.

Bei der nachfolgenden Auflistung sicherer kryptographischen Algorithmen wird kein Anspruch auf Vollständigkeit erhoben. Die Einschätzung der Algorithmen orientiert sich eng an der technischen Richtlinie "Kryptographische Verfahren: Empfehlungen und Schlüssellängen" des BSI [21] sowie an [22] und [23].

Symmetrische Verfahren

Bei symmetrischen kryptographischen Algorithmen unterscheidet man Blockchiffren und Stromchiffren. Eine Blockchiffre ist ein Algorithmus, der einen Klartext fester Bitlänge (z. B. 128 Bit) mittels eines Schlüssels zu einem Chiffretext gleicher Bitlänge verschlüsselt. Es sollten nur noch Blockchiffren eingesetzt werden, deren Blockgröße mindestens 128 Bit beträgt.
Bei den Blockchiffren ist der Advanced Encryption Standard (AES) [24] der einzig empfohlene Algorithmus, in folgenden Varianten und Betriebsmodi:

  • AES-128, AES-192, AES-256 in den Betriebsmodi Galois-Counter-Mode (GCM) [25], Cipher-Block Chaining (CBC) [26]) oder Counter Mode (CTR) [26])

Die empfohlene (sowie minimale) Schlüssellänge für AES sind 128 Bit. Für die Verschlüsselung von langfristig schützenswerten Informationen ist die Verwendung von AES mit einer Schlüssellänge von 256 Bit empfohlen.
Eine Verwendung des 3-Key-Triple-DES Algorithmus [27] ist in aktuellen Systemen nicht mehr empfohlen, da die geringe Blockbreite von nur 64 Bit eine im Vergleich zum AES verringerte Sicherheit gegenüber generischen Angriffen auf Blockchiffren bietet.
Bei Stromchiffren wird zunächst ein sogenannter Schlüsselstrom generiert, das heißt eine pseudozufällige Folge von Bits, die dann auf die zu verschlüsselnde Nachricht bitweise XOR-addiert wird. Zur Zeit werden keine dedizierten Stromchiffren empfohlen. Die früher verbreitete Stromchiffre RC4 beinhaltet systematische Schwächen und gilt als überholt [28]. AES im Counter-Modus kann allerdings als Stromchiffre aufgefasst werden.

Asymmetrische Verfahren

Die Sicherheit von asymmetrischen kryptographischen Verfahren beruht auf der angenommenen Schwierigkeit von Problemen aus der algorithmischen Zahlentheorie. Die praktisch relevantesten asymmetrischen Verschlüsselungsverfahren beruhen allgemein ausgedrückt entweder auf der Schwierigkeit des Problems der Berechnung diskreter Logarithmen in geeigneten Repräsentationen endlicher zyklischer Gruppen, oder auf der Schwierigkeit, große ganze Zahlen in ihre Primfaktoren zu zerlegen.
Für kryptographische Verfahren beruhend auf der Schwierigkeit große ganze Zahlen in ihre Primfaktoren zu zerlegen ist eine minimale Schlüssellänge von mindestens 1024 Bit erforderlich. Die empfohlene Schlüssellänge liegt bei 2048 Bit. Der in dieser Kategorie meist verwendete Algorithmus ist RSA [29]. Bei Verfahren, die sich das Problem der Schwierigkeit der Berechnung diskreter Logarithmen zunutzemachen, ist ebenfalls eine minimale Schlüssellänge von 1024 Bit, bzw. 160 Bit für die erzeugte Untergruppe, erforderlich. Die empfohlene Schlüssellänge liegt wieder bei 2048 Bit, bzw. 224 Bit für die erzeugte Untergruppe.
Der in der Praxis am häufigsten verwendete Algorithmus - basierend auf der Schwierigkeit der Berechnung diskreter Logarithmen - ist der Diffie-Hellman (DH) Schlüsselaustausch [30]. Die Sicherheit dieses Verfahrens basiert auf dem Diffie-Hellman Problem, das sich auf die Lösung diskreter Logarithmen reduzieren lässt.
Eine Variante des Problems der Berechnung diskreter Logarithmen, ist das Problem der Berechnung "diskreter Logarithmen" in geeigneten elliptischen Kurven (EC). Die kryptographischen Verfahren, die auf elliptischen Kurven beruhen, kommen mit erheblich kürzeren Schlüsseln aus als die herkömmlichen asymmetrischen kryptographischen Verfahren. Die minimale Schlüssellänge liegt hierbei bei 160 Bit, die empfohlene Schlüssellänge bei 224 Bit.
Ein Beispiel für ein oft verwendetes Verfahren basierend auf dem Problem der Berechnung "diskreter Logarithmen" in elliptischen Kurven ist Elliptic Curve Diffie-Hellman (ECDH) [31].
Es ist denkbar, dass für gewisse Kurven spezielle Eigenschaften gefunden werden, die die Berechnung diskreter Logarithmen einfacher machen als im generischen Fall. Es wird daher als grundsätzliche Sicherheitsmaßnahme empfohlen, in EC-Verfahren Kurvenparameter zu verwenden, die nachweisbar zufällig erzeugt wurden, deren Konstruktion nachvollziehbar dokumentiert ist und deren Sicherheit einer gründlichen Analyse unterzogen wurde.
Für die Verschlüsselung von langfristig schützenswerten Informationen ist bei asymmetrischen Verfahren eine Schlüssellänge von 3072 Bit, bei EC-Verfahren eine Schlüssellänge von 256 Bit empfohlen.

Hashfunktionen

Eine Hashfunktion (Einwegfunktion) berechnet zu einer binären Folge einen binären Block fester Länge, den sogenannten Hashwert. Eine wichtige Eigenschaft einer kryptographischen Hashfunktion ist dabei, dass zwei unterschiedliche Eingaben auch zu unterschiedlichen Ausgabewerten führen (keine Kollision von Hashwerten). Ein Hashwert wird deshalb auch als Fingerprint bezeichnet, da der Wert eine nahezu eindeutige Kennzeichnung einer größeren Datenmenge darstellt.
Folgende Hashfunktionen gelten als kryptographisch stark und sind damit für ihren Einsatz empfohlen:

  • SHA-256, SHA-384, SHA-512 oder SHA-512/256 [32]
  • SHA3-224, SHA3-256, SHA3-384 oder SHA3-512 [33]

Die verbreiteten Hashfunktionen MD5 und SHA-1 gelten als veraltet und weisen bekannte Schwächen auf [34] [35]. Ihr Einsatz ist daher nicht mehr zulässig.
Für die Speicherung von langfristig schützenswerten Hashwerten ist der Einsatz der Hashfunktion SHA-512 oder SHA3-512 empfohlen. Für andere Anwendungsfälle ist die Hashfunktion SHA-256 ausreichend.

Digitale Signaturen

Eine digitale Signatur ermöglicht es die nichtabstreitbare Urheberschaft und Integrität einer Nachricht zu überprüfen. In Signaturalgorithmen werden die zu signierenden Daten zunächst gehasht und dann aus diesem Hashwert die Prüfsumme bzw. die Signatur mit dem geheimen Schlüssel des Beweisenden berechnet. Wie bei allen Public-Key-Verfahren ist für die Verifizierung ein zuverlässiger (vor Manipulationen sicherer) Weg zur Verteilung der öffentlichen Schlüssel, meist in Form von Digitale Zertifikate nach dem Standard X.509, in jedem Fall unerlässlich.
Das empfohlene Signaturverfahren ist der Digital Signature Algorithm (DSA) [36] mit einer minimalen Schlüssellänge von 1024 Bit, bzw. 160 Bit für die erzeugte Untergruppe. Die empfohlene Schlüssellänge liegt bei 2048 Bit, bzw. 224 Bit für die erzeugte Untergruppe. Für die Variante des DSA basierend auf elliptischen Kurven (ECDSA) [36] ist eine minimale Schlüssellänge von 160 Bit erforderlich, bzw. eine Schlüsssellänge von 256 Bit empfohlen.
Für die Speicherung von langfristig schützenswerten Signaturen ist eine Schlüssellänge von 3072 Bit, bzw. bei der EC Variante eine Schlüssellänge von 256 Bit empfohlen.

Passwortspeicherung

Bei Passwörtern empfiehlt sich die Speicherung als gesalzener (salted) Hash unter Verwendung einer hinreichend sicheren Einwegfunktion (Hashfunktion.) Ein Salt-Wert ist ein kryptographisch starker Zufallswert fester Länge, der dem Passwort vorangestellt wird.
Die Einwegfunktionen der SHA-Gruppe sind mit dem Ziel entwickelt worden, Daten möglichst effizient zu hashen, da sie etwa zur Verifizierung von großen Dateien verwendet werden. Diese Effizienz erleichtert es aber auf der anderen Seite, Passwörter mittels Brute-Force-Attacken zu erraten. Passwort-Hashing-Verfahren wurden dagegen mit dem Ziel entwickelt, das Hashing möglichst aufwändig zu gestalten. Die folgenden Passwort-Hashing-Verfahren sind für die Speicherung von Passwörtern empfohlen (vgl. [37]):

  • PBKDF2 [38]
  • bcrypt [39], wenn PBKDF2 nicht verfügbar ist.
Tabelle 6.1: Empfohlene Konfiguration von TLS 1.2
IDOpenSSL NameVersionKey ExchangeAuthCipherMAC
0x009FDHE-RSA-AES256-GCM-SHA384TLSv1.2DHRSAAESGCM(256)AEAD
0x006BDHE-RSA-AES256-SHA256TLSv1.2DHRSAAES(256) (CBC)SHA256
0xC030ECDHE-RSA-AES256-GCM-SHA384TLSv1.2ECDHRSAAESGCM(256)AEAD
0xC028ECDHE-RSA-AES256-SHA384TLSv1.2ECDHRSAAES(256) (CBC)SHA384

Transportverschlüsselung

Häufig müssen verschiedene kryptographische Algorithmen miteinander kombiniert werden, damit ein eingesetztes Verfahren die Sicherheitsanforderungen erfüllt. So ist es oft notwendig, vertrauliche Daten nicht nur zu verschlüsseln, der Empfänger muss sich auch sicher sein, von wem die Daten versendet wurden bzw. ob diese während der Übertragung manipuliert wurden.
Wenn es sich bei den zu verschlüsselnden Daten nicht um ruhende Daten handelt, sondern um Informationen, die in Datennetzwerken übertragen werden, ist ein Transportverschlüsselungsprotokoll zu verwenden.
Transportverschlüsselung dient der sicheren Übertragung von Informationen in Datennetzwerken, wobei insbesondere die Vertraulichkeit, die Integrität und die Authentizität der übertragenen Informationen geschützt werden können. Hierfür ist der Einsatz des Transport Layer Security (TLS) Protokolls, früher als Secure Socket Layer (SSL) Protokoll bekannt, empfohlen (vgl. [40]). TLS ist eine direkte Weiterentwicklung von SSL. Es soll mindestens TLS Version 1.1 verwendet werden, TLS 1.2 (siehe RFC 5246 [41]) ist die empfohlene Version. SSL v2, SSL v3 und TLS 1.0 dürfen nicht mehr eingesetzt werden.
Tabelle 6.1 zeigt eine Liste von starken kryptographischen Algorithmen, die für die Konfiguration von TLS 1.2 empfohlen sind (vgl. [42]).

Passwort Richtlinie

Werden in einer Anwendung oder einem IT-System Passwörter zur Authentisierung verwendet, dann ist die Sicherheit des Zugriffs auf die Betriebsmittel des Systems entscheidend davon abhängig, dass die Authentifizierung mittels Passwort korrekt gebraucht wird. Die nachfolgenden Regeln zu Passwortgestaltung und -gebrauch wurden direkt aus der Maßnahme 2.11 Regelung des Passwortgebrauchs des IT-Grundschutz-Katalogs des BSI [43] entnommen:

  • Das Passwort darf nicht leicht zu erraten sein. Namen, Kfz-Kennzeichen, Geburtsdatum usw. dürfen deshalb nicht als Passwörter gewählt werden.
  • Ein Passwort sollte aus Großbuchstaben, Kleinbuchstaben, Sonderzeichen und Zahlen bestehen. Es sollten mindestens zwei dieser Zeichenarten verwendet werden.
  • Wenn für das Passwort alphanumerische Zeichen gewählt werden können, sollte es mindestens 8 Zeichen lang sein, für einen Zugang von besonders vertrauenswürdigen Informationen, mindestens 12 Zeichen.
  • Wenn für das Passwort nur Ziffern zur Verfügung stehen, sollte es mindestens 6 Zeichen lang sein und das Authentifizierungssystem sollte den Zugang nach wenigen Fehlversuchen sperren (für eine bestimmte Zeitspanne oder dauerhaft).
  • Es muss getestet werden, wie viele Stellen des Passwortes wirklich überprüft werden.
  • Voreingestellte Passwörter (z.B. des Herstellers bei Auslieferung von Systemen) müssen durch individuelle Passwörter ersetzt werden.
  • Passwörter dürfen nicht auf programmierbaren Funktionstasten gespeichert werden.
  • Passwörter müssen geheim gehalten werden und sollten nur dem Benutzer persönlich bekannt sein.
  • Das Passwort sollte allenfalls für die Hinterlegung schriftlich fixiert werden, wobei es in diesem Fall in einem verschlossenen Umschlag sicher aufbewahrt werden muss. Wird es darüber hinaus aufgeschrieben, ist das Passwort zumindest so sicher wie eine Scheckkarte oder ein Geldschein aufzubewahren.
  • Das Passwort muss regelmäßig gewechselt werden, z. B. alle 90 Tage.
  • Ein Passwortwechsel ist durchzuführen, wenn das Passwort unautorisierten Personen bekannt geworden ist oder der Verdacht besteht.
  • Alte Passwörter sollten nach einem Passwortwechsel nicht mehr gebraucht werden.
  • Die Eingabe des Passwortes sollte unbeobachtet stattfinden.
  • Da Menschen sich lange und komplizierte Passwörter in der Regel nicht merken können und zudem für jede Anwendung ein anderes Passwort zu verwenden ist, kann in der Praxis die Nutzung eines Passwort-Speicher-Tools geprüft werden.

[12] BSI, "M 3.23 Einführung in kryptographische Grundbegriffe," IT-Grundschutz-Kataloge, 2013. [Online]. Available: https://www.bsi.bund.de/DE/Themen/ITGrundschutz/ITGrundschutzKataloge/Inhalt/_content/m/m03/m03023.html
[21] BSI, "Kryptographische Verfahren: Empfehlungen und Schlüssellängen," BSI TR-02102, 2015. [Online]. Available: https://www.bsi.bund.de/DE/Publikationen/TechnischeRichtlinien/tr02102/index_htm.html
[22] enisa, "Algorithms, key size and parameters report 2014," 2014. [Online]. Available: https://www.enisa.europa.eu/activities/identity-and-trust/library/deliverables/algorithms-key-size-and-parameters-report-2014/
[23] European Network of Excellence in Cryptology II, "ECRYPT II Yearly Report on Algorithms and Keysizes (2011-2012)," D.SPA.20, 2012. [Online]. Available: http://cordis.europa.eu/docs/projects/cnect/6/216676/080/deliverables/002-DSPA20.pdf
[24] Federal Information Processing Standards Publication 197 (FIPS PUB 197), "Advanced Encryption Standard (AES)," 2001. [Online]. Available: http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf
[25] M. Dworkin, "Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC," NIST Special Publication SP800-38D, 2007. [Online]. Available: http://csrc.nist.gov/publications/nistpubs/800-38D/SP-800-38D.pdf
[26] ——, "Recommendation for Block Cipher Modes of Operation: Methods and Techniques," NIST Special Publication SP800-38A, 2001. [Online]. Available: http://csrc.nist.gov/publications/nistpubs/800-38a/sp800-38a.pdf
[27] E. B. William C. Barker, "Recommendation for the Triple Data Encryption Algorithm (TDEA) Block Cipher," NIST Special Publication 800-67, 2012. [Online]. Available: http://csrc.nist.gov/publications/nistpubs/800-67-Rev1/SP-800-67-Rev1.pdf
[28] B. Schneier, "New RC4 Attack," Schneier on Security, 2015. [Online]. Available: https: //www.schneier.com/blog/archives/2015/07/new_rc4_attack_1.html
[29] R. Laboratories, "RSA Cryptography Standard," PKCS #1 v2.2, 2012. [Online]. Available: https://www.emc.com/emc-plus/rsa-labs/pkcs/files/h11300-wp-pkcs-1v2-2-rsa-cryptography-standard.pdf
[30] W. Diffie and M. Hellman, "New directions in cryptography," Information Theory, IEEE Transactions on, vol. 22, no. 6, pp. 644–654, Nov 1976.
[31] M. S. Elaine Barker, Don Johnson, "Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography," NIST Special Publication 800-56A, 2007. [Online]. Available: http://csrc.nist.gov/groups/ST/toolkit/documents/SP800-56Arev1_3-8-07.pdf
[32] National Institute of Standards and Technology, "Secure Hash Standard (SHS)," FIPS PUB 180-4, 2015. [Online]. Available: http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf
[33] ——, "SHA-3 STANDARD: PERMUTATION-BASED HASH AND EXTENDABLE OUTPUT FUNCTIONS," FIPS PUB 202, 2015. [Online]. Available: http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf
[34] V. Klima, "Tunnels in Hash Functions: MD5 Collisions Within a Minute," Cryptology ePrint Archive, Report 2006/105, 2006, http://eprint.iacr.org/.
[35] B. Schneier, "SHA-1 Freestart Collision," Schneier on Security, 2015. [Online]. Available: https://www.schneier.com/blog/archives/2015/10/sha-1_freestart.html
[36] National Institute of Standards and Technology, "Digital Signature Standard (DSS)," FIPS PUB 186-4, 2013. [Online]. Available: http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf
[37] OWASP, "Password Storage Cheat Sheet." [Online]. Available: https://www.owasp.org/index.php/Password_Storage_Cheat_Sheet
[38] M. S. Turan et al., "Recommendation for Password-Based Key Derivation," NIST Special Publication 800-132, 2010. [Online]. Available: http://csrc.nist.gov/publications/nistpubs/800-132/nist-sp800-132.pdf
[39] N. Provos and D. Mazieres, "A future-adaptable password scheme," in Proceedings of the 1999 USENIX, Freenix track (the on-line version), 1999, p. 99.
[40] BSI, "Kryptographische Verfahren: Empfehlungen und Schlüssellängen Teil 2 - Verwendung von Transport Layer Security (TLS)," BSI TR-02102-2, 2015. [Online]. Available: https://www.bsi.bund.de/DE/Publikationen/TechnischeRichtlinien/tr02102/index_htm.html
[41] E. R. T. Dierks, "The Transport Layer Security (TLS) Protocol Version 1.2," RFC 5246, 2008. [Online]. Available: http://tools.ietf.org/html/rfc5246
[42] A. Zauner et al., "Applied Crypto Hardening," BetterCrypto.org, 2015. [Online]. Available: https://bettercrypto.org/static/applied-crypto-hardening.pdf
[43] BSI, "M 2.11 Regelung des Passwortgebrauchs," IT-Grundschutz-Kataloge, 2016. [Online]. Available: https://www.bsi.bund.de/DE/Themen/ITGrundschutz/ITGrundschutzKataloge/Inhalt/_content/m/m02/m02011.html

Beschaffungsplattform für sichere IT von Fachhochschule St. Pölten.