Trusted Computing ur datasäkerhetssynpunkt - Umeå universitet
Trusted Computing ur datasäkerhetssynpunkt - Umeå universitet
Trusted Computing ur datasäkerhetssynpunkt - Umeå universitet
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