jonny goes to england

London & co

MSc project

with 3 comments

Mir ist aufgefallen, dass ich mein MSc Projekt gar nicht wirklich beschrieben habe. Deshalb versuche ich es hier, in verschiedenen Tiefen, zu erklären 🙂

Simple&Easy. Es ist interessant herauszufinden, ob ein Computer Programm, welches vertrauliche Daten (Addressen, Passwörter, Kontostände, Krankengeschichte, etc.) beinhaltet, ein Leck besitzt, welches diese Daten nach “Aussen” (z.b. darstellen auf einen Monitor oder so) fliessen lässt. Somit würde dieses Programm als unsicher gelten. Meine Arbeit besteht darin, automatisch herauszufinden, wieviel geheime Information von einem Programm maximal nach “Aussen”, für einen Beobachter sichtbar, fliessen kann.

Medium. In meiner Arbeit geht es darum, den Informations Fluss von “High security” Variablen zu “Low security” Variablen quantitativ mittels Informations Theorie und Programm Analyse zu untersuchen. Die Theorie, welche mein Supervisor entwickelt hat, kann (mit gewissen Einschränkungen) statisch sagen, wieviel Bits an geheimer Information nach der Ausführung des Programms maximal für einen Angreifer sichtbar sind. Als Beispiel könnte man sich ein Bankomat vorstellen. Wenn jemand den PIN Code nicht weiss, dann kann er trotzdem versuchen diesen zu erraten. Wenn der PIN falsch war, dann teilt der Bankomat das mit einer Fehlermeldung mit. Diese Mitteilung sagt, wenn auch nur sehr wenig, etwas über das Passwort aus, nähmlich, dass es nicht jenes ist welches der Angreifer soeben verwendet hat. Dieses Informationsleck ist jedoch nicht schlimm, da der Raum an möglichen Passwörtern relativ gross ist. Dasselbe gilt natürlich für jede Passwortabfrage.

Advanced (mit der Annahme, dass die zwei Paraphen oben gelesen wurden). Nehmen wir an, dass im folgenden Programm “h” für high security steht und “x” für low security. Die Variable “h” ist gleichmässig über {0, 1, 2, 3} verteilt.

if(h < 2) {
if(h == 0) x = 0; else x = 1;
} else {
if(h == 2) x = 2; else x = 3;
}

Wieviel Information fliesst von “h” nach “x” ? Man kann annehmen, dass der If-Guard 1-Bit leaked. Somit sind in der then-branch noch {0, 1} möglich und in der else-branch {2, 3}. “h == 0” und “h == 2” leaken somit je 1/4 * log(4) + 3/4 * log(4/3) = 0.8113. Zusammen mit dem 1-Bit leak ergibt das: 1 + 0.8113 + 0.8113 = 2.623. Somit verrät dieses Programm alles was in “h” steckt an “x”.

Hard.

Advertisements

Written by jk

February 17, 2007 at 11:10 am

Posted in QMUL

3 Responses

Subscribe to comments with RSS.

  1. Wenn ich deine Kondition umschreibe erhalte ich

    if(h==0) x = 0;
    else if(h==1) x = 1;
    else if(h==2) x = 2;
    else if(h==3) x = 3;

    und wenn man das reduziert

    x = h;

    Was bedeutet die Zahl 2.623 und welches der Branches ist der 1-Bit-leak? Ist das Ganze mit Tainting zu vergleichen?

    Daniel Lorch

    February 17, 2007 at 10:05 pm

  2. hi. ja, war ein simpels Beispiel. Gut, in Wirklichkeit funktioniert es anders. Die [If] Regeln berechnen eine Warscheinlichkeit mit der der Guard sich als true oder false evaluiert (mit gegebener Verteilung von “h”). Aufgrund dieser Warscheinlichkeit wird ein genauer upper bound der leakage berechnet. Ein 1-Bit leak ist ein konservativer Ansatz -> ein guard kann nicht mehr als 1 bit leaken (true/false) wenn eine high variable darin verwendet wird.

    Die Zahl 2.623 sagt aus, wieviel Bits h zu x leakt. Da h nur eine 2 bit variable ist (0..3) zeigt die Berechnung dasselbe wie du mit der Syntax Umschreibung gezeigt hast, nähmlich dass der ganze Inhalt von h nach x leakt..

    Das ganze ist ähnlich wie tainting bis auf die Berechnung der Warscheinlichkeit von Guards, Loops und dass es Information Theorie verwendet um einen lower und upper bound für die leakage zu berechnen (tainting wäre ja gröber, entweder ist eine variable tainted oder nicht)…

    jonny

    February 18, 2007 at 2:09 am

  3. […] June 10, 2007 Filed under: theoretical, programming — jonny @ 1:20 pm Ich dachte ich sollte wiedermal berichten was ich überhaupt momentan mache. Die Prüfungen sind vorbei (Bescheid gibt es so Anfang […]


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: