22.08.2013 Views

Trusted Computing ur datasäkerhetssynpunkt - Umeå universitet

Trusted Computing ur datasäkerhetssynpunkt - Umeå universitet

Trusted Computing ur datasäkerhetssynpunkt - Umeå universitet

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Trusted</strong> <strong>Computing</strong> <strong>ur</strong><br />

<strong>datasäkerhetssynpunkt</strong><br />

Gunnar Söderman<br />

<br />

11 augusti 2005


Referencing<br />

To reference this master’s thesis the following BIBTEX entry might be helpful.<br />

@Mastersthesis{Södeman:ngscb,<br />

author = "Gunnar Söderman",<br />

title = "<strong>Trusted</strong> <strong>Computing</strong> <strong>ur</strong> <strong>datasäkerhetssynpunkt</strong>",<br />

school = "University of <strong>Umeå</strong>",<br />

year = "2005",<br />

month = "aug 11",<br />

<strong>ur</strong>l = "http://www.cs.umu.se/~di98gsn/thesis/"<br />

}


Sammanfattning<br />

<strong>Trusted</strong> <strong>Computing</strong> (TC) har sedan år 2002 varit ett stort samtalsämne<br />

inom datasäkerhetsområdet. Denna rapport försöker bringa klarhet i<br />

nyttan för ett företag att använda Microsofts implementation av TC,<br />

kallad Next Generation Sec<strong>ur</strong>e <strong>Computing</strong> Base (NGSCB). Rapporten<br />

ger en översikt av säkerhetsområdet och specifikationen av <strong>Trusted</strong><br />

Platform Module. Vidare utreds h<strong>ur</strong> NGSCB fungerar och h<strong>ur</strong> det<br />

lever upp till den standard som <strong>Trusted</strong> <strong>Computing</strong> Group fastslagit.<br />

NGSCB utvärderas dels <strong>ur</strong> en teknisk men även <strong>ur</strong> en ekonomisk synvinkel.<br />

Slutligen diskuteras några av de olika åsikterna runt NGSCB<br />

och TC.<br />

Abstract<br />

Since year 2002 <strong>Trusted</strong> <strong>Computing</strong> (TC) has been a topic in computer<br />

sec<strong>ur</strong>ity. This thesis tries to explore the subject of the usefulness<br />

of Microsofts implementation of TC, called Next Generation Sec<strong>ur</strong>e<br />

<strong>Computing</strong> Base (NGSCB). An overview of the computer sec<strong>ur</strong>ity<br />

area is given together with an overview of the <strong>Trusted</strong> Platform<br />

Module. The report proceeds with an overview of NGSCB in relation<br />

to the standard given by <strong>Trusted</strong> <strong>Computing</strong> Group. An analysis<br />

of NGSCB from a technical and economical point of view is performed.<br />

The report is concluded by a summary of the opinions regarding<br />

NGSCB and TC.


Innehåll<br />

1 Inledning 1<br />

1.1 Förkunskaper . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />

1.2 Mål . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />

1.3 Upplägg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />

2 Säkerhet 5<br />

2.1 Tillgänglighet . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12<br />

2.2 Konfidentialitet . . . . . . . . . . . . . . . . . . . . . . . . . . . 12<br />

2.3 Integritet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12<br />

2.4 Tillit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />

2.5 Hotbilder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14<br />

2.6 Identifiering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />

2.7 Stark identifiering . . . . . . . . . . . . . . . . . . . . . . . . . . 16<br />

2.7.1 Smartcards . . . . . . . . . . . . . . . . . . . . . . . . . 17<br />

2.7.2 Biometriska system . . . . . . . . . . . . . . . . . . . . . 17<br />

2.8 Kryptering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20<br />

2.9 Slumptalsgenerering . . . . . . . . . . . . . . . . . . . . . . . . 24<br />

2.10 Hashning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24<br />

2.11 Public Key Infrastruct<strong>ur</strong>e . . . . . . . . . . . . . . . . . . . . . . 25<br />

2.12 Mjukvarans och hårdvarans roll i ett system . . . . . . . . . . . . 26<br />

v


vi INNEHÅLL<br />

2.13 <strong>Trusted</strong> Hardware och <strong>Trusted</strong> <strong>Computing</strong> . . . . . . . . . . . . . 27<br />

2.14 <strong>Trusted</strong> <strong>Computing</strong> Platform Alliance . . . . . . . . . . . . . . . 29<br />

3 Next Generation Sec<strong>ur</strong>e <strong>Computing</strong> Base 33<br />

3.1 Hårdvarukrav i NGSCB . . . . . . . . . . . . . . . . . . . . . . . 36<br />

3.2 Kompatibilitet . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38<br />

3.3 System-system kommunikation . . . . . . . . . . . . . . . . . . . 38<br />

3.4 NGSCB och TCPA . . . . . . . . . . . . . . . . . . . . . . . . . 39<br />

3.5 NGSCB och öppna standarder . . . . . . . . . . . . . . . . . . . 40<br />

3.6 Systemets svagheter . . . . . . . . . . . . . . . . . . . . . . . . . 40<br />

3.7 Ekonomiska aspekter . . . . . . . . . . . . . . . . . . . . . . . . 42<br />

4 Alternativ till NGSCB 45<br />

4.1 Computer Integrity System . . . . . . . . . . . . . . . . . . . . . 46<br />

4.2 Hårdvarubrandväggar . . . . . . . . . . . . . . . . . . . . . . . . 48<br />

4.3 TCPA tillsammans med GPL-plattformar . . . . . . . . . . . . . 50<br />

5 Diskussion 51<br />

5.1 Åsikter runt NGSCB och TCPA . . . . . . . . . . . . . . . . . . 53<br />

5.2 Alternativa lösningar till NGSCB . . . . . . . . . . . . . . . . . . 55<br />

6 Sammanfattning 57<br />

Ordlista 59<br />

Referenser 63<br />

A Phishing 67


Fig<strong>ur</strong>er<br />

2.1 Man-in-the-middle attack . . . . . . . . . . . . . . . . . . . . . . 10<br />

2.2 Olika typer av kryptering . . . . . . . . . . . . . . . . . . . . . . 22<br />

2.3 En schematisk bild över TCPA. . . . . . . . . . . . . . . . . . . . 30<br />

3.1 En schematisk bild över NGSCB. . . . . . . . . . . . . . . . . . 34<br />

3.2 Ett blockdiadram över ett moderkort med en TPM . . . . . . . . . 37<br />

4.1 Ett diagram över certifikatdistributionen i CIS. . . . . . . . . . . . 47<br />

5.1 En ljudfil från WinXP. . . . . . . . . . . . . . . . . . . . . . . . 54<br />

vii


Tack till<br />

Jag vill rikta ett stort tack till min handledare Jonny Petterson som varit ett oumbärligt<br />

stöd under arbetets gång. Vidare vill jag tacka Ola Ågren, David Jonsson<br />

och Daniel Jonsson för deras ovärderliga råd, insikter och diskussioner. Slutligen<br />

vill jag tacka alla på Föreningssparbanken IT, <strong>Umeå</strong> som hjälpt mig under tiden<br />

som arbetet fortlöpt.<br />

ix


Inledning<br />

1<br />

Datasäkerhet är ett vitt begrepp med många ingående delar: Operativsystem, applikationer,<br />

hårdvara samt människorna som hanterar systemen. Fokus i säkerhet<br />

ligger enligt Anderson och Bishop kring integritet, konfidentialitet och tillgänglighet<br />

[2, 6]. Balansen mellan dessa är ofta unik för varje system, användningsområde<br />

och situation. Gemensamt för alla säkerhetsmodeller är dock att de måste<br />

komma in så tidigt som möjligt i bilden. För att en säkerhetsmodell ska vara effektiv<br />

krävs att den finns med redan i designstadiet av en applikation eller ett system<br />

[2]. På program eller systemnivå måste den appliceras så tidigt som möjligt, gärna<br />

före uppstart.<br />

Det är välkänt att den svagaste länken i kedjan utgör det största hotet mot ett<br />

företags informations- och systemintegritet [2, 6, 8]. Ofta beror bristfällig säkerhet<br />

på svagheter i de applikationer som körs på ett företag. Säkerhetsbrister i<br />

operativsystemet är vanliga, ofta beror de på rena programvarufel men ibland på<br />

bristande design. Det finns flera säkerhetslösningar men förhållandevis få system<br />

där säkerhet inkluderats redan i designstadiet.<br />

Detta examensarbete behandlar <strong>Trusted</strong> <strong>Computing</strong> (TC) och Microsofts Next<br />

Generation <strong>Computing</strong> Base (NGSCB), tidigare kallad Palladium. NGSCB är ett<br />

initiativ som delvis avser att höja säkerheten hos Microsofts operativsystem. Systemet<br />

är menat att bli en del av säkerhetslösningen i Windows Longhorn. Rapporten<br />

har till syfte att utröna om NGSCB ger några säkerhetsfördelar gentemot<br />

tidigare existerande lösningar eller om det på ett billigare sätt är möjligt att skapa<br />

ett likvärdigt skydd utan denna lösning. Under tiden som Microsofts arbete med<br />

NGSCB fortskridit har systemet kritiserats hårt från många håll. I vissa fall har<br />

detta medfört förändringar i specifikationen av NGSCB, enligt Kuhlmann [18].<br />

Systemets uttalade mål är att förstärka möjligheterna till stark identifiering, skydd<br />

av känslig data samt skydd av upphovsrättsskyddat material. Kryptering är<br />

den främsta metoden som används för att uppnå dessa mål. NGSCB delar opera-<br />

1


2 KAPITEL 1. INLEDNING<br />

tivsystemet i två delar – en betrodd och en icke betrodd del. Den betrodda delen<br />

fungerar som ett eget operativsystem med en egen exekveringsstack medan den<br />

icke betrodda delen lämnas i stort sett oförändrad. De mål man försöker uppnå<br />

är stark processisolering, hårddiskryptering, säker körning samt säkra vägar till<br />

användaren.<br />

Genom att låt vissa processer köra i en egen del av minnet vilken är krypterad,<br />

skild och dold från övriga delar av systemet hoppas man skapa en bas för attestering<br />

av processer samt möjligheter till krypterad I/O. Hårddiskkrypteringen är<br />

främst menad att användas till data som är känslig <strong>ur</strong> NGSCBs synpunkt. Syftet<br />

är alltså inte att kryptera all data på en hårddisk.<br />

Krypterade tangentbord och möss används för att systemet ska kunna säkerställa<br />

att data från en lokal användare kommer från de lokala I/O-enheterna. NGSCB<br />

skyddar inte mot virus eller intrångsförsök, det kommer dock att erbjuda en metod<br />

för att se till att installerade program utför vad de är tänkta att göra. I ett företag<br />

skulle ett sådant system kunna användas för att hjälpa till att säkra noderna, det<br />

vill säga personalens terminaler. Utanför företagets väggar skulle systemet kunna<br />

användas för att ytterligare förstärka identifiering av kunden. Om en kund till exempel<br />

loggar in på sin banks hemsida kan banken använda systemet för att hjälpa<br />

till med stark autenticering av kunden, så länge denne befinner sig vid sin hemdator.<br />

Viktigt i sammanhanget är att NGSCB är ett valfritt system som levereras inaktiverat<br />

i grundinställningarna (så kallat Opt-in). I nuläget verkar det dock som<br />

om program kan kräva att NGSCB är aktiverat för att viss funktionalitet ska vara<br />

tillgänglig.<br />

En kritik som ofta kommer fram på olika forum är att NGSCB bara är en ny<br />

version av Microsofts Digital Rights Management (DRM). Kritiken tillbakavisas<br />

av Microsoft. NGSCB kan nästan kallas ett helhetsbegrepp, det innefattar allt från<br />

hårdvara till mjukvaran. Idén är att om säkerhet ska vara effektiv måste den finnas<br />

på ett så tidigt stadium som möjligt – redan vid start av hårdvaran.<br />

Microsofts produkter har historiskt sett haft stor genomslagskraft, trots att de ofta<br />

varit hårt kritiserade. NGSCB har fått båda saklig och osaklig kritik. Tekniken<br />

har kritiserats <strong>ur</strong> ett tekniskt så väl som ett ekonomiskt perspektiv, men även <strong>ur</strong><br />

ett socialvetenskapligt och ett j<strong>ur</strong>diskt perspektiv [3, 5, 7, 11, 38]. Denna rapport<br />

kommer att ta upp en del av denna kritik, även om det inte är dess huvudsakliga<br />

inriktning. Rapporten vill framför allt utreda NGSCBs betydelse för större företag.<br />

I de flesta exempel används en bank som utgångspunkt.


1.1. FÖRKUNSKAPER 3<br />

1.1 Förkunskaper<br />

Rapporten riktar sig till programmerare, studenter och systemtekniker som inte är<br />

helt insatta i NGSCB eller TC. Rapporten är skriven under antagandet att läsaren<br />

har grundläggande kunskap om h<strong>ur</strong> ett datorsystem fungerar och h<strong>ur</strong> dess komponenter<br />

samverkar. Läsaren bör även ha en del grundläggande kännedom om brandväggar.<br />

För kryptologiavsnittet förutsätts grundläggande kunskaper inom diskret<br />

matematik och algebra.<br />

1.2 Mål<br />

Rapportens mål är att beskriva Next Generation Sec<strong>ur</strong>e <strong>Computing</strong> Base, <strong>Trusted</strong><br />

<strong>Computing</strong> samt kringliggande tekniker med utgångspunkt i datasäkerhet. Rapporten<br />

vill även utreda NGSCBs betydelse för större företag.<br />

1.3 Upplägg<br />

Avsnitt 2 börjar med en allmän översikt om området datasäkerhet samt en introduktion<br />

till begreppet “tillit” (eng. trust) i datasäkerhetssammanhang. Säkerhetsavsnittet<br />

tar även upp tre exempel på attacker. Detta för att kunna knyta samman<br />

begreppen hotbild och tillit samt för att ge stöd åt slutdiskussionen. Rapporten<br />

fortsätter sedan med en teknisk översikt över TCPA.<br />

Avsnitt 3 diskuterar NGSCB och är avsett att kunna läsas fristående från övriga<br />

delar av rapporten så länge läsaren har förståelse för de delar som tas upp i avsnitt<br />

2. För att befästa förståelsen av NGSCB och för att visa att inte ens detta initiativ<br />

är felfritt kommer en del svagheter att tas upp. Dessa svagheter förekommer under<br />

utvecklingen av NGSCB och kan när som helst korrigeras, de är dock intressanta<br />

<strong>ur</strong> ett konceptuellt perspektiv. En viktig fråga framförallt för företag är kompatibilitet,<br />

både mellan olika system men även med gamla program. Avsnittet avser att<br />

klargöra h<strong>ur</strong> NGSCB är tänkt att fungera och det tar även upp en del av systemets<br />

möjligheter och begränsningar. Eftersom datasäkerhet ofta är en ekonomisk fråga<br />

diskuteras detta i avsnitt 3.7.<br />

Avsnitt 4 behandlar en del befintliga säkerhetslösningar. Avsnittet tar framför allt<br />

upp en del lösningar som finns idag och h<strong>ur</strong> dessa fungerar. Ett försök görs även<br />

att designa ett system vilket löser en del av de funktioner vilka NGSCB säger sig


4 KAPITEL 1. INLEDNING<br />

lösa.<br />

Sist i rapporten återfinns en ordlista med översättningar av en del engelska uttryck<br />

samt förklaringar av samtliga ej standardiserade förkortningar.


Säkerhet<br />

2<br />

Säkerhet handlar om att skydda någons intressen utan att begränsa dennes handlingsförmåga<br />

på ett sådant sätt att denne inte kan utföra sitt arbete. De tre hörnstenarna<br />

är integritet, konfidentialitet och tillgänglighet [6]. För att säkerhet ska<br />

fungera i en applikation måste det finnas som ett funktionellt krav redan från början.<br />

Det är lika svårt att designa in säkerhet i efterhand som att designa in prestanda<br />

i efterhand. Om säkerhet inte är en del av designmålen från början kan det vara<br />

lättare att designa om applikationen från början än att försöka lägga på det i efterhand.<br />

Enligt Bishop kan en applikation som är dålig <strong>ur</strong> säkerhetssynpunkt därmed<br />

aldrig bli riktigt bra <strong>ur</strong> detta hänseende [6]. Att tillgänglighet relaterar till säkerhet<br />

är inte alltid självklart. Relationen blir dock klar om man betänker att en anställd<br />

behöver spendera tid på att gallra bort oönskad e-post (spam), kostnaden för ett<br />

företag blir därmed reell. Tomas Ögren, systemadministratör på <strong>Umeå</strong> Universitet<br />

uttrycker det väl med orden [47]:<br />

“Något som hindrar mig från att göra det jag borde kunna<br />

göra kan klassas som ett säkerhetsproblem.”<br />

För att tydliggöra problematiken redovisas nedan ett antal hot, attacker och problem.<br />

De tre vanligaste hoten mot ett system är malware, spam och intrångsförsök.<br />

Malware är vad som ibland kallas illasinnade program. Uttrycket innefattar virus,<br />

trojanska hästar, maskar och program specifikt framtagna för att kompromettera<br />

ett systems integritet, konfidentialitet eller tillgänglighet. Till malware räknas även<br />

de program som gör sådant de inte ska göra. Detta innefattar program vilka innehåller<br />

funktionalititet som avsiktligt eller oavsiktligt inte redovisas. Vidare kan<br />

sägas att malware är program vilka kan försättas i ett sådant tillstånd att de gör något<br />

som de inte ska göra. Vanligen rör det sig om programfel till exempel buggar,<br />

men det kan också vara att ett program används på ett sätt som konstruktören inte<br />

hade i åtanke när programmet blev designat. Med “något som ett program inte<br />

5


6 KAPITEL 2. SÄKERHET<br />

ska göra” menas i det här fallet att programmet gör något som komprometterar<br />

ett systems integritet, konfidentialitet eller tillgänglighet. Ett program kan äventyra<br />

ett systems integritet genom att det till exempel av misstag skriver över ett<br />

systemprograms minnesbuffer. Samma fel kan skapa en situation där systemets<br />

integritet äventyras genom att systemet kraschar. Om ett systems konfidentialitet<br />

äventyras sker detta oftast genom användarfel men det händer att den programvara<br />

som används för att s<strong>ur</strong>fa på internet skapar situationer där ett intrång kan ske. [2]<br />

Spam har tidigare inte ansetts som en säkerhetsrisk i sig eftersom det funnits i en<br />

ganska begränsad utsträckning. När mängden oönskad e-post ökade under 2000talet<br />

började virusföretag som bland andra Norton att inkludera spam-filter i sina<br />

produktsviter. Ett par problem med spam är att det kan belasta e-postservrar hårt<br />

och att användarna tvingas att ägna tid och irritation åt att ta hand om den. Spam<br />

blir därmed även en kostnad för företag. Phishing-attacker via e-post har med<br />

tiden blivit allt vanligare. Phishing har ofta syftet att l<strong>ur</strong>a en legitim kund på till<br />

exempel en bank att uppge persondata och/eller kreditkortsuppgifter (Se appendix<br />

A för ett exempel). Attacken kan genomföras på ett flertal sätt men ett är att den<br />

illvilliga parten skickar ett e-post till kunden vid banken med ett meddelande om<br />

till exempel: “Det har uppdagats problem med ditt kontokort, logga in hos banken<br />

så hjälper vi dig att rätta till det.” Kunden loggar in på vad han/hon tror är banken<br />

genom att följa den länk som är bifogad i e-postmeddelandet. Kunden kommer<br />

då till en sida som ser ut exakt som bankens hemsida men i själva verket är en<br />

sida administrerad av hackern. Här ombeds kunden att lämna en rad uppgifter om<br />

