Ooit bezig geweest met zaken die niet illegaal zouden moeten zijn? Of gewoon erg gesteld op privacy? Dan ben je misschien onprettig verrast door de rest van dit boekje. Immers, voor je communicatie met anderen maak je gebruik van kanalen waarop relatief eenvoudig is in te breken. Aangezien het moeilijk is te voorkomen dat je berichten onderschept worden, ligt het natuurlijk voor de hand om te proberen de uitwisseling onbegrijpelijk te maken. Koningen, spionnen en andere boeven zijn al eeuwen vertrouwd met die gedachte. Tegenwoordig hebben ook burgers belangstelling voor deze zaken, overigens tot ergernis van bovengenoemde categorieën. Toch zullen we een aantal mogelijkheden om geschreven tekst en spraak te versluieren beschrijven. Ook gaan we in op de betrouwbaarheid van de genoemde methoden. Alvorens op de moderne gedigitaliseerde systemen in te gaan, geven we eerst een paar klassieke voorbeelden. Veel van de achterliggende principes vinden we namelijk terug in de versluier-systemen die tegenwoordig gebruikt worden. Oudere geheimschriften
Het onleesbaar maken van geschreven berichten is, zoals gezegd, eeuwen oud. Julius Caesar vertrouwde zijn boodschappers al niet als hij berichten naar zijn vertrouwelingen stuurde. Daarom veranderde hij in de boodschap elke ‘a’ met een ‘d’, elke ‘b’ met een ‘e’ enzovoort. Kwam hij buiten het alfabet dan werd aan het begin van het alfabet verder geteld. Alleen diegene die de regel ‘verschuif 3 plaatsen naar rechts in het alfabet’ kende, mocht in staat zijn de boodschap te lezen.
Caesar gebruikte vermoedelijk altijd een verschuif-regel, maar wisselde misschien het aantal plaatsen waarover geschoven moest worden. De regel die hij gebruikte zou nu ‘algoritme’ genoemd worden en het aantal plaatsen waarover geschoven moest worden de ‘sleutel’. Evenzo zou nu de orginele boodschap ‘klare tekst’ heten en de bewerkte boodschap ‘versleutelde’ tekst. ‘Coderen’ of ‘versleutelen’ is het omzetten van een boodschap in versleutelde tekst, het omgekeerde proces heet ‘decoderen’ of ontsleutelen’. Versluier-methodes heten crypto-systemen. Er bestaan cryptosystemen voor tekst maar ook voor spraak. Ze worden bedacht door cryptografen. Cryptoanalisten zijn op hun beurt diegenen die zich toeleggen op het breken van systemen.
Caesar’s methode is een voorbeeld van een substitutie-systeem: niet de volgorde van de letters in zijn bericht werden veranderd, maar de letters zelf. In andere methoden werd gebruik gemaakt van permutaties, d.w.z. niet de letters maar hun volgorde werd veranderd.
Aan het eind van de 19e eeuw werd de tabellen- of schijven-methode bedacht. Bij dit idee werd al spoedig gebruik gemaakt van een speciale codeer- en decodeermachine. De letters van het alfabet werden, door elkaar gegooid, op de rand van een ronde schijf gezet. Daarna werden nog een aantal van zulke schijven gemaakt, waarbij op elke schijf het alfabet op een andere manier verhaspeld was. Zo ontstonden verschillende schijven met elk een andere tabel.
plaatje ‘enigma’
De schijven werden in een afgesproken volgorde, de begin-stand, naast elkaar op een as gezet waarover ze gedraaid konden worden. De boodschap werd gemaakt door de verschillende schijven te draaien. De versleutelde tekst werd gemaakt door elke schijf een vast aantal keer in een afgesproken richting te draaien (sleutel). Op de plaats waar eerst de boodschap stond stond nu het gecodeerde bericht. Bij langere berichten moest dit proces natuurlijk herhaald worden. Daartoe werd de klare tekst opgesplitst in blokken ter grootte van het aantal schijven op de machine. Per blok letters werd dan steeds dezelfde verdraaiing uitgevoerd. Zoiets zou nu ‘blokversleuteling’ heten. Het decoderen ging volgens de omgekeerde procedure, zender en ontvanger moesten dus over dezelfde machine beschikken.
Tijdens de tweede wereld-oorlog gebruikten de Duitsers een op dit idee gebaseerd apparaat met vijf schijven, de ‘Enigma’. De sleutels veranderden ze regelmatig. Het was voor de geallieerden zeer lastig de onderschepte communicatie te ontsleutelen, totdat ze een Enigma-apparaat en de (mogelijke) begin-standen bemachtigden. Met behulp van een computer, op dat moment in het diepste geheim ontwikkeld om vijandelijke codes te kunnen kraken, konden alle mogelijke sleutels in relatief weinig tijd worden uitgeprobeerd. Na de oorlog verkochten de amerikanen Enigma-machines aan ‘Derde Wereld’-landen, maar ‘vergaten’ erbij te vertellen dat het systeem gekraakt was.
Bij de Enigma was het bezit van het apparaat, en daarmee de kennis over het algoritme, van groot belang om te kunnen decoderen. Het geheimhouden van een algoritme is tegenwoordig van veel minder belang. Wiskundigen hebben aangetoond dat crypto-systemen zodanig te maken zijn, dat het kennen van de algoritmes of het bezitten van het cryptoapparaat, niet tot een succesvol breken van het systeem hoeft te leiden.
Een volgende versleutel-methode van vóór de computer stamt uit Oost-Europese koker. In deze methode worden letters uit klare tekst door cijfers vervangen, waarna met die cijfers een rekenkundige bewerking uitgevoerd wordt. Wellicht is de methode nog in gebruik bij spionnen die hun computer kwijt zijn.
De spion en zijn baas hebben een identiek boekje ter grootte van een luciferdoosje. Op de kaft van dat boekje staan alle letters van het alfabet, en nog wat leestekens, met daarachter een getal waarmee ze vervangen moesten worden. In de rest van het boekje, te zien als één lange sleutel, staan verder alleen maar rijtjes van steeds 5 cijfers.
plaatje ‘spionnen-boekje’
Als de spion de boodschap: “with love” codeert zet hij eerst met behulp van de kaft van het boekje “with love” om in cijfers bijvoorbeeld w=8, i=7, t=22, h=16 enzovoort. Het resultaat groepeert hij in rijtjes van 5, het laatste rijtje vult hij zo nodig aan met nullen:
w i t h l o v e
8 7 22 16 3 7 19 9
Dit levert dus op: 87221 61327 19900. Vervolgens kiest de spion uit het boekje één bladzijde. De eerste regel begint met bijvoorbeeld: 95342 53308 34160. Die cijfers zet hij onder zijn ‘boodschap-in-cijfers’:
VERSLEUTELEN ONTSLEUTELEN
87221 61327 19900 “with love” 72563 14625 43060 code
95342 53308 34160 sleutel 95342 53308 34160 sleutel
—————– + —————— –
72563 14625 43060 code 87221 61327 19900 “with love”
De twee rijtjes telt hij op, zonder te ‘onthouden’, dus zodanig dat 9+8=7 en niet 17, 5+7=2 en niet 12 enzovoort. Als hij zeker is dat er geen tel-fouten meer zijn stuurt hij het resultaat naar zijn baas, die zoals gezegd precies hetzelfde boekje heeft. De gebruikte sleutel-pagina wordt na gebruik vernietigd.
Het ontsleutelen gaat volgens de omgekeerde procedure. Nu in plaats van ‘optellen’, de sleutel dus ‘aftrekken’ van het versleutelde bericht. Als de uitkomst negatief zou worden, zoals bij 7-9, doet de baas alsof er 17-9 staat. Zo krijgt hij “with love” in cijfers wat hij met behulp van ‘de kaft’ weer kan omzetten in de oorspronkelijke boodschap.(1)In werkelijkheid was de operatie nog wat tijdrovender: voor de zekerheid werd de gecodeerde boodschap met onzichtbare inkt op de brief geschreven en kwam daarover heen een leesbare bla-bla tekst.
Merk op dat bij deze methode per letter en niet per blok letters, zoals bij de Enigma, een bepaalde bewerking wordt uitgevoerd. Zoiets zou nu stroom-versleuteling worden genoemd. Ook is de versleutelde tekst langer dan de klare tekst terwijl die bij de Enigma precies dezelfde grootte hadden.
Dit systeem zou misschien niet zo moeilijk te kraken zijn ware het niet dat de spion een bepaalde bladzijde, de sleutel dus, maar één keer gebruikt. Methoden waarbij de sleutel na gebruik opgegeten, verbrand of anderszins vernietigd wordt, zijn van het type ‘One Time Code Pad’. De veiligheid van het syteem wordt niet alleen bepaald door het eenmalig gebruik van de sleutel. Van essentieel belang is ook de onvoorspelbaarheid van die sleutel. Die wordt alleen bereikt als op basis van een paar cijfers uit de sleutel, de andere cijfers van die sleutel niet te voorspellen zijn. Als dat zo is heet een sleutel ‘random’ (volkomen willekeurig). In de praktijk is het bereiken van volledig ‘random’ een zeer ingewikkelde zaak.
Digitale versluiering
Met de komst van de computer zijn de mogelijkheden van code-krakers gegroeid, maar die van versleutelaars zijn vrijwel onbegrensd geworden. Niet alleen de rekencapaciteit van de computer, ook het feit dat deze een tekst opslaat in enen en nullen, bits genaamd, vergrootte de mogelijkheden (bijvoorbeeld ‘A’=1000001). Codebrekers kunnen in hun aanvalstechnieken nu moeilijker gebruik maken van de kenmerken van een taal. Ook nieuwe wiskundige inzichten maakten dat steeds complexere algoritmes in computer-programma’s (software) of electronische schakelingen (hardware / chips)konden worden ‘ingebakken’. Substituties, permutaties, tabellen en rekenkundige bewerkingen, komen in verschillende combinaties in de te onderscheiden versleutel-systemen van nu voor.
De moderne gedigitaliseerde cryptosytemen zijn op verschillende manieren in te delen. Je hebt blok- en stroomversleutelingen, waarmee nu de bewerking per ‘blok bits’ of ‘bitsgewijs’ wordt bedoeld. Methoden die één originele bit versleutelen in één ander bit en methoden waarbij de klare tekst en de versleutelde tekst niet even lang zijn. In sommige cryptosystemen wordt de sleutel op de één of andere manier afgeleid uit de klare tekst, in andere wordt ze onafhankelijk daarvan geproduceerd. Er zijn systemen waarbij de sleutel eenmalig gebruikt wordt en systemen die een identieke sleutel vaker gebruiken.
Verder kan je een onderscheid maken tussen genoemde conventionele versleutel-methodes, met alleen maar geheime sleutels, en een geheel ander concept dat de wereld vanaf halverwege de jaren ’70 aan het veroveren is, namelijk ‘Public Key'(Openbare Sleutel), maar daarover later meer. Om het nog ingewikkelder te maken: in de praktijk worden meestal allerlei combinaties van crypto-principes gebruikt.
Naast de indelingen met betrekking tot de techniek waarop de cryptosystemen gebaseerd zijn, kun je ze beoordelen op betrouwbaarheid, het gemak in het gebruik, de computertijd die ze in beslag nemen, de prijs etc. Zonder de pretentie te hebben volledig te zijn, gaan we nu in op de kwaliteit van een aantal eenvoudig aan te schaffen systemen. Enige relativering is echter reeds op voorhand op zijn plaats: wat vandaag veilig lijkt, hoeft dat morgen niet meer te zijn.
“One Way Code Pad” stroomversleuteling
Tot de onkraakbaar geachte conventionele crypto-systemen horen de stroomversleutelings-systemen met een sleutel die voldoende ‘random’ is, minstens net zo lang is als de originele boodschap, en éénmalig gebruikt wordt.
Laten we nog even kijken naar die willekeurige ofwel ‘random’ sleutels. Daarbij gaan we ervan uit dat cryptoanalisten kunnen beschikken over de recepten (in hardware of software) waarmee de sleutel gemaakt wordt. Desondanks moet het onmogelijk zijn de sleutel te voorspellen, zelfs niet als een deel van de sleutel al op de een of andere manier bekend geworden is. De vraag is dus hoe je een ‘random’-sleutel maakt. Ofwel: waar vind je de toevallige faktoren die maken dat de uitkomst van een bekend recept toch onvoorspelbaar is?
De ruis op je FM-radio, de straling van de zon en de uitkomst van een loterij zijn bijvoorbeeld willekeurig omdat er geen formule op toepasbaar is. Ook bepaalde electronische componenten, zoals diode en transistor, kunnen ‘random’ ruis produceren. Deze componenten worden om die reden gebruikt in sommige hardware sleutel-generatoren. Een andere methode om hardware-matig sleutels te maken is het gebruik van zogenaamde schuifregisters, deze worden vooral in spraak-versluierings-apparaten gebruikt. Echt ‘random’ bereik je hiermee echter nooit.
In software recepten voor het maken van sleutels kan het beste de menselijke onvoorspelbaarheid gebruikt worden als willekeurige bron. Daarbij kun je bijvoorbeeld denken aan het moment dat iemand achter de computer een bepaalde handeling verricht (computerklok), aan de toetsen op het toetsenbord die iemand kiest, aan de tijd tussen verschillende toetsaanslagen e.d. Hoe meer onvoorspelbare elementen hoe beter. Ook hiermee blijft het echter moeilijk volledig ‘random’ te bereiken. Vertrouw echter zeker niet op programma’s die voor het maken van een sleutel alleen gebruik maken van faktoren die welliswaar heel ondoorzichtig zijn of ingewikkeld lijken, maar in feite volgens een aantal betrekkelijk simpele regels verlopen, zoals de tijd die de computer erover doet een bepaalde berekening uit te voeren of een bestand op schijf te zetten.
De onvoorspelbaarheid van de sleutel is in ieder geval voor de veiligheid van deze methode van zo’n groot belang, dat om de versleutelde tekst te verkrijgen, volstaan wordt met een zogenaamde “XOR” bit-operatie (modulo 2 optelling), die ook bij veel andere crypto-methoden gebruikt wordt. Het principe bij XOR is dat een bit uit de boodschap wordt vergeleken met het overeenkomstige bit uit de sleutel. Zijn die bits verschillend dan komt in de versleutelde tekst op dezelfde plaats een ‘1’ te staan. Zijn ze gelijk dan komt in het gecodeerde bericht een ‘0’. Met de zelfde bit-operatie krijg je ook de oorspronkelijke boodschap weer terug. Bijvoorbeeld:
VERSLEUTELEN (XOR) ONTSLEUTELEN (XOR)
1101011 klare tekst 1001010 versleutelde tekst
0100001 sleutel 0100001 sleutel
————————– ————————–
1001010 versleutelde tekst 1101011 klare tekst
Als de sleutel nu maar voldoende ‘random’ is, is deze simpele operatie inderdaad geschikt om te versleutelen (2). Het systeem is veilig omdat code-krakers niet meer kunnen doen dan alle mogelijke sleutels uitproberen. Je kunt je voorstellen dat als het aantal mogelijke sleutels bijna oneindig groot is, dat zelfs voor de krachtige computers van nu, eindeloos rekenen betekent.
Veilige systemen dus, maar met een hoop vervelende nadelen. Het versleutelen en versturen van grote bestanden op schijf zal relatief veel tijd in beslag nemen. Dat is natuurlijk erg vervelend wanneer je dat vaak moet doen. Verder wordt voor communicatie per persoon steeds een andere sleutel gebruikt, terwijl je misschien met veel mensen communiceert. Je hebt dan een stapeltje sleutel-diskettes, die je uit handen van onbevoegden moet zien te houden. De sleutel moet daarbij eerst op een veilige manier zijn uitgewisseld. Voor regeringen en financieel krachtige organisaties is dat misschien niet zo’n probleem, maar voor ons soort mensen wel. Wij beschikken namelijk (nog) niet over de middelen om een koerier te betalen die, met een diplomatenkoffer aan de pols geketend, de wereld rond reist. Nog vervelender is het wanneer iets mis is gegaan in de communicatie. Al is maar 1 bitje verloren gegaan, dan moet de ‘klare tekst’ opnieuw gecodeerd en verstuurd worden.
Kortom erg praktisch in het gebruik zijn zulke systemen niet altijd. Maar in bepaalde situaties neem je die ongemakken misschien voor lief. De diplomatieke sectie van de voormalige Salvadoreense verzetsbeweging FMLN maakte bijvoorbeeld bij de onderhandelingen met de regering gebruik van zo’n systeem, evenals verschillende andere Latijns-Amerikaanse guerrilla-groepen. Een voorbeeld van een ‘one time code path’-systeem.
Blokversleuteling
In de categorie dubieus valt wat ons betreft de standaard DES. DES staat voor ‘Data Encryption Standard’, het wordt geleverd als chip en werd in de jaren ’70 door IBM ontwikkeld. Volgens geruchten dwong de ‘National Security Agency’ (NSA) het bedrijf ertoe het systeem moedwillig te verzwakken. De NSA werd in 1952 in de Verenigde Staten opgericht om vijandelijke codes te breken en wordt nog immer als de belangrijkste afluister en (de-) codeerdienst ter wereld gezien. Alleen al voor het onderscheppen van internationale communicatie zou de dienst zo’n 30 miljard dollar per jaar uitgeven.
In ’77 werd DES in Amerika tot standaard verheven. Goedgekeurd door een regering, die haar geheimen overigens niet aan DES toevertrouwt! Het is (nog) wel het meest gebruikte algoritme in de commerciële sector voor beveiliging van datacommunicatie. Electronische brieven, opgeslagen data en spraak kan met DES versluierd worden.
DES is een blokversleuteling ontworpen voor de versluiering en ontsluiering van blokken van 64 bits. De gebruikte sleutel is ook 64 bits lang, maar er worden maar 56 bits werkelijk gebruikt (de rest zijn pariteits bits). Feitelijk bestaat het algoritme uit een opeenvolging van verschillende bewerkingen: permutaties en substituties veelal op basis van tabellen. Voor de te onderscheiden bewerkingen worden meestal wisselende sleutels gebruikt die afgeleid zijn uit de hoofdsleutel.
De ontwerp-criteria, die ten grondslag liggen aan de verschillende stappen bij DES, zijn geheim. De werking is alleen vrijgegeven in de vorm van weinig overzichtelijke tabellen. Dat maakt dat moeilijk te achterhalen is door welke analytische of wiskundige functies de verschillende verwerkingsfasen bepaald worden. Wetenschappers hebben natuurlijk wel allerlei pogingen gedaan DES te ontleden, maar zijn daarin alleen geslaagd voor afzonderlijke delen van het algoritme. Velen sluiten echter niet uit dat er een ‘achterdeurtje’ in zit, die het mogelijk maakt de klare tekst uit de versleutelde tekst te verkrijgen. Het DES-systeem kun je op vier verschillende manieren (‘DES-modes’) laten werken.
Alle mogelijkheden van DES ten spijt kan gezien de huidige technologische ontwikkelingen gesteld worden dat de sleutellengte, namelijk 56 bits, bij standaard DES te klein (geworden) is. “…Het is mogelijk een machine te bouwen van één miljoen dollar die elke DES-sleutel kan vinden in 7 uur. Dit betekent dat die machine gemiddeld elke drie-en-een-half uur een DES versleuteling kan breken… Voor 10 miljoen dollar heb je een machine die daar gemiddeld nog maar 21 minuten over doet en bij 100 miljoen zit je al op 2 minuten… Ik ben zeker dat de NSA het in een paar seconden kan, gezien hun budget!”(3). Om de betrouwbaarheid te vergroten wordt nu DES-hardware op de markt gebracht waarbij meerdere malen versleuteld wordt, soms met niet-DES algoritmes, of met grotere sleutellengtes.
Een beter alternatief voor DES is IDEA dat voor ‘International Data Encryption Algorithm’ staat. Ook met IDEA kunnen tekst, opgeslagen data en spraak versluierd worden. Het is een Zwitsers produkt bedacht door Xuejia Lai en James Massey dat te verkrijgen is in zowel hardware als software. Het IDEA-algoritme, dat in tegenstelling tot DES wel volledig bekend is, is gebaseerd op verschillende wiskundige bewerkingen en bestaat ook uit meerdere stappen. De gebruikte sleutel is hier 128 bits lang. Gemiddeld is IDEA wel twee maal sneller als DES.
IDEA is te nieuw om al definitieve uitspraken over de veiligheid te doen. De makers hebben wel hun uiterste best gedaan om het recept immuun te maken voor alle bekende mogelijke aanvals-technieken van de codebrekers. In verschillende academische en militaire kringen wordt nu getracht het systeem te breken. Tot nu toe zonder succes, waarbij het natuurlijk maar helemaal de vraag is of wij als eerste op de hoogte gesteld worden van een eventueel geslaagde poging.
‘Public Key’
In de jaren ’70 onstond een nieuw concept binnen de cryptologie, namenlijk ‘Public Key’. Bij ‘Public-Key’ bezit elke persoon een unieke combinatie van twee verschillende, maar bij elkaar horende sleutels, één openbare sleutel en één privé-sleutel. De sleutels moeten zo ontworpen zijn dat wat met jouw publieke sleutel versleuteld is alleen door jouw privé-sleutel ontsleuteld kan worden (en andersom). Het idee is dan dat bijvoorbeeld Jan zijn openbare sleutel over een openbaar kanaal naar Ien kan sturen. Ien kan dan haar berichtje aan Jan met die sleutel coderen. Jan decodeert dat berichtje met zijn privé-sleutel. Zolang hij die sleutel maar goed geheim houdt, is niemand anders in staat de boodschap te lezen.
plaatje ‘public key’
Als het systeem goed in elkaar zit en Ien haar openbare sleutel ook aan Jan gestuurd heeft, kan Ien haar privé sleutel weer gebruiken als garantie dat zij diegene is geweest die Jan dat bericht gestuurd heeft. Elke malloot die Jan’s publieke sleutel heeft kan hem immers een gecodeerd bericht zenden. Ien versleutelt hetzelfde bericht daartoe eerst met haar privé-sleutel en zet zo als het ware haar ‘digitale handtekening’. Zodra Jan het bericht ontvangt ontsleutelt hij eerst met zijn privé en daarna met Ien’s publieke sleutel.
plaatje ‘public key-2
Codebrekers kunnen bij ‘Public Key’ een extra aanvals-techniek inzetten. Ze kunnen namelijk proberen de privé-sleutel op de een of andere manier van de publieke sleutel af te leiden. De meeste in der loop der tijd bedachte recepten om sleutel-paren te maken bleken op dat punt niet tegen krakers bestand. Het enige recept dat als veilig wordt gezien is het zogenaamde RSA-systeem, genoemd naar de ontwikkelaars ervan Rivest, Shamir en Adleman. Hun systeem is gebaseerd op het feit dat het weliswaar eenvoudig is twee getallen die alleen deelbaar zijn door zichzelf, ofwel priemgetallen, te vermenigvuldigen, maar dat het aanzienlijk moeilijker is uit het produkt weer de oorspronkelijke priemgetallen te bepalen. Als de priemgetallen groot genoeg zijn wordt dat zelfs onmogelijk. Als het produkt van de priemgetallen een getal is van zo’n 200 cijfers (decimaal)dan duurt het met de huidige rekensnelheid van computers enige miljoenen jaren om de oorspronkelijke priemgetallen te vinden. Om iets van de veiligheid van het RSA-systeem te snappen kun je je het volgende voorstellen:
Je maakt twee oneindig grote telefoonboeken van een denkbeeldige stad. Het ene boek is op nummer gesorteerd, en het andere op achternaam. Je publiceert het telefoonboek op naam, en je houdt zelf het boek op nummer. Mensen die jou het woord ‘POEP’ willen sturen prikken in het boek dat gesorteerd is op naam achtereenvolgens een naam beginnend met P bijvoorbeeld ‘Peters’, dan een naam beginnend met O bijvoorbeeld ‘Ossewaard’ enzovoort. Het bericht dat ze je sturen bestaat vervolgens alléén uit de telefoonnummers van Peters, Ossewaard en de andere zo gevonden mensen. Jij hebt het op nummer gesorteerde boek en kan het bericht decoderen. Omdat de telefoon-boeken bijna oneindig groot zijn is het sorteren van het publieke boek op nummer onbegonnen werk en zou het proberen te vinden van de juiste telefoonnummers eindeloos lang duren.
Het grote voordeel van ‘Public Key’ is dat de uitwisseling van sleutels eenvoudiger is geworden en je niet eerst een koerier hoeft te zenden. Je hoeft geen stapels diskettes te beschermen tegen onbevoegden. Het grote probleem bij het RSA-algoritme is dat het proces van versleutelen en ontsleutelen heel veel tijd vereist. In de praktijk gebruikt dan ook bijna niemand RSA in haar ‘zuivere’ vorm, ook al niet omdat conventionele schema’s niet zwakker hoeven te zijn dan ‘Public Key’-crypto. Het onderstaande programma, PGP, gebruikt dan ook een combinatie van ‘Public Key’ en het eerder genoemde IDEA.
‘Pretty Good Privacy’ (PGP) is een software-pakket dat ontwikkeld is door Phil Zimmermann. Het wordt vooral gebruikt voor het versleutelen van electronische post (e-mail), maar je kunt natuurlijk ook bestanden versluieren. PGP kost niets en is ondertussen wereldwijd verbreid. Zoals gezegd wordt in PGP gebruik gemaakt van RSA en IDEA. Voor elk te versturen bericht wordt een zogenaamde sessie-sleutel met behulp van IDEA gemaakt. Deze sessie-sleutel wordt, weer versleuteld met de geheime RSA-sleutel, met het bericht meegestuurd. Op de computer is de geheime RSA-sleutel automatisch beveiligd met een (lang)paswoord.
PGP is één van de systemen die (nog) niet te kraken zouden zijn. Wel is het mogelijk dat een derde persoon de openbare sleutel op weg naar de geadresseerde onderschept, daar wat aan rommelt en haar vervolgens doorstuurt. Als je het niet vertrouwt moet je de oorspronkelijke en aangekomen sleutel vergelijken.(4) Verder beweren sommigen dat de wijze waarop binnen PGP de priemgetallen gekozen en getest worden verbeterd kan worden. Zie kritiek op PGP
Hoe dan ook, PGP heeft in Amerika de discussie over het verbieden van -niet door de regering goedgekeurde- cryptosystemen aangewakkerd. Het is al langer zo dat wetshandhavers en inlichtingendiensten de verspreiding van of publicatie over goede cryptosystemen hebben gedwarsboomd. Nu echter lijken zij te beseffen dat ze in een situatie zitten die vervelender is dan vóór het computer-tijdperk, waarin het hengelen in brievenbussen, post openstomen, of het afluisteren en uittikken van telefoongesprekken, noodgedwongen selectief moest worden toegepast vanwege het nogal arbeidsintensieve karakter van de technieken. Een ingeburgerd PGP betekent dat het lezen van andermans (nu electronische) brieven weer een tijdrovende bezigheid wordt die niet massaal is in te zetten, áls het al gelezen kan worden.
Het behoeft dan ook geen verbazing dat de voorstanders van een crypto-verbod ook pleiten voor het invoeren van een nieuwe versleutel-standaard. DES is verouderd en een goedgekeurd cryptosysteem is een vereiste voordat een verbod op andere systemen mogelijk wordt. Het systeem dat daarvoor in aanmerking komt heet nu ‘Skipjack’ en is verpakt in een chip die ‘Clipper’ genoemd wordt. Het algoritme, waar verder niet veel details over bekend zijn, is door de NSA ontwikkeld en werkt met een sleutel van 80 bits. Elk apparaat met Clipper-chip (VLSI) zal uitgerust zijn met een speciale ‘hoofdsleutel’, waarmee de sleutel die je gebruikt voor communicatie versleuteld wordt. Daarnaast heeft elk apparaat een paar unieke nummers die ook met de berichtjes mee verstuurd worden. De leverancier geeft deze nummers samen met de naam van de klant door aan de regering. Deze kan op grond van de apparaat-nummers de hoofdsleutel zoeken. Om misbruik enigszins tegen te gaan wordt de hoofdsleutel in tweeën gesplitst en door verschillende overheids-instanties opgeslagen. Beide sleutel-delen zijn nodig om de versluierde communicatie toch mee te luisteren. Alleen speciaal gemachtigde regerings-functionarissen krijgen formeel toegang tot beide delen van de hoofdsleutel.
Een mooi voorbeeld van nieuwe wijn uit oude kruiken: zonder haar controle-mogelijkheden kwijt te raken, krijgt de oppassende brave burger door de overheid een ‘veilige’ communicatie-mogelijkheid aangereikt. Bij gebrek aan communisten verwijzen de voorstanders van deze ontwikkelingen naar het gevaar dat drugsdealers, terroristen en andere criminelen voor ‘de staatsveiligheid’ vormen. Daarbij stoort het hen niet, maar ons wel dat de verschillende categorieën voor het gemak op één hoop gegooid worden.
Sommige mensen beschouwen het als een recht hun eigen privacy te beschermen op een manier die ze zelf in alle omstandigheden gepast vinden. Daarom wijzen zij staatscontrole over crypto-gebruik van de hand. Je vraagt toch ook geen toestemming aan de autoriteiten om bij tijd en wijle te fluisteren?
Een hoge functionaris van de NSA, James Hearn, zit speciaal in Londen om de Europese Unie en de Europese Vrijhandelsassociatie te overtuigen van de ‘Clipper’ chip-filosofie. Zo pleit hij er onder andere voor om bij de toekomstige verbeteringen aan de datacommunicatie-infrastruktuur, ook wel digitale snelweg genoemd, de hele zaak vast in te bouwen.
Tijdens het schrijven van dit artikel is ook in Nederland de discussie losgebarsten. De ministeries van Binnenlandse Zaken, Defensie, Justitie en Verkeer en Waterstaat zijn betrokken bij een voorstel-wetsontwerp dat het verkopen en het gebruik van crypto aan een vergunningenstelsel bindt. Los van de vraag of zo’n wet wel uitvoerbaar is, is ook hier de principiële vraag of burgers hun recht zich tegen de overheid te beschermen laten afpakken.
Mocht het voorstel, of een variant erop, ooit wet worden, dan is er een lichtpuntje voor diegenen die niet zo’n vertrouwen hebben in overheden. Wetsmakers rennen haast per definitie achter de technologie aan. In de VS zijn bijvoorbeeld nu al mensen bezig onzichtbaar PGP te maken (stealth PGP), een PGP-variant waarbij het moeilijk zal worden te bewijzen dat er versleuteling gebruikt is. Of gaan ze straks ook verbieden dat we elkaar ruis en onzin toesturen? Technici zien ook nog andere mogelijkheden om te verhullen dat versluiering gebruikt wordt, bijvoorbeeld door boodschappen te verstoppen in onzin-tekst of plaatjes
Het verstoppen van boodschappen in plaatjes gaat eigenlijk nog een stap verder dan het onleesbaar maken van communicatie. De methode, die nog niet als softwarepakket beschikbaar is, betreft tevens het verbergen van het bestaan van de communicatie zelf. Dit wordt steganografie genoemd. De komst van de computer heeft de mogelijkheden op dit gebied vergroot. Het principe van een boodschap verstoppen in een plaatje komt op het volgende neer: Elke kleur in een plaatje wordt in een lange bitrij gecodeerd, maar niet elke kleur ‘gebruikt’ elk bit van die rij. In de bits die er niet of minder toe doen, kunnen nu bits die een deel van een boodschap zijn verstopt worden. Alleen iemand die weet om welke bits het gaat en het recept kent is in staat de boodschap te lezen. Als zo’n plaatje op een publiek toegankelijke plaats, zoals een nieuwsgroep op een netwerk of een bulletinboard gezet wordt dan kan in principe iedereen het eraf halen. Voor buitenstaanders is niet te achterhalen of het alleen een plaatje of ook een boodschap is, dus ook niet ‘wie met wie’ communiceert.
Wachtwoordbeveiling van programma’s
Er zijn veel programma’s die eigenlijk niet speciaal voor het versleutelen van tekst bedoeld zijn, maar dit wel als extra mogelijkheid bieden. Bekende voorbeelden hiervan zijn Wordperfect, bepaalde spreadsheet- en databaseprogramma’s en het compressie-programma Pkzip. Deze programma’s hebben een mogelijkheid tot beveiliging van bestanden met een wachtwoord. De handleiding van WordPerfect 5.1 zegt over de wachtwoordbeveiliging het volgende: “WPCorp kan met geen mogelijkheid de beveiliging van uw bestanden opheffen als u uw eigen wachtwoord vergeten bent”. Onzin dus, omdat inmiddels meerdere mensen hebben uitgevonden hoe het systeem werkt.
De eerste was Helen Bergen in Australië, die een middagje puzzelen en de achterkant van een envelop nodig had om de beveiliging te breken. Toen zij dit meldde aan WordPerfect Pacific antwoordde de maatschappij dat “WordPerfect een dergelijk programma niet heeft en zodoende niet in staat is de beveiliging te kraken”. Verder wilden zij nog kwijt dat “maar erg weinig mensen een dergelijk programma kunnen schrijven”.
Uit het bovenstaande valt op te maken dat WordPerfect zelf de beveiliging niet al te serieus neemt. Ondertussen is het kraakprogramma WPCRACK te vinden op iedere zichzelf respecterend BBS (een computer waar leden heen kunnen bellen om berichten te lezen of op te sturen). WPCRACK zou gemaakt zijn om mensen te helpen die het wachtwoord van een document vergeten zijn. Het probleem met de wachtwoordbeveiliging in WordPerfect is dat de methode van beveiliging erg simpel is (tweemaal een XOR, eenmaal met een teller van de positie in de tekst en eenmaal met het wachtwoord).
Daarnaast zijn bepaalde karakters op bepaalde plaatsen in een WP-document altijd hetzelfde. Dit is natuurlijk de droom voor iedere crypto-analist: het bezit van de originele en de versleutelde tekst. Door hier gebruik van te maken kan het programma WPCRACK in enkele secondes het wachtwoord ‘raden’. Andere programma’s die wachtwoordbeveiliging van bestanden bieden gebruiken vaak een vergelijkbare of soms nog eenvoudigere versleutelmethode.
Een serieus probleem is dat mensen telkens hetzelfde wachtwoord gebruiken. Stel dat je hetzelfde wachtwoord gebruikt voor je WordPerfect-documenten en het computersysteem op je werk, of, erger nog, PGP. Nadat met behulp van WPCRACK het wachtwoord van je WordPerfect-document is gevonden, ben je in één keer lek.
De meeste beveiligingsmethodes in dergelijke programma’s zijn niet erg sterk omdat de makers ervan meestal geen versleutelingsspecialisten zijn. Er valt eigenlijk pas werkelijk te vertrouwen op versleutelingsprogramma’s, als die ontwikkeld zijn door mensen die er wel verstand van hebben. Het mooiste zou zijn wanneer tekstverwerkings- en spreadsheetprogramma’s de mogelijkheid zouden bieden om PGP aan te roepen vanuit het programma. Zolang dit nog niet mogelijk is, loont het de moeite om ieder document apart te versleutelen.
Wachtwoordbeveiliging van PC’s en harde schijven
Er zijn een aantal programma’s in de handel die het mogelijk maken de toegang tot de computer zelf met een wachtwoord te beveiligen. Soms is dit zelfs standaard ingebouwd in de computer. Veel mensen denken dat de informatie in de computer dan versleuteld wordt, wat meestal niet het geval is. Wat normaliter gebeurt is dat het opstarten van de computer onmogelijk wordt gemaakt, een blokkade die vaak met een aantal simpele handelingen opgeheven kan worden. Ook is het natuurlijk altijd mogelijk voor een onbevoe gd geïnteresseerde om de harde schijf uit de computer te nemen en deze met behulp van een andere computer te bekijken.
Voor de meeste van deze wachtwoordbeveiligingen circuleren zelfs al programma’s waarmee de beveiliging opgeheven kan worden. Computers met een AMI-BIOS-chip, programma’s zoals PC-Lock, ze zijn allemaal niet te vertrouwen, behalve wanneer het er om gaat te voorkomen dat je kinderen spelletjes spelen op jouw computer.
Een programma dat de moeite van het vermelden waard is en dat ook werkelijk de gegevens op een schijf versleutelt, is SecureDrive. Het maakt gebruik van IDEA en biedt zelfs de mogelijkheid om (in beperkte mate) samen te werken met PGP. Met SecureDrive is het mogelijk om gedeeltes van een harde schijf te versleutelen. Ook kunnen losse schijven (floppys) beveiligd worden. Met het op DES-gebaseerde, maar vermoedelijk minder betrouwbare Norton Diskreet, is dit overigens ook mogelijk.
Heb je veel gegevens op een met SecureDrive versleutelde harde schijf, dan wil je ongetwijfeld af en toe backups maken. Doe dit dan op losse schijven die ook versleuteld worden met SecureDrive. Als SecureDrive eenmaal ingeschakeld is kan het prima samengaan met backup-programma’s als MS Backup. Maar zorg er wel voor dat de normale, MS-DOS-compatibele, manier van wegschrijven wordt gebruikt. Is dit niet het geval dan wordt SecureDrive ‘gepasseerd’ en komen de gegevens alsnog onversleuteld op de backup-schijv en te staan.
Wat (niet) te doen
We hebben het tot nog toe over cryptosystemen die gebruikt kunnen worden voor de versleuteling van bestanden en schijven, en de veiligheid van die systemen. Uit de andere artikelen heb je al begrepen dat naast codebrekers ook nog insluipers, beeldscherm- of kabel-afluisteraars bestaan. In de praktijk zijn die methoden dikwijls succesvoller en goedkoper. Geen enkel crypto-systeem is ondoordringbaar. Je zult jezelf steeds de vraag moeten stellen: “Wat weegt zwaarder voor mijn boze ex, nieuwsgierige bure n, de sociaal rechercheur, of de staatsveiligheid, de bijzondere informatie waarover ik beschik, of de financiële inspanning die ze zich moeten getroosten om die boven tafel te krijgen?” We zullen je hieronder een aantal tips geven, waarmee je in ieder geval hun kosten opjaagt:
–Laat nooit geheime sleutels of paswoorden slingeren. Bij paswoorden geldt: de naam van je vriend, oma of hond ligt teveel voor de hand. Je kunt het beste niet-bestaande woorden kiezen. Programma’s die de mogelijkheid bieden pas-zinnen in te voeren zijn beter. Het breken van een paswoord van 6 tekens kost de officiële wereldrecordhouder sinds augustus 1993 maximaal 1 minuut, maar aan die kampioenschappen deden niet de snelle computers mee waar sommige overheids-instanties over beschikken.
–Bedenk dat ‘inbrekers’ of virussen je cryptoprogramma, sleutels, paswoorden en teksten kunnen vernielen of er informatie uit kunnen halen. Zo is het bijvoorbeeld mogelijk om het gedeelte van een crypto-programma dat om een wachtwoord vraagt (bijvoorbeeld van PGP of SecureDrive) te vervangen door iets dat er het zelfde uitziet maar het wachtwoord ergens wegschrijft in een bestandje op je harde schijf. Dit bestandje kan dan later gelezen worden door de ‘inbreker’. Deze truc wordt wel ‘het paard van Troje’ g enoemd.
–Heb je alleen maar de beschiking over een computer van een ‘multi-user’-systeem of een machine die aangesloten is op een ‘Local Area Network’ (LAN), bedenk dan dat de systeem-beheerder of andere heel slimme gebruikers, zich toegang kunnen verschaffen tot jouw vertrouwelijke bestanden, beveiligingsprogramma’s en sleutels, soms zelfs al op het moment dat je ermee aan het werk bent.
–Heb je wel een eigen computer maar ben je beducht voor de mogelijkheid dat anderen toegang zouden kunnen krijgen tot je computer en de harde schijf die er in zit, dan moet je vertrouwelijke bestanden, beveiligingsprogramma’s en sleutels op losse schijfjes zetten. Op deze manier kan je de toegang tot je gegevens de hele dag met je meedragen zonder dat je een computer mee hoeft te sjouwen. Deze schijfjes (of de harde schijf als je die toch wilt gebruiken) kun je weer versleutelen met bijvoorbeeld SecureDrive. Je kan ook een schijfje maken met het programma SecureDrive waarmee je je eigen computer opstart. Het opstarten van de computer zonder dat schijfje is dan niet mogelijk.
–Welke crypto-methode je ook gebruikt, je maakt het crypto-analisten nog moeilijker als je de klare tekst comprimeert (zo klein mogelijk maakt) alvorens te versleutelen. PGP heeft de mogelijkheid daartoe ingebouwd, maar vele andere programma’s in de handel doen hetzelfde (PKZIP, LHARC, PKPAK). Wil je de wanhoop van codebrekers echt tot ongekende hoogte drijven, versleutel je berichtje of bestand dan achtereenvolgens met verschillende versleutel-programma’s. De beste versleutel-methode gebruik je als laatste; daarmee codeer je de versleutelde tekst die je eerder verkregen hebt.
–Bedenk dat de ‘niet versleutelde versies’ van bestanden die je misschien wel met veel moeite versleuteld hebt, niet door elk crypto-programma automatisch op een onherstelbare manier van schijf worden verwijderd. De commando’s om bestanden te verwijderen van de operating-systems (delete) vertellen de computer alleen maar dat het stukje schijf waar de bestanden stonden weer beschikbaar is voor andere bestanden. Legio programma’s toveren de tekst zo weer te voorschijn. Om een bestand te wissen moet het overs chreven worden. Bij PGP kun je die mogelijkheid instellen. Heb je echt redenen om paranoia te zijn, zorg dan dat je een programma hebt dat je bestand vele malen kan overschrijven, zoals ‘Norton wipefile’. Hetzelfde geldt overigens voor de ‘tijdelijke’ bestanden die sommige cryptosystemen maken tijdens het versleutel-proces; ook die moeten verwijderd worden.
–Gebruik je crypto alleen voor electronische brieven dan is het handig de te versleutelen boodschap en de benodigde sleutel nooit op harde schijf te zetten. Dat kan als je een zogenaamde schijnbare of ‘virtuele’ schijf maakt (ramdisk). Dat wil zeggen dat een stukje geheugen van de computer doet alsof het een schijf is. Alle informatie daarop is weg zodra jij de computer uitzet.
–Hoe goed je ook je bestanden beveiligd hebt, als je berichten via de computer naar anderen verstuurd is altijd te achterhalen waar het bericht vandaan kwam en waar het naar toe is gegaan. Het valt dus op dat je crypto gebruikt. Of het valt op dat je alléén soms of alléén naar tante Joke versleutelde berichten verstuurd!
Terug naar de inhoudsopgave van ‘De muren hebben oren…’
NOTEN
1. Als bij deze methode 45 leestekens door cijfers vervangen moesten worden, begonnen de vervangings-getallen bij de 5 omdat anders verwarring tussen een 4 en bijvoorbeeld 44 ontstaat. Bedenk verder dat bij deze methode het versleutelde bericht werd vooraf gegaan door in ieder geval het nummer van de gebruikte bladzijde. Dat werd dan in een vaststaand aantal cijfers opgeschreven.
2. Stel je hebt een goede sleutel-generator die ‘random’ sleutels genereert. Dan zullen de aanvalstechnieken van codebrekers, als ze pech hebben, alleen op de versleutelde tekst gericht kunnen zijn. Soms hebben ze door allerlei trucs misschien ook de beschikking over (een deel van) de klare tekst, of zijn ze in staat die te raden. In die situatie zullen ze (een deel van) de sleutel kunnen achterhalen, maar daar hebben ze dan weer niets aan bij de volgende versleutelde boodschap. Als tenminste de sleutel inderdaad maar één maal wordt gebruikt.
3. P. Zimmermann, de maker van PGP, 12-10-’93 voor het ‘Subcommittee for Economic Policy, Trade and Environment’ van het Amerikaanse Huis van Afgevaardigden.
4. Dat kan telefonisch als je elkaars stem herkent. Je hoeft niet de hele sleutel voor te lezen en te vergelijken maar kan volstaan met de 16 tekens die na een bepaald PGP- commando op het scherm van je computer verschijnen.
LITERATUUR EN ANDERE BRONNEN
* Dr. Dobb’s Journal, dec 1993/blz 50 ev.
Bruce Schneier: “The IDEA Encryption Algorithm”
* Internet: newsgroup sci.crypt
Frequently Asked Questions (FAQ)
E.Bach, S.Bellovin, D.Bernstein, N.Bolyard, C. Ellison ea.
* Internet: anonymous FTP manual Pretty Good Privacy/Public Key Encryption for the masses
Phil Zimmermann, 1993
* The puzzle palace, 1982
James Bamford
Penguin Books, USA ISBN: 0 14 00.6748 5
* Cryptografie, Aantekeningen/jan 1990
Dr.ir.J.C.A. van der Lubbe en prof.dr.ir.D.E.Boekee
TU-Delft/Faculteit Electrotechniek, Vakgroep Informatietheorie