Loading

ENCRYPTIE een VEILIG DIGITAAL special

Betekenis

Binnen de cryptografie staat encryptie voor het coderen (versleutelen) van gegevens op basis van een bepaald algoritme. Deze versleutelde gegevens kunnen nadien weer gedecrypteerd (ontcijferd of gedecodeerd) worden zodat men de originele informatie weer terugkrijgt. Dit proces wordt decryptie genoemd.

Een van de bedoelingen van cryptografie is dat gegevens veilig uitgewisseld kunnen worden tussen twee personen over een onveilig communicatiekanaal, dat wil zeggen een communicatiekanaal waar ook derden toegang toe kunnen hebben, zoals het internet. De versleuteling zorgt er dan voor dat deze derden de gegevens niet kunnen lezen. Dit gebeurt meestal door het gebruik van sleutels. Wat precies een sleutel vormt verschilt per algoritme, maar meestal is een sleutel een reeks van tientallen of honderden cijfers en letters. Het doel van het cryptografische algoritme is ervoor te zorgen dat alleen de personen met de juiste sleutel de versleutelde gegevens weer kunnen ontcijferen.

Dit gebeurt meestal door het gebruik van sleutels. Wat precies een sleutel vormt verschilt per algoritme, maar meestal is een sleutel een reeks van tientallen of honderden cijfers en letters. Het doel van het cryptografische algoritme is dan om er voor te zorgen dat alleen de personen met de juiste sleutel de versleutelde gegevens weer kunnen ontcijferen. Bij de meeste cryptografische algoritmen is het in principe wel mogelijk om zonder de juiste sleutels de versleutelde gegevens te decoderen, maar dit decoderen kost dan zo veel rekenwerk en tijd dat het praktisch onmogelijk is.

Het decoderen van gegevens zonder de juiste sleutel kan op de snelste computers van nu miljarden jaren rekentijd kosten, door alle mogelijke sleutels uit te proberen, totdat er een sleutel wordt gevonden die werkt. Als de sleutel een groot genoeg getal is, zijn zelfs de snelste computers niet in staat om alle mogelijke sleutels in afzienbare tijd uit te proberen. Aangezien computers door de jaren heen steeds sneller worden is het wel nodig om in de loop van de tijd grotere getallen als sleutel te gebruiken. Er zijn grofweg twee vormen van cryptografie: symmetrische en asymmetrische.

Symetrisch
symetrische encryptie

Bij symmetrische cryptografie gebruiken zender en ontvanger dezelfde sleutel. Die sleutel moet van tevoren uitgewisseld worden via een veilig kanaal (waarbij zender en ontvanger elkaars identiteit kunnen controleren en onderschepping van de sleutel door derden niet mogelijk is). Het gebruik van dezelfde sleutel wil niet altijd zeggen dat het coderen en het decoderen identiek zijn. Bij de sleutel Rot13, die bij e-mail veel wordt gebruikt, is dat wel het geval. Wie een gecodeerd bericht opnieuw met ROT13 decodeert, ziet weer het oorspronkelijke bericht. Bij een code als A→B, B→C enz. is dat niet het geval, maar de decodeersleutel kan eenvoudig worden afgeleid uit de codeersleutel. Beide gelden als symmetrische cryptografie.

Asymetrisch
asymetrische encryptie

Moderner is de asymmetrische cryptografie, ook wel public key encryption genoemd. Hierbij hebben zender en ontvanger elk een eigen set van twee sleutels, waarvan er één publiek is en één niet. Het is in theorie mogelijk, maar niet praktisch haalbaar, om de geheime sleutel uit de publieke sleutel af te leiden. Berichten die met een publieke sleutel worden versleuteld, kunnen alleen met de geheime sleutel worden ontcijferd. Met andere woorden: onbevoegden kunnen het bericht niet lezen.

Andersom geldt dit ook: informatie die is vercijferd met de geheime sleutel van iemand, kan alleen met de bijbehorende publieke sleutel worden ontcijferd. Dit laatste wordt gebruikt bij het digitaal ondertekenen van berichten: men heeft de zekerheid dat het bericht afkomstig is van degene die zich de afzender noemt. De publieke sleutel mag aan iedereen bekend zijn en kan dus uitgewisseld worden over een onveilig kanaal zoals internet. Om een bericht te coderen en digitaal te ondertekenen, heeft de zender zijn eigen geheime sleutel nodig én de publieke sleutel van de ontvanger.

