Cyber Security

Cyber Security / Pen Testing (Teil 2): Grundlagen der Kryptographie

Dieser Teil 2 der Serie Cyber Security / Pen Testing ist die Einführung in die Welt der Kryptographie für IT-Verantwortliche. Kryptographie ist eine Disziplin der Mathematik, aber auch eine (Teil-) Disziplin im Bereich Informationstechnologie.

Dieser Beitrag ist Teil 2 der Serie Cyber Security – Pen Testing.


Cyber Security / Pen Testing (Teil 1): Einführung

Cyber Security / Pen Testing (Teil 2): Grundlagen der Kryptographie

Cyber Security / Pen Testing (Teil 3): Steganographie

Cyber Security / Pen Testing (Teil 4): Zertifikate und PKI

Cyber Security – Pen Testing (Teil 5): Authentifizierung und Autorisierung


Das gemeinsame Geheimnis

Nach Teil 1 Cyber Security / Pen Testing (Teil 1): Einführung beschäftigen wir uns mit Verschlüsselung. Aber zuerst eine Geschichte aus der Vergangenheit …

Am Abend des 5. Juni 1944 strahlte der britische Radiosender BBC die ersten beiden Zeilen des französischen Gedichts Chanson d’automne (Herbstlied) von Paul Verlaine aus:

“Les sanglots longs des violons de l’automne”

“Blessent mon coeur d’une langueur monotone”

Für die meisten Menschen in Europa waren diese Zeilen eben das was sie sind: die Zeilen eines Gedichts. Für eine kleine Gruppe von Menschen der französischen Resistance waren diese beiden Zeilen eine unvorstellbar wichtige Nachricht. Sie konnten die Nachricht aus England “entschlüsseln”:

Die Landung der alliierten Streitkräfte in der Normandie erfolgt innerhalb von 48 Stunden.

Es ist eine literarisch verschlüsselte Nachricht an die Resistance, die Widerstandsbewegung im besetzten Frankreich. Diese hat sofort ihre Arbeit aufgenommen: Bahngleise wurden manipuliert, Funkmasten zerstört.  Und dann war es so weit.

In der Nacht zum 6. Juni 1944 fallen in der Normandie tausende alliierte Fallschirmjäger vom Himmel. Das Oberkommando West war vollkommen überrascht. Dabei wusste die Spionage-Abwehr schon seit längerer Zeit, dass die Nachrichten aus England an die Resistance gerichtet sind, und auch, dass diese Zeilen auf eine bevorstehende Invasion hindeuten. Die BBC Original-Nachricht vom 5. Juni 1944:

Die Resistance, Teile des Senders BBC und der alliierten Geheimdienste teilten ein Geheimnis. Das ist ein perfekter Übergang zu unserem eigentlichen Thema: Verschlüsselung.


Klartext und Ciphertext

Unter Klartext werden jene Daten verstanden, welche lesbar sind. Ein Cyphertext ist nicht lesbar. Um diesen lesbar zu machen, muss der Text entschlüsselt werden. Dies geschieht mit dem passenden Schlüssel und einer kryptographischen Methode. Einfacher gesagt: Cyphertext bezeichnet alle verschlüsselte Daten.

Algorithmen und Techniken

Ein Algorithmus ist eine Technik um ein Problem zu lösen. In unserem Fall ist das Problem: Wie verschlüsselt man Daten und wie entschlüsselt man diese wieder? Ganz einfach. Anhand von mathematischen Formeln und Methoden.

Wir unterscheiden zwischen zwei Arten von Verschlüsselungsalgorithmen: Stream-Cipher und Block-Cipher. Stream-Cipher arbeiten mit hoher Geschwindigkeit (XOR Operation). Die lesbaren Bits werden als Stream verschlüsselt.

XOR bezeichnet das ausschließende Oder im Bereich der Logik.

Unbenannt.PNG

Entweder 0 oder 1 und nicht beides (beides wäre ein einschließendes Oder).

