Architecturale aspecten van beveiliging

Slides:



Advertisements
Verwante presentaties
KWALITEITSZORG november 2012
Advertisements

H3 Tweedegraads Verbanden
De zin en onzin van escrow
Sudoku puzzels: hoe los je ze op en hoe maak je ze?
De elektronische verzamelaanvraag Ruben Fontaine Markt- en Inkomensbeheer – dienst Aangiftes.
‘SMS’ Studeren met Succes deel 1
Wat was toen het grootste het grootste probleem van de van de FOD?
Paulus' eerste brief aan Korinthe (20) 23 januari 2013 Bodegraven.
NEDERLANDS WOORD BEELD IN & IN Klik met de muis
H1 Basis Rekenvaardigheden
1 Resultaten marktonderzoek RPM Zeist, 16 januari 2002 Door: Olga van Veenendaal, medew. Rothkrans Projectmanagement.
November 2013 Opinieonderzoek Vlaanderen – oktober 2013 Opiniepeiling Vlaanderen uitgevoerd op het iVOXpanel.
Global e-Society Complex België - Regio Vlaanderen e-Regio Provincie Limburg Stad Hasselt Percelen.
Informatieverwerkende systemen
Secure Distributed Computing Gregory Neven (3CW Pr.) Promotor: Prof. Dr. ir. Frank Piessens.
STAPPENPLAN GRAMMATICUS.
INITIATIE DEFINITIESELECTIECONCIPIËREN INBEDDING IN ORGANISATIE ONDERHOUD Opdrachtgever/ Projectleider Eigenaar Architect en zijn team Stakeholders INITIATIEDEFINITIESELECTIECONCIPIËRENINBEDDINGONDERHOUD.
Start.
Kb.1 Ik leer op een goede manier optellen en aftrekken
Tevredenheids- enquête 2012 P. Grouwels Inleiding Mogelijke antwoorden: Zeer goed: 4 sterren ****: volledig tevreden; Goed: 3 sterren ***:
F. Rubben NI Lookout 1 06/RIS/05 - NI Lookout VTI Brugge F. Rubben, ing.
© BeSite B.V www.besite.nl Feit: In 2007 is 58% van de organisaties goed vindbaar op internet, terwijl in 2006 slechts 32% goed vindbaar.
9 januari 2013 Bodegraven 1. 1Korinthe 11 1 Wordt mijn navolgers, gelijk ook ik Christus navolg. 2.
Nooit meer onnodig groen? Luuk Misdom, IT&T
Hoofdstuk 6: Controle structuren
FOD VOLKSGEZONDHEID, VEILIGHEID VAN DE VOEDSELKETEN EN LEEFMILIEU 1 Kwaliteit en Patiëntveiligheid in de Belgische ziekenhuizen anno 2008 Rapportage over.
Elke 7 seconden een nieuw getal
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen College 5.
Advanced Encryption Standard
Cryptografie workshop Wiskunde D-dag 6 juni 2008
Machtsverheffen als geheimschrift
Softwarepakket voor het catalogeren en determineren van fruitsoorten
Voorbeeld a5a · 4b = 20ab b-5a · 4a = -20a 2 c-2a · -6a = 12a 2 d5a · -b · 6c = -30abc e-5b · 3a · -2 = 30ab f-2 · -a = 2a opgave 1 a7a + 8a = 15a b6a.
Regelmaat in getallen … … …
De grafiek van een lineair verband is ALTIJD een rechte lijn.
Regelmaat in getallen (1).
1 het type x² = getal 2 ontbinden in factoren 3 de abc-formule
Parallelle Algoritmen String matching. 1 Beter algoritme patroonanalyse Bottleneck in eenvoudig algoritme: WITNESS(j) (j = kandidaat in eerste i-blok)
Oefeningen Cursus informatiebeveiliging Eric Laermans – Tom Dhaene.
Oefeningen F-toetsen ANOVA.
Leiderverkiezing Olympus College 14 april 2008 David N. Jansen.
Wat levert de tweede pensioenpijler op voor het personeelslid? 1 Enkele simulaties op basis van de weddeschaal B1-B3.
In dit vakje zie je hoeveel je moet betalen. Uit de volgende drie vakjes kan je dan kiezen. Er is er telkens maar eentje juist. Ken je het juiste antwoord,
13 maart 2014 Bodegraven 1. 1Korinthe Want gelijk het lichaam één is en vele leden heeft, en al de leden van het lichaam, hoe vele ook, een lichaam.
Elektriciteit 1 Basisteksten
Les 9 Gelijkstroomschakelingen
Workshop: Geheimschrift op de TI-83+
Ben Bruidegom 1 Sequentiële schakelingen Toestand uitgang bepaald door:  ingangen;  vorige toestand uitgang.
ribwis1 Toegepaste wiskunde – Exponentiele functies Lesweek 5
ribwis1 Toegepaste wiskunde – Differentieren Lesweek 7
Oefeningen Cursus informatiebeveiliging Eric Laermans – Tom Dhaene.
Cursus informatiebeveiliging Eric Laermans – Tom Dhaene
Cryptografische algoritmen en protocols (4) Cursus informatiebeveiliging Eric Laermans – Tom Dhaene.
Liaison dangereuse? Secretarissen en ontvangers over hun onderlinge verhouding en de werking van het managementteam Prof. Dr. Herwig Reynaert Dr. Kristof.
Statistiekbegrippen en hoe je ze berekent!!
Hoe gaat dit spel te werk?! Klik op het antwoord dat juist is. Klik op de pijl om door te gaan!
Eerst even wat uitleg. Klik op het juiste antwoord als je het weet.
Security 2 Cryptografie en ICT
5 Public-key cryptografie (Asymetrische cryptosystemen)
Hoofdstuk 9 havo KWADRATEN EN LETTERS
STIMULANS KWALITEITSZORG juni 2014.
Centrummaten en Boxplot
12 sept 2013 Bodegraven 1. 2  vooraf lezen: 1Kor.7:12 t/m 24  indeling 1Korinthe 7  1 t/m 9: over het huwelijk  10 t/m 16: over echtscheiding  16.
Openbaar je talent Service public, talent particulier.
23 mei 2013 Bodegraven vanaf hoofdstuk 6: hoofdst.1: de wijsheid van de wereld hoofdst.2: de wijsheid van God hoofdst.3: Gods akker en Gods bouwwerk.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag top-down decompositie Opdrachten:
NedSecure Consulting Secure Leon Kuunders Principal Security Consultant Woensdag.
End-to-end vercijfering
De architectuur van een internettoepassing bestaat meestal uit een keten van een webclient, een server en bedrijfsinformatiesystemen die gekoppeld zijn.
Transcript van de presentatie:

