Page 1

Internettechnologie Rik Van de Walle Gent, februari 2009

Architecturale aspecten van beveiliging

Internettechnologie (ITech) Rik Van de Walle academiejaar 2008-2009

1


Basisprincipes

2

Internettechnologie Rik Van de Walle Gent, februari 2009


Basisprincipes • Noodzaak van beveiliging o Eerste computernetwerken • Onderzoeksomgevingen • E-mail versturen (klare tekst) • Delen van randapparaten (printers) o

Moderne netwerkgebaseerde systemen • Miljoenen gebruikers met elkaar “verbonden” op een publiek netwerk (het Internet !) • E-handel • Bankzaken • Toegang tot kritische data via databanken


Basisprincipes • Belangrijkste aspecten van beveiliging o Onbevoegden toegang ontzeggen tot sommige gegevens o “Toegang ontzeggen” heeft verschillende betekenissen en kan met behulp van • Encryptie (vercijfering) • Authentisering • Firewalls o

Vereist beveiliging in diverse lagen van het OSI-model • Wij gaan kijken naar beveiliging in de applicatielaag


Basisprincipes • Belangrijkste aspecten van beveiliging o Verificatie werkelijke afzender van een bericht o Vermijden “afspeelaanval” • Legitiem bericht wordt onderschept • Dit bericht wordt opnieuw afgespeeld • Voorbeeld: herhalen betalingsorder (t.a.v. bank) van een klant o

Niet-loochening • Identiteit kunnen aantonen • Voorbeeld: is van belang bij bestelling dure goederen


Vier deelaspecten van beveiliging • Geheimhouding o Informatie uit handen van onbevoegden houden • Authentisering o Bepalen van wie informatie/vraag afkomstig is vooraleer zelf vertrouwelijke informatie te versturen • Niet-loochening o Toevoegen van handtekening o Laat afzender + ontvanger toe te bewijzen wie data verstuurd heeft • Integriteitscontrole o Geeft ontvanger zekerheid dat bericht onderweg niet (kwaadwillig) gewijzigd werd


Basisprincipes • Analogie: fysische wereld o Geheimhouding • Versturen van post onder gesloten omslag o

Authentisering • Herkenning iemands gezicht, stem, handschrift, vingerafdrukken, … • Gebruik van cijfercodes, paswoorden, … • Geavanceerde authentiseringsmethoden zoals biosensoren

o

Niet-loochening • Ondertekening documenten “met pen en papier”

o

Integriteitscontrole • Opbergen documenten “achter slot en grendel”


Cryptografie (Geheimhouding)

8

Internettechnologie Rik Van de Walle Gent, februari 2009


Traditionele cryptografie • Doel cryptografie o Berichten onleesbaar (onbegrijpbaar) maken voor onbevoegden o Middel: vercijfering (of encryptie of versleuteling) o Algemeen principe vercijfering • Bericht = klare tekst P • Vercijfering door afzender levert de vercijferde tekst C op

– P wordt omgezet via een vercijferingsprocedure EK – met sleutel K als parameter

C = EK(P)


Traditionele cryptografie • Algemeen principe ontcijfering • Code C = vercijferd bericht • Eng. cipher text • Ontcijfering door ontvanger levert het ontcijferd bericht (klare tekst) P op

– C wordt omgezet via een ontcijferingsprocedure DK – met sleutel K als parameter

P = DK(C)


Eenvoudig vercijferings/ontcijferingsmodel Sleutel K klare tekst P

vercijferingsmethode EK

passieve indringer C = EK(P)

actieve indringer

klare tekst DK(EK(P)) = P

ontcijferingsmethode DK Sleutel K


Cryptografie • Terminologie o Cryptografie • Houdt zich bezig met de vercijfering van berichten o

Cryptoanalyse • De “kunst” van het kraken van vercijferingsmethoden • Bij traditionele cryptografie gaat men steeds uit van

– Hypothese 1: cryptoanalist kent de algemene methoden (E en D) – Hypothese 2: cryptoanalist kent de bijbehorende sleutel K niet


Cryptografie • Terminologie o Cryptoanalyse (vervolg) • Veiligheid kan verhoogd worden door K regelmatig te wijzigen • Lengte van sleutels bepaalt in belangrijke mate veiligheidsniveau 3

– Analogie: cijferslot met 3 cijfers (10 mogelijkheden) versus cijferslot met 6 6 cijfers (10 mogelijkheden) o

Cryptologie • Geheel van cryptografie en cryptoanalyse • Term die niet zoveel gebruikt wordt in het Nederlands


Cryptografie • In de cryptografie wordt er gebruik gemaakt van twee basismethoden om klare tekst te vercijferen o

Substitutie • Mapt x-bit op y-bit • Gebeurt met zogenaamde boxen • Zorgt voor niet-lineariteit

S-

(6 bit)

S-box (4 bit)

• Zorgt voor confusion o

Transpositie • Verwisselt symbolen van plaats (permutatie) • Gebeurt met zogenaamde Pboxen • Zorgt voor diffusion

P-box (7 bit)

(7 bit)


Cryptografie • Substitutiesystemen o Elke letter(groep) vervangen door andere letter(groep) o Volgorde symbolen wordt niet gewijzigd o Voorbeeld: Caesar-methode • Cyclische verschuiving van de 26 letters van het alfabet met bv. een stap 3: abcdefghijklmnopqrstuvwxyz defghijklmnopqrstuvwxyzabc

