Trusted Computing ur datasäkerhetssynpunkt Gunnar Söderman <di98gsn@cs.umu.se> 11 augusti 2005
Referencing To reference this master s thesis the following BIBTEX entry might be helpful. @Mastersthesis{Södeman:ngscb, author = "Gunnar Söderman", title = "Trusted Computing ur datasäkerhetssynpunkt", school = "University of Umeå", year = "2005", month = "aug 11", url = "http://www.cs.umu.se/~di98gsn/thesis/" }
Sammanfattning Trusted Computing (TC) har sedan år 2002 varit ett stort samtalsämne inom datasäkerhetsområdet. Denna rapport försöker bringa klarhet i nyttan för ett företag att använda Microsofts implementation av TC, kallad Next Generation Secure Computing Base (NGSCB). Rapporten ger en översikt av säkerhetsområdet och specifikationen av Trusted Platform Module. Vidare utreds hur NGSCB fungerar och hur det lever upp till den standard som Trusted Computing Group fastslagit. NGSCB utvärderas dels ur en teknisk men även ur en ekonomisk synvinkel. Slutligen diskuteras några av de olika åsikterna runt NGSCB och TC. Abstract Since year 2002 Trusted Computing (TC) has been a topic in computer security. This thesis tries to explore the subject of the usefulness of Microsofts implementation of TC, called Next Generation Secure Computing Base (NGSCB). An overview of the computer security area is given together with an overview of the Trusted Platform Module. The report proceeds with an overview of NGSCB in relation to the standard given by Trusted Computing Group. An analysis of NGSCB from a technical and economical point of view is performed. The report is concluded by a summary of the opinions regarding NGSCB and TC.
Innehåll 1 Inledning 1 1.1 Förkunskaper............................ 3 1.2 Mål................................. 3 1.3 Upplägg............................... 3 2 Säkerhet 5 2.1 Tillgänglighet............................ 12 2.2 Konfidentialitet........................... 12 2.3 Integritet............................... 12 2.4 Tillit................................. 13 2.5 Hotbilder.............................. 14 2.6 Identifiering............................. 15 2.7 Stark identifiering.......................... 16 2.7.1 Smartcards......................... 17 2.7.2 Biometriska system..................... 17 2.8 Kryptering.............................. 20 2.9 Slumptalsgenerering........................ 24 2.10 Hashning.............................. 24 2.11 Public Key Infrastructure...................... 25 2.12 Mjukvarans och hårdvarans roll i ett system............ 26 v
vi INNEHÅLL 2.13 Trusted Hardware och Trusted Computing............. 27 2.14 Trusted Computing Platform Alliance............... 29 3 Next Generation Secure Computing Base 33 3.1 Hårdvarukrav i NGSCB....................... 36 3.2 Kompatibilitet............................ 38 3.3 System-system kommunikation................... 38 3.4 NGSCB och TCPA......................... 39 3.5 NGSCB och öppna standarder................... 40 3.6 Systemets svagheter......................... 40 3.7 Ekonomiska aspekter........................ 42 4 Alternativ till NGSCB 45 4.1 Computer Integrity System..................... 46 4.2 Hårdvarubrandväggar........................ 48 4.3 TCPA tillsammans med GPL-plattformar............. 50 5 Diskussion 51 5.1 Åsikter runt NGSCB och TCPA.................. 53 5.2 Alternativa lösningar till NGSCB.................. 55 6 Sammanfattning 57 Ordlista 59 Referenser 63 A Phishing 67
Figurer 2.1 Man-in-the-middle attack...................... 10 2.2 Olika typer av kryptering...................... 22 2.3 En schematisk bild över TCPA.................... 30 3.1 En schematisk bild över NGSCB.................. 34 3.2 Ett blockdiadram över ett moderkort med en TPM......... 37 4.1 Ett diagram över certifikatdistributionen i CIS............ 47 5.1 En ljudfil från WinXP........................ 54 vii
Tack till Jag vill rikta ett stort tack till min handledare Jonny Petterson som varit ett oumbärligt stöd under arbetets gång. Vidare vill jag tacka Ola Ågren, David Jonsson och Daniel Jonsson för deras ovärderliga råd, insikter och diskussioner. Slutligen vill jag tacka alla på Föreningssparbanken IT, Umeå som hjälpt mig under tiden som arbetet fortlöpt. ix
1 Inledning Datasäkerhet är ett vitt begrepp med många ingående delar: Operativsystem, applikationer, hårdvara samt människorna som hanterar systemen. Fokus i säkerhet ligger enligt Anderson och Bishop kring integritet, konfidentialitet och tillgänglighet [2, 6]. Balansen mellan dessa är ofta unik för varje system, användningsområde och situation. Gemensamt för alla säkerhetsmodeller är dock att de måste komma in så tidigt som möjligt i bilden. För att en säkerhetsmodell ska vara effektiv krävs att den finns med redan i designstadiet av en applikation eller ett system [2]. På program eller systemnivå måste den appliceras så tidigt som möjligt, gärna före uppstart. Det är välkänt att den svagaste länken i kedjan utgör det största hotet mot ett företags informations- och systemintegritet [2, 6, 8]. Ofta beror bristfällig säkerhet på svagheter i de applikationer som körs på ett företag. Säkerhetsbrister i operativsystemet är vanliga, ofta beror de på rena programvarufel men ibland på bristande design. Det finns flera säkerhetslösningar men förhållandevis få system där säkerhet inkluderats redan i designstadiet. Detta examensarbete behandlar Trusted Computing (TC) och Microsofts Next Generation Computing Base (NGSCB), tidigare kallad Palladium. NGSCB är ett initiativ som delvis avser att höja säkerheten hos Microsofts operativsystem. Systemet är menat att bli en del av säkerhetslösningen i Windows Longhorn. Rapporten har till syfte att utröna om NGSCB ger några säkerhetsfördelar gentemot tidigare existerande lösningar eller om det på ett billigare sätt är möjligt att skapa ett likvärdigt skydd utan denna lösning. Under tiden som Microsofts arbete med NGSCB fortskridit har systemet kritiserats hårt från många håll. I vissa fall har detta medfört förändringar i specifikationen av NGSCB, enligt Kuhlmann [18]. Systemets uttalade mål är att förstärka möjligheterna till stark identifiering, skydd av känslig data samt skydd av upphovsrättsskyddat material. Kryptering är den främsta metoden som används för att uppnå dessa mål. NGSCB delar opera- 1
2 KAPITEL 1. INLEDNING tivsystemet i två delar en betrodd och en icke betrodd del. Den betrodda delen fungerar som ett eget operativsystem med en egen exekveringsstack medan den icke betrodda delen lämnas i stort sett oförändrad. De mål man försöker uppnå är stark processisolering, hårddiskryptering, säker körning samt säkra vägar till användaren. Genom att låt vissa processer köra i en egen del av minnet vilken är krypterad, skild och dold från övriga delar av systemet hoppas man skapa en bas för attestering av processer samt möjligheter till krypterad I/O. Hårddiskkrypteringen är främst menad att användas till data som är känslig ur NGSCBs synpunkt. Syftet är alltså inte att kryptera all data på en hårddisk. Krypterade tangentbord och möss används för att systemet ska kunna säkerställa att data från en lokal användare kommer från de lokala I/O-enheterna. NGSCB skyddar inte mot virus eller intrångsförsök, det kommer dock att erbjuda en metod för att se till att installerade program utför vad de är tänkta att göra. I ett företag skulle ett sådant system kunna användas för att hjälpa till att säkra noderna, det vill säga personalens terminaler. Utanför företagets väggar skulle systemet kunna användas för att ytterligare förstärka identifiering av kunden. Om en kund till exempel loggar in på sin banks hemsida kan banken använda systemet för att hjälpa till med stark autenticering av kunden, så länge denne befinner sig vid sin hemdator. Viktigt i sammanhanget är att NGSCB är ett valfritt system som levereras inaktiverat i grundinställningarna (så kallat Opt-in). I nuläget verkar det dock som om program kan kräva att NGSCB är aktiverat för att viss funktionalitet ska vara tillgänglig. En kritik som ofta kommer fram på olika forum är att NGSCB bara är en ny version av Microsofts Digital Rights Management (DRM). Kritiken tillbakavisas av Microsoft. NGSCB kan nästan kallas ett helhetsbegrepp, det innefattar allt från hårdvara till mjukvaran. Idén är att om säkerhet ska vara effektiv måste den finnas på ett så tidigt stadium som möjligt redan vid start av hårdvaran. Microsofts produkter har historiskt sett haft stor genomslagskraft, trots att de ofta varit hårt kritiserade. NGSCB har fått båda saklig och osaklig kritik. Tekniken har kritiserats ur ett tekniskt så väl som ett ekonomiskt perspektiv, men även ur ett socialvetenskapligt och ett jurdiskt perspektiv [3, 5, 7, 11, 38]. Denna rapport kommer att ta upp en del av denna kritik, även om det inte är dess huvudsakliga inriktning. Rapporten vill framför allt utreda NGSCBs betydelse för större företag. I de flesta exempel används en bank som utgångspunkt.
1.1. FÖRKUNSKAPER 3 1.1 Förkunskaper Rapporten riktar sig till programmerare, studenter och systemtekniker som inte är helt insatta i NGSCB eller TC. Rapporten är skriven under antagandet att läsaren har grundläggande kunskap om hur ett datorsystem fungerar och hur dess komponenter samverkar. Läsaren bör även ha en del grundläggande kännedom om brandväggar. För kryptologiavsnittet förutsätts grundläggande kunskaper inom diskret matematik och algebra. 1.2 Mål Rapportens mål är att beskriva Next Generation Secure Computing Base, Trusted Computing samt kringliggande tekniker med utgångspunkt i datasäkerhet. Rapporten vill även utreda NGSCBs betydelse för större företag. 1.3 Upplägg Avsnitt 2 börjar med en allmän översikt om området datasäkerhet samt en introduktion till begreppet tillit (eng. trust) i datasäkerhetssammanhang. Säkerhetsavsnittet tar även upp tre exempel på attacker. Detta för att kunna knyta samman begreppen hotbild och tillit samt för att ge stöd åt slutdiskussionen. Rapporten fortsätter sedan med en teknisk översikt över TCPA. Avsnitt 3 diskuterar NGSCB och är avsett att kunna läsas fristående från övriga delar av rapporten så länge läsaren har förståelse för de delar som tas upp i avsnitt 2. För att befästa förståelsen av NGSCB och för att visa att inte ens detta initiativ är felfritt kommer en del svagheter att tas upp. Dessa svagheter förekommer under utvecklingen av NGSCB och kan när som helst korrigeras, de är dock intressanta ur ett konceptuellt perspektiv. En viktig fråga framförallt för företag är kompatibilitet, både mellan olika system men även med gamla program. Avsnittet avser att klargöra hur NGSCB är tänkt att fungera och det tar även upp en del av systemets möjligheter och begränsningar. Eftersom datasäkerhet ofta är en ekonomisk fråga diskuteras detta i avsnitt 3.7. Avsnitt 4 behandlar en del befintliga säkerhetslösningar. Avsnittet tar framför allt upp en del lösningar som finns idag och hur dessa fungerar. Ett försök görs även att designa ett system vilket löser en del av de funktioner vilka NGSCB säger sig
4 KAPITEL 1. INLEDNING lösa. Sist i rapporten återfinns en ordlista med översättningar av en del engelska uttryck samt förklaringar av samtliga ej standardiserade förkortningar.
2 Säkerhet Säkerhet handlar om att skydda någons intressen utan att begränsa dennes handlingsförmåga på ett sådant sätt att denne inte kan utföra sitt arbete. De tre hörnstenarna är integritet, konfidentialitet och tillgänglighet [6]. För att säkerhet ska fungera i en applikation måste det finnas som ett funktionellt krav redan från början. Det är lika svårt att designa in säkerhet i efterhand som att designa in prestanda i efterhand. Om säkerhet inte är en del av designmålen från början kan det vara lättare att designa om applikationen från början än att försöka lägga på det i efterhand. Enligt Bishop kan en applikation som är dålig ur säkerhetssynpunkt därmed aldrig bli riktigt bra ur detta hänseende [6]. Att tillgänglighet relaterar till säkerhet är inte alltid självklart. Relationen blir dock klar om man betänker att en anställd behöver spendera tid på att gallra bort oönskad e-post (spam), kostnaden för ett företag blir därmed reell. Tomas Ögren, systemadministratör på Umeå Universitet uttrycker det väl med orden [47]: Något som hindrar mig från att göra det jag borde kunna göra kan klassas som ett säkerhetsproblem. För att tydliggöra problematiken redovisas nedan ett antal hot, attacker och problem. De tre vanligaste hoten mot ett system är malware, spam och intrångsförsök. Malware är vad som ibland kallas illasinnade program. Uttrycket innefattar virus, trojanska hästar, maskar och program specifikt framtagna för att kompromettera ett systems integritet, konfidentialitet eller tillgänglighet. Till malware räknas även de program som gör sådant de inte ska göra. Detta innefattar program vilka innehåller funktionalititet som avsiktligt eller oavsiktligt inte redovisas. Vidare kan sägas att malware är program vilka kan försättas i ett sådant tillstånd att de gör något som de inte ska göra. Vanligen rör det sig om programfel till exempel buggar, men det kan också vara att ett program används på ett sätt som konstruktören inte hade i åtanke när programmet blev designat. Med något som ett program inte 5
6 KAPITEL 2. SÄKERHET ska göra menas i det här fallet att programmet gör något som komprometterar ett systems integritet, konfidentialitet eller tillgänglighet. Ett program kan äventyra ett systems integritet genom att det till exempel av misstag skriver över ett systemprograms minnesbuffer. Samma fel kan skapa en situation där systemets integritet äventyras genom att systemet kraschar. Om ett systems konfidentialitet äventyras sker detta oftast genom användarfel men det händer att den programvara som används för att surfa på internet skapar situationer där ett intrång kan ske. [2] Spam har tidigare inte ansetts som en säkerhetsrisk i sig eftersom det funnits i en ganska begränsad utsträckning. När mängden oönskad e-post ökade under 2000- talet började virusföretag som bland andra Norton att inkludera spam-filter i sina produktsviter. Ett par problem med spam är att det kan belasta e-postservrar hårt och att användarna tvingas att ägna tid och irritation åt att ta hand om den. Spam blir därmed även en kostnad för företag. Phishing-attacker via e-post har med tiden blivit allt vanligare. Phishing har ofta syftet att lura en legitim kund på till exempel en bank att uppge persondata och/eller kreditkortsuppgifter (Se appendix A för ett exempel). Attacken kan genomföras på ett flertal sätt men ett är att den illvilliga parten skickar ett e-post till kunden vid banken med ett meddelande om till exempel: Det har uppdagats problem med ditt kontokort, logga in hos banken så hjälper vi dig att rätta till det. Kunden loggar in på vad han/hon tror är banken genom att följa den länk som är bifogad i e-postmeddelandet. Kunden kommer då till en sida som ser ut exakt som bankens hemsida men i själva verket är en sida administrerad av hackern. Här ombeds kunden att lämna en rad uppgifter om konton och personuppgifter. Rätt utförd är denna typ av attacker effektiv. Synen på spam som ett säkerhetsproblem kan därför sägas vara befogad, resonemanget stöds av Anderson och Strebe [2, 41]. Intrångsförsök kan ske på flera sätt och det händer att en kombination av olika tekniker används. Det är vanligt att man använder buggar, malware och legitima program för att knäcka ett system. Buggar i program är vanliga och dessa kan utnyttjas på många sätt till detta ändamål. Legitima program används ofta för att få information om systemet och för att hämta data. Är användaren inloggad som administratör i systemet är risken stor att en hackare kan ta kontrollen över systemet direkt efter intrånget. [2, 41] Ofta handlar datasäkerhet om att skydda en persons eller ett företags integritet. På operativsystem-nivå handlar det delvis om att begränsa en användares rättigheter till att komma åt information, använda program eller att göra vissa systeminställningar. Denna företeelse kallas i regel helt enkelt för en användares rättigheter. Systemets integritet ska skyddas i så hög grad som möjligt samtidigt som dess konfidentialitet inte äventyras. De två delarna konfidentialitet och integritet måste alltså balanseras mot ett systems tillgänglighet. Användarna kan uppleva situa-
7 tionen så att ju fler rättigheter de har, desto högre tillgänglighet har systemet. Ett system där användaren får installera vilka programvaror hon själv vill är mer tillgängligt (användbart, i det här fallet) än ett där hon inte får installera några program alls. Om systemet kraschar på grund av att en användare gjort något fel sjunker systemets tillgänglighet. På grund av detta kan man säga att [2, 41, 47]: En person som har rätt att göra något ska kunna göra det. En person som ej har rätt att göra något ska ej kunna det. En person ska ej kunna skaffa mer rättigheter än denne ska ha. Integritet är inte nödvändigtvis knuten till användaren eller ägaren av systemet utan kan även vara knutet till systemet själv. Datasäkerhet är därför ofta svårt att förstå och svårt att tillämpa. För att ge ett par exempel: En person (David) startar sin dator hemma. Som hemanvändare har han lagt in en del data om sig själv i systemet: sitt namn, sin adress samt en uppsättning användarnamn och lösenord, bland annat till sin bank och till sin e-post. Den data (lösenord, användarnamn samt personuppgifter) som finns i systemet kan ses som känslig. Genom att lura David att ladda ner en trojansk häst lyckas en utomstående människa (Berit) tillförskansa sig kontrollen över Davids system. Berit använder sedan Davids användarnamn och lösenord för att logga in på Davids bank för att länsa hans konto. Även om Davids personnummer inte finns i systemet är detta inte speciellt svårt att ta reda på när man väl känner till namn och adress. Med fullständiga personuppgifter, de lösenord som finns i datorn samt en smula fantasi kan han åsamkas stor ekonomisk och personlig skada. I detta mycket förenklade fall visas på två system vilka är felaktigt designade ur ett säkerhetsperspektiv. Detta förenklade fall visar på en mycket allvarlig attack. Ett av de viktigaste problemen här är verifikation av vem som loggar in. Banken försäkrar sig inte om att det verkligen är David och ingen annan som loggar in på deras system, utan accepterar blint användarnamn och lösenord. Eftersom den dator som David använder blivit komprometterad med hjälp av ett malware är den känslig mot attacker. Då han lagt viktiga persondata på hårddisken
8 KAPITEL 2. SÄKERHET går dessa att komma åt av alla som kan logga in på hans dator förutsatt att den som loggar in har rättigheter att läsa hans filer. När Berit tar kontrollen blir följden att Davids integritet blir kränkt och att hans ekonomi blir skadad. Även om David har ett visst ansvar för sin egen säkerhet ligger det huvudsakliga ansvaret i detta fall på någon annan. Eftersom banken inte kan utgå från att David har den kunskap som krävs för att hans egen integritet ska skyddas ligger ansvaret för säkerheten hos dem. Genom antagandet att användaren har full kontroll och kunskap över säkerheten i det system denne utnyttjar minskar även tillförlitligheten för systemet. En bättre lösning återfinns på sidan 9. Även om exemplet är gravt förenklat ger det en god inkörsport till de frågor man bör ställa sig vid utformandet av en hotbild: 1. Vem vill vi skydda? 2. Varför vill vi skydda denne? 3. Vem litar vi på? 4. Varför litar vi på denne? Datasäkerhet handlar mycket om tillit. En betrodd person är i datasäkerhetssammanhang: Någon som kan skada vår integritet. Vi måste därför vara försiktiga med vem vi litar på och vi måste framför allt veta varför vi litar på denna. Ibland krävs en starkare form av identifiering för att man ska kunna placera tillit hos någon. I Davids fall blir kanske svaren på frågorna ovan: 1. Jag vill skydda mig själv och mina intressen. 2. Jag kan åsamkas ekonomisk skada. 3. Jag litar på min bank inte mitt system. 4. Jag tror att banken har mer att förlora på att skada min integritet än de har att vinna. Banken har kanske dessa tankar: 1. Vi vill skydda oss och våra intressen. Kunderna är vår viktigaste inkomstkälla och därför måste även deras intressen skyddas utan att deras integritet kränks.
9 2. En konkurrent kanske vill stjäla information om oss. Om en kunds integritet skadas kommer denne att tappa sitt förtroende för banken även om banken ersätter denne till fullo. 3. Vi litar på att våra kunder gör sitt bästa för att skydda sig själva och sin egen integritet. Denna tillit förstärks med hjälp av uttryckliga krav på varje kund. 4. Ingen människa vill utsättas för ekonomisk skada därför kommer de krav banken ställer på kundens säkerhetstänkande att efterlevas. Om vi nu utökar exemplet från sida 7 lite, målet denna gång är att stoppa Berit från att tillförskansa sig den information vi vill skydda (lösenorden till banken och e- posten) genom att göra intrång i Davids dator. Genom att göra intrång i datorn ska hon inte få tillgång till den data hon behöver för att direkt stjäla från Davids konto. Notera att all data inte kommer att skyddas; namn, adress och inloggningsdata till Davids e-post finns fortfarande kvar på så sätt att Berit kan stjäla dem För att stoppa användaren från att spara sitt lösenord på sin dator väljer banken att förse användaren med något man väljer att kalla en säkerhetsdosa. Säkerhetsdosan förser användaren med ett nytt lösenord varje gång denne loggar in på bankens system. Vidare används krypterad överföring när kunden loggar in på sitt konto. Ett av målen är att inte göra saker onödigt komplicerade för kunden. Så länge användaren tvingas att logga in med hjälp av säkerhetsdosan kan banken försäkra sig om att det är ägaren av kontot eller någon som ägaren litar på som försöker logga in. Banken ställer dessutom kravet att kunden ska handha och förvara säkerhetsdosan med samma omsorg som andra värdehandlingar. Dessa åtgärder medför att systemet totalt sett blir mer tillförlitligt för både användare och bank. Den uppenbara risken för David privatliv, lösenordet till hans e-post skyddas inte av banken. Å andra sidan riskerar han inte att Berit stjäl pengar genom att göra intrång i hans dator. Anledningen till att systemet kan ses som mer tillförlitligt är att det införts en form av stark identifiering. Detta införande har kombinerats med ett försök att väcka kundens uppmärksamhet om säkerhet. Genom att tala om för kunden att säkerhetsdosan är ett värdeföremål har man försökt få kunden att ta bättre vara på sin identitetshandling. En säkerhetsdosa har även den effekten att tjänsten att nyttja sin bank får ett reellt fysiskt värde, det är någonting mer än en vanlig hemsida. Eftersom banken ställer kravet att säkerhetsdosan ska handhas med samma
10 KAPITEL 2. SÄKERHET omsorg som andra värdehandlingar förstärks känslan ytterligare att dosan har ett reellt värde. Banken har en viktig roll att spela här, det är de som står i position att hjälpa användaren till en säkrare datoranvänding i det här fallet. Det finns dock problem som varken bank eller kund kan skydda sig mot till fullo. Ett av dessa är sådana som beror på svagheter i mellanliggande system, vilka ingen av de två parterna har kontroll över. En typ av attack som går att genomföra i de mellanliggande systemen är man-in-the-middle attacken. (a) Fas 1 Login (b) Fas 2 Kontosignering (c) Fas 3 Överföring Figur 2.1: En man-in-the-middle attack med syfte att överföra pengar till ett för kunden okänt konto. Den första bilden (2.1a) visar attackens början. Angriparen Berit (B i figuren) har skapat en hemsida som liknar den som tillhör Davids (A i figuren) bank (Bank i figuren). När David först kommer till inloggningssidan gör Berit ett försök att logga in på Davids bank banken begär då en kontrollsiffra (2.1a.1). När David försöker logga in på vad han tror är sin bank (figur 2.1a.2) får han som vanligt en förfrågan om koden från säkerhetsdosan. Efter han avgivit den (2.1a.3) kan Berit skicka den vidare till banken (2.1a.4). När Berit loggat in på banken ger hon David en felutskrift och ber om en ny kontrollsiffra (2.1b.3). Med denna kan hon sedan skapa ett överföringskonto till sig själv. Genom att göra om fas 2 genomför hon sedan överföringen av Davids pengar.
11 Exemplet i figur 2.1 på motstående sida baserar sig på Mafia in the middle attack exemplet på sid. 25 i Anderson [2] samt bygger vidare på exemplet från sida 9. Istället för att göra intrång i offrets dator väljer angriparen att anfalla utifrån genom att skapa en hemsida vilken efterliknar offrets bank. Hemsidan används sedan för en så kallad man-in-the-middle attack. Den sista attacken visar att hela systemet från användare till (i det här fallet) bank är sårbart. Även om en man-inthe-middle attackkräver att angriparen har tagit över betrodd server av något slag till exempel en Internet leverantör. Eftersom leverantören av internetanslutningen är betrodd skapar det också en situation där användaren (dvs. David) blir sårbar om denna anslutning blir komprometterad. Exemplen på attacker ovan visar alltså att: Hela systemet är sårbart, inte bara de två som kommunicerar utan även alla routrar, hubbar och servrar som ligger emellan. Konfidentiell data kräver säker och pålitlig lagring. Ett systems tillgänglighet ökar när konnektiviteten ökar. Användare måste ha tillit till system de inte har full kontroll över. Intrång kan ske på flera sätt. I detta avsnitt har två påvisats. Dels ett där angriparen använde sig av en malware för att komma åt offrets data samt gav angriparen möjlighet att stjäla pengar från David. Det andra exemplet visade på en motåtgärd från bankens sida vilken löste problemet tillfälligt utan att minska tillgängligheten för kunden nämnvärt. Det sista exemplet visade på en attack där angriparen komprometterade en dator som stod utanför både bankens eller kundens kontroll. Denna inledning till området datasäkerhet visar att säkerhet är en iterativ process. Följande delar i detta kapitel kommer att ta upp en del grundläggande begrepp och definitioner så väl som en del hotbilder med exempel på medföljande attacker. De två sista avsnitten tar upp Trusted Computing och Trusted Computing Alliance.
12 KAPITEL 2. SÄKERHET 2.1 Tillgänglighet Tillgänglighet innebär förmågan att använda önskad data eller resurs. Tillgänglighet är en viktig aspekt av ett systems tillförlitlighet så väl som av ett systems design. Ett otillgängligt system är ofta samma sak som inget system. Två aspekter av tillgänglighet är hjälpfunktionaliteten i ett program samt möjligheten att nå en internetbank. Genom en så kallad Denial of Serice attack (DoS) är det möjligt att arrangera en situation sådan att resursen är omöjlig att nå. Något som liknar en DoS kan dock vara tidpunkter då belastningen normalt är hög. [6] 2.2 Konfidentialitet Uttrycket konfidentialitet innebär döljandet av information och resurser [6]. Behovet är störst i känsliga användningsområden; till exempel statliga-, industrieller bankapplikationer [2]. Vanligtvis när man vill förstärka konfidentialiteten vid kommunikation eller datalagring använder man kryptografi. Genom att kryptera data hoppas man kunna skydda den från insyn. Meningen är att endast den med rätt nyckel ska kunna läsa den data som lagrats eller skickats. En kryptografisk nyckel kontrollerar tillgången till data i klartext. Att nyckeln kontrollerar möjligheten att läsa data innebär att nyckeln själv behöver skyddas. Konfidentialitet innebär ibland även att existensen av data måste skyddas. För att ett företag ska kunna ha komplett systemsäkerhet vill de ofta skydda information om vilka system de har. Alla mekanismer som kräver konfidentialitet kräver stöd för detta från systemet. Antagandet är att de säkerhetstjänster som finns kan stödja sig på kerneln för korrekt data. Tillit och antaganden ligger till grund för konfidentialitetsmekanismer [6]. 2.3 Integritet Integritet refererar till trovärdigheten hos data och resurser. Vanligen diskuteras ämnet i termer av otillåten, olämplig eller felaktig förändring. Begreppet inkluderar även dataintegritet och källintegritet (identifikation och auktorisering). Centrala begrepp för integritet är trovärdighet och tillförlitlighet enligt Bishop [6].
2.4. TILLIT 13 2.4 Tillit Tillit är i det här sammanhanget ett mångfasetterat begrepp. En användare måste lita på sitt system. Det innebär att användaren måste lita på tillverkaren av hårdvaran, all mjukvara samt även de rutiner företag har där data om användaren eller dennes system finns lagrad. Företagets kedja av tillit följer samma modell: företaget litar på sina anställda, hårdvaran, mjukvaran samt även sina kunder och övriga som kan ha känslig information om företaget eller dess produkter. Vissa delar av företagens kedja av tillit kan ordnas med hjälp av kontrakt, fysiska lås och säkerhetsrutiner. Detsamma gäller den enskilde privatpersonen. Oavsett hur stor kunskap och iniativförmåga det finns kommer man alltid till en punkt där man måste börja ha tillit [6]. Det är inte alltid trivialt att välja vem som ska vara betrodd. Användarnamn och lösenord kan glömmas bort eller blir stulna. Det är inte alltid omöjligt att avlyssna krypterade överföringar. Då signalen måste omvandlas i flera steg på vägen mellan sändare och mottagare kan svagheter introduceras var som helst i kedjan enligt Anderson [2]. Ett företag vill avgöra om en person är den han utger sig för att vara. Företaget har en policy att använda SSL-nycklar utfärdade av VeriSign ett stort företag specialiserat på att utfärda dylika certifikat. Genom att använda detta system måste både företaget och kunden lita på att den dator de använder för att verifiera sina certifikat verkligen är administrerad av VeriSign och inte en illvillig tredje part [2]. Tillit baserar sig ofta på öppenhet, oavsett vilket system man väljer kommer det att ha säkerhetshål. Anderson, Bishop och Schneier har ofta sagt att datorsäkerhet är en iterativ process. Genom att ett system knäcks kan man hitta potentiella säkerhetshål i andra system. Det är bara genom att vara öppen med dessa säkerhetshål som man kan laga de fel som uppstår. Ett säkerhetssystem som är öppet för insyn blir säkrare ju öppnare det är. Det är på den grunden man kan bygga tillit. Ordet tillit i detta sammanhang betyder därmed någon eller något som kan bryta vår säkerhet. Genom att veta vem man litar på kan man skapa sig en bild av vilka hot som finns mot systemets integritet [2, 6].
14 KAPITEL 2. SÄKERHET 2.5 Hotbilder Det finns ett flertal hot mot ett systems integritet. Ett hot är intrång, vilket innebär att en person utan ägarens eller användarens vetskap skaffar sig tillgång till systemet. Intrång i ett system kan ske på ett flertal sätt. En anställd på ett företag kan genom slarv eller illvilja ge bort ett lösenord. Ett exempel på slarv vore att skriva ner ett lösenord på en lapp och förvara denna under tangentbordet. Vid inbrott skulle en sådan lapp snabbt hittas. En svaghet i systemet kan utnyttjas för intrång eller stöld av information. Svagheter kan uppstå genom att en administratör inte stänger av tjänster som inte används. Det finns dock fall då vitala tjänster medför risker, om dessa risker inte uppmärksammas kan de vara hot mot företagets system. Svagheter i andras system kan medföra risker för det egna systemet. Skulle en attack genomföras mot ett externt system som det egna företaget litar på skulle det kunna innebära en mängd risker för den egna säkerheten. En Internet Service Provider (ISP) som blir hackad är ett konkret exempel. Eftersom en ISP är betrodd av systemet för att tillhandahålla tjänster så som en internetuppkoppling kan en man-in-the-middle attack genomföras (se 10). En malware kan bli installerad på användarens dator (se sida 7) och därmed medföra en rad risker. Avlyssning av den data som flödar till och från ett system är en annan hotbild. Data kan avlyssnas på ett flertal sätt i ett datorsystem: Malware kan användas för avlyssning av data. Ett sätt att genomföra detta är användandet av trojanska hästar. Dessa maskerar sig ofta som nyttinga program men utför alltid något som användaren inte tänkt sig. Syftet kan vara att avlyssna alla tangenttryckningar och lyssna efter användarnamn och lösenord. Skydd av lösenord är en av de viktigaste men samtidigt en av de svåraste utmaningarna enligt Anderson [2]. All data som flödar i systemet kan avlyssnas på detta sätt [2, 41]. Data kan även avlyssnas elektroniskt antingen genom att man installerar någon form av avlyssningsmodul på en kabel eller genom beröringsfri mätning. Avlyssningen kan ske var som helst mellan användare, terminal och mottagare. Det är även möjligt att stjäla data som visas på en skärm med hjälp av beröringsfri mätning men det kräver avancerad utrustning för att vara effektivt. Ett vanligt hot mot ett system är dock legitima program som används på ett sätt som det inte var tänkt och därmed förorsakar risker för systemet [2].
2.6. IDENTIFIERING 15 När det finns risk för avlyssning måste man bestämma sig för vad som är hemligt och inte, vilka skyddsåtgärder som är rimliga och vilka attacker som är troliga. Den data som är hemlig måste skyddas, antingen via kryptering eller på annat sätt. Telnet och HTTP, vilka är de två vanligaste protokollen som används över internet, kommunicerar okrypterat Användarnamn, lösenord och allt annat som skickas sänds i klartext. Avlyssning av informationen blir därmed trivial. Varje hotbild mot ett system måste följas av en åtgärdsplan och en bedömning av hur troligt det är att en attack genomförs baserat på hotet. Ytterligare en bedömning av hotet är en ekonomisk bild vad blir den ekonomiska skadan vid en attack? Vid en ekonomisk kalkyl bör ett troligt och ett värsta scenario tas fram. Om kostnaderna för åtgärderna är lägre än den ekonomiska skadan bör de genomföras [2]. Slutligen bör sägas att det största hotet mot säkerheten hos ett system på ett företag alltid är en människa, användaren eller en betrodd anställd. Eftersom användarna är betrodda är det även de som utgör den största risken. En stor del av alla datorintrång och bedrägerier som sker på företag utförs av anställda eller före detta anställda. Dessa attacker går inte alltid att förutsäga eftersom de ofta beror på brister i mjuka värden som till exempel bristande ledarskap, lön, brist på visad uppskattning och allmänt missnöje [6, 41]. 2.6 Identifiering Ett system måste ofta identifiera vem som använder systemet, man vill begränsa tillgången till företagets resurser till de anställda eller till företagets kunder. Den vanligaste formen av identifiering är användarnamn och lösenord. En användare identifieras genom följande kriterier Användaren och Williams [6, 45]: 1. Något du vet. Detta är en delad hemlighet, oftast ett lösenord eller en kod. 2. Något du har. Till exempel en nyckel eller ett smart card. När man kombinerar med den första får man stark tvåfaktoridentifiering. 3. Något du är. Till exempel fingeravtryck eller identifikation av en vakt. När man kombinerar denna med de två ovanstående får man stark trefaktoridentifiering. 4. Var du är. Var man är kan innebära en viss terminal eller en viss position. Viss programvara kanske bara får användas från en viss terminal. En
16 KAPITEL 2. SÄKERHET anställd kanske inte får se viss känslig information på sin laptop om denne befinner sig på annan plats än på kontoret. En metod som ibland tillämpas är att man kombinerar den första med den sista: En viss användare får bara använda en viss resurs från en viss dator, symboliserad av datorns IP-nummer. Svagheten i den här lösningen är att man litar på den dator användaren loggar in från samt att hon inte tappat kontrollen över sitt användarnamn och lösenord. Eftersom IP-nummer går att stjäla genom så kallad spoofing behöver angriparen inte göra något intrång i offrets dator. Resonemanget leder oss in på stark identifiering och hur detta kan lösas i praktiken. 2.7 Stark identifiering I avsnitt 2.6 diskuterades olika former av identifiering och användarverifikation. Stark identifiering uppnås genom en kombination av delarna: något du vet, något du har, något du är samt var du är (se def. i avsnitt 2.6). Tvåfaktoridentifiering uppnås genom att använda två av delarna. Trefaktoridentifiering genom att kombinera tre och fyrfaktoridentifiering uppnås genom att kombinera alla fyra. Exemplet på sida 9 visade på en metod för inloggning som är starkare än ett vanligt användarnamn och lösenord. Det tillvägagångssätt man hade valt med hjälp av säkerhetsdosan var att förstärka den gemensamma kunskapen (något man vet) genom att kombinera med den fysiska delen (något man har). Kombinationen uppstår genom att man visar att man har rätt dosa och kan använda den. Användningen av den personliga säkerhetsdosan måste alltså även den vara skyddad genom till exempel ett lösenord. Trots att man inte blandar in biometrisk information kan en långt bättre säkerhet än den traditionella användare/lösenordlösningen uppnås. Tillförlitlig identifikation är ofta både svårt och opraktiskt, alla metoder har sina svagheter. Den vanligaste formen av identifiering är användarnamn och lösenord en form av identifiering som är väl känd och lätt att förstå. Nackdelen med användarnamn och lösenord är att säkerheten är avhängig hur bra lösenordet är uppbygd. Ett abstrakt lösenord som är svårt att gissa och svårt att generera är ett bra lösenord. Tyvärr är sådana lösenord svåra att komma ihåg så användare tenderar att välja lösenord som är allt för enkla, till exempel namnet på ett husdjur eller familjemedlem eller skriver upp lösenordet på en lapp. För att undkomma dessa enklare fällor används stark identifiering. Det finns ett flertal former, här kommer några att diskuteras.
2.7. STARK IDENTIFIERING 17 2.7.1 Smartcards En väl spridd säkerhetslösning är smartcard-lösningar. Smartcards används för att identifiera personer mot system. Användaren använder ett ID-kort med en inbyggd krets vilken identifierar honom eller henne mot systemet. Det finns många olika lösningar på marknaden idag. Ett exempel är SafeGuard PrivateCrypto från Utimaco. Denna lösning används till bland annat hårddiskryptering. Ett smartcard är per definition en passiv lösning. Det får inte ha förmåga att ta kontrollen över systemet. Ett Smartcard används för stark identifiering av personer. Lösningen kräver dock ett fysiskt kort som användaren måste bära med sig. Till kortet finns det även ett lösenord vilket även det måste skyddas. För denna teknik finns många starka argument. Först och främst är den enklare än användarnamn/lösen vilket är det förhärskande säkerhetsparadigmet idag. Användaren kan helt enkelt se det som att hennes användarnamn ersätts av det kort hon använder. För att identifiera sig mot ett smartcard används lösenord. En stor fördel är att kortet (precis som en vanlig nyckel) går att låsa in i ett kassaskåp. En annan är att kortet går att byta ut eller ersätta om det komprometteras eller tappas bort. Ett problem med smartcard-system är att säkerhetskorten går att tappa bort. Ytterligare ett problem är att ett smartcard identifierar kortet, inte användaren. Eftersom det inte finns något effektivt sätt att hindra detta är det många som istället argumenterar för biometriska system. 2.7.2 Biometriska system Biometriska system blir allt mer populära. De faller under kategorin något du är (se sida 15) och understödjer därför identifiering av människor. Bruce Schneier säger att biometriska system är användbara men de inte är nycklar. En nyckel karaktäriseras enligt Schneier av att [37]: Den är slumpmässig. Den kan hållas hemlig. Den kan uppdateras eller förstöras. Biometrisk data saknar samtliga dessa egenskaper men de är användbara som ersättning för en skriven signatur eller en PIN samt när kopplingen mellan använ-
18 KAPITEL 2. SÄKERHET daren och den som verifierar signaturen är säker [2, 9]. Biometri är även användbart när man bara behöver en signatur vilken är svår att förfalska [2]. Kroppsdelar och biologisk information så som DNA går inte att tappa bort. Informationen är dessutom strikt personligt identifierande. Den vanligaste typen av biometrisk inloggning är fingeravtryckssystem. Anledningen är ofta ekonomisk (fingeravtryksläsare är förhållandevis billiga) men även att det är lättare att acceptera en fingeravtrycksscanner än till exempel en retinascanner [2]. Det finns flera typer av biometriska system, nedan följer ett axplock: Ansiktsigenkänning. En person identifieras genom till exempel mönstermatchning av ansiktet mot en intern databas. Röstigenkänning. Fungerar på samma sätt som ansiktsigenkänning förutom att mönstermatchningen sker på ett röstprov. DNA-analys. Innebär att man genom biomassa från en individ till exempel blod eller hudavskrap kan identifiera denne. Retinakontroll. En person identifieras via det unika mönstret av blodkärl som finns i människans ögonbotten. Handavtryck. En person identifieras av att ett avtryck av hela handen används. Fingeravtryck. En person identifieras genom sitt fingeravtryck. Under normal drift kan två typer av fel uppkomma: Falsk acceptering och falskt avslag. Falsk acceptering innebär att systemet felaktigt tror att en person är någon hon inte är. Felet är ekvivalent med att bli accepetarad med falskt ID-kort. Falskt avslag är när en person med legitim tillgång till systemet blir nekad. Anderson kallar dessa två för bedrägeriratio (Eng. fraud rate) och förolämpningsratio (Eng. insult rate) [2]. Alla metoder för identifiering är felbara men de biometriska metoderna är ofta antingen känsliga för förändringar, osäkra eller lättlurade. Ålder påverkar de flesta typer av biometriska system; alla delar av kroppen i åldras och förändras med tiden. En användare kan dessutom råka ut för en olycka som gör identifikation via en viss biometrisk metod temporärt eller permanent omöjlig. Biometrisk data har en del egenskaper som gör att den är direkt olämplig som nyckel: Biometrisk data är inte hemlig. Om den biometriska signaturen blir stulen är den inte utbytbar. De är inte heller slumpmässiga. Matsumoto et. al. listar ett antal
2.7. STARK IDENTIFIERING 19 attacker mot fingeravtrycksläsare som visar på dessa brister. Den mest drastiska attacken är att ett finger kan skäras av från kroppen [21]. Attacken är ett exempel på att starkare identifiering kan ge upphov till mer drastiska eller våldsamma sätt att bryta sig in i systemen. Ett rejält sår i ett finger från till en kökskniv eller en het platta kan under en tid göra fingeravtryck på ett eller flera fingrar helt obrukbara som identifikationsmedel. Fingeravtrycksläsare är dessutom ofta lätta att lura. Ett fingeravtryck är inte speciellt svårt att få tag på, det som egentligen behövs är lite hjälp från insidan, antingen medveten genom att en person låter någon kopiera ett giltigt fingeravtryck eller genom att man stjäl det till exempel från ett glas som offret använt. Matsumoto och senare även Sandström har demonstrerat metoder för att utföra attacker mot fingeravtrycksläsare [21, 35]. Röstigenkänning är mer otillförlitliga än de övriga eftersom metoden är känslig för till exempel sjukdomar eller alkoholpåverkan. Om en person är alkoholpåverkad, äter starka mediciner eller bara lider av en förkylning kan det alltså hända att systemet nekar personen tillträde enligt Anderson [2]. Ansiktsigenkänningssystem är opraktiska eftersom de ofta misslyckas. Systemet är ungefär lika ineffektivt som en otränad människa. DNA-analys är opraktiskt, det kan ta flera timmar för en exakt analys, dessutom måste den idag ske manuellt. DNA som identifieringsmetod för datorsystem hör därmed framtiden till. Retinakontroll är visserligen oerhört exakt, men vi som människor är ofta misstänksamma mot den utrustning som finns för kontroll idag. Handavtrycksläsare är skrymmande och ger en högre grad av felaktiga identifieringar än fingeravtryck [2]. Vidare upplevs många av de metoderna för biometrisk identifiering som kränkande eller skrämmande. På grund av den höga graden misslyckade identifieringar rekommenderar Microsoft att ytterligare åtgärder, till exempel smartcards skall användas för att garantera stark identifiering [27, 28]. Det finns dock exempel på när kombinationer av biometriska system har använts för identifikation men där resultatet blivit att den totala mängden misslyckade identifieringar ökat [2]. Det händer att biometrisk data används som lösenord men användaren kan inte välja ett svagt fingeravtryck på samma sätt som hon kan välja ett svagt lösenord. Om den biometriska signaturen blir stulen går den inte att byta ut [2].
20 KAPITEL 2. SÄKERHET 2.8 Kryptering Kryptering av meddelanden är en av de äldsta metoderna för att skicka konfidentiell data över en publikt tillgänglig kanal. Olika strategier har förekommit ända sedan antiken. Idag använder privatpersoner kryptering för bland annat e-handel och i vissa fall e-post när konfidentialitet är prioriterat. En person som visat sig viktig för utvecklingen av de kryptografiska metoderna är Auguste Kerckhoffs. Han slog fast några av de mest citerade principerna för kryptografiska system [15]: 1. Systemet måste vara svårt om än inte matematiskt omöjligt att dechiffrera. 2. Säkerheten får inte ligga i systemet, det ska kunna bli stulet av fienden utan att det skapar problem. 3. Nycklar måste vara lätta att byta och minnas utan att de ska behöva skrivas ner och de måste vara lätta att dela och modifiera. 4. Systemet måste vara portabelt och det får inte kräva flera närvarande personer för att användas. 5. Systemet måste gå att applicera för telegrafkommunikation. 6. Beroende på de omständigheter under vilka systemet appliceras måste det vara lätt att använda systemet det ska varken behöva belasta sinnet eller kräva en lång lista med regler. Den allmänna uppfattningen om Kerckhoffs princip är att hemligheten ska ligga i nyckeln inte i algoritmen. Principen, ibland citerad som Kerckhoffs andra lag, citeras därför ofta som stöd för att krypteringsalgoritmer ska vara öppna. Tanken är dock att algoritmen ska kunna ses som öppen utan att säkerheten försvagas, inte att den nödvändigtvis måste vara det. Enkelheten hos systemen är idag intressant ur synvinkeln att systemen ska vara översiktliga och därmed möjliga att testa i sin helhet. Efter att arbetet med kryptering öppnades har säkerheten hos algoritmerna stärkts. Enligt både Anderson och Bishop har de algoritmer för kryptering som visat sig mest motståndskraftiga mot olika attacker har varit de som är offentliga eller baserade på öppen källkod [2, 6]. I enlighet med Kerckhoffs principer är detta ett förväntat resultat. Eftersom algoritmerna kan granskas av alla som kan tänkas vara intresserade blir effekten att de granskas hårdare och eventuella svagheter kan elimineras snabbare [2].
2.8. KRYPTERING 21 Alla kryptosystem är enligt Stinson en femtupel (M, C, K, E, D) där följande egenskaper uppfylls [40]: 1. M är en ändlig mängd läsbar text. 2. C är en ändlig mängd möjlig chiffertext. 3. K är en ändlig mängd nycklar (nyckelrymd) K. 4. För varje K K finns det en krypteringsregel e K E och en motsvarande avkrypteringsregel d K D. Varje e k : M C och d K : C M är funktioner sådana att d (ek (x)) = x för varje läsbar text x M. Egenskap 4 säger att en läsbar text x som krypteras med e K och avkrypteras med d K ger orginaltexten x som resultat [40]. Det finns två huvudsakliga typer av kryptering: Symmetrisk och assymetrisk. I symmetrisk kryptering använder både sändare och mottagare samma nyckel (se figur 2.2a). Utmaningen är att distribuera nycklar mellan kommunicerande parter. En lösning är att distribuera nyckeln med hjälp av assymetrisk kryptering [40]. När en säker kanal för utbyte av nyckel inte finns tillgänglig är symmetrisk kryptering inte alltid möjlig eller praktisk. Assymetrisk kryptering använder en tvådelad nyckel. Teorin bygger på ett svårlöst matematiskt problem med en bakdörr som gör att problemet kan lösas enkelt med hjälp av nyckeln till bakdörren. Det grundläggande villkoret är att givet krypteringsfunktionen e K ska det vara osannolikt att man ska kunna hitta avkrypteringsfunktionen d K [40]. Publik-nyckelkryptering är en lösning som används idag (se bild 2.2b). Nyckeln utgörs av ett nyckelpar K e och K d. Den offentliga nyckeln K e distribueras fritt medan den privata delen (K d ) hålls hemlig. När person A skickar ett meddelande till person B krypterar han meddelandet med Bs offentliga nyckel M 1 = crypt(k eb, M 1 ). Person B kan sedan läsa meddelandet genom att köra M 1 = decrypt(k db, M 1) [6, 40]. Utmaningen i publik-nyckelkryptering är att hålla de privata nycklarna konfidentiella under hela deras livstid samt att distribuera dessa på ett tillförlitligt sätt [6]. Nackdelen med assymetrisk nyckelkryptering är att den är cirka 1000-1500 gånger långsammare än kryptering med symmetriska nycklar [22, 40]. Assymetrisk nyckelkryptering går även att använda till signering av data. Genom att använda metoden till att skapa ett certifikat kan integritet hos data garanteras. I X.509 skapas ett certifikat genom att en hash beräknas av den aktuella identiten, varefter hashsumman krypteras [12]. Ett certifikat används för att knyta en
22 KAPITEL 2. SÄKERHET identitet till en viss data. Vanligtvis används certifikat vid nyckelsignering då man vill certifiera att en viss kryptografisk nyckel kommer från en viss person. Certifieringen används då för att lösa problemet med distributionen av publika nycklar. [40, 6] (a) Symmetrisk kryptering, både sändare och mottagare använder samma nyckel för alla operationer. (b) Assymetrisk kryptering med hjälp av publik-nyckelkryptering. Figur 2.2: kryptering. Kryptering och nyckeldistribution i symmetrisk och assymetrisk Ett exempel på symmetrisk kryptering är Data Encryption Standard (DES), från början en militär hemlighet. DES knäcktes kort efter att den släpptes till allmänheten [6, 8]. Eftersom DES därmed ansågs vara en osäker algoritm utvecklades dess ersättare, 3DES (även denna en symmetrisk krypteringsalgoritm) [6]. Den huvudsakliga kritiken mot DES är dess korta nyckellängd (56 bitar). Advance Encryption Standard (AES) lanserades år 2000 och är ersättaren till dessa två.
2.8. KRYPTERING 23 Utvecklingen av AES var öppen till skillnad från DES. AES är ett blockchiffer som klarar upp till 256 bitars nycklar. DES, 3DES och AES publicerades av National Institute for Standards and Technology (NIST) [32, 20]. Ett exempel på assymetrisk-nyckelkryptering är RSA. Säkerheten i RSA ligger i antagandet att krypteringsfunktionen är enkelriktad på så sätt att det är komputationellt osannolikt för en angripare att avkryptera chiffret. En definition på RSA tagen ur Stinson [40] återfinns nedan. Låt n = pq, där p och q är primtal. Låt M = C = Z n { } K = (n, p, q, a, b) : n = pq, ab 1(mod φ(n)) för K = (n, p, q, a, b), definiera e K (x) = x b mod n samt d k (y) = y a mod n (x, y Z n ) Värdena n och b är publika och p, q, a är privata. En attack mot RSA är att faktorisera n. Säkerheten är därför avhängig att n = pq är så stor att en faktorisering blir komputationellt opraktisk. En annan attack vore att att beräkna φ(n). Denna attack vore dock inte lättare att utföra än en faktorisering av n [40]. Det intressanta med kryptering är att öppenhet om algoritmerna har givit upphov till säkrare system, tvärt emot vad vissa trodde. Genom att fler kunnat titta på källkoden har fler kunnat hitta säkerhetsluckor och det har i sin tur gett en utveckling av området i sin helhet enligt Anderson och Bishop[1, 6].
24 KAPITEL 2. SÄKERHET 2.9 Slumptalsgenerering Säkerheten hos många kryptosystem är beroende av sättet på vilket man genererar krypteringsnycklar. Till detta används ofta slumptal. När slumptal genereras är det viktigt att det utförs på ett sådant sätt att en utomstående betraktare inte kan gissa vilket tal som kommer här näst. Den inbyggda funktionen i till exempel C eller Java är inte nog exakt (om man inte använder securerandom) för de flesta kryptografiska ändamål, framför allt om man använder systemets inbyggda klocka som bas för att generera talet. En säkrare metod för att skapa ett initieringsfrö är att ta det från något med en naturlig entropi. En lösning som används i Pretty Good Privacy (PGP) är att låta användaren röra på musen och trycka på tangentbordet lite slumpartat. En annan källa till naturlig entropi är ljudportar och olika former av bruskällor [2, 6, 9, 22, 40]. 2.10 Hashning Hash-nummer används för märkning av data. De vanligaste hash-metoderna är MD5 och SHA-1, båda bygger på MD4. En hashmetod tar en mängd data och beräknar ett unikt kontrollnummer för denna. Definition från Stinson [40]: En hashfunktion h är enkelriktad om och endast om, givet ett sammandraget meddelande z, det är komputationellt osannolikt att man skall finna ett meddelande x sådant att h(x) = z Med komputationellt osannolikt menas att det är osannolikt att lyckas inom rimlig tid. Wang et. al. skapade 2004 en algoritm för att hitta krockar i MD4 och MD5 på relativt kort tid [43]. Under 2005 visade Klima dessutom att det är möjligt att hitta krockar i MD5-nycklar på en enkel laptop under rimlig tid [16]. SHA-1 genererar ett 160 bitars tal av en obegränsad mängd data. Det skulle ta 2 80 operationer att hitta två meddelanden som ger samma kontrollsiffra. Om det inte finns någon algoritm sådan att det går att finna två lika nycklar på mindre än 2 80 operationer skulle SHA-1 vara krockfri [2, 20, 40]. Under februari 2004 lyckades det kinesiska forskarteamet från Shandonguniversitetet (Wang et. al.) visa att det finns en algoritm för att hitta krockar i SHA-1 på 2 69 operationer cirka 2000 gånger snabbare än tidigare [44]. Även om skillnaden är stor är det fortfarande bara på gränsen till möjligt att hitta två identiska nycklar.
2.11. PUBLIC KEY INFRASTRUCTURE 25 Då det nu finns en attack mot SHA-1 innebär att det är dags att byta till nya lösningar. Beviset berör inte andra metoder än SHA-1 och till exempel SHA-256 anses fortfarande vara säker. 2.11 Public Key Infrastructure Public Key Infrastructure (PKI) är en kombination mellan mjukvara, krypteringsteknologi och tjänster som möjliggör en högre säkerhet för kommunikation och affärstransaktioner över Internet [12, 9]. PKI är en integration av digitala certifikat, publik-nyckel kryptering och certifikats verifikation som tillsammans skapar en total säkerhetsarkitektur. PKI skyddar informationen på flera olika sätt: Verifierad identifikation. Certifikat tillåter användare och organisationer att verifiera båda parter i en internettransaktion. Verifiera integriteten. Certifikat försäkrar integriteten av data och förhindrar att data har ändrats eller blivit felaktigt under transaktionen. Skyddar data. Certifikat bevarar konfidentialitet hos data genom att den krypteras innan transaktionen. Auktoriserad tillgång. PKI lösningar kan ersätta användaridentiteter och lösenord för att förenkla inloggningsförfarande över intranät. Stödjer inte förnekande. Certifikat validerar användarna vilket senare försvårar förnekelser. För att en organisation skall kunna implementera PKI och fungera som en Certificate Authority (CA) finns det två olika möjligheter: Stängd eller öppen PKI. I det första fallet skapar företaget sin egen nyckel och tillhandahåller denna till berörda parter. Den andra versionen är att man litar på ett externt företag. Det externa företaget tillhandahåller certifikatet och bestyrker dess äkthet. Några exempel på företag som tillhandahåller signerade certifikat är VeriSign, Thawte och Posten. Bilden på sida 22 visar hur en publik-nyckel-server metod kan användas vid assymetrisk kryptering.
26 KAPITEL 2. SÄKERHET 2.12 Mjukvarans och hårdvarans roll i ett system Hårdvaran har framför allt två huvudfunktioner att uppfylla i ett system: Dels ska den vara den miljö i vilken mjukvaran körs och dels har den till uppgift att tillhandahålla tjänster vilka mjukvaran utnyttjar. Normalt är hårdvaran dedikerad till en enda sak: Ett grafikkort har till uppgift att visa grafik och utföra en del beräkningar för denna, en hårddisk lagrar data och en processor utför addition, subtraktion och förflyttningar av data. Hårdvara är alltså statisk i normalfallet. Dess inflexibilitet är både en för- och en nackdel ur ett säkerhetsperspektiv. Fördelen är att det blir svårare att attackera olika delar så som processor, närtverkskort och grafikkort. Nackdelen är att det inte alltid går att uppdatera hårdvara på ett enkelt sätt. Om en attack utförs mot en processor som använder HyperThreading skulle en uppdatering innebära ett byte av processor. Grunwald et. al. beskrev 2002 en attack mot denna arkitektur vilken fungerade som en DoS attack [10]. Vidare har Colin Percival nyligen publicerat en artikel om hur det genom en timingattack är möjligt att stjäla SSL och RSA nycklar direkt ur processorns cache [34]. När problem med hårdvara upptäcks går det i bästa fall att lösa via operativsystemet i annat fall får man stänga av den funktionalitet som äventyrar säkerheten om det är möjligt. När hårdvaran hotas att permanent förstöras eller komprometteras uppkommer de största riskerna, både för data- och systemintegritet. Ponera om en illvillig programmerare lade in en bit kod i moderkortet som gjorde så att all data som flödade genom minnet exponerades genom nätverkskortet och ut på nätverket. Attacken skulle inte kunna upptäckas annat än från utsidan av systemet. En annan risk vore att ett virus förstörde hårdvara, till exempel en hårddisk genom att radera dess MOS-krets. Virus som förstör data eller hårdvara har funnits länge. CIH (även kallat Chernobyl) är ett exempel på ett sådant. Viruset skapades av Chen Ing-hau 1998. En av dess versioner skadar CMOS på moderkortet. Även om det här viruset inte är något större hot idag visar det på att hårdvara kan skadas och till och med förstöras av malware, även utan direkt inverkan av användaren [46]. Vid designen av ett system görs en avvägning mellan tillgänglighet och säkerhet. Det kan ibland vara nödvändigt att sätta in begränsningar i tillgängligheten för att förstärka säkerhetsaspekterna och skydda data och system. Ett alternativ som är vanligt idag är att förändringar i BIOS måste ske före uppstart av operativsystemet. För att begränsa BIOS uppdateringar sätter man ibland en bygling på moderkortet. Vid normaldrift sitter bygeln i ett läge men måste kopplas om när det är dags för uppdatering. 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 funktioner i hårdvaran samt att om en förändring i BIOS måste ske innan operativsystemets uppstart blir det svårare för virus att attackera denna funktionalitet. Om BIOS som standard går att uppdatera via mjukvara måste operativsystemet ta hand om och skydda mot otillåten förändring. Konfidentialitet, integritet och tillgänglighet påverkar och påverkas av hårdvarans flexibilitet. Ett för flexibelt system kan äventyra systemets integritet genom att öppna det för fjärrattacker. Ett system som saknar flexibilitet kan sänka tillgängligheten om hårdvaran behöver uppdateras eller bytas ut. Flexibiliteten i sig kan alltså vara en grund till att det är svårt att ha tillit till dagens informationsteknologi [18]. En av operativsystemets roller är därför att skydda hårdvaran från den här typen av attacker. Problemet ur operativsystemets synvinkel är att hårdvara startas före mjukvara (dvs operativsystem, drivrutiner osv). Operativsystemet kan därför inte på egen hand ge ett fullgott skydd mot rena hårdvaruattacker. 2.13 Trusted Hardware och Trusted Computing Trusted Hardware och Trusted Computing bygger på antagandet att bristande trovärdighet ärvs mellan olika versioner av program och att detta även gäller för olika program och hårdvarulager. Om en drivrutin inte är tillförlitlig kan inte de program som använder denna vara det heller enligt Bishop och TCG [6, 42]. Enligt principen bakom Trusted Computing (TC) gäller regeln även åt andra hållet: En tillförlitlig mjukvara kan inte byggas på en otillförlitlig hårdvara [42]. TC eftersträvar därför målet att skapa säker hårdvara vilken kan vara tillförlitlig ur en säkerhetsaspekt. Man hoppas på så sätt skapa en kedjereaktion där hela systemet kan bli betrott. Under rapportens tidigare delar har det påpekats att: Konfidentialitet, integritet och tillgänglighet är basen för dator- och datasäkerhet. Tillit och trovärdighet är fundamentala begrepp, användare, administratörer och utvecklare måste ibland lita på att en programvara eller ett system tar hänsyn till de tre begreppen konfidentialitet, integritet och tillgänglighet på rätt sätt. En betrodd part är någon som kan bryta vår säkerhet. Hot är allt som riskerar att bryta mot något av de tre begreppen. Stark identifiering, kryptering och dokumentsignering är hjälpmedel för att uppnå en bas för tillit.
28 KAPITEL 2. SÄKERHET Attacker finns, sker och går inte alltid att skydda sig mot genom systemets design trots stark identifiering och kryptering. Genom att befästa en Trusted Computing Base (TCB) vilken inkluderar alla skyddsmekanismer i ett system (hårdvara, mjukvara och firmware) vill man i TC skapa en bas för tillit enligt Bishop [6]. För att en säkerhetsmekanism som till exempel en brandvägg ska vara effektiv måste den vara aktiverad redan innan nätverkskortets drivrutiner laddas in. Detta gäller så gott som alla säkerhetsrutiner. TC innebär att all mjuk- och hårdvara måste certifieras ur säkerhetssynpunkt. Certifieringen säger i detta fall att en hårdeller mjukvara fungerar på det sätt som den ska, utan att äventyra exekveringen av andra program [23, 42]. Även elektronikbranchen har pratat en tid om TC som ett alternativ till dagens paradigm med mjukvarubaserade säkerhetslösningar enligt Kocher [17]. En del av problematiken i TC är att befästa struktur i hårdvara som borgar för säkerhet. En viktig del är att skapa ett system som är litet nog för att det i sin helhet ska kunna vara föremål för analys och test. Tanken är att det ska vara möjligt att försäkra sig om systemets funktion. Genom att skapa ett enklare system ökar möjligheterna till test och verifikation, därmed kan en högre nivå av tillit uppnås. En avvägning kan dock komma att uppstå mellan enkelhet och funktionalitet [6]. Ett område där tillit är ett centralt begrepp är e-handel. För att det ska kunna fungera behöves till exempel följande former av tillit: Båda parter i ett e-handelsavtal måste veta att en överenskommelse har skett med rätt person. Båda parter måste kunna lita på att den information som lagras i respektive system lagras på ett säkert sätt. Båda parter måste kunna lita på båda systemens integritet. I många fall krävs att man kan lita på att överföringen av data är privat och att mottagaren har tagit emot de meddelanden som skickas. Den springande punkten i e-handel är att båda parter måste lita på varandras system. Det är där TC blir aktuellt. Genom att båda parter vet att den andra använder ett system baserat på en TCB kan båda känna sig tryggare i transaktionen.
2.14. TRUSTED COMPUTING PLATFORM ALLIANCE 29 2.14 Trusted Computing Platform Alliance Trusted Computing Platform Alliance (TCPA) är företaget som skapade standarden för en hårdvarubaserad säkerhetsmodul. Företaget bytte sedermera namn till Trusted Computing Group (TCG). Trusted Platform Module (TPM) kallas den mikrokontroller som ska fungera som huvudsakligt stöd till datorns övriga hårdvara. TPM Software Stack (TSS) är specifikationen över drivrutinsstacken för att kommunicera med en TPM. För att en TPM ska fungera med en PC krävs även en klientspecifikation för denna plattform. Även om TPM och TSS definierar de standarder som krävs brukar hela teknologin benämnas TCPA. När benämningen TCPA används är det alltså oftast TCGs koncept för TC och TCB som menas. Än så länge täcker specifikationen bara PC-datorer men det är meningen att den så småningom även ska täcka PDAer, mobiltelefoner och inbyggda system. Specifikationen säger vad en TPM ska innehålla samt hur gränssnittet ska se ut. Kuhlman anser att en TPM kan liknas vid ett smartcard i det att den är passiv; den svarar på kommandon från CPUn och den försöker aldrig ta över kontrollen [18]. Den innehåller dock funktionalitet för att stänga av sig själv och gå ner i testläge. Om så sker stoppas alla TPM-beroende processer. Förutom att den kan verifiera sin egen funktionalitet innehåller en TPM dedikerad hårdvara för kryptering och signering av data [42]. För kryptering ska en TPM innehålla [42]: En slumptalsgenerator Funktionalitet för att generera asymmetriska nycklar. En processor för beräkning av asymmetrisk kryptering (RSA). För signering av data används SHA-1 (se avsnitt 2.10). Det finns även funktionalitet för att ge skydd från fysisk manipulation av hårdvara samt beräkningsbaserat skydd av intern och extern mjukvara. För att en TPM ska kunna användas krävs ett väl definierat gränssnitt mot operativsystemet. Eftersom TCPA är avsett att fungera oberoende av vilket operativsystem som ska köras på datorn måste uppgiften att göra en sådan specifikation ligga hos TCPA. Om specifikationen skulle göras av en operativsystemstillverkare skulle allt för stor del bli specialanpassat för deras system. Specifikationen för en TPM (TCPA v. 1.2b) innehåller ingen information om vad en processor ska innehålla annat än ett antal kontrollsignaler så som reset och clear funktionalitet vilken normalt ingår i en processor [42].
30 KAPITEL 2. SÄKERHET En del av TPM-kretsens permanenta minne används för att lagra två 2048 bitars nyckelpar, dvs fyra nycklar. Det första nyckelparet skapas av tillverkaren. Nyckelparet är även en unik verifierare för chipet. Det andra genereras av användaren, när detta sker skapas även en hemlighet som krävs för att användaren ska kunna använda sin nyckel. Den första nyckeln kan användas för att verifiera systemet och den andra för att verifiera användaren. Ingen av nycklarna är dock portabla. De är alltså knutna till det system i vilket de skapades [42]. Ingen av de privata nycklarna lämnar någonsin TPM-kretsen och de blir inte synliga av någon annan användare eller program [18, 42]. Under drift har en TPM även förmåga att skapa ett flertal extra privata och publika nycklar. Kretsen kan bland annat skapa nycklar för förflyttning av hemlig data samt för vissa applikationsspecifika transaktioner. Både nycklar som inte går att komma åt utanför kretsen samt nycklar för vanlig kryptering kan skapas [18, 42]. Figur 2.3: Specifikationen avser de två delarna CRTM och TPM samt TSS (drivrutin). Bilden är anpassad från TCPA v.1.1b [42]
2.14. TRUSTED COMPUTING PLATFORM ALLIANCE 31 Mjukvarudelen består av två typer: Trusted platform Support Service vilken implementerar komplexa funktioner som kräver multipla anrop till TPM-kretsen och symmetrisk krypteringsfunktionalitet. Den andra delen kallas Core Root of Trusted Measurement (CRTM). CRTM lagras normalt i systemets firmware, till exempel BIOS. Syftet är att den ska starta i ett tidigt stadium av bootsekvensen och beräkna hashvärden av all kod som ska köras i systemet. Denna lagras sedan i TPM-kretsens minnen och stack. Idén är att man vill skapa en induktiv kedja från hårdvara upp till operativsystemet vidare upp i applikationerna [18, 42]. Trusted Building Block i figur 2.3 på föregående sida är kombinationen av CRTM, TPM och kopplingen av dessa mot moderkortet [42]. För att TCPA ska vara så systemneutral som möjligt tas det ingen hänsyn till operativsystemssystemspecifika bootloaders [18, 42]. Kretsen och mjukvaran syftar alltså till att skapa en miljö där användarens hemligheter ska hållas konfidentiella där nycklar och signaturer lagras i chippet och systemets integritet inte ska kunna komprometteras [18, 42].
3 Next Generation Secure Computing Base Under 1998 diskuterades idén att göra Microsoft Windows till ett säkert operativsystem för första gången på allvar. Det dröjde dock till 2002 innan ett första förslag hade utarbetats. Förslaget fick kodnamnet Palladium och ingick i ett initiativ som Microsoft valde att kalla Trusted Computing (TC). Både förslaget och initiativet bytte sedermera namn. Palladium blev Next Generation Secure Computing Base (NGSCB) och Trusted Computing bytte namn till Trustworthy Computing. Eftersom NGSCB är ett produktnamn används det som benämning för teknologin i denna rapport. Förkortningen TC är däremot ett vedertaget uttryck inom forskning i sin betydelse Trusted Computing och används därför på detta sätt i rapporten. NGSCB är ett tillägg till Microsofts operativsystem. Lösningen är omfattande och involverar både hård- och mjukvara. Systemets är menat att förstärka möjligheterna till stark identifiering, skydd av känslig data samt skydd av upphovsrättsskyddat material [28, 24]. Dessa mål ska uppnås genom fyra huvuddelar [25]: Stark processisolering Vissa program får endast exekvera i en specifik del av minnet, fysiskt åtskilt och dolt från övrigt minne. Syftet är att programmets minnesbuffer inte ska kunna modifieras från övriga delar av systemet. Förseglad lagring Känslig data, till exempel speciell NGSCB-data, lagras krypterat. Attestering (säker körning) Attestering sker när en bit kod digitalt signerar och intygar att data kommer från en kryptografiskt identifierbar stack. Säkra vägar till användaren Till exempel krypterad kommunikation från tangentbord och mus. 33
34 KAPITEL 3. NEXT GENERATION SECURE COMPUTING BASE Ur ett säkerhetsperspektiv hade det varit bäst om Windows och dess exekveringsstack designades om från grunden [23, 25]. Tyvärr skulle en sådan åtgärd innebära att alla program som vill dra nytta av NGSCB behöver skrivas om. Vidare skulle en sådan design medföra att bakåtkompatibiliteten helt eller delvis får stryka på foten. Enligt en tidig specifikation av NGSCB krävdes också att alla program specialskrevs för att kunna dra nytta av den funktionalitet NGSCB har att erbjuda. På grund av ett svalt mottagande från industrin ändrades detta och Microsoft valde istället att göra NGSCB till en form av ett säkerhetstillägg (se bild 3.1). Figur 3.1: Enligt Microsofts specifikation [28, 23] måste ett Nexus kunna kommunicera direkt med alla delar i ett system utom de processer som körs i user space.
35 En så kallad betrodd zon har blivit tillagd i det nya operativsystemet. Denna består av tre delar: betrodda agenter, en kärna kallad Nexus, samt hårdvarukryptering (se figur 3.1 på föregående sida). En betrodd agent kallad Nexus Computing Agent (NCA) är ett program, en del av ett program eller en tjänst som är verifierad av en betrodd källa. Den betrodda agenten fungerar som ett certifikat för att avgöra om ett program är vad det utger sig för att vara [25]. En huvudfunktion i ett Nexus är att det måste kunna attestera en NCA mot hårdvara samt lagra dess krypteringsnycklar. Ett Nexus måste kunna fråga operativsystemet om standardtjänster till exempel att öppna filer och skicka data över nätverket samt ta emot data från användaren (I/O). Nyckelförflyttning mellan olika NCA- och Nexusversioner är en standardtjänst för nyckelhanteringen och måste därför även den administreras och hanteras av ett Nexus. Eftersom operativsystem är multitrådade miljöer kommer det att vara nödvändigt att ett Nexus ska kunna dela sin tid mellan olika NCA. För att förstärka kopplingen mellan Nexus och NCA måste ett Nexus innehålla kod som går att duplicera mellan olika NCA. Koden i ett Nexus måste dessutom vara så enkel att den går att analysera och testa i sin helhet (se designprinciperna för TC på sida 27). En tanke är att det ska ska vara så enkelt att vem som helst skulle kunna skriva ett eget. Användare och utvecklare ska dessutom kunna starta vilket Nexus de vill [25]. På så sätt ökar systemets flexibilitet och användarnas valmöjligheter. Microsoft har redan från början diskuterat hur stark identifiering av användaren kan ske. Två av deras artiklar diskuterar främst smartcards men även olika former av biometriska system för stark identifiering. På grund av de problem som finns med biometriska system rekommenderas att det alltid ska finnas backupsystem när dessa används för identifikation. [27, 28] För att lösningen ska fungera krävs stora förändringar i hårdvara. Enligt den information som Microsoft släppt ska huvuddelen av krypteringen ske i hårdvara till skillnad från nuläget då all kryptering sker i mjukvara. I dagens läge måste hårddiskryptering i realtid lösas genom en separat hård/mjukvarulösning. Den hårdvara som kommer att krävas för att NGSCB ska fungera är enligt Microsoft [23]: Speciell processor för NGSCB. Chipset (moderkort) specialanpassat för NGSCB. En dedikerad SSC (Security Support Component) baserad på specifikationen för TPM version 1.2. Krypterade interaktionsverktyg (t.ex. Tangentbord och mus). Krypterad videohårdvara inklusive grafikprocessor.
36 KAPITEL 3. NEXT GENERATION SECURE COMPUTING BASE I de flesta fall måste tangentbord, mus, moderkort, processor och grafikkort bytas. Man har valt att till vissa delar följa standarden för Trusted Platform Module (TPM) och dess mjukvara från Trusted Computing Group (TCG) (se sid. 29 för en resumé av TCPA). Designen som den ser ut nu fokuserar till största delen på konfidentialitet och integritet. Tillgänglighetsaspekten kommer i andra hand. Det ska vara möjligt att via ett grafiskt användargränssnitt sätta upp regler för hur de olika certifikaten och programmen ska kunna köras [25]. Ett möjligt användningsområde för NGSCB är Digital Rights Management (DRM). DRM skapades för att skydda upphovsrättinnehavaren från illegal kopiering av dennes verk. Ett vanligt sätt att skydda digitala verk till exempel program är genom olika former av licensystem. Användes NGSCB skulle det vara möjligt att kryptera ett program så att det endast går att köra på den dator för vilken det är certifierat. Enligt Microsoft är DRM bara ett av de områden där NGSCB kan användas. Systemets huvudfunktion är dock att förstärka möjligheterna till stark identifiering och skydd av känslig data [28, 24]. 3.1 Hårdvarukrav i NGSCB NGSCB kräver specialiserad hårdvara, bland andra en TPM baserad på specifikationen från TCG. En TPM är en krets monterad på moderkortet (se avsnitt 2.14). Enligt TCPA-specifikationen är det menat att TPM-kretsen ska sitta på ett sådant sätt att den har nära kontakt med sydbryggan (se bilden nedan). Genom att låta TPM-kretsen vara sammankopplad med sydbryggan istället för till exempel direkt mot CPUn får man större modularitet och man blir inte blir bunden mot en viss processortillverkare. Tangentbord och mus kan kommunicera direkt med USBporten om TPM-kretsen är avslagen, annars är de tvingade att kommunicera via den TPM-kontrollerade porten [29]. Nedan beskrivs de delar vilka behövs för att NGSCB ska kunna användas. Trusted Platform Module En Trusted Platform Module (TPM), eller Security Support Component (SSC) som Microsoft kallar det, är en mikrokontroller som sköter kryptering, nyckelgenerering och signaturgenerering.
3.1. HÅRDVARUKRAV I NGSCB 37 Figur 3.2: En ideskiss över hur ett blockdiagram över ett moderkort kan tänkas se ut för moderkort baserade på AMDs processorer [29]. Bilden anpassad från [29] Infineon SLD 9630 TT 1.x [13, 14] eller Atmel AT97SC3201 [4] kan till exempel användas som Security Support Component (SSC). SLD 9630 är liksom Atmels lösning, en mikrokontroller med inbyggd slumptals- och krypteringsnyckelgenerator (asymmetriska nycklar). Mikrokontrollern följer TCPA version 1.1b. Den innehåller även en hårdvarustödd hashgenerator (SHA-1, MD-5) samt en hårdvarustödd RSA-accelerator. Båda säger sig ha en True Random Number Generator. Specifikationen tillåter dock semi-slumptal så länge de kan få nya initieringsfrön baserade på äkta slumptal. Chipset Ett chipset på ett moderkort har till uppgift att sköta kopplingen mellan moderkortets olika delar. För att stödja krypterad kommunikation mellan moderkortets olika komponenter krävs ett chipset med inbyggt stöd för en TPM och krypterad processorkärna [24].
38 KAPITEL 3. NEXT GENERATION SECURE COMPUTING BASE Processor Ett krypterat instruktionsset krävs för att förhindra att hemligheter avslöjas via övervakning av minnesbuffer och processorcache [24, 23]. Eftersom endast vissa delar av minnet krypteras är det fördelaktigt med ett krypterat instruktionsset till processorn [24, 23]. Videohårdvara Dataströmmen mellan moderkort och grafikkort krypteras. Målet är att data inte ska gå att läsa direkt från grafikkortets minnesbuffer [24, 23]. I/O Kommunikation till och från mus och tangentbord ska krypteras [24, 23]. 3.2 Kompatibilitet Kompatibilitet mellan olika system samt mellan system och hårdvara är ofta en viktig fråga, både för företag och för privatkunder. Huruvida NGSCB kommer att ge problem mellan olika system är en väl befogad fråga, speciellt då man från Microsofts sida ofta frångått standarder eller försökt skapa sina egna utan stöd från övriga industrin. Microsofts implementation av Java är ett exempel. Microsoft blev 1997 stämda av Sun och förlorade rätten att kalla sin produkt Java. Fördelen är i det här fallet att teknologin delvis är skapad i samarbete med Microsoft, att de inte har direkt kontroll över hur utformningen av en TPM ska se ut, samt att utvecklingen av TCPA specifikationen till stora delar har varit en öppen process. 3.3 System-system kommunikation Kommunikation mellan två system kommer att ske krypterat i den mån det är möjligt. Microsoft har än så länge inte kommenterat kommunikation mellan Windows och Linux. Hårdvarudelen är dock standardiserad, det kommer därför att vara möjligt att skapa öppna system som klarar att använda en SSC. Tyvärr är informationen om hårdvarustandarder inte helt offentlig ännu. Det enda som finns
3.4. NGSCB OCH TCPA 39 är TCPA-standarden [42]. Hur standarden kommer att följas finns det ingen information om. Möjligheterna är dock intressanta ur ett företags synvinkel. En applikation skulle kunna designas på så sätt att ett dokument endast skulle kunna öppnas av en given person. Ett PDF-dokument skulle till exempel kunna knytas mot en given person eller ett givet antal personer. På så vis skulle till exempel en kund på en bank kunna försäkra sig om att dennes filer endast lästes av dennes handläggare. 3.4 NGSCB och TCPA Enligt specifikationen av NGSCB vill Microsoft att deras SSC ska följa TCPA version 1.2 [23, 24, 28, 29]. TCPA 1.2 specificerar en krets kallad Trusted Platform Module samt dess drivrutiner. En SSC är därmed en TPM plus åtmindstonde vissa delar av den mjukvara som ingår i TCPA. Kretsen innehåller funktionalitet för att lagra och skapa kryptografiska nycklar. Den erbjuder även möjligheten att lagra en del övrig data på ett effektivt och säkert sätt [42]. Kuhlmann liknar en SSC vid ett smartcard. Likheten ligger i att en SSC det att den är passiv; den svarar på kommandon från CPUn och den försöker aldrig ta över kontrollen [18]. En del av SSC-kretsens permanenta minne används för att lagra fyra 2048 bitars nycklar, dvs två nyckelpar. Det första nyckelparet skapas av tillverkaren. Detta nyckelpar är unikt för chipet. Det andra genereras av användaren, när detta sker skapas även en hemlighet som krävs för att användaren ska kunna använda sin nyckel. Dessa nycklar kan användas för att identifiera både maskinen och ägaren. Ingen av de privata nycklarna lämnar någonsin SSC-kretsen och de blir inte synliga av någon annan användare eller program [18, 42]. Kretsen kan bland annat skapa nycklar för förflyttning av hemlig data samt skapa nya nycklar av olika slag. Både nycklar som inte går att komma åt utanför kretsen samt nycklar för vanlig kryptering kan skapas. Idén är att man vill skapa en induktiv kedja av trovärdighet från hårdvara till operativsystemet vidare upp i applikationerna. Kretsen och dess mjukvara syftar till att skapa ett stöd för en miljö där användarens hemligheter ska kunna hållas konfidentiella och där systemets integritet inte ska kompromettera.
40 KAPITEL 3. NEXT GENERATION SECURE COMPUTING BASE 3.5 NGSCB och öppna standarder Den hårdvara som används till NGSCB ska innehålla standardiserade anrop. Därför kommer det att vara möjligt med en version av Trusted Linux. Microsoft är dock väldigt fåordiga om hur de kommer att stödja kommunikation mot andra operativsystem. Enligt kritikerna verkar det dessutom som om det i specifikationen över TCPA finns problem som innebär en risk att Gnu Public License (GPL) blir obrukbart. Anderson anser att NGSCB öppnar för stöld av öppen källkod genom att ett företag kan ladda hem koden, kompilera den som en krypterad NCA eller Nexus. Koden kan sedan distribueras och lagras krypterad. Eftersom hela förloppet är skyddat av stark kryptering försvårar det för upphovsmannen att övervaka sina intressen. [3] GPL bygger på att den som gör förändringar i öppen källkod publicerar sina förändringar under GPL. Genom att förändra en bit kod från ett GPL-projekt kan en programmerare kompilera sitt program och sedan avhålla sig från att publicera sitt arbete under GPL. Det som skett i detta fall är en stöld av offentlig egendom. Eftersom koden blir kompilerad med en TCPA-maskin är den starkt krypterad och ingen insyn i huruvida stulen kod använts är möjlig. De legala problemen med TCPA är därmed uppenbara. Standarden kan om den missbrukas innebära en risk för rättssäkerheten hos den enskilda människan. Vem som helst kan bli bestulen på upphovsrättsskyddat material i form av källkod. För ett företag skulle den direkta konsekvensen bli att om stöld av en företagshemlighet (källkod) sker eller om otillåten mjukvara används i produktion av innehåll kommer det inte att kunna upptäckas [5, 6]. 3.6 Systemets svagheter TCPA och därmed NGSCB är väldigt hårt knutet till kryptering. Om svagheter i någon av krypteringsalgoritmernas olika delar skulle upptäckas vore systemets integritet hotat. Det ställer stora krav på en öppen utveckling av systemet. Alla buggar och svagheter måste snabbt kunna hittas, offentliggöras och lösas [2, 6, 8, 15]. Stor vikt läggs vid att stoppa avlyssning av tangentbordet [23, 24, 26, 27, 28]. Tangentbordsavlyssning nämndes som en hotbild med resulterande attack i avsnitt 2.5. En svaghet som Microsoft tog upp under WinHec 2004 innebär trots allt en möjlighet till genomförandet av en sådan attack genom USB-porten. Attacken
3.6. SYSTEMETS SVAGHETER 41 bygger på att USB inte ännu har fullt stöd för NGSCB eller TCPA. 1. Ett virus tar sig in i datorn och programmerar om en av hårdvarorna kopplade till en USB port på så sätt att den kan köra som ett tangentbord. 2. Angriparen kopplar ur det riktiga tangentbordet och låter den omprogrammerade hårdvaran agera tangentbord. 3. Den omprogrammerade programvaran kan nu utföra attacken. Problemet är lösbart enligt Microsoft och man vill lösa det genom att göra förändringar i moderkortets USB-kontroller. Fördelen är att att användaren inte behöver skaffa nya USB-produkter [29]. Systemets största långsiktiga svaghet ligger i det här fallet inte hos Microsoft eller TCG utan hos tillverkarna av TPM-kretsar. Varken Atmel eller Infineon svarar på frågor om hur de i sina mikrokontrollers genererar slumptal. Båda påstår dock att de kan generera äkta slumptal [14, 13, 4]. Enligt Schneier måste en äkta slumptalsgenerator uppfylla tre kriterier för att den ska duga till en kryptografisk användning [37]: 1. En serie tal ser slumpmässig ut. Detta innebär att den klarar alla kända statistiska tester som kan användas för att avgöra detta, tex χ 2 -test. 2. Ett tal genererat med algoritmen är oförutsägbart: Givet total kännedom om den algoritm och den hårdvara som används måste det vara komputationellt otroligt att förutsäga vad nästa slumptal kommer att vara. 3. En sekvens ska inte vara reproducerbar på ett tillförlitligt sätt. Slumptalsgeneratorn ska ge olika resultat vid två olika körningar trots att man lägger in exakt samma startvärden. Om de två första egenskaperna uppfylls har man ett pseudoslumptal. Alla tre måste alltså uppfyllas för att man ska ha ett äkta slumptal [37]. Specifikationen över TCPA säger att det är önskvärt med äkta slumptal. Specifikationen säger dock att det är det acceptabelt att generera pseudoslumptal så länge kretsen när som helst kan få ett nytt initieringsfrö baserat på ett äkta slumptal [42]. Det är inte omöjligt att skapa äkta slumptal i elektronik. Ett sätt att göra det på är genom att mäta brusnivåerna hos en okopplad MOSFET transistor. Beroende på typ producerar MOSFET transistorer vitt eller rosa brus (även kallat flicker noise ), enligt Sarpeshkar [36]. Fördelen med denna metod är att den går att använda som en integrerad del i en IC-krets. Enligt Kerckhoffs princip ska hemligheten ligga i
42 KAPITEL 3. NEXT GENERATION SECURE COMPUTING BASE nyckeln, inte i algoritmen. Om algoritmen blir stulen har därmed inte systemet tappat sin integritet [15, 40]. Därför kan det sägas att det är en svaghet att inte offentliggöra allt som rör systemets viktigaste delar. En något mindre långsiktig svaghet ligger i valet av hash-algoritm i TPM-kretsen. Enligt defininitionen för hashalgoritmer är de krockfria om och endast om man enbart kan hitta en krock med hjälp av brute force (se även sida 24) [6, 40, 37, 22]. Wang et. al. [44] fann i Februari en svaghet i den mest använda hashalgoritmen, SHA-1. Det deras resultat tyder på var att det går att hitta krockar i hashsummorna på endast 2 69 operationer. Innan deras resultat kom var det bara brute-force attacker som fungerade. Dessa gav en hastighet av 2 80. Även om uppsnabbningen är enorm tar det ändå väldigt lång tid att beräkna så många nycklar. Om resultatet stämmer måste man ändra TCPA-standarden till något bättre. Lyckligtvis finns det alternativ, bland andra SHA-256, vilken fortfarande anses säker. Slutligen ska påpekas att NGSCB inte begränsar körandet av redan certifierad mjukvara. Om en script-miljö som Visual Basic eller Java tillåts kan det innebära en risk när programmen används på ett legitimt sätt för att skapa säkerhetsproblem. Hotet nämns under avsnitt 2.5. 3.7 Ekonomiska aspekter Dagens kostnader för Windows-licenser är en betydande utgift för de flesta företag. Ross Anderson [3] tror att NGSCB är ett försök av Microsoft att ytterligare stänga in sina kunder och förhindra dem från att välja andra system än Windows. Påståendet att hårdvaran kommer att öka i pris stöds till viss del av Microsofts egna uttalanden [24]: When NGSCB computers become available, companies, governments, and individual users will be able to see that the new machines are significantly better at protecting secrets and preserving privacy. That should drive upgrades and enable hardware makers to charge a premium for their new products. Hårdvaran kommer alltså mest troligt att bli dyrare på grund av ökad efterfrågan men hur mycket dyrare är svårt att förutsäga eftersom konkurrensen på hårdvarumarknaden är ganska stor [3, 24]. Eftersom det kommer att bli svårare och dyrare för kunderna att byta från Microsoftmiljö till en alternativ miljö skulle priserna på Microsofts programlicenser kunna
3.7. EKONOMISKA ASPEKTER 43 öka till det dubbla, enligt Anderson [3]. Eftersom stora delar av hårdvaran måste bytas ut för att man ska kunna dra nytta av NGSCB skulle det med stor sannolikhet innebära att det vore mer ekonomiskt att byta en hel dator än endast de komponenter som behövs för ett företag. Ett Windows som stödjer TCPA skulle sannolikt öka ett företags omkostnader jämfört med både Linux och ett Windows utan TCPA. Säker mjukvara är alltid dyrare att producera och underhålla (för tillverkaren) än osäker mjukvara. Stabilitetsproblem är vanliga i samband med nya produkter något som markant kan öka omkostnader under en tid. De ökade omkostnaderna för programvaror skulle kunna sparas in till viss del på grund av lägre mängd intrång, bättre rutiner för dokumenthantering samt färre lyckade virusattacker tills hackare anpassat sig. Precis som datasäkerhet, blir attackerna bättre, smartare och mer komplexa [2, 6, 37].
4 Alternativ till NGSCB En av nackdelarna med NGSCB är dess väldigt specifika kompatibilitetskrav. För att man ska kunna dra nytta av teknologin måste större delen av hårdvaran bytas ut. Därför kan det vara både ekonomiskt och praktiskt fördelaktigt att titta närmare på alternativa lösningar. Fördelen med de alternativ som denna rapport behandlar är att de är tillgängliga nu, man behöver alltså inte vänta till 2006 för att kunna köra en klient och 2007 för en server. Inom ett lokalt närverk är det möjligt att skapa ett fullödigt skydd liknande det som NGSCB vill erbjuda. Eftersom NGSCB syftar till att skydda varje nod genom säker åtkomst från nätet, säker åtkomst från I/O enheter, samt genom säker exekvering av program krävs en lösning som tar hänsyn även till dessa aspekter. För att hindra att illvillig kod körs på en dator krävs en strikt övervakning av vilka processer som får köra och vad de gör. NGSCB löser endast övervakningen av vissa certifierade applikationer vilka kräver en NCA och ett Nexus för sin exekvering. Våra tre huvudmål blir därmed att: Skydda känslig data på disk. Förhindra exekvering av otillåtna program. Begränsa åtkomsten mot nätverket effektivt. Det finns ett flertal sätt att skydda data som lagras på disk. Ett sätt är att använda en smartcardlösning se avsnitt 2.7.1 på sidan 17, en annan vore att använda ett krypterat filsystem som till exempel Encrypted File System (EFS) till Windows 2000. Problemet med otillåtna program som exekveras kan lösas med hjälp av Computer Integrity System (se nedan). 45
46 KAPITEL 4. ALTERNATIV TILL NGSCB För att begränsa åtkomsten mot nätverket kan hårdvarubrandväggar användas på varje nod. Det skulle dock kunna bli dyrt att förse varje nod med en extern hårdvarubrandvägg. Genom att varje dator har en egen hårdvarubrandvägg kan åtkomsten till nätverket effektivt begränsas till en viss server. 4.1 Computer Integrity System Computer Integrity System (CIS) från SE46 AB är ett system som används från att hindra icke certifierade processer från att starta. Systemet laddas så tidigt som möjligt under bootsekvensen, innan drivrutiner och program. CIS använder en modifierad SHA-1 för att skapa hash-summor av de program som tillåts exekvera. På så sätt skapas ett unikt certifikat för varje program. Dessa lagras antingen internt i en lista eller externt på en server. För att skapa certifikaten används X.509 som är en defacto-standard för PKI [39]. X.509 används även för SSL i web-läsare som till exempel Firefox och Internet Explorer [12]. Eftersom SHA-1 länge ansetts som problematisk ur säkerhetssynpunkt har SE46 valt att lägga filens storlek till kontrollsumman. Genom denna åtgärd reduceras andelen möjliga nyckelkrockar eftersom sannolikheten att det ska finnas en krock bland olika data av samma storlek är betydligt mindre än sannolikheten att det ska ske utan reglerad filstorlek [39]. Varje gång en process startas beräknas en hash-summa på den exekverande filen. Filens storlek läggs till resultatet och detta jämförs sedan mot den interna listan av certifikat. Finns processen registrerad kan den startas obehindrat. Systemet stoppar inte processer som genom programvarufel öppnar säkerhetshål. Det fungerar dock utmärkt för att hindra illvilliga program från att köras. Om ett program på något sätt blivit modifierat i efterhand genom till exempel en otillåten uppdatering eller virusinfektion hindras dess exekvering [39]. Listan med certifikat som används under certifieringsprocessen hämtas från en distributionsserver antingen manuellt eller automatiskt. Detta medför att systemet kan arbeta helt frikopplat från servern [39]. Fördelen med CIS jämfört med till exempel en virusskanner är främst att den lista som krävs för att hålla reda på vilka applikationer som får köra är mycket mindre och lättare att kontrollera än en lista med vad som inte får köra. CIS kräver därmed mindre prestanda än en traditionell virusskanner. Dessutom kontrollerar CIS aktivt de filer som används i ett system. Eftersom kontrollen sker varje gång en fil startas blir CIS lösning kraftfullare än en virusskanner som endast kontrollerar
4.1. COMPUTER INTEGRITY SYSTEM 47 filer passivt. För att CIS ska fungera tillsammans med smartcard-lösningar krävs dock att systemet specialanpassas för enskilda smartcard-lösningar [39]. Figur 4.1: Ett diagram över certifikatdistributionen i CIS, bilden kommer från [39]. Figur 4.1 visar en schematisk bild av hur applikationscertifikaten hanteras i CIS. 1. Ett modellsystem inventeras och hashsummorna skickas till en certifkathanterande applikation. 2. Certifikathanteraren skapar applikationscertifikat och distribuerar dessa till distributionsservern. 3. Skyddsobjekten hämtar sina certifikat från servern. 4. Skyddsobjekten skickar kontinuerligt loggdata till loggservern. Genom att alla program som startas verifieras mot den inbyggda databasen med hjälp av en modifierad SHA-1 får systemet flera fördelar:
48 KAPITEL 4. ALTERNATIV TILL NGSCB Det blir svårt att genomföra vissa attacker för att hacka enskilda klienter utan att först knäcka distributionsservern. Klienterna blir resistenta mot illvillig kod, till exempel maskar och virus. Fördelen med att använda PKI är att systemet blir skalbart. En effekt av ett sådant här system är till exempel att en användare inte kan starta otillåtna program som laddats ner via e-post eller på annat sätt. Fördelarna är ganska många och väl definierade, men det finns nackdelar också: Distributionsservern har ganska stort ansvar, blir den hackad kan det uppstå problem. Lösningen lämpar sig bäst i en skyddad miljö och där säkerheten baseras på centraliserade servrar. Om systemet helautomatiseras kan man riskera att det räckte att knäcka en distributionsserver för att få tillgång till alla bakomliggande datorer. Systemet skulle inom ett större företag framför allt lämpa sig för intern kontroll av vilka processer som körs. Framför allt skulle ett sådant här system hjälpa till med skydd från de problem som uppstår genom användandet av otillförlitliga epostprogram. Det är ett problem är att en enda server är en så viktig del i säkerheten, å andra sidan är det lättare att säkra en server än tusen klienter med servermöjlighet. CIS fungerar bäst i en någorlunda homogen miljö. Om flera datorer av samma typ med samma operativsystem och samma program ska användas är det en utmärkt lösning. 4.2 Hårdvarubrandväggar Den 20 oktober 2004 släppte NVIDIA sitt nforce4 chipset [33]. Detta chip inkluderar en inbyggd hårdvarubrandvägg. Genom att lägga en brandvägg i en dedicerad krets hoppas man kunna minska belastningen på processorn samtidigt som man ökar säkerheten genom att en brandvägg är startad redan innan nätverkskretsen ens startat. Lösningen som kallas ActiveArmor är en fullständig brandvägg med stöd för Microsofts brandväggs-api. Den kan administreras genom fjärrstyrning samt med hjälp av fördefinierade säkerhetsdefinitioner. Enligt tillverkaren ska
4.2. HÅRDVARUBRANDVÄGGAR 49 ActiveArmor vara motståndkraftigt mot manipulation: Ett försök att stänga av eller manipulera brandväggsinställningarna resulterar i att nätverksuppkopplingen stängs av. ActiveArmor är kompatibelt med Microsofts brandvägg, uppgifter om kompatibilitet mot andra brandväggar saknas dock för närvarande. ActiveArmor är en intressant lösning eftersom det är den första hårdvarubaserade brandväggen som ligger på vanliga moderbord riktade mot hemanvändare. Det finns framför allt två fördelar med denna lösning [33]: 1. Eftersom lösningen är så nära integrerad med nätverkskortet kommer brandväggen att vara aktiverad innan operativsystemet startat. Detta innebär att det inte finns någon möjlighet att starta drivrutinen för nätverkskortet före brandväggen. 2. Om brandväggen stängs av kommer nätverket att sluta fungera. Om ett skadligt program körs och det försöker stänga av brandväggen kommer användaren omedelbart att upptäcka intrångsförsöket. En personlig brandvägg belastar inte en dator speciellt mycket ur ett prestandahänséende i jämförelse med den säkerhetsfördel den medför. Även om det är en mjukvarubrandvägg skulle det alltså kunna medföra vissa fördelar ur ett säkerhetsperspektiv att ha en sådan installerad, utan att betydande prestandanackdelar uppstår. Det intressanta med en hårdvarubrandvägg är att dess säkerhetsfördelar finns tillgängliga i ett tidigare stadium än en mjukvarubrandvägg. ActiveArmor stödjer Microsofts brandväggs-api (installeras automatiskt med WindowsXP) [33]. Genom detta kan ett program fritt ändra inställningar samt slå av/på den inbyggda brandväggen utan användarens vetskap så länge användaren är inloggad med administratörsrättigheter [30]. Att en administratör har fulla rättigheter att förändra inställningarna i en dator är bra, men det är inte bra när vilket program som helst kan göra förändringar i vitala inställningar utan användarens vetskap eller godkännande. Det är mycket vanligt att Windows används i administratörsläge, även om det inte är helt nödvändigt. Fördelen med ActiveArmor är att den stänger av nätverkskortet om den inaktiveras. Det räcker dock att en illvillig process öppnar samtliga portar eller lägger sig själv i listan av betrodda program som får komma åt nätverket fritt. Detta kan ske helt utan att användaren är medveten om det. Istället för att illvilliga processer stänger av brandväggen får man alltså illvilliga processer som öppnar alla portar på datorn och på så vis kommunicerar fritt med nätet. Genom ett dylikt förfarande slipper en hackare att nätverket stängs av samtidigt som han öppnar systemet för intrång.
50 KAPITEL 4. ALTERNATIV TILL NGSCB Ett alternativ till ActiveArmor vore att installera en hårdvarubrandvägg utanför systemet. Optimalt vore om brandväggarna vore osynliga utifrån, det skulle skydda nätverket från att brandväggen själv blev komprometterad. Lösningen skulle ha fördelen att den inte kulle behövas installeras om annat än vid uppdatering av nätet. 4.3 TCPA tillsammans med GPL-plattformar Eftersom en TPM med medföljande mjukvaruspecifikation är systemoberoende är det fullt möjligt att köra ett system baserat på öppen källkod som är betrott. Både Linux och UNIX skulle kunna designas för TCPA [18, 42]. Motståndet inom open-source rörelsen är dock fortfarande förhållandevis starkt; därför skulle det vara intressant med ett system som kunde utnyttja en TPMs tillitsmodell även utan stöd från operativsystemet. Lie et. al. [19] visade att tillit kan ärvas till en process trots att operativsystemet inte är betrott. Operativsystemet skulle alltså kunna administrera resurser både betrodda och icke betrodda till processerna. Lie et. al. skapade en situation där de exekverande applikationerna varken litade på operativsystemet eller på det externa minnet. Applikationerna satte istället tillit till processorn för att skydda kod och data [19]. Att en sådan här applikation är möjlig antyder att tillit inte är operativsystemsberoende [19]. Möjligheten kan alltså finnas att principerna är överförbara till TCPA.
5 Diskussion Säkerhet har tidigare inte varit en prioriterad fråga för Microsofts produkter, det är inte förrän på senare tid som förändringar har gjorts inom detta område. Windows XP och 2000 är två exempel på produkter med en rad inbyggda säkerhetslösningar men NGSCB är det första riktigt stora steget mot ett säkrare operativsystem. När Microsoft nu har börjat prioritera säkerhetsområdet på allvar krävs att många applikationer skrivs om från grunden för att de ska fungera tillfredsställande i den nya miljön. Kostnaden för denna ökade säkerhet kommer kunderna sannolikt att få betala i form av högre licens- och produktavgifter [3]. En etablering av NGSCB skulle därför onekligen påverka datorindustrin starkt. Satsningen kan inte desto mindre ge goda resultat. Det skulle ge användare grund att lita på att konfidentiell data hålls så hemlig som möjligt. Potentiellt minskar också spridningen av upphovsrättskyddat material så länge innehavaren av upphovsrätten har resurser att knyta det mot NGSCB. Om Digital Rights Management (DRM) blir NGSCBs fokus kommer dock användaren att hamna i kläm eftersom många vill kopiera sina skivor till datorn av praktiska skäl. Om ett Nexus anförtros med tillit och om det samtidigt har full möjlighet att använda tjänster så som I/O är de en potentiell säkerhetsrisk. Eftersom vem som helst ska kunna skriva ett Nexus och verifiera NCA-moduler kan det innebära att en illvillig (alternativt slarvig) programmerare kan förorsaka stora skador och säkerhetsrisker. Det är för tillfället överflödigt att införa NGSCB i sin helhet på ett företags samtliga maskiner. Såtillvida det inte finns behov av det Microsoftspecifika innehållet till exempel förstärkt DRM. NGSCB skulle framför allt kunna vara av intresse i publika terminaler (t.ex. uttagsautomater och kundterminaler på kontor). Fördelen med att använda NGSCB i uttagsautomater är sannolikt att det ytterligare skulle försvåra extern manipulation av terminalernas hård- och mjukvara. NGSCB skulle i sin nuvarande form inte ge någon större möjlighet för ökad säkerhet mot privatkund som är inloggad mot till exempel Internetbanken i sig. De 51
52 KAPITEL 5. DISKUSSION enda fördelarna NGSCB skulle medföra mot kund och inom bank är att effektivisera den starka krypteringen i dataöverföring mellan olika system samt att på ett effektivare sätt kunna hålla kryptonycklar hemliga. Priset för NGSCB är högt. Eftersom det kräver både stöd i hård- och mjukvara krävs en nyinvestering i hela miljön. För en dator skulle det krävas helt ny hårdvara samt att all mjukvara som ska köras under NGSCB måste bytas ut. Priset för de komponenter som ingår kommer dessutom att vara betydligt högre, både enligt Microsoft och Anderson [3, 24]. NGSCB kommer att kunna användas för att förhindra kunder från att byta operativsystem. Valet av NGSCB-system kommer därför att vara avgörande för framtida kostnader i mycket högre grad än valet av datormiljö är idag. Habet et. al. konstaterar att Trusted Computing Platform Alliance (TCPA) är ett tvéeggat vapen då tekniken går att använda både för användarens bästa men även till att begränsa och kontrollera henne [11]. Hur användarna kommer att uppleva och vad det kommer att användas till är enligt Habet upp till användarna och de företag som gått med i TCPA-samarbetet [11]. Det kommer hela tiden nya attacker. SHA-1 blev nyligen knäckt av ett kinesiskt forskarteam [44]. Även om det inte innebär en omedelbar fara för säkerheten under den närmaste framtiden måste algoritmen tas bort från specifikationen av TCPA helst innan en lösning baserad på metoden når marknaden. För NGSCB bevisar det framför allt vikten av öppenhet. När en algoritm blivit knäckt kan man lära sig något av det och skapa ett säkrare system. Även om NGSCB kan hjälpa till vid stark identifiering av användaren genom att tillhandahålla säkra interaktionsvägar till denna identifierar det fortfarande bara sig själv mot en extern part. Eftersom inget egentligen garanterar vem som befinner sig bakom terminalen är kopplingen system-system fortfarande lika o- säker ur identifieringssynpunkt. Det finns viss funktionalitet som försvårar manin-the-middle attacker (säker lagring av nycklar) men det kommer att medföra en större koncentration på attacker mot systemen som sådana. Ett exempel på en sådan attack är den osäkra kopplingen till USB som Microsoft själva påpekade under WinHec 2004 [29]. Försvårandet av man-in-the-middle attacker och avlyssning förändrar dock inte att de certifikat och signaturer som skapas identifierar plattformen och inte människan.
5.1. ÅSIKTER RUNT NGSCB OCH TCPA 53 5.1 Åsikter runt NGSCB och TCPA Den vanligaste missuppfattningen runt TCPA och NGSCB är att de är samma sak. Så är inte fallet. NGSCB är ett operativsystemstillägg som använder en TCPAspecificerad krets, en så kallad Trusted Platform Module (TPM). Det är dock sant att Microsoft har haft inflytande över utformningen av TCPA-specifikationerna. Mycket av den kritik och de åsikter som ventileras runt TCPA är negativ. Med tanke på att världens största mjukvaruföretag är en av initiativtagarna till denna våg av betrodd datoranvänding är det inte konstigt att vissa användare blir misstänksamma. En del av systemet i TMP-kretsarna är dessutom hemligstämplad, även om det bara rör sig om en funktion (slumptalsgenerering) gör det inte kritikerna mindre kritiska. En av systemets största svagheter ligger i just detta. Ingen av producenterna av TPM-chip som har blivit tillfrågade vill till exempel besvara frågan om vilken algoritm som används för slumptalsgenerering. En av de vanligaste åsikterna är att TCPA kan användas för att försvaga upphovsrättsmännens rätt till sin egen intellektuella egendom [3, 5, 11]. Ofta ser man Digital Rights Management (DRM) nämnas och då i samband med en extrem åsikt åt ena eller andra hållet. Bechtold uppmanar oss att minnas att oavsett vilken teknologi man väljer att granska bör granskaren akta sig för att anta ett allt för fundamentalistisk förhållningssätt. Gör man det riskerar man att missa den klarhet och insikt som medelvägen kan ge [5]. Anderson, Schneier och Ellison å sin sida väljer att förhålla sig kritiska, både till TCPA [3] och till PKI [9]. Kritikerna tar upp två poänger som jag finner speciellt intressanta: 1. Stöld av källkod kan inte förhindras/kontrolleras på ett tillförlitligt sätt. 2. Produktion av material med hjälp av stulen programvara skulle inte kunna upptäckas/förhindras. Dessa två fall blir oundvikliga i fallet NGSCB då det ger användaren möjlighet att ladda ner öppen källkod publicerad under Gnu Public Licence (GPL). GPL säger att om någon gör tillägg eller förändringar i det som är producerat under densamma måste den som förändrade koden också skicka tillbaka en kopia på sina ändringar till upphovsmannen. Att underlåta att göra detta är stöld av intellektuell egendom. Eftersom NGSCB tillåter kryptering av körbara filer och annat material kommer en kontroll av detta omöjliggöras (det är dock redan mycket svårt). Fall två innebär till exempel att ett företag laddar ner en knäckt programvara för att använda till produktion av annat material. Till exempel skulle ett företag kunna
54 KAPITEL 5. DISKUSSION ladda ner en stulen programvara för att producera musik utan att bli ertappade (se bild 5.1) [31]. Här står tydligt att ett program (Sound Forge), vilket är knäckt av Figur 5.1: Bilden visar innehållet i en av de ljudfiler som följer med i Microsofts operativsystem WindowsXP [31]. gruppen Deepz0ne, har använts för att producera filen. Samtliga ljudfiler under [31] är producerade med samma program. Det som antyds i filen är att den blivit producerad med hjälp av en knäckt (Microsoft använder ofta ordet stulen ) programvara. Det är högst osannolikt att ett sådant här mönster skulle uppstå av en slump. Om Anderson och Kuhlmann har rätt i att NGSCB kan vara ett verktyg för att stärka DRM verkar det som om även motsatsen råder: På grund av den starka krypteringen i NGSCB går de att utforma programvaran så att endast de delar som inte är stulna kör i den okrypterade delen av minnet. De delar som är stulna kan mycket väl gömmas i en NCA eftersom denna tekniskt sett kan innehålla vad som helst (förutom attesteringsfunktionalitet). Enligt specifikationen för NGSCB ska i princip vem som helst kunna skriva ett Nexus. En NCA är ett program eller en del av ett program eller en tjänst som är verifierad av en betrodd källa. Det framgår dock inte vem som är denna betrodda källa. Enligt Ross Anderson har det kommit fram indikationer på att viss oenighet har funnits inom TCG i denna fråga [11]. Eftersom man inte vet vem som ska verifiera ett Nexus vet man inte heller vem som får skriva ett dylikt. Om den betrodda källan är Microsoft eller något annat företag bör man fråga sig om/vad det kommer att kosta att verifiera ett Nexus. Eftersom det betrodda minnet är skyddat och dolt från övriga delar av systemet finns risken att det uppkommer en ny typ av betrodda virus och trojanska hästar som ingen virusskanner kan hitta eller rå på enligt Anderson [11]. Så långt verkar det som om NGSCB huvudsakligen är ett verktyg avsett för att
5.2. ALTERNATIVA LÖSNINGAR TILL NGSCB 55 genom DRM skydda vissa stora företags intressen. I andra branscher, till exempel bilindustrin, finns det en kultur där en defekt vara dras in från marknaden om den kan äventyra kundernas säkerhet. När samma sak sker i programvaruindustrin antar företagen ett förhållningssätt som innebär att kunden i många fall måste betala för stöd och underhåll. När DRM blir en central del i en produkt på det här sättet kan detta förfarande bli vanligare och spridas i ännu högre grad. Risken för betrodda virus och trojanska hästar gör bilden av NGSCB ännu mer oroande. Det finns dock fördelar med NGSCB, inte minst för banker och andra större företag med en nära koppling till sina kunder. En bank skulle med hjälp av NGSCB kunna säkerställa kommunikationen mot en av sina viktigare kunder genom att dela ut en specialinstallerad dator vilken bara får användas för bankärenden. Eftersom ett mer homogent system skulle kunna skapas (ur ett krypteringsperspektiv) skulle banken på ett bättre sätt ha möjlighet att få tillit till den information som skickas från denna kund. Nettoeffekten skulle bli att bankens tillgänglighet ökar utan att säkerhet eller integritet minskar. Förutsättningen för att denna lösning skulle fungera är att det system som står hos kunden också måste underhållas av banken. Om banken hade fullständig kontroll över vilka program som exekverades på datorn kan risken att betrodda virus och trojanska hästar kunna minimeras. Lösningen är inte lämplig får mindre kunder såsom privatpersoner och småföretagare eftersom ett företag bara kan ha total kontroll över ett begränsat antal system på ett kostnadseffektivt sätt. Genom att låsa kunden vid ett specifikt operativsystem (Microsoft Windows Longhorn) skulle företaget i slutänden riskera att tappa kunder. Ett sådant här system kan dessutom medföra en risk att användaren lägger för stor tilltro till systemet och glömmer grundläggande säkerhetstänkande. Risken för olika bedrägerier till exempel phishing skulle därmed kunna öka. Resultatet skulle vara en minskad integritet och säkerhet hos den mindre kunden. 5.2 Alternativa lösningar till NGSCB NGSCB kan användas till att stärka säkerheten internt i ett företag. Virusdödare är ett alternativt sätt att göra detta men det finns effektivare metoder. Computer Integrity Systemet (CIS) har tidigare angivits som ett alternativ. Fördelen gentemot NGSCB är främst att denna lösning är helt plattformsoberoende. Dess största nackdel är att den är ganska statisk. Ett system som CIS skulle därför löna sig att använda i system där få förändringar av vilka program som körs sker. En stor banks kontorsmiljöer skulle därför vara väl lämpade för en lösning som till exempel CIS. Systemet skulle dessutom ge en högre säkerhetsnivå i fråga om virusskydd och trojanska hästar än både NGSCB och något av de nu existerande
56 KAPITEL 5. DISKUSSION virusprogrammen. Problemet med nätverkssäkerhet i de enskilda arbetsstationerna kan i dag lösas med hjälp av nvidia nforce4-chippet. Detta kommer monterat på en del nforce4- moderkort. En fördel med att ha en brandvägg i hårdvara är att man kan göra det fysiskt omöjligt att ändra dess inställningar. Enligt nvidia ska ett försök att stänga ner brandväggen endast resultera i att tillgången till nätverket stängs av.
6 Sammanfattning Next Generation Secure Computing Base (NGSCB) är det säkerhetssystem som Microsoft kommer att bygga in i Longhorn. Det är bestämt att NGSCB kommer att vara ett opt-in system. Det är avslaget vid installation och måste aktiveras av användaren. För att aktivera NGSCB krävs att användaren startar stödet för den säkerhetshanterande kretsen på moderkortet genom till exempel en BIOS-inställning. Användaren måste sedan aktivera NGSCB i operativsystemets inställningar. NGSCB bygger på konceptet Trusted Computing. Det innebär att för att använda NGSCB krävs en bas för tillit (Root of Trust) befäst i hårdvara. Standarden för denna hårdvara är fastslagen av Trusted Computing Group och innehåller en hårdvarukomponent kallad Trusted Platform Module (TPM) samt tillhörande mjukvara. Än så länge täcker specifikationen bara PC-datorer men meningen är att den även ska gälla för inbyggda system, mobiltelefoner och annan elektronik. Atmel och övriga tillverkare av TPM-moduler (kallad SSC av Microsoft) håller för närvarande metoden för generering av slumptal hemlig. De använder gärna uttrycket True Random Number Generator. Genereringen av verkligt slumpmässiga nummer är möjlig men inte helt trivial, att de sedan inte offentliggör sina respektive metoder strider mot den princip av offentlighet som genomsyrat utvecklingen av TCPA. NGSCB kommer aldrig att kunna skydda ett företag mot sociala intrång och bedrägerier en människa kommer alltid att kunna hota ett systems integritet inifrån. Säkerhet fungerar bara när den är väl befäst hos dem den är menad att skydda. Vidare vet man ganska lite om hur NGSCB skall komma att se ut, designen är bara delvis offentlig. Microsoft har i ett flertal artiklar sagt att NGSCB är ett långsiktigt arbete. Designen som den ser ut nu fokuserar till största delen på konfidentialitet och integritet. Tillgänglighetsaspekten kommer i andra hand. Det ska vara möjligt 57
58 KAPITEL 6. SAMMANFATTNING att sätta upp regler för hur de olika certifikaten och programmen ska kunna köras. Risken är dock att NGSCB måste slås på för att användaren ska kunna köra ett program från Microsoft, som till exempel ordbehandlaren Microsoft Word. Fortfarande går det att bygga bra och tillförlitliga säkerhetslösningar utan NGSCB. För företag finns till exempel Computer Integrity System (CIS). CIS verifierar all mjukvara som startas i ett system. Varje gång ett program startas beräknas en kontrollsumma av dess digitala signatur. Kontrollsumman jämförs mot en lista med applikationscertifikat som finns lagrad i lokalt i datorn. Den infrastruktur som används är Public Key Infrastructure (PKI), en öppen standard för distribuering av kryptonycklar. Fördelen med CIS jämfört mot NGSCB är att den är plattformsoberoende. Alla delar kan köras i alla operativsystem. CIS kan till exempel även köras i UNIX eller Linux. NGSCB är något som bara kommer att fungera i Windows (Longhorn). Ytterligare en fördel är att detta system inte låser användaren på ett sådant sätt att NGSCB blir omöjligt. Systemet har dock potential att förstärka säkerheten hos NGSCB. NGSCB kommer på intet sätt att förhindra en virusattack av det oskyddade minnet enligt Microsoft [25, 26, 28, 24]. Den delen får tredje parts programvaror lösa. Historiskt sett har nya virus kommit relativt omgående till nya versioner av Windows. Än så länge finns inget som talar emot att ett virus är på väg till Longhorn (som i skrivandes stund är under beta-test). Fördelen med detta system är att det kan upptäcka om det blivit komprometterat och att grunden för tillit är extremt svår att kompromettera [25]. Kritikerna (Anderson, Bechtold och Caelli bland andra) är fast övertygade om att NGSCB är till för att befästa Microsofts position på marknaden och tränga ut Linux på samma gång [3, 5, 7]. Även om Trusted Computing i form av Next Generation Secure Computing Base ger användaren en rad möjligheter till säker lagring av privata nycklar, hårddiskkryptering och verifikation av programvara löser det inte genom sin struktur de största problemen Windowsvärlden dras med nu virus och spam. Det finns inget som direkt talar för att TCPA i hög grad ska minska risken för dessa hot: NGSCB, vilken är den enda implementation som utnyttjar TCPA, gör det inte [24]. Även om NGSCB tar en hel del steg för att skapa ett säkert operativsystem kommer det att vara ett tvéeggat instrument för säkerhet. Man ska inte glömma att en av de största förespråkarna bakom DRM ligger bakom systemet. Microsofts motiv kan alltså ifrågasättas risken finns att TCPA blir ett instrument för övervakning och censur. Å andra sidan kan TCPA användas till att skydda användare och data. Vem som blir vinnare i slutänden kan nog bara framtiden utvisa.
Ordlista Autenticering Betrodd Betrodd agent Bootsekvens Bugg Data DoS Hårdvara Identifiering Illvillig process Se identifiering. Används i samma mening som engelskans trusted. Detta är viktigt att påpeka eftersom betrodd inte nödvändigtvis är det samma som tillförlitlig eller pålitlig. Trusted party ett program som är betrott av systemet. Att vara betrodd är inte nödvändigtvis det samma som att vara tillförlitlig. När datorn startar kallas det för boot. Bootsekvensen blir därmed det som händer när datorn startar och operativsystemet laddas. När ett program inte gör vad det är tänkt att göra utan att vara infekterat av virus eller på annat sätt ändrat efter kompilering. Buggar kan vara både konceptuella (designfel) och rent tekniska (kraschar under normal drift). Den information som överförs eller lagras i digitala eller analoga system. Denial of Sevice, en attack avsedd att skapa en situation sådan att en server under en längre tid inte kan förse legitima användare med den service som den är avsedd för. Elektroniken i datorn, till exempel moderkort och hårddisk. Att identifiera en användare eller en resurs, även kallat autenticering. En identifiering vore värdelös utan en verifiering, därför antas att verifiering alltid sker vid identifiering. En process skrivet av en illvillig programmerare. 59
60 KAPITEL 6. SAMMANFATTNING Illvillig programmerare Malware Mask Mjukvara Monolitisk design NCA Nexus NGSCB OEM Opt-in Opt-out OS Palladium Phishing SSC TC En programmerare som genom illvilja eller slarv förorsakar problem, t.ex. skadar operativsystemet eller säkerhetsrisker. Samlingsnamn på virus, trojanska hästar, maskar och deras varianter. Ett program som replikerar och sprider sig själv, det kan ibland skada den dator som det infekterar. Körbara program, hit räknas även drivrutiner och operativsystem. Med monolitisk design menas en typ av design där större delen av funktionaliteten är beroende av en enda enhet. Motsatsen är ett system uppbyggt i moduler (modulärt) med redundans. Denna designtyp är vanlig men anses som mycket problematisk. Nexus Computing Agent. Den del i NGSCB som tillsammans med SSC verifierar programvara som vill köra i betrott läge. Tidigare kallad Palladium. NGSCB står för Next Generation Secure Computing Base, det är ett tillägg till Microsoft Windows. Original Equipment Manufacturer Något som avslaget och medvetet kan väljas in av användaren (t.ex. spolarvätska till en bil). Något som är förvalt och startat av systemet men kan väljas bort (t.ex. direktreklam hem i brevlådan). Operativsystem. Se NGSCB. Microsoft ändrade namnet till NGSCB under 2003. Phishing är när en hacker vill lura användaren att ge ifrån sig information (t.ex. personlig eller företagshemligheter) i illvilligt syfte. Security Support Component, ett chip som måste finnas på moderkortet som säkerhetsstöd för NGSCB. Kallas TPM i TCGs specifikation. Används i denna rapport som Trusted Computing, Microsoft vill dock kalla detta för Trustworthy Computing. Trusted Computing innebär säkerhetslösningar där man kan ha tillit i systemet.
61 TCG TCP TCPA Tillförlitlig TOR TPM Trojan Trojansk häst Virus Trusted Computing Group, skapade TCPA. TCG grundades av bland andra Microsoft. Trusted Computing Platform. Är i de flesta fall hårdvarustödda säkerhetslösningar för system. Trusted Computing Platform Alliance, en standard för att göra datorer säkrare. TCPA uppfanns av TCG. Används i samma mening som engelskans trustworthy. Detta är viktigt att påpeka eftersom betrodd inte nödvändigtvis är det samma som tillförlitlig. Trusted Operating Root var det gamla namnet på Nexus. Trusted Platform Module, en mikrokontroller som normalt sitter på datorns moderkort. Denna kan lagra nycklar och lösenord samt generera nya nycklar. Se trojansk häst. En trojansk häst installeras antingen av användaren själv eller av en hackare. En trojansk häst kan maskera sig på två sätt, antingen som ett legitimt och användbart program eller så gömmer det sig på något sätt. Trojanska hästar gör alltid något som användaren inte har kontroll över. De kan till exempel: Öppna bakdörrar, installera andra program (tex virus), söka efter användarnamn och passwords (både från hårddisk och tangentbord), osv. Om programmet söker information kan denna lagras eller skickas vidare. Ett program som infekterar ett annat och saknar förmåga att själv sprida sig över nätverk. Ett virus kan till exempel vara konstruerat så att det infekterar alla Word-dokument-filer på en dator, när användaren sedan kopierar filerna och öppnar dem på andra system kan viruset sprida sig.
Referenser [1] ANDERSON, R. Why cryptosystems fail. 1st. Conf. Computer & Comm. Security 1 (1993), 215 227. [2] ANDERSON, R. Security Engineering a Guide to Building Dependable Distributed Systems, second ed. John Wiley & Sons, Inc., 2001. [3] ANDERSON, R. Cryptography and competition policy: Issues with trusted computing. Annual ACM Symposium on Principles of Distributed Computing 22 (2003), 3 10. [4] ATMEL CORPORATION. Atmel corporation homepage. http://www.atmel.com, 2004. Besökt: 2005-04-03. [5] BECHTOLD, S. The present and future of digital rights management musings on emerging legal problems. Lecture Notes in Computer Science 2770 (2003), 597 654. [6] BISHOP, M. Computer Security: Art and Science. Addison Wesley, 2003. [7] CAELLI, W. J. Tcpa, palladium and friends: Trends in computer security. In Australasian Information Security Workshop (2003), vol. 21, p. 1. [8] COULOURIS, G., DOLLIMORE, J., AND KINDBERG, T. Distributed Systems: Concepts and Design, 3 ed. Addison-Wesley, 2001. [9] ELLISON, C., AND SHNEIER, B. Ten risks of pki: What you re not being told about public key. Computer Security Journal 16, 1 (2000). [10] GRUNWALD, D., AND GHIASI, S. Microarchitectural denial of service: insuring microarcitectural fair ness. ACM Transactions on Computer Systems (TOCS) 21, 3 (Aug. 2002). [11] HABET, A., AND MANOS, D. Trusted Computing information security or Big Brothers latest tool? Master s, Örebro University, 2003. www. 63
64 REFERENSER [12] HOUSLEY, R., AND HARTMAN, S. X.509 standarden. Besökt 2005-05-18, 2005. http://www.ietf.org/html.charters/pkix-charter.html. [13] INFINEON TECHNOLOGIES AG. Infineon s trusted platform module. Besökt: 2005-01-02, 2002. http://www.silicontrust.com/trends/comp_tpm.asp. [14] INFINEON TECHNOLOGIES AG. Platform security trusted platform module (tpm). Besökt 2005-01-02, 2004. http://www.infineon.com/cgi/ecrm.dll/ecrm/scripts/prod_ov.jsp?oid=29049&cat_oid=- 9313. [15] KERCKHOFFS, A. La cryptographie militaire. Journal des sciences militaires IX (1883), 5 38. http://www.petitcolas.net/fabien/kerckhoffs/. [16] KLIMA, V. Finding md5 collisions on a notebook pc using multimessage modifications. Cryptology eprint Archive, Report 2005/102, 2005. http://eprint.iacr.org/. [17] KOCHER, P., LEE, R., MCGRAW, G., RAGHUNATHAN, A., AND RAVI, S. Security as a new dimension in embedded system design. In Proceedings of the 41st annual conference on Design automation (2004), vol. 0, pp. 753 760. [18] KUHLMANN, D. On tcpa. Lecture Notes in Computer Science 2742 (2003), 255 269. [19] LIE, D., THEKKATH, C. A., AND HOROWITZ, M. Implementing an untrusted operating system on trusted hardware. In SOSP 03: Proceedings of the nineteenth ACM symposium on Operating systems principles (New York, NY, USA, 2003), ACM Press, pp. 178 192. [20] MAO, W. Modern Cryptography, Theory and Practice. Prentice Hall, 2004. [21] MATSUMOTO, T., MATSUMOTO, H., YAMADA, K., AND HOSHINO, S. Impact of artificial gummyfingers on fingerprint systems. In SPIE (2002), R. L. v. Renesse, Ed., vol. 4677, pp. 275 289. [22] MENEZES, A. J., OORSCHOT, P. C. V., AND VANSTONE, S. A. Handbook of Applied Cryptography. CRC Press, 1997. [23] MICROSOFT CORPORATION. Hardware platform for the next-generation secure computing base. Microsoft Word Dokument, Besökt 2004-10-05, 2003. http://www.microsoft.com/resources/ngscb/documents/ngscbhardware.doc.
REFERENSER 65 [24] MICROSOFT CORPORATION. Microsoft next-generation secure computing base - technical faq. Microsoft Word Dokument, Besökt 2004-10-05, 2003. http://www.microsoft.com/technet/archive/security/news/ngscb.mspx. [25] MICROSOFT CORPORATION. NGSCB: Trusted computing base and software authentication. Microsoft Word Dokument, Besökt 2004-10-05, 2003. http://www.microsoft.com/resources/ngscb/documents/ngscb_tcb.doc. [26] MICROSOFT CORPORATION. Privacy-enabling enhancements in the next-generation secure computing base. Microsoft Word Dokument, Besökt 2004-10-05, 2003. http://www.microsoft.com/downloads/thankyou.aspx?familyid=f30adb72- f9c7-4193-9a5b-621c2dc33adf&displaylang=en. [27] MICROSOFT CORPORATION. Secure user authentication for the next-generation secure computing base. Microsoft Word Dokument, Besökt 2004-10-05, 2003. www.microsoft.com/resources/ngscb/documents/ngscb_authentication.doc. [28] MICROSOFT CORPORATION. Security model for the next-generation secure computing base. Microsoft Word Dokument, Besökt 2004-10-05, 2003. http://www.microsoft.com/resources/ngscb/documents/ngscb_security_model.doc. [29] MICROSOFT CORPORATION. Winhec 2004 conference papers. Besökt 2004-10-05, 2004. http://www.microsoft.com/whdc/winhec/pres04- tech.mspx. [30] MICROSOFT CORPORATION. Microsoft firewall api. Besökt 2004-10-05, 2005. http://msdn.microsoft.com/library/default.asp?url=/library/enus/ics/ics/windows_firewall_start_page.asp. [31] MICROSOFT CORPORATION. windows ljudfiler, mpaud*.wav. öppna filerna med en texteditor och läs längst ner i filen, 2005. C:\WINDOWS\Help\Tours\WindowsMediaPlayer\Audio\Wav [32] NIST. Advanced encryption standard (aes), data encryption standard (des), triple-des, and skipjack algorithms. http://csrc.ncsl.nist.gov/cryptval/des.htm, April 12, 2002 2002. Besökt 2005-05-08. [33] NVIDIA CORPORATION. nforce4 whitepapers. http://www.nvidia.com/object/feature_activearmor.html, 2005. Besökt 2005-05-08.
66 REFERENSER [34] PERCIVAL, C. http://www.daemonology.net/papers/. proceedings of BSD- Can 2005, 2005. http://www.daemonology.net/papers/htt.pdf. [35] SANDSTRÖM, M. Liveness Detection in Fingerprint Recognition Systems. Exam thesis, Linköpings tekniska högskola, 2004. [36] SARPESHKAR, R., DELBRÜCK, T., AND MEAD, C. A. White noise in mos transistors and resistors. IEEE Circuits and Devices 9, 6 (1993), 23 29. [37] SCHNEIER, B. Applied Cryptography, Second Edition: Protocols, Algorthms, and Source Code in C (cloth), 2 ed. John Wiley & Sons, Inc., 1996. [38] SCHULTZ, E. Pandora s box: spyware, adware, autoexecution, and NGSCB. Computers & Security (2003). [39] SE46. Se46 ab hemsida. http://se46.com/, 2005. Besökt 2005-05-10, bilder från sidan publicerade med tillstånd från SE46. [40] STINSON, D. R. Cryptography: theory and practice, 1 ed. CRC Press, 1995. [41] STREBE, M., AND PERKINS, C. Brandväggar 24sju. Pagina Förlags AB, 2000. [42] TCG. Trusted computing platform alliance (tcpa) main specification version 1.1b och 1.2. http://www.trustedcomputinggroup.org/, 2003. Besökt 2004-09-05. [43] WANG, X., FENG, D., LAI, X., AND YU, H. Collisions for hash functions md4, md5, haval-128 and ripemd. Cryptology eprint Archive, Report 2004/199, 2004. http://eprint.iacr.org/. [44] WANG, X., YIN, Y. L., AND YU, H. Collision search attacks on sha1. Tech. rep., Shandong University, february 13 2005. http://theory.csail.mit.edu/ yiqun/shanote.pdf. [45] WILLIAMS, J. M. Biometrics or... biohazards? In Proceedings of the 2002 workshop on New security paradigms (2002), pp. 97 107. [46] YAMAMURA, M. W95.cih. Symantecs hemsida om viruset CIH, March 30, 2004 1998. http://www.symantec.com/avcenter/venc/data/cih.html. [47] ÖGREN, T. Föreläsning om datasäkerhet. Föreläsning om datasäkerhet, 20050314. http://www.cs.umu.se/ stric/security.pdf.
A Phishing Följande epostmeddelande skickades ut till kunder hos ett stort telebolag i Tyskland. Meddelandet förklarar att kundens räkning är 256,59 Euro. Det finns även en länk till hemsidan där kunden kan betala sin räkning. Kunden kommer att logga in på vad han tror är den riktiga hemsidan för att betala sin räkning. Sidan är dock administrerad av en hacker och pengarna sätts in på dennes konto istället. From info@telekom.de Tue May 17 19:58:45 2005 Date: Tue, 17 May 2005 11:00:30-0700 From: info@telekom.de To: ****@****.***.se Subject: Telekom Sehr geehrte Kundin, sehr geehrter Kunde, die Gesamtsumme für Ihre Rechnung im Monat Mai 2005 beträgt: 256,59 Euro. Aus Sicherheitsgründen haben wir ihre Rechnung mit einem Passwort versehen. Ihr persönliches Passwort lautet: Augen Mit dieser E-Mail erhalten Sie Ihre aktuelle Telekom-Rechnung und -soweit von Ihnen beauftragt- die Einzelverbindungsübersicht. Nutzen Sie auch unter www.t-com.de/rechnung-online die vielfältigen Möglichkeiten von Rechnung Online, wie z.b. Sortierungs- und Auswertungsfunktionen. Hier finden Sie auf der Seite ganz oben links unter "Hilfe/FAQ" auch nützliche Tipps zur Nutzung von Rechnung Online. Mit freundlichen Grüßen Ihre Deutsche Telekom [ Part 2, Application/X-ZIP-COMPRESSED 5.4KB. ] [ Unable to print this part. ] 67