schritt für schritt zur geschützten java-anwendung · enigma 39. d4j 40. lython 41. jd-gui 42....
TRANSCRIPT
![Page 1: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/1.jpg)
Schritt für Schritt zur geschützten Java-Anwendung
Wolfgang Völker | Produktmanagement
Günther Fischer | Professional Services
1
![Page 2: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/2.jpg)
Agenda
Java Rückblick
Schutz-Technologien für Java-Anwendungen
Grundprinzip des AxProtector Java
Optionen des AxProtetcor Java
Schutz auf Klassen-Ebene / Methoden-Ebene
Kurze Einführung in die Lizenzierung von Java-Anwendungen
2
![Page 3: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/3.jpg)
Java Rückblick
3
![Page 4: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/4.jpg)
Java und die JVM/JRE
Java: von Sun 1995 entwickelte Programmiersprache.
Die JVM ist eine abstrakte Maschine.
Der Befehlssatz ist der Java Byte Code.
Kompilierte Java Programme bestehen aus vielen Klassendateien, die Bytecode (keinen
nativen Code) enthalten.
JARS sind ZIP-Archive mit zusätzlichem Manifest
Bytecode wird zur Laufzeit durch Java Virtual Machine (JVM) interpretiert und ausgeführt.
Bytecode lässt sich einfach Reverse Engineeren.
Mit dem OpenJDK gibt es eine quelloffene Implementierung der JVM.
4
![Page 5: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/5.jpg)
JAVA - Write Once, Run Anywhere (WORA)
Java Program (.java)
Interpreter (JVM)
Java Compiler
JAVAC
Java Byte Code (.class /.jar)
Windows
Interpreter (JVM)
Linux
Interpreter (JVM)
MacOS
…
5
![Page 6: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/6.jpg)
Java Architektur
ClassloaderJava Program
*.class Files
Bytecode Verifier
Interpreter (JVM)
Host Operating System
(Windows, Linux, MacOS,..)
Java API
*.class Files
6
![Page 7: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/7.jpg)
7
Java und Sicherheit
Java-Klassen lassen sich
Leicht extrahieren
Leicht ersetzen (auch Systemklassen!)
Leicht modifizieren
Der Java Byte Code ist kein „Geheimnis“
Fazit
Alles was in Java geschrieben ist, ist generell unsicher!
![Page 8: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/8.jpg)
Schutzziele
Schutz gegen Raubkopien (Lizenzierung)
Schutz des geistigen Eigentums (Reverse Engineering)
Schutz gegen Analyse durch Mitbewerber
Schutz gegen Verwendung von Code
Integritätsschutz von Daten und Code
Schutz von Daten als Bestandteil des Produktes (Wettbewerbsvorteil)
9
![Page 9: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/9.jpg)
Das Waffenarsenal der Angreifer (Java Decompiler .jar/.class -> .java)
10
![Page 10: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/10.jpg)
Schutz-Technologien für
Java-Anwendungen
11
![Page 11: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/11.jpg)
Betrachtete Optionen
Obfuskierung
Basic Obfuscation
Heavy Duty Protection (Klassmaster)
Java2Exe (JET Engine)
Umwandlung in nativen Code
Evtl. weitere Verschlüsselung durch native Tools
Java Verschlüsselung
AxProtector
Sonstige Methoden
Beispiel CodeMeter Core API
12
![Page 12: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/12.jpg)
Java Obfuscation Tools (KlassMasterAltaori/ProGuard….)
13
![Page 13: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/13.jpg)
Basic obfuscation
14
![Page 14: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/14.jpg)
Basic Obfuscation (Name Obfuscation)
Quelle: Zelix Webseite
15
![Page 15: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/15.jpg)
Decompilieren einer Basic Obfuscation
Quelle: Zelix Webseite
Decompile
16
![Page 16: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/16.jpg)
Heavy Duty Protection
17
![Page 17: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/17.jpg)
Zelix KlassMaster
18
![Page 18: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/18.jpg)
Heavy Duty Protection (Flow, Exception, String Obfuscation …)
Quelle: Zelix Webseite
19
![Page 19: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/19.jpg)
JDO: Java Deobfuscator / JMD: Java bytecode deobfuscation tool
20
![Page 20: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/20.jpg)
JAVA2EXE
Excelsior JET Engine
21
![Page 21: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/21.jpg)
Prinzip Java2ExeJa
va C
ode
Java
Byt
e C
ode
Nat
iver
Cod
e
JAVAC
Compiler
Excelsior
JIT
Compiler
22
![Page 22: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/22.jpg)
Zusätzlicher Schutz durch VerschlüsselungJa
va C
ode
Java
Byt
e C
ode
Nat
iver
Cod
e
Ver
schl
üsse
lter
nativ
erC
ode
JAVAC
Compiler
Excelsior
JIT
CompilerAxProtector
23
![Page 23: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/23.jpg)
Verschlüsselung
24
![Page 24: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/24.jpg)
Verschlüsselung des Codes
25
Verschlüsselung des ausführbaren Codes vor der Auslieferung
Entschlüsselung der benötigten Klassen/Methoden
zur Laufzeit im Speicher
VerschlüsselungUngeschützte
Anwendung
Entschlüsselung
AxEngine
AxEngine
![Page 25: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/25.jpg)
Die AxProtector Suite
AxProtector nativ
Windows 32-/64-bit
Mac OS X
Linux
AxProtector .NET
.Net 2.0, 3.0, 3.5, 4.0, 4.5
AxProtector Java
Java 1.6
Java 1.7
Java 1.8
Java Anwendungen
Java Applets
Java Servlets
26
![Page 26: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/26.jpg)
AxProtector Java - Funktionsprinzip
AxProtector Java automatischer Schutz auf Klassen/Methodenebene durch Verschlüsselung des Bytecodes
Jede Klasse wird automatisch beim Laden entschlüsselt. Dazu muss die AxProtector Runtime initialisiert werden:
Java-Anwendungen mit Main-Klasse => Wrapper (com.wibu.xpm.Wrapper)
manuelles Laden durch EntryPoint
manuelles Laden durch ProtectionManager
Einbau erweiterter Schutzmaßnahmen (IxProtector)
Einbau von Lizenzabfragen (CoreAPI)
27
![Page 27: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/27.jpg)
Java-Anwendungen mit Main-Klasse
28
![Page 28: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/28.jpg)
EntryPoint
29
![Page 29: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/29.jpg)
Einbau erweiterter Schutzmaßnahmen (IxProtector)
30
![Page 30: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/30.jpg)
Unterstützte Anwendungstypen
Welche Anwendungstypen kann der AxProtector Java schützen?
Konsolen- und Desktopanwendungen
Applets, Web Start Anwendungen
Servlets
Eclipse RCP, Eclipse Plugin
OSGi
31
![Page 31: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/31.jpg)
Unverschlüsselter Code (CAFEBABE)
32
Magic Number Version
Constant Pool
Access Flag
this Class
super Class
Interfaces
Fields
Methods
Attributes
![Page 32: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/32.jpg)
Mit AxProtector Java geschützter Code
33
Magic Number Version
Constant Pool
Access Flag
this Class
super Class
Interfaces
Fields
Methods
Attributes
![Page 33: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/33.jpg)
Prinzip des AxProtector Java
Verschlüsselte Klasse auf der
Festplatte
Klasse im Speicher
AxProtector RuntimeJVM
loadClass
34
![Page 34: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/34.jpg)
AxProtector Klassen
Automatischer Schutz (in das JAR integriert oder als WibuXpm4JRuntime.jar)
Anpassungen im Code
Laufzeit der geschützten Anwendung
Integriert in die geschützte Anwendung
WibuXpm4JRuntime.jar im classpath
35
![Page 35: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/35.jpg)
Parameterdatei im XML-Format (Lizenzliste)
36
Quelle: CodeMeter Entwicklerhandbuch
![Page 36: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/36.jpg)
Beispiel
37
![Page 37: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/37.jpg)
Decompilieren nach
Verschlüsselung
38
![Page 38: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/38.jpg)
Enigma
39
![Page 39: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/39.jpg)
D4J
40
![Page 40: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/40.jpg)
Lython
41
![Page 41: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/41.jpg)
JD-GUI
42
![Page 42: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/42.jpg)
Angriffe via Tools
43
In Java gibt es einige „Tools“ Interfaces
Gedacht, um Byte-Code zu analysieren / modifizieren
Debugger, Profiler
JVMPI: Java Virtual Machine Profiling Interface
Bis einschließlich Java 6
JVMTI: Java Virtual Machine Tools Interface
Ab Java 7, Nachfolger von JVMPI
![Page 43: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/43.jpg)
Besondere Schutzmaßnahmen
WibuXPM4J32/64.dll Absicherung
Callback Check
Prüft, dass keine JNI Funktionen geändert wurden
JVMPI / JVMTI Check
Prüft, ob ein JVMPI/JVMTI Agent vorhanden ist
44
![Page 44: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/44.jpg)
JVM Manipulation / Ändern des JVM Quellcodes
45
OpenJDK ist eine quelloffene Implementierung der JVM
Seit Version 6
Kann somit mit Hintertür gebaut werden
Einfügen von Code, der geladene Klassen mitschreibt, somit einfach möglich
Lösung:
JVM Verifizierung
![Page 45: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/45.jpg)
Update der Signaturen
46
![Page 46: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/46.jpg)
Weitere Verfahren
47
![Page 47: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/47.jpg)
Schutz von Daten
Annahme
Geistiges Eigentum sind die Daten
z.B. Fahrzeugdaten für Werkstätten
Schutzziel
Schützen der Daten gegen unbefugte Benutzung (Lizenzierung)
Schützen der Daten gegen „Extraktion“ und Nachbau durch Mitbewerber
Lösung:
Verschlüsselung der Daten
48
![Page 48: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/48.jpg)
Schutz von Daten
Nur sicher, wenn die Schlüssel in einem vertrauenswürdigem Speicher liegen.
49
![Page 49: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/49.jpg)
CodeMeter Core API
com.wibu.CodeMeter
Grundlage aller Schutzmechanismen
Schnittstelle zur Kommunikation mit CodeMeter
Erweiterte Schutzmöglichkeiten
Einheitliches Interface durch CodeMeter License Server
Lizenz in einem Dongle oder in einer verschlüsselten Lizenzdatei
Einheitliche Lizenzoptionen
Mischen in einer Anwendung möglich
Dongle
Ihre Software
Aktivierung
Java Native Interface
CodeMeter License Server
50
![Page 50: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/50.jpg)
Schutz von Daten - Verschlüsselung
Schutz durch Ver-/Entschlüsselung in der Anwendung
cmCrypt2 ()
51
![Page 51: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/51.jpg)
Integritätsschutz - Signatur
Integritätsschutz von Daten/Bibliotheken
cmCalculateDigest()
cmCalculateSignature()
cmValidateSignature()
52
![Page 52: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/52.jpg)
Core API – Dokumentation und Beispiele
CodeMeter Java API Help (HTML Format)
Servlet Sample
CmCalculator
CmDemo
Lizenzzugriff
Auslesen von Lizenzen
Verschlüsselung
…
53
![Page 53: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/53.jpg)
Ein paar Worte über
CodeMeter
54
![Page 54: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/54.jpg)
Flexible Lizenzierungs Modelle für Lizenzgeber
Single User
Network
Feature On Demand
Perpetual
Trial version
Rent / Leasing / Subscription
Pay-Per-Use
Maintenance period
Downgrade
Grace Period
Volume
Version
Standby
High Availability
Overflow
Borrowing
Name/PC
Time zone
55
![Page 55: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/55.jpg)
Zusammenfassung
56
![Page 56: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/56.jpg)
Erreichung Schutzziele bei Obfuscation
Schutz gegen Raubkopien (Lizenzierung)
Schutz des geistigen Eigentums (Reverse Engineering)
Schutz gegen Analyse durch Mitbewerber
Schutz gegen Verwendung von Code
Integritätsschutz von Daten und Code
Schutz von Daten als Bestandteil des Produktes (Wettbewerbsvorteil)
57
![Page 57: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/57.jpg)
Erreichung Schutzziele bei Java2Exe
Schutz gegen Raubkopien (Lizenzierung)
Schutz des geistigen Eigentums (Reverse Engineering)
Schutz gegen Analyse durch Mitbewerber
Schutz gegen Verwendung von Code
Integritätsschutz von Daten und Code
Schutz von Daten als Bestandteil des Produktes (Wettbewerbsvorteil)
58
![Page 58: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/58.jpg)
Erreichung Schutzziele bei Verschlüsselung
Schutz gegen Raubkopien (Lizenzierung)
Schutz des geistigen Eigentums (Reverse Engineering)
Schutz gegen Analyse durch Mitbewerber
Schutz gegen Verwendung von Code
Integritätsschutz von Daten und Code
Schutz von Daten als Bestandteil des Produktes (Wettbewerbsvorteil)
59
![Page 59: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/59.jpg)
Wir sind gewappnet!
60
![Page 60: Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42. Angriffe via Tools 43 In Java gibt es einige „Tools“ Interfaces Gedacht, um Byte-Code](https://reader033.vdokument.com/reader033/viewer/2022041422/5e2028008a5c27335344ed4b/html5/thumbnails/60.jpg)
Vielen Dank!
WIBU-SYSTEMS
Germany +49-721-93172-0
USA +1-425-775-6900
China +86-21-55661790
www.wibu.com | [email protected]
61