In einer idealen Welt hat jede Institution oder Firma eine Security Policy, die die Wichtigkeit der gespeicherten Informationen herausstellt. Alle Mitarbeiter sind ausreichend sensibilisiert, die IT hat die entsprechenden Maßnahmen und Prozesse implementiert und jeder weiß konkret, was das bedeutet und wie er sich zu verhalten hat. Leider leben wir nicht in einer idealen Welt... Daher muss man sowohl an Technik und Organisation als auch an der Sensibilisierung der Mitarbeiter (Awareness) immer wieder arbeiten.
Wird der Stellenwert von Technik und Organisation nur selten in Frage gestellt, so wird die Mitarbeiter-Awareness oft etwas stiefmütterlich behandelt. Obwohl diese dritte Säule der IT-Sicherheit ebenfalls eine conditio-sine-qua-non ist, begegnet man hier häufig einer großen Zögerlichkeit. Dabei geht es um das Wichtigste im Unternehmen: den Menschen. Und hier ist sehr viel Fingerspitzengefühl erforderlich, denn Menschen sind verschieden, kommen aus unterschiedlichen Kulturen und man muss die richtige Balance innerhalb der normalen Arbeitsabläufe finden.
Inzwischen haben viele Firmen Maßnahmen ergriffen, wie beispielsweise:
Den letzten Punkt unterstützt das Freeware-Paket CrypTool, und zwar sowohl für den interessierten Endanwender als auch für Entwickler und Designer. CrypTool liegt komplett mit umfangreicher Online-Dokumentation auf Deutsch und Englisch vor.
----------Anfang Textkasten----------
Gerade Awareness und Sensibilität der Menschen für das
Thema Kryptographie erreicht man am besten durch eigene Erfahrung
und didaktisch gut aufbereitete Information. Diesem Zweck dient das
Programm CrypTool. Seine Entwicklung unter der Leitung von Bernhard
Esslinger wurde vor rund fünf Jahren bei der Deutschen Bank im
Zuge des End-User-Awareness-Programms begonnen. Inzwischen arbeiten
mehrere Firmen und Hochschulen damit und entwickeln es gemeinsam
weiter. Seit fast drei Jahren steht es als Freeware zur
Verfügung und fand beispielsweise auch Eingang auf der
Bürger-CD des BSI (s. a. www.bsi-fuer-buerger.de).
Die monatliche Downloadrate von CrypTool liegt bei über 1000. Eingesetzt wird es sowohl in Firmen zur Steigerung der Sensibilität für IT-Sicherheit als auch in der Lehre an mehreren Hochschulen und in der Ausbildung an Schulen und bei Azubis.
CrypTool bietet einen spielerischen Einstieg in die Kryptographie. Es steht komplett auf Deutsch und Englisch zur Verfügung. Neben vielen Funktionen aus der klassischen und modernen Kryptographie und Kryptoanalyse umfasst es eine umfangreiche Online-Dokumentation.
Das bisher vor allem von der Deutschen Bank, der Secude GmbH und dem Forschungszentrum Informatik Karlsruhe entwickelte und betreute Programm wurde im September 2002 an den von Frau Prof. Dr. Claudia Eckert geleiteten Lehrstuhl Sicherheit in der Informationstechnik (Fachbereich Informatik) der TU Darmstadt übergeben, wo es als Open-Source-Projekt weiterentwickelt und der Internet-Gemeinde zur Verfügung gestellt wird.
CrypTool liegt auf www.cryptool.de zum kostenlosen
Download und Einsatz bereit. Den besten Einstieg finden Sie
ausgehend von der Startseite der Online-Hilfe, indem Sie die Links
ausprobieren und die Szenarien durchspielen.
----------Ende Textkasten----------
CrypTool vermittelt das notwendige Grundverständnis für die Kryptographie, die inzwischen fast unsichtbar nicht nur bei der Internetnutzung, sondern auch im Alltag Eingang gefunden hat. In der Deutschen Bank wird das Tool zum Beispiel bereits in der Ausbildung der Azubis verwendet.
Bild 1: Analyse des klassischen Verfahrens von
Vigenère. mithilfe der Autokorrelation lässt sich bei
der polyalphabetischen Substitution die Schlüssellänge
bestimmen. Die anschließende Cäsar-Analyse liefert den
geheimen Schlüssel.
Mit CrypTool kann man verschiedene Verschlüsselungsverfahren ausprobieren und auch analysieren. Es zeigt sich, dass und wie selbst-erfundene oder klassische Verfahren automatisiert zu knacken sind. So zum Beispiel das bis ins 19. Jahrhundert als absolut sicher geltende Vigenère-Verfahren: eine polyalphabetische Erweiterung der Cäsar-Verschlüsselung, die ohne großen Aufwand mithilfe von Autokorrelation und einfacher Frequenzanalyse automatisch zu brechen ist (vgl. Bild 1). Ebenso erhält man ein Gefühl dafür, dass auch moderne Verfahren bei zu kurzer Schlüssellänge per Brute-Force knackbar sind (Bild 2).
Bild 2: Brute-Force-Analyse eines modernen symmetrischen
Verfahrens. Mithilfe der Entropie können der wahrscheinlichste
Ausgangstext und der Schlüssel identifiziert werden. Mit
CrypTool lassen sich mit einem durchschnittlichen PC bis zu 20
unbekannte Bit eines Schlüssels innerhalb weniger Minuten
finden.
Der in CrypTool gesetzte Schwerpunkt der Gegenüberstellung von Kryptoverfahren und Kryptoanalyse hilft zu verstehen, dass es für jedes Verschlüsselungsverfahren mehr oder weniger erfolgreiche Analysemethoden gibt. Einige sind voll automatisiert, während man sich bei anderen Methoden als echter Code-Brecher versuchen kann, um sich, ausgehend von einem vermuteten Text(fragment), Schritt für Schritt mit den jeweils gewonnenen Informationen dem geknackten Klartext anzunähern.
Kryptographie | Kryptoanalyse |
---|---|
Verschlüsselungsklassiker
|
Angriffe auf klassische Verfahren
|
Zum besseren Nachvollziehen von Literaturbeispielen ist
|
Unterstützende Analyseverfahren
|
Moderne symmetrische Verschlüsselung
|
Brute-Force-Angriff auf symmetrische Algorithmen
|
Asymmetrische Verschlüsselung
|
Angriff auf RSA-Verschlüsselung
|
Hybridverschlüsselung (RSA + AES)
|
Angriff auf Hybridverschlüsselung
|
Digitale Signatur
|
Angriff auf RSA-Signatur
|
Hashfunktionen
|
kein Angriff implementiert |
Zufallsgeneratoren
|
Analyse von Zufallsdaten
|
Die symmetrische Ver- und Entschlüsselung ist der leichter zu beherrschende Teil der heutigen Kryptographie. Die für viele Laien neuen Methoden der asymmetrischen Kryptographie sind dagegen der Schlüssel für die Realisierung von Authentizität, Integrität und digitaler Signatur im Internet. In CrypTool wurde daher besonders viel Wert auf das bekannte RSA-Kryptosystem gelegt. Wer Grundkenntnisse in Mathematik besitzt, kann sich mithilfe der RSA-Demonstration sein eigenes Schlüsselpaar erzeugen und die einzelnen Schritte der Ver- und Entschlüsselung nachvollziehen: Man kann Nachrichten verschlüsseln und eine Signatur verifizieren und auch einen Faktorisierungsangriff auf den öffentlichen RSA-Schlüssel starten. Der Angriff ist mit CrypTool bis zu Schlüssellängen von 250 Bit erfolgreich (Quadratische-Sieb-Methode).
Die Demonstration des RSA-Kryptosystems ermöglicht zu verstehen, wie RSA funktioniert und ab welcher Schlüssellänge das System sicher ist. Weitere Details und aktuelle Forschungsergebnisse sind einem mit CrypTool ausgelieferten Skript zu entnehmen.
Bild 3: Erzeugen eines eigenen RSA-Zertifikats im Rahmen der
Signatur-Demonstration
Mit dem Verständnis der Arbeitsweise kryptographischer
Algorithmen schafft Cryptool gleichzeitig ein Bewusstsein für
das, was starke Kryptographie nicht leisten kann, zum
Beispiel ein gutes Passwort zu wählen. Die Wahl schlechter
Passwörter ist der noch immer häufigste Fehler von
Anwendern. Hier kann man mit Demonstrationen anhand echter
Passwortdateien und ihrer Analyse mit Tools wie John-the-Ripper ( www.openwall.com/john/) echte
Aha-Erlebnisse schaffen.
Darüber hinaus müssen aber auch die Entwickler und Administratoren wissen, wie sie mit den Passwörtern umgehen sollten. Selbst wenn eine kryptographische Anwendung sicher ist, so ist letztendlich die Benutzersicherheit von einem geheimen Text – dem "Passwort" – abhängig. Das Passwort selbst ist aber in der Regel für Kryptosysteme nicht direkt anwendbar, sondern man berechnet aus dem Passwort erst den eigentlichen Schlüssel. Dabei kommt es auf die richtige Anwendung der entsprechenden Algorithmen an.
CrypTool zeigt beispielsweise, wie per PKCS#5-Verfahren [5] ein Hashwert berechnet wird (vgl. Bild 4), aus dem auf das ursprüngliche Passwort nicht direkt zurückzurechnen ist. Der hergeleitete Schlüssel ist neben dem Passwort auch von anderen Parametern abhängig: Der zusätzliche Initialisierungswert, das "Salz", ermöglicht es aus ein und demselben Passwort unterschiedliche Schlüssel zu generieren. Die Anzahl der Hash-Iterationen erhöht indessen den Aufwand für Wörterbuchangriffe.
Bild 4: Schlüsselgenerierung aus einem Passwort nach
PKCS#5
Wenn Angreifer die Datei der gehashten Passwörter erlangen und womöglich sogar die Parameter wie Hashverfahren, Anzahl der Hash-Iterationen sowie den für jedes Passwort individuellen Salzwert kennen, dann führen Brute-Force- oder Wörterbuch-Attacken bei schlecht gewählten Passwörtern sehr schnell zum Erfolg. Wenn die Entwickler des Systems die Parameter der PKCS#5-Aufruffunktionen nicht angemessen ausgenutzt haben, geht es umso leichter. Bei einem Angriff auf eine Passwortdatei, die keinen Salzwert nutzt, lassen sich beispielsweise alle Passwörter gleichzeitig analysieren. Eine Attacke auf eine produktive Passwortdatei ohne Salz mit 3 000 Passwörtern hat etwa gezeigt, dass 50 % davon mit einem normalen PC innerhalb eines Tages zu bestimmen waren.
Es sollte jedem bewusst sein, dass gegen einen Angreifer, der die Passwortdatei in die Hand bekommen hat, letztendlich nur gute Passwörter helfen. Und Administratoren sollten sich immer wieder vergewissern, dass es keine Möglichkeit gibt, diese Passwortdateien zur Analyse herunterzuladen.
Wenn Entwickler unter Zeitdruck eine über das Internet
zugängliche Ressource schützen müssen, kommt es vor,
dass sie sich "abenteuerliche", selbst entwickelte Kryptosysteme
ausdenken (vgl. www.counterpane.com/crypto-gram-9902.html#snakeoil).
Beliebt sind Varianten der polyalphabetischen Substitution.
CrypTool führt Entwicklern vor Augen, dass solche Systeme sich
oft allein mit statistischen Verfahren analysieren und knacken
lassen (vgl. Bild 1).
Aber auch wenn Entwickler bewährte Kryptographie-Bibliotheken nutzen, fehlt ihnen oft das Verständnis, wie diese Funktionen sicher einzusetzen sind. Häufige Fehler sind beispielsweise erratbare Session-IDs, öffentlich lesbare Passwortdateien gekoppelt mit unzureichenden Methoden für die Berechnung von Passwort-Hashes oder die Nutzung symmetrischer Verschlüsselung mit zu kleinen Schlüssellängen (wie RC4 mit 40 Bit). Auch hier liefert CrypTool erfahrbare Hintergrundinformationen zu den wichtigsten kryptographischen Methoden wie Zufallsgeneratoren, symmetrischen/asymmetrischen Verschlüsselungs- sowie Hashverfahren.
CrypTool selbst verwendet zum Beispiel die
Industrie-bewährte SECUDE-Bibliothek ( www.secude.de) zur symmetrischen
Verschlüsselung sowie für digitale Signaturen. Entwickler
können diese Funktionen als Referenz-Implementierung
nutzen.
Bild 6: Die CrypTool-Funktion "Gleitende Häufigkeit"
zeigt, dass in der Windows-Bibliothek advapi32.dll an zwei Stellen
wahrscheinlich verschlüsselte Daten abgelegt sind. Im Beispiel
zeigt sich der so genannte NSA-Key (vgl. www.cnn.com/TECH/computing/9909/03/windows.nsa.02/)
----------Anfang Textkasten----------
Das Potenzial, das CrypTool für die wissenschaftliche Entwicklung bietet, möge das Beispiel einer Bachelor-Abschlussarbeit in der Deutschen Bank verdeutlichen [6]. Dabei wurde das Thema der Hashfunktionen in CrypTool weiter vertieft: Die Implementierung des Floyd-Algorithmus hat gezeigt, wie wertvoll CrypTool als "Rahmen" sein kann. Studenten, die an Themen im Umfeld der Kryptographie arbeiten, können ihre Erkenntnisse damit schneller implementieren und sie auch für andere experimentell erfahrbar machen. Damit entsteht neben ihrer schriftlichen Ausarbeitung noch etwas Dauerhaftes und allgemein Nützliches.
Aufgabe der genannten Bachelor-Arbeit war es, digitale Signaturen durch Hashkollisionen mithilfe des Geburtstagsparadoxons praktisch anzugreifen und daraus eine Aussage zur Sicherheit heutiger Hashverfahren herzuleiten. Veranschaulichungen sind deshalb sehr wertvoll, da akademische Angriffe für "normale" Menschen nur schwer einzuschätzen sind.
Als Geburtstagsparadoxon wird das "paradoxe" Ergebnis bezeichnet, dass zwar 253 Gäste notwendig sind, damit wenigstens ein Gast mit 50 % Wahrscheinlichkeit am gleichen Tag wie der Gastgeber Geburtstag hat, hingegen aber schon bei 23 Gästen diese Wahrscheinlichkeit erreicht wird, wenn man nur fordert, dass wenigstens zwei Gäste am gleichen Tag Geburtstag haben.
Beim so genannten Geburtstagsangriff werden – ausgehend von zwei Nachrichten M1 und M2 mit unterschiedlichen Hashwerten – zwei veränderte Nachrichten M1' und M2' mit identischem Hashwert bestimmt. Diese unterscheiden sich nur durch unsichtbare Zeichen von den Ausgangsnachrichten (z. B. zusätzliche Leerzeichen am Zeilenende). Später wird die unverfängliche Nachricht M1' dem Opfer zum Signieren vorgelegt. Der Angriff ist erfolgreich, wenn die Nachricht M1' signiert wurde. Durch den Austausch von M1' mit M2' erhält der Angreifer eine gültige Signatur für M2' (perfekte Fälschung). Mithilfe des Geburtstagsparadoxons zeigt man, dass für Hashfunktionen der Bitlänge x im Mittel nach Erzeugung von etwa 2x/2 Nachrichten M1' und M2' eine Hashkollision gefunden wird. Die Suche der Hashkollision wird mit dem Floyd-Algorithmus implementiert (s. Exercise 3.1-6 in [7]).
So wie man mit dem Brute-Force-Verfahren beliebige Verschlüsselungsalgorithmen angreifen kann, so generisch kann man mit dem Floyd-Algorithmus jedes beliebige Hashverfahren angreifen, ohne dass man Kenntnis von eventuellen Strukturschwächen haben müsste.
Die Implementierung in CrypTool im Rahmen der Bachelor-Arbeit von Jan Blumenstein führte zu einer didaktisch-anschaulichen Beschreibung des Angriffs und einer klaren Aussage zur minimal notwendigen Länge von Hashwerten. Damit kann jeder die praktischen Ergebnisse der Arbeit nachvollziehen:
----------Ende Textkasten----------
Nachdem die Basisverfahren (oder kryptographischen Primitive, wie die Zahlentheoretiker sagen) in CrypTool implementiert waren, wurde seit Version 1.3 besonderer Wert auf die didaktische Darstellung der modernen Verfahren gelegt:
Für jeden mit mathematischem Abiturwissen gibt es die bereits erwähnte RSA-Demonstration, um tiefer in die Thematik der digitalen Signatur und der Hybridverschlüsselung einzusteigen. Beim Erstellen elektronischer Signaturen spielen neben den Signaturalgorithmen auch Hashwerte eine wichtige Rolle. Der Hashwert-Demonstrator liefert einen Eindruck für eine wesentliche Eigenschaft von kryptographischen Hash-Funktionen: selbst eine nur kleine Änderung der Eingabe verändert den Hashwert grundlegend. Damit kann jeder von Hand versuchen, eine Hashwert-Kollision zu bestimmen.
Ohne ein derart vermitteltes Grundverständnis dürften Mitarbeiter und Bürger nur schwer den richtigen Umgang mit elektronischen Ausweisen und Signatur-Zertifikaten pflegen. Die Hintergrundinformationen helfen darüber hinaus einzuschätzen und zu verstehen, welche Methoden das Internet wirklich sicher machen.
Das CrypTool-Paket steht unter www.cryptool.de (auf Deutsch) und
www.cryptool.org (auf Englisch) zum
Download zur Verfügung. Es wird unter der Federführung
der TU-Darmstadt durch die Mitwirkung von interessierten "Laien"
(z. B. Mitarbeiter von Firmen), Studenten und akademischen
Mitarbeitern fortlaufend weiterentwickelt.
Bernhard Esslinger (bernhard.esslinger@db.com) ist Leiter IT-Sicherheit bei der Deutsche Bank AG und Lehrbeauftragter für IT-Security an der Uni Siegen.
© SecuMedia-Verlags-GmbH, 55205 Ingelheim (DE),
<kes> 2003#2, Seite 18