konton och personuppgifter. Rätt utförd är denna typ av attacker effektiv. Synen<br />

på spam som ett säkerhetsproblem kan därför sägas vara befogad, resonemanget<br />

stöds av Anderson och Strebe [2, 41].<br />

Intrångsförsök kan ske på flera sätt och det händer att en kombination av olika<br />

tekniker används. Det är vanligt att man använder buggar, malware och legitima<br />

program för att knäcka ett system. Buggar i program är vanliga och dessa kan utnyttjas<br />

på många sätt till detta ändamål. Legitima program används ofta för att få<br />

information om systemet och för att hämta data. Är användaren inloggad som administratör<br />

i systemet är risken stor att en hackare kan ta kontrollen över systemet<br />

direkt efter intrånget. [2, 41]<br />

Ofta handlar datasäkerhet om att skydda en persons eller ett företags integritet. På<br />

operativsystem-nivå handlar det delvis om att begränsa en användares rättigheter<br />

till att komma åt information, använda program eller att göra vissa systeminställningar.<br />

Denna företeelse kallas i regel helt enkelt för en användares “rättigheter”.<br />

Systemets integritet ska skyddas i så hög grad som möjligt samtidigt som dess<br />

konfidentialitet inte äventyras. De två delarna konfidentialitet och integritet måste<br />

alltså balanseras mot ett systems tillgänglighet. Användarna kan uppleva situa-


tionen så att ju fler rättigheter de har, desto högre tillgänglighet har systemet.<br />

Ett system där användaren får installera vilka programvaror hon själv vill är mer<br />

tillgängligt (användbart, i det här fallet) än ett där hon inte får installera några<br />

program alls. Om systemet kraschar på grund av att en användare gjort något fel<br />

sjunker systemets tillgänglighet. På grund av detta kan man säga att [2, 41, 47]:<br />

• En person som har rätt att göra något ska kunna göra det.<br />

• En person som ej har rätt att göra något ska ej kunna det.<br />

• En person ska ej kunna skaffa mer rättigheter än denne ska ha.<br />

Integritet är inte nödvändigtvis knuten till användaren eller ägaren av systemet<br />

utan kan även vara knutet till systemet själv. Datasäkerhet är därför ofta svårt att<br />

förstå och svårt att tillämpa. För att ge ett par exempel:<br />

En person (David) startar sin dator hemma. Som hemanvändare har<br />

han lagt in en del data om sig själv i systemet: sitt namn, sin adress<br />

samt en uppsättning användarnamn och lösenord, bland annat till<br />

sin bank och till sin e-post. Den data (lösenord, användarnamn samt<br />

personuppgifter) som finns i systemet kan ses som känslig.<br />

Genom att l<strong>ur</strong>a David att ladda ner en trojansk häst lyckas en utomstående<br />

människa (Berit) tillförskansa sig kontrollen över Davids system.<br />

Berit använder sedan Davids användarnamn och lösenord för att<br />

logga in på Davids bank för att länsa hans konto.<br />

Även om Davids personnummer inte finns i systemet är detta inte speciellt svårt<br />

att ta reda på när man väl känner till namn och adress. Med fullständiga personuppgifter,<br />

de lösenord som finns i datorn samt en smula fantasi kan han åsamkas<br />

stor ekonomisk och personlig skada.<br />

I detta mycket förenklade fall visas på två system vilka är felaktigt designade <strong>ur</strong><br />

ett säkerhetsperspektiv. Detta förenklade fall visar på en mycket allvarlig attack.<br />

Ett av de viktigaste problemen här är verifikation av vem som loggar in. Banken<br />

försäkrar sig inte om att det verkligen är David och ingen annan som loggar in på<br />

deras system, utan accepterar blint användarnamn och lösenord.<br />

Eftersom den dator som David använder blivit komprometterad med hjälp av ett<br />

malware är den känslig mot attacker. Då han lagt viktiga persondata på hårddisken<br />

7


8 KAPITEL 2. SÄKERHET<br />

går dessa att komma åt av alla som kan logga in på hans dator – förutsatt att den<br />

som loggar in har rättigheter att läsa hans filer. När Berit tar kontrollen blir följden<br />

att Davids integritet blir kränkt och att hans ekonomi blir skadad. Även om<br />

David har ett visst ansvar för sin egen säkerhet ligger det huvudsakliga ansvaret i<br />

detta fall på någon annan. Eftersom banken inte kan utgå från att David har den<br />

kunskap som krävs för att hans egen integritet ska skyddas ligger ansvaret för<br />

säkerheten hos dem. Genom antagandet att användaren har full kontroll och kunskap<br />

över säkerheten i det system denne utnyttjar minskar även tillförlitligheten<br />

för systemet. En bättre lösning återfinns på sidan 9.<br />

Även om exemplet är gravt förenklat ger det en god inkörsport till de frågor man<br />

bör ställa sig vid utformandet av en hotbild:<br />

1. Vem vill vi skydda?<br />

2. Varför vill vi skydda denne?<br />

3. Vem litar vi på?<br />

4. Varför litar vi på denne?<br />

Datasäkerhet handlar mycket om tillit. En betrodd person är i datasäkerhetssammanhang:<br />

“Någon som kan skada vår integritet.” Vi måste därför vara försiktiga<br />

med vem vi litar på och vi måste framför allt veta varför vi litar på denna. Ibland<br />

krävs en starkare form av identifiering för att man ska kunna placera tillit hos<br />

någon. I Davids fall blir kanske svaren på frågorna ovan:<br />

1. Jag vill skydda mig själv och mina intressen.<br />

2. Jag kan åsamkas ekonomisk skada.<br />

3. Jag litar på min bank – inte mitt system.<br />

4. Jag tror att banken har mer att förlora på att skada min integritet än de har<br />

att vinna.<br />

Banken har kanske dessa tankar:<br />

1. Vi vill skydda oss och våra intressen. Kunderna är vår viktigaste inkomstkälla<br />

och därför måste även deras intressen skyddas utan att deras integritet<br />

kränks.


2. En konk<strong>ur</strong>rent kanske vill stjäla information om oss. Om en kunds integritet<br />

skadas kommer denne att tappa sitt förtroende för banken – även om banken<br />

ersätter denne till fullo.<br />

3. Vi litar på att våra kunder gör sitt bästa för att skydda sig själva och sin egen<br />

integritet. Denna tillit förstärks med hjälp av uttryckliga krav på varje kund.<br />

4. Ingen människa vill utsättas för ekonomisk skada – därför kommer de krav<br />

banken ställer på kundens säkerhetstänkande att efterlevas.<br />

Om vi nu utökar exemplet från sida 7 lite, målet denna gång är att stoppa Berit från<br />

att tillförskansa sig den information vi vill skydda (lösenorden till banken och eposten)<br />

genom att göra intrång i Davids dator. Genom att göra intrång i datorn ska<br />

hon inte få tillgång till den data hon behöver för att direkt stjäla från Davids konto.<br />

Notera att all data inte kommer att skyddas; namn, adress och inloggningsdata till<br />

Davids e-post finns fortfarande kvar på så sätt att Berit kan stjäla dem<br />

För att stoppa användaren från att spara sitt lösenord på sin dator väljer<br />

banken att förse användaren med något man väljer att kalla en “säkerhetsdosa”.<br />

Säkerhetsdosan förser användaren med ett nytt lösenord<br />

varje gång denne loggar in på bankens system. Vidare används krypterad<br />

överföring när kunden loggar in på sitt konto. Ett av målen är att<br />

inte göra saker onödigt komplicerade för kunden. Så länge användaren<br />

tvingas att logga in med hjälp av säkerhetsdosan kan banken försäkra<br />

sig om att det är ägaren av kontot eller någon som ägaren litar på som<br />

försöker logga in. Banken ställer dessutom kravet att kunden ska handha<br />

och förvara säkerhetsdosan med samma omsorg som andra värdehandlingar.<br />

Dessa åtgärder medför att systemet totalt sett blir mer tillförlitligt för både användare<br />

och bank. Den uppenbara risken för David privatliv, lösenordet till hans<br />

e-post skyddas inte av banken. Å andra sidan riskerar han inte att Berit stjäl pengar<br />

genom att göra intrång i hans dator.<br />

Anledningen till att systemet kan ses som mer tillförlitligt är att det införts en<br />

form av stark identifiering. Detta införande har kombinerats med ett försök att<br />

väcka kundens uppmärksamhet om säkerhet. Genom att tala om för kunden att<br />

säkerhetsdosan är ett värdeföremål har man försökt få kunden att ta bättre vara<br />

på sin identitetshandling. En säkerhetsdosa har även den effekten att tjänsten att<br />

nyttja sin bank får ett reellt fysiskt värde, det är någonting mer än en vanlig hemsida.<br />

Eftersom banken ställer kravet att säkerhetsdosan ska handhas med samma<br />

9


10 KAPITEL 2. SÄKERHET<br />

omsorg som andra värdehandlingar förstärks känslan ytterligare att dosan har ett<br />

reellt värde. Banken har en viktig roll att spela här, det är de som står i position<br />

att hjälpa användaren till en säkrare datoranvänding i det här fallet. Det finns dock<br />

problem som varken bank eller kund kan skydda sig mot till fullo. Ett av dessa<br />

är sådana som beror på svagheter i mellanliggande system, vilka ingen av de två<br />

parterna har kontroll över. En typ av attack som går att genomföra i de mellanliggande<br />

systemen är man-in-the-middle attacken.<br />

(a) Fas 1 – Login<br />

(b) Fas 2 – Kontosignering<br />

(c) Fas 3 – Överföring<br />

Fig<strong>ur</strong> 2.1: En man-in-the-middle attack med syfte att överföra pengar till ett för<br />

kunden okänt konto.<br />

Den första bilden (2.1a) visar attackens början. Angriparen Berit (B i<br />

fig<strong>ur</strong>en) har skapat en hemsida som liknar den som tillhör Davids (A i<br />

fig<strong>ur</strong>en) bank (Bank i fig<strong>ur</strong>en). När David först kommer till inloggningssidan<br />

gör Berit ett försök att logga in på Davids bank banken begär då en<br />

kontrollsiffra (2.1a.1). När David försöker logga in på vad han tror är sin<br />

bank (fig<strong>ur</strong> 2.1a.2) får han som vanligt en förfrågan om koden från säkerhetsdosan.<br />

Efter han avgivit den (2.1a.3) kan Berit skicka den vidare till<br />

banken (2.1a.4). När Berit loggat in på banken ger hon David en felutskrift<br />

och ber om en ny kontrollsiffra (2.1b.3). Med denna kan hon sedan skapa<br />

ett överföringskonto till sig själv. Genom att göra om fas 2 genomför hon<br />

sedan överföringen av Davids pengar.


Exemplet i fig<strong>ur</strong> 2.1 på motstående sida baserar sig på “Mafia in the middle attack”<br />

exemplet på sid. 25 i Anderson [2] samt bygger vidare på exemplet från sida<br />

9. Istället för att göra intrång i offrets dator väljer angriparen att anfalla utifrån<br />

genom att skapa en hemsida vilken efterliknar offrets bank. Hemsidan används<br />

sedan för en så kallad man-in-the-middle attack. Den sista attacken visar att hela<br />

systemet från användare till (i det här fallet) bank är sårbart. Även om en man-inthe-middle<br />

attackkräver att angriparen har tagit över betrodd server av något slag<br />

till exempel en Internet leverantör. Eftersom leverantören av internetanslutningen<br />

är betrodd skapar det också en situation där användaren (dvs. David) blir sårbar<br />

om denna anslutning blir komprometterad. Exemplen på attacker ovan visar alltså<br />

att:<br />

• Hela systemet är sårbart, inte bara de två som kommunicerar utan även alla<br />

routrar, hubbar och servrar som ligger emellan.<br />

• Konfidentiell data kräver säker och pålitlig lagring.<br />

• Ett systems tillgänglighet ökar när konnektiviteten ökar.<br />

• Användare måste ha tillit till system de inte har full kontroll över.<br />

Intrång kan ske på flera sätt. I detta avsnitt har två påvisats. Dels ett där angriparen<br />

använde sig av en malware för att komma åt offrets data samt gav angriparen möjlighet<br />

att stjäla pengar från David. Det andra exemplet visade på en motåtgärd från<br />

bankens sida vilken löste problemet tillfälligt utan att minska tillgängligheten för<br />

kunden nämnvärt. Det sista exemplet visade på en attack där angriparen komprometterade<br />

en dator som stod utanför både bankens eller kundens kontroll. Denna<br />

inledning till området datasäkerhet visar att säkerhet är en iterativ process. Följande<br />

delar i detta kapitel kommer att ta upp en del grundläggande begrepp och<br />

definitioner så väl som en del hotbilder med exempel på medföljande attacker. De<br />

två sista avsnitten tar upp <strong>Trusted</strong> <strong>Computing</strong> och <strong>Trusted</strong> <strong>Computing</strong> Alliance.<br />

11


12 KAPITEL 2. SÄKERHET<br />

2.1 Tillgänglighet<br />

Tillgänglighet innebär förmågan att använda önskad data eller res<strong>ur</strong>s. Tillgänglighet<br />

är en viktig aspekt av ett systems tillförlitlighet så väl som av ett systems<br />

design. Ett otillgängligt system är ofta samma sak som inget system. Två aspekter<br />

av tillgänglighet är hjälpfunktionaliteten i ett program samt möjligheten att nå en<br />

internetbank. Genom en så kallad “Denial of Serice attack” (DoS) är det möjligt<br />

att arrangera en situation sådan att res<strong>ur</strong>sen är omöjlig att nå. Något som liknar en<br />

DoS kan dock vara tidpunkter då belastningen normalt är hög. [6]<br />

2.2 Konfidentialitet<br />

Uttrycket konfidentialitet innebär döljandet av information och res<strong>ur</strong>ser [6]. Behovet<br />

är störst i känsliga användningsområden; till exempel statliga-, industrieller<br />

bankapplikationer [2]. Vanligtvis när man vill förstärka konfidentialiteten vid<br />

kommunikation eller datalagring använder man kryptografi. Genom att kryptera<br />

data hoppas man kunna skydda den från insyn. Meningen är att endast den med rätt<br />

nyckel ska kunna läsa den data som lagrats eller skickats. En kryptografisk nyckel<br />

kontrollerar tillgången till data i klartext. Att nyckeln kontrollerar möjligheten<br />

att läsa data innebär att nyckeln själv behöver skyddas. Konfidentialitet innebär<br />

ibland även att existensen av data måste skyddas. För att ett företag ska kunna ha<br />

komplett systemsäkerhet vill de ofta skydda information om vilka system de har.<br />

Alla mekanismer som kräver konfidentialitet kräver stöd för detta från systemet.<br />

Antagandet är att de säkerhetstjänster som finns kan stödja sig på kerneln för korrekt<br />

data. Tillit och antaganden ligger till grund för konfidentialitetsmekanismer<br />

[6].<br />

2.3 Integritet<br />

Integritet refererar till trovärdigheten hos data och res<strong>ur</strong>ser. Vanligen diskuteras<br />

ämnet i termer av otillåten, olämplig eller felaktig förändring. Begreppet inkluderar<br />

även dataintegritet och källintegritet (identifikation och auktorisering). Centrala<br />

begrepp för integritet är trovärdighet och tillförlitlighet enligt Bishop [6].


2.4. TILLIT 13<br />

2.4 Tillit<br />

Tillit är i det här sammanhanget ett mångfasetterat begrepp. En användare måste<br />

lita på sitt system. Det innebär att användaren måste lita på tillverkaren av hårdvaran,<br />

all mjukvara samt även de rutiner företag har där data om användaren eller<br />

dennes system finns lagrad. Företagets kedja av tillit följer samma modell: företaget<br />

litar på sina anställda, hårdvaran, mjukvaran samt även sina kunder och övriga<br />

som kan ha känslig information om företaget eller dess produkter. Vissa delar<br />

av företagens kedja av tillit kan ordnas med hjälp av kontrakt, fysiska lås och<br />

säkerhetsrutiner. Detsamma gäller den enskilde privatpersonen. Oavsett h<strong>ur</strong> stor<br />

kunskap och iniativförmåga det finns kommer man alltid till en punkt där man<br />

måste börja ha tillit [6]. Det är inte alltid trivialt att välja vem som ska vara betrodd.<br />

Användarnamn och lösenord kan glömmas bort eller blir stulna. Det är inte<br />

alltid omöjligt att avlyssna krypterade överföringar. Då signalen måste omvandlas<br />

i flera steg på vägen mellan sändare och mottagare kan svagheter introduceras var<br />

som helst i kedjan enligt Anderson [2].<br />

Ett företag vill avgöra om en person är den han utger sig för att vara.<br />

Företaget har en policy att använda SSL-nycklar utfärdade av VeriSign<br />

– ett stort företag specialiserat på att utfärda dylika certifikat.<br />

Genom att använda detta system måste både företaget och kunden lita på att den<br />

dator de använder för att verifiera sina certifikat verkligen är administrerad av<br />

VeriSign och inte en illvillig tredje part [2]. Tillit baserar sig ofta på öppenhet,<br />

oavsett vilket system man väljer kommer det att ha säkerhetshål.<br />

Anderson, Bishop och Schneier har ofta sagt att datorsäkerhet är en iterativ process.<br />

Genom att ett system knäcks kan man hitta potentiella säkerhetshål i andra<br />

system. Det är bara genom att vara öppen med dessa säkerhetshål som man kan<br />

laga de fel som uppstår. Ett säkerhetssystem som är öppet för insyn blir säkrare<br />

ju öppnare det är. Det är på den grunden man kan bygga tillit. Ordet “tillit” i detta<br />

sammanhang betyder därmed “någon eller något som kan bryta vår säkerhet”.<br />

Genom att veta vem man litar på kan man skapa sig en bild av vilka hot som finns<br />

mot systemets integritet [2, 6].


14 KAPITEL 2. SÄKERHET<br />

2.5 Hotbilder<br />

Det finns ett flertal hot mot ett systems integritet. Ett hot är intrång, vilket innebär<br />

att en person utan ägarens eller användarens vetskap skaffar sig tillgång till<br />

systemet. Intrång i ett system kan ske på ett flertal sätt.<br />

En anställd på ett företag kan genom slarv eller illvilja ge bort ett lösenord. Ett<br />

exempel på slarv vore att skriva ner ett lösenord på en lapp och förvara denna<br />

under tangentbordet. Vid inbrott skulle en sådan lapp snabbt hittas.<br />

En svaghet i systemet kan utnyttjas för intrång eller stöld av information. Svagheter<br />

kan uppstå genom att en administratör inte stänger av tjänster som inte används.<br />

Det finns dock fall då vitala tjänster medför risker, om dessa risker inte uppmärksammas<br />

kan de vara hot mot företagets system.<br />

Svagheter i andras system kan medföra risker för det egna systemet. Skulle en<br />

attack genomföras mot ett externt system som det egna företaget litar på skulle<br />

det kunna innebära en mängd risker för den egna säkerheten. En Internet Service<br />

Provider (ISP) som blir hackad är ett konkret exempel. Eftersom en ISP är betrodd<br />

av systemet för att tillhandahålla tjänster så som en internetuppkoppling kan<br />

en man-in-the-middle attack genomföras (se 10).<br />

En malware kan bli installerad på användarens dator (se sida 7) och därmed medföra<br />

en rad risker.<br />

Avlyssning av den data som flödar till och från ett system är en annan hotbild.<br />

Data kan avlyssnas på ett flertal sätt i ett datorsystem: Malware kan användas<br />

för avlyssning av data. Ett sätt att genomföra detta är användandet av trojanska<br />

hästar. Dessa maskerar sig ofta som nyttinga program men utför alltid något som<br />

användaren inte tänkt sig. Syftet kan vara att avlyssna alla tangenttryckningar och<br />

