Zertifikate für Authetizität, Authentifizierung oder beides?

54
Zertifikate für Authentizität, Authentifizierung oder beides? Wolfgang Völker | Director Product Management [email protected] Rüdiger Kügler | Security Expert [email protected] Zertifikate 24.06.2022 Zertifikate für Authentizität, Authentifizierung oder beides? 1 Speaker 3

Transcript of Zertifikate für Authetizität, Authentifizierung oder beides?

Page 1: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 1

Zertifikate für Authentizität,Authentifizierung oder beides?

Wolfgang Völker | Director Product [email protected]

Rüdiger Kügler | Security [email protected]

ZertifikateSpeaker 3

Page 2: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 2

Was sind Zertifikate

Page 3: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 3

Send

er

Verschicken einer signierten Nachricht

Data

Data

Signature

Hashberechnen

Signaturberechnen

PrivateKey

Data

Signature

Hashberechnen

Signaturprüfen

PublicKey

Empf

änge

r

Ja Nein

Page 4: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 4

Die Herausforderung!

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

Page 5: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 5

Die Lösung

Zertifikate(Public Key Zertifikate, X.509)

Page 6: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 6

Ein Zertifikat

Bestätigt den Eigentümer eines öffentlichen Schlüssels

Identität: Person

Organisation

IT-System (z.B. Server)

Unterschrieben vom Aussteller Attribute

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, …

Issued by:Common name (CN): Root

Company (O): WIBU-SYSTEMS AG

..

Valid until: 31.12.2015

Page 7: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 7

Die nächste Herausforderung!

Woher weiß ich, dass das Zertifikat echt ist?

Page 8: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 8

Die nächste Lösung

Das Zertifikat ist vom Herausgeber

unterschrieben.(Prüfung mit dem Public Key des Herausgebers)

Page 9: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 9

Die … Herausforderung!

…?

Page 10: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 10

Die finale Lösung

Ich kenne bereits ein Stammzertifikat von einer

Zertifzierungsstelle.(Root Certificate / Certificate Authority)

Page 11: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 11

Beispiele für Stammzertifkate

Page 12: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 12

Zertifikatshierarchie

Stammzertifikat

CN: Root

Zertifikat

CN: Inter 2

Zertifikat

CN: Wolfgang

Zertifikat

CN: Daniel

Zertifikat

CN: Marc

Zertifikat

CN: Christian

Zertifikat

CN: Rüdiger

Zertifikat

CN: Stefan

Zertifikat

CN: Inter 1

Zertifikat

CN: Inter 3

Page 13: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 13

Selbst signiertes Zertifikat (Selfsigned Certificate)

Selbst unterschrieben Es gibt kein Stammzertifikat Wird in der Regel nicht akzeptiert

Anwender muss dem Zertifikat manuell vertrauen

Zertifikat

Ausgestellt für: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: 31.12.2015

Page 14: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 14

Sperrlisten

CRL (Certificate Revokation List) Beinhaltet ungültige (zurückgezogene) Zertifikate Online Abfrage möglich, Online Certificate Status Protocol (OCSP)

Page 15: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 15

Anwendungsfälle

Page 16: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 16

Anwendungsfälle

Server Zertifikate Client Zertifikate E-Mail Zertifikate / VPN Zertifikate OPC UA Zertifikate Authenticode Code Integrität von Software …

Page 17: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 17

Server-Zertifikate

Page 18: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 18

So sieht es aus:

Server

ZertifikatAusgestellt für:Allgemeiner Name (CN): www.wibu.deOrganisation (O): WIBU-SYSTEMS AGOrganisationseinheit (OU): HostingSeriennummer: 0003Ausgestellt von:Allgemeiner Name (CN): RootOrganisation (O): WIBU-SYSTEMS AG..Gültig bis: 31.12.2015

Client

Private Key

Client überprüft die Identität des Servers

Stammzertifikat

CN: Root

Page 19: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 19

Konfiguration des Servers …

SSLEngine onSSLCertificateKeyFile "c:/cert/my_private_key.pem"SSLCertificateFile "c:/cert/the_cert_I_got_from_verisign.crt"

Page 20: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 20

… Konfiguration des Servers

SSLEngine on Schaltet SSL ein, Mod SSL muss auch aktiviert sein

