Angewandte Kryptographie Rüdiger Kügler | Security Expert [email protected]

14.02.2017

Angewandte Kryptographie

1

Legendäre Fehler Verschlüsseltes Geschlecht Krankenakte mit AES-CTR Bild mit AES-ECB 14.02.2017

Angewandte Kryptographie

2

Verschlüsseltes Geschlechtsmerkmal

 Implementierung  Datenfeld mit „0“ aufgefüllt  Verschlüsselt mit AES ohne IV

 Fehler  Entropie der Daten ist zu gering  IV und Padding mit „0“

 Hack  Erraten der Feldes

14.02.2017

Angewandte Kryptographie

3

Datenbank Dump (Auszug) ID

Name

Geschlecht

442225

782B9CAB890DB937C3A48DBD39F426A4

E37CD363DD7C87A09AFF0E3E60E09C82

33273

4A453644D133566ADC04B7A478A5A5AD

E37CD363DD7C87A09AFF0E3E60E09C82

483916

77CF3A86923DEB80434F16646DE7DB7F

C6A13B37878F5B826F4F8162A1C8D879

137333

F7A846F8F336B511D2B01444BEFBA18B

E37CD363DD7C87A09AFF0E3E60E09C82

147607

851DD615E24D586E0F232DD2FFC573A9

C6A13B37878F5B826F4F8162A1C8D879

303044

19B0930C53F45AC14360E2F3A3B04EF7

C6A13B37878F5B826F4F8162A1C8D879

916345

5BEBF00AF658C1256C0821553C35FAC3

E37CD363DD7C87A09AFF0E3E60E09C82

777169

19B0930C53F45AC14360E2F3A3B04EF7

C6A13B37878F5B826F4F8162A1C8D879

154800

19B0930C53F45AC14360E2F3A3B04EF7

C6A13B37878F5B826F4F8162A1C8D879

14.02.2017

Angewandte Kryptographie

4

Verschlüsseltes Geschlechtsmerkmal

 Implementierung  Datenfeld mit „0“ aufgefüllt  Verschlüsselt mit AES ohne IV

 Fehler  Entropie der Daten ist zu gering

Sichere Lösung Verschlüsselte Daten sind größer als unverschlüsselte Daten:



Zufälliger Initialization Vector oder



Auffüllen mit zufälligen Daten

 IV und Padding mit „0“

 Hack  Erraten der Feldes

14.02.2017

Angewandte Kryptographie

5

Verschlüsselte Krankenakte

 Implementierung

EncRecord

 Verschlüsselung von xml/docx mit AES-CTR

 Fehler  Implementierungsfehler: Nonce = „0“

MyEncRecord

MyPlainRecord

 Hack  Stehlen der verschlüsselten Datenbank  Eigene Krankenakte besorgen (unverschlüsselt)  Record = MyPlainRecord XOR MyEncRecord XOR EncRecord

14.02.2017

Angewandte Kryptographie

Record

6

Verschlüsseltes Bild

Electronic Codebook

Cipher-Block Chaining

ECB erhält die Struktur der Daten. 14.02.2017

Angewandte Kryptographie

7

Kryptographie Grundlagen Symmetrische Verschlüsselung Hash Funktionen Asymmetrische Verschlüsselung 14.02.2017

Angewandte Kryptographie

8

Symmetrische Verschlüsselung

Encrypt

Encrypted Data

Shared Key

Decrypt

Encrypted Data

14.02.2017

Shared Key

Empfänger

Sender

Data

Data

Angewandte Kryptographie

9

Asymmetrische Verschlüsselung

Encrypt

Encrypted Data

Public Key

Decrypt

Encrypted Data

14.02.2017

Private Key

Empfänger

Sender

Data

Data

Angewandte Kryptographie

10

Schlüssel(-Paare) in Abhängigkeit der Teilnehmer

14.02.2017

Anzahl

Symmetrisch

Asymmetrisch

2

1

2

3

3

3

4

6

4

5

10

5

6

15

6

7

21

7

8

28

8







1000

499500

1000







n

n*(n-1) / 2

n

Angewandte Kryptographie

11

Hash

Data

Hash

Hash

Hash 14.02.2017

Empfänger

Sender

Data

Hash Angewandte Kryptographie

12