• Mathematisch: C = EK(P) = P + 3 (mod 26) • Het geheim zit in het algoritme (!) • Er is maar 1 sleutel (vaste permutatie), kan veralgemeend worden naar 26 sleutels • Eenvoudig te breken (als algoritme gekend is)


Cryptografie • Substitutiesystemen o Veralgemening: mono-alfabetische substitutie • • • •

Elke letter afbeelden op een andere Sleutel K = rij van letters die correspondeert met abcde...z Aantal elementen in de sleutelruimte = 26! (ongeveer 4 x 1026) Desondanks niet veilig: frequentie- en woordanalyse


Cryptografie • Transpositiesystemen o De symbolen zelf worden niet gewijzigd o De volgorde waarin de symbolen worden geplaatst verandert o

Voorbeeld: kolomtranspositie


Voorbeeld: kolomtranspositie

C

O

M

P

U

T

E

R

1

4

3

5

8

7

2

6

d

i

t

i

s

e

e

n

v

o

o

r

b

e

e

l

d

v

a

n

v

e

r

c

i klare tekst:

j

f

e

r

i

n

ditiseenvoorbeeldvanvercijfering

vercijferde tekst: dvdieerntoafiovjirnenlcgeeeisbvr

g

sleutel K: woord waarin elke letter 1 keer voorkomt

nummering volgens het rangnummer corresponderende letter K

bericht P wordt uitgeschreven op verschillende rijen vercijferde tekst: uitschrijven bericht volgens rangnummers kolommen


Cryptografie • Traditionele cryptografie o E en D eenvoudig o Lange sleutels K • Moderne cryptografie o E en D zeer ingewikkeld o Substitutie- en transpositiecodering wordt nog steeds gebruikt


Cryptografie

Cryptografie met geheime sleutels

20

Internettechnologie Rik Van de Walle Gent, februari 2009


Het Vernam cipher • Vernam cipher is een zogenaamde “stroom cipher” • Gilbert Vernam diende in 1919 “één van de belangrijkste patenten in de cryptografie” in • Vercijfering- en ontcijfersmethode is eenvoudige modulo-2 of XOR ( ⊕ ) berekening • 0 ⊕ 0 = 1 ⊕ 1 = 0 en 0 ⊕ 1 = 1 ⊕ 0 = 1 veilig kanaal

0010

1000

1010

vercijfering

ontcijfering

• Merk op dat de voorgestelde vercijfer- en ontcijferstap identiek zijn


Vernam cipher (ook “one-time pad” genoemd) •

Shannon bewees dat Vernam cipher eerste en ook enige vercijferalgoritme is dat “informatietheoretisch” onbreekbaar (dus perfect veilig) is, indien voldaan aan 1. De lengte van de sleutel dient even lang te zijn als de te vercijferen gegevens 2. De sleutel mag enkel bestaan uit werkelijk willekeurige tekens 3. Een sleutel mag slechts één maal gebruikt worden om één bericht te vercijferen en dient na gebruik vernietigd te worden 4. Van een sleutel mogen slechts twee kopijen bestaan, zijnde één voor de verzender en één voor de ontvanger van de gegevens

Het Vernam cipher is dus een theoretisch onbreekbare maar in de praktijk ondoenbare vercijfertechniek


Moderne block ciphers klare tekst

sleutel K

preprocessing

creatie iteratiesleutels

iteratiesleutel 1 iteratiestappen 1, 2, ‌

iteratiesleutel 2 iteratiesleutel 3 ‌

postprocessing vercijferde tekst


Feistel ciphers (I) • Feistel is een van de pioniers van moderne cryptografische algoritmen (IBM, begin jaren 1970) • Feistel code (Feistel cipher) is een schema dat een algoritme specificeert voor een block cipher • Feistel schema laat vercijfering en ontcijfering toe met o Hetzelfde hardware circuit o Dezelfde software implementatie • Algoritmen die gebruik maken van Feistel ciphers o DES (en 3DES) o IDEA


Feistel ciphers (II) • Bevat een aantal iteraties n • In elke iteratie i wordt een input blok M opgedeeld in twee halfblokken Li-1 en Ri-1 • Linkeroutput Li = Ri-1 • Rechteroutput Ri is afhankelijk van o Linker- en rechterinput o Een functie f o Iteratiesleutel Ki o Li-1 XOR f(Ri-1,Ki): bitsgewijze exclusieve OR • Mi bestaat uit de samenstelling van Li en Ri

Mi-1

Li-1

Ri-1 f

⊕ Li

Ri Mi

Ki


Voorbeeld 2 iteraties

Feistel ciphers (III) vercijfering

ontcijfering

P

C

L0

R0 f

R2

L2

K1

f

⊕ L1

R1 f

R1

L1

K2

f

⊕ L2

R2 C

K2

⊕ R0

L0 P

K1


!

Feistel ciphers (IV) • Vercijferings- en ontcijferingsalgoritme zijn identiek, enkel volgorde sleutels Ki moet worden omgekeerd • De functie f kan eender wat zijn; typisch een functie die eenvoudig te berekenen is maar moeilijk te inverteren • Na laatste iteratie n worden Ln en Rn “geswapped” • Het Feistel schema specificeert niet: o Grootte van de input blokken M o Grootte van de sleutel K o Aantal iteraties n o Algoritme om sleutels per iteratie te genereren o Functie f


DES – Data Encryption Standard (I) • DES (Data Encryption Standard) o Door IBM ontwikkeld in 1977 o Overgenomen door Amerikaanse overheid o Ook nu nog zeer veel gebruikt bv. Bancontact (drievoudige DES, zie later) bv. IPVPN-oplossingen op het Internet

