Erweiterung eines Rahmenprogramms für das automatische Einfügen von Software- Wasserzeichen in Quellcode (i2X00214)
- Art der Arbeit:
- Studien-/Bachelor-/Diplom-/Masterarbeit
- Betreuer:
- Novac, Daniela
Lehrstuhl für Informatik 2 (Programmiersysteme) E-Mail: daniela.novac@fau.de
Philippsen, Michael Lehrstuhl für Informatik 2 (Programmiersysteme) Telefon +49-9131-85-27625, Fax +49-9131-85-28809, E-Mail: michael.philippsen@fau.de
- Beschreibung der Arbeit:
- Hintergrund:
Wasserzeichen existieren als Authentifizierungsmerkmal für verschiedene Produkte seit dem 13. Jahrhundert. In der digitale Welt hat sich diese Methode auch etabliert, als erstes für Multimediadateien und in den letzten 25 Jahren auch für andere Bereiche, wie zum Beispiel Software. Der Hauptgrund Code zu markieren ist der Schutz vor unerlaubter Wiederverwendung des Programms. Dabei können verschiedene Ziele verfolgt werden: Reverse Engineering, Wiederverwendung von GPL-Code ohne die Bedingungen zu respektieren, bösartige Veränderungen, Software-Piraterie und vieles mehr. Wasserzeichen können dazu dienen, solche Sicherheitsziele zu erreichen.
Es gibt zwei Arten von Wasserzeichen für Code: statische und dynamische. Statische Wasserzeichen beeinflussen die Funktionalität des Programms nicht und werden wie eine Signatur innerhalb des Codes auf der syntaktischen Ebene hinzugefügt. Die Wiedererkennung benötigt die Ausführung des Programms nicht. Dynamische Wasserzeichen funktionieren wie sogenannte Ostereier (Easter Eggs), sie sind also eine versteckte Funktionalität, die nur dann erkannt wird, wenn das Programm ausgeführt wird, meistens mit einer geheimen Eingabe.
Ein Wasserzeichensystem wird meistens nach den folgenden Kriterien evaluiert: Glaubwürdigkeit (wie stark es den Urheber identifiziert), Robustheit (wie schwer es ist, das Wasserzeichen zu entfernen), Transparenz (wie schwer es zu erkennen ist, dass der Code ein Wasserzeichen enthält), Widerstandfähigkeit (wie kompliziert es ist, die Wiedererkennung des Wasserzeichens zu kompromittieren), Datenrate (Informationsgehalt des Wasserzeichens), Laufzeit (ob und um wie viel das Wasserzeichen das ursprüngliche Programm verlangsamt) und zusätzlicher Speicherbedarf.Problemstellung:
Ziel dieser Arbeit ist es, ein bestehendes, auf LLVM basierendes Rahmenprogramm zu erweitern, das beim Übersetzen automatisch Wasserzeichen in den Code einfügen kann. In der Literatur sind eine Reihe von Wasserzeichensysteme bekannt. Zwei davon sind bereits Bestandteil unseres Systems. Im Rahmen der Arbeit sollen zwei weitere (z.B. als Plugins) realisiert werden, in der Regel als AST- der Zwischencodetransformationen. Die umgesetzte Methoden werden dann anhand von vorgegebenen und noch zu ergänzenden Programmsammlungen quantitativ bezüglich der oben genannten Kriterien evaluiert und mit dem bereits vorhandenen Verfahren verglichen.
Bei Interesse sprechen Sie uns an. Wir identifizieren dann gemeinsam mit Ihnen die umzusetzenden Wasserzeichensysteme, Benchmarks, etc. Diese Arbeit kann als Bachelor- oder als Masterarbeit ausgestaltet werden. Literatur:
[1] Nagra, Jasvir and Collberg, Christian: "Surreptitious Software:
Obfuscation, Watermarking, and Tamperproofing for Software Protection."
Pearson Education, Michigan, July 2009.
[2] Dey, Ayan; Bhattacharya, Sukriti; and Chaki, Nabendu: "Software
Watermarking: Progress and Challenges.",
https://doi.org/10.1007/s41403-018-0058-8 , J. Indian National Academy of
Engineering, INEA Letters, vol. 4, 2019: 65-75.
[3] Hamilton, James and Danicic, Sebastian: "A Survey of Static Software
Watermarking." In Proc. of 2011 World Congress on Internet Security (WorldCIS-2011):
100-107, Feb. 2011, London, UK.
[4] LLVM-Dokumentation: http://llvm.org/
- Bearbeitungszustand:
Die Arbeit ist noch offen. |
|