1 + 0 = wahr (1) ...... entweder 1 oder 0
0 + 1 = wahr (1) ...... entweder 1 oder 0
0 + 0 = falsch (0) .... ausschließendes Oder! nicht Beide!
1 + 1 = falsch (0) .... ausschließendes Oder! nicht Beide!

Ein Beispiel:

Klartext:              1001

Schlüssel:           0101


Output:               1100

Die Berechnung ist folgende: Man nehme jeweils vom Klartext (lesbare Bits) und den Key Bits (das ist der Schlüssel) die 1. Stelle und vergleicht sie, dann vergleicht man die 2. Stelle usw.. mithilfe der XOR Operation.

(1+0=1 (wahr), 0+1=1 (wahr), 0+0=0 (falsch), 1+1=0 (falsch)) = 1100

Bei Stream-Ciphers spielt die Schlüssellänge eine bedeutende Rolle. Da die lesbaren Daten per Stream verschlüsselt werden, kann es vorkommen, dass die Daten länger sind als der Key selbst. Dann wird der Key erneut angewendet und sogenannte Frequency Attacks (Guessing, das Erraten) können zum Sicherheitsproblem werden.

Anders verhält es sich bei Block-Ciphers. Die Daten werden in Blocks (64 Bits) aufgesplittet und dann je Block verschlüsselt. Der Vorteil dieser Methode ist die Einfachheit unter Einbußen der Geschwindigkeit.

Symmetrische Verschlüsselung

Bei der symmetrischen Verschlüsselung wird ein und derselbe Schlüssel für die Verschlüsselung und Entschlüsselung verwendet (Shared Key).

Unbenannt.JPG

Am Beispiel der verschlüsselten E-Mails müssen somit Sender und Empfänger über denselben Schlüssel verfügen. Dieser muss zwischen dem Sender und Empfänger ausgetauscht werden, aber wie wird er sicher ausgetauscht? Und was wenn mehrere Sender und Empfänger vorhanden sind. Jeder muss dann mit jedem einen geheimen Schlüssel aushandeln. Die Formel ist N x (N-1) / 2. Das sind jede Menge Keys, im Fall von 10 Personen sind das 10 * 9 /2 = 45 Keys! Damit sind wir bei den Nachteilen des symmetrischen Verschlüsselung angekommen. Einer der Vorteile ist die hohe Geschwindigkeit der Ver- und Entschlüsselung.

Die Liste der symmetrischen Algorithmen ist lang. Hier einige bekannte Namen:

  • DES (56-bit Key)
  • 3DES (168-bit Key, sicherer als DES, aber langsamer)
  • AES (128-256 bit Key, schneller als 3DES)
  • RC (Rivest Cipher, bis 2.040 bits)

Asymmetrische Verschlüsselung

Wesentlich sicherer und einfacher in der Handhabung ist die asymmetrische Verschlüsselung. Durch eine Zufallszahl wird nicht ein Schlüssel generiert, sondern zwei. Und diese beiden Schlüssel stehen in einem mathematischen Verhältnis.

Unbenannt.PNG

Mithilfe des Public Keys (Öffentlicher Schlüssel) werden die Daten verschlüsselt. Der Private Key (Privater Schlüssel) entschlüsselt die Daten.

Unbenannt.PNG

Dadurch wird der Austausch der Schlüsseln, wie es bei der symmetrischen Verschlüsselung der Fall ist, umgangen. Der Öffentlichen Schlüssel (Public Key) kann jedem weitergegeben werden, weil mit diesem Schlüssel nur die Verschlüsselung möglich ist, und nicht die Entschlüsselung. Der Private Schlüssel (Private Key) für die Entschlüsselung verbleibt beim Empfänger der Nachricht und Bedarf eines besonderen Schutzes. Ein gestohlener Private Key stellt ein Problem dar. Ransomware bedient sich der asymmetrischen Verschlüsselung. Mehr zu Ransomware in Action in meinem Beitrag Daten gegen Bares: Ransomware.

