• Keine Ergebnisse gefunden

IT SICHERHEIT Grundlagen der Kryptographie

N/A
N/A
Protected

Academic year: 2022

Aktie "IT SICHERHEIT Grundlagen der Kryptographie"

Copied!
60
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

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

(2)

EINFÜHRUNG

(3)

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

(4)

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.

(5)

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

(6)

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

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

(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

(9)

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

(10)

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

(11)

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

(12)

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

(13)

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

(14)

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.

(15)

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

(16)

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.

(17)

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

(18)

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

(19)

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

(20)

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

(21)

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

(22)

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.

(23)

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

(24)

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

(25)

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

(26)

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“.

(27)

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

(28)

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!

(29)

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

(30)

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!

(31)

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

(32)

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!

(33)

GRUNDLEGENDE ATTACKEN

(34)

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.

(35)

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

(36)

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.

(37)

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

(38)

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!).

(39)

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

(40)

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!).

(41)

IMPLEMENTIERUNGSFEHLER

(42)

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

(43)

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

(44)

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)

(45)

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

(46)

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)

(47)

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

(48)

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)

(49)

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

(50)

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“

(51)

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

(52)

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“

(53)

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

(54)

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“

(55)

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

(56)

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.

(57)

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

(58)

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.

(59)

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

(60)

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.

Referenzen

ÄHNLICHE DOKUMENTE

 Sicheres Aufbewahren einer Kopie zum späteren Abgleich sorgt für die Integrität, es kann damit aber nicht festgestellt werden, wer die Daten erzeugt hat.  Bei einer

Der Beweis erfolgt per Reduktion: Ein erfolgreicher Angreifer A für Y bezüglich Z wird transformiert in einen Algorithmus B, der Annahme X verletzt. Bsp: Angreifer A auf

d) Verschl¨ usseln Sie den Text Kryptovorlesung als Paar (c, d) durch Umwandlung des Textes in eine Zahl und benutzen Sie dabei die ,,Zufallszahl” k = (10 250 − 1)/3.. e)

Mit den Testfällen des Black-Box-Tests wird mit einem Glass-Box-Test-Werkzeug die Programmcode-Überdeckung erhoben, und aus der Auswertung dieser Überdeckung werden dem

Deploying methods of participant observation, semi-structured interview and cognitive mapping, this research visualises and analyses personalised and structural understandings

Vieles, was früher noch durch Form und erkennbaren Aufbau seine Funktion erahnen ließ, verbirgt sich heute in geschlossenen Behältern oder hinter verkaufsför­.. dernd-bunter

Nach der Studie zur Gesundheit Erwachsener in Deutschland (DEGS1) des Robert Koch-Institu- tes aus den Jahren 2008 bis 2012 leiden rund 30 Prozent der Bevölkerung unter einer

Danach haben Versicherte Anspruch auf die Versorgung mit Hörhilfen, Körperersatzstücken, orthopädischen und anderen Hilfsmitteln, die im Einzelfall erforderlich sind, um den