o

Basisprincipe werking van DES • Klare tekst wordt vercijferd in blokken van 64 bit • Dit levert stukken vercijferde tekst van 64 bit op • Zelfde sleutel van 56 bit wordt gebruikt voor vercijfering en ontcijfering • Gebaseerd op Feistel ciphers


DES – Data Encryption Standard (II) Li-1

Ri-1

klare tekst van 64 bit

sleutel van 56 bit

eerste transpositie iteratie 1 iteratie 2 Li-1 XOR f(Ri-1,Ki) iteratie 16 verwisseling van 32 bit omgekeerde transpositie

Li

Ri


DES – Data Encryption Standard (III) • Werking van enkelvoudige DES o Transposities (stap 1 en 19) hangen niet af van K • Deze stap werd ingevoerd om software implementaties van DES te vertragen o

o

Ontcijferingsalgoritme = vercijferingsalgoritme (met sleutels in omgekeerde volgorde) Binnen één iteratie i • Sleutel Ki verschilt voor iedere i

– 56 bit DES-sleutel K opsplitsen in 2 groepen van 28 bit – Elke groep naar links roteren over aantal bits (1 of 2) dat afhangt van de iteratie i – Transpositie op globale resultaat (56 bit) – Selectie van 48 bit hieruit + permutatie


DES – Data Encryption Standard (IV) •

Werking van enkelvoudige DES o Binnen één iteratie i • • • •

2 inputs van 32 bit 2 outputs van 32 bit Linkeroutput Li = rechterinput Ri-1 Rechteroutput Ri is afhankelijk van – Linker- en rechterinput – Een functie f – Iteratiesleutel Ki – Li-1 XOR f(Ri-1,Ki): bitsgewijze exclusieve OR De complexiteit van DES zit vervat in de functie f die bestaat uit 4 stappen


DES – Data Encryption Standard (V) • Werking van enkelvoudige DES o

De functie f die bestaat uit 4 stappen Ri-1

Li-1

Ri-1 f

(32 bit)

Ki

uitbreiding

(48 bit) (48 bit) (48 bit)

Li

Ri

S-box (32 bit)

permutatie (32 bit)

⊕ Ri

Ki


DES – Data Encryption Standard (V) •

De 4 stappen van de functie f samengevat 1. Opbouw van een getal E van 48 bit door uitbreiding van Ri-1 via vaste regel voor transpositie en duplicering 2. Combinatie van E en Ki via XOR operatie 3. Resultaat van (E XOR Ki) wordt opgesplitst in 8 groepen van 6 bit 1. Die elk worden doorgegeven aan een verschillende S-box (substitutiecoder) 2. De S-box beeldt elk van de 64 mogelijke inputs af op een 4 bit output

4. De resulterende 32 bit worden doorgegeven aan een P-box (transpositiecoder)


DES – Data Encryption Standard (VI) • DES o Juli 1998: EFF DES Cracker (Deep Crack) • EFF = Electronic Frontier Foundation • kostprijs hardware < 250 kUSD • tijd nodig om DES te kraken: < 3 dagen

o

Januari 1999: Deep Cracker + distributed.net • Distributed.net is een wereldwijd initiatief om rekenintensieve problemen op te lossen met “idle” CPU-tijd van clients • In 1999 reeds meer dan 100.000 PCs verbonden via Internet • tijd nodig om DES te kraken: <1 dag (22 uren)


DES – Data Encryption Standard (VII) • Beperkte veiligheid o Standaard DES: "electronic code book mode" • Originele klare tekst opsplitsen in opeenvolgende stukken van 64 bit • Ieder stuk wordt vercijferd met zelfde sleutel • Slechts mono-alfabetische substitutie met tekens van 64 bit • Niet veilig o

Cijferblokketening • Vóór vercijfering:

– Elk blok van 64 bit combineren met het vorige via exclusieve OR – Eerste blok: combinatie met een initialisatievector


DES – Data Encryption Standard (VIII) • Beperkte veiligheid o Cijferblokketening • Gevolgen:

– Zelfde blok klare tekst wordt niet altijd op zelfde blok vercijferde tekst afgebeeld (contextafhankelijkheid) – Globale codering vs mono-alfabetische substitutie • Nadeel: vercijfering kan slechts beginnen als gans blok van 64 bit is gearriveerd (client hosts: beperkte invoer !)


Cijferblokketening (cipher block chaining) Nadeel: vercijfering kan slechts beginnen als gans blok van 64 bit gearriveerd is (client hosts: beperkte invoer !)

IV

P0

P1

P2

C0

C1

C2

#

#

#

D

D

D

E

E

E

#

#

#

P0

P1

P2

C0

C1 C0 = E(P0 XOR IV)

C2

IV

zorgt voor ontcijfering (oef.)

P0 = D(C0) XOR IV

C1 = E(P1 XOR C0)

P1 = D(C1) XOR C0

C2 = E(P2 XOR C1)

P2 = D(C2) XOR C1


Cijferterugkoppeling (cipher feedback chaining) Eigenschap: byte per byte vercijfering Nadeel: Transmissiefout van 1 bit verminkt 1 blok van 64 bit klare tekst Stel: bytes 0 tot 9 zijn reeds vercijferd

schuifregister 64 bit

C2

C3

sleutel

C4

C5

C6

C7

C8

C2

C3

sleutel

E

selectie linkerbyte

P10

C9

