YZ X W V U T SRQPON
MLKJIH GFEDC7B8A9
6 5 4 23 1 0 4C ST P V 6O0EKJ5Z2I1HRD8QGY9U3FAM7NBWLX
IT SICHERHEIT
Grundlagen der Kryptographie
3. November 2015
Prof. Dr. Steffen Reith
steffen.reith@hs-rm.de
EINFÜHRUNG
Einführung Grundlegende Attacken Implementierungsfehler
WAS IST KRYPTOLOGIE?
→ ”Kryptos“(griechisch):
”geheim“/
”verborgen“
→ ”Graphein“(griechisch):
”schreiben“
Unter Kryptologie versteht man heute zwei Gebiete: i) Kryptographie — Entwurf von Verschlüsselungs- und
Schutzverfahren
ii) Kryptoanalyse — Angriffe auf die Verfahren der Kryptographie
Hier: Überwiegend Methoden der Kryptographie
Ähnlich:
→ Kodierungstheorie: Versucht Störungen bei der Datenübertragung zu erkennen / beheben
→ Steganographie: Versteckt Daten in anderen Daten.
7
Einführung Grundlegende Attacken Implementierungsfehler
WAS IST KRYPTOLOGIE?
→ ”Kryptos“(griechisch):
”geheim“/
”verborgen“
→ ”Graphein“(griechisch):
”schreiben“
Unter Kryptologie versteht man heute zwei Gebiete:
i) Kryptographie — Entwurf von Verschlüsselungs- und Schutzverfahren
ii) Kryptoanalyse — Angriffe auf die Verfahren der Kryptographie
Hier: Überwiegend Methoden der Kryptographie
Ähnlich:
→ Kodierungstheorie: Versucht Störungen bei der Datenübertragung zu erkennen / beheben
→ Steganographie: Versteckt Daten in anderen Daten.
Einführung Grundlegende Attacken Implementierungsfehler
WAS IST KRYPTOLOGIE?
→ ”Kryptos“(griechisch):
”geheim“/
”verborgen“
→ ”Graphein“(griechisch):
”schreiben“
Unter Kryptologie versteht man heute zwei Gebiete:
i) Kryptographie — Entwurf von Verschlüsselungs- und Schutzverfahren
ii) Kryptoanalyse — Angriffe auf die Verfahren der Kryptographie
Hier: Überwiegend Methoden der Kryptographie
Ähnlich:
→ Kodierungstheorie: Versucht Störungen bei der Datenübertragung zu erkennen / beheben
→ Steganographie: Versteckt Daten in anderen Daten.
7
Einführung Grundlegende Attacken Implementierungsfehler
WAS IST KRYPTOLOGIE?
→ ”Kryptos“(griechisch):
”geheim“/
”verborgen“
→ ”Graphein“(griechisch):
”schreiben“
Unter Kryptologie versteht man heute zwei Gebiete:
i) Kryptographie — Entwurf von Verschlüsselungs- und Schutzverfahren
ii) Kryptoanalyse — Angriffe auf die Verfahren der Kryptographie
Hier: Überwiegend Methoden der Kryptographie
Ähnlich:
→ Kodierungstheorie: Versucht Störungen bei der Datenübertragung zu erkennen / beheben
→ Steganographie: Versteckt Daten in anderen Daten.
Einführung Grundlegende Attacken Implementierungsfehler
ZIELE - GEHEIMHALTUNG
Wie kann man mit jemandem kommunizieren, ohne das ein Unbeteiligter etwas über den Inhalt der Nachricht erfährt?
Beispiele:
→ Heimliches Vereinbaren eines Rendezvous
→ Verschicken einer PIN
→ Sicheres Übermitteln einer Kreditkartennummer
→ Arbeiten auf einen entfernten Rechner Beispiele:
→ Kommunikation (Produktionsanlagen) in einer
”Smart Factory“
→ Übertragung von Produktionsdateien
→ Verschlüsseltes Ablegen von Betriebsstunden
8
Einführung Grundlegende Attacken Implementierungsfehler
ZIELE - GEHEIMHALTUNG
Wie kann man mit jemandem kommunizieren, ohne das ein Unbeteiligter etwas über den Inhalt der Nachricht erfährt?
Beispiele:
→ Heimliches Vereinbaren eines Rendezvous
→ Verschicken einer PIN
→ Sicheres Übermitteln einer Kreditkartennummer
→ Arbeiten auf einen entfernten Rechner
Beispiele:
→ Kommunikation (Produktionsanlagen) in einer
”Smart Factory“
→ Übertragung von Produktionsdateien
→ Verschlüsseltes Ablegen von Betriebsstunden
Einführung Grundlegende Attacken Implementierungsfehler
ZIELE - GEHEIMHALTUNG
Wie kann man mit jemandem kommunizieren, ohne das ein Unbeteiligter etwas über den Inhalt der Nachricht erfährt?
Beispiele:
→ Heimliches Vereinbaren eines Rendezvous
→ Verschicken einer PIN
→ Sicheres Übermitteln einer Kreditkartennummer
→ Arbeiten auf einen entfernten Rechner Beispiele:
→ Kommunikation (Produktionsanlagen) in einer”Smart Factory“
→ Übertragung von Produktionsdateien
→ Verschlüsseltes Ablegen von Betriebsstunden
8
Einführung Grundlegende Attacken Implementierungsfehler
GEHEIMHALTUNG - MÖGLICHE MAßNAHMEN Organisatorische Maßnahmen:
→ Einsamer Waldspaziergang
→ Gehäuse versiegeln (nicht zerstörungsfrei zu öffnen)
→ Dokumente mit
”vertraulich“markieren
Physikalische Maßnahmen:
→ Geheimtinte für einen Brief verwenden
→ Brief in einen Tresor legen
→ Optische Kabel statt Kupferkabel verwenden Kryptographische Maßnahmen:
→ Verschlüssele die Nachricht (unlesbar für Dritte)
→ Verteile eine Geheimnis auf mehrere Parteien
Kryptographie ist nurein Bausteinzur Sicherheit
Einführung Grundlegende Attacken Implementierungsfehler
GEHEIMHALTUNG - MÖGLICHE MAßNAHMEN Organisatorische Maßnahmen:
→ Einsamer Waldspaziergang
→ Gehäuse versiegeln (nicht zerstörungsfrei zu öffnen)
→ Dokumente mit
”vertraulich“markieren Physikalische Maßnahmen:
→ Geheimtinte für einen Brief verwenden
→ Brief in einen Tresor legen
→ Optische Kabel statt Kupferkabel verwenden
Kryptographische Maßnahmen:
→ Verschlüssele die Nachricht (unlesbar für Dritte)
→ Verteile eine Geheimnis auf mehrere Parteien
Kryptographie ist nurein Bausteinzur Sicherheit
9
Einführung Grundlegende Attacken Implementierungsfehler
GEHEIMHALTUNG - MÖGLICHE MAßNAHMEN Organisatorische Maßnahmen:
→ Einsamer Waldspaziergang
→ Gehäuse versiegeln (nicht zerstörungsfrei zu öffnen)
→ Dokumente mit
”vertraulich“markieren Physikalische Maßnahmen:
→ Geheimtinte für einen Brief verwenden
→ Brief in einen Tresor legen
→ Optische Kabel statt Kupferkabel verwenden Kryptographische Maßnahmen:
→ Verschlüssele die Nachricht (unlesbar für Dritte)
→ Verteile eine Geheimnis auf mehrere Parteien
Kryptographie ist nurein Bausteinzur Sicherheit
Einführung Grundlegende Attacken Implementierungsfehler
GEHEIMHALTUNG - MÖGLICHE MAßNAHMEN Organisatorische Maßnahmen:
→ Einsamer Waldspaziergang
→ Gehäuse versiegeln (nicht zerstörungsfrei zu öffnen)
→ Dokumente mit
”vertraulich“markieren Physikalische Maßnahmen:
→ Geheimtinte für einen Brief verwenden
→ Brief in einen Tresor legen
→ Optische Kabel statt Kupferkabel verwenden Kryptographische Maßnahmen:
→ Verschlüssele die Nachricht (unlesbar für Dritte)
→ Verteile eine Geheimnis auf mehrere Parteien
Kryptographie ist nurein Bausteinzur Sicherheit
9
Einführung Grundlegende Attacken Implementierungsfehler
ZIELE - AUTHENTIKATION Zentrale Fragen:
→ Wie kann ich mich (gegenüber Dritten) ausweisen?
→ Stammt die Sendung wirklich von dem (angegeben) Sender?
Heute (fast) wichtiger als die Verschlüsselung:
→ Klassische physikalische Maßnahmen wie Unterschriften, Wasserzeichen, Silberfäden oder Dienstsiegel.
→ Signaturen von EMails mit asymmetrischen Kryptosystemen. Beispiele:
→ Absicherung der Updateprogrammierung von Anlagen
→ Schließsysteme (später: Challenge-Response Verfahren) Der Autor hat ein
”Geheimnis“mit der er sein Dokument authentisch macht.
Einführung Grundlegende Attacken Implementierungsfehler
ZIELE - AUTHENTIKATION Zentrale Fragen:
→ Wie kann ich mich (gegenüber Dritten) ausweisen?
→ Stammt die Sendung wirklich von dem (angegeben) Sender?
Heute (fast) wichtiger als die Verschlüsselung:
→ Klassische physikalische Maßnahmen wie Unterschriften, Wasserzeichen, Silberfäden oder Dienstsiegel.
→ Signaturen von EMails mit asymmetrischen Kryptosystemen.
Beispiele:
→ Absicherung der Updateprogrammierung von Anlagen
→ Schließsysteme (später: Challenge-Response Verfahren) Der Autor hat ein
”Geheimnis“mit der er sein Dokument authentisch macht.
10
Einführung Grundlegende Attacken Implementierungsfehler
ZIELE - AUTHENTIKATION Zentrale Fragen:
→ Wie kann ich mich (gegenüber Dritten) ausweisen?
→ Stammt die Sendung wirklich von dem (angegeben) Sender?
Heute (fast) wichtiger als die Verschlüsselung:
→ Klassische physikalische Maßnahmen wie Unterschriften, Wasserzeichen, Silberfäden oder Dienstsiegel.
→ Signaturen von EMails mit asymmetrischen Kryptosystemen.
Beispiele:
→ Absicherung der Updateprogrammierung von Anlagen
→ Schließsysteme (später: Challenge-Response Verfahren) Der Autor hat ein
”Geheimnis“mit der er sein Dokument authentisch macht.
Einführung Grundlegende Attacken Implementierungsfehler
ZIELE - ANONYMITÄT Zentrale Fragen:
→ Wie kann ich Waren kaufen, ohne meine Identität preiszugeben?
→ Wie kann man digitales Geld herstellen?
→ Wie realisiert man anonyme Anrufe (z.B. Telefonseelsorge)
→ Wie können (politische) Meinungen anonym vertreten werden?
EC-Karte und Kreditkarte bieten heutekeineAnonymität.
Kann man Anonymität überhaupt erreichen?
Aktuelle Anwendungen:
→ Car-2-Car (Erstellung von Bewegungsprofilen)
→ Analog: Bestellungen über Warenwirtschaftssysteme liefern Informationen über Interna einer Firma
→ Laden von E-Fahrzeugen
11
Einführung Grundlegende Attacken Implementierungsfehler
ZIELE - ANONYMITÄT Zentrale Fragen:
→ Wie kann ich Waren kaufen, ohne meine Identität preiszugeben?
→ Wie kann man digitales Geld herstellen?
→ Wie realisiert man anonyme Anrufe (z.B. Telefonseelsorge)
→ Wie können (politische) Meinungen anonym vertreten werden?
EC-Karte und Kreditkarte bieten heutekeineAnonymität.
Kann man Anonymität überhaupt erreichen?
Aktuelle Anwendungen:
→ Car-2-Car (Erstellung von Bewegungsprofilen)
→ Analog: Bestellungen über Warenwirtschaftssysteme liefern Informationen über Interna einer Firma
→ Laden von E-Fahrzeugen
Einführung Grundlegende Attacken Implementierungsfehler
ZIELE - ANONYMITÄT Zentrale Fragen:
→ Wie kann ich Waren kaufen, ohne meine Identität preiszugeben?
→ Wie kann man digitales Geld herstellen?
→ Wie realisiert man anonyme Anrufe (z.B. Telefonseelsorge)
→ Wie können (politische) Meinungen anonym vertreten werden?
EC-Karte und Kreditkarte bieten heutekeineAnonymität.
Kann man Anonymität überhaupt erreichen?
Aktuelle Anwendungen:
→ Car-2-Car (Erstellung von Bewegungsprofilen)
→ Analog: Bestellungen über Warenwirtschaftssysteme liefern Informationen über Interna einer Firma
→ Laden von E-Fahrzeugen
11
Einführung Grundlegende Attacken Implementierungsfehler
ZIELE - ANONYMITÄT Zentrale Fragen:
→ Wie kann ich Waren kaufen, ohne meine Identität preiszugeben?
→ Wie kann man digitales Geld herstellen?
→ Wie realisiert man anonyme Anrufe (z.B. Telefonseelsorge)
→ Wie können (politische) Meinungen anonym vertreten werden?
EC-Karte und Kreditkarte bieten heutekeineAnonymität.
Kann man Anonymität überhaupt erreichen?
Aktuelle Anwendungen:
→ Car-2-Car (Erstellung von Bewegungsprofilen)
→ Analog: Bestellungen über Warenwirtschaftssysteme liefern Informationen über Interna einer Firma
→ Laden von E-Fahrzeugen
Einführung Grundlegende Attacken Implementierungsfehler
ZIELE - PROTOKOLLE
Wenn mehrere Personen / Instanzen kooperieren wollen, dann müssen geeignete Regeln zur Kommunikation festgelegt werden.
Solche Regeln nennt mankryptographische Protokolle: Beispiel: Geld abheben
→ EC-Karte einstecken
→ Geheimnummer eintippen
→ Betrag wählen
→ Geld entnehmen
Bankautomat
Bitte Karte einstecken
Geheimnummer eingeben
Betrag eingeben Stecke Karte ein
Geheimnummer Alice
Auf solchen Protokollen basieren komplexe Anwendungen wie elektronische Geldbörsen, elektronische Verträge, abhörsichere Mobilfunknetze und viele weitere Anwendungen.
12
Einführung Grundlegende Attacken Implementierungsfehler
ZIELE - PROTOKOLLE
Wenn mehrere Personen / Instanzen kooperieren wollen, dann müssen geeignete Regeln zur Kommunikation festgelegt werden.
Solche Regeln nennt mankryptographische Protokolle:
Beispiel: Geld abheben
→ EC-Karte einstecken
→ Geheimnummer eintippen
→ Betrag wählen
→ Geld entnehmen
Bankautomat
Bitte Karte einstecken
Geheimnummer eingeben
Betrag eingeben Stecke Karte ein
Geheimnummer Alice
Auf solchen Protokollen basieren komplexe Anwendungen wie elektronische Geldbörsen, elektronische Verträge, abhörsichere Mobilfunknetze und viele weitere Anwendungen.
Einführung Grundlegende Attacken Implementierungsfehler
ZIELE - PROTOKOLLE
Wenn mehrere Personen / Instanzen kooperieren wollen, dann müssen geeignete Regeln zur Kommunikation festgelegt werden.
Solche Regeln nennt mankryptographische Protokolle:
Beispiel: Geld abheben
→ EC-Karte einstecken
→ Geheimnummer eintippen
→ Betrag wählen
→ Geld entnehmen
Bankautomat
Bitte Karte einstecken
Geheimnummer eingeben
Betrag eingeben Stecke Karte ein
Geheimnummer Alice
Auf solchen Protokollen basieren komplexe Anwendungen wie elektronische Geldbörsen, elektronische Verträge, abhörsichere Mobilfunknetze und viele weitere Anwendungen.
12
Einführung Grundlegende Attacken Implementierungsfehler
GRUNDLEGENDE BEGRIFFE - ÜBERBLICK
Erich
Plaintext Encryption Ciphertext Decryption Plaintext
Treffen wir uns heute abend? 60Q88Q5 SH0 V5O RQV6Q U9Q5G Treffen wir uns heute abend?
Alice Bob
Einführung Grundlegende Attacken Implementierungsfehler
SCHREIBWEISEN
In mathematischer Schreibweise:
→ Encryption ist eine FunktionE, die einen PlaintextM in einen CiphertextCabbildet:E(M) =C
→ Decryption, die inverse Operation, ist eine FunktionD, die einen CiphertextCin einen PlaintextMabbildet:D(C) =M Es soll gelten:D(E(M)) =M(und vielleichtE(D(C)) =C)
Beispiel:
Das Codewheel (+ Anwendungsvorschrift) hat in unserem Beispiel die Rolle vonEundDgespielt. Der PlaintextMwar
”TREFFEN WIR UNS HEUTE ABEND“und der CiphertextCwar
”60Q88Q5 SH0 V50 RQV6Q U9Q5G“.
14
Einführung Grundlegende Attacken Implementierungsfehler
SCHREIBWEISEN
In mathematischer Schreibweise:
→ Encryption ist eine FunktionE, die einen PlaintextM in einen CiphertextCabbildet:E(M) =C
→ Decryption, die inverse Operation, ist eine FunktionD, die einen CiphertextCin einen PlaintextMabbildet:D(C) =M Es soll gelten:D(E(M)) =M(und vielleichtE(D(C)) =C)
Beispiel:
Das Codewheel (+ Anwendungsvorschrift) hat in unserem Beispiel die Rolle vonEundDgespielt. Der PlaintextMwar
”TREFFEN WIR UNS HEUTE ABEND“und der CiphertextCwar
”60Q88Q5 SH0 V50 RQV6Q U9Q5G“.
Einführung Grundlegende Attacken Implementierungsfehler
GANZ AKTUELL
Die Updatebarkeit von Rechner,Routern, Steuergeräten für Industrieanlagen oder IoT-Geräten vereinfacht die Entwicklung der Software, aber führt auch zu Problemen:
→ Manipulation (vgl. PS3) & Malware
→ Sicherheitsrelevante Veränderungen (z.B. Herzschrittmacher)
→ Fälschung des Kilometerstands im Auto
In Zukunft überall: z.B. Telemedizin, Energienetze, Car-2-Car, E-Mobilität, Industrie 4.0
⇒Jeder Informatiker muss sich mit IT-Sicherheit & Kryptographie auskennen!
15
Einführung Grundlegende Attacken Implementierungsfehler
GANZ AKTUELL
Die Updatebarkeit von Rechner,Routern, Steuergeräten für Industrieanlagen oder IoT-Geräten vereinfacht die Entwicklung der Software, aber führt auch zu Problemen:
→ Manipulation (vgl. PS3) & Malware
→ Sicherheitsrelevante Veränderungen (z.B. Herzschrittmacher)
→ Fälschung des Kilometerstands im Auto
In Zukunft überall: z.B. Telemedizin, Energienetze, Car-2-Car, E-Mobilität, Industrie 4.0
⇒Jeder Informatiker muss sich mit IT-Sicherheit & Kryptographie auskennen!
Einführung Grundlegende Attacken Implementierungsfehler
GANZ AKTUELL
Die Updatebarkeit von Rechner,Routern, Steuergeräten für Industrieanlagen oder IoT-Geräten vereinfacht die Entwicklung der Software, aber führt auch zu Problemen:
→ Manipulation (vgl. PS3) & Malware
→ Sicherheitsrelevante Veränderungen (z.B. Herzschrittmacher)
→ Fälschung des Kilometerstands im Auto
In Zukunft überall: z.B. Telemedizin, Energienetze, Car-2-Car, E-Mobilität, Industrie 4.0
⇒Jeder Informatiker muss sich mit IT-Sicherheit & Kryptographie auskennen!
15
Einführung Grundlegende Attacken Implementierungsfehler
GANZ AKTUELL
Die Updatebarkeit von Rechner,Routern, Steuergeräten für Industrieanlagen oder IoT-Geräten vereinfacht die Entwicklung der Software, aber führt auch zu Problemen:
→ Manipulation (vgl. PS3) & Malware
→ Sicherheitsrelevante Veränderungen (z.B. Herzschrittmacher)
→ Fälschung des Kilometerstands im Auto
In Zukunft überall: z.B. Telemedizin, Energienetze, Car-2-Car, E-Mobilität, Industrie 4.0
⇒Jeder Informatiker muss sich mit IT-Sicherheit & Kryptographie auskennen!
Einführung Grundlegende Attacken Implementierungsfehler
GANZ AKTUELL
Die Updatebarkeit von Rechner,Routern, Steuergeräten für Industrieanlagen oder IoT-Geräten vereinfacht die Entwicklung der Software, aber führt auch zu Problemen:
→ Manipulation (vgl. PS3) & Malware
→ Sicherheitsrelevante Veränderungen (z.B. Herzschrittmacher)
→ Fälschung des Kilometerstands im Auto
In Zukunft überall: z.B. Telemedizin, Energienetze, Car-2-Car, E-Mobilität, Industrie 4.0
⇒Jeder Informatiker muss sich mit IT-Sicherheit & Kryptographie auskennen!
15
Einführung Grundlegende Attacken Implementierungsfehler
GANZ AKTUELL
Die Updatebarkeit von Rechner,Routern, Steuergeräten für Industrieanlagen oder IoT-Geräten vereinfacht die Entwicklung der Software, aber führt auch zu Problemen:
→ Manipulation (vgl. PS3) & Malware
→ Sicherheitsrelevante Veränderungen (z.B. Herzschrittmacher)
→ Fälschung des Kilometerstands im Auto
In Zukunft überall: z.B. Telemedizin, Energienetze, Car-2-Car, E-Mobilität, Industrie 4.0
⇒Jeder Informatiker muss sich mit IT-Sicherheit & Kryptographie auskennen!
GRUNDLEGENDE ATTACKEN
Einführung Grundlegende Attacken Implementierungsfehler
ATTACKEN - SOFTWAREFEHLER & SECURITY
Es werden verschiedene Angriffsmöglichkeiten unterschieden:
Ciphertext only – Attacke
Erich hat (mehrere) Ciphertexte, die alle mit der gleichen
Encryption-Funktion berechnet wurden. Aufgabe ist die Nachricht zu entschlüsseln und sogar das Geheimnis des Empfängers (Key) zu ermitteln.
Known-plaintext – Attacke
Erich hat (mehrere) Ciphertexte und die dazugehörigen Plaintexte. Aufgabe ist die Ermittlung des Keys.
Einführung Grundlegende Attacken Implementierungsfehler
ATTACKEN - SOFTWAREFEHLER & SECURITY
Es werden verschiedene Angriffsmöglichkeiten unterschieden:
Ciphertext only – Attacke
Erich hat (mehrere) Ciphertexte, die alle mit der gleichen
Encryption-Funktion berechnet wurden. Aufgabe ist die Nachricht zu entschlüsseln und sogar das Geheimnis des Empfängers (Key) zu ermitteln.
Known-plaintext – Attacke
Erich hat (mehrere) Ciphertexte und die dazugehörigen Plaintexte. Aufgabe ist die Ermittlung des Keys.
17
Einführung Grundlegende Attacken Implementierungsfehler
ATTACKEN - SOFTWAREFEHLER & SECURITY
Es werden verschiedene Angriffsmöglichkeiten unterschieden:
Ciphertext only – Attacke
Erich hat (mehrere) Ciphertexte, die alle mit der gleichen
Encryption-Funktion berechnet wurden. Aufgabe ist die Nachricht zu entschlüsseln und sogar das Geheimnis des Empfängers (Key) zu ermitteln.
Known-plaintext – Attacke
Erich hat (mehrere) Ciphertexte und die dazugehörigen Plaintexte.
Aufgabe ist die Ermittlung des Keys.
Einführung Grundlegende Attacken Implementierungsfehler
GRUNDLEGENDE ATTACKEN (II) Choosen-plaintext – Attacke
Erich hat nicht nur einige Ciphertexte und Plaintexte, sondern kann auch die Plaintexte vorgeben und verschlüsseln.
Choosen-ciphertext – Attacke
Erich kann mehrere Ciphertexte auswählen, die für Ihn entschlüsselt werden (z. B. hat er eine Black-Box gestohlen). Social Engineering
Beeinflussung von Personen, so dass diese vertrauliche Informationen preisgeben (Sehr effektive Methode). Torture – Attacke
Erich foltert den Empfänger so lange, bis er sein Geheimnis offenbart (Sehr mächtige Methode und meist der beste Weg eine Verschlüsselung zu brechen!).
18
Einführung Grundlegende Attacken Implementierungsfehler
GRUNDLEGENDE ATTACKEN (II) Choosen-plaintext – Attacke
Erich hat nicht nur einige Ciphertexte und Plaintexte, sondern kann auch die Plaintexte vorgeben und verschlüsseln.
Choosen-ciphertext – Attacke
Erich kann mehrere Ciphertexte auswählen, die für Ihn entschlüsselt werden (z. B. hat er eine Black-Box gestohlen).
Social Engineering
Beeinflussung von Personen, so dass diese vertrauliche Informationen preisgeben (Sehr effektive Methode). Torture – Attacke
Erich foltert den Empfänger so lange, bis er sein Geheimnis offenbart (Sehr mächtige Methode und meist der beste Weg eine Verschlüsselung zu brechen!).
Einführung Grundlegende Attacken Implementierungsfehler
GRUNDLEGENDE ATTACKEN (II) Choosen-plaintext – Attacke
Erich hat nicht nur einige Ciphertexte und Plaintexte, sondern kann auch die Plaintexte vorgeben und verschlüsseln.
Choosen-ciphertext – Attacke
Erich kann mehrere Ciphertexte auswählen, die für Ihn entschlüsselt werden (z. B. hat er eine Black-Box gestohlen).
Social Engineering
Beeinflussung von Personen, so dass diese vertrauliche Informationen preisgeben (Sehr effektive Methode).
Torture – Attacke
Erich foltert den Empfänger so lange, bis er sein Geheimnis offenbart (Sehr mächtige Methode und meist der beste Weg eine Verschlüsselung zu brechen!).
18
Einführung Grundlegende Attacken Implementierungsfehler
GRUNDLEGENDE ATTACKEN (II) Choosen-plaintext – Attacke
Erich hat nicht nur einige Ciphertexte und Plaintexte, sondern kann auch die Plaintexte vorgeben und verschlüsseln.
Choosen-ciphertext – Attacke
Erich kann mehrere Ciphertexte auswählen, die für Ihn entschlüsselt werden (z. B. hat er eine Black-Box gestohlen).
Social Engineering
Beeinflussung von Personen, so dass diese vertrauliche Informationen preisgeben (Sehr effektive Methode).
Torture – Attacke
Erich foltert den Empfänger so lange, bis er sein Geheimnis offenbart (Sehr mächtige Methode und meist der beste Weg eine Verschlüsselung zu brechen!).
IMPLEMENTIERUNGSFEHLER
Einführung Grundlegende Attacken Implementierungsfehler
PUFFERÜBERLAUF
Sicherheitslücken durch Pufferüberläufe sindextremverbreitet.
Prinzip:Zu große Datenblöckewerden in einenzu kleinen Speicherbereich geschrieben.
Ein (üblicher) Stackframe ist wie folgt aufgebaut:
→ Der Stack wächst nach unten.
→ Für eine Funktion wirderst(oben) dieRücksprungadresse abgelegt, dann (unten) die lokalen Variablen.
→ Felder werden
”nach oben“abgelegt.
Adressen
buffer[0]
b buffer[1] buffer[2] buffer[3] buffer[4] a Ret. Adr.
Stack
Einführung Grundlegende Attacken Implementierungsfehler
PUFFERÜBERLAUF (II)
Durch Schreiben inbuffer[5]kann man die Variablea manipulieren und durch Veränderungbuffer[6]sogar die Rücksprungadresse!
Überschreibt man den Stack mit einem (kleinen) Codestück, so kann die Rücksprungadresse auf dieses Codestück gesetzt werden
→beliebiger Codekann ausgeführt werden.
Grund: (fehlerhaftes) Design vonCundC++. Mögliche Abhilfen sind i) Keine”von Neumann-Architektur“verwenden oder MMU
einsetzen, um denStackals
”nicht ausführbar“ zu markieren (vgl. NX-Flag).
ii) Bessere Programmiersprachen wie z.B.JavaoderAda iii) Compilersupport(z.B.
”Memory-Wall“oder Rücksprungadresse kopieren)
21
Einführung Grundlegende Attacken Implementierungsfehler
PUFFERÜBERLAUF (II)
Durch Schreiben inbuffer[5]kann man die Variablea manipulieren und durch Veränderungbuffer[6]sogar die Rücksprungadresse!
Überschreibt man den Stack mit einem (kleinen) Codestück, so kann die Rücksprungadresse auf dieses Codestück gesetzt werden
→beliebiger Codekann ausgeführt werden.
Grund: (fehlerhaftes) Design vonCundC++. Mögliche Abhilfen sind i) Keine”von Neumann-Architektur“verwenden oder MMU
einsetzen, um denStackals
”nicht ausführbar“ zu markieren (vgl. NX-Flag).
ii) Bessere Programmiersprachen wie z.B.JavaoderAda iii) Compilersupport(z.B.
”Memory-Wall“oder Rücksprungadresse kopieren)
Einführung Grundlegende Attacken Implementierungsfehler
PUFFERÜBERLAUF (II)
Durch Schreiben inbuffer[5]kann man die Variablea manipulieren und durch Veränderungbuffer[6]sogar die Rücksprungadresse!
Überschreibt man den Stack mit einem (kleinen) Codestück, so kann die Rücksprungadresse auf dieses Codestück gesetzt werden
→beliebiger Codekann ausgeführt werden.
Grund: (fehlerhaftes) Design vonCundC++. Mögliche Abhilfen sind
i) Keine”von Neumann-Architektur“verwenden oder MMU einsetzen, um denStackals
”nicht ausführbar“ zu markieren (vgl. NX-Flag).
ii) Bessere Programmiersprachen wie z.B.JavaoderAda iii) Compilersupport(z.B.
”Memory-Wall“oder Rücksprungadresse kopieren)
21
Einführung Grundlegende Attacken Implementierungsfehler
PUFFERÜBERLAUF (II)
Durch Schreiben inbuffer[5]kann man die Variablea manipulieren und durch Veränderungbuffer[6]sogar die Rücksprungadresse!
Überschreibt man den Stack mit einem (kleinen) Codestück, so kann die Rücksprungadresse auf dieses Codestück gesetzt werden
→beliebiger Codekann ausgeführt werden.
Grund: (fehlerhaftes) Design vonCundC++. Mögliche Abhilfen sind i) Keine
”von Neumann-Architektur“verwenden oder MMU einsetzen, um denStackals
”nicht ausführbar“ zu markieren (vgl. NX-Flag).
ii) Bessere Programmiersprachen wie z.B.JavaoderAda iii) Compilersupport(z.B.
”Memory-Wall“oder Rücksprungadresse kopieren)
Einführung Grundlegende Attacken Implementierungsfehler
PUFFERÜBERLAUF (II)
Durch Schreiben inbuffer[5]kann man die Variablea manipulieren und durch Veränderungbuffer[6]sogar die Rücksprungadresse!
Überschreibt man den Stack mit einem (kleinen) Codestück, so kann die Rücksprungadresse auf dieses Codestück gesetzt werden
→beliebiger Codekann ausgeführt werden.
Grund: (fehlerhaftes) Design vonCundC++. Mögliche Abhilfen sind i) Keine
”von Neumann-Architektur“verwenden oder MMU einsetzen, um denStackals
”nicht ausführbar“ zu markieren (vgl. NX-Flag).
ii) Bessere Programmiersprachen wie z.B.JavaoderAda
iii) Compilersupport(z.B.
”Memory-Wall“oder Rücksprungadresse kopieren)
21
Einführung Grundlegende Attacken Implementierungsfehler
PUFFERÜBERLAUF (II)
Durch Schreiben inbuffer[5]kann man die Variablea manipulieren und durch Veränderungbuffer[6]sogar die Rücksprungadresse!
Überschreibt man den Stack mit einem (kleinen) Codestück, so kann die Rücksprungadresse auf dieses Codestück gesetzt werden
→beliebiger Codekann ausgeführt werden.
Grund: (fehlerhaftes) Design vonCundC++. Mögliche Abhilfen sind i) Keine
”von Neumann-Architektur“verwenden oder MMU einsetzen, um denStackals
”nicht ausführbar“ zu markieren (vgl. NX-Flag).
ii) Bessere Programmiersprachen wie z.B.JavaoderAda iii) Compilersupport(z.B.
”Memory-Wall“oder Rücksprungadresse kopieren)
Einführung Grundlegende Attacken Implementierungsfehler
TOOLS ZUR ERKENNUNG VON PUFFERÜBERLÄUFEN Aufgrund des Sprachdesigns von C und C++ ist eine
automatisierte Erkennung von Bufferüberläufenim Allgemeinen nicht / schwer möglich.
Bessere Sprache für kritische Anwendungen verwenden?
Bemerkung: Für die Erkennung vonÜberläufen auf dem Heapist eine Vielzahl von Tools (z.B. valgrind) und Libraries (z.B. dmalloc) bekannt.
MancheC-Compiler bieten speziellen Debug-Supportzur Erkennung von Überläufen von Stackvariablen (z.B. Clang/llvm C-Compiler,-fbounds-checking(run-time) und
AddressSanitizer).
Kryptocode (auch für IoT-Anwendungen) ist oft sehr portabel gehalten (aufgrund der vielfältigen Anwendungen).
⇒Erste Tests auf einer Host-Plattform mit
”clang/llvm“
22
Einführung Grundlegende Attacken Implementierungsfehler
TOOLS ZUR ERKENNUNG VON PUFFERÜBERLÄUFEN Aufgrund des Sprachdesigns von C und C++ ist eine
automatisierte Erkennung von Bufferüberläufenim Allgemeinen nicht / schwer möglich. Bessere Sprache für kritische
Anwendungen verwenden?
Bemerkung: Für die Erkennung vonÜberläufen auf dem Heapist eine Vielzahl von Tools (z.B. valgrind) und Libraries (z.B. dmalloc) bekannt.
MancheC-Compiler bieten speziellen Debug-Supportzur Erkennung von Überläufen von Stackvariablen (z.B. Clang/llvm C-Compiler,-fbounds-checking(run-time) und
AddressSanitizer).
Kryptocode (auch für IoT-Anwendungen) ist oft sehr portabel gehalten (aufgrund der vielfältigen Anwendungen).
⇒Erste Tests auf einer Host-Plattform mit
”clang/llvm“
Einführung Grundlegende Attacken Implementierungsfehler
TOOLS ZUR ERKENNUNG VON PUFFERÜBERLÄUFEN Aufgrund des Sprachdesigns von C und C++ ist eine
automatisierte Erkennung von Bufferüberläufenim Allgemeinen nicht / schwer möglich. Bessere Sprache für kritische
Anwendungen verwenden?
Bemerkung: Für die Erkennung vonÜberläufen auf dem Heapist eine Vielzahl von Tools (z.B. valgrind) und Libraries (z.B. dmalloc) bekannt.
MancheC-Compiler bieten speziellen Debug-Supportzur Erkennung von Überläufen von Stackvariablen (z.B. Clang/llvm C-Compiler,-fbounds-checking(run-time) und
AddressSanitizer).
Kryptocode (auch für IoT-Anwendungen) ist oft sehr portabel gehalten (aufgrund der vielfältigen Anwendungen).
⇒Erste Tests auf einer Host-Plattform mit
”clang/llvm“
22
Einführung Grundlegende Attacken Implementierungsfehler
TOOLS ZUR ERKENNUNG VON PUFFERÜBERLÄUFEN Aufgrund des Sprachdesigns von C und C++ ist eine
automatisierte Erkennung von Bufferüberläufenim Allgemeinen nicht / schwer möglich. Bessere Sprache für kritische
Anwendungen verwenden?
Bemerkung: Für die Erkennung vonÜberläufen auf dem Heapist eine Vielzahl von Tools (z.B. valgrind) und Libraries (z.B. dmalloc) bekannt.
MancheC-Compiler bieten speziellen Debug-Supportzur Erkennung von Überläufen von Stackvariablen (z.B. Clang/llvm C-Compiler,-fbounds-checking(run-time) und
AddressSanitizer).
Kryptocode (auch für IoT-Anwendungen) ist oft sehr portabel gehalten (aufgrund der vielfältigen Anwendungen).
⇒Erste Tests auf einer Host-Plattform mit
”clang/llvm“
Einführung Grundlegende Attacken Implementierungsfehler
TOOLS ZUR ERKENNUNG VON PUFFERÜBERLÄUFEN Aufgrund des Sprachdesigns von C und C++ ist eine
automatisierte Erkennung von Bufferüberläufenim Allgemeinen nicht / schwer möglich. Bessere Sprache für kritische
Anwendungen verwenden?
Bemerkung: Für die Erkennung vonÜberläufen auf dem Heapist eine Vielzahl von Tools (z.B. valgrind) und Libraries (z.B. dmalloc) bekannt.
MancheC-Compiler bieten speziellen Debug-Supportzur Erkennung von Überläufen von Stackvariablen (z.B. Clang/llvm C-Compiler,-fbounds-checking(run-time) und
AddressSanitizer).
Kryptocode (auch für IoT-Anwendungen) ist oft sehr portabel gehalten (aufgrund der vielfältigen Anwendungen).
⇒Erste Tests auf einer Host-Plattform mit
”clang/llvm“
22
Einführung Grundlegende Attacken Implementierungsfehler
TOOLS ZUR ERKENNUNG VON PUFFERÜBERLÄUFEN Aufgrund des Sprachdesigns von C und C++ ist eine
automatisierte Erkennung von Bufferüberläufenim Allgemeinen nicht / schwer möglich. Bessere Sprache für kritische
Anwendungen verwenden?
Bemerkung: Für die Erkennung vonÜberläufen auf dem Heapist eine Vielzahl von Tools (z.B. valgrind) und Libraries (z.B. dmalloc) bekannt.
MancheC-Compiler bieten speziellen Debug-Supportzur Erkennung von Überläufen von Stackvariablen (z.B. Clang/llvm C-Compiler,-fbounds-checking(run-time) und
AddressSanitizer).
Kryptocode (auch für IoT-Anwendungen) ist oft sehr portabel gehalten (aufgrund der vielfältigen Anwendungen).
⇒Erste Tests auf einer Host-Plattform mit
”clang/llvm“
Einführung Grundlegende Attacken Implementierungsfehler
TOOLS ZUR ERKENNUNG VON PUFFERÜBERLÄUFEN (II) Die folgende Technik (
”Der Memorywall des armen Mannes'") kann auch helfen:
unsigned long A[100];
A[17] = 42;
wird zu
unsigned long AS[102];
unsigned long AS[0] = 0xDEAD; unsigned long AS[101] = 0xBEEF; unsigned long *A = AS + 1; A[17] = 42;
/* Check the Wall */
Diese Technik kann (meistens) fehlerhalfteSchreibzugriffe erkennen (evtl. mit vielen verschiedenen
”Wall-Werten“testen). Diese Technik kann man mit Macros vereinfachen.
23
Einführung Grundlegende Attacken Implementierungsfehler
TOOLS ZUR ERKENNUNG VON PUFFERÜBERLÄUFEN (II) Die folgende Technik (
”Der Memorywall des armen Mannes'") kann auch helfen:
unsigned long A[100];
A[17] = 42;
wird zu
unsigned long AS[102];
unsigned long AS[0] = 0xDEAD;
unsigned long AS[101] = 0xBEEF;
unsigned long *A = AS + 1; A[17] = 42;
/* Check the Wall */
Diese Technik kann (meistens) fehlerhalfteSchreibzugriffe erkennen (evtl. mit vielen verschiedenen
”Wall-Werten“testen). Diese Technik kann man mit Macros vereinfachen.
Einführung Grundlegende Attacken Implementierungsfehler
TOOLS ZUR ERKENNUNG VON PUFFERÜBERLÄUFEN (II) Die folgende Technik (
”Der Memorywall des armen Mannes'") kann auch helfen:
unsigned long A[100];
A[17] = 42;
wird zu
unsigned long AS[102];
unsigned long AS[0] = 0xDEAD;
unsigned long AS[101] = 0xBEEF;
unsigned long *A = AS + 1;
A[17] = 42;
/* Check the Wall */
Diese Technik kann (meistens) fehlerhalfteSchreibzugriffe erkennen (evtl. mit vielen verschiedenen
”Wall-Werten“testen). Diese Technik kann man mit Macros vereinfachen.
23
Einführung Grundlegende Attacken Implementierungsfehler
TOOLS ZUR ERKENNUNG VON PUFFERÜBERLÄUFEN (II) Die folgende Technik (
”Der Memorywall des armen Mannes'") kann auch helfen:
unsigned long A[100];
A[17] = 42;
wird zu
unsigned long AS[102];
unsigned long AS[0] = 0xDEAD;
unsigned long AS[101] = 0xBEEF;
unsigned long *A = AS + 1;
A[17] = 42;
/* Check the Wall */
Diese Technik kann (meistens) fehlerhalfteSchreibzugriffe erkennen (evtl. mit vielen verschiedenen
”Wall-Werten“testen). Diese Technik kann man mit Macros vereinfachen.
Einführung Grundlegende Attacken Implementierungsfehler
TOOLS ZUR ERKENNUNG VON PUFFERÜBERLÄUFEN (II) Die folgende Technik (
”Der Memorywall des armen Mannes'") kann auch helfen:
unsigned long A[100];
A[17] = 42;
wird zu
unsigned long AS[102];
unsigned long AS[0] = 0xDEAD;
unsigned long AS[101] = 0xBEEF;
unsigned long *A = AS + 1;
A[17] = 42;
/* Check the Wall */
Diese Technik kann (meistens) fehlerhalfteSchreibzugriffe erkennen (evtl. mit vielen verschiedenen”Wall-Werten“testen).
Diese Technik kann man mit Macros vereinfachen.
23
Einführung Grundlegende Attacken Implementierungsfehler
TOOLS ZUR ERKENNUNG VON PUFFERÜBERLÄUFEN (II) Die folgende Technik (
”Der Memorywall des armen Mannes'") kann auch helfen:
unsigned long A[100];
A[17] = 42;
wird zu
unsigned long AS[102];
unsigned long AS[0] = 0xDEAD;
unsigned long AS[101] = 0xBEEF;
unsigned long *A = AS + 1;
A[17] = 42;
/* Check the Wall */
Diese Technik kann (meistens) fehlerhalfteSchreibzugriffe erkennen (evtl. mit vielen verschiedenen”Wall-Werten“testen).
Diese Technik kann man mit Macros vereinfachen.