jonny goes to england

London & co

Archive for the ‘theoretical’ Category

MSc Project II

with one comment

Ich dachte ich sollte wiedermal berichten was ich überhaupt momentan mache. Die Prüfungen sind vorbei (Bescheid gibt es so Anfang Juli) und Unterricht habe ich auch keinen mehr, und somit habe ich viel Zeit für das Master Projekt.

Meine Masterarbeit ist in zwei Teile aufgeteilt: Im ersten Teil musste ich eine Analyse implementieren, welche die Leakage von, als geheim markierter, Information in einem beliebigen Programm-Code an die Oeffentlichkeit verrät. Das Programm ist in einer sogenannten while-language geschrieben. Eine while-language besteht aus Variablen, Zuweisungen, Conditionals (if) und Schlaufen (while).
Der Unterschied zu den meisten solcher Analysen besteht darin, dass wir die Leakage quantitative und nicht qualitative messen. qualitative Analysen geben fixe Entscheidungen, wie z.b. “das Programm ist sicher” oder eben “das Programm ist unsicher”, i.e. es verrät geheime Daten an einen “Angreifer”. Die quantitative Analyse, welcher ich implementiert habe, gibt keine fixe Entscheidungen sondern einfach ein Mass der Leakage in Zahlen, bzw. Bits.

Um den Unterschied zwischen quantitativer und qualitativer Analyse klar zu machen, hier das Beispiel einer primitiven Passwortabfrage

if(user_input == correct_password) { // gain access } else { // tell user that access denied }

  • Eine qualitative Analyse wird dieses Programm als unsicher einstufen, da wenn man das falsche Passwort eingibt man natürlich keinen Zugriff bekommt. Somit verrät das Programm, dass das eingegebene Passwort falsch war.
  • Eine quantitative Analyse funktioniert so: Das Passwort kann z.b. nur aus 4 Zahlen von 0-9 bestehen. Das grösste Zahl die man somit erreichen kann ist 9999. Somit hat das Passwort einen maximalen Informationsgehalt von log_2(9999) \approx 13.3 bits. Der Vergleich zwischen einem user input und dem korrekten Passwort (und das korrekte Passwort besitzt die geheime Information mit 13.3 bits Information) kann man mit einer Formel, basierend auf der Entropy, auf einen Informationsleak von 0.00146 bits berechnen. Somit wissen wir, dass dieses Programm pro falscher Eingabe ungefähr 0.00146 bits der 13.3 bits verrät. Das macht auch Sinn, denn es gibt 1000 verschiedene Passwortkombinationen (von 0000 zu 9999), also muss 1000 mal 0.00146 ungefähr 13 oder 14 ergeben, was es natürlich auch tut.

Das war der erste Teil der Masterarbeit, eigentlich musste ich nur für diese Theorie ein Programm entwicklen, welche diese Berechnungen automatisch durchführt. Das habe ich schon umgesetzt.

Das Problem im ersten Teil ist, dass Schlaufen sehr primitiv behandelt werden. Schlaufen sind in der Programm Analyse immer einwenig komplexer zu behandeln, da man die Bedeutung (Semantik) des Codes in einer Schlaufe nicht einfach so direkt aufschreiben kann sondern approximieren muss. Das umzusetzen ist der zweite Teil der Arbeit und werde ich in einem späteren Post bei Interesse näher erklären.

Advertisements

Written by jk

June 10, 2007 at 1:20 pm

Posted in theoretical