schuifregister 64 bit

C4

C5

C6

C7

C8

E

selectie linkerbyte

#

C10

C10

#

P10

C9


DES – Data Encryption Standard (IX) • Beperkte veiligheid o Aan te raden: • Standaard DES enkel gebruiken voor sessiesleutels (zie later) • Cijferblokketening gebruiken indien invoer in eenheden van 8 bytes toekomt (bv. bestanden) • Cijferterugkoppeling gebruiken voor onregelmatige invoer (bv. toetsenbord) o

DES twee keer na elkaar ? • "aanval halverwege" (meet-in-the-middle attack) is mogelijk • Niet veilig genoeg !


Double DES (I) Meet-in-the-middle attack K2

K1

P

• • • •

E

E

C

Stel dat een aanvaller een paar (P, C) kent Hierbij geldt dat C = EK2(EK1 (P)) of DK2(C) = EK1 (P) De aanval werkt door te vercijferen vanuit één kant en te ontcijferen van de andere kant, dus “meeting-in-the-middle” Voor gegeven P en C o

56

Zoek 2

sleutels K1 en K2


Double DES (II) Meet-in-the-middle attack •

Vercijfer P met alle 256 mogelijkheden voor K1 -> EK1 (P) o o

Ontcijfer C met alle 256 mogelijkheden voor K2 -> DK2(C) o o

Levert volgende waarden op: X1, X2, X3, …, X 256 Sorteer de waarden X1, X2, X3, …, X 256 Levert volgende waarden op: Y1, Y2, Y3, …, Y 256 Sorteer de waarden: Y1, Y2, Y3, …, Y 256

Zoek een gelijke waarde van Xi en Yj : o o

Indien gevonden dan is het mogelijk dat i = K1 en j = K2 Gebruik een paar (P’,C’) en check of C’ = Ej(Ei (P’)) • Indien ja, dan werden de juiste sleutels gevonden • Indien niet, probeer met 2 andere gelijkenissen van Xi en Yj • Er zal vaak loos alarm zijn vooraleer men een overeenkomstige Xi en Yj vindt, maar uiteindelijk zal men een match vinden


Double DES (III) Meet-in-the-middle attack •

Het aantal kandidaat iteratiesleutels Ki is 248 o o

Totaal aantal sleutelparen (K1 , K2) is 256 x 256 Elk van de sleutels heeft een probabiliteit van 2-64

Deze aanval vereist 257 vercijfer/ontcijferoperaties t.o.v. 2112 bij een brute-force attack

Merk wel op dat er grootte-orde 260 (of 1018) bytes geheugenruimte nodig is !!


Triple DES – 3DES • Beperkte veiligheid o DES drie keer na elkaar uitvoeren, bv. EDE of EEE ? K2

K1

Vercijfering

K3 = K1

P

E

D

E

C

C

D

E

D

P

Ontcijfering K1 •

112 bit voldoende voor commerciële toepassingen

Waarom EDE in plaats van EEE ? o

K3 = K1

Waarom 2 sleutels in plaats van 3 ? o

K2

Achterwaartse compatibiliteit met enkelvoudige DES mogelijk (oef.)

Indien zeer sterke beveiliging gewenst: EEE (168 bit)


IDEA – International Data Encryption Algorithm • Algemeen principe o Blokvercijfering, blokken van 64 bit o Sleutel van 128 bit o Basisstructuur lijkt sterk op DES

• Gepatenteerd, gratis te gebruiken voor nietcommerciële toepassingen

iteratie 1 sleutel van 128 bit

• Eigenschappen o Iedere outputbit hangt af van elke inputbit o 8 iteraties voldoende o Alle DES-modes kunnen gebruikt worden

klare tekst van 64 bit

iteratie 2

iteratie 8 transformatie 64 bit vercijferde tekst


AES – Advanced Encryption Standard (I) • Staat ook bekend als Rijndael algoritme • 1997: NIST schrijft een RFP voor de opvolger van o DES (niet veilig genoeg) o 3DES (te traag) o IDEA (niet vrij beschikbaar) • Request for Proposal (RFP) o Verschillende sleutelgroottes mogelijk (tot 256 bit) o Efficiënte HW implementatie mogelijk o 20 algoritmen werden geëvalueerd o Rijndael werd gekozen in 2001, ontworpen door Belgische onderzoekers (Daemen en Rijmen) • AES is een subset van Rijndael algoritme


AES – Advanced Encryption Standard (II) • AES is een subset van Rijndael algoritme o Blokgrootte = 128 bit (voorgesteld als 4 x 4 blokken van 8 bit) o Sleutelgrootte = 128 / 192 / 256 bit o Aantal iteraties = 10 (AES-128) / 12 (AES-192) / 14 (AES-256) • Twee parallelle processen o Vercijferingsproces (4 bouwblokken) • • • • o

SubBytes ShiftRows MixColumns AddRoundkey

Sleutelgeneratieproces


AES â&#x20AC;&#x201C; Advanced Encryption Standard (III) â&#x20AC;˘ SubBytes o Niet-lineaire substitutiecodering (S-box) o Bytes worden vervangen via vaste look-up tabel o S-box is afgeleid uit een speciaal type veeltermen die goede niet-lineaire eigenschappen heeft

a0,0 a0,1 a0,2 a0,3 a1,0 a1,1 a1,2 a1,3

b0,0 b0,1 b0,2 b0,3 SubBytes

b1,0 b1,1 b1,2 b1,3

a2,0 a2,1 a2,2 a2,3

