Lectures for 2008 - KTH
Lectures for 2008 - KTH
Lectures for 2008 - KTH
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
KURSKOMPENDIUM NÄTVERKSSÄKERHETSKURS<br />
___________________________________________________________________________<br />
5.10.3 Kerckhoffs princip<br />
Auguste Kerckhoffs, vars fulla namn är det majestätiskt klingande Jean-Guillaume-Hubert-<br />
Victor-Francois-Alexandre-Auguste Kerckhoffs von Nieuwenhof, gav 1883 ut boken ”La<br />
Cryptographie militaire”. Boken är av många ansedd som en av de främsta böckerna i ämnet.<br />
I boken har Kerckhoffs lagt fram en av de grundläggande teorierna för moderna<br />
kryptosystem, nämligen att sekretessen måste bygga på säkerheten i nyckeln, inte på sekretess<br />
om själva systemet, till exempel vald kryptoalgoritm. Systemets säkerhet skall bestå även om<br />
motståndaren får kunskap om metoder, algoritmer och annat om själva krypteringsprocessen.<br />
Obskyritet runt detta får inte vara det som bygger säkerheten. Säkerheten måste bestå om man<br />
bara håller nyckeln väl skyddad. Detta har blivit känt som Kerckhoffs princip.<br />
5.10.4 Nyckelbyten<br />
Ett vanligt antagande är att man kan undvika attacker baserade på uttömmande sökning<br />
genom att ändra sessionsnycklar regelbundet. Detta är något som inte helt och hållet stämmer.<br />
Kontinuerliga nyckelbyten, baserade på tid, antal överförda byte eller liknande kan leda till<br />
ökad säkerhet. Ett problem är dock om någon kan observera när ett nyckelutbyte sker. Denna<br />
kunskap kan underlätta försöken att knäcka kryptot. Man behöver i genomsnittbara söka<br />
igenom halva nyckelrymden för att hitta nyckeln. Nyckeln kan ligga i den första, men också i<br />
den sista procenten nyckelutrymme.<br />
Om nyckelbytet går att observera gör man helt enkelt en omstart på sitt sökande. Om man<br />
försöker attackera ett kommunikationsprotokoll som nyttjar en krypteringsalgoritm som skulle<br />
gå att göra en uttömmade nyckelsökning på i medeltal efter 75 minuter, man hittar nyckel i<br />
genomsnitt efter halva tiden. Detta är inte ett orimligt exempel under vissa förutsättningar –<br />
korta nyckellängder eller dåligt framslumpade sessionsnycklar. Det innebär att hela<br />
nyckelrymden kan sökas igenom 150 minuter, men man har ibland tur och hittar vid vissa<br />
sökningar en nyckel som ligger i början av nyckelrymden men vid andra gånger måste man<br />
göra en längre genomsökning. Om vi har kunskap om när nyckelbyte sker och att det är<br />
exempelvis var 15:e minut så är sannolikheten att vi kan finna en nyckel under dessa 15<br />
minuter 15 / 150 dvs 1/10. Detta innebär att vi i exemplet kan göra en ny nyckelsökning varje<br />
gång ett nyckelbyte sker och ändå ha 10 procents chans att lyckas fånga fånga rätt nyckel.<br />
Pricipen som framgår av exemplet är att man ändå måste ha en stark kryptoalgoritm och<br />
använda långa kryptonycklar även om man använder nyckelbyten eftersom metoden att byta<br />
nycklar inte är en fullgod ersättare för nyckel- och algoritmstyrka.<br />
5.10.5 Kryptotyper<br />
Modera kryptoalgoritmer faller i en av två kategorier - strömkrypto (eng. stream cipher) och<br />
blockkrypto. Ett blockkrypto arbetar med indata i <strong>for</strong>m av block som ofta är 64 eller 128-bitar<br />
långa. Strömkrypton arbetar med indata av valfri längd, även fast vanliga avändningsområden<br />
är att arbeta med en byte åt gången eller ibland en bit åt gången. Generellt kan man säga att<br />
strömkrypton brukar vara snabbare än blockkrypton och de kan implementeras med mindre<br />
kod. En fara med strömkrypton är återanvändning av sessionsnycklar då det öppnar upp för<br />
attacker. Angriparen kan kombinera de två krypterade dataströmmarna och få fram ett resultat<br />
som är kombinationen (XOR) av de två klartextmeddelandena. Från detta stadium är det<br />
betydligt enklare att <strong>for</strong>tsätta angreppen än att angripa kryptotext. Om det är samma<br />
meddelande som sänts två gånger och samma nyckel använts så går det enkelt att ta fram det<br />
ursprungliga meddelandet. Ett sätt att kringå problemet med återanvändning av exakt samma<br />
nycklar är att använda ett framslumpat initieringsvärde (eg initialization vector), IV, samt<br />
Copyright (c) 2003-<strong>2008</strong> Robert Malmgren AB. All rights reserved Sid 90 (139)