lyssna efter användarnamn och lösenord. Skydd av lösenord är en av de viktigaste<br />

men samtidigt en av de svåraste utmaningarna enligt Anderson [2]. All data som<br />

flödar i systemet kan avlyssnas på detta sätt [2, 41].<br />

Data kan även avlyssnas elektroniskt antingen genom att man installerar någon<br />

form av avlyssningsmodul på en kabel eller genom beröringsfri mätning. Avlyssningen<br />

kan ske var som helst mellan användare, terminal och mottagare. Det<br />

är även möjligt att stjäla data som visas på en skärm med hjälp av beröringsfri<br />

mätning men det kräver avancerad utrustning för att vara effektivt.<br />

Ett vanligt hot mot ett system är dock legitima program som används på ett sätt<br />

som det inte var tänkt och därmed förorsakar risker för systemet [2].


2.6. IDENTIFIERING 15<br />

När det finns risk för avlyssning måste man bestämma sig för vad som är hemligt<br />

och inte, vilka skyddsåtgärder som är rimliga och vilka attacker som är troliga.<br />

Den data som är hemlig måste skyddas, antingen via kryptering eller på annat<br />

sätt. Telnet och HTTP, vilka är de två vanligaste protokollen som används över<br />

internet, kommunicerar okrypterat Användarnamn, lösenord och allt annat som<br />

skickas sänds i klartext. Avlyssning av informationen blir därmed trivial.<br />

Varje hotbild mot ett system måste följas av en åtgärdsplan och en bedömning av<br />

h<strong>ur</strong> troligt det är att en attack genomförs baserat på hotet. Ytterligare en bedömning<br />

av hotet är en ekonomisk bild – vad blir den ekonomiska skadan vid en attack?<br />

Vid en ekonomisk kalkyl bör ett “troligt” och ett “värsta” scenario tas fram. Om<br />

kostnaderna för åtgärderna är lägre än den ekonomiska skadan bör de genomföras<br />

[2].<br />

Slutligen bör sägas att det största hotet mot säkerheten hos ett system på ett företag<br />

alltid är en människa, användaren eller en betrodd anställd. Eftersom användarna<br />

är betrodda är det även de som utgör den största risken. En stor del av alla datorintrång<br />

och bedrägerier som sker på företag utförs av anställda eller före detta<br />

anställda. Dessa attacker går inte alltid att förutsäga eftersom de ofta beror på<br />

brister i mjuka värden som till exempel bristande ledarskap, lön, brist på visad<br />

uppskattning och allmänt missnöje [6, 41].<br />

2.6 Identifiering<br />

Ett system måste ofta identifiera vem som använder systemet, man vill begränsa<br />

tillgången till företagets res<strong>ur</strong>ser till de anställda eller till företagets kunder.<br />

Den vanligaste formen av identifiering är användarnamn och lösenord. En användare<br />

identifieras genom följande kriterier Användaren och Williams [6, 45]:<br />

1. Något du vet. Detta är en delad hemlighet, oftast ett lösenord eller en kod.<br />

2. Något du har. Till exempel en nyckel eller ett smart card. När man kombinerar<br />

med den första får man stark tvåfaktoridentifiering.<br />

3. Något du är. Till exempel fingeravtryck eller identifikation av en vakt. När<br />

man kombinerar denna med de två ovanstående får man stark trefaktoridentifiering.<br />

4. Var du är. Var man är kan innebära en viss terminal eller en viss position.<br />

Viss programvara kanske bara får användas från en viss terminal. En


16 KAPITEL 2. SÄKERHET<br />

anställd kanske inte får se viss känslig information på sin laptop om denne<br />

befinner sig på annan plats än på kontoret.<br />

En metod som ibland tillämpas är att man kombinerar den första med den sista:<br />

En viss användare får bara använda en viss res<strong>ur</strong>s från en viss dator, symboliserad<br />

av datorns IP-nummer. Svagheten i den här lösningen är att man litar på den dator<br />

användaren loggar in från samt att hon inte tappat kontrollen över sitt användarnamn<br />

och lösenord. Eftersom IP-nummer går att stjäla genom så kallad “spoofing”<br />

behöver angriparen inte göra något intrång i offrets dator. Resonemanget leder oss<br />

in på stark identifiering och h<strong>ur</strong> detta kan lösas i praktiken.<br />

2.7 Stark identifiering<br />

I avsnitt 2.6 diskuterades olika former av identifiering och användarverifikation.<br />

Stark identifiering uppnås genom en kombination av delarna: något du vet, något<br />

du har, något du är samt var du är (se def. i avsnitt 2.6). Tvåfaktoridentifiering uppnås<br />

genom att använda två av delarna. Trefaktoridentifiering genom att kombinera<br />

tre och fyrfaktoridentifiering uppnås genom att kombinera alla fyra. Exemplet på<br />

sida 9 visade på en metod för inloggning som är starkare än ett vanligt användarnamn<br />

och lösenord. Det tillvägagångssätt man hade valt med hjälp av säkerhetsdosan<br />

var att förstärka den gemensamma kunskapen (något man vet) genom<br />

att kombinera med den fysiska delen (något man har). Kombinationen uppstår<br />

genom att man visar att man har rätt dosa och kan använda den. Användningen<br />

av den personliga säkerhetsdosan måste alltså även den vara skyddad genom till<br />

exempel ett lösenord. Trots att man inte blandar in biometrisk information kan<br />

en långt bättre säkerhet än den traditionella användare/lösenordlösningen uppnås.<br />

Tillförlitlig identifikation är ofta både svårt och opraktiskt, alla metoder har sina<br />

svagheter. Den vanligaste formen av identifiering är användarnamn och lösenord<br />

– en form av identifiering som är väl känd och lätt att förstå. Nackdelen med<br />

användarnamn och lösenord är att säkerheten är avhängig h<strong>ur</strong> bra lösenordet är<br />

uppbygd. Ett abstrakt lösenord som är svårt att gissa och svårt att generera är ett<br />

bra lösenord. Tyvärr är sådana lösenord svåra att komma ihåg så användare tenderar<br />

att välja lösenord som är allt för enkla, till exempel namnet på ett husdj<strong>ur</strong><br />

eller familjemedlem eller skriver upp lösenordet på en lapp. För att undkomma<br />

dessa enklare fällor används stark identifiering. Det finns ett flertal former, här<br />

kommer några att diskuteras.


2.7. STARK IDENTIFIERING 17<br />

2.7.1 Smartcards<br />

En väl spridd säkerhetslösning är smartcard-lösningar. Smartcards används för att<br />

identifiera personer mot system. Användaren använder ett ID-kort med en inbyggd<br />

krets vilken identifierar honom eller henne mot systemet. Det finns många olika<br />

lösningar på marknaden idag. Ett exempel är “SafeGuard PrivateCrypto” från Utimaco.<br />

Denna lösning används till bland annat hårddiskryptering. Ett smartcard är<br />

per definition en passiv lösning. Det får inte ha förmåga att ta kontrollen över<br />

systemet.<br />

Ett Smartcard används för stark identifiering av personer. Lösningen kräver dock<br />

ett fysiskt kort som användaren måste bära med sig. Till kortet finns det även<br />

ett lösenord vilket även det måste skyddas. För denna teknik finns många starka<br />

argument. Först och främst är den enklare än användarnamn/lösen vilket är det<br />

förhärskande säkerhetsparadigmet idag. Användaren kan helt enkelt se det som<br />

att hennes användarnamn ersätts av det kort hon använder. För att identifiera sig<br />

mot ett smartcard används lösenord. En stor fördel är att kortet (precis som en<br />

vanlig nyckel) går att låsa in i ett kassaskåp. En annan är att kortet går att byta ut<br />

eller ersätta om det komprometteras eller tappas bort.<br />

Ett problem med smartcard-system är att säkerhetskorten går att tappa bort. Ytterligare<br />

ett problem är att ett smartcard identifierar kortet, inte användaren. Eftersom<br />

det inte finns något effektivt sätt att hindra detta är det många som istället<br />

argumenterar för biometriska system.<br />

2.7.2 Biometriska system<br />

Biometriska system blir allt mer populära. De faller under kategorin “något du är”<br />

(se sida 15) och understödjer därför identifiering av människor. Bruce Schneier<br />

säger att biometriska system är användbara men de inte är nycklar. En nyckel<br />

karaktäriseras enligt Schneier av att [37]:<br />

• Den är slumpmässig.<br />

• Den kan hållas hemlig.<br />

• Den kan uppdateras eller förstöras.<br />

Biometrisk data saknar samtliga dessa egenskaper men de är användbara som ersättning<br />

för en skriven signat<strong>ur</strong> eller en PIN samt när kopplingen mellan använ-


18 KAPITEL 2. SÄKERHET<br />

daren och den som verifierar signat<strong>ur</strong>en är säker [2, 9]. Biometri är även användbart<br />

när man bara behöver en signat<strong>ur</strong> vilken är svår att förfalska [2].<br />

Kroppsdelar och biologisk information så som DNA går inte att tappa bort. Informationen<br />

är dessutom strikt personligt identifierande. Den vanligaste typen av<br />

biometrisk inloggning är fingeravtryckssystem. Anledningen är ofta ekonomisk<br />

(fingeravtryksläsare är förhållandevis billiga) men även att det är lättare att acceptera<br />

en fingeravtrycksscanner än till exempel en retinascanner [2].<br />

Det finns flera typer av biometriska system, nedan följer ett axplock:<br />

Ansiktsigenkänning. En person identifieras genom till exempel mönstermatchning<br />

av ansiktet mot en intern databas.<br />

Röstigenkänning. Fungerar på samma sätt som ansiktsigenkänning förutom att<br />

mönstermatchningen sker på ett röstprov.<br />

DNA-analys. Innebär att man genom biomassa från en individ till exempel blod<br />

eller hudavskrap kan identifiera denne.<br />

Retinakontroll. En person identifieras via det unika mönstret av blodkärl som<br />

finns i människans ögonbotten.<br />

Handavtryck. En person identifieras av att ett avtryck av hela handen används.<br />

Fingeravtryck. En person identifieras genom sitt fingeravtryck.<br />

Under normal drift kan två typer av fel uppkomma: Falsk acceptering och falskt<br />

avslag. Falsk acceptering innebär att systemet felaktigt tror att en person är någon<br />

hon inte är. Felet är ekvivalent med att bli accepetarad med falskt ID-kort. Falskt<br />

avslag är när en person med legitim tillgång till systemet blir nekad. Anderson<br />

kallar dessa två för bedrägeriratio (Eng. fraud rate) och förolämpningsratio (Eng.<br />

insult rate) [2].<br />

Alla metoder för identifiering är felbara men de biometriska metoderna är ofta<br />

antingen känsliga för förändringar, osäkra eller lättl<strong>ur</strong>ade.<br />

Ålder påverkar de flesta typer av biometriska system; alla delar av kroppen i åldras<br />

och förändras med tiden. En användare kan dessutom råka ut för en olycka som<br />

gör identifikation via en viss biometrisk metod temporärt eller permanent omöjlig.<br />

Biometrisk data har en del egenskaper som gör att den är direkt olämplig som nyckel:<br />

Biometrisk data är inte hemlig. Om den biometriska signat<strong>ur</strong>en blir stulen är<br />

den inte utbytbar. De är inte heller slumpmässiga. Matsumoto et. al. listar ett antal


2.7. STARK IDENTIFIERING 19<br />

attacker mot fingeravtrycksläsare som visar på dessa brister. Den mest drastiska<br />

attacken är att ett finger kan skäras av från kroppen [21]. Attacken är ett exempel<br />

på att starkare identifiering kan ge upphov till mer drastiska eller våldsamma sätt<br />

att bryta sig in i systemen.<br />

Ett rejält sår i ett finger från till en kökskniv eller en het platta kan under en tid<br />

göra fingeravtryck på ett eller flera fingrar helt obrukbara som identifikationsmedel.<br />

Fingeravtrycksläsare är dessutom ofta lätta att l<strong>ur</strong>a. Ett fingeravtryck är<br />

inte speciellt svårt att få tag på, det som egentligen behövs är lite hjälp från “insidan”,<br />

antingen medveten genom att en person låter någon kopiera ett giltigt fingeravtryck<br />

eller genom att man stjäl det till exempel från ett glas som offret använt.<br />

Matsumoto och senare även Sandström har demonstrerat metoder för att utföra<br />

attacker mot fingeravtrycksläsare [21, 35].<br />

Röstigenkänning är mer otillförlitliga än de övriga eftersom metoden är känslig<br />

för till exempel sjukdomar eller alkoholpåverkan. Om en person är alkoholpåverkad,<br />

äter starka mediciner eller bara lider av en förkylning kan det alltså hända att systemet<br />

nekar personen tillträde enligt Anderson [2]. Ansiktsigenkänningssystem är<br />

opraktiska eftersom de ofta misslyckas. Systemet är ungefär lika ineffektivt som<br />

en otränad människa. DNA-analys är opraktiskt, det kan ta flera timmar för en exakt<br />

analys, dessutom måste den idag ske manuellt. DNA som identifieringsmetod<br />

för datorsystem hör därmed framtiden till. Retinakontroll är visserligen oerhört<br />

exakt, men vi som människor är ofta misstänksamma mot den utrustning som<br />

finns för kontroll idag. Handavtrycksläsare är skrymmande och ger en högre grad<br />

av felaktiga identifieringar än fingeravtryck [2].<br />

Vidare upplevs många av de metoderna för biometrisk identifiering som kränkande<br />

eller skrämmande. På grund av den höga graden misslyckade identifieringar rekommenderar<br />

Microsoft att ytterligare åtgärder, till exempel smartcards skall användas<br />

för att garantera stark identifiering [27, 28]. Det finns dock exempel på<br />

när kombinationer av biometriska system har använts för identifikation men där<br />

resultatet blivit att den totala mängden misslyckade identifieringar ökat [2]. Det<br />

händer att biometrisk data används som lösenord men användaren kan inte välja<br />

ett svagt fingeravtryck på samma sätt som hon kan välja ett svagt lösenord. Om<br />

den biometriska signat<strong>ur</strong>en blir stulen går den inte att byta ut [2].


20 KAPITEL 2. SÄKERHET<br />

2.8 Kryptering<br />

Kryptering av meddelanden är en av de äldsta metoderna för att skicka konfidentiell<br />

data över en publikt tillgänglig kanal. Olika strategier har förekommit ända<br />

sedan antiken. Idag använder privatpersoner kryptering för bland annat e-handel<br />

och i vissa fall e-post när konfidentialitet är prioriterat.<br />

En person som visat sig viktig för utvecklingen av de kryptografiska metoderna<br />

är Auguste Kerckhoffs. Han slog fast några av de mest citerade principerna för<br />

kryptografiska system [15]:<br />

1. Systemet måste vara svårt om än inte matematiskt omöjligt att dechiffrera.<br />

2. Säkerheten får inte ligga i systemet, det ska kunna bli stulet av fienden utan<br />

att det skapar problem.<br />

3. Nycklar måste vara lätta att byta och minnas utan att de ska behöva skrivas<br />

ner och de måste vara lätta att dela och modifiera.<br />

4. Systemet måste vara portabelt och det får inte kräva flera närvarande personer<br />

för att användas.<br />

5. Systemet måste gå att applicera för telegrafkommunikation.<br />

6. Beroende på de omständigheter under vilka systemet appliceras måste det<br />

vara lätt att använda systemet – det ska varken behöva belasta sinnet eller<br />

kräva en lång lista med regler.<br />

Den allmänna uppfattningen om Kerckhoffs princip är att hemligheten ska ligga<br />

i nyckeln – inte i algoritmen. Principen, ibland citerad som Kerckhoffs andra lag,<br />

citeras därför ofta som stöd för att krypteringsalgoritmer ska vara öppna. Tanken<br />

är dock att algoritmen ska kunna ses som öppen utan att säkerheten försvagas, inte<br />

att den nödvändigtvis måste vara det. Enkelheten hos systemen är idag intressant<br />

<strong>ur</strong> synvinkeln att systemen ska vara översiktliga och därmed möjliga att testa i sin<br />

helhet.<br />

Efter att arbetet med kryptering öppnades har säkerheten hos algoritmerna stärkts.<br />

Enligt både Anderson och Bishop har de algoritmer för kryptering som visat<br />

sig mest motståndskraftiga mot olika attacker har varit de som är offentliga eller<br />

baserade på öppen källkod [2, 6]. I enlighet med Kerckhoffs principer är detta<br />

ett förväntat resultat. Eftersom algoritmerna kan granskas av alla som kan tänkas<br />

vara intresserade blir effekten att de granskas hårdare och eventuella svagheter<br />

kan elimineras snabbare [2].


2.8. KRYPTERING 21<br />

Alla kryptosystem är enligt Stinson en femtupel (M, C, K, E, D) där följande<br />

egenskaper uppfylls [40]:<br />

1. M är en ändlig mängd läsbar text.<br />

2. C är en ändlig mängd möjlig chiffertext.<br />

3. K är en ändlig mängd nycklar (nyckelrymd) K.<br />

4. För varje K ∈ K finns det en krypteringsregel eK ∈ E och en motsvarande<br />

avkrypteringsregel dK ∈ D. Varje ek : M → C och dK : C → M är<br />

funktioner sådana att d(eK(x)) = x för varje läsbar text x ∈ M.<br />

Egenskap 4 säger att en läsbar text x som krypteras med eK och avkrypteras med<br />

dK ger orginaltexten x som resultat [40].<br />

Det finns två huvudsakliga typer av kryptering: Symmetrisk och assymetrisk. I<br />

symmetrisk kryptering använder både sändare och mottagare samma nyckel (se<br />

fig<strong>ur</strong> 2.2a). Utmaningen är att distribuera nycklar mellan kommunicerande parter.<br />

En lösning är att distribuera nyckeln med hjälp av assymetrisk kryptering [40].<br />

När en säker kanal för utbyte av nyckel inte finns tillgänglig är symmetrisk kryptering<br />

inte alltid möjlig eller praktisk. Assymetrisk kryptering använder en tvådelad<br />

nyckel. Teorin bygger på ett svårlöst matematiskt problem med en bakdörr<br />

som gör att problemet kan lösas enkelt med hjälp av nyckeln till bakdörren. Det<br />

grundläggande villkoret är att givet krypteringsfunktionen eK ska det vara osannolikt<br />

att man ska kunna hitta avkrypteringsfunktionen dK [40].<br />

Publik-nyckelkryptering är en lösning som används idag (se bild 2.2b). Nyckeln<br />

utgörs av ett nyckelpar Ke och Kd. Den offentliga nyckeln Ke distribueras<br />

fritt medan den privata delen (Kd) hålls hemlig. När person A skickar ett meddelande<br />

till person B krypterar han meddelandet med Bs offentliga nyckel M ′ 1 =<br />

crypt(KeB , M1). Person B kan sedan läsa meddelandet genom att köra M1 =<br />

decrypt(KdB , M ′ 1) [6, 40]. Utmaningen i publik-nyckelkryptering är att hålla de<br />

privata nycklarna konfidentiella under hela deras livstid samt att distribuera dessa<br />

på ett tillförlitligt sätt [6]. Nackdelen med assymetrisk nyckelkryptering är att den<br />

är cirka 1000-1500 gånger långsammare än kryptering med symmetriska nycklar<br />

[22, 40].<br />

Assymetrisk nyckelkryptering går även att använda till signering av data. Genom<br />

att använda metoden till att skapa ett certifikat kan integritet hos data garanteras.<br />

I X.509 skapas ett certifikat genom att en hash beräknas av den aktuella identiten,<br />

varefter hashsumman krypteras [12]. Ett certifikat används för att knyta en


22 KAPITEL 2. SÄKERHET<br />

identitet till en viss data. Vanligtvis används certifikat vid nyckelsignering då man<br />