SSLCertificateKeyFile „c:/cert/my_private_key.pem“ Der private Schlüssel

SSLCertificateFile „c:/cert/the_cert_I_got_from_verisign.crt“ Das Zertifikat

Page 21: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 21

Client-Zertifikate

Page 22: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 22

So sieht es aus:

Server

Server-ZertifikatAusgestellt für:Allgemeiner Name (CN): www.wibu.deOrganisation (O): WIBU-SYSTEMS AGOrganisationseinheit (OU): HostingSeriennummer: 0003Ausgestellt von:Allgemeiner Name (CN): RootOrganisation (O): WIBU-SYSTEMS AG..Gültig bis: 31.12.2015

Client

Client-Zertifikat

Ausgestellt für:Allgemeiner Name (CN): Rüdiger KüglerOrganisation (O): WIBU-SYSTEMS AGOrganisationseinheit (OU): Professional ServicesSeriennummer: 0001Ausgestellt von:Allgemeiner Name (CN): RootOrganisation (O): WIBU-SYSTEMS AG..Gültig bis: 31.12.2015

ClientPrivate Key

ServerPrivate Key

Server überprüft die Identität des Clients

Page 23: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 23

Konfiguration des Servers für Clientzertifikate …

SSLEngine onSSLCertificateKeyFile "c:/cert/my_private_key.pem"SSLCertificateFile "c:/cert/the_cert_I_got_from_verisign.crt"SSLCACertificateFile "c:/cert/my_own_ca_root_cert.crt"SSLVerifyClient requireSSLVerifyDepth 10SSLRequire %{SSL_CLIENT_S_DN_CN} eq "[email protected]"SSLOptions +StdEnvVars

Page 24: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 24

… Konfiguration des Servers für Clientzertifikate

SSLCACertificateFile „c:/cert/my_own_ca_root_cert.crt “ Certificate Authority (CA) für Client Zertifikate

SSLVerifyClient require Client Zertifikat benötigt

SSLRequire %{SSL_CLIENT_S_DN_CN} eq [email protected] Beispiel für eine Überprüfung

SSLOptions +StdEnvVars Durchreichen der Parameter an PHP / Anwendung

Page 25: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 25

Erstellung eines Clientzertifikates (empfohlen)

Client: Schlüsselpaar erzeugen

Certificate Signing Request (CSR) erzeugen

CSR an CA schicken

CA / Server: Zertifikat erzeugen

Zertifikat an Client schicken

Client: Zertifikat einspielen

Page 26: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 26

Erstellung eines Clientzertifikates (einfach)

CA / Server: Schlüsselpaar erzeugen

Zertifikat erzeugen

Private Key exportieren

Zertifikat + Private Key an Client schicken

Client: Zertifikat einspielen

Private Key einspielen

Page 27: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 27

Speicherorte für Zertifikate und Private Schlüssel

Page 28: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 28

Speicherorte für private Schlüssel

Datei auf dem Dateisystem (PEM-Datei mit Schlüssel) Zertifikatsspeicher

PKCS#11

Microsoft CSP (Crypto Service Provider)

Physikalisch Auf der Platte

In einem Token

Page 29: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 29

PKCS#11 / Microsoft CSP

PKCS#11 Microsoft CSP

CmDongle

Internet ExplorerOutlookFirefox OpenVPN Meine

Anwendung

Page 30: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 30

Beispiel Token: CSSI Middleware

Page 31: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 31

Authenticode

Page 32: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 32

Motivation: Die Anwendung

Signierte Anwendung

Page 33: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 33

Motivation: Der Patch

Page 34: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 34

Motivation: Die Frage

Läuft die Anwendung noch?

Page 35: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 35

Die Antwort

Die erschreckende Antwort:

JA

Page 36: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 36

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

Page 37: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 37

Ja aber …

Ja, aber …

Page 38: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 38

Ü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“ !?

Page 39: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 39

Die Schwachstelle

Eigene Software

WINTRUST.DLL

Page 40: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 40

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

Page 41: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 41

Überschreiben zur Laufzeit

...fake[0] := $31;fake[1] := $C0;fake[2] := $C3;lib := LoadLibrary('WINTRUST.DLL');p := GetProcAddress(lib, 'WinVerifyTrust');VirtualProtect(p, 3, PAGE_EXECUTE_READWRITE, old);move(fake, p^, 3);VirtualProtect(p, 3, old, old);...

