Systematik einer praktikablen Kryptoanalyse

Systematik einer praktikablen Kryptoanalyse

Marc Ruef
von Marc Ruef
Lesezeit: 9 Minuten

Ein klassischer und nach wie vor wichtiger Bestandteil moderner Informationssicherheit ist die Kryptologie. Und mit ihr wird im Rahmen von Sicherheitsüberprüfungen auch die Kryptoanalyse von zentraler Wichtigkeit. Durch sie sollen kryptografisch geschützte Mechanismen verstanden und gebrochen werden.

Es gibt eine Vielzahl an Büchern und Fachpublikationen zum Thema Kryptografie. Und auch einige Schriften zur Kryptoanalyse. Die meisten von ihnen setzen sich jedoch auf rein technischer Ebene mit dem Thema auseinander. Anhand konkreter Vorgehensweisen werden die jeweiligen Mechanismen illustriert, ohne die generischen konzeptionellen Hintergründe der Herangehensweise zu besprechen.

Dieser Beitrag soll also auf nicht-technischer Ebene zeigen, wie ein kryptografisches System gebrochen wird. Eine praktikable Kryptoanalyse in einem Real-World Penetration Test durchläuft dabei unterschiedliche Phasen, auf die wir einzeln eingehen werden:

  1. Erkennen kryptografischer Mechanismen
  2. Ermitteln der Aufgabe des Mechanismus
  3. Identifizieren der Technologien
  4. Generische und bekannte Attacken auf die Technologie
  5. Individuelle Attacken auf die Implementierung

Erkennen kryptografischer Mechanismen

Als erstes muss der Analyst überhaupt erkennen, dass ein kryptografischer Mechanismus zum Einsatz kommt. Ist eine Kryptoanalyse lediglich ein (kleiner) Teil eines Penetration Test oder Reverse Engineering, dann geschieht dies spätestens bei der allgemeinen Durchsicht des Zielobjekts. Zum Beispiel bei der Betrachtung einer Webapplikation, die für einen aufmerksamen Benutzer an verschiedenen Stellen kryptografische Mechanismen einzusetzen pflegt. Beispielsweise:

Grundsätzlich deutet jede willkürlich erscheinende Zahlen- oder Buchstabenreihe auf einen etwaigen kryptografischen Mechanismus hin. Besonders hexadezimale Darstellungsformen gelten als starke Indikatoren hierfür. Diese können beispielsweise im Aufbereiten und Darstellen von Dokumenten sowie im Austausch von Informationen und Daten vorkommen.

Ermitteln der Aufgabe des Mechanismus

Das Erkennen kryptografischer Mechanismen definiert in einem späteren Schritt die möglichen Angriffsvektoren in Bezug auf eine Kryptoanalyse. Doch zuerst muss überhaupt verstanden werden, was die Aufgabe (das Ziel) des jeweiligen Mechanismus ist:

Mechanismus Aufgabe
Benutzerauthentisierung Authentisierung und Identifizierung des Benutzers
Passwort-Hashing Schutz übermittelter/abgelegter Passwörter
Challenge-Response-Verfahren Strenge Authentisierung
Session-ID Schutz temporärer Sessions
Captcha Schutz vor automatisierter Verarbeitung (z.B. Spam, DoS)
Kommunikationsauthentisierung Schutz vor Identitätsdiebstahl (Spoofing, Replay-Attacken)
Kommunikationsverschlüsselung Schutz des Datenaustausch (Sniffing, Man-in-the-Middle)
Datenverschlüsselung Schutz vor unerlaubter Einsicht

Es ist zu sehen, dass die verschiedenen kryptologischen Mechanismen gänzlich unterschiedliche Ziele verfolgen. Einige bemühen sich um die Vertrauenswürdigkeit (Confidentiality), andere um die Wahrung der Integrität (Integrity) und wiederum andere um die Verfügbarkeit (Availability). Zusätzlich ist mancherorts die Authentizität (Authenticity) sowie die Non-Repudiation (wird an dieser Stelle ausser Acht gelassen) gegeben.

Mechanismus Co In Av Au No
Benutzerauthentisierung      
Passwort-Hashing      
Challenge-Response-Verfahren      
Session-ID      
Captcha      
Kommunikationsauthentisierung      
Kommunikationsverschlüsselung      
Datenverschlüsselung      

Identifizieren der Technologien

Anhand der Erkennung der kryptografischen Methoden und der Ermittlung ihrer Aufgaben wird der Grundstein dafür gelegt, die (möglicherweise) eingesetzten Technologien zu ermitteln. Es ist zum Beispiel naheliegend, dass für den Schutz gespeicherter Passwörter ein Hash-Algorithmus verwendet wird. In Frage kommen populäre Algorithmen wie MD5 oder SHA1. In diesem Fall kann aufgrund des Einsatzgebiets die Nutzung einer symmetrischen Verschlüsselung “ausgeschlossen” werden. Symmetrische Blockverschlüsselungen wie DES/AES oder Blowfish/Twofish können in diesem Fall (vorerst) vernachlässigt werden.

Mechanismus Technologie
Benutzerauthentisierung Hashing, Verschlüsselung, Zertifikate
Passwort-Hashing Hashing
Challenge-Response-Verfahren Zufallszahlen
Session-ID Zufallszahlen
Captchas Zufallszahlen
Kommunikationsauthentisierung Hashing, Verschlüsselung, Zertifikate
Kommunikationsverschlüsselung Verschlüsselung
Datenverschlüsselung Verschlüselung

