Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42....

60
Schritt für Schritt zur geschützten Java-Anwendung Wolfgang Völker | Produktmanagement [email protected] Günther Fischer | Professional Services [email protected] 1

Transcript of Schritt für Schritt zur geschützten Java-Anwendung · Enigma 39. D4J 40. Lython 41. JD-GUI 42....

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

Schritt für Schritt zur geschützten Java-Anwendung

Wolfgang Völker | Produktmanagement

[email protected]

Günther Fischer | Professional Services

[email protected]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Vielen Dank!

WIBU-SYSTEMS

Germany +49-721-93172-0

USA +1-425-775-6900

China +86-21-55661790

www.wibu.com | [email protected]

61