Zertifikate für Authetizität, Authentifizierung oder beides?
Transcript of 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
03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 2
Was sind Zertifikate
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
03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 4
Die Herausforderung!
Woher weiß ich, dass der Public Key echt ist?
03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 5
Die Lösung
Zertifikate(Public Key Zertifikate, X.509)
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
03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 7
Die nächste Herausforderung!
Woher weiß ich, dass das Zertifikat echt ist?
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)
03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 9
Die … Herausforderung!
…?
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)
03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 11
Beispiele für Stammzertifkate
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
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
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)
03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 15
Anwendungsfälle
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 …
03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 17
Server-Zertifikate
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
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"
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
03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 21
Client-Zertifikate
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
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
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
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
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
03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 27
Speicherorte für Zertifikate und Private Schlüssel
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
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
03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 30
Beispiel Token: CSSI Middleware
03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 31
Authenticode
03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 32
Motivation: Die Anwendung
Signierte Anwendung
03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 33
Motivation: Der Patch
03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 34
Motivation: Die Frage
Läuft die Anwendung noch?
03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 35
Die Antwort
Die erschreckende Antwort:
JA
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
03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 37
Ja aber …
Ja, aber …
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“ !?
03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 39
Die Schwachstelle
Eigene Software
WINTRUST.DLL
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
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);...
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
03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 43
Codesignatur mit AxProtector
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
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
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
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)
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
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
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?
03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 51
Verwendung von Zertifikaten in CodeMeter
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
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
Deutschland: +49-721-931720
USA: +1-425-7756900
China: +86-21-55661790
http://www.wibu.com
Deutschland: +49-721-931720
USA: +1-425-7756900
China: +86-21-55661790
http://www.wibu.com
03.05.2023 Zertifikate für Authentizität, Authentifizierung oder beides? 54
Vielen Dank für Ihre AufmerksamkeitVielen Dank für Ihre Aufmerksamkeit