Sodann kann versucht werden, die konkret eingesetzten Technologien als solche auszumachen. Zum Beispiel kann die Länge eines Hash-Werts Rückschlüsse auf den eingesetzten Hash-Algorithmus zulassen. Ein MD5-Hash umfasst in der hexadezimalen Schreibweise typischerweise 32 Bytes – Ein SHA-512 kommt dagegen mit 64 Bytes daher. Eine hexadezimale Zeichenkette dieser Länge lässt eben diesen Algorithmus vermuten. Es gibt verschiedene Methoden zum Fingerprinting der jeweiligen Mechanismen (werden mitunter im Entropia-Projekt erforscht), wobei sich gerade eine sichere Lösung das Erkennen aufgrund des generischen Verhaltens besonders schwierig gestaltet. Hinweise auf Technologien geben:

Generische und bekannte Attacken auf die Technologie

Sind die verwendeten Technologien einmal identifiziert worden, kann versucht werden bekannte und generische Attacken auf diese anzuwenden. Dabei geht es jeweils darum, die definierten Ziele des Mechanismus zu verhindern. Bei einer Benutzerauthentisierung wird versucht den Zugriff trotz fehlender Authentisierungsinformationen vorzunehmen (Umgehen oder Vortäuschen einer legitimen Authentisierung) und der Angriff auf einen Passwort-Hash versucht ein legitimes Passwort zu ermitteln (Bruteforce-Attacke oder Erzwingen einer Kollision).

Gerade bei populären Technologien können zu diesem Zweck auf öffentliche Arbeiten zurückgegriffen werden. Es gibt eigentlich keinen öffentlichen Algorithmus, der nicht schon einer Kryptoanalyse unterzogen wurde. Die meisten Resultate werden in Facharbeiten, Journals, Artikeln oder Büchern publiziert.

In manchen Fällen stehen zusätzliche Software-Implementierungen bereit, um einen praktikablen Angriff vereinfachen oder automatisieren zu können. Zum Beispiel können durch Bruteforce-Tools entsprechende Attacken umgesetzt werden. Stehen keine Tools oder Exploits zur Verfügung, kann versucht werden eine eigene Implementierung für einen spezifischen Angriff voranzutreiben. Dies setzt natürlich ein hohes Mass an Verständnis für eben diesen sowie genügend Zeit zur Umsetzung einer Automatisierung voraus.

Individuelle Attacken auf die Implementierung

Weitaus interessanter als generische/bekannte Attacken auf Technologien sind individuelle Angriffe auf die konkret gegebene Implementierung. Vor allem proprietäre Mechanismen mit geschlossenem Hintergrund weisen in der Regel ein praktikables Mass an Angreifbarkeit auf (z.B. Angriff auf X-pire!).

Hierbei können klassische Angriffstechniken, die auf die jeweilige Implementierung abgestimmt werden, eingesetzt werden:

Das Umsetzen individueller Attacken auf eine spezifische Implementierung erfordert ein hohes Mass an Verständnis für die eingesetzten Technologien und die darauf anwendbaren kryptoanalytischen Mittel. Im Rahmen allgemeiner Sicherheitsüberprüfungen, bei denen kryptografische Attacken nur eine verhältnismässig kleine Rolle spielen, sind hierzu nur beschränkte mathematische Fähigkeiten erforderlich. So kann zum Beispiel eine Häufigkeitsanalyse sehr schnell und mit relativ wenig Aufwand brauchbare Resultate für eine weiterführende Kryptoanalyse liefern. Soll hingegen eine deterministische Beweisbarkeit von Angriffsszenarien dargelegt werden, muss eine solide mathematische Beweisführung miteinbezogen werden.

Im Beitrag Kryptoanalyse von Session-IDs wird am Beispiel von Session-IDs aufgezeigt, wie eine nicht-mathematische Kryptoanalyse einer individuellen Implementierung vorgenommen werden kann.

Über den Autor

Marc Ruef

Marc Ruef ist seit Ende der 1990er Jahre im Cybersecurity-Bereich aktiv. Er hat vor allem im deutschsprachigen Raum aufgrund der Vielzahl durch ihn veröffentlichten Fachpublikationen und Bücher – dazu gehört besonders Die Kunst des Penetration Testing – Bekanntheit erlangt. Er ist Dozent an verschiedenen Fakultäten, darunter ETH, HWZ, HSLU und IKF. (ORCID 0000-0002-1328-6357)

Links

Haben Sie Interesse an einem Penetration Test?

Unsere Spezialisten kontaktieren Sie gern!

×
Konkrete Kritik an CVSS4

Konkrete Kritik an CVSS4

Marc Ruef

scip Cybersecurity Forecast

scip Cybersecurity Forecast

Marc Ruef

Voice Authentisierung

Voice Authentisierung

Marc Ruef

Bug-Bounty

Bug-Bounty

Marc Ruef

Sie wollen mehr?

Weitere Artikel im Archiv

Sie brauchen Unterstützung bei einem solchen Projekt?

Unsere Spezialisten kontaktieren Sie gern!

Sie wollen mehr?

Weitere Artikel im Archiv