vill certifiera att en viss kryptografisk nyckel kommer från en viss person. Certifieringen<br />

används då för att lösa problemet med distributionen av publika nycklar.<br />

[40, 6]<br />

(a) Symmetrisk kryptering, både sändare och mottagare använder samma nyckel för alla operationer.<br />

(b) Assymetrisk kryptering med hjälp av publik-nyckelkryptering.<br />

Fig<strong>ur</strong> 2.2: Kryptering och nyckeldistribution i symmetrisk och assymetrisk<br />

kryptering.<br />

Ett exempel på symmetrisk kryptering är Data Encryption Standard (DES), från<br />

början en militär hemlighet. DES knäcktes kort efter att den släpptes till allmänheten<br />

[6, 8]. Eftersom DES därmed ansågs vara en osäker algoritm utvecklades<br />

dess ersättare, 3DES (även denna en symmetrisk krypteringsalgoritm) [6]. Den<br />

huvudsakliga kritiken mot DES är dess korta nyckellängd (56 bitar). Advance<br />

Encryption Standard (AES) lanserades år 2000 och är ersättaren till dessa två.


2.8. KRYPTERING 23<br />

Utvecklingen av AES var öppen till skillnad från DES. AES är ett blockchiffer<br />

som klarar upp till 256 bitars nycklar. DES, 3DES och AES publicerades av National<br />

Institute for Standards and Technology (NIST) [32, 20].<br />

Ett exempel på assymetrisk-nyckelkryptering är RSA. Säkerheten i RSA ligger i<br />

antagandet att krypteringsfunktionen är enkelriktad på så sätt att det är komputationellt<br />

osannolikt för en angripare att avkryptera chiffret. En definition på RSA<br />

tagen <strong>ur</strong> Stinson [40] återfinns nedan.<br />

Låt n = pq, där p och q är primtal. Låt M = C = Zn<br />

<br />

<br />

K = (n, p, q, a, b) : n = pq, ab ≡ 1(mod φ(n))<br />

för K = (n, p, q, a, b), definiera<br />

eK(x) = x b mod n<br />

samt<br />

dk(y) = y a mod n<br />

(x, y ∈ Zn)<br />

Värdena n och b är publika och p, q, a är privata.<br />

En attack mot RSA är att faktorisera n. Säkerheten är därför avhängig att n = pq är<br />

så stor att en faktorisering blir komputationellt opraktisk. En annan attack vore att<br />

att beräkna φ(n). Denna attack vore dock inte lättare att utföra än en faktorisering<br />

av n [40].<br />

Det intressanta med kryptering är att öppenhet om algoritmerna har givit upphov<br />

till säkrare system, tvärt emot vad vissa trodde. Genom att fler kunnat titta på källkoden<br />

har fler kunnat hitta säkerhetsluckor och det har i sin t<strong>ur</strong> gett en utveckling<br />

av området i sin helhet enligt Anderson och Bishop[1, 6].


24 KAPITEL 2. SÄKERHET<br />

2.9 Slumptalsgenerering<br />

Säkerheten hos många kryptosystem är beroende av sättet på vilket man genererar<br />

krypteringsnycklar. Till detta används ofta slumptal. När slumptal genereras är<br />

det viktigt att det utförs på ett sådant sätt att en utomstående betraktare inte kan<br />

gissa vilket tal som kommer här näst. Den inbyggda funktionen i till exempel C<br />

eller Java är inte nog exakt (om man inte använder sec<strong>ur</strong>eRandom) för de flesta<br />

kryptografiska ändamål, framför allt om man använder systemets inbyggda klocka<br />

som bas för att generera talet. En säkrare metod för att skapa ett initieringsfrö är<br />

att ta det från något med en nat<strong>ur</strong>lig entropi. En lösning som används i Pretty Good<br />

Privacy (PGP) är att låta användaren röra på musen och trycka på tangentbordet<br />

lite slumpartat. En annan källa till nat<strong>ur</strong>lig entropi är ljudportar och olika former<br />

av bruskällor [2, 6, 9, 22, 40].<br />

2.10 Hashning<br />

Hash-nummer används för märkning av data. De vanligaste hash-metoderna är<br />

MD5 och SHA-1, båda bygger på MD4. En hashmetod tar en mängd data och<br />

beräknar ett unikt kontrollnummer för denna.<br />

Definition från Stinson [40]: En hashfunktion h är enkelriktad<br />

om och endast om, givet ett sammandraget meddelande<br />

z, det är komputationellt osannolikt att man skall<br />

finna ett meddelande x sådant att h(x) = z<br />

Med “komputationellt osannolikt” menas att det är osannolikt att lyckas inom<br />

rimlig tid. Wang et. al. skapade 2004 en algoritm för att hitta krockar i MD4 och<br />

MD5 på relativt kort tid [43]. Under 2005 visade Klima dessutom att det är möjligt<br />

att hitta krockar i MD5-nycklar på en enkel laptop under rimlig tid [16].<br />

SHA-1 genererar ett 160 bitars tal av en obegränsad mängd data. Det skulle ta 2 80<br />

operationer att hitta två meddelanden som ger samma kontrollsiffra. Om det inte<br />

finns någon algoritm sådan att det går att finna två lika nycklar på mindre än 2 80<br />

operationer skulle SHA-1 vara krockfri [2, 20, 40].<br />

Under februari 2004 lyckades det kinesiska forskarteamet från Shandong<strong>universitet</strong>et<br />

(Wang et. al.) visa att det finns en algoritm för att hitta krockar i SHA-1 på<br />

2 69 operationer – cirka 2000 gånger snabbare än tidigare [44]. Även om skillnaden<br />

är stor är det fortfarande bara på gränsen till möjligt att hitta två identiska nycklar.


2.11. PUBLIC KEY INFRASTRUCTURE 25<br />

Då det nu finns en attack mot SHA-1 innebär att det är dags att byta till nya<br />

lösningar. Beviset berör inte andra metoder än SHA-1 och till exempel SHA-256<br />

anses fortfarande vara säker.<br />

2.11 Public Key Infrastruct<strong>ur</strong>e<br />

Public Key Infrastruct<strong>ur</strong>e (PKI) är en kombination mellan mjukvara, krypteringsteknologi<br />

och tjänster som möjliggör en högre säkerhet för kommunikation och<br />

affärstransaktioner över Internet [12, 9]. PKI är en integration av digitala certifikat,<br />

publik-nyckel kryptering och certifikats verifikation som tillsammans skapar<br />

en total säkerhetsarkitekt<strong>ur</strong>. PKI skyddar informationen på flera olika sätt:<br />

Verifierad identifikation. Certifikat tillåter användare och organisationer att verifiera<br />

båda parter i en internettransaktion.<br />

Verifiera integriteten. Certifikat försäkrar integriteten av data och förhindrar att<br />

data har ändrats eller blivit felaktigt under transaktionen.<br />

Skyddar data. Certifikat bevarar konfidentialitet hos data genom att den krypteras<br />

innan transaktionen.<br />

Auktoriserad tillgång. PKI lösningar kan ersätta användaridentiteter och lösenord<br />

för att förenkla inloggningsförfarande över intranät.<br />

Stödjer inte förnekande. Certifikat validerar användarna vilket senare försvårar<br />

förnekelser.<br />

För att en organisation skall kunna implementera PKI och fungera som en Certificate<br />

Authority (CA) finns det två olika möjligheter: Stängd eller öppen PKI.<br />

I det första fallet skapar företaget sin egen nyckel och tillhandahåller denna till<br />

berörda parter. Den andra versionen är att man litar på ett externt företag. Det<br />

externa företaget tillhandahåller certifikatet och bestyrker dess äkthet. Några exempel<br />

på företag som tillhandahåller signerade certifikat är VeriSign, Thawte och<br />

Posten. Bilden på sida 22 visar h<strong>ur</strong> en publik-nyckel-server metod kan användas<br />

vid assymetrisk kryptering.


26 KAPITEL 2. SÄKERHET<br />

2.12 Mjukvarans och hårdvarans roll i ett system<br />

Hårdvaran har framför allt två huvudfunktioner att uppfylla i ett system: Dels<br />

ska den vara den miljö i vilken mjukvaran körs och dels har den till uppgift att<br />

tillhandahålla tjänster vilka mjukvaran utnyttjar.<br />

Normalt är hårdvaran dedikerad till en enda sak: Ett grafikkort har till uppgift att<br />

visa grafik och utföra en del beräkningar för denna, en hårddisk lagrar data och<br />

en processor utför addition, subtraktion och förflyttningar av data. Hårdvara är<br />

alltså statisk i normalfallet. Dess inflexibilitet är både en för- och en nackdel <strong>ur</strong><br />

ett säkerhetsperspektiv. Fördelen är att det blir svårare att attackera olika delar så<br />

som processor, närtverkskort och grafikkort. Nackdelen är att det inte alltid går att<br />

uppdatera hårdvara på ett enkelt sätt. Om en attack utförs mot en processor som<br />

använder HyperThreading skulle en uppdatering innebära ett byte av processor.<br />

Grunwald et. al. beskrev 2002 en attack mot denna arkitekt<strong>ur</strong> vilken fungerade<br />

som en DoS attack [10]. Vidare har Colin Percival nyligen publicerat en artikel om<br />

h<strong>ur</strong> det genom en timingattack är möjligt att stjäla SSL och RSA nycklar direkt<br />

<strong>ur</strong> processorns cache [34]. När problem med hårdvara upptäcks går det i bästa fall<br />

att lösa via operativsystemet i annat fall får man stänga av den funktionalitet som<br />

äventyrar säkerheten om det är möjligt.<br />

När hårdvaran hotas att permanent förstöras eller komprometteras uppkommer<br />

de största riskerna, både för data- och systemintegritet. Ponera om en illvillig programmerare<br />

lade in en bit kod i moderkortet som gjorde så att all data som flödade<br />

genom minnet exponerades genom nätverkskortet och ut på nätverket. Attacken<br />

skulle inte kunna upptäckas annat än från utsidan av systemet. En annan risk vore<br />

att ett virus förstörde hårdvara, till exempel en hårddisk genom att radera dess<br />

MOS-krets.<br />

Virus som förstör data eller hårdvara har funnits länge. CIH (även kallat Chernobyl)<br />

är ett exempel på ett sådant. Viruset skapades av Chen Ing-hau 1998. En av<br />

dess versioner skadar CMOS på moderkortet. Även om det här viruset inte är något<br />

större hot idag visar det på att hårdvara kan skadas och till och med förstöras<br />

av malware, även utan direkt inverkan av användaren [46]. Vid designen av ett<br />

system görs en avvägning mellan tillgänglighet och säkerhet. Det kan ibland vara<br />

nödvändigt att sätta in begränsningar i tillgängligheten för att förstärka säkerhetsaspekterna<br />

och skydda data och system. Ett alternativ som är vanligt idag är att<br />

förändringar i BIOS måste ske före uppstart av operativsystemet. För att begränsa<br />

BIOS uppdateringar sätter man ibland en bygling på moderkortet. Vid normaldrift<br />

sitter bygeln i ett läge men måste kopplas om när det är dags för uppdatering.<br />

Meningen är att en användare inte av misstag ska kunna göra förändringar i vitala


2.13. TRUSTED HARDWARE OCH TRUSTED COMPUTING 27<br />

funktioner i hårdvaran samt att om en förändring i BIOS måste ske innan operativsystemets<br />

uppstart blir det svårare för virus att attackera denna funktionalitet.<br />

Om BIOS som standard går att uppdatera via mjukvara måste operativsystemet ta<br />

hand om och skydda mot otillåten förändring.<br />

Konfidentialitet, integritet och tillgänglighet påverkar och påverkas av hårdvarans<br />

flexibilitet. Ett för flexibelt system kan äventyra systemets integritet genom att<br />

öppna det för fjärrattacker. Ett system som saknar flexibilitet kan sänka tillgängligheten<br />

om hårdvaran behöver uppdateras eller bytas ut. Flexibiliteten i sig kan<br />

alltså vara en grund till att det är svårt att ha tillit till dagens informationsteknologi<br />

[18]. En av operativsystemets roller är därför att skydda hårdvaran från den här<br />

typen av attacker. Problemet <strong>ur</strong> operativsystemets synvinkel är att hårdvara startas<br />

före mjukvara (dvs operativsystem, drivrutiner osv). Operativsystemet kan därför<br />

inte på egen hand ge ett fullgott skydd mot rena hårdvaruattacker.<br />

2.13 <strong>Trusted</strong> Hardware och <strong>Trusted</strong> <strong>Computing</strong><br />

<strong>Trusted</strong> Hardware och <strong>Trusted</strong> <strong>Computing</strong> bygger på antagandet att bristande trovärdighet<br />

ärvs mellan olika versioner av program och att detta även gäller för<br />

olika program– och hårdvarulager. Om en drivrutin inte är tillförlitlig kan inte<br />

de program som använder denna vara det heller enligt Bishop och TCG [6, 42].<br />

Enligt principen bakom <strong>Trusted</strong> <strong>Computing</strong> (TC) gäller regeln även åt andra hållet:<br />

En tillförlitlig mjukvara kan inte byggas på en otillförlitlig hårdvara [42]. TC<br />

eftersträvar därför målet att skapa säker hårdvara vilken kan vara tillförlitlig <strong>ur</strong> en<br />

säkerhetsaspekt. Man hoppas på så sätt skapa en kedjereaktion där hela systemet<br />

kan bli betrott. Under rapportens tidigare delar har det påpekats att:<br />

• Konfidentialitet, integritet och tillgänglighet är basen för dator- och datasäkerhet.<br />

• Tillit och trovärdighet är fundamentala begrepp, användare, administratörer<br />

och utvecklare måste ibland lita på att en programvara eller ett system tar<br />

hänsyn till de tre begreppen konfidentialitet, integritet och tillgänglighet på<br />

rätt sätt.<br />

• En betrodd part är någon som kan bryta vår säkerhet.<br />

• Hot är allt som riskerar att bryta mot något av de tre begreppen.<br />

• Stark identifiering, kryptering och dokumentsignering är hjälpmedel för att<br />

uppnå en bas för tillit.


28 KAPITEL 2. SÄKERHET<br />

• Attacker finns, sker och går inte alltid att skydda sig mot genom systemets<br />

design – trots stark identifiering och kryptering.<br />

Genom att befästa en <strong>Trusted</strong> <strong>Computing</strong> Base (TCB) vilken inkluderar alla skyddsmekanismer<br />

i ett system (hårdvara, mjukvara och firmware) vill man i TC skapa<br />

en bas för tillit enligt Bishop [6].<br />

För att en säkerhetsmekanism som till exempel en brandvägg ska vara effektiv<br />

måste den vara aktiverad redan innan nätverkskortets drivrutiner laddas in. Detta<br />

gäller så gott som alla säkerhetsrutiner. TC innebär att all mjuk- och hårdvara<br />

måste certifieras <strong>ur</strong> säkerhetssynpunkt. Certifieringen säger i detta fall att en hårdeller<br />

mjukvara fungerar på det sätt som den ska, utan att äventyra exekveringen av<br />

andra program [23, 42]. Även elektronikbranchen har pratat en tid om TC som ett<br />

alternativ till dagens paradigm med mjukvarubaserade säkerhetslösningar enligt<br />

Kocher [17]. En del av problematiken i TC är att befästa strukt<strong>ur</strong> i hårdvara som<br />

borgar för säkerhet. En viktig del är att skapa ett system som är litet nog för att<br />

det i sin helhet ska kunna vara föremål för analys och test. Tanken är att det ska<br />

vara möjligt att försäkra sig om systemets funktion. Genom att skapa ett enklare<br />

system ökar möjligheterna till test och verifikation, därmed kan en högre nivå<br />

av tillit uppnås. En avvägning kan dock komma att uppstå mellan enkelhet och<br />

funktionalitet [6].<br />

Ett område där tillit är ett centralt begrepp är e-handel. För att det ska kunna<br />

fungera behöves till exempel följande former av tillit:<br />

• Båda parter i ett e-handelsavtal måste veta att en överenskommelse har skett<br />

med rätt person.<br />

• Båda parter måste kunna lita på att den information som lagras i respektive<br />

system lagras på ett säkert sätt.<br />

• Båda parter måste kunna lita på båda systemens integritet.<br />

• I många fall krävs att man kan lita på att överföringen av data är privat och<br />

att mottagaren har tagit emot de meddelanden som skickas.<br />

Den springande punkten i e-handel är att båda parter måste lita på varandras system.<br />

Det är där TC blir aktuellt. Genom att båda parter vet att den andra använder<br />

ett system baserat på en TCB kan båda känna sig tryggare i transaktionen.


2.14. TRUSTED COMPUTING PLATFORM ALLIANCE 29<br />

2.14 <strong>Trusted</strong> <strong>Computing</strong> Platform Alliance<br />

<strong>Trusted</strong> <strong>Computing</strong> Platform Alliance (TCPA) är företaget som skapade standarden<br />

för en hårdvarubaserad säkerhetsmodul. Företaget bytte sedermera namn till<br />

<strong>Trusted</strong> <strong>Computing</strong> Group (TCG). <strong>Trusted</strong> Platform Module (TPM) kallas den<br />

mikrokontroller som ska fungera som huvudsakligt stöd till datorns övriga hårdvara.<br />

TPM Software Stack (TSS) är specifikationen över drivrutinsstacken för att<br />

kommunicera med en TPM. För att en TPM ska fungera med en PC krävs även<br />

en klientspecifikation för denna plattform. Även om TPM och TSS definierar de<br />

standarder som krävs brukar hela teknologin benämnas TCPA. När benämningen<br />

TCPA används är det alltså oftast TCGs koncept för TC och TCB som menas. Än<br />

så länge täcker specifikationen bara PC-datorer men det är meningen att den så<br />

småningom även ska täcka PDAer, mobiltelefoner och inbyggda system. Specifikationen<br />

säger vad en TPM ska innehålla samt h<strong>ur</strong> gränssnittet ska se ut.<br />

Kuhlman anser att en TPM kan liknas vid ett smartcard i det att den är passiv; den<br />

svarar på kommandon från CPUn och den försöker aldrig ta över kontrollen [18].<br />

Den innehåller dock funktionalitet för att stänga av sig själv och gå ner i testläge.<br />

Om så sker stoppas alla TPM-beroende processer. Förutom att den kan verifiera<br />

sin egen funktionalitet innehåller en TPM dedikerad hårdvara för kryptering och<br />

signering av data [42]. För kryptering ska en TPM innehålla [42]:<br />

• En slumptalsgenerator<br />

• Funktionalitet för att generera asymmetriska nycklar.<br />

• En processor för beräkning av asymmetrisk kryptering (RSA).<br />

För signering av data används SHA-1 (se avsnitt 2.10). Det finns även funktionalitet<br />

för att ge skydd från fysisk manipulation av hårdvara samt beräkningsbaserat<br />

skydd av intern och extern mjukvara. För att en TPM ska kunna användas<br />

krävs ett väl definierat gränssnitt mot operativsystemet. Eftersom TCPA är avsett<br />

att fungera oberoende av vilket operativsystem som ska köras på datorn måste<br />

uppgiften att göra en sådan specifikation ligga hos TCPA. Om specifikationen<br />

skulle göras av en operativsystemstillverkare skulle allt för stor del bli specialanpassat<br />

för deras system. Specifikationen för en TPM (TCPA v. 1.2b) innehåller<br />

ingen information om vad en processor ska innehålla annat än ett antal kontrollsignaler<br />

så som reset och clear – funktionalitet vilken normalt ingår i en processor<br />

[42].


30 KAPITEL 2. SÄKERHET<br />

En del av TPM-kretsens permanenta minne används för att lagra två 2048 bitars<br />

nyckelpar, dvs fyra nycklar. Det första nyckelparet skapas av tillverkaren. Nyckelparet<br />

