Download de presentatie
De presentatie wordt gedownload. Even geduld aub
GepubliceerdTobias Peeters Laatst gewijzigd meer dan 10 jaar geleden
1
Architecturale aspecten van beveiliging
Internettechnologie (ITech) Rik Van de Walle academiejaar
2
Basisprincipes
3
Basisprincipes Noodzaak van beveiliging Eerste computernetwerken
Onderzoeksomgevingen versturen (klare tekst) Delen van randapparaten (printers) Moderne netwerkgebaseerde systemen Miljoenen gebruikers met elkaar “verbonden” op een publiek netwerk (het Internet !) E-handel Bankzaken Toegang tot kritische data via databanken
4
Basisprincipes Belangrijkste aspecten
Onbevoegden toegang ontzeggen tot sommige gegevens “Toegang ontzeggen” heeft verschillende betekenissen en kan met behulp van Encryptie (vercijfering) Authentisering Firewalls Vereist beveiliging in diverse lagen van het OSI-model Wij gaan kijken naar beveiliging in de applicatielaag
5
Basisprincipes Belangrijkste aspecten van beveiliging
Verificatie werkelijke afzender van een bericht Vermijden “afspeelaanval” Legitiem bericht wordt onderschept Dit bericht wordt opnieuw afgespeeld Voorbeeld: herhalen betalingsorder (t.a.v. bank) van een klant Niet-loochening Identiteit kunnen aantonen Voorbeeld: is van belang bij bestelling dure goederen
6
Vier deelaspecten van beveiliging
Geheimhouding Informatie uit handen van onbevoegden houden Authentisering Bepalen van wie informatie/vraag afkomstig is vooraleer zelf vertrouwelijke informatie te versturen Niet-loochening Toevoegen van handtekening Laat afzender + ontvanger toe te bewijzen wie data verstuurd heeft Integriteitscontrole Geeft ontvanger zekerheid dat bericht onderweg niet (kwaadwillig) gewijzigd werd
7
Basisprincipes Analogie: fysische wereld Geheimhouding Authentisering
Versturen van post onder gesloten omslag Authentisering Herkenning iemands gezicht, stem, handschrift, vingerafdrukken, … Gebruik van cijfercodes, paswoorden, … Geavanceerde authentiseringsmethoden zoals biosensoren Niet-loochening Ondertekening documenten “met pen en papier” Integriteitscontrole Opbergen documenten “achter slot en grendel”
8
Cryptografie (Geheimhouding)
9
Traditionele cryptografie
Doel cryptografie Berichten onleesbaar (onbegrijpbaar) maken voor onbevoegden Middel: vercijfering (of encryptie of versleuteling) 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)
10
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)
11
Eenvoudig vercijferings/ontcijferingsmodel
Sleutel K vercijferingsmethode EK klare tekst P passieve indringer C = EK(P) actieve indringer ontcijferingsmethode DK klare tekst DK(EK(P)) = P Sleutel K
12
Cryptografie Terminologie Cryptografie Cryptoanalyse
Houdt zich bezig met de vercijfering van berichten 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
13
Cryptografie Terminologie Cryptoanalyse (vervolg)
Veiligheid kan verhoogd worden door K regelmatig te wijzigen Lengte van sleutels bepaalt in belangrijke mate veiligheidsniveau Analogie: cijferslot met 3 cijfers (103 mogelijkheden) versus cijferslot met 6 cijfers (106 mogelijkheden) Cryptologie Geheel van cryptografie en cryptoanalyse Term die niet zoveel gebruikt wordt in het Nederlands
14
Cryptografie Substitutie Transpositie
Mapt x-bit op y-bit Gebeurt met zogenaamde S-boxen Zorgt voor niet-lineariteit Zorgt voor confusion Transpositie Verwisselt symbolen van plaats (permutatie) Gebeurt met zogenaamde P-boxen Zorgt voor diffusion In de cryptografie wordt er gebruik gemaakt van twee basismethoden om klare tekst te vercijferen (6 bit) (4 bit) S-box (7 bit) P-box
15
Cryptografie Substitutiesystemen
Elke letter(groep) vervangen door andere letter(groep) Volgorde symbolen wordt niet gewijzigd Voorbeeld: Caesar-methode Cyclische verschuiving van de 26 letters van het alfabet met bv. een stap 3: a b c d e f g h i j k l m n o p q r s t u v w x y z d e f g h i j k l m n o p q r s t u v w x y z a b c 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)
16
Cryptografie Substitutiesystemen
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
17
Cryptografie Transpositiesystemen
De symbolen zelf worden niet gewijzigd De volgorde waarin de symbolen worden geplaatst verandert Voorbeeld: kolomtranspositie
18
Voorbeeld: kolomtranspositie
sleutel K: woord waarin elke letter 1 keer voorkomt C O M P U T E R 1 4 3 5 8 7 2 6 d i t s e n v o r b l a c j f g nummering volgens het rangnummer corresponderende letter K bericht P wordt uitgeschreven op verschillende rijen klare tekst: ditiseenvoorbeeldvanvercijfering vercijferde tekst: uitschrijven bericht volgens rangnummers kolommen vercijferde tekst: dvdieerntoafiovjirnenlcgeeeisbvr
19
Cryptografie Traditionele cryptografie Moderne cryptografie
E en D eenvoudig Lange sleutels K Moderne cryptografie E en D zeer ingewikkeld Substitutie- en transpositiecodering wordt nog steeds gebruikt
20
Cryptografie met geheime sleutels
21
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 = = en = = 1 Merk op dat de voorgestelde vercijfer- en ontcijferstap identiek zijn 0010 1000 1010 veilig kanaal ontcijfering vercijfering
22
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 De lengte van de sleutel dient even lang te zijn als de te vercijferen gegevens De sleutel mag enkel bestaan uit werkelijk willekeurige tekens Een sleutel mag slechts één maal gebruikt worden om één bericht te vercijferen en dient na gebruik vernietigd te worden 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
23
creatie iteratiesleutels
Moderne block ciphers klare tekst sleutel K creatie iteratiesleutels iteratiesleutel 1 preprocessing iteratiestappen 1, 2, … iteratiesleutel 2 iteratiesleutel 3 … postprocessing vercijferde tekst
24
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 Hetzelfde hardware circuit Dezelfde software implementatie Algoritmen die gebruik maken van Feistel ciphers DES (en 3DES) IDEA
25
Feistel ciphers (II) Bevat een aantal iteraties n
Mi-1 Li-1 Ri-1 In elke iteratie i wordt een input blok M opgedeeld in twee halfblokken Li-1 en Ri-1 Li Linkeroutput Li = Ri-1 Ri f Ki Rechteroutput Ri is afhankelijk van Linker- en rechterinput Een functie f Iteratiesleutel Ki Li-1 XOR f(Ri-1,Ki): bitsgewijze exclusieve OR Mi Mi bestaat uit de samenstelling van Li en Ri
26
Feistel ciphers (III) Voorbeeld 2 iteraties P vercijfering C
ontcijfering L0 R0 R2 L2 L1 R1 f K1 R1 L1 f K2 L2 R2 f K2 R0 L0 f K1 C P
27
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: Grootte van de input blokken M Grootte van de sleutel K Aantal iteraties n Algoritme om sleutels per iteratie te genereren Functie f
28
DES – Data Encryption Standard (I)
Door IBM ontwikkeld in 1977 Overgenomen door Amerikaanse overheid Ook nu nog zeer veel gebruikt bv. Bancontact (drievoudige DES, zie later) bv. IPVPN-oplossingen op het Internet 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
29
DES – Data Encryption Standard (II)
Li-1 Ri-1 klare tekst van 64 bit eerste transpositie sleutel van 56 bit iteratie 1 iteratie 2 iteratie 16 Li-1 XOR f(Ri-1,Ki) verwisseling van 32 bit Li Ri omgekeerde transpositie
30
DES – Data Encryption Standard (III)
Werking van enkelvoudige DES Transposities (stap 1 en 19) hangen niet af van K Deze stap werd ingevoerd om software implementaties van DES te vertragen 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
31
DES – Data Encryption Standard (IV)
Werking van enkelvoudige DES 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
32
DES – Data Encryption Standard (V)
Werking van enkelvoudige DES De functie f die bestaat uit 4 stappen Ki Ri-1 Ri (32 bit) Li-1 Ri-1 Li Ri f Ki uitbreiding (32 bit) (48 bit) (48 bit) (32 bit) S-box permutatie
33
DES – Data Encryption Standard (V)
De 4 stappen van de functie f samengevat Opbouw van een getal E van 48 bit door uitbreiding van Ri-1 via vaste regel voor transpositie en duplicering Combinatie van E en Ki via XOR operatie Resultaat van (E XOR Ki) wordt opgesplitst in 8 groepen van 6 bit Die elk worden doorgegeven aan een verschillende S-box (substitutiecoder) De S-box beeldt elk van de 64 mogelijke inputs af op een 4 bit output De resulterende 32 bit worden doorgegeven aan een P-box (transpositiecoder)
34
DES – Data Encryption Standard (VI)
Juli 1998: EFF DES Cracker (Deep Crack) EFF = Electronic Frontier Foundation kostprijs hardware < 250 kUSD tijd nodig om DES te kraken: < 3 dagen 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 PCs verbonden via Internet tijd nodig om DES te kraken: < 1 dag (22 uren)
35
DES – Data Encryption Standard (VII)
Beperkte veiligheid 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 Cijferblokketening Vóór vercijfering: Elk blok van 64 bit combineren met het vorige via exclusieve OR Eerste blok: combinatie met een initialisatievector
36
DES – Data Encryption Standard (VIII)
Beperkte veiligheid 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 !)
37
Cijferblokketening (cipher block chaining)
Nadeel: vercijfering kan slechts beginnen als gans blok van 64 bit gearriveerd is (client hosts: beperkte invoer !) P0 P1 P2 C0 C1 C2 # # # # D D # D IV E E E # IV C1 C2 P1 P2 zorgt voor ontcijfering (oef.) C0 P0 C0 = E(P0 XOR IV) C1 = E(P1 XOR C0) C2 = E(P2 XOR C1) P0 = D(C0) XOR IV P1 = D(C1) XOR C0 P2 = D(C2) XOR C1
38
Cijferterugkoppeling (cipher feedback chaining)
Eigenschap: byte per byte vercijfering Nadeel: Transmissiefout van 1 bit verminkt 1 blok van 64 bit klare tekst C3 C4 C5 C6 C7 C8 C9 C2 schuifregister 64 bit E P10 C10 sleutel selectie linkerbyte # Stel: bytes 0 tot 9 zijn reeds vercijferd C3 C4 C5 C6 C7 C8 C9 C2 schuifregister 64 bit E C10 P10 sleutel selectie linkerbyte #
39
DES – Data Encryption Standard (IX)
Beperkte veiligheid 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) DES twee keer na elkaar ? "aanval halverwege" (meet-in-the-middle attack) is mogelijk Niet veilig genoeg !
40
Double DES (I) Meet-in-the-middle attack
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 Zoek 256 sleutels K1 en K2 K1 P C E K2
41
Double DES (II) Meet-in-the-middle attack
Vercijfer P met alle 256 mogelijkheden voor K1 -> EK1 (P) Levert volgende waarden op: X1, X2, X3, …, X 256 Sorteer de waarden X1, X2, X3, …, X 256 Ontcijfer C met alle 256 mogelijkheden voor K2 -> DK2(C) 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 : 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
42
Double DES (III) Meet-in-the-middle attack
Het aantal kandidaat sleutelparen is 248 Totaal aantal sleutelparen is 256 x 256 Elk van de sleutels heeft een probabiliteit van 2-64 Deze aanval vereist 257 vercijfer/ontcijferoperaties t.o.v bij een brute-force attack Merk wel op dat er grootte-orde 260 (of 1018) bytes geheugenruimte nodig is !!
43
Triple DES – 3DES Beperkte veiligheid
DES drie keer na elkaar uitvoeren, bv. EDE of EEE ? K1 K2 D K3 = K1 E Vercijfering E P C D K2 E K3 = K1 D C P Ontcijfering K1 Waarom 2 sleutels in plaats van 3 ? 112 bit voldoende voor commerciële toepassingen Waarom EDE in plaats van EEE ? Achterwaartse compatibiliteit met enkelvoudige DES mogelijk (oef.) Indien zeer sterke beveiliging gewenst: EEE (168 bit)
44
IDEA – International Data Encryption Algorithm
Algemeen principe Blokvercijfering, blokken van 64 bit Sleutel van 128 bit Basisstructuur lijkt sterk op DES klare tekst van 64 bit Eigenschappen Iedere outputbit hangt af van elke inputbit 8 iteraties voldoende Alle DES-modes kunnen gebruikt worden sleutel van 128 bit iteratie 1 iteratie 2 iteratie 8 Gepatenteerd, gratis te gebruiken voor niet-commerciële toepassingen transformatie 64 bit vercijferde tekst
45
AES – Advanced Encryption Standard (I)
Staat ook bekend als Rijndael algoritme 1997: NIST schrijft een RFP voor de opvolger van DES (niet veilig genoeg) 3DES (te traag) IDEA (niet vrij beschikbaar) Request for Proposal (RFP) Verschillende sleutelgroottes mogelijk (tot 256 bit) Efficiënte HW implementatie mogelijk 20 algoritmen werden geëvalueerd Rijndael werd gekozen in 2001, ontworpen door Belgische onderzoekers (Daemen en Rijmen) AES is een subset van Rijndael algoritme
46
AES – Advanced Encryption Standard (II)
AES is een subset van Rijndael algoritme Blokgrootte = 128 bit (voorgesteld als 4 x 4 blokken van 8 bit) Sleutelgrootte = 128 / 192 / 256 bit Aantal iteraties = 10 (AES-128) / 12 (AES-192) / (AES-256) Twee parallelle processen Vercijferingsproces (4 bouwblokken) SubBytes ShiftRows MixColumns AddRoundkey Sleutelgeneratieproces
47
AES – Advanced Encryption Standard (III)
SubBytes Niet-lineaire substitutiecodering (S-box) Bytes worden vervangen via vaste look-up tabel 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 a2,0 a2,1 a2,2 a2,3 a3,0 a3,1 a3,2 a3,3 b0,0 b0,1 b0,2 b0,3 b1,0 b1,1 b1,2 b1,3 b2,0 b2,1 b2,2 b2,3 b3,0 b3,1 b3,2 b3,3 SubBytes a2,2 b2,2 S
48
AES – Advanced Encryption Standard (IV)
ShiftRows Transpositiecodering wordt toegepast Op elke rij van de matrix Elementen worden cyclisch verschoven 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 a2,0 a2,1 a2,2 a2,3 a3,0 a3,1 a3,2 a3,3 a0,0 a0,1 a0,2 a0,3 a1,1 a1,2 a1,3 a1,0 a2,2 a2,3 a2,0 a2,1 a3,3 a3,0 a3,1 a3,2 ShiftRows
49
AES – Advanced Encryption Standard (V)
MixColumns Transformatie op de kolommen van de matrix Elke 4 bytes in elke kolom worden getransformeerd via een lineaire transformatie met een vaste veelterm a0,1 a1,1 a2,1 a3,1 b0,1 b1,1 b2,1 b3,1 a0,0 a0,1 a0,2 a0,3 a1,0 a1,1 a1,2 a1,3 a2,0 a2,1 a2,2 a2,3 a3,0 a3,1 a3,2 a3,3 b0,0 b0,1 b0,2 b0,3 b1,0 b1,1 b1,2 b1,3 b2,0 b2,1 b2,2 b2,3 b3,0 b3,1 b3,2 b3,3 MixColumns Transformation
50
AES – Advanced Encryption Standard (VI)
AddRoundkey 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 a2,0 a2,1 a2,2 a2,3 a3,0 a3,1 a3,2 a3,3 b0,0 b0,1 b0,2 b0,3 b1,0 b1,1 b1,2 b1,3 b2,0 b2,1 b2,2 b2,3 b3,0 b3,1 b3,2 b3,3 AddRoundKey a2,2 b2,2 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 k2,2
51
AES – Voorstelling AddRoundKey initiële stap
initiële iteratievercijfersleutel Klare tekst SubBytes ShiftRows MixColumns AddRoundKey iteratievercijfersleutel 1 tot 9 9 iteraties SubBytes ShiftRows AddRoundKey 10de iteratie iteratievercijfersleutel 10 Vercijferde tekst AES – Voorstelling
52
AES – Advanced Encryption Standard (VII)
Vercijfersleutels Hoofdvercijfersleutel Iteratievercijfersleutels worden eruit afgeleid Sleuteluitbreiding (key expansion) Sleutelselectie (key selection) 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
53
Cryptografie met publieke sleutels
54
Cryptografie met publieke sleutels
Algemeen Zwakke schakel cryptografie met geheime sleutels is het sleutelbeheer Hypothesen uit het voorgaande (cryptografie met geheime sleutels): Vercijfersleutel = ontcijfersleutel (of afleidbaar uit elkaar) Sleutels moeten aan alle gebruikers van het systeem worden uitgedeeld
55
Cryptografie met publieke sleutels
Algemeen Nieuwe hypothese: gebruik maken van publieke sleutels 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
56
Cryptografie met publieke sleutels
hoofdrolspeler 1: afzender Alice publieke sleutel Bob hoofdrolspeler 2: ontvanger Bob Alice C=EB(P) Bob DB(C) = P geheime sleutel Bob
57
Cryptografie met publieke sleutels
Merk op dat dat in een communicatie tussen twee gebruikers (of een client en een host) iedere gebruiker van het computersysteem 2 sleutels heeft Openbare sleutel van de bestemmeling bericht Geheime sleutel die de afzender nodig heeft om berichten, naar hem gestuurd, te ontcijferen Men spreekt van asymmetrische cryptografie In het voorgaande gedeelte van cryptografie met geheime sleutels hadden we telkens te maken met sleutel identiek voor vercijfering en ontcijfering Men spreekt in dat geval van symmetrische cryptografie
58
RSA (I) RSA (Rivest, Shamir, Adleman) Mechanisme n = pq z = (p-1)(q-1)
Kies twee grote priemgetallen p en q (> 10100) Bereken n = pq z = (p-1)(q-1) kies getal d zodat d geen factoren gemeen heeft met z zoek getal e, zodat ed = 1 (mod z) Hou d geheim Geef e aan anderen
59
RSA (II) RSA (Rivest, Shamir, Adleman) Mechanisme (vervolg) 0 P n
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)
60
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 Y 25 15625 16 T 20 8000 14 E 5 125 26 M 13 2197
61
RSA (III) Alice heeft geheime sleutel (dA,nA) en publieke sleutel (eA,nA) Bob heeft geheime sleutel (dB,nB) en publieke sleutel (eB,nB) hoofdrolspeler 1: afzender Alice Vercijfering met publieke sleutel Bob hoofdrolspeler 2: ontvanger Bob Alice Bob C= PeB (mod nB) P= CdB (mod nB) geheime sleutel Bob C= P’eA (mod nA) P’= CdA (mod nA) geheime sleutel Alice Vercijfering met publieke sleutel Alice
62
RSA (IV) RSA is zeer rekenintensief
Grote priemgetallen Niet geschikt voor het vercijferen van grote hoeveelheden data RSA wordt in systemen vaak gebruikt voor Vercijfering van het proces voor het uitdelen van eenmalige geheime sessiesleutels die voor 3DES, IDEA of AES worden gebruikt PKCS – Public Key Cryptographic Standards Definieert hoe RSA schema te gebruiken (syntax van berichten) Wordt gebruikt in bv. SSL of SSH
63
Authentisering
64
Algemeen "Spelers": Principe (doel authentisering) Alice Bob
Neemt initiatief; wil veilige verbinding met Bob Eve: aanvaller Kan berichten onderscheppen, wijzigen en/of opnieuw afspelen Principe (doel authentisering) Na authentisering: Alice is zeker dat ze met Bob communiceert + omgekeerd
65
Algemeen Principe Meestal bestaan de algoritmen uit 2 stappen
Publieke-sleutelcryptografie (bv. RSA) voor Authentisering Opstellen en uitwisselen sessiesleutel Geheime-sleutelcryptografie voor het dataverkeer na authentisering (bv. 3DES) 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)
66
Authentisering op basis van een gemeenschappelijke geheime sleutel
Uitdagings-reactieprotocol (challenge-response) Ene partij stuurt random getal naar andere partij Tweede partij transformeert getal en stuurt resultaat terug Eerste partij kan hierdoor identiteit van de tweede partij verifiëren Terminologie A, B Identiteit van Alice en Bob Ki sleutel van eigenaar i -> indien een gemeenschappelijke sleutel : KAB Ri uitdaging van uitdager i KS sessiesleutel
67
Authentisering op basis van een gemeenschappelijke geheime sleutel
A, RA 1 Alice Bob 2 RB, KAB(RA) 3 KAB(RB)
68
Authentisering op basis van een gemeenschappelijke geheime sleutel - Spiegelaanval
Eve A, RE 1 Bob eerste sessie RB, KAB(RE) 2 Eve geeft zich voor Alice uit A, RB 3 tweede sessie RB2, KAB(RB) 4 Doel Eve: kunnen antwoorden op uitdaging Bob KAB(RB) 5 eerste sessie – aanval gelukt
69
Authentisering op basis van een gemeenschappelijke geheime sleutel
Besluit Veilige authentisering: verre van evident ! Enkele basisregels Initiatiefnemer dient altijd als eerste zijn/haar identiteit te bewijzen Gebruik verschillende sleutels of zorg dat de gemeenschappelijke sleutel dynamisch kan worden gecreëerd Gebruik verschillende verzamelingen van mogelijke uitdagingen Voorbeeld: even vs. oneven random getallen
70
Een gemeenschappelijke sleutel maken: Sleuteluitwisseling volgens Diffie-Hellman (I)
We zijn ervan uitgegaan dat Alice en Bob reeds een gemeenschappelijke geheime sleutel hebben Wat indien dit niet het geval? Diffie-Hellman Afspreken van gemeenschappelijke sleutel tussen 2 gebruikers Over een onbeveiligd medium Principe Diffie-Hellman Alice en Bob kiezen elk twee grote priemgetallen n en g die openbaar mogen zijn Alice kiest een groot getal x en houdt het geheim (getal typisch groter dan 512 bit) Bob kiest een groot getal y en houdt het geheim (getal typisch groter dan 512 bit)
71
Een gemeenschappelijke sleutel maken: Sleuteluitwisseling volgens Diffie-Hellman (II)
Principe Diffie-Hellman Alice stuurt (n, g, gx mod n) Bob stuurt gy mod n naar Alice Bob verheft (gx mod n)y = gxy mod n Alice verheft (gy mod n)x = gxy mod n Beide partijen hebben nu een gemeenschappelijke geheime sleutel !
72
Een gemeenschappelijke sleutel maken: Sleuteluitwisseling volgens Diffie-Hellman (III)
Alice kiest x Bob kiest y 4 Alice (n, g, gx mod n) Bob 5 gy mod n Alice berekent (gy mod n)x = gxy mod n Bob berekent (gx mod n)y = gxy mod n
73
Een gemeenschappelijke sleutel maken: Sleuteluitwisseling volgens Diffie-Hellman (IV)
Veilig ? Stel dat Eve de berichten 4 en 5 onderschept Als ze x of y zou kunnen berekenen (g en n zijn immers ook gekend) dan kan ze de geheime sleutel berekenen Er bestaat echter geen uitvoerbaar algoritme om discrete logaritmen modulo een zeer groot priemgetal te berekenen Er bestaat echter wel een ander gevaar Man-in-the-middle attack
74
Een gemeenschappelijke sleutel maken: Sleuteluitwisseling volgens Diffie-Hellman (V)
Man-in-the-middle attack Als Bob in stap 4 (n, g, gx mod n) ontvangt hoe weet hij dan zeker dat het bericht van Alice komt ? Hij kan dit niet weten, dus Eve kan Alice en Bob misleiden Gelukkig bestaan er oplossingen om dit te vermijden Werken met elektronische handtekening (zie verder) Mogelijk indien Bob en Alice gebruiken maken van een “publieke sleutel infrastructuur” (PKI) Het is dan ook in deze vorm dat Diffie-Hellman vaak gebruikt wordt op het Internet Bovendien laat men sleutels gegenereerd met Diffie-Hellman regelmatig vernieuwen in de tijd
75
Een gemeenschappelijke sleutel maken: Sleuteluitwisseling volgens Diffie-Hellman (VI) Man-in-the-middle attack Alice kiest x Eve kiest z Bob kiest y 1 Alice Eve Bob (n, g, gx mod n) 2 (n, g, gz mod n) 3 gz mod n 4 gy mod n
76
Authentisering met een sleuteldistributiecentrum (I)
Principe 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
77
Authentisering met een sleuteldistributiecentrum (II)
SDC: ontcijfert identiteit Bob ontcijfert sessiesleutel vercijfert met KB sessiesleutel identiteit Alice sleuteldistributiecentrum (SDC) Alice A, KA(B, KS) 1 Bob Alice: bewijst eigen identiteit stelt sessiesleutel voor KB(A, KS) 2
78
Authentisering met een sleuteldistributiecentrum (III)
Zoals voorgesteld in vorige slide is het protocol niet veilig voor een afspeelaanval Herhaaldelijk opnieuw afspelen van bericht 2 + dataverkeer dat erop volgt Oplossingen: Toevoegen van een tijdstempel, maar Niet alle klokken binnen netwerk lopen synchroon Eindig geldigheidsinterval nodig Afspeelaanval binnen dit interval blijft mogelijk
79
Authentisering met een sleuteldistributiecentrum (IV)
Afspeelaanval 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
80
Authentiseringsprotocol van Otway en Rees
Alice A, B, R, KA(A, B, R, RA) 1 Bob identificatie Alice R gemeenschappelijke ID RA uitdaging Alice sleuteldistributiecentrum A, KA(A, B, R, RA), B, KB(A, B, R, RB) 2 controle gelijkheid R generatie sessiesleutel KS vercijfering KS uitdagingen identificatie Bob RB uitdaging Bob KA(RA, KS) 4 KB(RB, KS) 3
81
Kerberos (I) Architectuur Client host: Alice
Wenst gebruik te maken van een server (Bob) Authentiseringsserver (AS) Controleert gebruikers tijdens inloggen Functioneel te vergelijken met SDC 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 Server host: Bob Biedt diensten aan (bv. fileserver)
82
Kerberos (II) Architectuur
Gebruik van tijdstempels om afspeelaanvallen te voorkomen Wachtwoord van Alice slechts paar ms in client aanwezig
83
Kerberos (III) Alice tikt paswoord in -> creëert KA (een hash)
Bericht wordt ontcijferd en paswoord en KA wordt vernietigd Alice logt in aan werkstation Haar naam wordt in klare tekst doorgestuurd naar AS Kerberos (III) Alice A 1 AS inloggen KTAS(A, KS) ticket KS sessiesleutel KA(KS, KTAS(A, KS)) 2 KTAS(A, KS), B, KS(t) 3 TAS aflevering ticket KTAS(A, KS) bewijst id. Alice KAB sessiesleutel voor A en B KS(.) begrijpbaar voor A KB(.) begrijpbaar voor B KS(B, KAB), KB(A, KAB) 4 KB(A, KAB), KAB(t) 5 Bob opdracht uitvoeren bericht Alice bewijst haar id. antwoord Bob bewijst zijn id. KAB(t+1) 6
84
Kerberos (IV) Opmerkingen Alternatief Afspeelaanval niet mogelijk
Bericht 3 bevat tijdstempel Zelfs bij snel afspelen bericht 3: bericht 4 wordt niet begrepen door Eve Alice wil later met server “Charles” communiceren Authentisering bij AS moet niet herhaald worden Voldoende: bericht 3 versturen, waarbij Bob vervangen wordt door “Charles” 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 Authentisering met publieke-sleutelcryptografie
85
Authentisering met publieke-sleutelcryptografie
id. Alice niet gegarandeerd id. Bob wel gegarandeerd EB(A, RA) 1 Alice Bob EA(RA, RB, KS) 2 KS(RB) 3 id. Alice wel gegarandeerd
86
Elektronische handtekening
87
Elektronische handtekening
Elektronische versus digitale handtekening Eng. Digital signature Noodzaak elektronische handtekening Verifiëren identiteit afzender Vermijden dat afzender bericht later loochent Vermijden dat “ontvanger” berichten zelf maakt Handtekening met geheime sleutel 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 Probleem handtekening met geheime sleutels Alle gebruikers moeten vertrouwen hebben in CA & de CA kan alle berichten lezen
88
Elektronische handtekening
Handtekening met publieke sleutel biedt oplossing Gebruik van publieke-sleutelcryptografie (bv. met RSA), waarbij 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
89
Elektronische handtekening
Handtekening met publieke sleutel Oplossing (vervolg) Alice verstuurt C = EB(DA(P)) naar Bob Bob berekent DB(C) = DA(P) EA(DA(P)) = P Beveiliging tegen loochening: 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
90
Elektronische handtekening
Hash-functies (bv. MD5) Ook “Message Digest” of “Checksum” genoemd Kritiek op bovenstaande methoden voor elektronische handtekening Combinatie authentisering en geheimhouding Geheimhouding is vaak niet nodig 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
91
Elektronische handtekening in publieke sleutel cryptografie en met hash functie
Bericht zelf wordt niet vercijferd Hash wordt berekend en vercijferd (dus beveiligd) Wordt vaak gebruikt in de praktijk Alice Bob P, DA(H(P))
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.