Bibliographic Metadata
- TitleValidation of data flow results for program modules / Karsten Klohs
- Author
- Published
- Institutional NotePaderborn, Univ., Diss., 2009
- LanguageEnglish
- Document TypesDissertation (PhD)
- URN
- Social MediaShare
- Reference
- IIIF
English
This thesis presents a general approach to the validation of
interprocedural data flow results for separated software modules, in
order to enable the safe use of data flow results on devices which
cannot afford to run the data flow analysis on their own. The
underlying idea stems from the "Proof-Carrying-Code Principle", which
utilises that it is easier to check the correctness of a given
solution of a problem than to solve the problem.
The requirement to validate analysis results originally arose for Java
Bytecode Verification on Smart Cards. The generalisation of this
specific application to the validation of interprocedural data flow
results enables advanced optimisations or security checks on limited
devices in a scenario where the mobile code is transmitted via an
inherently insecure transport media like the Internet. The validation
ensures the correctness of the results but the code producer can
perform the complex analysis on a more powerful machine.
The central contribution of this thesis is the extension of the
validation approach to the interprocedural analyses and to separated
software modules. This is vital in a mobile code scenario where
different software modules can be dynamically loaded to the target
device and where the potential interactions between the software
modules and the runtime environment have to be considered.
Deutsch
Diese Arbeit beschreibt einen allgemeinen Ansatz zur Validierung von
interprozeduralen Analyseergebnissen für einzelne Softwaremodule, um
die sichere Nutzung von Datenflussergebnissen auf Zielplattformen zu
ermöglichen, die die Analyse nicht eigenständig durchführen
können. Die zugrunde liegende Idee entstammt der "Proof-Carrying
Code"-Methodik, die sich zu Nutze macht, dass es einfacher ist, die
Korrektheit der Lösung eines Problems zu überprüfen als das
eigentliche Problem zu lösen.
Die Notwendigkeit, Datenflussergebnisse zu prüfen, entstand
ursprünglich bei der Java Bytecode Verfikation auf Smard Cards. Die
Verallgemeinerung dieses speziellen Ansatzes auf die Validierung von
interprozeduralen Analyseergebnissen ermöglicht erweiterte
Optimierungen oder Sicherheitsüberprüfungen in einem Umfeld in dem
mobiler Code über ein unsicheres Transportmedium wie dem Internet
übertragen wird. Die Validierung stellt die Korrektheit der
Analyseergebnisse sicher, aber der Codeerzeuger kann die komplexe
Analyse auf einer leistungsfähigeren Maschine durchführen.
Der wesentliche Beitrag dieser Arbeit ist die Erweiterung des
Validierungsansatzes auf interprozedurale Analysen und auf die Analyse
einzelner Softwaremodule. Dies ist entscheidend in einem Umfeld, in
dem verschiedene Softwaremodule zur Laufzeit auf eine Zielplattform
geladen werden können und wo die möglichen Wechselwirkungen
zwischen Softwaremodulen und der Laufzeitumgebung berücksichtigt
werden müssen.
- The PDF-Document has been downloaded 65 times.