Hash mit Salt

Hash

Data

Salt

Hash

Hash 14.02.2017

Salt

Empfänger

Sender

Data

Hash Angewandte Kryptographie

13

Signatur

Data

Data

Sender

Hash

Hash Sign

Private Key Validate

Public Key

Empfänger

Signature

Data Signature 14.02.2017

Ja

Angewandte Kryptographie

Nein

14

Block Cipher Modes Electronic Codebook (ECB) Cipher-Block Chaining (CBC) Counter (CTR) 14.02.2017

Angewandte Kryptographie

15

Electronic Codebook (ECB) – Verschlüsselung

14.02.2017

Plaintext

Plaintext

Plaintext

AES Encryption

AES Encryption

AES Encryption

Ciphertext

Ciphertext

Ciphertext

Angewandte Kryptographie

16

Electronic Codebook (ECB) – Entschlüsselung

14.02.2017

Ciphertext

Ciphertext

Ciphertext

AES Decryption

AES Decryption

AES Decryption

Plaintext

Plainrtext

Plaintext

Angewandte Kryptographie

17

Cipher-Block Chaining (CBC) – Verschlüsselung Plaintext

Plaintext

Plaintext

AES Encryption

AES Encryption

AES Encryption

Ciphertext

Ciphertext

Ciphertext

IV

14.02.2017

Angewandte Kryptographie

18

Cipher-Block Chaining (CBC) – Entschlüsselung Ciphertext

Ciphertext

Ciphertext

AES Decryption

AES Decryption

AES Decryption

Plaintext

Plaintext

Plaintext

IV

14.02.2017

Angewandte Kryptographie

19

Counter (CTR) – Verschlüsselung Nonce Counter (0)

Counter (1)

Nonce Counter (2)

add

add

add

AES Encryption

AES Encryption

AES Encryption

Plaintext

Plaintext

Ciphertext 14.02.2017

Nonce

Plaintext

Ciphertext Angewandte Kryptographie

Ciphertext 20

Counter (CTR) – Entschlüsselung Nonce Counter (0)

Counter (1)

Nonce Counter (2)

add

add

add

AES Encryption

AES Encryption

AES Encryption

Ciphertext

Ciphertext

Plaintext 14.02.2017

Nonce

Ciphertext

Plaintext Angewandte Kryptographie

Plaintext 21

Hybride Verschlüsselung

14.02.2017

Angewandte Kryptographie

22

Asymmetrische Verschlüsselung

Encrypt

Encrypted Data

Public Key

Decrypt

Encrypted Data

14.02.2017

Private Key

Empfänger

Sender

Data

Data

Angewandte Kryptographie

23

Hybride Verschlüsselung

Sender

Data

Random Key

Encrypt

Encrypt

AES

Public Key

Encrypted Data

Encrypted Key 14.02.2017

Encrypted Key Angewandte Kryptographie

24

Hybride Entschlüsselung

Encrypted Data

Encrypted Data

Decrypt

Private Key

Key

AES

Encrypt

Empfänger

Encrypted Key

Data

14.02.2017

Angewandte Kryptographie

25

ECC oder RSA

 ECC 224 bit == RSA 2048 bit  ECC ist schneller  ECC: Private Key = Zufallszahl

 RSA: Schlüsselpaar wird über eine Primzahl erzeugt  ECC: Signatur und Verschlüsselung sind unterschiedliche Funktionen  RSA: Entschlüsseln == Signieren  ECC: Signatur hat zufällige Komponente

14.02.2017

Angewandte Kryptographie

26

Anwendungsbeispiele

14.02.2017

Angewandte Kryptographie

27

Challenge Response Check

 Stellt sicher, dass ein gültiger Dongle vorhanden ist  Private Key im Dongle (mit Lizenz, für alle Kunden gleich)  Public Key in der Software

 Software erzeugt eine Challenge  Dongle signiert die Challenge  Software überprüft die Response

 Verhindert eine Record Playback Attacke auf den Dongle  Verhindert eine Simulation des Dongles

14.02.2017

Angewandte Kryptographie

28

Challenge Response Check

Ja oder Nein

Software Zufallszahl

Überprüfung

Challenge (Z)

Response (Signatur)

Öffentlicher Schlüssel

Lizenz Privater Schlüssel