b2,0 b2,1 b2,2 b2,3

a3,0 a3,1 a3,2 a3,3

b3,0 b3,1 b3,2 b3,3 S


AES – Advanced Encryption Standard (IV) • ShiftRows o Transpositiecodering wordt toegepast o Op elke rij van de matrix • Elementen worden cyclisch verschoven o

Elke kolom van outputmatrix in deze stap is samengesteld uit bytes afkomstig van elke kolom van inputmatrix

a0,0 a0,1 a0,2 a0,3 a1,0 a1,1 a1,2 a1,3

a0,0 a0,1 a0,2 a0,3 ShiftRows

a1,1 a1,2 a1,3 a1,0

a2,0 a2,1 a2,2 a2,3

a2,2 a2,3 a2,0 a2,1

a3,0 a3,1 a3,2 a3,3

a3,3 a3,0 a3,1 a3,2


AES â&#x20AC;&#x201C; Advanced Encryption Standard (V) â&#x20AC;˘ MixColumns o Transformatie op de kolommen van de matrix o Elke 4 bytes in elke kolom worden getransformeerd via een lineaire transformatie met een vaste veelterm

a0,0

a0,1 a0,1 a0,2 a0,3

1,1 a a1,0 aa1,1 1,2 a1,3

b0,0 MixColumns

b0,1 b0,1 b0,2 b0,3

1,1 b b1,0 bb1,1 1,2 b1,3

a2,0 aa2,1 a2,2 a2,3 2,1

b2,0 bb2,1 b2,2 b2,3 2,1

a3,0 a3,1 a3,2 a3,3 a3,1

b3,0 b3,1 b3,2 b3,3 b3,1 Transformation


AES – Advanced Encryption Standard (VI) • AddRoundkey o Elke byte uit de inputmatrix wordt gecombineerd (XOR) met een geheel getal afgeleid uit de iteratievercijfersleutel a0,0 a0,1 a0,2 a0,3 a1,0 a1,1 a1,2 a1,3

b0,0 b0,1 b0,2 b0,3 AddRoundKey

b1,0 b1,1 b1,2 b1,3

a2,0 a2,1 a2,2 a2,3

b2,0 b2,1 b2,2 b2,3

a3,0 a3,1 a3,2 a3,3

b3,0 b3,1 b3,2 b3,3

k0,0 k0,1 k0,2 k0,3 k1,0 k1,1 k1,2 k1,3 k2,0 k2,1 k2,2 k2,3 k3,0 k3,1 k3,2 k3,3


Klare tekst

initiële iteratievercijfersleutel

AddRoundKey

initiële stap

SubBytes iteratievercijfersleutel 1 tot 9 ShiftRows 9 iteraties

MixColumns AddRoundKey

SubBytes

iteratievercijfersleutel 10

ShiftRows AddRoundKey

10de iteratie

Vercijferde tekst

AES – Voorstelling


AES – Advanced Encryption Standard (VII) • Vercijfersleutels o Hoofdvercijfersleutel o Iteratievercijfersleutels worden eruit afgeleid • Sleuteluitbreiding (key expansion) • Sleutelselectie (key selection) o o

Vrij complex proces Iteratievercijfersleutels worden ondermeer afgeleid uit vorige vercijfersleutels

• AES wordt in de praktijk meer en meer gebruikt • Heeft tot nog toe alle cryptoanalytische aanvalstechnieken met succes doorstaan • Wordt algemeen beschouwd als meest veilige vercijferingsprocedure die vandaag bestaat • Illustratie van werking a.d.h.v. Flash simulatie


Cryptografie

Cryptografie met publieke sleutels

53

Internettechnologie Rik Van de Walle Gent, februari 2009


Cryptografie met publieke sleutels • Algemeen o Zwakke schakel cryptografie met geheime sleutels is het sleutelbeheer o

Hypothesen uit het voorgaande (cryptografie met geheime sleutels): • Vercijfersleutel = ontcijfersleutel (of afleidbaar uit elkaar) • Sleutels moeten aan alle gebruikers van het systeem worden uitgedeeld


Cryptografie met publieke sleutels • Algemeen o Nieuwe hypothese: gebruik maken van publieke sleutels • • • • • o

E: publieke vercijfersleutel D: geheime ontcijfersleutel D(E(P)) = P D kan in de praktijk niet uit E afgeleid worden E kan niet gekraakt worden via aanval met “gekozen klare tekst”

Iedere gebruiker heeft twee sleutels • Publieke sleutel: laat anderen toe berichten naar de eigenaar van de sleutel te sturen • Geheime sleutel: laat de eigenaar toe ontvangen berichten te ontcijferen


Cryptografie met publieke sleutels publieke sleutel Bob

hoofdrolspeler 1: afzender Alice

hoofdrolspeler 2: ontvanger Bob

Bob

Alice

C=EB(P)

DB(C) = P

geheime sleutel Bob


Cryptografie met publieke sleutels â&#x20AC;˘ Merk op dat dat in een communicatie tussen twee gebruikers (of een client en een host) iedere gebruiker van het computersysteem 2 sleutels heeft o Openbare sleutel van de bestemmeling bericht o Geheime sleutel die de afzender nodig heeft om berichten, naar hem gestuurd, te ontcijferen o Men spreekt van asymmetrische cryptografie â&#x20AC;˘ In het voorgaande gedeelte van cryptografie met geheime sleutels hadden we telkens te maken met sleutel identiek voor vercijfering en ontcijfering o Men spreekt in dat geval van symmetrische cryptografie


