M 2.164 Auswahl eines geeigneten kryptographischen Verfahrens
Verantwortlich für Initiierung: IT-Sicherheitsbeauftragter
Verantwortlich für Umsetzung: IT-Sicherheitsbeauftragter
Die Auswahl eines kryptographischen Verfahrens zerfällt in die beiden Teilaufgaben
- Auswahl des kryptographischen Algorithmus und
- Auswahl einer technischen Realisierung.
Bevor Anwender sich auf bestimmte Verfahren festlegen, sollte sie genaue Vorstellungen davon haben, welche Anforderungen sie an Vertraulichkeit und Authentizität der bearbeiteten Daten in jedem "Punkt" seines informationsverarbeitenden Systems stellen.
Auswahl von kryptographischen Algorithmen
Bei der Auswahl von kryptographischen Algorithmen ist zunächst zu klären, welche Art kryptographischer Verfahren benötigt werden, also symmetrische, asymmetrische oder hybride Verfahren, und dann sind geeignete Algorithmen, also solche mit entsprechender Mechanismenstärke auszuwählen.
Verschlüsselungsverfahren
- symmetrische Verschlüsselung: Die Vor- bzw. Nachteile symmetrischer Verfahren sind in M 3.23 Einführung in kryptographische Grundbegriffe beschrieben. Geeignete Algorithmen sind z. B. AES-128, AES-192, AES-256, SERPENT, wobei die Schlüssellänge mindestens 128 Bit sein sollte.
- asymmetrische Verschlüsselung: Die Vor- bzw. Nachteile asymmetrischer Verfahren sind ebenfalls in M 3.23 Einführung in kryptographische Grundbegriffe beschrieben. Geeignete Algorithmen sind z. B. RSA oder auf Elliptischen Kurven basierende Verschlüsselungsverfahren (zur Schlüssellänge siehe unten).
Authentisierungsverfahren
- Nachrichtenauthentisierung
Zur Nachrichtenauthentisierung können verschiedene Verfahren eingesetzt werden, etwa ein Message Authentication Code (MAC) oder ein digitales Signaturverfahren. Der Einsatz eines MACs ist von Vorteil, wenn extrem hohe Durchsatzraten gefordert sind (oder nur eine geringe Rechenkapazität zur Verfügung steht) und das Risiko der Schlüsseloffenlegung auf beiden Seiten sehr gering ist. Der Einsatz eines digitalen Signaturverfahrens ist von Vorteil, wenn das Risiko der (Signatur-) Schlüsseloffenlegung auf einer Seite wesentlich höher ist als auf der anderen Seite; und in aller Regel geboten, wenn Verbindlichkeitsdienste verlangt werden. Es sei noch einmal bemerkt, dass für den Dienst Verbindlichkeit eine Infrastruktur vertrauenswürdiger Dritter vorhanden sein muss.
Der bekannteste MAC-Algorithmus ist die Verschlüsselung einer Nachricht mit DES oder einem anderen Block-Chiffrierverfahren im CBC- oder CFB-Mode.
Dabei wird als MAC der letzte verschlüsselte Block an die Nachricht angehängt. Solche Varianten sind z. B. in den Normen, ISO 8731-1 oder ISO 9797 spezifiziert.
In neuerer Zeit gab es weitere Vorschläge für Blockchiffren-basierte MAC-Konstruktionen, hier hat sich von der amerikanischen NIST standardisierte Verfahren C-MAC (ehedem OMAC1) als allgemein akzeptiertes MAC-Verfahren durchgesetzt. Daneben gibt es dedizierte MAC-Konstruktionen auf Basis von Hashfunktionen, hier ist an erster Stelle der weithin akzeptierte und verwendete HMAC aus dem RFC 2104 zu nennen.
Geeignete Algorithmen für Digitale Signaturen sind z. B. RSA, DSA (Digital Signature Algorithm) oder auf elliptischen Kurven basierende DSA-Varianten, z. B. ISO/IEC 15946-2, IEEE-Standard P1363, Abschnitt 5.3.4 ("DSA Version"). Genaueres kann dem von der Bundesnetzagentur jährlich herausgegebenen "Algorithmenkatalog" entnommen werden (siehe unten).
Von den hier genannten digitalen Signaturen sind die elektronischen Signaturen, wie sie in den EU-Richtlinien oder Rechtsvorschriften Deutschlands definiert sind, zu unterscheiden. Inwiefern die hier genannten digitalen Signaturen als elektronische Signaturen im Sinne dieser Rechtsnormen gewertet werden können, muss gesondert geprüft werden und ist nicht Gegenstand dieser Maßnahme. - Authentisierung von Benutzern oder Komponenten
Ein einfaches Verfahren zur Authentisierung ist eine Passwortabfrage. Werden die Passwörter dabei aber unverschlüsselt über ein Netz übertragen, können diese verhältnismäßig einfach mitgelesen werden. Daher sollten hier bessere Verfahren verwendet werden. Geeignete Verfahren sind beispielsweise- Einmalpasswörter (siehe auch M 5.34 Einsatz von Einmalpasswörtern), die software- oder hardwaregestützt erzeugt werden können. Hierbei sind die hardwarebasierten Authentisierungsmethoden vorzuziehen, da sie einen geringeren organisatorischen Aufwand und höhere Sicherheit bieten.
- Die Authentisierung mittels PAP oder besser CHAP, die bei der Nutzung des Point-to-Point-Protocol eingesetzt werden (siehe auch M 5.50 Authentisierung mittels PAP/CHAP).
- Die Authentisierung mittels CLIP/COLP, die bei der Kommunikation über ISDN eingesetzt wird (siehe auch M 5.48 Authentisierung mittels CLIP/COLP).
- Ein weiteres bekanntes Verfahren ist das Authentikationsprotokoll Kerberos, das am MIT (Massachusetts Institute of Technology) entwickelt wurde. Es wird in Netzen zur gegenseitigen Authentisierung von Benutzer/Client und Servern eingesetzt. Die zentrale Autorität bei Kerberos ist der Ticket-Granting-Server, der Tickets ausstellt, mit denen sich Clients und Server gegenseitig authentisieren können. Mit Hilfe dieser Tickets können Benutzer sich nach einmaliger Authentikation Sitzungsschlüssel für die verschiedensten Dienste anfordern.
Hashverfahren
Bei der Kryptoanalyse von Hash-Funktionen hat es in neuerer Zeit große Fortschritte gegeben. Aufgrund dieser Ergebnisse kann SHA-1 nicht mehr uneingeschränkt für alle Einsatzzwecke empfohlen werden, die Verwendung im HMAC ist aber nach wie vor unkritisch.
Geeignete Algorithmen sind neben RIPEMD-160 (bei niedrigeren Anforderungen an die Kollisisionsresistenz, d. h. circa 80 Bit Aufwand) vor allem die neueren SHA-2 Versionen (SHA-224, SHA-256, SHA-384, SHA-512), die für Anwendungen mit höheren Anforderungen an die Kollisionresistenz ausgelegt sind.
Der Hash-Algorithmus MD5 ist veraltet und weist bekannte Schwächen auf, die auch bereits anhand praktischer Beispiele demonstriert werden konnten. MD5 sollte deshalb nicht mehr verwendet werden.
Auswahlkriterien
Mechanismenstärke / Schlüssellänge
Ein wesentliches Kriterium für die Auswahl von kryptographischen Verfahren ist ihre Mechanismenstärke. Bei symmetrischen Verfahren sollte insbesondere die Schlüssellänge ausreichend groß sein. Je größer die verwendete Schlüssellänge bei einem kryptographischen Verfahren ist, desto länger dauert es, ihn z. B. durch eine Brute-Force-Attacke zu berechnen. Andererseits werden die Verfahren bei der Verwendung längerer Schlüssel langsamer, so dass immer zu überlegen ist, welche Schlüssellänge unter Nutzen-/Leistungsgesichtspunkten angemessen ist. Als Faustregel für gute Verfahren (Triple-DES, IDEA, RC5, AES,...) und normalen Schutzbedarf gilt derzeit, dass die eingesetzten Schlüssel mindestens 100 Bit lang sein sollten. Bei Verwendung von Blockchiffren sollten größere, strukturierte Datenmengen nicht im ECB-Modus verschlüsselt werden. Stattdessen sollten dazu der CBC-Modus oder der CFB-Modus verwendet werden. Mindestens eine dieser Betriebsarten sollte daher implementiert sein.
Bei asymmetrischen Verfahren sollte die Mechanismenstärke so gewählt werden, dass die Lösung der zu Grunde liegenden mathematischen Probleme einen unvertretbar großen bzw. praktisch unmöglichen Rechenaufwand erfordert (die zu wählende Mechanismenstärke hängt daher vom gegenwärtigen Stand der Algorithmik und der Rechentechnik ab). Gegenwärtig kann davon ausgegangen werden, dass man mit- Modullängen von 1536 Bit bei RSA bzw.
- Untergruppenordnungen in der Größe von 200 Bit bei ElGamal-Verfahren auf einer geeigneten elliptischen Kurve
Für langfristige Sicherheitsanwendungen sollten 2048 Bit RSA-Moduli bzw. Untergruppenordnungen von mindestens 224 Bit eingesetzt werden. Beispiele für geeignete elliptische Kurven findet man im Internet unter www.ecc-brainpool.org.
Es sollten keine "unbekannten" Algorithmen verwendet werden, d. h. es sollten Algorithmen eingesetzt werden, die veröffentlicht sind, die von einem breiten Fachpublikum intensiv untersucht worden sind und von denen keine Sicherheitslücken bekannt sind. Häufig bieten Hersteller Sicherheitsprodukte an mit neuen Algorithmen, die "noch viel sicherer und noch viel schneller" sein sollen als andere Algorithmen. Aber vor der Verwendung von unbekannten Algorithmen aus Quellen, deren kryptographische Kompetenz nicht ausreichend nachgewiesen ist, kann nur gewarnt werden.
Symmetrische oder hybride Verfahren?
Aus Performancegründen werden für Verschlüsselungszwecke keine reinen Public-Key-Implementierungen eingesetzt. Alle gängigen Implementierungen von Public-Key-Kryptographie nutzen hybride Verfahren (siehe auch M 3.23 Einführung in kryptographische Grundbegriffe).
In Anwendungen mit großen oder offenen Nutzergruppen empfiehlt sich meist die Verwendung eines hybriden Verfahrens (wegen der Vorzüge für das Schlüsselmanagement). Bei kleinen, geschlossenen Nutzergruppen (insbesondere natürlich bei einem einzelnen Benutzer) kann man sich auf symmetrische Verfahren beschränken. Bei Einsatz hybrider Verfahren ist es sinnvoll, die Stärken des symmetrischen und des asymmetrischen Anteils aufeinander abzustimmen. Da mit dem asymmetrischen Verfahren vor einem Schlüsselwechsel in der Regel viele Schlüssel für das symmetrische Verfahren überschlüsselt werden, sollte der asymmetrische Algorithmus eher etwas stärker ausgelegt werden.
Realisierbarkeit von technischen Anforderungen
Die Chiffrieralgorithmen müssen so beschaffen sein, dass die technischen Anforderungen, insbesondere die geforderte Performance, durch eine geeignete Implementation erfüllt werden können. Hierunter fallen Anforderungen an die Fehlerfortpflanzung (z. B. falls über stark rauschende Kanäle gesendet wird), aber auch Anforderungen an Synchronisationsoverhead und Zeitverzögerung (z. B. falls "Echtzeit"-Verschlüsselung von großen Datenmengen erfordert wird).
Beispiel: Sprachverschlüsselung bei ISDN
Für die Planung eines Kommunikationsnetzes ist eine Reihe von Parametern zu berücksichtigen, die einen Einfluss auf die zu erwartende Sprachqualität haben und sich in Form von Rauschen, Knacken, Nebensprechen oder Pfeifen bemerkbar machen. Zu solchen Einflussfaktoren zählen beispielsweise die eingesetzten Verschlüsselungsverfahren. Um eine zufrieden stellende Sprachqualität erzielen zu können, müssen alle Einrichtungen längs eines Übertragungsweges betrachtet und bewertet werden.
Eine isolierte Betrachtungsweise einer Einzelkomponente ist zwar aufgrund der Verkopplung aller relevanten Einzeleffekte als nicht gerechtfertigt anzusehen, dennoch ist die Kenntnis der Einflussfaktoren jeder Einzelkomponente (z. B. der Kryptokomponente) wichtig. Hieraus können sowohl die Rahmenbedingungen für die Realisierung als auch für die Auswahl abgeleitet werden.
Das Verhalten einer Verschlüsselungskomponente wird dabei hauptsächlich durch folgende Faktoren charakterisiert:
- die verstreichende Zeitdauer bei der Verschlüsselung eines Datenblocks (führt im Allgemeinen zu Verzögerungen),
- die für Synchronisationszwecke zusätzlich in den Datenstrom eingeführten Steuerinformationen (führen unter Umständen zu Schwankungen),
- der von der Kryptokomponente maximal zu leistende Datendurchsatz (führt, -wenn Zwischenspeicherung notwendig ist- ebenfalls zu Schwankungen),
- die durch die Verschlüsselung resultierende Fehlerfortpflanzung (führt im Allgemeinen zu einem Anstieg der Fehlerrate).
Andere Einflussfaktoren
Manche kryptographische Algorithmen (z. B. IDEA) sind patentiert, für ihren Einsatz in kommerziellen Anwendungen (wozu auch der behördliche Bereich zählt) sind eventuell Lizenzgebühren zu entrichten.
Veröffentlichungen der Bundesnetzagentur
Die Bundesnetzagentur veröffentlicht regelmäßig im Bundesanzeiger eine Übersicht über die Algorithmen, die zur Erzeugung von Signaturschlüsseln, zum Hashen zu signierender Daten oder zur Erzeugung und Prüfung qualifizierter elektronischer Signaturen als geeignet angesehen werden können. Diese Veröffentlichungen können auch vom Webserver der Bundesnetzagentur (www.bundesnetzagentur.de) herunter geladen werden. Sie können zusätzliche Hinweise zur Auswahl liefern.
Prüffragen:
-
Wird beim Einsatz kryptographischer Verfahren eine aktuell empfohlene Schlüssellänge eingesetzt?
-
Wird sichergestellt, dass etablierte Algorithmen verwendet werden, die von der Fachwelt intensiv untersucht worden sind und von denen keine Sicherheitslücken bekannt sind?