är även en unik verifierare för chipet. Det andra genereras av användaren,<br />

när detta sker skapas även en hemlighet som krävs för att användaren ska kunna<br />

använda sin nyckel. Den första nyckeln kan användas för att verifiera systemet<br />

och den andra för att verifiera användaren. Ingen av nycklarna är dock portabla.<br />

De är alltså knutna till det system i vilket de skapades [42]. Ingen av de privata<br />

nycklarna lämnar någonsin TPM-kretsen och de blir inte synliga av någon annan<br />

användare eller program [18, 42].<br />

Under drift har en TPM även förmåga att skapa ett flertal extra privata och publika<br />

nycklar. Kretsen kan bland annat skapa nycklar för förflyttning av hemlig data<br />

samt för vissa applikationsspecifika transaktioner. Både nycklar som inte går att<br />

komma åt utanför kretsen samt nycklar för vanlig kryptering kan skapas [18, 42].<br />

Fig<strong>ur</strong> 2.3: Specifikationen avser de två delarna CRTM och TPM samt TSS<br />

(drivrutin). Bilden är anpassad från TCPA v.1.1b [42]


2.14. TRUSTED COMPUTING PLATFORM ALLIANCE 31<br />

Mjukvarudelen består av två typer: <strong>Trusted</strong> platform Support Service vilken implementerar<br />

komplexa funktioner som kräver multipla anrop till TPM-kretsen<br />

och symmetrisk krypteringsfunktionalitet. Den andra delen kallas “Core Root of<br />

<strong>Trusted</strong> Meas<strong>ur</strong>ement” (CRTM). CRTM lagras normalt i systemets firmware, till<br />

exempel BIOS. Syftet är att den ska starta i ett tidigt stadium av bootsekvensen<br />

och beräkna hashvärden av all kod som ska köras i systemet. Denna lagras sedan i<br />

TPM-kretsens minnen och stack. Idén är att man vill skapa en induktiv kedja från<br />

hårdvara upp till operativsystemet vidare upp i applikationerna [18, 42]. <strong>Trusted</strong><br />

Building Block i fig<strong>ur</strong> 2.3 på föregående sida är kombinationen av CRTM, TPM<br />

och kopplingen av dessa mot moderkortet [42]. För att TCPA ska vara så systemneutral<br />

som möjligt tas det ingen hänsyn till operativsystemssystemspecifika<br />

bootloaders [18, 42]. Kretsen och mjukvaran syftar alltså till att skapa en miljö<br />

där användarens hemligheter ska hållas konfidentiella där nycklar och signat<strong>ur</strong>er<br />

lagras i chippet och systemets integritet inte ska kunna komprometteras [18, 42].


Next Generation Sec<strong>ur</strong>e <strong>Computing</strong><br />

Base<br />

3<br />

Under 1998 diskuterades idén att göra Microsoft Windows till ett säkert operativsystem<br />

för första gången på allvar. Det dröjde dock till 2002 innan ett första<br />

förslag hade utarbetats. Förslaget fick kodnamnet Palladium och ingick i ett initiativ<br />

som Microsoft valde att kalla <strong>Trusted</strong> <strong>Computing</strong> (TC). Både förslaget och<br />

initiativet bytte sedermera namn. Palladium blev Next Generation Sec<strong>ur</strong>e <strong>Computing</strong><br />

Base (NGSCB) och <strong>Trusted</strong> <strong>Computing</strong> bytte namn till Trustworthy <strong>Computing</strong>.<br />

Eftersom NGSCB är ett produktnamn används det som benämning för<br />

teknologin i denna rapport. Förkortningen “TC” är däremot ett vedertaget uttryck<br />

inom forskning i sin betydelse <strong>Trusted</strong> <strong>Computing</strong> och används därför på detta<br />

sätt i rapporten. NGSCB är ett tillägg till Microsofts operativsystem. Lösningen<br />

är omfattande och involverar både hård- och mjukvara.<br />

Systemets är menat att förstärka möjligheterna till stark identifiering, skydd av<br />

känslig data samt skydd av upphovsrättsskyddat material [28, 24]. Dessa mål ska<br />

uppnås genom fyra huvuddelar [25]:<br />

• Stark processisolering – Vissa program får endast exekvera i en specifik del<br />

av minnet, fysiskt åtskilt och dolt från övrigt minne. Syftet är att programmets<br />

minnesbuffer inte ska kunna modifieras från övriga delar av systemet.<br />

• Förseglad lagring – Känslig data, till exempel speciell NGSCB-data, lagras<br />

krypterat.<br />

• Attestering (säker körning) – Attestering sker när en bit kod digitalt signerar<br />

och intygar att data kommer från en kryptografiskt identifierbar stack.<br />

• Säkra vägar till användaren – Till exempel krypterad kommunikation från<br />

tangentbord och mus.<br />

33


34 KAPITEL 3. NEXT GENERATION SECURE COMPUTING BASE<br />

Ur ett säkerhetsperspektiv hade det varit bäst om Windows och dess exekveringsstack<br />

designades om från grunden [23, 25]. Tyvärr skulle en sådan åtgärd<br />

innebära att alla program som vill dra nytta av NGSCB behöver skrivas om. Vidare<br />

skulle en sådan design medföra att bakåtkompatibiliteten helt eller delvis får<br />

stryka på foten. Enligt en tidig specifikation av NGSCB krävdes också att alla<br />

program specialskrevs för att kunna dra nytta av den funktionalitet NGSCB har<br />

att erbjuda. På grund av ett svalt mottagande från industrin ändrades detta och<br />

Microsoft valde istället att göra NGSCB till en form av ett säkerhetstillägg (se<br />

bild 3.1).<br />

Fig<strong>ur</strong> 3.1: Enligt Microsofts specifikation [28, 23] måste ett Nexus kunna kommunicera<br />

direkt med alla delar i ett system utom de processer som körs i user<br />

space.


En så kallad betrodd zon har blivit tillagd i det nya operativsystemet. Denna består<br />

av tre delar: betrodda agenter, en kärna kallad “Nexus”, samt hårdvarukryptering<br />

(se fig<strong>ur</strong> 3.1 på föregående sida). En betrodd agent kallad Nexus <strong>Computing</strong> Agent<br />

(NCA) är ett program, en del av ett program eller en tjänst som är verifierad av en<br />

betrodd källa. Den betrodda agenten fungerar som ett certifikat för att avgöra om<br />

ett program är vad det utger sig för att vara [25]. En huvudfunktion i ett Nexus<br />

är att det måste kunna attestera en NCA mot hårdvara samt lagra dess krypteringsnycklar.<br />

Ett Nexus måste kunna fråga operativsystemet om standardtjänster<br />

till exempel att öppna filer och skicka data över nätverket samt ta emot data från<br />

användaren (I/O). Nyckelförflyttning mellan olika NCA- och Nexusversioner är<br />

en standardtjänst för nyckelhanteringen och måste därför även den administreras<br />

och hanteras av ett Nexus. Eftersom operativsystem är multitrådade miljöer kommer<br />

det att vara nödvändigt att ett Nexus ska kunna dela sin tid mellan olika NCA.<br />

För att förstärka kopplingen mellan Nexus och NCA måste ett Nexus innehålla<br />

kod som går att duplicera mellan olika NCA. Koden i ett Nexus måste dessutom<br />

vara så enkel att den går att analysera och testa i sin helhet (se designprinciperna<br />

för TC på sida 27). En tanke är att det ska ska vara så enkelt att vem som helst<br />

skulle kunna skriva ett eget. Användare och utvecklare ska dessutom kunna starta<br />

vilket Nexus de vill [25]. På så sätt ökar systemets flexibilitet och användarnas<br />

valmöjligheter.<br />

Microsoft har redan från början diskuterat h<strong>ur</strong> stark identifiering av användaren<br />

kan ske. Två av deras artiklar diskuterar främst smartcards men även olika former<br />

av biometriska system för stark identifiering. På grund av de problem som finns<br />

med biometriska system rekommenderas att det alltid ska finnas backupsystem<br />

när dessa används för identifikation. [27, 28]<br />

För att lösningen ska fungera krävs stora förändringar i hårdvara. Enligt den information<br />

som Microsoft släppt ska huvuddelen av krypteringen ske i hårdvara till<br />

skillnad från nuläget då all kryptering sker i mjukvara. I dagens läge måste hårddiskryptering<br />

i realtid lösas genom en separat hård/mjukvarulösning. Den hårdvara<br />

som kommer att krävas för att NGSCB ska fungera är enligt Microsoft [23]:<br />

• Speciell processor för NGSCB.<br />

• Chipset (moderkort) specialanpassat för NGSCB.<br />

• En dedikerad SSC (Sec<strong>ur</strong>ity Support Component) baserad på specifikationen<br />

för TPM version 1.2.<br />

• Krypterade interaktionsverktyg (t.ex. Tangentbord och mus).<br />

• Krypterad videohårdvara inklusive grafikprocessor.<br />

35


36 KAPITEL 3. NEXT GENERATION SECURE COMPUTING BASE<br />

I de flesta fall måste tangentbord, mus, moderkort, processor och grafikkort bytas.<br />

Man har valt att till vissa delar följa standarden för <strong>Trusted</strong> Platform Module<br />

(TPM) och dess mjukvara från <strong>Trusted</strong> <strong>Computing</strong> Group (TCG) (se sid. 29 för<br />

en resumé av TCPA).<br />

Designen som den ser ut nu fokuserar till största delen på konfidentialitet och<br />

integritet. Tillgänglighetsaspekten kommer i andra hand. Det ska vara möjligt att<br />

via ett grafiskt användargränssnitt sätta upp regler för h<strong>ur</strong> de olika certifikaten och<br />

programmen ska kunna köras [25].<br />

Ett möjligt användningsområde för NGSCB är Digital Rights Management (DRM).<br />

DRM skapades för att skydda upphovsrättinnehavaren från illegal kopiering av<br />

dennes verk. Ett vanligt sätt att skydda digitala verk till exempel program är<br />

genom olika former av licensystem. Användes NGSCB skulle det vara möjligt<br />

att kryptera ett program så att det endast går att köra på den dator för vilken det<br />

är certifierat. Enligt Microsoft är DRM bara ett av de områden där NGSCB kan<br />

användas. Systemets huvudfunktion är dock att förstärka möjligheterna till stark<br />

identifiering och skydd av känslig data [28, 24].<br />

3.1 Hårdvarukrav i NGSCB<br />

NGSCB kräver specialiserad hårdvara, bland andra en TPM baserad på specifikationen<br />

från TCG. En TPM är en krets monterad på moderkortet (se avsnitt 2.14).<br />

Enligt TCPA-specifikationen är det menat att TPM-kretsen ska sitta på ett sådant<br />

sätt att den har nära kontakt med sydbryggan (se bilden nedan). Genom att låta<br />

TPM-kretsen vara sammankopplad med sydbryggan istället för till exempel direkt<br />

mot CPUn får man större modularitet och man blir inte blir bunden mot en viss<br />

processortillverkare. Tangentbord och mus kan kommunicera direkt med USBporten<br />

om TPM-kretsen är avslagen, annars är de tvingade att kommunicera via<br />

den TPM-kontrollerade porten [29]. Nedan beskrivs de delar vilka behövs för att<br />

NGSCB ska kunna användas.<br />

<strong>Trusted</strong> Platform Module<br />

En <strong>Trusted</strong> Platform Module (TPM), eller Sec<strong>ur</strong>ity Support Component (SSC)<br />

som Microsoft kallar det, är en mikrokontroller som sköter kryptering, nyckelgenerering<br />

och signat<strong>ur</strong>generering.


3.1. HÅRDVARUKRAV I NGSCB 37<br />

Fig<strong>ur</strong> 3.2: En ideskiss över h<strong>ur</strong> ett blockdiagram över ett moderkort kan tänkas se<br />

ut för moderkort baserade på AMDs processorer [29]. Bilden anpassad från [29]<br />

Infineon SLD 9630 TT 1.x [13, 14] eller Atmel AT97SC3201 [4] kan till exempel<br />

användas som Sec<strong>ur</strong>ity Support Component (SSC). SLD 9630 är liksom Atmels<br />

lösning, en mikrokontroller med inbyggd slumptals- och krypteringsnyckelgenerator<br />

(asymmetriska nycklar). Mikrokontrollern följer TCPA version 1.1b. Den<br />

innehåller även en hårdvarustödd hashgenerator (SHA-1, MD-5) samt en hårdvarustödd<br />

RSA-accelerator. Båda säger sig ha en “True Random Number Generator”.<br />

Specifikationen tillåter dock semi-slumptal så länge de kan få nya initieringsfrön<br />

baserade på äkta slumptal.<br />

Chipset<br />

Ett chipset på ett moderkort har till uppgift att sköta kopplingen mellan moderkortets<br />

olika delar. För att stödja krypterad kommunikation mellan moderkortets<br />

olika komponenter krävs ett chipset med inbyggt stöd för en TPM och krypterad<br />

processorkärna [24].


38 KAPITEL 3. NEXT GENERATION SECURE COMPUTING BASE<br />

Processor<br />

Ett krypterat instruktionsset krävs för att förhindra att hemligheter avslöjas via<br />

övervakning av minnesbuffer och processorcache [24, 23]. Eftersom endast vissa<br />

delar av minnet krypteras är det fördelaktigt med ett krypterat instruktionsset till<br />

processorn [24, 23].<br />

Videohårdvara<br />

Dataströmmen mellan moderkort och grafikkort krypteras. Målet är att data inte<br />

ska gå att läsa direkt från grafikkortets minnesbuffer [24, 23].<br />

I/O<br />

Kommunikation till och från mus och tangentbord ska krypteras [24, 23].<br />

3.2 Kompatibilitet<br />

Kompatibilitet mellan olika system samt mellan system och hårdvara är ofta en<br />

viktig fråga, både för företag och för privatkunder. H<strong>ur</strong>uvida NGSCB kommer att<br />

ge problem mellan olika system är en väl befogad fråga, speciellt då man från Microsofts<br />

sida ofta frångått standarder eller försökt skapa sina egna utan stöd från<br />

övriga industrin. Microsofts implementation av Java är ett exempel. Microsoft<br />

blev 1997 stämda av Sun och förlorade rätten att kalla sin produkt “Java”. Fördelen<br />

är i det här fallet att teknologin delvis är skapad i samarbete med Microsoft,<br />

att de inte har direkt kontroll över h<strong>ur</strong> utformningen av en TPM ska se ut, samt att<br />

utvecklingen av TCPA specifikationen till stora delar har varit en öppen process.<br />

3.3 System-system kommunikation<br />

Kommunikation mellan två system kommer att ske krypterat i den mån det är<br />

möjligt. Microsoft har än så länge inte kommenterat kommunikation mellan Windows<br />

och Linux. Hårdvarudelen är dock standardiserad, det kommer därför att<br />

vara möjligt att skapa öppna system som klarar att använda en SSC. Tyvärr är informationen<br />

om hårdvarustandarder inte helt offentlig ännu. Det enda som finns


3.4. NGSCB OCH TCPA 39<br />

är TCPA-standarden [42]. H<strong>ur</strong> standarden kommer att följas finns det ingen information<br />

om. Möjligheterna är dock intressanta <strong>ur</strong> ett företags synvinkel. En applikation<br />

skulle kunna designas på så sätt att ett dokument endast skulle kunna<br />

öppnas av en given person. Ett PDF-dokument skulle till exempel kunna knytas<br />

mot en given person eller ett givet antal personer. På så vis skulle till exempel en<br />

kund på en bank kunna försäkra sig om att dennes filer endast lästes av dennes<br />

handläggare.<br />

3.4 NGSCB och TCPA<br />

Enligt specifikationen av NGSCB vill Microsoft att deras SSC ska följa TCPA<br />

version 1.2 [23, 24, 28, 29]. TCPA 1.2 specificerar en krets kallad <strong>Trusted</strong> Platform<br />

Module samt dess drivrutiner. En SSC är därmed en TPM plus åtmindstonde vissa<br />

delar av den mjukvara som ingår i TCPA. Kretsen innehåller funktionalitet för att<br />

lagra och skapa kryptografiska nycklar. Den erbjuder även möjligheten att lagra<br />

en del övrig data på ett effektivt och säkert sätt [42].<br />

Kuhlmann liknar en SSC vid ett smartcard. Likheten ligger i att en SSC det att<br />

den är passiv; den svarar på kommandon från CPUn och den försöker aldrig ta<br />

över kontrollen [18]. En del av SSC-kretsens permanenta minne används för att<br />

lagra fyra 2048 bitars nycklar, dvs två nyckelpar. Det första nyckelparet skapas<br />

av tillverkaren. Detta nyckelpar är unikt för chipet. Det andra genereras av användaren,<br />

när detta sker skapas även en hemlighet som krävs för att användaren<br />

ska kunna använda sin nyckel. Dessa nycklar kan användas för att identifiera både<br />

maskinen och ägaren.<br />

Ingen av de privata nycklarna lämnar någonsin SSC-kretsen och de blir inte synliga<br />

av någon annan användare eller program [18, 42]. Kretsen kan bland annat<br />

skapa nycklar för förflyttning av hemlig data samt skapa nya nycklar av olika slag.<br />

Både nycklar som inte går att komma åt utanför kretsen samt nycklar för vanlig<br />

kryptering kan skapas. Idén är att man vill skapa en induktiv kedja av trovärdighet<br />

från hårdvara till operativsystemet vidare upp i applikationerna. Kretsen och dess<br />

mjukvara syftar till att skapa ett stöd för en miljö där användarens hemligheter ska<br />

kunna hållas konfidentiella och där systemets integritet inte ska kompromettera.


40 KAPITEL 3. NEXT GENERATION SECURE COMPUTING BASE<br />

3.5 NGSCB och öppna standarder<br />

Den hårdvara som används till NGSCB ska innehålla standardiserade anrop. Därför<br />

kommer det att vara möjligt med en version av “<strong>Trusted</strong> Linux”. Microsoft är<br />

dock väldigt fåordiga om h<strong>ur</strong> de kommer att stödja kommunikation mot andra operativsystem.<br />

Enligt kritikerna verkar det dessutom som om det i specifikationen<br />

över TCPA finns problem som innebär en risk att Gnu Public License (GPL) blir<br />

obrukbart. Anderson anser att NGSCB öppnar för stöld av öppen källkod genom<br />

att ett företag kan ladda hem koden, kompilera den som en krypterad NCA eller<br />

Nexus. Koden kan sedan distribueras och lagras krypterad. Eftersom hela förloppet<br />

är skyddat av stark kryptering försvårar det för upphovsmannen att övervaka<br />

sina intressen. [3]<br />

GPL bygger på att den som gör förändringar i öppen källkod publicerar sina förändringar<br />

under GPL. Genom att förändra en bit kod från ett GPL-projekt kan en<br />

programmerare kompilera sitt program och sedan avhålla sig från att publicera<br />

sitt arbete under GPL. Det som skett i detta fall är en stöld av offentlig egendom.<br />

Eftersom koden blir kompilerad med en TCPA-maskin är den starkt krypterad och<br />

ingen insyn i h<strong>ur</strong>uvida stulen kod använts är möjlig.<br />

De legala problemen med TCPA är därmed uppenbara. Standarden kan om den<br />

missbrukas innebära en risk för rättssäkerheten hos den enskilda människan. Vem<br />

som helst kan bli bestulen på upphovsrättsskyddat material i form av källkod. För<br />

ett företag skulle den direkta konsekvensen bli att om stöld av en företagshemlighet<br />

(källkod) sker eller om otillåten mjukvara används i produktion av innehåll<br />

kommer det inte att kunna upptäckas [5, 6].<br />

3.6 Systemets svagheter<br />

TCPA och därmed NGSCB är väldigt hårt knutet till kryptering. Om svagheter<br />