RSA (I) â&#x20AC;˘

RSA (Rivest, Shamir, Adleman) o Mechanisme 1. Kies twee grote priemgetallen p en q (> 10100) 2. Bereken

n = pq z = (p-1)(q-1) 3. kies getal d zodat d geen factoren gemeen heeft met z Hou d geheim 4. zoek getal e, zodat

ed = 1 (mod z) Geef e aan anderen


RSA (II) • RSA (Rivest, Shamir, Adleman) o Mechanisme (vervolg) • Klare tekst wordt opgesplitst in bitstrings P, zodat

0 ≤ P n • Vercijfering: publieke sleutel (e,n)

C = Pe (mod n) • Ontcijfering: geheime sleutel (d,n)

P = Cd (mod n)


Voorbeeld van RSA-encryptie Gegeven: klare tekst: P = "systeem" Kies: p = 3 / q = 11 / d = 7 (d geheim houden) Berekening: n = 33 / z = 20 / e = 3 vercijfering

ontcijfering

P

cijfers

Pe

C = Pe (mod n)

Cd

P = Cd (mod n)

letters

S

19

6859

28

13492928512

19

S

Y

25

15625

16

268435456

25

Y

S

19

6859

28

13492928512

19

S

T

20

8000

14

105413504

20

T

E

5

125

26

8031810176

5

E

E

5

125

26

8031810176

5

E

M

13

2197

19

893871739

13

M


RSA (III) • •

Alice heeft geheime sleutel (dA,nA) en publieke sleutel (eA,nA) Bob heeft geheime sleutel (dB,nB) en publieke sleutel (eB,nB) Vercijfering met publieke sleutel Bob

hoofdrolspeler 1: afzender Alice

hoofdrolspeler 2: ontvanger Bob

P= CdB (mod nB)

P’= C

dA

(mod nA)

geheime sleutel Alice

Bob

Alice

C= PeB (mod nB)

C= P’eA (mod nA)

Vercijfering met publieke sleutel Alice

geheime sleutel Bob


RSA (IV) • RSA is zeer rekenintensief o Grote priemgetallen o Niet geschikt voor het vercijferen van grote hoeveelheden data • RSA wordt in systemen vaak gebruikt voor o Vercijfering van het proces voor het uitdelen van eenmalige geheime sessiesleutels die voor 3DES, IDEA of AES worden gebruikt • PKCS – Public Key Cryptographic Standards o Definieert hoe RSA schema te gebruiken (syntax van berichten) o Wordt gebruikt in bv. SSL of SSH


Authentisering

63

Internettechnologie Rik Van de Walle Gent, februari 2009


Algemeen • "Spelers": o Alice • Neemt initiatief; wil veilige verbinding met o o

Bob Eve: aanvaller • Kan berichten onderscheppen, wijzigen en/of opnieuw afspelen

• Principe (doel authentisering) o Na authentisering: Alice is zeker dat ze met Bob communiceert o + omgekeerd


Algemeen •

Principe o Meestal bestaan de algoritmen uit 2 stappen 1. Publieke-sleutelcryptografie (bv. RSA) voor

– Authentisering – Opstellen en uitwisselen sessiesleutel 2. Geheime-sleutelcryptografie voor het dataverkeer na authentisering (bv. 3DES) o

Alle permanente sleutels best wissen na de tot standbrenging van de sessie • •

Op die manier blijven enkel de sessiesleutels over Hoeveelheid data die daarmee vercijferd is, is slechts beperkt geldig in de tijd (goed tegen aanvallen)


Authentisering op basis van een gemeenschappelijke geheime sleutel • Uitdagings-reactieprotocol (challenge-response) o Ene partij stuurt random getal naar andere partij o Tweede partij transformeert getal en stuurt resultaat terug o Eerste partij kan hierdoor identiteit van de tweede partij verifiëren o Terminologie • A, B • Ki

Identiteit van Alice en Bob sleutel van eigenaar i

-> indien een gemeenschappelijke sleutel : KAB • Ri • KS

uitdaging van uitdager i sessiesleutel


Authentisering op basis van een gemeenschappelijke geheime sleutel

1

2 RB, KAB(RA) 3 KAB(RB)

Bob

Alice

A, RA


Authentisering op basis van een gemeenschappelijke geheime sleutel - Spiegelaanval 1

2

A, RE eerste sessie RB, KAB(RE) Eve geeft zich voor Alice uit

4

A, RB

RB2, KAB(RB)

Bob

Eve

3

tweede sessie

Doel Eve: kunnen antwoorden op uitdaging Bob

5

KAB(RB)

eerste sessie â&#x20AC;&#x201C; aanval gelukt


Authentisering op basis van een gemeenschappelijke geheime sleutel • Besluit o Veilige authentisering: verre van evident ! • Enkele basisregels o Initiatiefnemer dient altijd als eerste zijn/haar identiteit te bewijzen o Gebruik verschillende sleutels of zorg dat de gemeenschappelijke sleutel dynamisch kan worden gecreëerd o Gebruik verschillende verzamelingen van mogelijke uitdagingen • Voorbeeld: even vs. oneven random getallen


Een gemeenschappelijke sleutel maken: Sleuteluitwisseling volgens Diffie-Hellman (I) •

