jonny goes to england

London & co

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

One Response

Subscribe to comments with RSS.

  1. Hmmmm dude. What if you could prove you can implement Brainfuck language with your loops and hoops. Therefore the loops, hoops and stuff (I’m being formal here) will be shown to be Turing complete and any program could be exchanged to the loops-hoops-evaluation baahonga and ummmmmmm you could calculate the leakage of the whole program and stuff. Like, umm, or maybe not. *Has Nth sip of Braník*

    Plus, you’ll get an interesting paper title with the f-word in the title = bonus points, you know.

    Happy Midsummer!!!

    Slinky

    June 21, 2007 at 9:43 pm


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: