G 0130 1 Toepassing van cryptografische technieken W. S. de Groot RE RA 1 1 Inleiding G 0130 3 1.1 Algemeen G 0130 3 1.2 Leeswijzer G 0130 3 2 Basisbegrippen G 0130 4 3 Cryptografische algoritmen G 0130 4 3.1 Hoofdindeling crypto-algoritmen G 0130 4 3.2 DES G 0130 6 3.2.1 Inleiding G 0130 6 3.2.2 Werking DES G 0130 6 3.2.3 De DES-modi G 0130 10 3.2.4 Veiligheid DES G 0130 12 3.2.5 De opvolging van DES G 0130 13 3.3 RSAG 0130 13 3.3.1 Inleiding G 0130 13 3.3.2 Werking RSAG 0130 14 3.3.3 Veiligheid RSAG 0130 15 3.3.4 Andere asymmetrische algoritmen G 0130 16 1 W. S. de Groot RE RAis werkzaam als IT-auditor bij de belastingdienst die voor de informatiebeveiliging mede gebruikmaakt van cryptografische technieken. Het voornemen van de Belastingdienst is het gebruik van deze technieken in de komende jaren uit te breiden.
G 0130 2 Toepassing van cryptografische technieken 3.4 Hashing algoritmen G 0130 17 3.4.1 Algemeen G 0130 17 3.4.2 De verjaardagsparadox G 0130 17 3.4.3 De DES-hash G 0130 19 3.4.4 De MD-algoritmen G 0130 20 3.4.5 Secure Hashing Algorithm (SHA-1) G 0130 22 3.4.6 RIPEMD-160 G 0130 22 4 Voorbeelden van gebruik G 0130 24 4.1 Beoordelingsaspecten G 0130 24 4.1.1 Voorbeeld 1 G 0130 26 4.1.2 Voorbeeld 2 G 0130 27 4.1.3 Voorbeeld 3 G 0130 28 4.1.4 Voorbeeld 4 G 0130 29 4.1.5 Voorbeeld 5 G 0130 30 4.1.6 Voorbeeld 6 G 0130 31 4.1.7 Voorbeeld 7 G 0130 33 4.1.8 Voorbeeld 8 G 0130 34 4.1.9 Voorbeeld 9 G 0130 35 5 Sleutelbeheer G 0130 36 5.1 Rollenspel sleutelbeheer G 0130 37 5.2 Sleutelsystemen G 0130 37 5.3 Levenscyclus van een sleutel G 0130 37 5.3.1 Aanmaak van een sleutel (of sleutelpaar) G 0130 37 5.3.2 Distributie van sleutels G 0130 38 5.3.3 Opslag van sleutels G 0130 38 5.3.4 Wisseling van sleutels G 0130 39 5.3.5 Vernietiging van sleutels G 0130 39 5.3.6 Het gebruik van chipkaarten bij sleutelbeheer G 0130 39 5.4 Archivering van berichten G 0130 40 6 Aandachtspunten voor de IT-auditor G 0130 41 6.1 De rol van de IT-auditor bij de keuze van een cryptosysteem G 0130 41 6.2 Aandachtspunten voor het werkprogramma van de IT-auditor G 0130 41 7 Aanbevolen literatuur en software G 0130 43 8 Literatuur G 0130 44
G 0130 3 1 Inleiding 1.1 Algemeen 1.2 Leeswijzer De term cryptografie roept bij een aantal mensen romantische beelden op van uitgezonden spionnen, verzegelde codeboeken, listig verborgen zendapparatuur en heimelijk gekopieerde stafkaarten. Kortom, een wereld van vaderlandsliefde, geheime missies, list, intrige en verraad. De moderne IT-auditor zal bij de term cryptografie veel minder associaties leggen met dergelijke beelden. Het huidige gebruik van cryptografische technieken (beter: cryptologische technieken) kent een beduidend minder Mata Hari - of 007 -gehalte dan derden vermoeden. Het gebruik van cryptografische technieken kan een aantal kwaliteitswaarborgen bewerkstelligen bij bijvoorbeeld datacommunicatie. Zo kunnen de kwaliteitsaspecten integriteit, exclusiviteit, authenticiteit en onweerlegbaarheid bij berichtuitwisseling door middel van cryptografische technieken worden gewaarborgd, waardoor de belangstelling voor cryptografische technieken de laatste jaren sterk is toegenomen. In dit hoofdstuk wordt een aantal cryptografische grondbeginselen uitgelegd. Daarbij is gekozen voor een pragmatische invalshoek en is getracht de wiskundige onderbouwing van een aantal uitspraken te minimaliseren. Degenen die daar wél in geïnteresseerd zijn, alsmede degenen die zich breder willen oriënteren op cryptografie en haar toepassingen, worden verwezen naar de literatuuropgave aan het einde van dit hoofdstuk. Tevens worden op meerdere plaatsen in de tekst aanwijzingen gegeven, waar de IT-auditor aandacht aan kan schenken bij de beoordeling van het gebruik van cryptografische technieken. In het vervolg van dit hoofdstuk wordt in paragraaf 2 kort een aantal cryptografische basisbegrippen behandeld. Paragraaf 3 bevat een uiteenzetting over de te gebruiken technieken. Er wordt ingegaan op de werking van de Data Encryption Standard (DES) en het crypto-algoritme van Rivest, Shamir and Adleman (RSA). Deze paragraaf wordt afgesloten met een behandeling van hashingalgoritmen. De lezer, die minder is geïnteresseerd in de technische bagage, wordt geadviseerd in ieder geval paragraaf 3.1. door te lezen. In paragraaf 4 wordt de praktische toepassing van cryptografische technieken aan de hand van een aantal voorbeelden toegelicht. Paragraaf 5 richt zich op de organisatorische inbedding van de cryptotechnieken en wel met name op de administratief-organisatorische procedures rondom het sleutelbeheer. Paragraaf 6 geeft een samenvatting van de aandachtspunten waar de IT-auditor, belast met de advisering en de beoordeling van de toepassing van de hier behandelde technieken, rekening mee kan houden.
G 0130 4 Toepassing van cryptografische technieken De aandacht wordt erop gevestigd dat dit hoofdstuk is geschreven naar de stand van de techniek van medio 1999. Er wordt op gewezen dat door de voortschrijding van de techniek sommige veiligheidsmarges kunnen verlopen. 2 Basisbegrippen Cryptografie vormt een onderdeel van de cryptologie. Cryptologie vormt een samentrekking van de Griekse woorden cruptos (verborgen) en logo (woord) ofwel de leer van het verborgen houden van informatie voor derden. Cryptografie behelst de leer van het vercijferen (coderen). Een tweede onderdeel van de cryptologie is de cryptoanalyse (ook wel: cryptanalyse). Deze discipline houdt zich bezig met methoden en technieken om cijferteksten te breken of te kraken. Onder encryptie wordt het proces van vercijferen verstaan. Dit gebeurt met behulp van een sleutel. De tegenhanger decryptie betreft het proces om de originele tekst (de klare tekst ofwel de boodschap) weer terug te krijgen. Klare tekst is dus de door middel van encryptie te beschermen tekst. De klare tekst wordt ook aangeduid met het begrip boodschap(b). Cijfertekst (C) is de geëncrypte klare tekst. 3 Cryptografische algoritmen Alvorens in te gaan op een tweetal specifieke algoritmen, wordt hieronder eerst een hoofdindeling van crypto-algoritmen gegeven. 3.1 Hoofdindeling crypto-algoritmen De meest gebruikelijke onderverdeling van de crypto-algoritmen is die in de symmetrische en de asymmetrische algoritmen. De verschillen ogen gering, maar de gevolgen zijn fundamenteel verschillend voor de implementatie en het gebruik van het cryptosysteem, waarin de algoritmen zijn verwerkt. Er wordt gesproken van een symmetrisch algoritme als er, zowel bij encryptie als decryptie, dezelfde sleutel wordt gebruikt. Bij een asymmetrisch algoritme daarentegen worden er voor het encryptie- en decryptieproces verschillende sleutels gebruikt. Dit kan als volgt worden weergegeven: Bij toepassing van een asymmetrisch algoritme wordt er op een zeker moment een sleutelpaar gegenereerd door de gebruiker van het cryptosysteem. Deze twee sleutels (s1 en s2) horen bij elkaar. Het enkele bezit van één der sleutels geeft echter niet de mogelijkheid om de bijbehorende sleutel te berekenen.
G 0130 5 0013-0233 Encryptie Decryptie Boodschap E Cijfertekst D Boodschap Sleutel(s) = Sleutel(s) Figuur 1. Symmetrisch algoritme. 0013-0234 Encryptie Decryptie Boodschap E Cijfertekst D Boodschap Sleutel(s1) <> Sleutel(s2) Figuur 2. Asymmetrisch algoritme. De zender van de te versturen informatie behoudt één sleutel (s1 of s2) en geeft de bijbehorende sleutel (s2 of s1) aan de ontvanger van de informatie. Het maakt daarbij dus niet uit of de zender s1 of s2 behoudt en respectievelijk s2 of s1 afgeeft. Beide sleutels hebben dezelfde cryptografische mogelijkheden. Let wel: het is dus niet zo dat het onderscheid in symmetrische en asymmetrische algoritmen iets omtrent de symmetrie van het algoritme zelf aanduidt. Het onderscheid is alleen aanwezig in de al dan niet identieke sleutel(s) die bij de encryptie, dan wel decryptie worden gebruikt. Er zijn meerdere symmetrische en asymmetrische crypto-algoritmen. Aangezien dit hoofdstuk vooral gericht is op de aandachtspunten voor de IT-auditor bij (de beoordeling van) het gebruik van cryptografische technieken, wordt in de volgende paragrafen één symmetrisch en één asymmetrisch algoritme behandeld. Dit betreft respectievelijk de Data Encryption Standard (DES) en het asymmetrische RSA-algoritme, vernoemd naar de ontwerpers Rivest, Shamir en Adleman. DES en RSAkunnen beide beschouwd worden als vertegenwoordigers van geldende industriestandaarden. Men kan zich afvragen waarom er gebruik dient te worden gemaakt van een standaardcryptosysteem. Het gebruik van niet-gestandaardiseerde cryptosystemen (bedrijfseigen of proprietary systems) kan zeker zinvol zijn bij datacommunicatie binnen één en dezelfde organisatie. Voor de communicatie tussen verschillende organisaties is het zinvol een standaardcryptosysteem te hanteren, enerzijds vanwege hun bewezen veiligheid, anderzijds van-
G 0130 6 Toepassing van cryptografische technieken wege het open karakter (in de zin van de openbaarheid van het algoritme) van dergelijke standaarden. 3.2 DES 3.2.1 Inleiding 3.2.2 Werking DES Aan het begin van de zeventiger jaren kreeg het Amerikaanse National Institute for Standards and Technology (NIST), toen nog het National Bureau of Standards (NBS) geheten, de opdracht federale richtlijnen op te stellen voor effectief en efficiënt gebruik van informatietechnologie. Hieruit vloeide een taak voort ten aanzien van informatiebeveiliging. Het NBS schreef daarvoor in mei 1973 een oproep voor een vercijferingsalgoritme uit. De respons was teleurstellend, waarna een tweede oproep in augustus 1974 volgde. Van de inzendingen van deze tweede oproep bleek één inzending aan de gestelde eisen te voldoen: het door IBM ontwikkelde Lucifersysteem. Een aangepaste versie van dit systeem werd in 1977 als een federale standaard geaccepteerd onder de naam Data Encryption Standard (DES). Het algoritme is later tevens tot standaard verheven door het American National Standards Institute (ANSI) onder de naam Data Encryption Algorithm (DEA). Zoals ook in de volgende paragraaf wordt aangetoond, is het DES-algoritme openbaar. Deze openbaarheid van DES gold vanaf het eerste moment. De ontwerpcriteria van DES zijn echter pas in de jaren negentig gepubliceerd. Inmiddels heeft het NIST op 12 september 1997 een nieuwe oproep gedaan voor een symmetrisch crypto-algoritme, de Advanced Encryption Standard (AES). Zie verder paragraaf 3.2.5. De Data Encryption Standard (DES) is een blokvercijferingsalgoritme. Dit betekent dat de te vercijferen boodschap wordt opgesplitst in blokken (bij DES ieder 64 bits groot) die achtereenvolgens worden vercijferd. Het maakt daarbij niet meer uit of de boodschap een tekstbestand, een programma, of zelfs gedigitaliseerd beeld of geluid is. De enige te stellen eis betreft het in digitale vorm voorhanden zijn van de boodschap. De sleutel, die bij de vercijfering wordt gehanteerd, is ook 64 bits lang. Van deze sleutel worden echter slechts 56 bits gebruikt; de overige 8 bits zijn pariteitsbits. Het aantal mogelijke sleutels is dus 2 56, ofwel 7,2 10 16. De oorspronkelijke Lucifervariant van DES kende overigens een blok- en sleutellengte van 128 bits. Het vercijferen van een invoerblok gaat in 16 ronden. Bij iedere ronde wordt gebruikgemaakt van een, van de 64-bit sleutel afgeleide, subsleutel met een lengte van 48 bits. De sterkte van een crypto-algoritme wordt wel aangegeven met de term lawine-effect (avalanche). Dit is de maat voor het aantal bits dat wijzigt in het uitvoerblok na één versleutelronde als er in het inputblok één bit wordt gewijzigd. Men spreekt van een ideaal lawine-effect als de helft van het aantal bits in het uitvoerblok na één ronde is gewijzigd, nadat er in het invoerblok één bit is veranderd. DES kent een sterk lawine-effect. In algemene zin dient de IT-auditor het lawine-effect van het te beoordelen algoritme te kennen.
G 0130 7 In figuur 3 op de volgende pagina wordt het principeschema van DES weergegeven. 0013-0235 Invoer (64 bit) Permutatie Linkerblok (32 bits) Rechterblok (32 bits) s1 t/m s16 Herhaling 16 keer + F Voormalig rechterblok Vercijferd linkerblok Permutatie Uitvoer (64 bit) Figuur 3. Het DES-principeschema. Op het invoerblok van 64 bits wordt eerst een permutatie uitgevoerd; een omwisseling van bits volgens een vast patroon. Vervolgens wordt het 64-bit blok gesplitst in twee 32-bit blokken. In ieder van de 16 ronden wordt het linkerblok gexored met de uitkomst van de cijferfunctie F. Voor deze cijferfunctie wordt het rechterblok van 32 bits als invoer gebruikt, alsmede de desbetreffende subsleutel. Vervolgens worden het linker- en rechterblok verwisseld voor de volgende van de 16 ronden. Iedere blokhelft wordt dus acht keer vercijferd. De XOR-functie zelf wordt in onderstaande tabel aangegeven. Deze functie kan gemakshalve worden voorgesteld als een binaire optelling, waarbij de eventuele carry s buiten beschouwing worden gelaten. XOR 0 1 0 0 1 1 1 0 Na 16 ronden worden de twee 32-bit blokken weer samengevoegd tot één 64-bit blok; er vindt weer een permutatie plaats
G 0130 8 Toepassing van cryptografische technieken (de inverse van de oorspronkelijke permutatie aan het begin van de 16 vercijferronden). Aldus ontstaat er een 64-bit uitvoerblok. In het DES-schema is een zogenaamd Feistel-netwerk te herkennen. Dit komt in veel symmetrische crypto-algoritmen voor. De structuur hiervan is als volgt: 0013-0236 linker invoerblok rechter invoerblok deelsleutel F bijv. XOR voormalig rechterblok voormalig linkerblok Figuur 4. Een Feistel-netwerk. Bij een Feistel-netwerk wordt het invoerblok gesplitst in een linker- en een rechterblok. Eén van de blokken doorloopt de cryptofunctie F. Daarbij wordt per ronde een (andere) deelsleutel gebruikt. Het resultaat hiervan wordt bijvoorbeeld gexored met het rechterblok. DES gebruikt de XOR-functie, maar er zijn ook andere mogelijkheden. Vervolgens worden de twee blokken verwisseld om de volgende versleutelronde in te gaan. Terug naar DES: de cijferfunctie F van DES wordt nader beschouwd. Zie figuur 5. Het rechterblok (32 bits) wordt volgens een vaste systematiek geëxpandeerd tot 48 bits. Er worden dus volgens een vast patroon 16 bits tussen- of bijgevoegd. Het resultaat wordt gexo- Red met de voor de desbetreffende vercijferronde valide subsleutel. Het resultaat (48 bits) wordt verdeeld in acht blokjes van zes bits die als invoer dienen voor evenzovele substitutieboxen.
G 0130 9 0013-0237 rechterbl. 32 bits E Expansie 48 bits subsleutel 48 bits + XOR-functie S1 S2 S3 S4 S5 S6 S7 S8 substitutieboxen 8 maal 4 bits output P permutatie uitvoer (32 bits) Figuur 5. De cijferfunctie F van DES. Per substitutiebox worden de zes invoerbits vervangen (gesubstitueerd) door vier uitvoerbits. Deze vier uitvoerbits van alle acht substitutieboxen worden vervolgens samengevoegd tot 32 uitvoerbits, die na wederom een permutatie, de uitvoer van de cijferfunctie F vormen. Het is deze uitvoer die weer met het 32-bit linkerblok gexored wordt. Uit het voorgaande mag niet de indruk worden gewekt dat de werking van de substitutieboxen een complexe zaak is: feitelijk is hier sprake van een tabel, met 2 6 = 64 waarden. Hierbij geven het eerste en het laatste bit van het invoerblokje de rij en de overige vier bits de kolom aan, waar op het snijpunt de substitutiewaarde van vier bits wordt gevonden. In figuur 6 wordt een voorbeeld gegeven van de werking van een substitutiebox: in dit geval substitutiebox 6. De reden waarom hier de werking van DES gedetailleerd wordt beschreven, is niet alleen om duidelijk te maken hoe DES werkt. Het dient tevens om aan te tonen dat er op dit vlak geen geheimen aan DES kleven: de werking van DES, haar cijferfunctie en de inhoud van alle substitutieboxen zijn in de literatuur beschreven.
G 0130 10 Toepassing van cryptografische technieken 0013-0238 Invoer 0 1 1 1 0 1 0 1 2 3 0 1 2 3 4 5 6 7 8 9 10 11 1213 14 15 12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11 1015 4 2 712 9 5 6 1 13 14 011 3 8 914 15 5 2 8 12 3 7 0 4 10 113 11 6 4 3 2 12 9 5 15 1011 14 1 7 6 0 8 13 Uitvoer 0 0 1 1 Figuur 6. Substitutiebox 6. Het decryptieproces is identiek aan het encryptieproces, met dien verstande dat daar waar in het encryptieproces de subsleutels in de volgorde 1 tot en met 16 worden gebruikt, dit bij het decryptieproces in omgekeerde volgorde (16 t/m 1) wordt gedaan. DES kent een viertal zwakke sleutels en een zestal semi-zwakke sleutelparen. Een zwakke DES-sleutel levert na tweevoudige vercijfering dus na tweevoudige encryptie, wederom de boodschap in klare tekst op. Dit betekent dat bij een zwakke sleutel de afgeleide subsleutel s1 gelijk is aan s16, s2 aan s15, etc. Een semi-zwak sleutelpaar is een sleutelpaar waarbij na encryptie met de ene sleutel en encryptie met de tweede sleutel wederom de klare tekst resulteert. De zwakke en semi-zwakke sleutels zijn bekend. Bij iedere hard- of software-implementatie van DES dient er te worden getoetst of er voor het cryptoproces geen zwakke of semi-zwakke sleutel wordt gehanteerd. Hier ligt een aandachtspunt voor de IT-auditor. 3.2.3 De DES-modi DES kent een aantal varianten. Er zijn meerdere mogelijkheden in het aantal vercijferronden, de lengte van de sleutel en de wijze van het gebruik: de DES-modi. DES kan in een viertal modi worden toegepast, te weten: de Electronic Codebook Mode (ECB-mode); de Cipher Block Chaining Mode (CBC-mode); de k-bit Cipher Feedback Mode (CFB-mode); de k-bit Output Feedback Mode (OFB-mode). Uitsluitend de eerste twee modi zullen hierna worden behandeld. Daarnaast zal in paragraaf 3.4.3. stil worden gestaan bij het
G 0130 11 principe van one-way DES-hashtotalen, toegepast in de CBCmodus. Electronic Codebook Mode (ECB-mode) De ECB-modus is de meest eenvoudige werkingswijze van DES. 0013-0239 B1 B2 B3 s DES s DES s DES C1 C2 C3 Figuur 7. De ECB-modus van DES. De boodschap wordt in 64-bit blokken opgedeeld, B1, B2, enzovoorts. Deze worden vercijferd met behulp van de DES-sleutel s. Het resultaat is een cijfertekst C1, C2, etc. Het voordeel van dit mechanisme is de geringe foutpropagatie: een omgevallen bitje in één van de cijfertekstblokken leidt in principe bij het decrypten tot slechts een gelimiteerde schade ter grootte van het desbetreffende 64-bit boodschapblok. Het systeem kent echter ook een tweetal nadelen, te weten: het encryptieproces is slechts afhankelijk van één sleutel. Raakt deze sleutel bekend, dan zijn alle cijferteksten te decrypten; gelijke delen van de boodschap kunnen tot gelijke delen cijfertekst leiden. Dit betekent dat er in de cijfertekst terugkerende patronen kunnen voorkomen, een gegeven dat cryptoanalisten houvast geeft. Een oplossing voor deze nadelen is te vinden in het gebruik van DES in de CBC-modus. Cipher Block Chaining mode (CBC-mode) In de CBC-modus van DES wordt er naast een DES-sleutel gebruikgemaakt van een initiële vector (IV). Deze wordt, voordat de daadwerkelijke vercijfering plaatsvindt, gexored met het eerste 64-bit boodschapblok. De resulterende cijfertekst vervangt vervolgens de initiële vector, en wordt gexored met het tweede 64-bit boodschapblok, enzovoorts. Het gevolg is dus dat de ontstane cijfertekst wordt gebruikt bij het vercijferen van het volgende 64-bitblok. Dit mechanisme kan echter tot een grote foutpropagatie leiden.
G 0130 12 Toepassing van cryptografische technieken 0013-0240 IV B1 B2 B3 + + + s DES s DES s DES C1 C2 C3 Figuur 8. De CBC-modus van DES. 3.2.4 Veiligheid DES Van meet af aan is er discussie geweest omtrent de veiligheid van DES. Aanvankelijk gebeurde dit, omdat men daar de ontwerpcriteria eerst niet waren gepubliceerd vreesde voor een achterdeur in het algoritme. Dit zou ten behoeve van bepaalde nationale diensten opgenomen kunnen zijn. Na meer dan twintig jaar zoeken is er echter nimmer een dergelijke achterdeur aangetoond. Verder bestaat er twijfel rond de veiligheid van DES in verband met de relatief korte sleutellengte (56 bits). Er zijn in de literatuur specifieke machines beschreven die zich richten op het door middel van uitputtend sleutelonderzoek breken van DES-cijferteksten. Dergelijke machines zijn ook daadwerkelijk gebouwd. De relatief korte sleutellengte is de voornaamste reden waarom het NIST haar oproep voor de Advanced Encryption Standard (AES) heeft doen uitgaan. Bij dit alles dient de IT-auditor zich wel bewust te zijn van de noodzaak van een risicoafweging. In het normale zakelijke verkeer is het vereiste niveau van de informatiebeveiliging niet steeds even hoog als voor staatsgeheimen van een land in oorlog. Een gebruikswijze van DES die vooralsnog wél als veilig wordt beschouwd, is de toepassing van het zogenaamde Triple-DES. Triple-DES kan bijvoorbeeld worden toegepast voor het veilig opslaan van DES- en/of RSA-werksleutels. Triple-DES wordt onder meer in de bancaire wereld veelvuldig gebruikt. Van Triple-DES zijn twee varianten te onderscheiden, een tweesleutel Triple-DES en een driesleutel Triple-DES. Bij het tweesleutel Triple-DES wordt de boodschap eerst geëncrypt met
G 0130 13 sleutel 1, vervolgens gedecrypt met sleutel 2 en daarna nogmaals geëncrypt met sleutel 1 (E s1 D s2 E s1 ). Bij het driesleutel Triple-DES hanteert men bij de derde keer dat DES wordt gebruikt een derde sleutel (E s1 D s2 E s3 ). Een driesleutel Triple-DES is aanmerkelijk sterker dan een tweesleutel Triple-DES. Wel moet de IT-auditor bij beide verschijningsvormen van Triple-DES er op letten dat de drie versleutelronden volledig na elkaar worden uitgevoerd. Een toepassing van Triple-DES, waarbij de drie versleutelronden in elkaar vervlochten werden toegepast, bleek zwakheden te vertonen. De sterkte van deze laatste variant bleek vrijwel overeen te komen met een single-des toepassing. 3.2.5 De opvolging van DES Zoals in paragraaf 3.2.1. al is aangegeven, heeft het National Institute for Standards and Technology (NIST) in september 1997 een oproep gedaan voor de Advanced Encryption Standard (AES). Aan de AES worden de volgende eisen gesteld: het moet een symmetrisch crypto-algoritme betreffen; het moet een blokvercijferingsalgoritme (en dus niet een random getallengenerator) betreffen; de sleutellengte moet 128, 196 of 256 bit lang zijn, terwijl het invoerblok en het uitvoerblok 128 bit lang moeten zijn; en heel belangrijk: het gebruik moet vrij zijn van royalties en dergelijke. In augustus 1998 zijn er vijftien AES-inzendingen bekendgemaakt. Het betreft: CAST-256 CRYPTON DEAL DFC E2 FROG HPC LOKI97 MAGENTA MARS RC6 RIJNDAEL SAFER+ SERPENT TWOFISH. De meeste van deze algoritmen betreffen Feistel-netwerken. In augustus 2000 wordt de winnaar bekendgemaakt. Meer informatie is verkrijgbaar op http://www.nist.gov/aes. 3.3 RSA 3.3.1 Inleiding In 1976 publiceerden Diffie en Helman het artikel New directions in cryptography. In dit stuk werden de basisprincipes voor een 2-sleutel cryptosysteem beschreven. Diffie en Helman spra-
G 0130 14 Toepassing van cryptografische technieken ken overigens van een public-key-system, omdat één van de twee sleutels geheim blijft en de andere openbaar kan worden gemaakt. In 1978 kwamen Rivest, Shamir en Adleman met de eerste concrete invulling voor een asymmetrisch cryptosysteem. Dit algoritme is gepatenteerd in de Verenigde Staten. De exclusieve licentierechten van deze patenten worden gehouden bij Public Key Partners (PKP) of Sunnyvale in California. In Europa is de octrooiaanvraag door de eerdere publicatie van Diffie en Helman afgewezen. Het DES-algoritme is overigens niet gepatenteerd, niet in de Verenigde Staten en ook niet daarbuiten. Daarnaast is het gebruik van het DES- en RSA-algoritme onderhevig aan wettelijke exportbepalingen: op de hardware- en softwareproducten, waarin de algoritmes zijn verwerkt, rust in principe een exportverbod. De twee belangrijkste wetten op dit gebied zijn de Export Administration en de Arms Export Control Act. De National Security Agency (NSA) dient in principe positief te adviseren over het afgeven van een exportlicentie. De Amerikaanse overheid heeft echter in september 1998 versoepelingen van deze regelgeving aangekondigd. Overigens is er buiten de Verenigde Staten een aantal leveranciers, die het DES- en RSA-algoritme zelf in hun hard- en/of software hebben geïmplementeerd. 3.3.2 Werking RSA De werking van het RSA-algoritme berust op een wiskundig principe. Alvorens daar op ingegaan kan worden, dient een tweetal wiskundige begrippen kort te worden belicht: de priemgetallen en modulobewerkingen. Priemgetallen: priemgetallen zijn gehele getallen, die uitsluitend deelbaar zijn door het getal 1 en het priemgetal zelf. Voorbeelden van priemgetallen zijn: 1, 2, 3, 5, 7, 11, 13, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, enzovoorts. Modulobewerkingen: Als wordt geschreven: a = b mod n(uit te spreken als: a is gelijk aan b modulo n), wordt bedoeld dat a gelijk is aan b op een veelvoud van n na. Een andere schrijfwijze zou dus zijn: a=b+k n. Bijvoorbeeld: 26 = 2 mod 4 want 26 = 2 + k 4 bij k = 6. De werking van het RSA-algoritme verloopt in enkele stappen: kies twee grote priemgetallen, bijvoorbeeld x en y; bepaal het product hiervan: z = x y; kies een willekeurig getal a dat voldoet aan de volgende conditie: 3<a<(x-1) (y-1), waarbij tevens geldt dat het getal a een relatieve priem is, ten opzichte van het product (x-1) (y-1). Dit laatste betekent dat de grootste gemene deler van a en (x-1) (y-1) het getal 1 is; bereken het getal b uit de formule: a b = 1 mod (x-1) (y-1). Bij RSAworden de geheime en de openbare sleutels vervolgens gevormd door de combinaties (a,z) en (b,z) of andersom (b,z) en
G 0130 15 (a,z). De kern van het RSA-algoritme berust op de onmogelijkheid om b te berekenen uit alleen de getallen a en z of a uit de getallen b en z. Zowel de encryptie als de decryptie vindt plaats via machtsverheffen. Als een karakter uit de boodschap in klare taal met de letter B wordt voorgesteld, dan vindt de encryptie plaats door C = B a mod z. De decryptie vindt plaats via de formule: B=C b mod z. Een verduidelijkend voorbeeld is hier wel op zijn plaats. Allereerst worden de geheime en openbare RSA-sleutels berekend uit de vier hierboven weergegeven stappen: kies twee grote priemgetallen. Voor de eenvoud van dit getallenvoorbeeld worden twee kleine priemgetallen genomen: 11 en 13; bereken het product: z=x y, z is dus 11 13 ofwel 143. Voor het gemak wordt ook meteen het product berekend (x-1) (y- 1), dus 10 12 = 120; kies een getal a waarbij geldt dat 3 bereken b uit de formule: a b = 1 mod (x-1) (y-1) ofwel 7b = 1 mod 120. Hieruit volgt dat b = 143, want 7 103 = 1+6 120, bijk=6. Stel dat een klare tekst moet worden geëncrypt. Deze tekst luidt: HELP. Deze tekst kan decimaal worden voorgesteld als 08 05 12 16. De encryptie vindt dan plaats via de formule:c=b a mod z, ofwelc=b 7 mod 143. De code luidt dan: 57 47 12 03. De ontvanger kan deze boodschap decrypten met behulp van de formuleb=c b mod z, ofwel B=C 103 mod 143. Het rekenwerk lijkt erg complex. Alhoewel er enerzijds een aantal wiskundige technieken gebruikt kan worden om het rekenwerk te vereenvoudigen en anderzijds dit rekenwerk door de computer zal worden uitgevoerd, is dit toch de reden waarom RSAin de praktijk relatief traag is. 3.3.3 Veiligheid RSA Het RSA-algoritme wordt tot op heden betrouwbaar geacht. Wel wordt internationaal nog steeds gezocht naar grote priemgetallen, het startpunt voor de berekening van een RSA-sleutelpaar. Dit verklaart de jacht op de grote priemgetallen waar onderzoekscentra regelmatig mee schermen. Zo werd in februari 1999 nog bekendgemaakt dat een getal van 140 cijfers was ontbonden in twee priemgetallen van ieder 70 cijfers. Een dergelijk getal van 140 cijfers, ook wel aangeduid als RSA-140, komt ongeveer overeen met een RSA-sleutel van 465 bits. Dit betekent dat in de praktijk een RSA-systeem, waarbij sleutels van 465 bits of minder worden toegepast, niet gebruikt kan worden indien men een voldoende niveau van beveiliging wenst te realiseren. Alhoewel er absoluut geen zekerheden zijn te geven omtrent de
G 0130 16 Toepassing van cryptografische technieken toekomstvastheid van RSA-sleutels kan uitsluitend ter illustratie de volgende tabel dienen: RSA-sleutellengte in bits Verwachte veiligheid van het systeem in jaren 768 2 tot 4 896 4 tot 6 1024 6 tot 9 Door de krachtiger hard- en software nemen de mogelijkheden nog steeds toe om grote getallen te ontleden in priemgetallen. Daarnaast wordt voor dergelijke enorme rekenklussen regelmatig een beroep gedaan op de grote aantallen PC s die op het Internet zijn aangesloten. De techniek om het rekenprobleem op te splitsen in te distribueren delen schrijdt gestaag voort. Uiteraard dient er altijd op basis van een risicoanalyse een balans te worden gevonden tussen de waarde van datgene wat men wenst te beschermen en de middelen die daarvoor op doelmatige wijze dienen te worden aangewend. 3.3.4 Andere asymmetrische algoritmen Naast RSAbestaat er een aantal andere asymmetrische cryptoalgoritmen, zoals ElGamal, Guillou-Quisquartier, Rabin, DSA, enzovoorts. RSAis vermoedelijk veruit het meest in de praktijk toegepaste systeem. Wel worden andere asymmetrische algoritmen in de praktijk gebruikt in sleuteldistributiemechanismen. Een veelbelovend nieuw asymmetrisch cryptosysteem betreft de zogenaamde Elliptische Curven. De achterliggende theorie is relatief complex. Alhoewel de mathematische achtergrond van de elliptische curven reeds lang bekend was, is de belangstelling ervoor pas de afgelopen jaren toegenomen, mede door de noodzaak steeds langere sleutellengtes te hanteren bij bijvoorbeeld RSAteneinde een voldoende niveau van beveiliging te realiseren. Ondanks de mathematische complexiteit is het rekenwerk bij toepassing van elliptische curven veel sneller uit te voeren. Ook zijn de benodigde sleutellengtes veel korter dan bij toepassing van RSA(bij een gelijkwaardig niveau van beveiliging) en neemt dit voordeel alleen maar toe bij langere sleutellengtes. In onderstaande tabel wordt dit toegelicht: RSA-sleutellengte EC-sleutellengte bij vergelijkbaar niveau van beveiliging Verhouding 512 106 4,6 1024 160 6,4 2048 211 9,4
G 0130 17 Omtrent elliptische curven is veel literatuur verschenen. Praktijktoepassingen worden de komende jaren in toenemende mate verwacht. 3.4 Hashing algoritmen 3.4.1 Algemeen 3.4.2 De verjaardagsparadox Eén van de meest gebruikte toepassingen van cryptografie is vermoedelijk, naast berichtencryptie, het berekenen van hashtotalen. Een hashtotaal wordt berekend met als doelstelling de integriteit van een bericht te waarborgen. Onder integriteit wordt de betrouwbaarheid verstaan. Het begrip integriteit valt onder te verdelen in de volledigheid, de juistheid en de tijdigheid van bijvoorbeeld berichtuitwisseling. Maatregelen die de integriteit waarborgen, zijn gericht op het voorkomen van onbevoegd muteren of verminken van gegevensstromen, dan wel het tijdig detecteren hiervan. Een hashtotaal bestaat uit een aantal bits (het aantal ligt veelal tussen 32 en 256), dat als het ware een vingerafdruk vormt van een boodschap (een tekst- of een ander bestand), onafhankelijk van de lengte van de originele boodschap. Een kenmerkende eigenschap van een goed hashing algoritme betreft de onmogelijkheid wijzigingen in de originele boodschap aan te brengen zonder dat daarbij het hashtotaal verandert. Bedenk hierbij dat kwaadwillenden ernaar kunnen streven inhoudelijke wijzigingen in de boodschap te compenseren met wijzigingen die niet direct opvallen. Zo kunnen door bijvoorbeeld extra spaties aan te brengen inhoudelijke wijzigingen gecompenseerd worden, waarbij het hashtotaal dus ongewijzigd blijft ten opzichte van het originele hashtotaal. Dit stelt enerzijds eisen aan de kwaliteit van het hashing algoritme dat collission-free moet werken. Anderzijds stelt dit eisen aan de lengte van het hashtotaal. Onderstaand wordt eerst aan de hand van de zogenaamde verjaardagsparadox inzicht gegeven in de minimaal noodzakelijke lengte van hashtotalen. Daarna volgen enkele voorbeelden van hashing algoritmen, waarbij er ook enkele algoritmen worden genoemd waarvan inmiddels bekend is dat ze niet collision-free zijn. Een hashtotaal met een lengte van 32 bits levert 2 32 4,3 miljard (4,3 10 9 ) mogelijkheden op. Dit lijkt enorm veel, maar is in werkelijkheid niet zoveel als op het eerste gezicht gedacht wordt. Dit zal worden toegelicht aan de hand van de verjaardagsparadox. Stel dat een aantal personen één voor één een kamer binnenloopt. Hoeveel personen moeten dan in de kamer aanwezig zijn om meer dan 50% kans te hebben dat twee personen op dezelfde datum jarig zijn? Het antwoord is verrassend laag: al bij 23 binnengelopen personen bestaat er een kans van meer dan 50% dat twee personen op eenzelfde dag jarig zijn. De kans (K) dat twee personen op eenzelfde dag jarig zijn, valt ook andersom voor te stellen, namelijk de kans dat twee perso-
G 0130 18 Toepassing van cryptografische technieken nen niet op eenzelfde dag jarig zijn moet kleiner zijn dan 50% (1- K). De vraag wordt dan: hoeveel personen moeten de kamer binnentreden om de kans dat twee personen niet op eenzelfde dag jarig zijn, kleiner te houden dan 50%? Bij de eerste persoon die binnentreedt, is het simpel: hij mag op 365 dagen van een kalenderjaar jarig zijn. De tweede binnentredende persoon mag echter op slechts 364 dagen jarig zijn om niet op eenzelfde dag jarig te zijn. Dat betekent dat de kans dat ze niet tegelijkertijd jarig zijn 365/365 364/365 = 0,997 (99,7%) is. Een derde binnentredende persoon mag op slechts 363 van de 365 kalenderdagen jarig zijn om niet tegelijk met één van de twee reeds aanwezigen jarig te zijn. De combinatiekans dat ze niet tegelijkertijd jarig zijn wordt dan 365/365 364/365 363/365 = 0,992, enzovoorts. In de figuur op de volgende pagina is weergegeven wat er gebeurt met deze combinatiekans als dertig personen één voor één de kamer binnenlopen. Uit de figuur blijkt dat het omslagpunt bij 23 personen ligt. Kans dat twee personen niet op eenzelfde dag jarig zijn 1,000 0,900 0,800 0,700 0,600 0,500 0,400 0,300 0,200 0,100 Verjaardagsparadox 0013-0241 0,000 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Aantal personen in de kamer Figuur 9. De verjaardagsparadox. De verklaring voor dit fenomeen ligt in het feit dat er eigenlijk niet van 23 personen gesproken mag worden, maar van 253 personenparen. Bij drie personen kunnen er 3 (3-1)/2 = 6 paren gevormd worden; bij vier personen 4 (4-1)/2 = 12 paren; bij 23 personen 23 (23-1)/2 = 253 paren; bij X personen X (X-1)/2 paren. Wat betekent dit nu voor de lengte van het hashtotaal? Stel dat de lengte van het hash Y bits bedraagt. Een (lees: één) tekst levert maximaal 2 Y mogelijke hashcodes op. Bij X teksten ontstaan er echter X (X-1)/2 tekstparen, waarbij de kans dat een tekstpaar een gelijke hashcode oplevert 1 gedeeld door 2 Y bedraagt. Als X (X-1)/2 = 2 Y X (X-1) = 2 Y+1 X 2 -X=2 Y+1 X 2 2 Y+1 X (2 Y+1 ) X 2 Y/2.
G 0130 19 Dit betekent dus dat er bij een lengte van de hashcode van 32 bits er geen 2 32 4,3 miljard (4,3 10 9 ) boodschappen beoordeeld behoeven te worden, maar er slechts ongeveer 2 16, ofwel 65.536 boodschappen moeten worden onderzocht om twee verschillende boodschappen te vinden die een gelijk hashtotaal opleveren. (Noot: in het hier gekozen voorbeeld is omwille van de eenvoud met lage waarden voor X en Y gewerkt; dit leidt tot een grote relatieve fout in de uitkomst. Bij hogere waarden van X en Y wordt de relatieve fout steeds kleiner.) De volgende gebruiksregel kan worden gehanteerd: Wil men de kans dat een hashtotaal gekraakt wordt kleiner houden dan bijvoorbeeld 1 op de 2 64, dan dient de lengte van het hashtotaal minimaal 2 64 = 128 bits te zijn. 3.4.3 De DES-hash Het berekenen van een DES-hashtotaal betreft een zogenaamde one-way DES-functie, toegepast in de CBC-modus (zie paragraaf 3.2.3). Deze one-way DES-functie werkt als volgt: na iedere vercijfering van 64 bits wordt de originele 64-bit boodschap gexored met de uitkomst van de vercijfering. 0013-0242 Boodschap s DES XOR-functie + Cijfertekst Figuur 10. De one-way hashfunctie van DES. Het heeft geen zin meer de ontstane cijfertekst C te decrypten; daarvoor dient eerst (het bitpatroon van) de boodschap te worden afgetrokken van de cijfertekst en de doelstelling van de decryptie was nu juist het verkrijgen van deze boodschap. Om deze reden heet dit een one-way encryption. De berekening van de DES-hash betreft de toepassing van deze one-way DES-functie in de CBC-mode. Daarbij vervangt de ontstane cijfertekst van het eerste 64-bit blok de sleutel bij de ver-
G 0130 20 Toepassing van cryptografische technieken cijfering van het tweede 64-bit blok van de boodschap, enzovoorts. 0013-0243 B1 B2 B3 s DES DES DES + + + C1 C2 C3 Figuur 11. Toepassing van de one-way DES hashfunctie in de CBC-modus. Uitsluitend het laatste blokje cijfertekst van 64 bits geldt als het DES-hashtotaal (of message digest) van de boodschap. Door het lawine-effect van DES zal er een totaal ander DES-hashtotaal ontstaan indien er in de boodschap slechts een bit of byte wordt veranderd. Een aldus berekend DES-hashtotaal van 64 bits kan dus niet worden gedecrypt. Het vaststellen van de integriteit van de boodschap gebeurt door de herberekening van een DES-hashtotaal en verificatie hiervan met het oorspronkelijke DES-hashtotaal. De uniciteit (beter Nederlands voor de mate van uniekheid ) van het DES-hashtotaal dient uiteraard vast te staan. Daarom dient het DES-hashtotaal niet te kort te zijn (64 bits, maar liever 128 of 256 bits). In dat laatste geval worden de laatste twee of vier 64- bit blokjes bewaard als de DES-hash. 3.4.4 De MD-algoritmen In tegenstelling tot de hiervoor beschreven DES-hash zijn er ook algoritmen ontwikkeld die zich uitsluitend op de hashingfunctie richten. Een aantal daarvan zijn ontwikkeld door Ron Rivest: de zogenaamde MD-algoritmen (MD is Message Digest): van het MD-1-algoritme is niets bekend. Misschien heeft het nooit bestaan, misschien is het al direct na de ontwikkeling onvoldoende gebleken om als praktisch toepasbaar algoritme te gelden; van MD-2 is meer bekend. Het MD-2-algoritme is een oneway hashalgoritme met een lengte van 128 bits. Het betreft een vrij simpel algoritme, waarbij feitelijk alleen XOR- en mo-
G 0130 21 dulo-256 berekeningen worden gebruikt. Er zijn zwakheden in het algoritme ontdekt. Daarnaast is de traagheid van het algoritme een bezwaar; het MD-3-algoritme heeft het nimmer verder gehaald dan de ontwerptafel van de ontwikkelaar. Al vlot na de realisatie bleek het algoritme niet collision-free te zijn. Het algoritme is overigens wel gepubliceerd; ook het in 1990 ontwikkelde MD-4-algoritme betreft een 128 bit one-way hashalgoritme. Als ontwerpcriteria golden veiligheid, snelheid, eenvoud en de toepasbaarheid op PC-processoren (Intel). Het algoritme werkt intern met 16 blokken van 32 bits, die steeds een drietal verschillende functies doorlopen. Nadat van verschillende kanten succesvolle aanvallen op ofwel de eerste twee functies, ofwel de laatste twee functies waren uitgevoerd, besloot de ontwerper, Ron Rivest, MD-4 te versterken. Dit leidde uiteindelijk tot MD-5. Ook andere algoritme-ontwikkelaars hebben MD-4 als basisconcept gehanteerd; zie de volgende twee paragrafen. In 1998 werd de ondeugdelijkheid van MD-4 aangetoond door de Duitser Hans Dobbertin. Hij toonde niet alleen aan dat het mogelijk was binnen enkele seconden twee boodschappen te genereren die een gelijke MD-4-hashcode opleverden, maar ook dat boodschappen inhoudelijk aangepast konden worden zonder dat het hashresultaat veranderde. Tot slot werd het one-way karakter van MD-4 ter discussie gesteld, evenals een 256-bit variant van MD-4; de belangrijkste verbetering van het MD-5-algoritme ten opzichte van MD-4 betreft het toevoegen van een vierde functie voor ieder 32-bit blok. Toch is de basisgedachte van MD-4 redelijk onveranderd gebleven in MD-5. Ook hier worden iedere ronde 16 blokken van 32 bits aangeboden aan een viertal (zoals gezegd bij MD-4 een drietal) nonlineaire functies. Deze nonlineaire functies hanteren uitsluitend XOR-, AND-, OR- en NOT-bewerkingen. Het hashresultaat van MD-5 kent, net als MD-4, een lengte van 128 bits. Hans Dobbertin, die de ondeugdelijkheid van MD-4 aantoonde, stelt dat verfijning van de voor MD-4 gehanteerde methode ook effectief zal blijken voor MD-5. Alhoewel tot op heden de ondeugdelijkheid van MD-5 niet onomstotelijk is aangetoond, adviseert ook de ontwerper van MD-5 een terughoudend gebruik van het algoritme in applicaties die toekomstvast moeten zijn. Uit het voorgaande zou de conclusie kunnen worden getrokken dat de MD-algoritmen het resultaat zijn van slecht ontwerpwerk. Deze conclusie is niet terecht. De ontwikkeling van de MD-algoritmen hebben cryptologen veel inzicht gegeven in de sterktes en zwakheden van hashingalgoritmen. Daarnaast heeft de ontwikkeling van met name MD-4 geleid tot enkele sterke hashingalgoritmen, die in de volgende twee paragrafen worden besproken.
G 0130 22 Toepassing van cryptografische technieken 3.4.5 Secure Hashing Algorithm (SHA-1) 3.4.6 RIPEMD-160 De Secure Hashing Algorithm betreft een algoritme dat wordt toegepast in de Secure Hash Standard (SHS). SHA-1 betreft een verbeterde versie van SHAen is door het National Institute for Standards and Technology (NIST) tezamen met het National Security Agency (NSA) ontwikkeld voor toepassing in zogenaamde digitale handtekeningen (zie paragraaf 4, voorbeeld 6). Op dit moment vormt SHA-1 vermoedelijk de internationale standaard op hashfunctiegebied. Het algoritme wordt geacht een voldoende niveau van beveiliging te kunnen waarborgen. De standaardlengte van het hashtotaal is 160 bits. Evenals bij MD-4 en MD-5 wordt er gewerkt met invoerblokken van 512 bits. SHAen SHA-1 kunnen dan ook als verbeterde versies van MD-5 worden beschouwd. Door de langere hashlengte is het algoritme aanmerkelijk veiliger dan MD-4 of MD-5 (zie ook paragraaf 3.4.2. inzake de verjaardagsparadox). Alhoewel SHA min of meer de internationale standaard is, is RI- PEMD-160 vermoedelijk een iets sterker hashalgoritme. RI- PEMD-160 is een verbeterde versie van RIPE-MD. Dit laatste algoritme is een Message Digest (MD) product van een onderzoek in opdracht van de Europese Gemeenschap, het zogenaamde RACE-project (Research and Development in Advanced Communication Technologies in Europe) Integrity Primitives Evaluation (1988-1992). Bij de ontwikkeling van RIPEMD-160 is sterk gekeken naar de sterke en zwakke punten van MD-4, MD-5 en RIPE-MD. Ook RIPEMD-160 werkt met invoerblokken van 512 bits. De lengte van het hashresultaat is, net als bij SHA, 160 bits lang. Uitsluitend ter illustratie is op de volgende pagina het cryptoschema weergegeven. Het 512-bit invoerblok wordt gesplitst in twee delen (de linker en rechter message words), die simultaan worden verwerkt. Het uitvoerblok (de updated chaining words) dient als input (chaining words) voor een volgende versleutelronde. In de vijf functies vinden 16 bewerkingen plaats. Het uitvoerresultaat is dus het product van 160 (5 2 16) bewerkingen. Dit is aanmerkelijk meer dan de eerder behandelde hashfuncties. Een vergelijking tussen de laatstbehandelde hashingalgoritmen wordt hieronder weergegeven: Algoritme Aantal functies Bewerkingen per functie Totaal aantal bewerkingen MD-4 3 16 48 MD-5 4 16 64 SHA-1 4 20 80 RIPEMD-160 5 maal 2 16 160 Alhoewel er bij RIPEMD-160 geen sleutels worden gehanteerd, kan het algoritme toch toegepast worden in Message Authenti-
G 0130 23 0013-0244 Chaining words XOR OR-XOR2 M M e s Mux1 Mux2 e s s s a a g e OR-XOR1 OR-XOR1 g e w w o o r d Mux2 Mux1 r d s s OR-XOR2 XOR + + + + + Updated chaining words Figuur 12. Het RIPEMD-160 cryptoschema.
G 0130 24 Toepassing van cryptografische technieken cation Codes (MAC s). Voor de desbetreffende standaarden wordt verwezen naar ISO/IEC (CD 9797-2): MDx-MAC en HMAC. 4 Voorbeelden van gebruik Na de theoretische grondslagen van paragraaf 3 wordt in deze paragraaf door middel van een aantal voorbeelden een praktische invulling van het gebruik van cryptografische technieken weergegeven. De voorbeelden richten zich steeds op de beveiliging van datacommunicatie tussen twee participanten namelijk Aen B. 4.1 Beoordelingsaspecten Bij de behandeling van de voorbeelden zal de uitwerking van het behandelde cryptosysteem steeds tegen een viertal kwaliteitsaspecten worden aangehouden. Dit zijn: integriteit exclusiviteit authenticiteit onweerlegbaarheid. Onder integriteit wordt, zoals reeds eerder opgemerkt, de betrouwbaarheid verstaan. Het begrip integriteit valt onder te verdelen in de volledigheid, de juistheid en de tijdigheid van de datacommunicatie. Maatregelen die de integriteit waarborgen, zijn gericht op het voorkomen van onbevoegd muteren of verminken van gegevensstromen, dan wel het tijdig detecteren hiervan. Onder exclusiviteit wordt de vertrouwelijkheid verstaan. Maatregelen die de exclusiviteit waarborgen zijn gericht op het voorkomen van onbevoegde kennisname van gegevensstromen. Met het begrip authenticiteit wordt geduid op de zekerheid, dat de afzender van de gegevens inderdaad degene is die hij pretendeert te zijn. Maatregelen die authenticiteit waarborgen zijn gericht op het voorkomen van onbevoegd verzenden van gegevens. Het begrip onweerlegbaarheid wordt gehanteerd voor de situatie waarbij het niet mogelijk is dat de verzender ontkent de gegevens verzonden te hebben. Een tweede kant van het begrip onweerlegbaarheid wordt gevormd in het niet kunnen ontkennen van de ontvangst door de ontvanger van de gegevens. Het begrip onweerlegbaarheid wordt ook wel aangeduid met het nonrepudiation-risico. In het vervolg van dit hoofdstuk wordt het begrip onweerlegbaarheid alleen in de eerstgenoemde betekenis gehanteerd (het niet kunnen ontkennen van de verzending door de zender).
G 0130 25 De desbetreffende waarborgen om de genoemde vier aspecten af te dekken, dienen uiteraard niet alleen effectief te zijn, doch ook efficiënt. Dit betekent dat de performance van de berichtuitwisseling niet te veel mag worden gereduceerd door de te nemen beveiligingsmaatregelen. Tevens dient er een relatief eenvoudig sleutelbeheer mogelijk te zijn. In de navolgende voorbeelden wordt er steeds van uitgegaan dat degenen die willen communiceren zelf beschikken over hun eigen geheime RSA-sleutels, alsmede over alle openbare RSAsleutels van alle anderen. Bovendien wordt ervan uitgegaan dat eenieder beschikt over (geheime) DES-sleutels voor de communicatie met ieder andere participant van het netwerk. In de onderstaande figuur betekent dat dus dat Adrie geheime DESsleutels heeft, namelijk ten behoeve van de communicatie met B, CenD. Geheime RSA-sleutel A, openbare RSA-sleutels B, C, D en geheime DES-sleutels B, C, D A 0013-0245 Geheime RSA-sleutel B, openbare RSA-sleutels A, C, D en geheime DES-sleutels A, C, D B D Geheime RSA-sleutel D, openbare RSA-sleutels A, B, C en geheime DES-sleutels A, B, C C Geheime RSA-sleutel C, openbare RSA-sleutels A, B, D en geheime DES-sleutels A, B, D Figuur 13. Uitgangspunt bij de voorbeelden. Het gebruik van symmetrische cryptosystemen kan bij de communicatie met vele partners tot een sleutelbeheerprobleem leiden. Indien men namelijk met een miljoen anderen wenst te communiceren, dient men minstens één miljoen sleutels geheim te houden. Dit leidt tot een sleutelbeheerprobleem. Bij toepassing van een symmetrisch cryptosysteem kan ook het totaal aantal in gebruik zijnde sleutels erg groot worden als het aantal participanten toeneemt. Men spreekt dan ook wel van een sleutelexplosie. Als ervan uit wordt gegaan dat iedere participant voor de beveiliging van zijn datacommunicatie (zowel zenden als ontvangen) een verschillende sleutel met iedere andere participant afspreekt, kan het maximaal in gebruik zijnde aantal sleutels worden berekend met de formule: aantal sleutels = N(N-1)/2 waarbij N het aantal participanten representeert. In de grafiek op de volgende pagina wordt de sleutelexplosie grafisch weergegeven (let op de schaalverdeling).
G 0130 26 Toepassing van cryptografische technieken 0013-0246 20000 Sleutelexplosie bij gebruik symmetrisch cryptosysteem 18000 Maximum aantal in gebruik zijnde sleutels 16000 14000 12000 10000 8000 6000 4000 2000 0 0 10 20 30 40 50 60 70 80 90 100 110 120130 140 150 160170 180190 200 Aantal participanten Figuur 14. Sleutelexplosie. Bij toepassing van een asymmetrisch cryptosysteem kent men dit probleem feitelijk niet: er hoeft dan slechts één sleutel geheim te blijven, namelijk de eigen (geheime) RSA-sleutel. Alle andere sleutels zijn immers openbaar. 4.1.1 Voorbeeld 1 Awil een bericht naar B sturen; hij wil echter niet dat derden het bericht ongemerkt aanpassen of verminken. Een mogelijke oplossing is dat Aniet het gehele bericht encrypt, maar een controlegetal toevoegt. Dit kan in de vorm van een DES-hashtotaal. De nadelen zijn echter ook duidelijk. Uitsluitend de betrouwbaarheid is afgedekt, niet de vertrouwelijkheid of de onweerlegbaarheid. Wel wordt, bij gebruik van een DES-hashtotaal, de authenticiteit afgedekt: bij een sluitende verificatie van dit hashtotaal heeft ontvanger B immers niet alleen de zekerheid dat de boodschap integer was, maar tevens dat hij de boodschap van Aheeft ontvangen. Alleen deze beschikte over de desbetreffende geheime DES-sleutel. De onweerlegbaarheid wordt echter niet af-
G 0130 27 0013-0247 Uitgangspositie: Boodschap DES DES-sleutel Te verzenden: Boodschap hash Figuur 15. Voorbeeld 1. gedekt. Akan altijd de verzending van het bericht ontkennen, daarbij wijzend op het feit dat B óók over de geheime DES-sleutel beschikt en derhalve zelf het bericht aangemaakt kan hebben. Tot slot kan er, bij gebruik van DES, het beschreven sleutelbeheerprobleem ontstaan. Het hanteren van het hashtotaal als authenticiteitswaarborg wordt ook wel aangeduid met de term Message Authentication Code ofwel een MAC. In onderstaande tabel worden de afgedekte aspecten met een kruisje aangegeven. Voorbeeld 1 4.1.2 Voorbeeld 2 Integriteit Exclusiviteit Authenticiteit Onweerlegbaarheid Snelheid Sleutelbeheer Awil een bericht naar B sturen. Hij wenst nu echter dat het voor derden niet mogelijk is kennis te nemen van het bericht. De eerste oplossing die geboden wordt is dat Ahet gehele bericht encrypt met DES en vervolgens het geëncrypte bericht naar B verzendt. X X X Let erop dat het zwaartepunt van de beveiliging bij deze implementatie van DES verschuift van het geheimhouden van het bericht naar het geheimhouden van de sleutel. Er kan nu worden gesteld dat ook de integriteit en de authenticiteit worden afgedekt. De integriteit kan worden vastgesteld doordat er, bij verandering of verminking van de code, geen leesbare klare tekst zal ontstaan.
G 0130 28 Toepassing van cryptografische technieken 0013-0248 Uitgangspositie: Boodschap DES DES-sleutel Te verzenden: Cijfertekst Figuur 16. Voorbeeld 2. Dit geldt temeer indien DES wordt toegepast in de CBC-modus (zie paragraaf 3.2.3.). Ook de authenticiteit wordt verzekerd. De ontvanger B weet dat alleen zender Aook over de desbetreffende geheime DES-sleutel beschikt; daardoor kan niet een ander de boodschap hebben verzonden. De onweerlegbaarheid van de verzending is echter wederom niet gegarandeerd. Deze gedachtegang lijkt gerechtvaardigd en is dat vermoedelijk ook voor boodschappen in de vorm van een wat langere tekst. Het is echter ook mogelijk dat Aeen boodschap naar B wil toezenden die slechts uit enkele bytes bestaat. Als de te verzenden boodschap uit bijvoorbeeld slechts enkele stuurparameters bestaat, kan niet worden gesteld dat de integriteit onomstotelijk wordt afgedekt. Het is mogelijk dat het bericht gecorrumpeerd is, maar bij decryptie een weliswaar andere maar op zich wel valide stuurparameter oplevert. Teneinde boodschaponafhankelijk te kunnen werken, wordt er dus niet van uitgegaan dat de integriteit en authenticiteit in het cryptoschema van voorbeeld 2 worden afgedekt. Tot slot kan er door het uitsluitende gebruik van DES een sleutelbeheerprobleem ontstaan. Voorbeeld 1 2 Integriteit X Exclusiviteit X Authenticiteit X Onweerlegbaarheid Snelheid X X Sleutelbeheer 4.1.3 Voorbeeld 3 Wederom wil Aeen bericht naar B sturen en wenst hij dat het voor derden niet mogelijk is kennis te nemen van het bericht. De tweede oplossing die geboden wordt, is dat Ahet gehele bericht encrypt, doch ditmaal met behulp van het RSA-algoritme. Hij gebruikt daarbij B s openbare RSA-sleutel.
G 0130 29 0013-0249 Uitgangspositie: Boodschap RSA Openbare RSA-sleutel van B Te verzenden: Cijfertekst Figuur 17. Voorbeeld 3. Alleen B is hierdoor in staat het bericht te decrypten (zelfs A kan dat niet). Het probleem is nu echter dat B niet (zeker) weet van wie het bericht afkomstig is. Het kan zijn dat C of D het ontvangen bericht hebben opgesteld, geëncrypt en verzonden. B kan ook niet écht de integriteit van het bericht verifiëren (zie voorbeeld 2), maar zelfs al zou hij dat kunnen, dan zegt deze integriteit niet zoveel: het bericht kan ronduit vals zijn. Door de enkele toepassing van RSAbehoeft er geen sleutelbeheerproblematiek te ontstaan. De snelheid (lees: het gebrek aan snelheid) van deze implementatie zal echter in de praktijk op bezwaren stuiten. Voorbeeld 1 2 3 Integriteit X Exclusiviteit X X Authenticiteit X Onweerlegbaarheid Snelheid X X Sleutelbeheer X Let erop dat de exclusiviteitswaarborging ook nog onder druk kan staan: zowel C als D kennen ook B s openbare RSA-sleutel. Zij zijn in principe in staat net zo lang boodschappen te genereren totdat de geëncrypte versie van de gegenereerde boodschap overeenstemt met de onderschepte cijfertekst. 4.1.4 Voorbeeld 4 Zender Ais geschrokken van het ontbreken van de authenticiteitswaarborgen in het voorgaande voorbeeld. Ditmaal maakt A met B de afspraak dat Avoortaan al zijn berichtenverkeer gaat encrypten met behulp van het RSA-algoritme, waarbij A gebruik gaat maken van zijn eigen geheime sleutel.
G 0130 30 Toepassing van cryptografische technieken 0013-0250 Uitgangspositie: Boodschap RSA Geheime RSA-sleutel van A Te verzenden: Cijfertekst Figuur 18. Voorbeeld 4. Een eerdere eis van A, namelijk het waarborgen van de geheimhouding van het berichtenverkeer, wordt bij deze implementatie niet langer ingevuld. Eenieder beschikt immers over de voor decryptie noodzakelijke openbare RSA-sleutel van A. Wel wordt de authenticiteit en ditmaal voor het eerst de onweerlegbaarheid afgedekt. Alleen A kan de verzonden code genereren; hij kan de verzending achteraf dan ook niet meer ontkennen. Voorbeeld 1 2 3 4 Integriteit X Exclusiviteit X Authenticiteit X X X Onweerlegbaarheid X Snelheid X X Sleutelbeheer X X 4.1.5 Voorbeeld 5 Ais ook niet bijster gelukkig met het resultaat uit de voorgaande situatie. Hij wenst wederom met B te communiceren. Ditmaal wil Aenerzijds dat alleen B kennis kan nemen van het bericht en anderzijds dat B de zekerheid krijgt dat het ontvangen bericht daadwerkelijk van Aafkomstig is. Ahanteert nu een tweetraps raket. Hij gaat het gehele bericht vercijferen met behulp van het RSA-algoritme. Hij gebruikt daarbij in een eerste vercijferronde zijn eigen geheime RSA-sleutel en in de tweede ronde van de encryptie de openbare RSA-sleutel van B. De decryptieslag vormt het spiegelbeeld. B decrypt het bericht, waarbij hij in de eerste ronde gebruik maakt van zijn eigen geheime RSA-sleutel en in de tweede ronde van A s openbare RSAsleutel. Aan een aantal beoordelingscriteria is nu voldaan: de exclusiviteit, authenticiteit, onweerlegbaarheid en sleutelbeheergemak
G 0130 31 0013-0252 Uitgangspositie: Boodschap RSA Geheime RSA-sleutel van A Cijfertekst RSA Openbare RSA-sleutel van B Te verzenden: Cijfertekst Figuur 19. Voorbeeld 5. zijn afgedekt. Alleen de integriteit en de snelheid van (twee ronden!) RSA-gebruik vormt een praktische hindernis. Voorbeeld 1 2 3 4 5 Integriteit X Exclusiviteit X X Authenticiteit X X X X Onweerlegbaarheid X X Snelheid X X Sleutelbeheer X X X 4.1.6 Voorbeeld 6 Awil een bericht naar B sturen. Op grond van een risicoanalyse schat hij de noodzaak tot encryptie van het gehele bericht laag in. Wel wenst hij B zekerheid te geven dat het bericht van hem (A) afkomstig is. Tot slot stelt Adat de werking van het cryptosysteem voldoende snel moet zijn. Een mogelijke oplossing is dat Aeen hashtotaal over het bericht berekent met behulp van one-way-des. Als DES-sleutel hanteert hij een willekeurig gegenereerde, niet vooraf met B afgesproken, DES-sleutel. Het hashtotaal encrypt Amet zijn eigen geheime RSA-sleutel. Tot slot voegt hij het geëncrypte hashtotaal toe aan het bericht, evenals de random DES-sleutel. Let erop dat deze DES-sleutel in klare tekst aan het bericht kan worden toegevoegd. Als variant kan zowel de DES-hash als de DESsleutel met de geheime RSA-sleutel van A geëncrypt worden.
G 0130 32 Toepassing van cryptografische technieken 0013-0253 Uitgangspositie: Boodschap DES Random DESsleutel Boodschap hash DESsl. RSA Geheime RSA-sleutel van A Te verzenden: Boodschap Dig ht. DESsl. Figuur 20. Voorbeeld 6. B, maar ook ieder ander (C of D), kan het vercijferde hashtotaal decrypten met behulp van A s openbare RSA-sleutel. Vervolgens kan de integriteit van het bericht worden geverifieerd door, met behulp van de toegevoegde random DES-sleutel het DES-hashtotaal opnieuw uit te rekenen en te vergelijken met het aan het bericht toegevoegde hashtotaal. Let erop dat, indien de verificatie van het hashtotaal niet lukt, de ontvanger van het bericht geen unieke foutindicatie heeft: zowel de authenticiteit als de integriteit van het bericht kan de oorzaak van het ongelijk zijn van het toegevoegde en het door de ontvanger berekende hashtotaal vormen. Doordat de DES-sleutel aan het bericht is toegevoegd, hoeft er ondanks het hybride gebruik van DES én RSA geen sleutelbeheerproblematiek te ontstaan. Voorbeeld 1 2 3 4 5 6 Integriteit X X Exclusiviteit X X Authenticiteit X X X X X Onweerlegbaarheid X X X Snelheid X X X Sleutelbeheer X X X X De hierboven weergegeven methodiek wordt in de praktijk veelvuldig toegepast. Het hier beschreven mechanisme, waarbij een
G 0130 33 DES-hashtotaal wordt geencrypt met de geheime RSA-sleutel van de zender, staat bekend als de digitale handtekening. 4.1.7 Voorbeeld 7 Ahecht in tegenstelling tot het voorgaande voorbeeld toch veel waarde aan de exclusiviteit. Bovendien stelt hij eisen aan de snelheid van het cryptosysteem. Het cryptosysteem dient dus een hoge mate van exclusiviteit en performance (snelheid) in zich te hebben. Aencrypt hiervoor het bericht met behulp van een willekeurig gegenereerde (random) DES-sleutel. Vervolgens encrypt hij deze random DES-sleutel met de openbare RSA-sleutel van B. 0013-0254 Uitgangspositie: Boodschap DES Cijfertekst RSA Openbare RSA-sleutel van B Te verzenden: Cijfertekst Random DESsleutel DESsl. DESsl. Figuur 21. Voorbeeld 7. Het is duidelijk dat uitsluitend B het bericht kan decrypten. Dit cryptosysteem, dat ook wel bekend staat als digitaal envelopperen, kent echter geen waarborgen ten behoeve van de authenticiteit en onweerlegbaarheid. Wel is aan de eisen van snelheid en sleutelbeheer voldaan. Voorbeeld 1 2 3 4 5 6 7 Integriteit X X Exclusiviteit X X X Authenticiteit X X X X X Onweerlegbaarheid X X X Snelheid X X X X Sleutelbeheer X X X X X
G 0130 34 Toepassing van cryptografische technieken 4.1.8 Voorbeeld 8 Voor de laatste twee voorbeelden geldt dat de formulering van het eindresultaat het meest eenvoudig is: Awenst dat aan alle zes genoemde beoordelingscriteria wordt voldaan. De uitwerkingen zijn daardoor het meest complex van de hier getoonde voorbeelden. Ahanteert in dit eerste voorbeeld een drietraps raket, schematisch weergegeven op de volgende pagina. Hij encrypt wederom het bericht met een random DES-sleutel. Vervolgens voegt hij deze DES-sleutel aan het bericht toe en encrypt dit eerst met zijn eigen geheime RSA-sleutel en vervolgens met de openbare RSA-sleutel van B. 0013-0255 Uitgangspositie: Boodschap DES Cijfertekst RSA Geheime RSA-sleutel van A Cijfertekst RSA Openbare RSA-sleutel van B Te verzenden: Cijfertekst Random DESsleutel DESsl. DESsl. DESsl. Figuur 22. Voorbeeld 8. Het decryptieproces dat zich bij B afspeelt, zal zich in omgekeerde volgorde afspelen. B decrypt de gecodeerde DES-sleutel derhalve eerst met behulp van zijn eigen geheime RSA-sleutel en vervolgens met de openbare RSA-sleutel van A. Tot slot decrypt hij met de DES-sleutel (die nu in klare tekst is) het bericht zelf. Het zal, na de voorgaande voorbeelden, duidelijk zijn dat nu aan bijna alle beoordelingscriteria wordt voldaan.
G 0130 35 Voorbeeld 1 2 3 4 5 6 7 8 Integriteit X X Exclusiviteit X X X X Authenticiteit X X X X X X Onweerlegbaarheid X X X X Snelheid X X X X X Sleutelbeheer X X X X X X 4.1.9 Voorbeeld 9 Uiteraard zijn er nog meer combinaties denkbaar. Het laatste voorbeeld vormt feitelijk een combinatie van de digitale handtekening (toegelicht in paragraaf 4.1.6.) en het digitaal envelopperen (toegelicht in paragraaf 4.1.7.). Zonder hier verder op in te gaan, wordt hieronder het cryptoschema getoond: Hierbij worden de volgende aspecten afgedekt: Voorbeeld 1 2 3 4 5 6 7 8 9 Integriteit X X X Exclusiviteit X X X X X Authenticiteit X X X X X X X Onweerlegbaarheid X X X X X Snelheid X X X X X X Sleutelbeheer X X X X X X X Een aanvullend voordeel van dit laatste cryptoschema kan naast het afdekken van de zes beoordelingscriteria liggen in de mogelijkheid om foutallocatie toe te passen. Dit geldt indien het DES-hashtotaal wordt aangevuld met de persoonsgegevens van de zender. Indien de decryptie van dit DES-hashtotaal naast het echte hashtotaal geen leesbare persoonsgegevens oplevert, dan is er een authenticiteitsprobleem. Levert de ontcijfering van de DES-hash wél leesbare afzendergegevens op, maar klopt de verificatie van het echte DES-hashtotaal vervolgens niet, dan kan de oorzaak daarvan alleen nog liggen in een integriteitsprobleem.
G 0130 36 Toepassing van cryptografische technieken 0013-0256 Uitgangspunt: Boodschap Stap 1: Berekening van een DES-hash m.b.t. een eerste, willekeurig gegenereerde DES-sleutel. DES 1e random DESsleutel Boodschap Stap 2: Encryptie v.d. boodschap met behulp van een tweede willekeurige DES-sleutel. De DES-sleutel wordt toegevoegd. Stap 3: Encryptie van de DES-hash met de geheime RSA-sleutel van de afzender (= digitale handtekening). DES Cijfertekst Geheime RSA-sleutel A RSA 2e random DESsleutel DEShash DEShash DESsl2 DESsl1 Cijfertekst dig. ht. DESsl2 DESsl1 Stap 4: Encryptie van de twee DES-sleutels met de publieke RSA-sleutel van de ontvanger (= digitale envelopperen). Openbare RSA-sleutel B RSA Te verzenden: Cijfertekst dig. ht. DESsleutels Figuur 23. Voorbeeld 9. 5 Sleutelbeheer In deze paragraaf wordt uitsluitend ingegaan op de technische en organisatorische aspecten van de interne inrichting van het sleutelbeheer. Zaken als een Trusted Third Party, in de vorm van een Certification Authority of in de vorm van een Notarisfunctie, zullen hier niet worden behandeld.
G 0130 37 5.1 Rollenspel sleutelbeheer 5.2 Sleutelsystemen 5.3 Levenscyclus van een sleutel 5.3.1 Aanmaak van een sleutel (of sleutelpaar) Het gebruik van cryptosystemen maakt sleutelbeheer noodzakelijk. In enkele voorbeelden van paragraaf 4 is aangeduid hoe het belang van het geheimhouden van het bericht verschuift naar het geheimhouden van de sleutel. Een kwalitatief goed ingevuld sleutelbeheer is een randvoorwaarde voor een effectief en efficiënt gebruik van een cryptosysteem. Het sleutelbeheer mag niet gezien worden als een last voor de organisatie, maar veeleer als een mogelijkheid om de beveiliging van het berichtenverkeer te verankeren in de administratieve organisatie. Door het aanbrengen van functiescheidingen tussen het sleutelbeheer en het berichtenbeheer, alsmede door het aanbrengen van functiescheidingen binnen deze twee functies, kan de organisatie waarborgen voor de beheersing en beveiliging van haar berichtenverkeer verkrijgen. Sleutelbeheer betreft een lijnfunctionaliteit. De in sommige organisaties gekozen oplossing, waarbij beveiligingsfunctionarissen (security-officers) vanwege het specialistische karakter van de werkzaamheden belast zijn met (een aspect van) het sleutelbeheer is, uit hoofde van functiescheiding, ongewenst. Bij het sleutelbeheer kan een hiërarchie in de sleutels worden aangebracht. Als voorbeeld moge een drielagenstructuur dienen met daarin op het laagste niveau werksleutels voor de vercijfering van data. Daarboven vinden we metasleutels die bijvoorbeeld dienen om de werksleutels vercijferd op te slaan (opslagsleutels) en/of te distribueren (transportsleutels). Aan de top van de hiërarchie is de hoofdsleutel (master key) te vinden die dient om de metasleutels vercijferd op te slaan, dan wel te distribueren. De hoofdsleutel zal veelal handmatig worden overgedragen. Vervolgens kunnen de metasleutels en de werksleutels vercijferd geautomatiseerd worden uitgewisseld. Als fasen van de levenscyclus van een sleutel worden onderscheiden de aanmaak, distributie, opslag, gebruik, vervanging en vernietiging van een sleutel. Het mechanisme om nieuwe sleutels te genereren dient geheim te zijn. Hierdoor wordt voorkomen dat nieuwe sleutels voorspelbaar zijn. Tevens dient het gebruik van zwakke sleutels te worden vermeden. Dit betekent niet alleen dat de in paragraaf 3.2.2. beschreven zwakke en semi-zwakke DES-sleutels niet mogen worden gebruikt, maar tevens dat er implicaties zijn voor de minimale lengte van de DES- of RSA-sleutels. Hierdoor worden derhalve ook eisen gesteld aan de grootte van de bij de berekening van een RSA-sleutelpaar gebruikte priemgetallen. De aanmaak van sleutels kan op drie manieren gebeuren: handmatig, door invoering van een bitstring of een wachtwoord(-zin). Het verdient bij handmatige sleutelaanmaak aanbeveling twee functionarissen een sleutel te laten genereren
G 0130 38 Toepassing van cryptografische technieken en deze twee sleutels te XORen tot de te gebruiken sleutel; machinaal via een random-generator. Let erop dat deze nooit helemaal willekeurig werken; het is beter te spreken van pseudo-random-generators; machinaal door een sleutel volgens een bepaald algoritme af te leiden uit een voorgaande sleutel. Een dergelijke sleutel noemt men ook wel een transformatiesleutel. 5.3.2 Distributie van sleutels 5.3.3 Opslag van sleutels Tijdens het maken van de afspraken voor de berichtuitwisseling, vastgelegd in een Interchange Agreement, zullen de sleutelgevers zich dienen te vergewissen van de identiteit van de ander. Bij zowel de initiële als iedere volgende sleuteldistributie dient de zekerheid te worden verkregen dat de sleutels worden ontvangen van degene (en afgegeven aan degene) met wie men de Interchange Agreement heeft afgesloten. Sleuteldistributie zal zeker bij de initiële distributie via een ander medium worden verzorgd. Zo kan de eerste keer dat sleutels worden uitgewisseld een hexadecimale representatie van de sleutel op papier worden afgedrukt en fysiek worden verzonden. Latere vervolgsleutels kunnen via hetzelfde medium worden verzonden als de berichtuitwisseling plaatsvindt. Men kan de te verzenden werksleutels dan bijvoorbeeld vercijferen met een (hogere) transportsleutel. Een andere wijze om op een beveiligde manier (symmetrische) sleutels uit te wisselen wordt hieronder in een vereenvoudigd voorbeeld weergegeven: Aen B wensen sleutels uit te wisselen. Zij hebben daartoe al eerder op een beveiligde wijze een initieel grondtal g uitgewisseld. Aen B genereren nu een deelsleutel a, respectievelijk b. Voor de daadwerkelijke sleuteluitwisseling kunnen Aen B zonodig gebruikmaken van een minder beveiligd netwerk. Azendt namelijk B het getal g a toe en B doet het getal g b naar Atoekomen. Aberekent vervolgens (g b ) a en B berekent (g a ) b. Omdat zowel (g b ) a als (g a ) b identiek zijn aan g ab, beschikken Aen B nu beide over een gemeenschappelijke nieuwe sleutel (g ab ). De opslag van sleutels dient zodanig te zijn dat uitsluitend geautoriseerde personen toegang hebben tot deze sleutels. Naast allerlei vormen van fysieke en logische toegangsbeveiliging worden de werksleutels veelal geëncrypt opgeslagen (bijvoorbeeld met triple-des), of opgeslagen in een Hardware Security Module (HSM). Een HSM kan worden voorgesteld als een harde schijf vervat in een kluis. Op de HSM zijn enkele fysieke sloten aanwezig; deze dienen bijvoorbeeld om een toetsenbord aan te kunnen sluiten. Een HSM zal zijn geheugen automatisch wissen bij een fysieke inbraakpoging. Let erop dat ook openbare RSA-sleutels beveiligd dienen te worden opgeslagen ter voorkoming van de mogelijkheid dat iemand ze verwisseld door het openbare deel van een door hemzelf gegenereerd RSA-sleutelpaar. Alsdan kan deze persoon zich voordoen als degene wiens openbare RSA-sleutel hij heeft vervan-
G 0130 39 gen. Dit risico wordt aangeduid met de term masquerading of een man-in-the-middle attack. 5.3.4 Wisseling van sleutels 5.3.5 Vernietiging van sleutels 5.3.6 Het gebruik van chipkaarten bij sleutelbeheer Periodiek zal de gebruikte sleutel moeten worden gewisseld. De sleutelwisseling dient op basis van een risicoanalyse te gebeuren, waarbij als relevante factoren zijn te benoemen: de gevoeligheid van de te beschermen data, de geldigheidsduur van de te beschermen data en de sterkte van het gebruikte cryptosysteem. In het algemeen geldt dat de veel gebruikte werksleutels vaker gewisseld moeten worden dan de hogere metasleutels of de hoofdsleutels. Na verloop van hun bruikbaarheidsduur dienen de sleutels te worden vernietigd. Dit dient in principe door twee functionarissen te gebeuren onder opmaking van een protocol van vernietiging. In de praktijk ziet men vaak dat sleutels (... voor het geval dat...) toch bewaard blijven, soms zonder voldoende beveiligingsmaatregelen. Een praktische manier om met cryptosleutels om te gaan, ligt in het gebruik van chipkaarten. Hierbij wordt een (lange) cryptosleutel in de chip op de chipkaart geladen. Bij het gebruik dient de bezitter een wachtwoord al dan niet in de vorm van een pincode in te toetsen teneinde de cryptosleutel te ontsluiten. Het gebruik van chipkaarten bij sleutelbeheer biedt een aantal voordelen, zoals bijvoorbeeld: voor de authenticiteitswaarborging dient men te beschikken over een bezitskenmerk (de chipkaart) én een kenniskenmerk (het wachtwoord of de pincode). Dit wordt veiliger geacht. Overigens dient men zich wel bewust te zijn van het feit dat onbedoeld gedrag bij diefstal van de chipkaart mogelijk is: het wachtwoord voor de ontsluiting van de cryptosleutel zal in het algemeen eenvoudiger te achterhalen zijn dan de originele cryptosleutel zelf; door de fysieke implementatie van de cryptosleutel in de chipkaart zijn processen zoals sleuteldistributie, wisseling en vernietiging van sleutels beter te beheersen. Men kan immers nu een fysieke voorraad opnemen en het onbevoegd kopiëren van een sleutel is veel lastiger. Op hoofdlijnen zijn er twee soorten chipkaarten te onderkennen: geheugenkaarten: dit zijn relatief eenvoudige (lees: goedkope) chipkaarten. De chip bevat alleen een stuk geheugen dat door een ander apparaat (de server) kan worden uitgelezen. Er zijn weinig technologische ontwikkelingen meer op het gebied van geheugenkaarten; processorkaarten: in tegenstelling tot geheugenkaarten bevatten processorkaarten wel een stuk eigen intelligentie.
G 0130 40 Toepassing van cryptografische technieken Een processorkaart biedt in vergelijking met een geheugenkaart meer waarborgen voor de beveiliging van de op de kaart opgeslagen gegevens. Op het gebied van processorkaarten worden regelmatig technologische ontwikkelingen gemeld. Door chipkaartontwikkelaars wordt nogal eens de aandacht gevestigd op de prestaties van hun product. Men schermt dan met de korte berekeningstijd die de chip op de kaart nodig heeft voor een cryptoberekening. Alhoewel een dergelijke benchmark wellicht een aardig middel is om chipkaarten onderling te vergelijken, is het niet zinvol de cryptoberekening in de chip van de chipkaart (de cliënt) uit te voeren. Het is efficiënter de chip alleen te gebruiken voor de opslag van de cryptosleutel en de grotere rekencapaciteit van de server te gebruiken voor de cryptoberekening. Een nieuwe ontwikkeling op het gebied van chip- en magneetkaarten is het gebruiken van biometrische gegevens. Daarbij worden kenmerken van bijvoorbeeld een pasfoto van de houder en/of zijn vingerafdruk door middel van een hashberekening vertaald naar een hashtotaal. Bij het verifiëren van de authenticiteit van de houder wordt een nieuwe foto en/of vingerafdruk genomen en wordt er een nieuw hashtotaal berekend. Dit laatste wordt dan vergeleken met het hashtotaal op de kaart. 5.4 Archivering van berichten Een bijzonder punt van aandacht betreft de archivering van elektronische berichten. In het algemeen is het noodzakelijk de binnengekomen (en uitgaande) elektronische berichten te bewaren, bijvoorbeeld ingeval ze als brondocument voor de administratie dienst doen. Relevante wettelijke bewaarplichten worden onder meer genoemd in het Burgerlijk Wetboek, de Algemene Wet inzake Rijksbelastingen en voor overheidsorganen in de Comptabiliteitswet, de Archiefwet en de Coördinatiewet Sociale Verzekeringen. Voor de archivering zijn in het kader van dit hoofdstuk twee hoofdvormen te onderscheiden: een juridisch archief: daaronder wordt verstaan een bestand waarin de elektronische berichten worden bewaard in de vorm waarin ze zijn verzonden. Dit betekent dat in het juridische archief vercijferde (delen van) berichten aanwezig kunnen zijn, alsmede enveloppegegevens, zoals time-stamps. Voor de ontsluiting van een juridisch archief heeft men dus ook een bestand nodig waarin de sleutelhistorie van alle partners waarmee wordt gecommuniceerd, bewaard blijft, alsmede een bestand met de historie van de berichtenstructuren. Met behulp van een juridisch archief kan achteraf de geldigheid van ontvangen en/of verzonden berichten worden aangetoond; een notarisarchief: daaronder wordt verstaan een bestand waarin uitsluitend de ontcijferde berichtinhouden liggen op-
G 0130 41 geslagen. In deze vorm behoeft er dus geen sleutelhistorie en dergelijke te worden bewaard. De geldigheid van de opgeslagen berichten wordt in deze archiveringsvorm verzekerd door een sluitend stelsel van administratief-organisatorische maatregelen, die voldoende waarborgen moeten bieden voor de volledigheid en juistheid van de opgeslagen berichten. 6 Aandachtspunten voor de IT-auditor Voordat er mede aan de hand van enkele in de praktijk opgedane ervaringen een aantal aandachtspunten voor de beoordeling van het gebruik van cryptografische technieken wordt weergegeven, wordt eerst ingegaan op de rol van de IT-auditor bij de keuze van een cryptosysteem. 6.1 De rol van de IT-auditor bij de keuze van een cryptosysteem 6.2 Aandachtspunten voor het werkprogramma van de IT-auditor Onder IT-auditors leeft wel de opvatting dat zij zich niet bezig moeten houden met de keuze van het te gebruiken cryptosysteem. De enige taak voor de IT-auditor zou een beoordeling zijn of het cryptosysteem gecertificeerd is of gecertificeerd kan worden door een onafhankelijk onderzoeks- of keuringsinstituut. Alhoewel deze zienswijze niet onbegrijpelijk is, kan ze om meerdere reden niet worden onderschreven. Allereerst is certificering van een cryptosysteem veelal een (te) kostbaar en tijdrovend proces. Ter illustratie: veel onderzoekers hebben wereldwijd gedurende meer dan twintig jaar gezocht naar een achterdeur in DES, maar deze niet gevonden. De bedoelde zwakheid in DES is dus niet achterhaald, maar hoeveel inspanning heeft het reduceren van deze onzekerheid gekost? Voor een individueel bedrijf zal een dergelijk onderzoek niet altijd haalbaar blijken. Daarnaast is het uitsluitend uitvoeren van een beoordeling of een cryptosysteem gecertificeerd is een te gemakkelijke taakopvatting voor de IT-auditor. Deze beoordeling ontslaat de IT-auditor niet van de verantwoordelijkheid een eigen beoordeling uit te voeren naar de vraag of er wel een voldoende niveau van beveiliging wordt bereikt. De IT-auditor wordt tenslotte verondersteld zich zelfstandig hierover een mening te kunnen vormen. Hij kan daarbij altijd (externe) expertise inroepen, maar dit is iets anders dan het uitsluitend uitvoeren van een beoordeling of er al dan niet extern gecertificeerd is. Tot slot bestaat er altijd het niet denkbeeldige gevaar dat de certificering ofwel niet terecht is verleend, ofwel door de tijd wordt ingehaald. In beide gevallen bedient de IT-auditor zich van een stuk schijnzekerheid. De aspecten die de IT-auditor zal meenemen in de beoordeling van de toepassing van cryptografische technieken zijn de volgende. De IT-auditor zal uiteraard eerst een risicoanalyse uitvoeren, niet zozeer uitsluitend op het cryptosysteem zelf, maar op het
G 0130 42 Toepassing van cryptografische technieken gehele proces waarbinnen het cryptosysteem wordt gebruikt. Op deze wijze wordt niet alleen een onevenwichtige balans in de te nemen beveiligingsmaatregelen onderling voorkomen, maar wordt ook een toereikende kosten/baten-verhouding gerealiseerd. Het heeft bijvoorbeeld over het algemeen weinig zin interne E-mail met triple-des af te schermen. Bij de beoordeling van de keus van het crypto-algoritme zelf, dient te worden gewaakt voor bedrijfseigen oplossingen (proprietary systems). De in de literatuur beschreven cryptoalgoritmen bieden niet alleen het voordeel terdege te zijn beoordeeld op de gehanteerde uitgangspunten en opzet, maar ook zullen (potentiële) zwaktes in de literatuur worden vermeld voordat ze tot daadwerkelijke schade kunnen leiden. Zeker indien de communicatie dient plaats te vinden met partijen buiten de eigen organisatie, kan bij de toepassing van cryptografische technieken het best gebruik worden gemaakt van algemeen geaccepteerde (open) standaarden en algoritmen die hun betrouwbaarheid in de praktijk hebben bewezen. Bij de communicatie met slechts weinig partijen heeft men vanuit het oogpunt van een eenvoudig sleutelbeheer in principe de vrije keus tussen een symmetrisch of een asymmetrisch cryptosysteem. Indien er met vele anderen gecommuniceerd dient te worden, verdient vanuit ditzelfde oogpunt een asymmetrisch cryptosysteem de voorkeur. De toepassing van het crypto-algoritme in het cryptoschema vormt een volgende schakel in het beoordelingsproces. In paragraaf 4 wordt een aantal cryptoschema s weergegeven, waarbij niet steeds alle relevante beoordelingscriteria, zoals bijvoorbeeld de integriteit of de exclusiviteit van de te beschermen gegevens, worden afgedekt. Uiteraard zal de IT-auditor zich moeten vergewissen van de deugdelijkheid van de gehanteerde sleutellengtes, de lengtes van de hashtotalen enzovoorts. Ook deze kunnen in de loop der tijd niet langer toereikend blijken. De IT-auditor dient ook te letten op onjuiste combinaties in het gebruik van hybride cryptosystemen. Het gebruik van een digitale handtekening, waarbij een 32-bit hashwaarde wordt getekend met een RSAsleutel van 4096 bits, is geen schoolvoorbeeld van een sterk cryptosysteem. Daarnaast dient het eventuele gebruik van zwakke sleutels te worden voorkomen. Dit geldt bijvoorbeeld voor de in paragraaf 3.2.2. beschreven zwakke en semi-zwakke DES-sleutels. Alhoewel er in dit hoofdstuk geen aandacht is besteed aan compressietechnieken, zijn deze toch van belang bij praktische toepassingen van cryptografie. Het toepassen van compressietechnieken, vóórdat de cryptoroutines worden toegepast, werkt niet alleen efficiënter (sneller), maar ook effectiever doordat de veiligheid van het geheel aanzienlijk wordt
G 0130 43 verhoogd. Het verdient derhalve aanbeveling in de praktijk steeds compressietechnieken te hanteren bij cryptografische toepassingen. De IT-auditor dient zich ervan te vergewissen dat het gebruik van de cryptotechnieken zo volledig mogelijk in de (administratieve) organisatie wordt geïmplementeerd. Er dienen voldoende functiescheidingen te worden aangebracht tussen bijvoorbeeld het genereren, gebruiken en opslaan van sleutels en het maken, autoriseren van de verzending, verzending en het bewaren van berichten. In paragraaf 5 is nader aandacht besteed aan een aantal minimale functiescheidingen. De IT-auditor kan erop toezien dat er een audit-trail en zo nodig een audit data base wordt ingericht. Er dient altijd een relatie te kunnen worden gelegd tussen de in het archief bewaarde elektronische bronberichten en de totaalcijfers waarover de organisatie verantwoording aflegt. De IT-auditor heeft verder een rol in de beoordeling van de beheersorganisatie van het cryptosysteem (met de bijbehorende procedures). Dit kan door deze beoordeling zelfstandig uit te voeren of door review van de uitkomsten van de interne controlefunctie die toeziet op het adequaat blijven functioneren van de beheersorganisatie. Tot slot kan de IT-auditor erop toezien dat de bewaking van de toereikendheid van het gehanteerde algoritme, de benodigde sleutellengtes, de inpassing van het algoritme in het cryptoschema en dergelijke wordt belegd bij een (reeds bestaand) CERT-team (Computer Emergency Response Team). 7 Aanbevolen literatuur en software Degenen die na lezing van dit hoofdstuk geprikkeld zijn om meer te weten te komen omtrent cryptografie worden verwezen naar het meer dan uitstekende boek Basic Methods of Cryptography van Jan C. A. van der Lubbe (Cambridge University, ISBN 0521555590). Een zeer compleet, maar niet geheel foutloos naslagwerk betreft het in de literatuurlijst opgenomen boek van Bruce Schneier: Applied Cryptography (2nd edition). Voor praktisch gebruik van cryptosoftware wordt verwezen naar het (onder meer op Internet verkrijgbare) PGP (Pretty Good Privacy-)pakket. Dit voor particulieren gratis te gebruiken softwarepakket is voorzien van een goede handleiding. Het maakt onder meer gebruik van MD5, International Data Encryption Algorithm (IDEA, niet te verwarren met de ANSI-variant van DES, DEA) en RSA.
G 0130 44 Toepassing van cryptografische technieken 8 Literatuur Applied Cryptography, 2nd edition, B. Schneier, John Wiley & Sons, 1996 Basic Methods of Cryptography, Jan C. A. van der Lubbe, Cambridge University, 1998 Basismethoden Cryptografie, Jan C. A. van der Lubbe, Delftse Uitgevers Maatschappij BV, 1994 Computers and Security, diverse nummers/artikelen, Elsevier Advances Technology Controle van de informatieverwerking, K. IJ. Mollema, Samsom Uitgeverij, 1989 Computernetwerken en datacommunicatie, R. Matthijssen, J. Truijens en H. Doorenspleet, Academic Service, 1998 Datacommunicatie en Netwerktechnieken, P. C. den Heijer en H.G. Kroon, Kluwer Technische boeken BV Dr. Dobbs Journal, diverse nummers en artikelen (o.a. januari 1997, oktober 1997 en december 1998) FIPS PUB 46-1 National Bureau of Standards, FIPS PUB 46-1, Data Encryption Standard, januari 1988 FIPS PUB 81 National Bureau of Standards, FIP PUB 81: DES Modes of Operation, december 1980 FIPS PUB 180 National Institute of Standards and Technology, FIPS PUB 180 Secure Hash Standards (SHS), 11 mei 1993 Firewall-strategieën Internet en Intranet, E. Amoroso en R. Sharp, Academic Service, 1996 Handboek Accountancy 84, onderdeel III.361, Gegevensbeveiliging met behulpvan encryptie, P. Harmzen, Samsom Uitgeverij BV Informatiebeveiliging, P. Overbeek en W. Sipman, Tutein Nolthenius, 1992 IIA-today, Auditing news from The Institute of Internal Auditors, november/december 1998 Journal of cryptology diverse nummers en artikelen, The Journal of the International Association for Cryptologic Research, Springer Juridisch rapport project Bewaren en bewijzen, Juridische expertgroep van de Stichting EDIFORUM en de projectgroep Legalisatie Opslagmedia van het Nederlands Normalisatie Instituut, 1998 Lexicon Informatica, diverse artikelen, Samsom Bedrijfsinformatie NIvRA geschrift 64, Beheersing en Controle van Electronic Data Interchange, meerdere auteurs, Kluwer Bedrijfswetenschappen 1995 RFC 1319 B. Kaliski RFC 1319, The MD2 Message-Digest Algorithm, April 1992
G 0130 45 RFC 1321 R. Rivest RFC 1321, The MD5 Message-Digest Algorithm, April 1992 RFC 1421: Privacy Enhancement for Internet Electronic Mail Part I, February 1993 RFC 1422: Privacy Enhancement for Internet Electronic Mail Part II, February 1993 RFC 1423: Privacy Enhancement for Internet Electronic Mail Part III, February 1993 RFC 1424: Privacy Enhancement for Internet Electronic Mail Part IV, February 1993 RSAData Security, Inc., Public-Key Cryptography Standards (PKCS), RSA-Laboratories, Revised, November 1993 PKCS #1: RSA Encryption Standard, Version 1.5 PKCS #3: Diffie-Hellman Key-Agreement Standard, Version 1.4 PKCS #5: Password-Based Encryption Standard, Version 1.5 PKCS #6: Extended-Certificate Syntax Standard, Version 1.5 PKCS #7: Cryptographic Message Syntax Standard, Version 1.5 PKCS #8: Private-Key Information Syntax Standard Version 1.2 PKCS #9: Selected Attribute Types, Version 1.1 PKCS #10: Certification Request Syntax Standard, Version 1.0 PKCS #11: Cryptographic Token Interface Standard, Version 1.0 Security for Computer Networks Second edition, D.W. Davies and W.L. Price, John Wiley & Sons, 1989 De Volkskrant, 4 februari 1999 Bron: Handboek EDP-auditing.