We zijn ervan uitgegaan dat Alice en Bob reeds een gemeenschappelijke geheime sleutel hebben o Wat indien dit niet het geval? Diffie-Hellman o Afspreken van gemeenschappelijke sleutel tussen 2 gebruikers o Over een onbeveiligd medium Principe Diffie-Hellman 1. Alice en Bob kiezen elk twee grote priemgetallen n en g die openbaar mogen zijn 2. Alice kiest een groot getal x en houdt het geheim (getal typisch groter dan 512 bit) 3. Bob kiest een groot getal y en houdt het geheim (getal typisch groter dan 512 bit)


Een gemeenschappelijke sleutel maken: Sleuteluitwisseling volgens Diffie-Hellman (II) â&#x20AC;˘

Principe Diffie-Hellman 4. Alice stuurt (n, g, gx mod n) 5. Bob stuurt gy mod n naar Alice 6. Bob verheft (gx mod n)y = gxy mod n 7. Alice verheft (gy mod n)x = gxy mod n 8. Beide partijen hebben nu een gemeenschappelijke geheime sleutel !


Een gemeenschappelijke sleutel maken: Sleuteluitwisseling volgens Diffie-Hellman (III)

Alice kiest x

Bob kiest y

4 (n, g, gx mod n)

5

Alice berekent (gy mod n)x = gxy mod n

Bob

Alice

gy mod n

Bob berekent (gx mod n)y = gxy mod n


Een gemeenschappelijke sleutel maken: Sleuteluitwisseling volgens Diffie-Hellman (IV) â&#x20AC;˘

â&#x20AC;˘

Veilig ? o Stel dat Eve de berichten 4 en 5 onderschept o Als ze x of y zou kunnen berekenen (g en n zijn immers ook gekend) dan kan ze de geheime sleutel berekenen o Er bestaat echter geen uitvoerbaar algoritme om discrete logaritmen modulo een zeer groot priemgetal te berekenen Er bestaat echter wel een ander gevaar o Man-in-the-middle attack


Een gemeenschappelijke sleutel maken: Sleuteluitwisseling volgens Diffie-Hellman (V) •

Man-in-the-middle attack o Als Bob in stap 4 (n, g, gx mod n) ontvangt hoe weet hij dan zeker dat het bericht van Alice komt ? o Hij kan dit niet weten, dus Eve kan Alice en Bob misleiden Gelukkig bestaan er oplossingen om dit te vermijden o Werken met elektronische handtekening (zie verder) o Mogelijk indien Bob en Alice gebruiken maken van een “publieke sleutel infrastructuur” (PKI) o Het is dan ook in deze vorm dat Diffie-Hellman vaak gebruikt wordt op het Internet o Bovendien laat men sleutels gegenereerd met Diffie-Hellman regelmatig vernieuwen in de tijd


Een gemeenschappelijke sleutel maken: Sleuteluitwisseling volgens Diffie-Hellman (VI) Man-in-the-middle attack Alice kiest x

Eve kiest z

Bob kiest y

1

gz mod n

(n, g, gz mod n) 4 gy mod n

Bob

3

2 Eve

Alice

(n, g, gx mod n)


Authentisering met een sleuteldistributiecentrum (I) • Principe o Sleuteldistributiecentrum (SDC) • Eng. Key Distribution Center (KDC) • Vertrouwd door alle gebruikers • Iedere gebruiker heeft één geheime sleutel gemeen met SDC die enkel zij kennen

– Bv. voor Alice : KA – Bv. voor Bob : KB • SDC zorgt voor

– Authentisering – Beheer van sessiesleutels


Alice

1

Alice: • bewijst eigen identiteit • stelt sessiesleutel voor

SDC: • ontcijfert identiteit Bob • ontcijfert sessiesleutel • vercijfert met KB • sessiesleutel • identiteit Alice Bob

A, KA(B, KS)

sleuteldistributiecentrum (SDC)

Authentisering met een sleuteldistributiecentrum (II)

2 KB(A, KS)


Authentisering met een sleuteldistributiecentrum (III) • Zoals voorgesteld in vorige slide is het protocol niet veilig voor een afspeelaanval o Herhaaldelijk opnieuw afspelen van bericht 2 + dataverkeer dat erop volgt o Oplossingen: • Toevoegen van een tijdstempel, maar

– Niet alle klokken binnen netwerk lopen synchroon – Eindig geldigheidsinterval nodig – Afspeelaanval binnen dit interval blijft mogelijk


Authentisering met een sleuteldistributiecentrum (IV) • Afspeelaanval o Oplossingen • Ieder bericht unieke ID toekennen

– Zorgt voor extra dataverkeer (“overhead”) – IDs moeten “eeuwig” bewaard worden • Beter: uitdagings-reactiemethode in 2 richtingen

– Voorbeeld: authentiseringsprotocol van Otway en Rees


Authentiseringsprotocol van Otway en Rees 1 A, B, R, KA(A, B, R, RA)

gemeenschappelijke ID uitdaging Alice

4 KA(RA, KS)

A, KA(A, B, R, RA), B, KB(A, B, R, RB)

identificatie Bob RB uitdaging Bob

3 KB(RB, KS)

Bob

controle gelijkheid R generatie sessiesleutel KS vercijfering â&#x20AC;˘ KS â&#x20AC;˘ uitdagingen

2 sleuteldistributiecentrum

Alice

R RA

identificatie Alice


Kerberos (I) • Architectuur o Client host: Alice • Wenst gebruik te maken van een server (Bob) o

Authentiseringsserver (AS) • Controleert gebruikers tijdens inloggen • Functioneel te vergelijken met SDC

o