14.02.2017

Angewandte Kryptographie

29

Verschlüsselte Kommunikation

 Übermittlung der Fischfänge an einen zentralen Server (über Satellit)  Anforderungen: Authentisch und Vertraulich

 Implementierung:  Schlüsselpaar auf dem Server und jedem Schiff  Tagebuch verschlüsselt mit Public Key des Servers

 Tagebuch signiert mit Private Key des Schiffs

 Ergebnis: Authentisch und Vertraulich 603 14.02.2017

Angewandte Kryptographie

4711 30

Demoversion und Vollversion

Software (Demo)

Software

Öffentlicher Schlüssel

Öffentlicher Schlüssel

Lizenz Daten

14.02.2017

Privater Schlüssel

Angewandte Kryptographie

31

Zertifikate

14.02.2017

Angewandte Kryptographie

32

Signatur

Data

Data

Sender

Hash

Hash Sign

Private Key Validate

Public Key

Empfänger

Signature

Data Signature 14.02.2017

Ja

Angewandte Kryptographie

Nein

33

Die Herausforderung!

Woher weiß ich, dass der Public Key echt ist? 14.02.2017

Angewandte Kryptographie

34

Die Lösung

Zertifikate (Public Key Zertifikate, X.509)

14.02.2017

Angewandte Kryptographie

35

Ein Zertifikat

 Bestätigt den Eigentümer eines öffentlichen Schlüssels  Identität:  Person

 Organisation

Zertifikat Issued for: Common name (CN):

Wolfgang Voelker

Company (O):

WIBU-SYSTEMS AG

Business unit (OU):

WOPS

Serial number:

1be10001000220613…

Public key:

0x15, 0x3c, 0xd0, 0x26, 0xd6, 0x71, 0xfa, 0xae, 0x20, 0xa6, 0x15, 0x58, 0xea, 0x3d, 0xdd, 0x36, 0x89, …

 IT-System (z.B. Server)

 Unterschrieben vom Aussteller

Issued by: Common name (CN):

Root

 Attribute

Company (O):

WIBU-SYSTEMS AG

.. Valid until:

14.02.2017

Angewandte Kryptographie

31.12.2017

36

Die nächste Herausforderung!

Woher weiß ich, dass das Zertifikat echt ist? 14.02.2017

Angewandte Kryptographie

37

Die nächste Lösung

Das Zertifikat ist vom Herausgeber unterschrieben. (Prüfung mit dem Public Key des Herausgebers) 14.02.2017

Angewandte Kryptographie

38

Die … Herausforderung!

…? 14.02.2017

Angewandte Kryptographie

39

Die finale Lösung

Ich kenne bereits ein Stammzertifikat von einer Zertifzierungsstelle. (Root Certificate / Certificate Authority) 14.02.2017

Angewandte Kryptographie

40

Beispiele für Stammzertifkate

14.02.2017

Angewandte Kryptographie

41

Selbst signiertes Zertifikat (Selfsigned Certificate)

 Selbst unterschrieben

Zertifikat

 Es gibt kein Stammzertifikat

Ausgestellt für:

 Wird in der Regel nicht akzeptiert  Anwender muss dem Zertifikat manuell vertrauen

Allgemeiner Name (CN):

Rüdiger Kügler

Organisation (O):

WIBU-SYSTEMS AG

Organisationseinheit (OU): Professional Services Seriennummer:

1be10001000220613…

Ausgestellt von:

Allgemeiner Name (CN):

Rüdiger Kügler

Organisation (O):

WIBU-SYSTEMS AG

.. Gültig bis:

14.02.2017

Angewandte Kryptographie

31.12.2017

42

Anwendungsfälle

 Server Zertifikate  Client Zertifikate  E-Mail Zertifikate / VPN Zertifikate

 OPC UA Zertifikate  Authenticode  Code Integrität von Software  …

14.02.2017

Angewandte Kryptographie

43

Authenticode

14.02.2017

Angewandte Kryptographie

44

Die Frage

Ich signiere meine Anwendung mit Authenticode. Damit ist ein Cracker NICHT in der Lage meine Anwendung zu verändern.

Falsch?

Richtig?

14.02.2017

Angewandte Kryptographie

45