Architecturale aspecten van beveiliging Internettechnologie (ITech) Rik Van de Walle academiejaar 2007-2008

Basisprincipes

Basisprincipes Noodzaak van beveiliging Eerste computernetwerken Onderzoeksomgevingen E-mail 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

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

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

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

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”

Cryptografie (Geheimhouding)

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)

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 vercijferingsmethode EK klare tekst P passieve indringer C = EK(P) actieve indringer ontcijferingsmethode DK klare tekst DK(EK(P)) = P Sleutel K

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

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

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

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)

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

Cryptografie Transpositiesystemen De symbolen zelf worden niet gewijzigd De volgorde waarin de symbolen worden geplaatst verandert Voorbeeld: kolomtranspositie

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

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

Cryptografie met geheime sleutels

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 Merk op dat de voorgestelde vercijfer- en ontcijferstap identiek zijn       0010 1000 1010 veilig kanaal ontcijfering vercijfering

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

creatie iteratiesleutels Moderne block ciphers klare tekst sleutel K creatie iteratiesleutels iteratiesleutel 1 preprocessing 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 Hetzelfde hardware circuit Dezelfde software implementatie Algoritmen die gebruik maken van Feistel ciphers DES (en 3DES) IDEA

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

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

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

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

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

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

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

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

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)

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 100.000 PCs verbonden via Internet tijd nodig om DES te kraken: < 1 dag (22 uren)

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

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 !)

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

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 #

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 !

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

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

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. 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 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)

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

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

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) / 14 (AES-256) Twee parallelle processen Vercijferingsproces (4 bouwblokken) SubBytes ShiftRows MixColumns AddRoundkey Sleutelgeneratieproces

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

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

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

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

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

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

Cryptografie met publieke sleutels

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

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

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

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

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

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)

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 Y 25 15625 16 268435456 T 20 8000 14 105413504 E 5 125 26 8031810176 M 13 2197 893871739

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

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

Authentisering

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

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)

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

Authentisering op basis van een gemeenschappelijke geheime sleutel A, RA 1 Alice Bob 2 RB, KAB(RA) 3 KAB(RB)

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

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

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)

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 !

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

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

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

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

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

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

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

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

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

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)

Kerberos (II) Architectuur Gebruik van tijdstempels om afspeelaanvallen te voorkomen Wachtwoord van Alice slechts paar ms in client aanwezig

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

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

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

Elektronische handtekening

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

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

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

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

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))