ENCRYPTIE
INF101
PROJECTGROEP 2
Niels R
Gilles L
Yannick C
Nick R
Vak: Computerarchitectuur
Woord vooraf
We hebben een project gemaakt over encryptie binnen het vak computerarchitectuur. We hebben dit onderwerp gekozen omdat dit ons wel interesseert. Encryptie wordt namelijk ook steeds belangrijker binnen de informatica omdat er tegenwoordig zeer veel informatie over het internet circuleert dat niet leesbaar mag zij voor iedereen. Een zeer bekend voorbeeld hiervan is internetbankieren.
Om te beginnen krijg je in deze paper een stukje geschiedenis. Daarna wordt informatie gegeven over biometrie en encryptie. We geven hier uitleg over biometrie omdat dit samenhangt met encryptie. Verder bespreken we de werking van encryptie. Ook worden er een aantal soorten besproken en uitgelegd. Verder geven we ook een aantal toepassingen en als laatste komt er een kleine illustratie van encryptie.
Wij hebben onze paper samengesteld door steeds eerst op te zoeken, te lezen en te verwerken. Daarna schreven we kort en bondig onze visie over het principe uit.
Inhoudsopgave
Woord vooraf 2
Inhoudsopgave 3
Inleiding 4
1 Encryptie en biometrie 5
1.1 Wat is encryptie? 5
1.2 Wat is biometrie? 6
2 Werking encryptie 7
3 Kraken van een sleutel 8
4 Soorten encryptie 10
4.1 Data encryptie 10
4.1.1 Disk encryptie 10
4.1.2 Encryptie van de gehele computer 10
4.1.3 Bestand of Folder encryptie 11
4.1.4 De standaard 11
4.2 Internetbeveiliging 12
4.2.1 SSL 12
4.2.2 TLS 13
4.3 Mail-encryptie 14
4.3.1 PGP 14
4.4 Netwerkencryptie 16
4.4.1 WEP 16
4.5 Wachtwoord-encryptie 18
5 Bijlagen 19
5.1 Rijndaelalgortime 19
5.2 XOR-poort 19
5.3 MD5 functie 20
6 Bronnen 22
6.1 Definitie encryptie 22
6.2 Definitie biometrie 22
6.3 Werking encryptie 22
6.4 Soorten encryptie 22
6.4.1 Data-encryptie en disk-encryptie 22
6.4.2 Internet-beveiliging 22
6.4.3 Mail-encryptie 22
6.4.4 Netwerkencryptie 22
6.4.5 Wachtwoord-encryptie 22
6.5 Bijlagen 23
6.5.1 Rijndaelalgortime 23
5.5.2 XOR-poort 23
6.5.3 MD5 functie 23
Besluit 24
Inleiding
Het beveiligen van berichten tegen afluistering door anderen is al bijna zo oud als de communicatie zelf. Men ontwikkelde systemen met wiskundige sleutels zodat enkel de zender en de ontvanger de berichten konden schrijven en lezen.
De cryptografie werd al snel een feit. Men beveiligde berichten aan de hand van bepaalde systemen die manueel uitgerekend moesten worden, hier werd reeds de basis gelegd voor de technieken die we vandaag kennen…
Men stond altijd voor een dilemma; een gecompliceerd geheimschrift ontwikkelen dat moeilijk te kraken was versus de praktischheid van coderen en decoderen. Het kraken van zo’n gecodeerd bericht was dan vaak ook niet moeilijk.
Met de opkomst van de computer was men in staat om veel complexere systemen te gebruiken die voor een mens onmogelijk te berekenen zijn. Hierdoor kan men berichten veel sterker beveiligen. Zo ontstond de encryptie.
Dankzij encryptie kunnen we iets veiliger gebruik maken van het internet. Zonder dat we er altijd bij stil staan stellen we groot vertrouwen in encryptie tijdens internetbankieren, online shoppen, ophalen van webmail en tal van andere handelingen.
Met de opkomst van het internet heeft het beveiligen van berichten een prominente plaats in ons dagelijks leven ingenomen.
1 Encryptie en biometrie
1.1 Wat is encryptie?
Encryptie is het versleutelen van gegevens door middel van bepaalde algoritmes. Een algoritme is een eindige reeks instructies om vanuit een gegeven begintoestand het daarbij behorende doel te bereiken. Meestal worden deze zo versleuteld dat ze ook terug ontsleuteld kunnen worden. Het ontcijferen van deze versleutelde gegevens noemen we decryptie.
De encryptie kan onderverdeeld worden in twee vormen; de symmetrische en de asymmetrische encryptie.
Bij symmetrische encryptie wordt er maar één sleutel gebruikt. Deze wordt gebruikt voor zowel te coderen als te decoderen. Hiermee kan iedereen dus coderen en decoderen die de sleutel heeft.
Daarom is asymmetrische encryptie veiliger, er wordt een sleutel gebruikt om te coderen en een andere sleutel om terug te decoderen. Het voordeel hiervan is dat de sleutel om te coderen publiek gemaakt kan worden en dus over een onveilig kanaal aan iedereen kan worden gegeven maar enkel degenen met de geheime sleutel kunnen deze decoderen.
In figuur 1 wordt de werking van asymmetrische encryptie duidelijk geïllustreerd. De stappen van de encryptie en decodering worden hier duidelijk in omschreven, ondersteund met simpele klare illustraties.
Fig 1: Werking assymetrische encryptie
1.2 Wat is biometrie?
Een andere vorm van bescherming is biometrie. We geven hiervan even een illustratie maar gaan er niet verder op in in ons werk.
Biometrie is het opmeten van unieke eigenschappen van levende wezens. Elke persoon of ander organisme heeft wel enkele eigenschappen die uniek zijn aan hem. Deze kunnen gebruikt worden als identificatiemiddel.
De biometrie wordt daarom ook wel gebruikt als vervanger van toegangspasjes, sleutels, paspoorten, enzovoort...
Enkele voorbeelden waarmee men meetbare eigenschappen van levende wezens kan vaststellen:
• Vingerafdrukken;
• Oogscan, meer bepaald iriskenmerken. Dit is een onderdeel van het oog, namelijk het patroon van netvlies;
• Gelaatskenmerken. Hier gaat het om het bovenste deel van het gelaat;
• Het warmtepatroon van het gezicht;
• De spraak,hier maakt men gebruik van uw stem. Ieder zijn stem is namelijk anders;
Dit zijn allen identificatiemethoden op basis van lichaamskenmerken van personen.
Iedereen heeft namelijk een eigen DNA. DNA is een macromolecule dat in alle levende wezens de drager is van erfelijke informatie. Bijna ieder wezen, dus ook dieren hebben een unieke samenstelling van DNA. Enkel klonen, bijvoorbeeld eeneiige tweelingen hebben eenzelfde DNA.
Tegenwoordig zie je steeds vaker toepassingen van de biometrie. De misdaadbestrijding is hier een voorbeeld van, zo kan men eventueel aan de hand van vingerafdrukken de misdadiger vinden. Maar de biometrie is veel breder dan dit; met de biometrie kan men ook beveiligingsmethoden verbeteren. Codes, wachtwoorden, pasjes en sleutels kunnen vervangen worden door de biometrie. Biometrie is echter veiliger omdat er maar één persoon kan voldoen aan de vereisten van het systeem.
Sceptici zijn niet zeker over de veiligheid van biometrie omdat de informatie vervalst kan zijn. Dit betekend dat degene die naar binnen gaat volgens het systeem wel binnen mag, maar dat de informatie in het systeem vervalst is.
Biometrie op zich is niet zaligmakend, daarom wordt deze vaak nog gecombineerd met een wachtwoord.
2 Werking encryptie
We gebruiken hier het voorbeeld van een 40-bit encryptie:
00001010 01101001 10011110 00011100 01010101
Een algoritme om te encrypteren maakt gebruik van data en een sleutel en past dan een wiskundige versleutelingtechniek toe. Hierdoor wordt de inhoud onleesbaar. Tijdens de decryptie wordt het originele bericht hersteld door middel van de sleutel. De sterkte van de encryptie hangt af van de lengte van de sleutel, meer specifiek het aantal bits waaruit de sleutel bestaat.
Sommige technieken maken gebruik van dezelfde sleutel voor zowel de encryptie als de decryptie, deze techniek is de symmetrische encryptie. Deze is snel te berekenen maar redelijk onveilig omdat als de sleutel uitlekt, de beveiliging waardeloos wordt. Hierdoor kan de sleutel niet via een onveilig medium gedeeld worden.
Anderen maken dan gebruik van een publieke sleutel en een privésleutel. Dit is de asymmetrische encryptie. Dit principe is veel veiliger dan de symmetrische encryptie en de publieke sleutel kan hier wel via een onveilig kanaal verstuurd worden. Een nadeel van dit principe is dat deze veel rekenkracht vereist.
Een oplossing om beide systemen te combineren is om de sleutel van de symmetrische encryptie te versleutelen met een asymmetrische encryptie en deze dan over een onveilig kanaal te versturen. Op deze manier moet enkel veel rekenkracht gebruikt worden voor de sleutel en kan het volledige bericht toch nog symmetrisch versleuteld worden, wat veel lichter is.
3 Kraken van een sleutel
Een sleutel kan gekraakt worden aan de hand van een brute force aanval. Bij een brute force aanval gaat men met een computer alle mogelijke opties berekenen en uitproberen zonder gebruik van algoritmes om de berekeningen te versnellen.
De brute force methode zal simpelweg alle mogelijke combinaties van beschikbare tekens uitproberen tot de juiste gevonden is. Deze methode is enorm inefficiënt doordat deze lang duurt, maar 100% trefzeker.
Brute force is de primitiefste vorm voor het achterhalen van een sleutel en wordt enkel gebruikt als er geen algoritme bekend is die de berekening van de juiste optie zou kunnen versnellen.
Een 2-bit encryptie bijvoorbeeld heeft slechts 4 mogelijke sleutels, namelijk 00, 01, 10 en 11.
Het aantal mogelijke sleutels bereken je dus door de macht van 2 tot het getal van de bit-encryptie te bereken. Hier dus 2^2. Een 4-bit encryptie heeft dus 16 mogelijkheden. Met de brute force-techniek zal men dus maximum 16 berekeningen moeten doen om de juiste sleutel te vinden.
Een 40-bit heeft dus 1.099.511.627.776 mogelijkheden. Deze is echter nog niet genoeg want de juiste sleutel is door een brute force-aanval met een krachtige computer relatief snel achterhaald. Daarom is er toch nog een sterkere encryptie nodig.
Tegenwoordig maakt men meestal gebruik van een 128-bit encryptie. Hier zijn 340.282.366.920.938.463.374.607.431.768.211.456 mogelijkheden (2^128).
Men heeft hierbij geconcludeerd dat men 10 gigawatt nodig heeft wat overeenkomt met wat ongeveer acht grote nucleaire reactors in 100 jaar samen produceren. Computers die deze taak kunnen uitvoeren zijn er nog niet. Deze 128-bit encryptie zal de eerste 10 jaar nog wel veilig zijn voor brute force-aanvallen.
Maar er bestaan slimme trucs die de snelheid van de brute force aanzienlijk versnellen.
Men kan de brute force-methode versnellen door de mogelijke opties te beperken. De zoekruimte wordt bepaald door informatie die uit de encryptie gehaald kan worden. Hierdoor moeten sleutels van asymmetrische encryptie langer zijn dan die van symmetrische encryptie om dezelfde veiligheid te verkrijgen. Dit komt doordat er bij de asymmetrische encryptie meer informatie beschikbaar is om de zoekruimte te verengen.
Er bestaan nog andere technieken om brute force te versnellen. Men gaat gebruik maken van een principe dat parallellisatie genoemd, hiermee gaat men de taken over zoveel mogelijk afzonderlijke machines verdelen. Hiermee kan men meerdere opties tegelijk uitproberen. Dit principe is niet zo complex als het op het eerste zicht lijkt, men gaat gewoon elke afzonderlijke machine een deel van de zoekruimte aanwijzen en elke machine gaat alle opties in zijn zoekruimte af.
Een nadeel aan dit principe is wel dat men extra rekenkracht vereist omdat de gegevens verdeeld moeten worden over de afzonderlijke machines en ook voor de communicatie tussen de afzonderlijke rekencellen.
Met logisch nadenken kan men zelf nog wel enkele technieken verzinnen om de brute force te versnellen. Men kan bijvoorbeeld beginnen met de logische lengtes te berekenen zoals 64, 128, 192 en 256 bits. Deze lengtes worden vaak gebruikt bij encryptie en er is dus veel kans dat de sleutel dan ook een van deze lengtes heeft.
4 Soorten encryptie
4.1 Data encryptie
4.1.1 Disk encryptie
Voor het beveiligen van bestanden op uw computer wordt er gebruik gemaakt van disk encryptie. Disk encryptie is het coderen van een volledige schijf, partitie of zelfs slechts één bestand. Er zal altijd overwogen worden in hoeverre men moet gaan encrypten, dus met name of de gehele schrijf gecodeerd moet worden, of slechts het coderen van enkele bestanden afdoende is.
Beide principes hebben hun voor- en nadelen.
4.1.2 Encryptie van de gehele computer
Hiermee wordt de gehele computer gecodeerd. De gehele computer is afgesloten met een wachtwoord. De computer zal slechts opstarten bij het ingeven van het juiste wachtwoord.
Voordelen hiervan zijn:
• Makkelijk in gebruik, de gebruiker heeft geen speciale kennis nodig;
• Alle bestanden worden versleutelt dus er blijven geen sporen van informatie achter;
• Vereist enkel identificatie bij het opstarten;
• Het gehele operating system wordt versleutelt waardoor aanvallen op het netwerk en andere objecten voorkomen worden.
Er zijn natuurlijk ook nadelen aan volledige disc encryptie, enkele hiervan zijn:
• Kan problemen geven bij updates en patching;
• Indien problemen met de beveiliging, dan is heel de computer geblokkeerd;
• Na het inloggen zijn alle bestanden onversleuteld en dus voor iedereen leesbaar, hierdoor kunnen onderhoudstechnici gevoelige informatie inkijken;
• De computer zal traag opstarten omdat alle bestanden gedecrypt moeten worden, en dit vereist veel rekenkracht.
4.1.3 Bestand of Folder encryptie
Bij bestand of folder encryptie gaat men slechts enkele bestanden of folders encrypten. Deze toepassing is een goed alternatief voor volledige disk encryptie. Als het volstaat om slechts enkele bestanden te beveiligen kan hiermee veel rekenkracht met het opstarten vermeden worden.
Voordelen
• De geëncrypteerde bestanden kunnen gemakkelijk gedeeld worden in hun beveiligde vorm;
• De gebruiker kan de versleutelde bestanden gewoon beheren, delen en verplaatsen en dergelijke, zonder het wachtwoord te weten;
• Er kan geen corruptie van het systeem voorkomen;
• De versleutelde gegevens zijn nog steeds beveiligd na het opstarten, dus onderhoudstechnici kunnen geen geheime informatie lezen;
• Het opstarten zal veel sneller verlopen dan bij disk encryptie;
Nadelen
• De tijdelijke bestanden worden niet versleuteld waardoor er sporen achterblijven van versleutelde bestanden;
• De gebruiker moet wel kennis hebben van beveiliging en moet nadenken over welke bestanden hij zal encrypten;
• Gebruikersbeheer kan eventueel complexer worden door deze vorm van encryptie;
4.1.4 De standaard
De standaard voor data encryptie is momenteel AES. AES is het acroniem voor Advanced Encryption Standard. AES is ontwikkeld toen bleek dat DES, dat staat voor Data Encryption Standard, niet meer veilig genoeg was. Het AES principe is gebaseerd op het Rijndaelalgoritme (Bijlage 1).
Bij het Rijndaelprincipe wordt de te encrypteren tekst in blokken opgedeeld en in een matrix geplaatst. In het geval van AES worden er blokken van 128 bits gebruikt met een sleutel van 128, 192 of 256 bits.
Vervolgens worden de blokken vercijferd met rondeprincipe en het gebruik van een XOR-operatie (Bijlage 2). Een XOR-operatie is een booleaanse operator. De XOR-poort is een exclusieve OF-poort. In tegenstelling tot de gewone OF-poort waarbij 1 wordt gegeven indien één of beide ingangen 1 geven is bij de XOR-poort enkel een 1 waarde teruggegeven indien er juist één ingang 1 is.
4.2 Internetbeveiliging
Doordat er tegenwoordig steeds meer informatie over het internet circuleert dat niet zomaar iedereen mag weten. Is er over het internet een encryptie van gegevens nodig. Kijk maar naar het internetbankieren. Het is niet de bedoeling dat iedereen zomaar uw financiële status uitgebreid kent of uw code van uw bankkaart. Men raad daarom ook meestal aan om steeds eerst te gaan controleren of een bepaalde website wel betrouwbaar is voor men er iets koopt. Vaak kunnen mensen zo uw code van uw bankkaart achterhalen en deze dan ook misbruiken.
4.2.1 SSL
SSL versie 3.0 is ontwikkeld door Netscape en werd uitgebracht in 1996. SSL staat Secure Socket Layer. Deze versie werd later de basis voor Transport Layer Security (TLS).
Men maakt gebruik van SSL om veilig transacties te kunnen uitvoeren tijdens bvb. het internetbankieren en online shoppen. Dit protocol maakt gebruik van een publieke sleutel voor encryptie en een privésleutel voor decryptie. Anders zou iedereen deze gegevens kunnen onderscheppen en lezen door middel van de publieke sleutel. Met deze sleutel kan namelijk iedereen werken. De privésleutel wordt bijgehouden op een werkstation, zodat enkel dat werkstation deze gegevens zou kunnen decoderen.
SSL encryptie is sterk afhankelijk van sleutels, daarom is de sterkte van de encryptie ook vaak afhankelijk aan de lengte van de sleutel, met name het aantal bits waaruit de sleutel bestaat. Dus hoe langer deze sleutel is hoe veiliger de encryptie. Dit komt omdat een langere sleutel moeilijker te achterhalen.
SSL levert door gebruik te maken van encryptie zowel een identificatie als een beveiligde verbinding met het internet. Bij identificatie controleert men of men wel de juiste gegevens heeft doorgegeven. In dit geval is dat het certificaat, die lokaal op een werkstation wordt bijgehouden. De encryptie van deze certificaten is 128 of 256 bits. Men kan hier dus concluderen dat deze encryptie zeer sterk is omdat men hier 2^128 of 2^256 mogelijkheden heeft en daarom is deze sleutel ook veel moeilijker te achterhalen.
Tegenwoordig wordt alleen de authenticiteit van de server gecontroleerd, de client blijft onbekend. Men maakt ook gebruik van PKI om clients te identificeren. PKI staat voor Public Key Infrastructure en is een systeem waarmee het uitdelen en beheren van digitale certificaten kan worden gerealiseerd. Een certificaat is een computerbestand dat fungeert als een digitaal paspoort voor de eigenaar van dat bestand. Deze protocollen kan men ook gebruiken om client- of serverapplicaties te beveiligen.
4.2.2 TLS
TLS is gebaseerd op Secure Socket Layer (SSL). Een voordeel van dit protocol is dat het onafhankelijk is van het applicatie protocol. Dit protocol bevindt zich boven het transport protocol en onder het applicatieprotocol.
4.2.2.1 Toepassingen
SSL en TLS draait op een laag onder de applicatieprotocollen zoals bv. HTTP, SMTP, FTP. Maar ook boven het transportprotocol TCP, dat deel uitmaakt van TCP/IP. Doordat SSL en TLS veiligheid kunnen bieden aan elk protocol dat gebruik maakt van TCP, wordt SSL het meest gebruikt voor HTTPS, waarbij de S voor secure staat. Een voorbeeld hiervan is het beveiligen van creditcardgegevens. Dit zorgt ervoor dat informatie die normaal onversleuteld over het netwerk gaan met SSL of TLS kunnen worden beveiligd
4.2.2.2 Werking
Zoals al eerder vermeld gebruikt het TLS protocol certificaten om de uitgewisselde gegevens te authenticeren. Elk certificaat bevat een publieke sleutel. De eigenaar van het certificaat heeft een privésleutel. Deze werkt samen met de publieke sleutel in het certificaat. Omdat het enorm duur zou worden voor cryptografie van een publieke sleutel, gebruikt TLS een Session Key. Deze is gebaseerd op de publieke sleutel en een willekeurig getal. Het willekeurig getal wordt uitgewisseld in het eerste bericht van het protocol.
In figuur 2 hieronder vind je een duidelijk schema over de werking van TLS.
Fig 2: Werking TLS
De client spreekt de server aan, waarna de server de client aanspreekt. Hierna stuurt de server een certificaat en een publieke sleutel van de server zodat de client zijn berichten kan lezen. Maar hij stuurt ook een aanvraag voor een certificaat om de berichten te kunnen lezen van de client. Daarna stuurt de client het gevraagde certificaat samen met de publieke sleutel van de client naar de server. De client verandert de sleutel door er een willekeurig getal aan toe te voegen, waarna de server dit ook doet. Na dit alles kan de overdracht van geëncrypteerde gegevens starten.
4.3 Mail-encryptie
Omdat men vaak e-mails stuurt of ontvangt die privé zijn, zoals wachtwoorden en gebruikersnamen is het nodig om berichten te encrypteren zodat de juiste persoon deze enkel maar kan te weten komen.
4.3.1 PGP
PGP staat voor Pretty Good Privacy. PGP maakt gebruik van asymmetrische encryptie. Dus men heeft hier twee sleutels, namelijk een sleutel om te vercijferen en één voor het ontcijferen. De geheime sleutel wordt opgeslagen op de harde schijf. Om deze sleutel te benaderen wordt deze beveiligd met een wachtwoord.
De publieke sleutel zorgt ervoor dat andere mensen versleutelde berichten naar de persoon met de geheime sleutel kan versturen. Met deze sleutel kan hij berichten coderen, maar ook berichten ondertekenen. Hierdoor weet de ontvanger van wie het bericht afkomstig is.
Fig 3: Werking PGP
Via de geheime sleutel kan de ontvanger de ontvangen berichten dan ontcijferen en lezen. In figuur 3 hiernaast wordt de werking duidelijk schematisch voorgesteld.
Er zijn OpenPGP-servers die de publieke sleutels van een groot aantal personen in het bezit hebben. Iedereen kan hier zijn publieke sleutel publiceren of de publieke sleutel van andere personen opzoeken. Met behulp van één van die publieke sleutels en een OpenPGP-programma kan men een gecodeerd bericht sturen naar één of alle personen die hun publieke sleutel hebben achter gelaten op de server.
Vele OpenPGP-programma’s voegen aan de publieke sleutel ook nog een vertrouwenswaarde toe omdat men vaak niet zeker weet of de publieke sleutel gebruikt is door de persoon als wie hij zich voordoet. Deze vertrouwenswaarde kan door de gebruiker gewijzigd worden na verificatie zoals door te telefoneren of via een ontmoeting. Hierdoor kan men bepalen of de publieke sleutel door de juiste persoon in het bezit is.
4.3.1.1 Probleem
Als een persoon binnen een bedrijf ontslag neemt dan kan men zijn versleutelde berichten niet ontcijferen. Dit kan belangrijke informatie bevatten, zoals orders en andere belangrijke bedrijfsgegevens.
4.3.1.2 Oplossing
Dit probleem kan men oplossen door alle berichten ook met de publieke sleutel van het bedrijf te versleutelen zodat het bedrijf de berichten met de geheime sleutel achteraf kan achterhalen.
4.3.1.3 Nadeel
PGP kan enkel ASCII-waarden encrypteren en dat maakt de verwerking van versleutelde berichten met andere waarden die niet in de ASCII-tabel voorkomen moeilijk.
4.3.1.4 Oplossing
Hierdoor ontstond er een nieuw protocol, namelijk MIME. Dit staat voor Multipurpose Internet Mail Extensions. MIME zorgt ervoor dat binaire gegeven, bijvoorbeeld bijlagen en HTML-codes naar ASCII-waarden worden gecodeerd. Dit moet natuurlijk bij de aankomst van het bericht opnieuw gedecodeerd worden. Dit doet men dan opnieuw met MIME.
4.4 Netwerkencryptie
Door de opkomst van het draadloos internet is encryptie nodig. Deze encryptie vermijd dat iedereen zomaar met een draadloze verbinding op uw kosten over het internet surft. Het zorgt er ook voor dat de gegevens die over het internet gaan worden gecodeerd zodat niet iedereen deze gegevens zomaar kan achterhalen.
4.4.1 WEP
WEP staat voor Wired Equivalent Privacy. Dit is een versleutelingmethode voor berichten die over een draadloos netwerk worden verstuurd. Dit gebeurt aan de hand van RC4-encryptie. RC4 is een symmetrisch stroomvercijferingsalgoritme. Dit is een manier van versleutelen waarbij de tekst woord voor woord in cijfertekst wordt omgezet. De versleuteling vindt plaats tussen de 2 netwerkkaarten, de data is dus enkel versleuteld als het in de lucht hangt.
4.4.1.1 Werking
Wanneer deze beveiliging wordt ingesteld heeft elk gebruikersstation een geheime sleutel die gedeeld wordt met het basisstation. Hoe deze sleutels worden uitgewisseld is niet gedefinieerd. Deze kunnen vooraf ingebouwd worden door de fabrikant of ze kunnen vooraf worden uitgewisseld via een bekabeld netwerk.
De eerste stap van het versleutelen bestaat eruit dat de controlesom van het originele bericht wordt berekend. Dit gebeurt aan de hand van de CRC-32 polynoom. Met name Cyclic Redundancy Check. De CRC-32 polynoom bekijkt het bericht als een groot binair getal, vervolgens deelt deze dit getal door een ander vast binair getal. De rest van deze deling wordt gebruikt als controlesom of checksum. Die rest wordt achter het originele bericht geplakt.
Deze combinatie vormt de ongecodeerde tekst die het vercijferingsalgoritme gaat coderen. Op deze tekst wordt vervolgens een XOR-bewerking uitgevoerd met een stuk van de sleutelstroom met dezelfde lengte als het originele bericht plus de controlesom. Deze sleutelstroom wordt door RC4 gegenereerd. RC4 is een symmetrisch stroomvercijferings-algoritme.
Dit is een manier van versleutelen waarbij de tekst woord voor woord in cijfertekst wordt omgezet. De uitkomst hiervan is de vercijferde tekst die kan worden verzonden. De initiële vectoren waarmee RC4 gestart werd, worden samen met de gecodeerde tekst verzonden.
Initiële vectoren zijn willekeurig gekozen getallen die vooraan de verzonden data worden geplaatst. Normaal gezien moeten deze getallen worden veranderd bij ieder verzonden pakket om een betere veiligheid te bekomen, maar in het algemeen wordt dit niet veel gedaan. De initiële vectoren kunnen dus hetzelfde zijn voor een aantal verzonden pakketten. De initiële vectoren worden ook niet mee geëncrypteerd en ze worden dus voor het versleutelde bericht geplakt.
Wanneer de ontvanger dit versleutelde bericht ontvangt en uitpakt kan deze op basis van de gedeelde geheime sleutel en de initiële vectoren die hij heeft ontvangen, de sleutelstroom genereren. Vervolgens voert hij terug een XOR-bewerking uit op de sleutelstroom en de gecodeerde tekst en door deze bewerking verkrijgt hij de ongecodeerde tekst.
De ontvanger heeft nu het bericht maar hij is nog niet zeker of dit wel degelijk het bericht is dat de zender naar hem heeft verzonden. De ontvanger kan nu nog de controlesom berekenen als een soort extra zekerheid om de authenticiteit van het bericht te verzekeren.
Hieronder een kleine illustratie:
Ongecodeerde tekst
Payload van het veld
controlesom
XOR-bewerking
Sleutelstroom gegenereerd met RC4 (sleutel , iv)
IV
Vercijferde tekst
Verzonden gegevens
4.4.1.2 Nadelen
Het Is niet geschikt voor serieuze databeveiliging aangezien het tegenwoordig binnen enkele minuten gekraakt kan worden. Vroeger had men dit probleem niet omdat de computers trager waren en ze er bijgevolg veel langer over deden om de sleutel te berekenen.
De geheime sleutel is ook dikwijls voor alle gebruikers van hetzelfde basisstation, hierdoor kunnen alle gebruikers elkaars data zien en lezen. Dit is niet erg veilig maar dit principe wordt wel door ethernet wegens zijn snelle werking.
Omdat de initiële vectoren niet mee worden versleuteld kunnen krakers aan de hand hiervan de XOR-bewerking uitvoeren en is de kans groot dat hierdoor ook het stroomcijfer gekraakt wordt.
Er zijn ook maar 17 miljoen mogelijke initiële vectoren omdat dit cijfer uit 24 bits bestaat. Tegenwoordig kan men na een paar uur al deze mogelijkheden hebben opgebruikt en begint het WEP protocol terug van voor af aan. Een kraker kan dan bijhouden welke pakketten er met welke initiële vectoren zijn verstuurd en aan de hand hiervan kan hij de WEP sleutel bekomen.
4.5 Wachtwoord-encryptie
Het beveiligen van wachtwoorden gebeurt meestal op een specialere manier van encryptie. Omdat er enkel gecontroleerd moet worden of de invoer correct is, is het niet nodig dat men het geëncrypteerde wachtwoorden kan decrypten.
Op deze manier verhoogd de veiligheid aanzienlijk omdat het wachtwoord nooit achterhaald kan worden.
Wachtwoorden worden dus vaak met een hashfunctie gecodeert.
4.5.1 Hashfunctie
Een hashfunctie is een functie die de waarden van een bepaalde tekenreeks omzet in gehele getallen. Deze getallen worden dan weer in deelverzamelingen ingedeeld en er worden aparte bewerkingen op uitgevoerd. Meestal worden de deelverzamelingen op het einde opgeteld.
Het woord hash is afkomstig van het Engels wat hakken betekent.
Bij een hashfunctie H gaat men er van uit dat H(x) = H(y) enkel zou resulteren als x = y.
Een goede hashfunctie is er een waar weinig collisions kunnen voorkomen. Een collision komt voor wanneer twee verschillende tekenreeksen dezelfde hash als output hebben.
Een voorbeeld hiervan is de MD5 functie. In bijlage 3 vind je hier meer informatie over.
5 Bijlagen
5.1 Rijndaelalgortime
Rijndael is een cryptografisch algoritme bedacht door Joan Daemen en Vincent Rijmen. In november 2001 werd het algoritme door het Amerikaanse NIST uitgekozen tot de nieuwe Advanced Encryption Standard, de opvolger van de Data Encryption Standard. De naam Rijndael is enigszins afgeleid van "Rijmen" en "Daemen".
Rijndael is een doorontwikkeling van het cryptografisch algoritme Square, terwijl Square een doorontwikkeling is van Shark. Het grote voordeel van Rijndael ten opzicht van DES is dat het zowel in hardware als in software efficiënt te implementeren is. In het DES-algoritme is het namelijk het geval dat in veel stappen bits verwisseld worden. Processoren werken echter op byte-niveau en moeten met losse instructies iedere keer een los bit uit een encryptieblok halen en op de juiste plaats op de bestemming gezet worden. In hardware is dit daarentegen op te lossen met de juiste bedrading.
Rijndael werkt daarentegen met hele bytes zodat een processor simpelweg een byte kan lezen en op de juiste plaats wegschrijven. Niet alleen wordt zo een byte per keer verwerkt (8 keer zoveel dus), er zijn ook geen assemblerinstructies nodig om er losse bits uit te halen. In hardware is het nog steeds een kwestie van bedrading aanleggen.
5.2 XOR-poort
De Exclusive OR (XOR) (Nederlands: EXOF-poort) is een booleaanse operator. De XOR-poort is een logische bouwsteen van digitale schakelingen. De poort heeft twee of meer ingangen en 1 uitgang. De logische toestand van de uitgang is uitsluitend 1 als precies één ingang 1 is. De bepaling exclusief heeft betrekking op het wederzijds uitsluitende karakter van de ingangen voor de functie.
Een XOR-poort met twee ingangen heeft de volgende waarheidstabel:
Ingangen Uitgang
P1 P2 Q
0 0 0
1 0 1
0 1 1
1 1 0
XOR vergelijkt dus booleaanse waarden en daarvan moet er precies één waar (1) zijn. Daar komt ook de naam exclusive OR vandaan: het is hetzelfde als OR, maar is niet waar als meer dan één ingang waar is. In gewoon taalgebruik betekent OR "en/of", en XOR is de "of" daaruit: P1, P2 óf P3, maar niet meer dan één.
5.3 MD5 functie
MD5 (Message Digest Algorithm 5) is een veelgebruikte cryptografische hashfunctie met een 128-bit hashwaarde. MD5 is als internetstandaard (RFC 1321) gebruikt in vele veiligheidstoepassingen en wordt ook gebruikt om de integriteit van bestanden te controleren. MD5 is ontworpen door Ronald Rivest in 1991 om de eerdere hashfunctie MD4 te vervangen. In 1996 werd er een fout in het MD5-ontwerp gevonden; hoewel het geen ernstige fout was werd het aanbevolen om andere algoritmen te gaan gebruiken zoals SHA-1 (hoewel recentelijk wordt gezegd dat ook deze fouten bevat).
In 2004 werden ernstigere fouten gevonden, waardoor het gebruik voor veiligheidstoepassingen twijfelachtig is. In oktober 2005 volgde de publicatie van de broncode van een programma waarmee 'collisions' gevonden kunnen worden. Dit programma genereert een brontekst die dezelfde hashwaarde oplevert als een gegeven hash. Gegeven voldoende rekentijd kan dit altijd, maar het geïmplementeerde algoritme is in staat om op een Pentium IV 1,6 GHz processor in 45 minuten een collision te genereren.
De 128-bit (16-byte) MD5 hashes worden meestal weergegeven als 32-cijferige hexadecimale getallen. Het volgende laat een 46-bytes ASCII invoer en de bijbehorende MD5 hash zien:
MD5("Pa's wijze lynx bezag vroom het fikse aquaduct") = b06c0444f37249a0a8f748d3b823ef2a
Zelfs een kleine verandering in de tekst zal (naar grote waarschijnlijkheid) een compleet andere hash veroorzaken, bijvoorbeeld het vervangen van P naar M:
MD5("Ma's wijze lynx bezag vroom het fikse aquaduct") = de1c058b9a0d069dc93917eefd61f510
De hash van een lege tekenreeks is:
MD5("") = d41d8cd98f00b204e9800998ecf8427e
6 Bronnen
6.1 Definitie encryptie
http://nl.wikipedia.org/wiki/encryptie
http://nl.wikipedia.org/wiki/asymmetrische_cryptografie
http://nl.wikipedia.org/wiki/symmetrische_cryptografie
6.2 Definitie biometrie
http://nl.wikipedia.org/wiki/Biometrie
http://nl.wikipedia.org/wiki/Dna
6.3 Werking encryptie
http://en.wikipedia.org/wiki/Encryptie
http://nl.wikipedia.org/wiki/Brute_force
http://stam.blogs.com/8bits/encryptie/index.html
6.4 Soorten encryptie
6.4.1 Data-encryptie en disk-encryptie
http://en.wikipedia.org/wiki/Disk_encryption_software
http://nl.wikipedia.org/wiki/Advanced_Encryption_Standard
http://nl.wikipedia.org/wiki/XOR
http://nl.wikipedia.org/wiki/Rijndael_%28cryptografie%29
6.4.2 Internet-beveiliging
http://stam.blogs.com/8bits/encryptie/index.html
http://nl.wikipedia.org/wiki/Secure_Sockets_Layer
http://www.ssl.nu/nl/ssl+certificaten/ssl+encryptie/
6.4.3 Mail-encryptie
http://nl.wikipedia.org/wiki/Pretty_Good_Privacy
http://aaa.surfnet.nl/info/pki/pgp.jsp
http://nl.wikipedia.org/wiki/Multipurpose_Internet_Mail_Extensions
http://www.iusmentis.com/beveiliging/emailencryptie/
http://www.tech-faq.com/ylang/nl/s-mime.shtml
6.4.4 Netwerkencryptie
http://nl.wikipedia.org/wiki/WEP
Boek: Netwerkarchitectuur van A. Tanenbaum
Magazine: OpenMagazine 4: september 2004
6.4.5 Wachtwoord-encryptie
http://nl.wikipedia.org/wiki/Hashfunctie
6.5 Bijlagen
6.5.1 Rijndaelalgortime
http://nl.wikipedia.org/wiki/Rijndael_(cryptografie)
5.5.2 XOR-poort
http://nl.wikipedia.org/wiki/XOR
6.5.3 MD5 functie
http://nl.wikipedia.org/wiki/MD5
Besluit
Door encryptie is het mogelijk om gegevens die niet door buitenstaanders mogen gelezen worden te kunnen coderen, zodat deze enkel maar gelezen kunnen worden door de aangewezen personen, ook als deze onderschept zouden worden.
Het probleem met encryptie is dat mensen de illusie van volledige veiligheid krijgen. Men denkt dat dit principe volledig waterdicht is, maar dat is meestal niet het geval. Geen enkele beveiliging is onfaalbaar. Hierdoor gaat men lakser met gevoelige informatie omspringen.
Hierom is het misschien wel nuttig om eens de vraag te stellen of encryptie echt voor meer veiligheid zorgt. Het instellen van een beveiliging heeft een zeer groot psychologisch effect op de gebruiker.
Dit is dan ook de reden waarom men deze encryptie ook met andere zaken gaat combineren. Zoals bij internetbankieren. Hier werkt men tegenwoordig met apparaten waarin men uw bankkaart moet steken om aan te loggen, te betalen, over te schrijven, ….
Encryptie wordt tegenwoordig bijna bij alle transmissies over een netwerk toegepast. Het bekendste type encryptie is WEP. Dit door de opkomst van het draadloos netwerk.
REACTIES
1 seconde geleden