i någon av krypteringsalgoritmernas olika delar skulle upptäckas vore systemets<br />

integritet hotat. Det ställer stora krav på en öppen utveckling av systemet. Alla<br />

buggar och svagheter måste snabbt kunna hittas, offentliggöras och lösas [2, 6, 8,<br />

15].<br />

Stor vikt läggs vid att stoppa avlyssning av tangentbordet [23, 24, 26, 27, 28].<br />

Tangentbordsavlyssning nämndes som en hotbild med resulterande attack i avsnitt<br />

2.5. En svaghet som Microsoft tog upp under WinHec 2004 innebär trots allt en<br />

möjlighet till genomförandet av en sådan attack genom USB-porten. Attacken


3.6. SYSTEMETS SVAGHETER 41<br />

bygger på att USB inte ännu har fullt stöd för NGSCB eller TCPA.<br />

1. Ett virus tar sig in i datorn och programmerar om en av hårdvarorna kopplade<br />

till en USB port på så sätt att den kan köra som ett tangentbord.<br />

2. Angriparen kopplar <strong>ur</strong> det riktiga tangentbordet och låter den omprogrammerade<br />

hårdvaran agera tangentbord.<br />

3. Den omprogrammerade programvaran kan nu utföra attacken.<br />

Problemet är lösbart enligt Microsoft och man vill lösa det genom att göra förändringar<br />

i moderkortets USB-kontroller. Fördelen är att att användaren inte behöver<br />

skaffa nya USB-produkter [29].<br />

Systemets största långsiktiga svaghet ligger i det här fallet inte hos Microsoft eller<br />

TCG – utan hos tillverkarna av TPM-kretsar. Varken Atmel eller Infineon svarar<br />

på frågor om h<strong>ur</strong> de i sina mikrokontrollers genererar slumptal. Båda påstår dock<br />

att de kan generera äkta slumptal [14, 13, 4]. Enligt Schneier måste en äkta slumptalsgenerator<br />

uppfylla tre kriterier för att den ska duga till en kryptografisk användning<br />

[37]:<br />

1. En serie tal ser slumpmässig ut. Detta innebär att den klarar alla kända statistiska<br />

tester som kan användas för att avgöra detta, tex χ 2 -test.<br />

2. Ett tal genererat med algoritmen är oförutsägbart: Givet total kännedom om<br />

den algoritm och den hårdvara som används måste det vara komputationellt<br />

otroligt att förutsäga vad nästa slumptal kommer att vara.<br />

3. En sekvens ska inte vara reproducerbar på ett tillförlitligt sätt. Slumptalsgeneratorn<br />

ska ge olika resultat vid två olika körningar trots att man lägger<br />

in exakt samma startvärden.<br />

Om de två första egenskaperna uppfylls har man ett pseudoslumptal. Alla tre<br />

måste alltså uppfyllas för att man ska ha ett äkta slumptal [37]. Specifikationen<br />

över TCPA säger att det är önskvärt med äkta slumptal. Specifikationen säger<br />

dock att det är det acceptabelt att generera pseudoslumptal så länge kretsen när<br />

som helst kan få ett nytt initieringsfrö baserat på ett äkta slumptal [42]. Det är inte<br />

omöjligt att skapa äkta slumptal i elektronik. Ett sätt att göra det på är genom att<br />

mäta brusnivåerna hos en okopplad MOSFET transistor. Beroende på typ producerar<br />

MOSFET transistorer vitt eller rosa brus (även kallat “flicker noise”), enligt<br />

Sarpeshkar [36]. Fördelen med denna metod är att den går att använda som en<br />

integrerad del i en IC-krets. Enligt Kerckhoffs princip ska hemligheten ligga i


42 KAPITEL 3. NEXT GENERATION SECURE COMPUTING BASE<br />

nyckeln, inte i algoritmen. Om algoritmen blir stulen har därmed inte systemet<br />

tappat sin integritet [15, 40]. Därför kan det sägas att det är en svaghet att inte<br />

offentliggöra allt som rör systemets viktigaste delar.<br />

En något mindre långsiktig svaghet ligger i valet av hash-algoritm i TPM-kretsen.<br />

Enligt defininitionen för hashalgoritmer är de krockfria om och endast om man enbart<br />

kan hitta en krock med hjälp av brute force (se även sida 24) [6, 40, 37, 22].<br />

Wang et. al. [44] fann i Februari en svaghet i den mest använda hashalgoritmen,<br />

SHA-1. Det deras resultat tyder på var att det går att hitta krockar i hashsummorna<br />

på endast 2 69 operationer. Innan deras resultat kom var det bara brute-force<br />

attacker som fungerade. Dessa gav en hastighet av 2 80 . Även om uppsnabbningen<br />

är enorm tar det ändå väldigt lång tid att beräkna så många nycklar. Om resultatet<br />

stämmer måste man ändra TCPA-standarden till något bättre. Lyckligtvis finns det<br />

alternativ, bland andra SHA-256, vilken fortfarande anses säker.<br />

Slutligen ska påpekas att NGSCB inte begränsar körandet av redan certifierad<br />

mjukvara. Om en script-miljö som Visual Basic eller Java tillåts kan det innebära<br />

en risk när programmen används på ett legitimt sätt för att skapa säkerhetsproblem.<br />

Hotet nämns under avsnitt 2.5.<br />

3.7 Ekonomiska aspekter<br />

Dagens kostnader för Windows-licenser är en betydande utgift för de flesta företag.<br />

Ross Anderson [3] tror att NGSCB är ett försök av Microsoft att ytterligare<br />

stänga in sina kunder och förhindra dem från att välja andra system än Windows.<br />

Påståendet att hårdvaran kommer att öka i pris stöds till viss del av Microsofts<br />

egna uttalanden [24]:<br />

“When NGSCB computers become available, companies, governments,<br />

and individual users will be able to see that the new machines are significantly<br />

better at protecting secrets and preserving privacy. That should<br />

drive upgrades and enable hardware makers to charge a premium for<br />

their new products.”<br />

Hårdvaran kommer alltså mest troligt att bli dyrare på grund av ökad efterfrågan<br />

men h<strong>ur</strong> mycket dyrare är svårt att förutsäga eftersom konk<strong>ur</strong>rensen på hårdvarumarknaden<br />

är ganska stor [3, 24].<br />

Eftersom det kommer att bli svårare och dyrare för kunderna att byta från Microsoftmiljö<br />

till en alternativ miljö skulle priserna på Microsofts programlicenser kunna


3.7. EKONOMISKA ASPEKTER 43<br />

öka till det dubbla, enligt Anderson [3].<br />

Eftersom stora delar av hårdvaran måste bytas ut för att man ska kunna dra nytta<br />

av NGSCB skulle det med stor sannolikhet innebära att det vore mer ekonomiskt<br />

att byta en hel dator än endast de komponenter som behövs för ett företag.<br />

Ett Windows som stödjer TCPA skulle sannolikt öka ett företags omkostnader<br />

jämfört med både Linux och ett Windows utan TCPA. Säker mjukvara är alltid<br />

dyrare att producera och underhålla (för tillverkaren) än osäker mjukvara. Stabilitetsproblem<br />

är vanliga i samband med nya produkter – något som markant<br />

kan öka omkostnader under en tid. De ökade omkostnaderna för programvaror<br />

skulle kunna sparas in till viss del på grund av lägre mängd intrång, bättre rutiner<br />

för dokumenthantering samt färre lyckade virusattacker – tills hackare anpassat<br />

sig. Precis som datasäkerhet, blir attackerna bättre, smartare och mer komplexa<br />

[2, 6, 37].


Alternativ till NGSCB<br />

4<br />

En av nackdelarna med NGSCB är dess väldigt specifika kompatibilitetskrav. För<br />

att man ska kunna dra nytta av teknologin måste större delen av hårdvaran bytas<br />

ut. Därför kan det vara både ekonomiskt och praktiskt fördelaktigt att titta närmare<br />

på alternativa lösningar. Fördelen med de alternativ som denna rapport behandlar<br />

är att de är tillgängliga nu, man behöver alltså inte vänta till 2006 för att kunna<br />

köra en klient och 2007 för en server. Inom ett lokalt närverk är det möjligt att<br />

skapa ett fullödigt skydd liknande det som NGSCB vill erbjuda.<br />

Eftersom NGSCB syftar till att skydda varje nod genom säker åtkomst från nätet,<br />

säker åtkomst från I/O enheter, samt genom säker exekvering av program krävs en<br />

lösning som tar hänsyn även till dessa aspekter. För att hindra att illvillig kod körs<br />

på en dator krävs en strikt övervakning av vilka processer som får köra och vad de<br />

gör. NGSCB löser endast övervakningen av vissa certifierade applikationer vilka<br />

kräver en NCA och ett Nexus för sin exekvering. Våra tre huvudmål blir därmed<br />

att:<br />

• Skydda känslig data på disk.<br />

• Förhindra exekvering av otillåtna program.<br />

• Begränsa åtkomsten mot nätverket effektivt.<br />

Det finns ett flertal sätt att skydda data som lagras på disk. Ett sätt är att använda<br />

en smartcardlösning se avsnitt 2.7.1 på sidan 17, en annan vore att använda ett<br />

krypterat filsystem som till exempel Encrypted File System (EFS) till Windows<br />

2000.<br />

Problemet med otillåtna program som exekveras kan lösas med hjälp av Computer<br />

Integrity System (se nedan).<br />

45


46 KAPITEL 4. ALTERNATIV TILL NGSCB<br />

För att begränsa åtkomsten mot nätverket kan hårdvarubrandväggar användas på<br />

varje nod. Det skulle dock kunna bli dyrt att förse varje nod med en extern hårdvarubrandvägg.<br />

Genom att varje dator har en egen hårdvarubrandvägg kan åtkomsten<br />

till nätverket effektivt begränsas till en viss server.<br />

4.1 Computer Integrity System<br />

Computer Integrity System (CIS) från SE46 AB är ett system som används från<br />

att hindra icke certifierade processer från att starta. Systemet laddas så tidigt som<br />

möjligt under bootsekvensen, innan drivrutiner och program. CIS använder en<br />

modifierad SHA-1 för att skapa hash-summor av de program som tillåts exekvera.<br />

På så sätt skapas ett unikt certifikat för varje program. Dessa lagras antingen internt<br />

i en lista eller externt på en server. För att skapa certifikaten används X.509<br />

som är en defacto-standard för PKI [39]. X.509 används även för SSL i web-läsare<br />

som till exempel Firefox och Internet Explorer [12].<br />

Eftersom SHA-1 länge ansetts som problematisk <strong>ur</strong> säkerhetssynpunkt har SE46<br />

valt att lägga filens storlek till kontrollsumman. Genom denna åtgärd reduceras<br />

andelen möjliga nyckelkrockar eftersom sannolikheten att det ska finnas en krock<br />

bland olika data av samma storlek är betydligt mindre än sannolikheten att det ska<br />

ske utan reglerad filstorlek [39].<br />

Varje gång en process startas beräknas en hash-summa på den exekverande filen.<br />

Filens storlek läggs till resultatet och detta jämförs sedan mot den interna listan<br />

av certifikat. Finns processen registrerad kan den startas obehindrat.<br />

Systemet stoppar inte processer som genom programvarufel öppnar säkerhetshål.<br />

Det fungerar dock utmärkt för att hindra illvilliga program från att köras. Om ett<br />

program på något sätt blivit modifierat i efterhand genom till exempel en otillåten<br />

uppdatering eller virusinfektion hindras dess exekvering [39].<br />

Listan med certifikat som används under certifieringsprocessen hämtas från en<br />

distributionsserver antingen manuellt eller automatiskt. Detta medför att systemet<br />

kan arbeta helt frikopplat från servern [39].<br />

Fördelen med CIS jämfört med till exempel en virusskanner är främst att den lista<br />

som krävs för att hålla reda på vilka applikationer som får köra är mycket mindre<br />

och lättare att kontrollera än en lista med vad som inte får köra. CIS kräver därmed<br />

mindre prestanda än en traditionell virusskanner. Dessutom kontrollerar CIS aktivt<br />

de filer som används i ett system. Eftersom kontrollen sker varje gång en fil<br />

startas blir CIS lösning kraftfullare än en virusskanner som endast kontrollerar


4.1. COMPUTER INTEGRITY SYSTEM 47<br />

filer passivt. För att CIS ska fungera tillsammans med smartcard-lösningar krävs<br />

dock att systemet specialanpassas för enskilda smartcard-lösningar [39].<br />

Fig<strong>ur</strong> 4.1: Ett diagram över certifikatdistributionen i CIS, bilden kommer från<br />

[39].<br />

Fig<strong>ur</strong> 4.1 visar en schematisk bild av h<strong>ur</strong> applikationscertifikaten hanteras i CIS.<br />

1. Ett modellsystem inventeras och hashsummorna skickas till en certifkathanterande<br />

applikation.<br />

2. Certifikathanteraren skapar applikationscertifikat och distribuerar dessa till<br />

distributionsservern.<br />

3. Skyddsobjekten hämtar sina certifikat från servern.<br />

4. Skyddsobjekten skickar kontinuerligt loggdata till loggservern.<br />

Genom att alla program som startas verifieras mot den inbyggda databasen med<br />

hjälp av en modifierad SHA-1 får systemet flera fördelar:


48 KAPITEL 4. ALTERNATIV TILL NGSCB<br />

• Det blir svårt att genomföra vissa attacker för att hacka enskilda klienter<br />

utan att först knäcka distributionsservern.<br />

• Klienterna blir resistenta mot illvillig kod, till exempel maskar och virus.<br />

• Fördelen med att använda PKI är att systemet blir skalbart.<br />

• En effekt av ett sådant här system är till exempel att en användare inte kan<br />

starta otillåtna program som laddats ner via e-post eller på annat sätt.<br />

Fördelarna är ganska många och väl definierade, men det finns nackdelar också:<br />

• Distributionsservern har ganska stort ansvar, blir den hackad kan det uppstå<br />

problem.<br />

• Lösningen lämpar sig bäst i en skyddad miljö och där säkerheten baseras på<br />

centraliserade servrar.<br />

• Om systemet helautomatiseras kan man riskera att det räckte att knäcka en<br />

distributionsserver för att få tillgång till alla bakomliggande datorer.<br />

Systemet skulle inom ett större företag framför allt lämpa sig för intern kontroll av<br />

vilka processer som körs. Framför allt skulle ett sådant här system hjälpa till med<br />

skydd från de problem som uppstår genom användandet av otillförlitliga epostprogram.<br />

Det är ett problem är att en enda server är en så viktig del i säkerheten, å<br />

andra sidan är det lättare att säkra en server än tusen klienter med servermöjlighet.<br />

CIS fungerar bäst i en någorlunda homogen miljö. Om flera datorer av samma typ<br />

med samma operativsystem och samma program ska användas är det en utmärkt<br />

lösning.<br />

4.2 Hårdvarubrandväggar<br />

Den 20 oktober 2004 släppte NVIDIA sitt nForce4 chipset [33]. Detta chip inkluderar<br />

en inbyggd hårdvarubrandvägg. Genom att lägga en brandvägg i en dedicerad<br />

krets hoppas man kunna minska belastningen på processorn samtidigt som man<br />

ökar säkerheten genom att en brandvägg är startad redan innan nätverkskretsen<br />

ens startat. Lösningen som kallas ActiveArmor är en fullständig brandvägg med<br />

stöd för Microsofts brandväggs-API. Den kan administreras genom fjärrstyrning<br />

samt med hjälp av fördefinierade säkerhetsdefinitioner. Enligt tillverkaren ska


4.2. HÅRDVARUBRANDVÄGGAR 49<br />

ActiveArmor vara motståndkraftigt mot manipulation: Ett försök att stänga av<br />

eller manipulera brandväggsinställningarna resulterar i att nätverksuppkopplingen<br />

stängs av. ActiveArmor är kompatibelt med Microsofts brandvägg, uppgifter om<br />

kompatibilitet mot andra brandväggar saknas dock för närvarande. ActiveArmor<br />

är en intressant lösning eftersom det är den första hårdvarubaserade brandväggen<br />

som ligger på vanliga moderbord riktade mot hemanvändare. Det finns framför<br />

allt två fördelar med denna lösning [33]:<br />

1. Eftersom lösningen är så nära integrerad med nätverkskortet kommer brandväggen<br />

att vara aktiverad innan operativsystemet startat. Detta innebär att<br />

det inte finns någon möjlighet att starta drivrutinen för nätverkskortet före<br />

brandväggen.<br />

2. Om brandväggen stängs av kommer nätverket att sluta fungera. Om ett<br />

skadligt program körs och det försöker stänga av brandväggen kommer användaren<br />

omedelbart att upptäcka intrångsförsöket.<br />

En personlig brandvägg belastar inte en dator speciellt mycket <strong>ur</strong> ett prestandahänséende<br />

i jämförelse med den säkerhetsfördel den medför. Även om det är en<br />

mjukvarubrandvägg skulle det alltså kunna medföra vissa fördelar <strong>ur</strong> ett säkerhetsperspektiv<br />

att ha en sådan installerad, utan att betydande prestandanackdelar<br />

uppstår. Det intressanta med en hårdvarubrandvägg är att dess säkerhetsfördelar<br />

finns tillgängliga i ett tidigare stadium än en mjukvarubrandvägg.<br />

ActiveArmor stödjer Microsofts brandväggs-API (installeras automatiskt med WindowsXP)<br />

[33]. Genom detta kan ett program fritt ändra inställningar samt slå av/på<br />

den inbyggda brandväggen utan användarens vetskap så länge användaren är inloggad<br />

med administratörsrättigheter [30].<br />

Att en administratör har fulla rättigheter att förändra inställningarna i en dator<br />

är bra, men det är inte bra när vilket program som helst kan göra förändringar i<br />

vitala inställningar utan användarens vetskap eller godkännande. Det är mycket<br />

vanligt att Windows används i administratörsläge, även om det inte är helt nödvändigt.<br />

Fördelen med ActiveArmor är att den stänger av nätverkskortet om den<br />

inaktiveras. Det räcker dock att en illvillig process öppnar samtliga portar eller<br />

lägger sig själv i listan av betrodda program som får komma åt nätverket fritt.<br />

Detta kan ske helt utan att användaren är medveten om det. Istället för att illvilliga<br />

processer stänger av brandväggen får man alltså illvilliga processer som öppnar<br />

alla portar på datorn och på så vis kommunicerar fritt med nätet. Genom ett dylikt<br />

förfarande slipper en hackare att nätverket stängs av samtidigt som han öppnar<br />

systemet för intrång.


50 KAPITEL 4. ALTERNATIV TILL NGSCB<br />

Ett alternativ till ActiveArmor vore att installera en hårdvarubrandvägg utanför<br />

systemet. Optimalt vore om brandväggarna vore osynliga utifrån, det skulle skydda<br />

nätverket från att brandväggen själv blev komprometterad. Lösningen skulle<br />

ha fördelen att den inte kulle behövas installeras om annat än vid uppdatering av<br />

nätet.<br />

4.3 TCPA tillsammans med GPL-plattformar<br />

Eftersom en TPM med medföljande mjukvaruspecifikation är systemoberoende<br />

är det fullt möjligt att köra ett system baserat på öppen källkod som är betrott.<br />

Både Linux och UNIX skulle kunna designas för TCPA [18, 42]. Motståndet inom<br />

open-so<strong>ur</strong>ce rörelsen är dock fortfarande förhållandevis starkt; därför skulle det<br />

vara intressant med ett system som kunde utnyttja en TPMs tillitsmodell även<br />

utan stöd från operativsystemet.<br />

Lie et. al. [19] visade att tillit kan ärvas till en process trots att operativsystemet<br />

inte är betrott. Operativsystemet skulle alltså kunna administrera res<strong>ur</strong>ser – både<br />