Om het ontvangen bericht te decoderen en te verifiëren of de handtekening wel van de zender is, heeft de ontvanger zijn eigen geheime sleutel nodig én de publieke sleutel van de zender. Het grote voordeel van asymmetrische cryptografie is dat uitwisseling van de benodigde sleutels kan plaatsvinden via een onveilig kanaal. Afluisteren van de uitgewisselde informatie - inclusief publieke sleutels - vormt geen enkel probleem. Een onderscheppingsrisico bestaat wel: wanneer zender en ontvanger nalaten te controleren of de gebruikte publieke sleutel inderdaad hoort bij de (beoogde) ander is het voor een derde mogelijk om zich voor te doen als één van de twee partijen. Iedereen kan immers zeggen: “mijn naam is zus-en-zo en hier is mijn publieke sleutel, stuur me nu uw gegevens maar”.

Zender en ontvanger dienen dus langs een betrouwbaar kanaal elkaars identiteit vast te stellen en publieke sleutels te bevestigen. Een nadeel van asymmetrische cryptografie is dat grote sleutellengtes nodig zijn (bijvoorbeeld 4096 bytes), waardoor coderen en decoderen veel rekenkracht vergt. De sleutels moeten groot zijn, omdat het anders mogelijk wordt met een snelle computer de geheime sleutel te vinden. Vaak wordt een combinatie van asymmetrische en symmetrische cryptografie gebruikt: eerst wordt door middel van asymmetrische cryptografie een geheim tussen zender en ontvanger uitgewisseld, die de sleutel vormt voor de snellere symmetrische cryptografie van grote blokken data. Bij de versleuteling van e-mail wordt wel asymmetrische cryptografie toegepast, door PGP, GPG of S/MIME.

Hybride encryptie methodes

Hybride encryptie is het verbinden van symmetrische en asymmetrische cryptosystemen voor de dataoverdracht op internet. Het doel van deze combinatie is om de zwakheden van het ene systeem te compenseren met de sterke punten van het andere. Symmetrische cryptosystemen, zoals AES (Advanced Encryption Standard) worden met de huidige stand van de techniek gezien als veilig en maken het mogelijk om ook grote datahoeveelheden snel en efficiënt te verwerken. Het ontwerp van het algoritme is gebaseerd op een gedeelde privésleutel die veilig uitgewisseld moet worden tussen ontvanger en afzender van een versleuteld bericht. Maar gebruikers van de symmetrische methode zien zich gesteld voor het probleem van de sleutelverdeling.

Dit kan worden opgelost door asymmetrische cryptosystemen. Methodes als RSA zijn afhankelijk van een strikte scheiding van publieke en privésleutels waardoor de overdracht van een privésleutel wordt voorkomen. RSA biedt echter alleen betrouwbare bescherming tegen crypto-analyses wanneer de sleutellengte minstens 1.976 bits is. Dit resulteert in lange berekeningen waardoor het algoritme ongeschikt is voor het versleutelen en ontsleutelen van grote datahoeveelheden. Bovendien is de cijfertekst die moet worden verstuurd na een RSA-encryptie beduidend langer dan de niet-gecodeerde tekst. In hybride encryptie methodes worden asymmetrische algoritmes daarom niet gebruikt om gebruikersdata te versleutelen, maar om de overdracht van een symmetrische session key te beveiligen via een onbeschermd publiek kanaal. Dit maakt het weer mogelijk om een tekst die met behulp van symmetrische algoritmes is versleuteld, efficiënt te ontsleutelen.

Het proces van een hybride encryptie kan in drie stappen worden beschreven:

