Tryggt resande i cyberrymden
Säkra programmeringsspråk är idén bakom Andrei Sabelfelds forskning och syftet är att konstruera datorprogram som inte kan läcka ut hemlig information. Andrei arbetar också med befintliga datorprogram och sätt att göra dem säkrare genom att analysera informationsflödet i programmet.
I nästan varje svenskt hushåll finns åtminstone en Internetansluten dator och de företag som inte är beroende av informationsteknik är få. Medvetenheten om riskerna med Internet ökar och åtgärder, såsom användandet av brandväggar och virusskydd, vidtas allt mer. Tyvärr räcker ovanstående strategier oftast inte till och därför arbetar Andrei Sabelfeld med att utveckla ett nytt sätt att öka datorsäkerheten.
– Vi är intresserade av informationsflöden i olika datorprogram. Vilken information som är hemlig och vilken som är offentlig, samt vad som händer med informationen i programmet, säger Andrei.
Exempel på program som hanterar hemlig information finns i webbhandelsplatser. Vid handel på Internet uppges ofta kreditkortsnummer. Kreditkortsnumret kontrolleras av ett webbprogram, som bland annat varnar om giltighetstiden för kortet har gått ut. Detta program kan påverkas, bli ”attackerat” (av hackers), och angriparen får då tillgång till kreditkortsnumret och kan skicka det till en annan webbplats.
– Finns det ingen kontroll på hur informationen flödar i webbplatsens program, är risken stor att attacker lyckas. Eftersom webbprogram hanterar allt mer hemlig information, blir det allt mer viktigt med säkra informationsflöden i webbläsaren.
En nyckel, när det gäller skydd mot attacker, är det programmeringsspråk som webbprogram skrivs i. Programmeringsspråk beskriver vad datorn ska göra. Målet med Andreis forskning är att utveckla programmeringsspråk som skyddar mot läckage av hemlig information.
– Vi vill utveckla programmeringsspråk med egenskaper som gör att man kan skriva program som är säkra från början.
Andrei jämför principen för ett säkert programmeringsspråk med de regler inom fysiken som säger att SI-enheter, till exempel kilogram, sekund och meter, inte kan förväxlas med eller ersätta varandra. Om längden på ett objekt ska beskrivas, kan endast enheten meter användas. Det går inte att säga att något är ett kilogram långt.
– På samma sätt kan information separeras – den information som är hemlig kan inte förväxlas med den information som är offentlig.
I ett säkert datorprogram kan hemlig information inte omvandlas till offentlig information. Däremot kan offentlig information övergå till hemlig information.
Andrei arbetar också med att förbättra säkerheten hos program som redan finns och för detta utvecklar han programanalyser, dvs principer för programverktyg som kan granska program skrivna i olika programmeringsspråk. Analyserna kan vara antingen statiska (avgör säkerheten i ett program innan det används) eller dynamiska (utförs medan programmet körs). Fördelen med dynamiska analyser är att de inte är lika begränsade som statiska. Å andra sidan kan dynamiska analyser minska programmets hastighet. Det är vanligt att kombinera statiska och dynamiska metoder, men att hitta rätt balans mellan dem är en av svårigheterna med Andreis forskning.
– Ett program ska inte bara vara säkert, det måste vara användarvänligt också. Ett program som går för långsamt är svårt och krävande att använda.
Bilderna nedan visar ett exempel på dynamisk respektive statisk analys av ett datorprogram som hanterar hemlig information som antingen är positiv eller negativ. Det skulle exempelvis kunna vara ett provsvar inom vården – antingen är provet negativt eller positivt. Informationsflödet sker i två steg:
· ett villkorssteg som bara sker under förutsättning att informationen är positiv (t ex en färgförändring av texten i provsvaret)
· ett slutsteg som sker oavsett om informationen är positiv eller negativ (t ex ett meddelande till läkaren att provsvaret är klart)
(A) Statiska analyser avgör säkerheten i ett program innan det används. En statisk analys ger således information om vad som händer med såväl negativ som positiv information. En statisk analys kommer att klassa informationsflödet som osäkert, eftersom det flöde av information som passerar genom villkorssteget indirekt avslöjar informationens innehåll. Om provsvaret är skrivet i en annan färg, innebär det ett positivt svar, oavsett vilken text som står i provsvaret.
(B) Dynamiska analyser utförs medan programmet körs, vilket innebär att de endast uppfattar informationsflödet av antingen positiv eller negativ information. Om informationen är positiv, klassar den dynamiska mekanismen villkorssteget som osäkert, eftersom det beror på hemlig information. Om informationen är negativ, så körs det inget villkorssteg och då hittar en dynamisk analys ingen säkerhetsbrist i informationsflödet.
Populärt med programmeringsspråk
Ursprungligen kommer Andrei från staden Novosibirsk i Sibirien och där studerade han matematik och datavetenskap. Han kom till Sverige 1996 och det var forskningen på Chalmers som lockade.
– Jag kunde inte ett ord svenska och kände ingen här när jag kom till Göteborg, men jag visste att forskningen inom datavetenskap var bra här.
Andrei fick en doktorandtjänst på institutionen för data- och informationsteknik som tillhör Göteborgs universitet och Chalmers tekniska högskola. Han började då arbeta med programmeringsspråk för att skriva säkra program. Det är ett område som på den tiden var rätt litet, men som har expanderat.
– För fem år sedan skrev jag en artikel som sammanfattade all forskning inom mitt område. Idag skulle det krävas en hel bok för detta.
När Andrei disputerat åkte han till USA, närmare bestämt till Cornell University i Ithaca, New York. Där studerade han hur hemlig information kan omformuleras och bli offentlig. Ett exempel på detta är när en låt köps på Internet genom programmet iTunes. Låten är hemlig information som blir tillgänglig för köparen efter betalning. Efter två år i USA fick Andrei erbjudande om forskartjänster i både London och Göteborg. Han valde Göteborg och idag har Andrei en grupp bestående av två doktorander och en postdoktor. Det finns planer att anställa ytterligare två doktorander, men större än så vill Andrei inte att gruppen ska bli.
– Om gruppen blir för stor, kommer jag inte att ha tid med egen forskning och det är något som jag vill kunna göra – åtminstone i den närmaste framtiden.
Sportdrömmar för sonen
Anledningen till att Andrei valde att komma tillbaka till Sverige var inte bara Göteborgs stimulerande forskningsmiljö. Lana, Andreis fru, hade också ett finger med i spelet.
– Jag träffade Lana under doktorandtiden när jag var på besök hemma i Novosibirsk. Lana besökte mig i Göteborg och trivdes här.
Andrei, Lana och deras treårige son Erik bor idag på Guldheden, ett stenkast från Chalmers. Ett av familjens intressen är träning – Andrei spelar basket, Lana tränar yoga och Erik prövar för tillfället olika sporter.
– Erik har testat skridskor, simning och skidor. Vi får se vad han kommer att vilja fortsätta med.
Förutom sport gillar familjen Sabelfeld musik, Lana spelar piano och Andrei gitarr. Alla tre lyssnar på allt från klassisk till elektronisk musik.
Listor, sömn och brainstorming
Andreis forskning handlar mycket om val av strategier och det är inte alltid lätt att veta vilken väg som är den rätta. I sådana situationer tar Andrei hjälp av traditionella för- och emotlistor.
– Jag listar alla argument för och emot att använda en strategi. Sen använder jag den listan när jag gör mitt val.
En god nattsömn är också ett knep som Andrei ofta tar till.
– Att sova på saken är alltid bra. Då får hjärnan vila och morgonen därpå är det lättare att tänka kreativt.
Ett tredje sätt att komma vidare med ett problem är att samla ihop gruppen för ”brainstorming”. Syftet med det är att låta tankar och idéer flöda fritt, för då kan lösningar hittas.
– Vi måste tillåta oss att ibland diskutera och tänka fritt, även om man då kanske säger något som är mindre smart. Ur korkade kommentarer kan genialiska idéer födas.
Text: Elisabet Vikeved