betrodda och icke betrodda till processerna. Lie et. al. skapade en situation där de<br />

exekverande applikationerna varken litade på operativsystemet eller på det externa<br />

minnet. Applikationerna satte istället tillit till processorn för att skydda kod och<br />

data [19].<br />

Att en sådan här applikation är möjlig antyder att tillit inte är operativsystemsberoende<br />

[19]. Möjligheten kan alltså finnas att principerna är överförbara till<br />

TCPA.


Diskussion<br />

5<br />

Säkerhet har tidigare inte varit en prioriterad fråga för Microsofts produkter, det är<br />

inte förrän på senare tid som förändringar har gjorts inom detta område. Windows<br />

XP och 2000 är två exempel på produkter med en rad inbyggda säkerhetslösningar<br />

men NGSCB är det första riktigt stora steget mot ett säkrare operativsystem. När<br />

Microsoft nu har börjat prioritera säkerhetsområdet på allvar krävs att många applikationer<br />

skrivs om från grunden för att de ska fungera tillfredsställande i den<br />

nya miljön. Kostnaden för denna ökade säkerhet kommer kunderna sannolikt att<br />

få betala i form av högre licens- och produktavgifter [3]. En etablering av NGSCB<br />

skulle därför onekligen påverka datorindustrin starkt.<br />

Satsningen kan inte desto mindre ge goda resultat. Det skulle ge användare grund<br />

att lita på att konfidentiell data hålls så hemlig som möjligt. Potentiellt minskar<br />

också spridningen av upphovsrättskyddat material så länge innehavaren av upphovsrätten<br />

har res<strong>ur</strong>ser att knyta det mot NGSCB. Om Digital Rights Management<br />

(DRM) blir NGSCBs fokus kommer dock användaren att hamna i kläm eftersom<br />

många vill kopiera sina skivor till datorn av praktiska skäl. Om ett Nexus<br />

anförtros med tillit och om det samtidigt har full möjlighet att använda tjänster<br />

så som I/O är de en potentiell säkerhetsrisk. Eftersom vem som helst ska kunna<br />

skriva ett Nexus och verifiera NCA-moduler kan det innebära att en illvillig (alternativt<br />

slarvig) programmerare kan förorsaka stora skador och säkerhetsrisker.<br />

Det är för tillfället överflödigt att införa NGSCB i sin helhet på ett företags samtliga<br />

maskiner. Såtillvida det inte finns behov av det Microsoftspecifika innehållet<br />

till exempel förstärkt DRM. NGSCB skulle framför allt kunna vara av intresse i<br />

publika terminaler (t.ex. uttagsautomater och kundterminaler på kontor). Fördelen<br />

med att använda NGSCB i uttagsautomater är sannolikt att det ytterligare skulle<br />

försvåra extern manipulation av terminalernas hård- och mjukvara.<br />

NGSCB skulle i sin nuvarande form inte ge någon större möjlighet för ökad säkerhet<br />

mot privatkund som är inloggad mot till exempel Internetbanken i sig. De<br />

51


52 KAPITEL 5. DISKUSSION<br />

enda fördelarna NGSCB skulle medföra mot kund och inom bank är att effektivisera<br />

den starka krypteringen i dataöverföring mellan olika system samt att på ett<br />

effektivare sätt kunna hålla kryptonycklar hemliga.<br />

Priset för NGSCB är högt. Eftersom det kräver både stöd i hård- och mjukvara<br />

krävs en nyinvestering i hela miljön. För en dator skulle det krävas helt ny hårdvara<br />

samt att all mjukvara som ska köras under NGSCB måste bytas ut. Priset för<br />

de komponenter som ingår kommer dessutom att vara betydligt högre, både enligt<br />

Microsoft och Anderson [3, 24]. NGSCB kommer att kunna användas för att<br />

förhindra kunder från att byta operativsystem. Valet av NGSCB-system kommer<br />

därför att vara avgörande för framtida kostnader i mycket högre grad än valet av<br />

datormiljö är idag.<br />

Habet et. al. konstaterar att <strong>Trusted</strong> <strong>Computing</strong> Platform Alliance (TCPA) är ett<br />

tvéeggat vapen då tekniken går att använda både för användarens bästa men även<br />

till att begränsa och kontrollera henne [11]. H<strong>ur</strong> användarna kommer att uppleva<br />

och vad det kommer att användas till är enligt Habet upp till användarna och de<br />

företag som gått med i TCPA-samarbetet [11].<br />

Det kommer hela tiden nya attacker. SHA-1 blev nyligen knäckt av ett kinesiskt<br />

forskarteam [44]. Även om det inte innebär en omedelbar fara för säkerheten under<br />

den närmaste framtiden måste algoritmen tas bort från specifikationen av TCPA<br />

– helst innan en lösning baserad på metoden når marknaden. För NGSCB bevisar<br />

det framför allt vikten av öppenhet. När en algoritm blivit knäckt kan man lära sig<br />

något av det och skapa ett säkrare system.<br />

Även om NGSCB kan hjälpa till vid stark identifiering av användaren genom<br />

att tillhandahålla säkra interaktionsvägar till denna identifierar det fortfarande<br />

bara sig själv mot en extern part. Eftersom inget egentligen garanterar vem som<br />

befinner sig bakom terminalen är kopplingen system-system fortfarande lika osäker<br />

<strong>ur</strong> identifieringssynpunkt. Det finns viss funktionalitet som försvårar manin-the-middle<br />

attacker (säker lagring av nycklar) men det kommer att medföra en<br />

större koncentration på attacker mot systemen som sådana. Ett exempel på en sådan<br />

attack är den osäkra kopplingen till USB som Microsoft själva påpekade under<br />

WinHec 2004 [29]. Försvårandet av man-in-the-middle attacker och avlyssning<br />

förändrar dock inte att de certifikat och signat<strong>ur</strong>er som skapas identifierar plattformen<br />

och inte människan.


5.1. ÅSIKTER RUNT NGSCB OCH TCPA 53<br />

5.1 Åsikter runt NGSCB och TCPA<br />

Den vanligaste missuppfattningen runt TCPA och NGSCB är att de är samma sak.<br />

Så är inte fallet. NGSCB är ett operativsystemstillägg som använder en TCPAspecificerad<br />

krets, en så kallad <strong>Trusted</strong> Platform Module (TPM). Det är dock sant<br />

att Microsoft har haft inflytande över utformningen av TCPA-specifikationerna.<br />

Mycket av den kritik och de åsikter som ventileras runt TCPA är negativ. Med<br />

tanke på att världens största mjukvaruföretag är en av initiativtagarna till denna<br />

våg av betrodd datoranvänding är det inte konstigt att vissa användare blir misstänksamma.<br />

En del av systemet i TMP-kretsarna är dessutom hemligstämplad,<br />

även om det bara rör sig om en funktion (slumptalsgenerering) gör det inte kritikerna<br />

mindre kritiska. En av systemets största svagheter ligger i just detta. Ingen<br />

av producenterna av TPM-chip som har blivit tillfrågade vill till exempel besvara<br />

frågan om vilken algoritm som används för slumptalsgenerering.<br />

En av de vanligaste åsikterna är att TCPA kan användas för att försvaga upphovsrättsmännens<br />

rätt till sin egen intellektuella egendom [3, 5, 11]. Ofta ser man<br />

Digital Rights Management (DRM) nämnas och då i samband med en extrem<br />

åsikt åt ena eller andra hållet. Bechtold uppmanar oss att minnas att oavsett vilken<br />

teknologi man väljer att granska bör granskaren akta sig för att anta ett allt för<br />

fundamentalistisk förhållningssätt. Gör man det riskerar man att missa den klarhet<br />

och insikt som medelvägen kan ge [5]. Anderson, Schneier och Ellison å sin sida<br />

väljer att förhålla sig kritiska, både till TCPA [3] och till PKI [9]. Kritikerna tar<br />

upp två poänger som jag finner speciellt intressanta:<br />

1. Stöld av källkod kan inte förhindras/kontrolleras på ett tillförlitligt sätt.<br />

2. Produktion av material med hjälp av stulen programvara skulle inte kunna<br />

upptäckas/förhindras.<br />

Dessa två fall blir oundvikliga i fallet NGSCB då det ger användaren möjlighet<br />

att ladda ner öppen källkod publicerad under Gnu Public Licence (GPL). GPL<br />

säger att om någon gör tillägg eller förändringar i det som är producerat under<br />

densamma måste den som förändrade koden också skicka tillbaka en kopia på sina<br />

ändringar till upphovsmannen. Att underlåta att göra detta är stöld av intellektuell<br />

egendom. Eftersom NGSCB tillåter kryptering av körbara filer och annat material<br />

kommer en kontroll av detta omöjliggöras (det är dock redan mycket svårt).<br />

Fall två innebär till exempel att ett företag laddar ner en knäckt programvara för<br />

att använda till produktion av annat material. Till exempel skulle ett företag kunna


54 KAPITEL 5. DISKUSSION<br />

ladda ner en stulen programvara för att producera musik utan att bli ertappade (se<br />

bild 5.1) [31]. Här står tydligt att ett program (Sound Forge), vilket är knäckt av<br />

Fig<strong>ur</strong> 5.1: Bilden visar innehållet i en av de ljudfiler som följer med i Microsofts<br />

operativsystem WindowsXP [31].<br />

gruppen Deepz0ne, har använts för att producera filen. Samtliga ljudfiler under<br />

[31] är producerade med samma program. Det som antyds i filen är att den blivit<br />

producerad med hjälp av en knäckt (Microsoft använder ofta ordet “stulen”) programvara.<br />

Det är högst osannolikt att ett sådant här mönster skulle uppstå av en<br />

slump.<br />

Om Anderson och Kuhlmann har rätt i att NGSCB kan vara ett verktyg för att<br />

stärka DRM verkar det som om även motsatsen råder: På grund av den starka<br />

krypteringen i NGSCB går de att utforma programvaran så att endast de delar<br />

som inte är stulna kör i den okrypterade delen av minnet. De delar som är stulna<br />

kan mycket väl gömmas i en NCA eftersom denna tekniskt sett kan innehålla vad<br />

som helst (förutom attesteringsfunktionalitet).<br />

Enligt specifikationen för NGSCB ska “i princip vem som helst” kunna skriva ett<br />

Nexus. En NCA är ett program eller en del av ett program eller en tjänst som är<br />

verifierad av en “betrodd” källa. Det framgår dock inte vem som är denna betrodda<br />

källa. Enligt Ross Anderson har det kommit fram indikationer på att viss oenighet<br />

har funnits inom TCG i denna fråga [11]. Eftersom man inte vet vem som ska<br />

verifiera ett Nexus vet man inte heller vem som får skriva ett dylikt. Om den<br />

betrodda källan är Microsoft eller något annat företag bör man fråga sig om/vad<br />

det kommer att kosta att verifiera ett Nexus. Eftersom det betrodda minnet är<br />

skyddat och dolt från övriga delar av systemet finns risken att det uppkommer<br />

en ny typ av betrodda virus och trojanska hästar som ingen virusskanner kan hitta<br />

eller rå på enligt Anderson [11].<br />

Så långt verkar det som om NGSCB huvudsakligen är ett verktyg avsett för att


5.2. ALTERNATIVA LÖSNINGAR TILL NGSCB 55<br />

genom DRM skydda vissa stora företags intressen. I andra branscher, till exempel<br />

bilindustrin, finns det en kult<strong>ur</strong> där en defekt vara dras in från marknaden om<br />

den kan äventyra kundernas säkerhet. När samma sak sker i programvaruindustrin<br />

antar företagen ett förhållningssätt som innebär att kunden i många fall måste<br />

betala för stöd och underhåll. När DRM blir en central del i en produkt på det här<br />

sättet kan detta förfarande bli vanligare och spridas i ännu högre grad. Risken för<br />

“betrodda” virus och trojanska hästar gör bilden av NGSCB ännu mer oroande.<br />

Det finns dock fördelar med NGSCB, inte minst för banker och andra större företag<br />

med en nära koppling till sina kunder. En bank skulle med hjälp av NGSCB<br />

kunna säkerställa kommunikationen mot en av sina viktigare kunder genom att<br />

dela ut en specialinstallerad dator vilken bara får användas för bankärenden. Eftersom<br />

ett mer homogent system skulle kunna skapas (<strong>ur</strong> ett krypteringsperspektiv)<br />

skulle banken på ett bättre sätt ha möjlighet att få tillit till den information som<br />

skickas från denna kund. Nettoeffekten skulle bli att bankens tillgänglighet ökar<br />

utan att säkerhet eller integritet minskar. Förutsättningen för att denna lösning<br />

skulle fungera är att det system som står hos kunden också måste underhållas av<br />

banken. Om banken hade fullständig kontroll över vilka program som exekverades<br />

på datorn kan risken att betrodda virus och trojanska hästar kunna minimeras. Lösningen<br />

är inte lämplig får mindre kunder såsom privatpersoner och småföretagare<br />

eftersom ett företag bara kan ha total kontroll över ett begränsat antal system på<br />

ett kostnadseffektivt sätt. Genom att låsa kunden vid ett specifikt operativsystem<br />

(Microsoft Windows Longhorn) skulle företaget i slutänden riskera att tappa kunder.<br />

Ett sådant här system kan dessutom medföra en risk att användaren lägger för<br />

stor tilltro till systemet och glömmer grundläggande säkerhetstänkande. Risken<br />

för olika bedrägerier till exempel phishing skulle därmed kunna öka. Resultatet<br />

skulle vara en minskad integritet och säkerhet hos den mindre kunden.<br />

5.2 Alternativa lösningar till NGSCB<br />

NGSCB kan användas till att stärka säkerheten internt i ett företag. Virusdödare<br />

är ett alternativt sätt att göra detta men det finns effektivare metoder. Computer<br />

Integrity Systemet (CIS) har tidigare angivits som ett alternativ. Fördelen gentemot<br />

NGSCB är främst att denna lösning är helt plattformsoberoende. Dess största<br />

nackdel är att den är ganska statisk. Ett system som CIS skulle därför löna<br />

sig att använda i system där få förändringar av vilka program som körs sker. En<br />

stor banks kontorsmiljöer skulle därför vara väl lämpade för en lösning som till<br />

exempel CIS. Systemet skulle dessutom ge en högre säkerhetsnivå i fråga om<br />

virusskydd och trojanska hästar än både NGSCB och något av de nu existerande


56 KAPITEL 5. DISKUSSION<br />

virusprogrammen.<br />

Problemet med nätverkssäkerhet i de enskilda arbetsstationerna kan i dag lösas<br />

med hjälp av nVidia nForce4-chippet. Detta kommer monterat på en del nForce4moderkort.<br />

En fördel med att ha en brandvägg i hårdvara är att man kan göra det<br />

fysiskt omöjligt att ändra dess inställningar. Enligt nVidia ska ett försök att stänga<br />

ner brandväggen endast resultera i att tillgången till nätverket stängs av.


Sammanfattning<br />

6<br />

Next Generation Sec<strong>ur</strong>e <strong>Computing</strong> Base (NGSCB) är det säkerhetssystem som<br />

Microsoft kommer att bygga in i Longhorn. Det är bestämt att NGSCB kommer att<br />

vara ett opt-in system. Det är avslaget vid installation och måste aktiveras av användaren.<br />

För att aktivera NGSCB krävs att användaren startar stödet för den säkerhetshanterande<br />

kretsen på moderkortet genom till exempel en BIOS-inställning.<br />

Användaren måste sedan aktivera NGSCB i operativsystemets inställningar.<br />

NGSCB bygger på konceptet <strong>Trusted</strong> <strong>Computing</strong>. Det innebär att för att använda<br />

NGSCB krävs en bas för tillit (Root of Trust) befäst i hårdvara. Standarden<br />

för denna hårdvara är fastslagen av <strong>Trusted</strong> <strong>Computing</strong> Group och innehåller<br />

en hårdvarukomponent kallad <strong>Trusted</strong> Platform Module (TPM) samt tillhörande<br />

mjukvara. Än så länge täcker specifikationen bara PC-datorer men meningen är<br />

att den även ska gälla för inbyggda system, mobiltelefoner och annan elektronik.<br />

Atmel och övriga tillverkare av TPM-moduler (kallad SSC av Microsoft) håller<br />

för närvarande metoden för generering av slumptal hemlig. De använder gärna<br />

uttrycket “True Random Number Generator”. Genereringen av verkligt slumpmässiga<br />

nummer är möjlig men inte helt trivial, att de sedan inte offentliggör<br />

sina respektive metoder strider mot den princip av offentlighet som genomsyrat<br />

utvecklingen av TCPA.<br />

NGSCB kommer aldrig att kunna skydda ett företag mot sociala intrång och<br />

bedrägerier – en människa kommer alltid att kunna hota ett systems integritet<br />

inifrån. Säkerhet fungerar bara när den är väl befäst hos dem den är menad att<br />

skydda.<br />

Vidare vet man ganska lite om h<strong>ur</strong> NGSCB skall komma att se ut, designen är bara<br />

delvis offentlig. Microsoft har i ett flertal artiklar sagt att NGSCB är ett långsiktigt<br />

arbete. Designen som den ser ut nu fokuserar till största delen på konfidentialitet<br />

och integritet. Tillgänglighetsaspekten kommer i andra hand. Det ska vara möjligt<br />

57


58 KAPITEL 6. SAMMANFATTNING<br />

att sätta upp regler för h<strong>ur</strong> de olika certifikaten och programmen ska kunna köras.<br />

Risken är dock att NGSCB måste slås på för att användaren ska kunna köra ett<br />

program från Microsoft, som till exempel ordbehandlaren Microsoft Word.<br />

Fortfarande går det att bygga bra och tillförlitliga säkerhetslösningar utan NGSCB.<br />

För företag finns till exempel Computer Integrity System (CIS). CIS verifierar all<br />

mjukvara som startas i ett system. Varje gång ett program startas beräknas en kontrollsumma<br />

av dess digitala signat<strong>ur</strong>. Kontrollsumman jämförs mot en lista med<br />

applikationscertifikat som finns lagrad i lokalt i datorn. Den infrastrukt<strong>ur</strong> som används<br />

är Public Key Infrastruct<strong>ur</strong>e (PKI), en öppen standard för distribuering av<br />

kryptonycklar. Fördelen med CIS jämfört mot NGSCB är att den är plattformsoberoende.<br />

Alla delar kan köras i alla operativsystem. CIS kan till exempel även<br />

köras i UNIX eller Linux. NGSCB är något som bara kommer att fungera i Windows<br />

(Longhorn). Ytterligare en fördel är att detta system inte låser användaren på<br />

ett sådant sätt att NGSCB blir omöjligt. Systemet har dock potential att förstärka<br />

säkerheten hos NGSCB.<br />

NGSCB kommer på intet sätt att förhindra en virusattack av det oskyddade minnet<br />

enligt Microsoft [25, 26, 28, 24]. Den delen får tredje parts programvaror lösa.<br />

Historiskt sett har nya virus kommit relativt omgående till nya versioner av Windows.<br />

Än så länge finns inget som talar emot att ett virus är på väg till Longhorn<br />

(som i skrivandes stund är under beta-test). Fördelen med detta system är att det<br />

kan upptäcka om det blivit komprometterat och att grunden för tillit är extremt<br />

svår att kompromettera [25].<br />

Kritikerna (Anderson, Bechtold och Caelli bland andra) är fast övertygade om<br />

att NGSCB är till för att befästa Microsofts position på marknaden och tränga<br />

ut Linux på samma gång [3, 5, 7]. Även om <strong>Trusted</strong> <strong>Computing</strong> i form av Next<br />

Generation Sec<strong>ur</strong>e <strong>Computing</strong> Base ger användaren en rad möjligheter till säker<br />