Sleutelbeleid: bij hybride methodes wordt de symmetrische encryptie van een bericht ingekaderd door een asymmetrische encryptiemethode. Daarvoor moeten zowel asymmetrische (a) als symmetrische sleutels (b) worden gegenereerd:

  • Voor de versleutelde dataoverdracht genereren beide communicatiepartners eerst een asymmetrisch sleutelpaar: een publieke sleutel en een privésleutel. Vervolgens wordt de publieke sleutel uitgewisseld – bij voorkeur beveiligd door een authenticatiemechanisme. Het asymmetrische sleutelpaar is voor het versleutelen en ontsleutelen van een symmetrische session key en wordt over het algemeen meerdere keren gebruikt.
  • Het versleutelen en ontsleutelen van de platte tekst gebeurt met de symmetrische session key. Deze wordt door de afzender van een bericht bij elke encryptie opnieuw gegenereerd.

Encryptie: wanneer een (omvangrijk) bericht veilig via internet moet worden verstuurd, genereert de afzender eerst een symmetrische session key waarmee de gebruikersdata worden versleuteld. Als dat is gedaan, wordt de publieke sleutel van de ontvanger gebruikt voor de asymmetrische encryptie van de session key. Zowel de gebruikersdata als de symmetrische sleutel zijn in versleutelde vorm beschikbaar en kunnen veilig worden verzonden.

Ontsleuteling: wanneer een versleutelde tekst samen met de versleutelde session key bij de ontvanger aankomt, gebruikt die zijn privésleutel om de session key asymmetrisch te ontsleutelen. Die wordt weer gebruikt om de symmetrisch versleutelde gebruikersdata te ontsleutelen.

Volgens dit schema kan een efficiënte encryptiemethode worden gerealiseerd waarmee zelfs omvangrijke gebruikersdata snel en veilig kunnen worden ver- en ontsleuteld. Omdat alleen een korte session key asymmetrisch wordt versleuteld, zijn de verhoudingsgewijze lange berekeningstijden van asymmetrische algoritmes bij de hybride encryptie niet van belang. Het sleutelverdelingsprobleem van de symmetrische encryptiemethode beperkt zich door de asymmetrische encryptie van de session key tot het probleem van de gebruikersauthenticatie. Dit kan bij uitsluitend asymmetrische cryptosystemen worden opgelost door digitale handtekeningen en certificaten.

Hybride encryptie methodes worden gebruikt in de vorm van IPSec waarbij de beveiligde communicatie plaatsvindt via onbeveiligde IP-netwerken. Het Hypertext Transfer Protocol Secure (HTTPS) gebruikt met TLS/SSL ook een hybride encryptieprotocol dat symmetrische en asymmetrische cryptosystemen combineert. Daarnaast is de implementatie van de hybride methode de basis voor encryptiestandaards als Pretty Good Privacy (PGP), GnuPG en S/MIME die worden gebruikt voor de encryptie van e-mails.

Een veelvoorkomende combinatie van hybride encryptie methodes is de symmetrische encryptie van gebruikersdata via AES en de aansluitende asymmetrische encryptie van de session key door middel van RSA. De session key kan ook worden geregeld met de Diffie-Hellman methode. Die kan dienen als Ephemeral Diffie-Hellman Forward Secrecy, maar is vatbaar voor man-in-the-middle aanvallen. Het Elgaman cryptosysteem is een vervanger voor het RSA-algoritme. Deze in 1985 door Taher Elgamal ontwikkelde public key methode is ook gebaseerd op het idee van de Diffie-Hellman sleuteluitwisseling en wordt in de actuele versie van het encryptieprogramma PGP gebruikt.

Hashing

Cryptografische hashing is in strikte zin geen versleuteling, omdat bij hashing uit de verkregen hash code de oorspronkelijke gegevens niet meer terug kunnen worden gehaald. Wel wordt bij hashing gebruikgemaakt van dezelfde technieken als bij versleuteling en vormt hashing ook vaak een onderdeel van versleutelingsprotocollen. Het verschil tussen hashing en encryptie is dus dat hashing maar 1 kant op kan (alleen hashen) en dat er bij encryptie twee kanten op gewerkt kan worden (coderen en decoderen). Bij hashing wordt door middel van een hash algoritme een hashcode berekend van een blok gegevens.