Bekannte Asymmetrische Algorithmen sind:

  • Diffie-Hellmann (benannt nach zwei Mathematikern, wird verwendet u.a. für IPSec und SSL)
  • RSA (bis zu 4.096 Bits, gilt als Standard)
  • Elliptic Curve Cryptosystem (ECC)

Ein Nachteil der asymmetrischen Verschlüsselung ist die langsame Geschwindigkeit der Ver- und Entschlüsselung.

Digitale Signatur

Ja, ich höre die Leser schon rufen: “Hey, hey, der pewa, dieser Österreicher hat da oben immer gesagt, der Public Key ist immer zum verschlüsseln da, der Private Key immer zum entschlüsseln da, das stimmt nicht!” Ok, ich gebe mich geschlagen. Eine Ausnahme ist die Digitale Signatur. Hier ist die Vorgehensweise etwas anders.

Die Digitale Signatur soll die Integrität der Daten sicherstellen. Und sie soll auch sicherstellen, dass die Nachricht tatsächlich von genau diesem Absender kommt. Die Nachrichten sind nicht verschlüsselt, aber die Vorgehensweise ist trotzdem etwas anders:

Unbenannt.PNG

Der Sender übermittelt seinen Public Key an den Empfänger. Dann signiert er die Nachricht mit seinem Private Key (er ist der Einzige auf diesem Planeten der über diesen Key verfügt). Der Empfänger kann dann – mithilfe des Public Key – die Nachricht in Bezug auf die Integrität und die Originalität überprüfen. Die Begrifflichkeiten wurden ausführlich im ersten Artikel der Serie Cyber Security / Pen Testing (Teil 1): Einführung erläutert.

Hash Algorithmen

Ein Hash ist eine mathematische Streuwert-Funktion und eine Einweg-Funktion.  Es wird aus einer Zeichenfolge beliebiger Länge eine Zeichenfolge mit fester Länge gebildet. Für Administratoren, sowie für Benutzer ist ein veränderter Hashwert der Daten ein Beweis dafür, dass diese verändert wurden.

Mithilfe von Hashes kann die Integrität der Daten überprüft werden. Verändert man die Datei, so verändert sich auch der Hashwert, wie Get-FileHash zeigt.

1

Bekannte Hash-Algorithmen:

  • SHA-1 (generiert einen 160 Bit Output)
  • SHA-2 (bis zu 512 Bits)
  • MD5 (128 Bit)

Kryptographie Attacks

Es gibt jede Menge Techniken. Fast alle haben eines gemeinsam: Es ist nicht einfach. Durch Vergleiche und Versuche wird versucht das Geheimnis zu erraten. Zu den bekanntesten Techniken gehören:

Ciphertext Attack

Der Angreifer fängt den Ciphertext ab und versucht Rückschlüsse auf den zugehörigen Klartext oder auf den Schlüssel zu ziehen. Zusätzlich verfügt er zwar über keine genauen Informationen über den Klartext, aber er weiß beispielsweise in welcher Sprache der Text verfasst ist und welche Standard Protokoll Daten verwendet werden.

Known Plaintext Attack

Der Angreifer verfügt über den Ciphertext und den Klartext. Was ihm noch fehlt ist der Schlüssel. Der Angreifer sucht nach wiederholenden Mustern um dann davon den Schlüssel ableiten zu können.

Replay Attack

Wird häufig als Man-in-the-Middle ausgeführt. Der Hacker kann Teile der kryptographischen Aushandlung (z.b. den Hashcode des Kennworts) ergattern und versucht danach mithilfe dieser Informationen sich als ein anderer auszugeben. Auf Deutsch nennt man diesen Angriff Wiedereinspielung.

Collision Attack

Ein Kollisionsangriff dient dazu, zwei verschiedene Dokumente zu finden, die auf einen identischen Hashwert abgebildet werden. Dadurch kann Integrität vorgetäuscht werden.

Weiter gehts mit Teil 3: Cyber Security / Pen Testing (Teil 3): Steganographie

10 replies »

Leave a reply to Get-FileHash: Hash einer Datei anzeigen « SID-500 Cancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.