12.02.2014 Views

Lectures for 2008 - KTH

Lectures for 2008 - KTH

Lectures for 2008 - KTH

SHOW MORE
SHOW LESS

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)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!