Page 42: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 42

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

Page 43: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 43

Codesignatur mit AxProtector

Page 44: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 44

Protection Suite

Protection Suite

Automatischer Schutz(IP Protection)

Anti-Debug Methoden

VerwendeteCodeMeter Variante

IndividuelleFunktionsverschlüsselung

Integritätsschutz(Tamper Protection)

Authentizität der Software(Secure Loader / Authenticity)

Java SEJava EE

EmbeddedOperating System

.NETPC (Windows,Linux, OS X)

CodeMeterRuntime

CodeMeterRuntime

CodeMeterRuntime

CodeMeter Embedded

CodeMeter Embedded

IxProtector

AxProtector

AxProtector .NET

AxProtector Java

AxProtector CmE

ExProtector

Page 45: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 45

Funktionen der Wibu-Systems Protection Suite

Authentizität der Software (Secure Load) Verhindert die Ausführung nicht freigegebener Software

Integritätsschutz (Tamper Protection) Erkennt Veränderungen (im Speicher!) und reagiert

Automatischer Schutz (IP Protection) Schützt gegen Reverse Engineering und Raubkopien

Anti-Debug Methoden Individuelle Funktionsverschlüsselung

Verschlüsselung auf Funktionsebene

Page 46: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 46

AxProtector

Geschützte AnwendungKompilierte Anwendung

Header

AxEngine(Security Engine + Public Key)

AxProtector

VerschlüsselteCode Section

VerschlüsselteData Section

VerschlüsselteResource Section

Header

Data Section

Resource Section

Code Section

Signatur

Private KeyPublic Key

Page 47: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 47

Selbstprüfung

Executable

Signature

ÜberprüfeSignatur

(Hash, Public Key, Signature)

Berechne Hash des Executable

Fehler

Ja

Nein

AxEngine(Security Engine + Public Key)

Page 48: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 48

Überprüfung eines anderen Modules

Executable Dynamic Link Library

AxEngine(Security Engine + Public Key)

Signature

AxEngine(Security Engine + Public Key)

Signature

exe - exe

exe - dll

dll - dll

dll - exe

Page 49: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 49

AxProtector

[WIBU-SYSTEMS Control File]...

[Commandline]...-cav...

[CheckCodeIntegrity Dlls]Image1 = ShowHex.dll...

Prüfung anderer Module

Selbst-Prüfung

Page 50: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 50

ExProtector

ExProtector = Schutz von ausführbaren Dateien auf Embedded Betriebssystemen

Integration der „AxEngine“ als ExEngine in den Loader des Betriebssystems / Bootloader

Verwendung von Signaturen und Zertifikaten Rechte-Management: Wer darf welche Anwendungen unterschreiben?

Page 51: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 51

Verwendung von Zertifikaten in CodeMeter

Page 52: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 52

Sicheres Firmware Update

Es gibt ein Wibu-Stammzertifikat Vom Stammzertifikat werden Produktions-Zertifikate abgeleitet Jeder CmDongle erhält während der Produktion den öffentlichen

Stammschlüssel Das Firmware Update wird mit einem Produktions-Zertifikat unterschrieben Die alte Firmware überprüft das Update (Signatur und Zertifikat), bevor es

die neue Firmware übernimmt

Page 53: Zertifikate für Authetizität, Authentifizierung oder beides?

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 53

CodeMeter Universal Firm Code

Lizenzen werden vom Hersteller unterschrieben Lizenzen bestehen aus einem Zertifikat und einem verschlüsselten Teil Das Lizenzzertifikat kann eine Weitergabe-Berechtigung enthalten

(License Transfer) Bei der Weitergabe wird das originale Zertifikat mitgegeben und ein neues

Zertifikat des abgebenden CmContainers erstellt Alles erfolgt transparent im Hintergrund in CodeMeter

Page 54: Zertifikate für Authetizität, Authentifizierung oder beides?

Deutschland: +49-721-931720

USA: +1-425-7756900

China: +86-21-55661790

http://www.wibu.com

[email protected]

Deutschland: +49-721-931720

USA: +1-425-7756900

China: +86-21-55661790

http://www.wibu.com

[email protected]

03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 54

Vielen Dank für Ihre AufmerksamkeitVielen Dank für Ihre Aufmerksamkeit