Motivation: Die Anwendung - Vorher

 Signierte Anwendung

14.02.2017

Angewandte Kryptographie

46

Motivation: Der Patch

14.02.2017

Angewandte Kryptographie

47

Motivation: Die Anwendung - Nachher

 Läuft die Anwendung noch?

14.02.2017

Angewandte Kryptographie

48

Die Antwort

Ich signiere meine Anwendung mit Authenticode. Damit ist ein Cracker NICHT in der Lage meine Anwendung zu verändern.

Falsch

Richtig?

14.02.2017

Falsch?

Angewandte Kryptographie

49

Zusammenfassung

 Microsoft Windows startet jede Anwendung  Ohne Signatur  Mit gültiger Signatur

 Mit ungültiger Signatur

 Bordmittel sind nicht für Kopierschutz / Integritätsschutz geeignet

14.02.2017

Angewandte Kryptographie

50

Ja, aber …

Ich überprüfe die Authenticode Signatur in meiner eigenen Anwendung. Damit bin ich doch sicher.

Falsch?

Richtig?

14.02.2017

Angewandte Kryptographie

51

Überprüfung in der Software

 Überprüfung der Signatur  Gültig / ungültig?  Wer hat unterzeichnet?

 Wann wurde unterzeichnet?

 Reaktion bei Fehlern  Beenden (Verstecken des Calls?)

 „Falsch rechnen“ !?

14.02.2017

Angewandte Kryptographie

52

Die Schwachstelle

Software Patchen Hooken Überschreiben

Dokumentierter API Aufruf

WINTRUST.DLL

14.02.2017

Angewandte Kryptographie

53

Die Schwachstelle

 Bekanntes und dokumentiertes Windows API überprüft die Signatur !?  Angriffe:  Patchen der WINTRUST.DLL

 Hooken der Funktion mit Standard-Tools  Überscheiben der Funktion in der Dll zur Laufzeit aus der gepatchten Anwendung

14.02.2017

Angewandte Kryptographie

54

Überschreiben im Speicher

HMODULE lib = LoadLibrary(_T("WINTRUST.DLL")); FARPROC p = GetProcAddress(lib, "WinVerifyTrust"); BYTE fake[5]; Mythos entlarvt: fake[0] = 0x32; Sie können ausführbaren Code fake[1] = 0xC0; im Speicher verändern! fake[2] = 0xC2; fake[3] = 0x0C; fake[4] = 0x00; VirtualProtect(p, 5, PAGE_EXECUTE_READWRITE, &old); memcpy(p, fake, 5); VirtualProtect(p, 5, old, &old);

14.02.2017

Angewandte Kryptographie

55

Die Antwort ist wieder …

Ich überprüfe die Authenticode Signatur in meiner eigenen Anwendung. Damit bin ich doch sicher.

Falsch

Richtig?

14.02.2017

Falsch?

Angewandte Kryptographie

56

Zusammenfassung Authenticode

Software-Hersteller

Anwender

Kopierschutz

14.02.2017

Mods

Virus

Cheats

Sabotage

Vermeidung von False Positives

Cheats

Angewandte Kryptographie

57

Fazit Authenticode

 Zertifikate bieten nur dann eine Sicherheit, wenn die Prüfstelle in einem vertrauenswürdigem Umfeld läuft.  Authenticode = Schutz des Anwenders vor Viren

 Authenticode ≠ Schutz gegen Raubkopien

14.02.2017

Angewandte Kryptographie

58

Schlusswort

14.02.2017

Angewandte Kryptographie

59

Zusammenfassung

 Selbst der beste Algorithmus kann nichts wert sein, wenn er falsch implementiert ist  Bedrohungen und Anforderungen analysieren

 Experten zu Rate ziehen  Auswahl des richtigen Verfahrens  Symmetrisch  Asymmetrisch  Chaining Mode  Länge der Daten 14.02.2017

Angewandte Kryptographie

60

Vielen Dank für Ihre Aufmerksamkeit!

Deutschland: Deutschland: USA: USA:

+49-721-931720 +49-721-931720 +1-425-7756900 +1-425-7756900

China: China:

+86-21-55661790 +86-21-55661790

14.02.2017

http://www.wibu.com http://www.wibu.com [email protected] [email protected] Angewandte Kryptographie

61