lagring av privata nycklar, hårddiskkryptering och verifikation av programvara<br />

löser det inte genom sin strukt<strong>ur</strong> de största problemen Windowsvärlden dras med<br />

nu – virus och spam. Det finns inget som direkt talar för att TCPA i hög grad<br />

ska minska risken för dessa hot: NGSCB, vilken är den enda implementation som<br />

utnyttjar TCPA, gör det inte [24].<br />

Även om NGSCB tar en hel del steg för att skapa ett säkert operativsystem kommer<br />

det att vara ett tvéeggat instrument för säkerhet. Man ska inte glömma att en<br />

av de största förespråkarna bakom DRM ligger bakom systemet. Microsofts motiv<br />

kan alltså ifrågasättas – risken finns att TCPA blir ett instrument för övervakning<br />

och cens<strong>ur</strong>. Å andra sidan kan TCPA användas till att skydda användare och data.<br />

Vem som blir vinnare i slutänden kan nog bara framtiden utvisa.


Ordlista<br />

Autenticering Se identifiering.<br />

Betrodd Används i samma mening som engelskans “trusted”.<br />

Detta är viktigt att påpeka eftersom betrodd inte<br />

nödvändigtvis är det samma som tillförlitlig eller<br />

pålitlig.<br />

Betrodd agent “<strong>Trusted</strong> party” ett program som är betrott av systemet.<br />

Att vara betrodd är inte nödvändigtvis det<br />

samma som att vara tillförlitlig.<br />

Bootsekvens När datorn startar kallas det för boot. Bootsekvensen<br />

blir därmed det som händer när datorn<br />

startar och operativsystemet laddas.<br />

Bugg När ett program inte gör vad det är tänkt att göra<br />

utan att vara infekterat av virus eller på annat sätt<br />

ändrat efter kompilering. Buggar kan vara både konceptuella<br />

(designfel) och rent tekniska (kraschar under<br />

normal drift).<br />

Data Den information som överförs eller lagras i digitala<br />

eller analoga system.<br />

DoS Denial of Sevice, en attack avsedd att skapa en situation<br />

sådan att en server under en längre tid inte kan<br />

förse legitima användare med den service som den<br />

är avsedd för.<br />

Hårdvara Elektroniken i datorn, till exempel moderkort och<br />

hårddisk.<br />

Identifiering Att identifiera en användare eller en res<strong>ur</strong>s, även<br />

kallat autenticering. En identifiering vore värdelös<br />

utan en verifiering, därför antas att verifiering alltid<br />

sker vid identifiering.<br />

Illvillig process En process skrivet av en illvillig programmerare.<br />

59


60 KAPITEL 6. SAMMANFATTNING<br />

Illvillig programmerare En programmerare som genom illvilja eller slarv<br />

förorsakar problem, t.ex. skadar operativsystemet<br />

eller säkerhetsrisker.<br />

Malware Samlingsnamn på virus, trojanska hästar, maskar<br />

och deras varianter.<br />

Mask Ett program som replikerar och sprider sig själv, det<br />

kan ibland skada den dator som det infekterar.<br />

Mjukvara Körbara program, hit räknas även drivrutiner och<br />

operativsystem.<br />

Monolitisk design Med monolitisk design menas en typ av design<br />

där större delen av funktionaliteten är beroende av<br />

en enda enhet. Motsatsen är ett system uppbyggt i<br />

moduler (modulärt) med redundans. Denna designtyp<br />

är vanlig men anses som mycket problematisk.<br />

NCA Nexus <strong>Computing</strong> Agent.<br />

Nexus Den del i NGSCB som tillsammans med SSC verifierar<br />

programvara som vill köra i betrott läge.<br />

NGSCB Tidigare kallad Palladium. NGSCB står för Next<br />

Generation Sec<strong>ur</strong>e <strong>Computing</strong> Base, det är ett<br />

tillägg till Microsoft Windows.<br />

OEM Original Equipment Manufact<strong>ur</strong>er<br />

Opt-in Något som avslaget och medvetet kan väljas in av<br />

användaren (t.ex. spolarvätska till en bil).<br />

Opt-out Något som är förvalt och startat av systemet men<br />

kan väljas bort (t.ex. direktreklam hem i brevlådan).<br />

OS Operativsystem.<br />

Palladium Se NGSCB. Microsoft ändrade namnet till NGSCB<br />

under 2003.<br />

Phishing Phishing är när en hacker vill l<strong>ur</strong>a användaren att<br />

ge ifrån sig information (t.ex. personlig eller företagshemligheter)<br />

i illvilligt syfte.<br />

SSC Sec<strong>ur</strong>ity Support Component, ett chip som måste<br />

finnas på moderkortet som säkerhetsstöd för<br />

NGSCB. Kallas TPM i TCGs specifikation.<br />

TC Används i denna rapport som <strong>Trusted</strong> <strong>Computing</strong>,<br />

Microsoft vill dock kalla detta för Trustworthy<br />

<strong>Computing</strong>. <strong>Trusted</strong> <strong>Computing</strong> innebär säkerhetslösningar<br />

där man kan ha tillit i systemet.


TCG <strong>Trusted</strong> <strong>Computing</strong> Group, skapade TCPA. TCG<br />

grundades av bland andra Microsoft.<br />

TCP <strong>Trusted</strong> <strong>Computing</strong> Platform. Är i de flesta fall hårdvarustödda<br />

säkerhetslösningar för system.<br />

TCPA <strong>Trusted</strong> <strong>Computing</strong> Platform Alliance, en standard<br />

för att göra datorer säkrare. TCPA uppfanns av<br />

TCG.<br />

Tillförlitlig Används i samma mening som engelskans “trustworthy”.<br />

Detta är viktigt att påpeka eftersom betrodd<br />

inte nödvändigtvis är det samma som tillförlitlig.<br />

TOR <strong>Trusted</strong> Operating Root var det gamla namnet på<br />

Nexus.<br />

TPM <strong>Trusted</strong> Platform Module, en mikrokontroller som<br />

normalt sitter på datorns moderkort. Denna kan lagra<br />

nycklar och lösenord samt generera nya nycklar.<br />

Trojan Se trojansk häst.<br />

Trojansk häst En trojansk häst installeras antingen av användaren<br />

själv eller av en hackare. En trojansk häst kan<br />

maskera sig på två sätt, antingen som ett legitimt<br />

och användbart program eller så gömmer det sig<br />

på något sätt. Trojanska hästar gör alltid något som<br />

användaren inte har kontroll över. De kan till exempel:<br />

Öppna bakdörrar, installera andra program<br />

(tex virus), söka efter användarnamn och passwords<br />

(både från hårddisk och tangentbord), osv. Om programmet<br />

söker information kan denna lagras eller<br />

skickas vidare.<br />

Virus Ett program som infekterar ett annat och saknar förmåga<br />

att själv sprida sig över nätverk. Ett virus kan<br />

till exempel vara konstruerat så att det infekterar alla<br />

Word-dokument-filer på en dator, när användaren<br />

sedan kopierar filerna och öppnar dem på andra system<br />

kan viruset sprida sig.<br />

61


Referenser<br />

[1] ANDERSON, R. Why cryptosystems fail. 1st. Conf. Computer & Comm.<br />

Sec<strong>ur</strong>ity 1 (1993), 215–227.<br />

[2] ANDERSON, R. Sec<strong>ur</strong>ity Engineering – a Guide to Building Dependable<br />

Distributed Systems, second ed. John Wiley & Sons, Inc., 2001.<br />

[3] ANDERSON, R. Cryptography and competition policy: Issues with ’trusted<br />

computing’. Annual ACM Symposium on Principles of Distributed <strong>Computing</strong><br />

22 (2003), 3–10.<br />

[4] ATMEL CORPORATION. Atmel corporation homepage.<br />

http://www.atmel.com, 2004. Besökt: 2005-04-03.<br />

[5] BECHTOLD, S. The present and fut<strong>ur</strong>e of digital rights management – musings<br />

on emerging legal problems. Lect<strong>ur</strong>e Notes in Computer Science 2770<br />

(2003), 597–654.<br />

[6] BISHOP, M. Computer Sec<strong>ur</strong>ity: Art and Science. Addison Wesley, 2003.<br />

[7] CAELLI, W. J. Tcpa, palladium and friends: Trends in computer sec<strong>ur</strong>ity.<br />

In Australasian Information Sec<strong>ur</strong>ity Workshop (2003), vol. 21, p. 1.<br />

[8] COULOURIS, G., DOLLIMORE, J., AND KINDBERG, T. Distributed Systems:<br />

Concepts and Design, 3 ed. Addison-Wesley, 2001.<br />

[9] ELLISON, C., AND SHNEIER, B. Ten risks of pki: What you’re not being<br />

told about public key. Computer Sec<strong>ur</strong>ity Jo<strong>ur</strong>nal 16, 1 (2000).<br />

[10] GRUNWALD, D., AND GHIASI, S. Microarchitect<strong>ur</strong>al denial of service: ins<strong>ur</strong>ing<br />

microarcitect<strong>ur</strong>al fair ness. ACM Transactions on Computer Systems<br />

(TOCS) 21, 3 (Aug. 2002).<br />

[11] HABET, A., AND MANOS, D. <strong>Trusted</strong> <strong>Computing</strong> – information sec<strong>ur</strong>ity or<br />

Big Brothers latest tool? Master’s, Örebro University, 2003. www.<br />

63


64 REFERENSER<br />

[12] HOUSLEY, R., AND HARTMAN, S. X.509 standarden. Besökt 2005-05-18,<br />

2005. http://www.ietf.org/html.charters/pkix-charter.html.<br />

[13] INFINEON TECHNOLOGIES AG. Infineon’s trusted platform<br />

module. Besökt: 2005-01-02, 2002. http://www.silicontrust.com/trends/comp_tpm.asp.<br />

[14] INFINEON TECHNOLOGIES AG. Platform sec<strong>ur</strong>ity – trusted<br />

platform module (tpm). Besökt 2005-01-02, 2004.<br />

http://www.infineon.com/cgi/ecrm.dll/ecrm/scripts/prod_ov.jsp?oid=29049&cat_oid=-<br />

9313.<br />

[15] KERCKHOFFS, A. La cryptographie militaire. Jo<strong>ur</strong>nal des sciences militaires<br />

IX (1883), 5–38. http://www.petitcolas.net/fabien/kerckhoffs/.<br />

[16] KLIMA, V. Finding md5 collisions on a notebook pc using multimessage<br />

modifications. Cryptology ePrint Archive, Report 2005/102, 2005.<br />

http://eprint.iacr.org/.<br />

[17] KOCHER, P., LEE, R., MCGRAW, G., RAGHUNATHAN, A., AND RAVI, S.<br />

Sec<strong>ur</strong>ity as a new dimension in embedded system design. In Proceedings of<br />

the 41st annual conference on Design automation (2004), vol. 0, pp. 753–<br />

760.<br />

[18] KUHLMANN, D. On tcpa. Lect<strong>ur</strong>e Notes in Computer Science 2742 (2003),<br />

255–269.<br />

[19] LIE, D., THEKKATH, C. A., AND HOROWITZ, M. Implementing an untrusted<br />

operating system on trusted hardware. In SOSP ’03: Proceedings of<br />

the nineteenth ACM symposium on Operating systems principles (New York,<br />

NY, USA, 2003), ACM Press, pp. 178–192.<br />

[20] MAO, W. Modern Cryptography, Theory and Practice. Prentice Hall, 2004.<br />

[21] MATSUMOTO, T., MATSUMOTO, H., YAMADA, K., AND HOSHINO, S.<br />

Impact of artificial gummyfingers on fingerprint systems. In SPIE (2002),<br />

R. L. v. Renesse, Ed., vol. 4677, pp. 275–289.<br />

[22] MENEZES, A. J., OORSCHOT, P. C. V., AND VANSTONE, S. A. Handbook<br />

of Applied Cryptography. CRC Press, 1997.<br />

[23] MICROSOFT CORPORATION. Hardware platform for the next-generation sec<strong>ur</strong>e<br />

computing base. Microsoft Word Dokument, Besökt 2004-10-05, 2003.<br />

http://www.microsoft.com/reso<strong>ur</strong>ces/ngscb/documents/NGSCBhardware.doc.


REFERENSER 65<br />

[24] MICROSOFT CORPORATION. Microsoft next-generation sec<strong>ur</strong>e computing<br />

base - technical faq. Microsoft Word Dokument, Besökt 2004-10-05, 2003.<br />

http://www.microsoft.com/technet/archive/sec<strong>ur</strong>ity/news/ngscb.mspx.<br />

[25] MICROSOFT CORPORATION. NGSCB: <strong>Trusted</strong> computing base and software<br />

authentication. Microsoft Word Dokument, Besökt 2004-10-05, 2003.<br />

http://www.microsoft.com/reso<strong>ur</strong>ces/ngscb/documents/ngscb_tcb.doc.<br />

[26] MICROSOFT CORPORATION. Privacy-enabling enhancements<br />

in the next-generation sec<strong>ur</strong>e computing base. Microsoft<br />

Word Dokument, Besökt 2004-10-05, 2003.<br />

http://www.microsoft.com/downloads/ThankYou.aspx?familyId=f30adb72f9c7-4193-9a5b-621c2dc33adf&displayLang=en.<br />

[27] MICROSOFT CORPORATION. Sec<strong>ur</strong>e user authentication<br />

for the next-generation sec<strong>ur</strong>e computing base. Microsoft<br />

Word Dokument, Besökt 2004-10-05, 2003.<br />

www.microsoft.com/reso<strong>ur</strong>ces/ngscb/documents/ngscb_authentication.doc.<br />

[28] MICROSOFT CORPORATION. Sec<strong>ur</strong>ity model for the next-generation sec<strong>ur</strong>e<br />

computing base. Microsoft Word Dokument, Besökt 2004-10-05, 2003.<br />

http://www.microsoft.com/reso<strong>ur</strong>ces/ngscb/documents/NGSCB_Sec<strong>ur</strong>ity_Model.doc.<br />

[29] MICROSOFT CORPORATION. Winhec 2004 conference papers. Besökt<br />

2004-10-05, 2004. http://www.microsoft.com/whdc/winhec/pres04tech.mspx.<br />

[30] MICROSOFT CORPORATION. Microsoft firewall api. Besökt 2004-<br />

10-05, 2005. http://msdn.microsoft.com/library/default.asp?<strong>ur</strong>l=/library/enus/ics/ics/windows_firewall_start_page.asp.<br />

[31] MICROSOFT CORPORATION. windows ljudfiler, mpaud*.wav. öppna<br />

filerna med en texteditor och läs längst ner i filen, 2005.<br />

C:\WINDOWS\Help\To<strong>ur</strong>s\WindowsMediaPlayer\Audio\Wav<br />

[32] NIST. Advanced encryption standard (aes), data encryption<br />

standard (des), triple-des, and skipjack algorithms.<br />

http://csrc.ncsl.nist.gov/cryptval/des.htm, April 12, 2002 2002. Besökt<br />

2005-05-08.<br />

[33] NVIDIA CORPORATION. nforce4 whitepapers.<br />

http://www.nvidia.com/object/feat<strong>ur</strong>e_activearmor.html, 2005. Besökt<br />

2005-05-08.


66 REFERENSER<br />

[34] PERCIVAL, C. http://www.daemonology.net/papers/. proceedings of BSD-<br />

Can 2005, 2005. http://www.daemonology.net/papers/htt.pdf.<br />

[35] SANDSTRÖM, M. Liveness Detection in Fingerprint Recognition Systems.<br />

Exam thesis, Linköpings tekniska högskola, 2004.<br />

[36] SARPESHKAR, R., DELBRÜCK, T., AND MEAD, C. A. White noise in mos<br />

transistors and resistors. IEEE Circuits and Devices 9, 6 (1993), 23–29.<br />

[37] SCHNEIER, B. Applied Cryptography, Second Edition: Protocols, Algorthms,<br />

and So<strong>ur</strong>ce Code in C (cloth), 2 ed. John Wiley & Sons, Inc., 1996.<br />

[38] SCHULTZ, E. Pandora’s box: spyware, adware, autoexecution, and NGSCB.<br />

Computers & Sec<strong>ur</strong>ity (2003).<br />

[39] SE46. Se46 ab hemsida. http://se46.com/, 2005. Besökt 2005-05-10, bilder<br />

från sidan publicerade med tillstånd från SE46.<br />

[40] STINSON, D. R. Cryptography: theory and practice, 1 ed. CRC Press, 1995.<br />

[41] STREBE, M., AND PERKINS, C. Brandväggar 24sju. Pagina Förlags AB,<br />

2000.<br />

[42] TCG. <strong>Trusted</strong> computing platform alliance (tcpa) main specification version<br />

1.1b och 1.2. http://www.trustedcomputinggroup.org/, 2003. Besökt 2004-<br />

09-05.<br />

[43] WANG, X., FENG, D., LAI, X., AND YU, H. Collisions for hash functions<br />

md4, md5, haval-128 and ripemd. Cryptology ePrint Archive, Report<br />

2004/199, 2004. http://eprint.iacr.org/.<br />

[44] WANG, X., YIN, Y. L., AND YU, H. Collision search attacks<br />

on sha1. Tech. rep., Shandong University, february 13 2005.<br />

http://theory.csail.mit.edu/ yiqun/shanote.pdf.<br />

[45] WILLIAMS, J. M. Biometrics or. . . biohazards? In Proceedings of the 2002<br />

workshop on New sec<strong>ur</strong>ity paradigms (2002), pp. 97–107.<br />

[46] YAMAMURA, M. W95.cih. Symantecs hemsida om viruset CIH, March 30,<br />

2004 1998. http://www.symantec.com/avcenter/venc/data/cih.html.<br />

[47] ÖGREN, T. Föreläsning om datasäkerhet. Föreläsning om datasäkerhet,<br />

20050314. http://www.cs.umu.se/∼stric/sec<strong>ur</strong>ity.pdf.


Phishing<br />

A<br />

Följande epostmeddelande skickades ut till kunder hos ett stort telebolag i Tyskland.<br />

Meddelandet förklarar att kundens räkning är 256,59 E<strong>ur</strong>o. Det finns även en<br />

länk till hemsidan där kunden kan betala sin räkning. Kunden kommer att logga<br />

in på vad han tror är den riktiga hemsidan för att betala sin räkning. Sidan är dock<br />

administrerad av en hacker och pengarna sätts in på dennes konto istället.<br />

From info@telekom.de Tue May 17 19:58:45 2005<br />

Date: Tue, 17 May 2005 11:00:30 -0700<br />

From: info@telekom.de<br />

To: ****@****.***.se<br />

Subject: Telekom<br />

Sehr geehrte Kundin, sehr geehrter Kunde,<br />

die Gesamtsumme für Ihre Rechnung im Monat Mai 2005 beträgt: 256,59 E<strong>ur</strong>o.<br />

Aus Sicherheitsgründen haben wir ihre Rechnung mit einem Passwort versehen.<br />

Ihr persönliches Passwort lautet: Augen<br />

Mit dieser E-Mail erhalten Sie Ihre aktuelle Telekom-Rechnung und -soweit von<br />

Ihnen beauftragt- die Einzelverbindungsübersicht.<br />

Nutzen Sie auch unter www.t-com.de/rechnung-online die vielfältigen<br />

Möglichkeiten von Rechnung Online, wie z.B. Sortierungs- und<br />

Auswertungsfunktionen. Hier finden Sie auf der Seite ganz oben links<br />

unter "Hilfe/FAQ" auch nützliche Tipps z<strong>ur</strong> Nutzung von<br />

Rechnung Online.<br />

Mit freundlichen Grüßen<br />

Ihre Deutsche Telekom<br />

[ Part 2, Application/X-ZIP-COMPRESSED 5.4KB. ]<br />

[ Unable to print this part. ]<br />

67

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!