Heeft geheim wachtwoord gemeen met iedere gebruiker Ticketafleveringsserver (TAS) • Geeft tickets voor identiteitsbewijs af voor gebruik bij andere hosts • Laat server toe te controleren wie de client is

o

Server host: Bob • Biedt diensten aan (bv. fileserver)


Kerberos (II) â&#x20AC;˘ Architectuur o Gebruik van tijdstempels om afspeelaanvallen te voorkomen o Wachtwoord van Alice slechts paar ms in client aanwezig


Alice tikt paswoord in > creĂŤert KA (een hash) Bericht wordt ontcijferd en paswoord en KA wordt vernietigd

Haar naam wordt in klare tekst doorgestuurd naar AS

2

inloggen

KA(KS, KTAS(A, KS))

TAS 4

5

6

KTAS(A, KS) KS

ticket sessiesleutel

aflevering ticket

KTAS(A, KS), B, KS(t)

KS(B, KAB), KB(A, KAB)

KTAS(A, KS) bewijst id. Alice KAB sessiesleutel voor A en B begrijpbaar voor A KS(.) begrijpbaar voor B KB(.)

KB(A, KAB), KAB(t)

opdracht uitvoeren Bob

Alice

3

Kerberos (III)

A AS

1

Alice logt in aan werkstation

KAB(t+1)

bericht Alice bewijst haar id. antwoord Bob bewijst zijn id.


Kerberos (IV) • Opmerkingen o Afspeelaanval niet mogelijk • Bericht 3 bevat tijdstempel • Zelfs bij snel afspelen bericht 3: bericht 4 wordt niet begrepen door Eve o

Alice wil later met server “Charles” communiceren • Authentisering bij AS moet niet herhaald worden • Voldoende: bericht 3 versturen, waarbij Bob vervangen wordt door “Charles”

o

Na stap 2 heeft Eve toegang tot alle servers in netwerk • Wachtwoord Alice nooit buiten eigen client • Elke server zorgt voor eigen intepretatie gebruiker en bepaalt dus wat Alice uiteindelijk op server mag doen (met behulp van ACLs)

• Alternatief o Authentisering met publieke-sleutelcryptografie


Authentisering met publieke-sleutelcryptografie id. Alice niet gegarandeerd id. Bob wel gegarandeerd

1 EB(A, RA)

EA(RA, RB, KS)

Bob

Alice

2

3 KS(RB)

id. Alice wel gegarandeerd


Elektronische handtekening

86

Internettechnologie Rik Van de Walle Gent, februari 2009


Elektronische handtekening • Elektronische versus digitale handtekening o Eng. Digital signature • Noodzaak elektronische handtekening o Verifiëren identiteit afzender o Vermijden dat afzender bericht later loochent o Vermijden dat “ontvanger” berichten zelf maakt • Handtekening met geheime sleutel o Centrale authoriteit (CA) • Wordt door alle gebruikers vertrouwd • Elke gebruiker heeft geheime sleutel gemeen met de CA, alle berichten passeren de CA • Kan bewijsstukken leveren bij betwisting o

Probleem handtekening met geheime sleutels • Alle gebruikers moeten vertrouwen hebben in CA & de CA kan alle berichten lezen


Elektronische handtekening • Handtekening met publieke sleutel biedt oplossing o Gebruik van publieke-sleutelcryptografie (bv. met RSA), waarbij • • • • o

D(E(P)) = P D = geheime sleutel E(D(P)) = P E = publieke sleutel Alice heeft het sleutelpaar (DA,EA) Bob heeft het sleutelpaar (DB,EB)

Een “Certificate Authority” (CA) levert deze sleutelparen af (+ “echtheidsbewijzen” of certificaten) maar is voor de rest niet betrokken in de communicatie zelf • Voorbeelden: Verisign, Thawte, GlobalSign (Belgisch), … • Certificaten hebben steeds een bepaalde geldigheidsduur


Elektronische handtekening • Handtekening met publieke sleutel o Oplossing (vervolg) • Alice verstuurt C = EB(DA(P)) naar Bob • Bob berekent

– DB(C) = DA(P) – EA(DA(P)) = P • Beveiliging tegen loochening:

o

– Bob bezit P en DA(P) – DA(P) moet afkomstig zijn van Alice, want DA is geheim + bijhorend certificaat dat werd afgeleverd door CA garandeert “echtheid” Alice Om deze methode te beschrijven wordt ook vaak de term Public Key Infrastructure (PKI) gebruikt


Elektronische handtekening • Hash-functies (bv. MD5) o Ook “Message Digest” of “Checksum” genoemd o Kritiek op bovenstaande methoden voor elektronische handtekening • Combinatie authentisering en geheimhouding • Geheimhouding is vaak niet nodig o

Oplossing: gebruik maken van een hash-functie H, waarbij • berekening H(P) is gemakkelijk voor een gegeven P • P kan niet afgeleid worden uit kennis H(P) • Er kunnen geen twee berichten P en P’ gevonden worden waarvoor geldt dat H(P) = H(P’) • Gebruik van hash-functies om algoritmen voor elektronische handtekeningen te versnellen


Elektronische handtekening in publieke sleutel cryptografie en met hash functie

P, DA(H(P))

Bob

Alice

• Bericht zelf wordt niet vercijferd • Hash wordt berekend en vercijferd (dus beveiligd) • Wordt vaak gebruikt in de praktijk

Architecturale aspecten van beveiliging  

Internettechnologie (ITech) Rik Van de Walle Gent, februari 2009 1 Internettechnologie Rik Van de Walle Gent, februari 2009 2 Internettechno...