Uit deze hashcode is dan niet meer af te leiden wat de oorspronkelijke gegevens waren, maar iemand die de gegevens heeft kan wel opnieuw daarvan de hashcode berekenen en controleren of de berekende hash code overeenkomt met een eerder verkregen hash code. Aangezien de hash code vaak veel kleiner is dan het oorspronkelijke blok gegevens is het op deze manier mogelijk om bij te houden of een bepaald document al eerder is gezien, zonder dat het hele document hoeft te worden opgeslagen. Ook kan iemand door de hashcode van een document te publiceren bewijzen dat hij beschikt over een document, zonder dat document zelf publiek te maken. Als hij dan op een later moment het document alsnog publiek beschikbaar maakt kan iedereen controleren dat de persoon op het moment dat hij de hash code publiceerde al in het bezit van dat document moet zijn geweest, omdat er geen andere manier is om dezelfde hashcode te berekenen.

Voor een veilige hashcode gelden de eigenschappen dat het gegeven de hashcode niet mogelijk is om te achterhalen achterhalen van welk blok gegevens de hashcode is afgeleid, en verder moet het onmogelijk zijn om twee verschillende blokken gegevens te maken die dezelfde hashcode hebben. Hierdoor heeft een hashcode de eigenschappen van een digitale vingerafdruk.

Hashing van wachtwoorden

Voor de aanmelding bij een computer zijn vaak een naam en een wachtwoord nodig. Deze wachtwoorden worden vaak versleuteld opgeslagen, zodat de wachtwoorden niet bekend worden als het bestand met wachtwoorden door een onbevoegde gelezen wordt. Dit gebeurt door middel van een hashing-algoritme, dat het onmogelijk maakt de versleutelde gegevens te decoderen. Dat is ook niet nodig, aangezien het voldoende is te controleren of de gebruiker het juiste wachtwoord heeft opgegeven. Bij het versleutelen van wachtwoorden is het echter onveilig om gebruik te maken van algemene hash-algoritmen, en dient gebruik te worden gemaakt van speciale hashalgoritmen voor wachwoorden zoals bcrypt, scrypt, of PBKDF. De reden is dat normale hash-algoritmen zijn ontworpen om zo snel mogelijk berekend te kunnen worden.

Bij het hashen van wachtwoorden is dat onwenselijk, omdat het daardoor mogelijk wordt dat iemand die de hashcodes van de wachtwoorden in bezit heeft gekregen achterhaalt welke hashcode van welk wachtwoord is afgeleid. De lengte en complexiteit van wachtwoorden die mensen in de praktijk gebruiken is beperkt, terwijl computers steeds sneller worden. Daardoor wordt het voor iemand die probeert hashcodes voor wachtwoorden te kraken steeds makkelijker om een computer allerlei mogelijkheden te laten uitproberen. Hash-algoritmen voor wachtwoorden blokkeren deze methode doordat voor deze algoritmen in te stellen is hoeveel rekentijd ze moeten kosten. De algoritmen worden dan zo ingesteld dat het uitrekenen ervan bijvoorbeeld één milliseconde kost, terwijl het berekenen van een hashcode met een gewoon hashalgoritme minder dan een microseconde kan kosten. Bij het controleren van een wachtwoord is het meestal geen probleem als dit een milliseconde in plaats van een microseconde kost, terwijl iemand die wil proberen de hashcodes te kraken meer dan duizend keer zo veel rekenwerk moet doen, en dus meer dan duizend keer langer bezig is.

Decryptiebevel

Er is in Nederland een internetconsultatie geweest betreffende het concept-wetsvoorstel computercriminaliteit III met onder meer een wettelijke regeling waarbij aan een verdachte een decryptiebevel kan worden gegeven, in afwijking van het beginsel van nemo tenetur ( Het nemo-teneturbeginsel, of voluit het beginsel van nemo tenetur prodere se ipsum betekent letterlijk dat niemand is gehouden tegen zichzelf (bewijs) te leveren of dat niemand kan worden gedwongen aan zijn eigen veroordeling mee te werken). Kortgeleden heeft het kabinet het decryptiebevel geschrapt uit het wetsvoorstel voor de Wet computercriminaliteit en is afgezien van ‘achterdeurtjes’. Een nadeel voor opsporingsdiensten, een voordeel voor criminelen.

___________________________________________________

© 2018 Veilig Digitaal

Created By
Veilig Digitaal
Appreciate

Report Abuse

If you feel that this video content violates the Adobe Terms of Use, you may report this content by filling out this quick form.

To report a Copyright Violation, please follow Section 17 in the Terms of Use.