Cryptografie-tutorial

โšก Slimme samenvatting

Cryptografie beschermt informatie door deze om te zetten in een voor mensen onleesbare vorm die alleen de bezitter van de juiste sleutel kan ontcijferen. Deze pagina behandelt de kenmerken, toepassingen, algoritmen en een praktische oefening met CrypTool.

  • ๐Ÿ” Kernidee: Versleuteling zet platte tekst om in een cijfer; ontsleuteling keert dit om met behulp van een geheime sleutel.
  • ๐Ÿงฉ Drie disciplines: Cryptografie verbergt betekenis, cryptanalyse ontrafelt die, en cryptologie omvat beide.
  • ๐Ÿ“ Algoritmefamilies: Hashfuncties, symmetrische cijfers en systemen met publieke sleutels lossen verschillende problemen op.
  • โœ… Huidige normen: AES en SHA-2 blijven goedgekeurd, terwijl MD5, SHA-1 en RC4 als defect worden beschouwd.
  • ๐Ÿงช Praktische oefening: CrypTool 1 demonstreert RC4-encryptie en brute-force-analyse van een 24-bits sleutel.
  • ๐Ÿ”ฎ Vooruit kijken: NIST publiceerde in augustus 2024 zijn eerste post-kwantumstandaarden.

Cryptografie-tutorial

Informatie speelt een cruciale rol in het bedrijfsleven, de overheid en militaire operaties, en informatie in de verkeerde handen kan leiden tot omzetverlies of erger. Om communicatie te beveiligen, gebruikt een organisatie cryptografie om informatie te versleutelen โ€“ deze om te zetten in een voor mensen onleesbare vorm en vervolgens weer terug.

In dit artikel over cryptografie en netwerkbeveiliging leer je hoe cryptografie werkt en hoe je kunt voorkomen dat informatie in verkeerde handen valt.

Wat is cryptografie?

Cryptografie is de studie en toepassing van technieken die de werkelijke betekenis van informatie verbergen door deze om te zetten in voor mensen onleesbare formaten en weer terug.

Neem bijvoorbeeld het volgende. Om "IK HOU VAN APPELS" te versturen, vervang je elke letter door de derde opeenvolgende letter van het alfabet, wat resulteert in "K NQXG CRRNGU". Om dit te lezen, gaat de ontvanger drie letters terug, zoals hieronder weergegeven.

Cijfercodering en -ontcijfering waarbij elke letter drie plaatsen wordt verschoven.
Cipher-codering en decodering

Het omzetten van informatie in een vorm die niet door mensen leesbaar is, wordt genoemd encryptieen het omkeren ervan wordt genoemd decryptieHet versleutelde resultaat staat bekend als een cijfer.

Voor decryptie wordt een geheime sleutel gebruikt die alleen bekend is bij de rechtmatige ontvangers. Omdat de sleutel vereist is, blijft de communicatie veilig, zelfs als een aanvaller de versleutelde tekst onderschept, wat zonder de sleutel immers zinloos zou zijn.

Kenmerken van cryptografie

Een cryptografisch systeem wordt beoordeeld op de onderstaande kenmerken.

Kenmerk Wat het betekent
Algoritme De gepubliceerde wiskundige procedure die de transformatie uitvoert.
Vertrouwelijkheid Alleen degenen die de sleutel bezitten, kunnen de beveiligde gegevens lezen.
Integrity Elke wijziging in de gegevens is detecteerbaar.
Aanpassingsvermogen Het schema past zich aan verschillende sleutelgroottes en dreigingsniveaus aan.
Interoperabiliteit Verschillende systemen en leveranciers wisselen beschermde gegevens uit.
authenticatie De herkomst van een bericht kan worden bewezen.
Schaalbaarheid De prestaties blijven stabiel, zelfs bij toenemende datavolumes.
Sleutelbeheer Sleutels worden op een veilige manier gegenereerd, opgeslagen, geroteerd en buiten gebruik gesteld.

Toepassingen van cryptografie

Die eigenschappen worden alledaagse diensten waar mensen op vertrouwen zonder het te beseffen.

Toepassing Hoe cryptografie wordt gebruikt
TLS-codering Beschermt het verkeer tussen een browser en een website.
Wachtwoordopslag Slaat versleutelde hashes op in plaats van leesbare wachtwoorden.
Online bankieren Beveiligt transacties en verifieert de bank.
Cryptovaluta Ondertekent transacties en koppelt blokken met hashes.
Versleutelde e-mail Zorgt ervoor dat de inhoud van berichten privรฉ blijft tijdens verzending en opslag.
Digital handtekeningen Bewijst het auteurschap en dat een document ongewijzigd is gebleven.
Veilige berichtenuitwisseling Past end-to-end-encryptie toe tussen apparaten.
E-commerce Beschermt kaartgegevens tijdens het afrekenen.

Wat is cryptoanalyse?

Cryptanalyse is de kunst van het decoderen van berichten zonder de sleutel die gebruikt is om ze te versleutelen. Het maakt gebruik van wiskundige analyses en algoritmen om versleutelingen te ontcijferen en wordt gebruikt om systemen te kraken en, ter verdediging, om te meten hoeveel bescherming een algoritme biedt.

Het succes van een cryptanalyse-aanval hangt af van:

  • Hoeveelheid beschikbare tijd
  • Rekenkracht beschikbaar
  • Opslagcapaciteit beschikbaar

De volgende cryptoanalyse-aanvallen worden vaak besproken:

  • Brute aanval โ€” probeert elke mogelijke combinatie van de platte tekst of sleutel, versleutelt elke combinatie en vergelijkt deze met de oorspronkelijke versleuteling.
  • Woordenboekaanval โ€” gebruikt een woordenlijst om de platte tekst of de sleutel te matchen. Het wordt vooral gebruikt wanneer men probeert om versleutelde wachtwoorden kraken.
  • Regenboogtafelaanval โ€” vergelijkt de versleutelde tekst met vooraf berekende hashes om overeenkomsten te vinden. Het toevoegen van een zoutwaarde aan elk opgeslagen wachtwoord maakt het onbruikbaar.

Wat is cryptologie?

Cryptologie is het overkoepelende vakgebied dat cryptografie en cryptanalyse combineert. Beide onderdelen zijn belangrijk: een algoritme wordt pas als betrouwbaar beschouwd als cryptanalisten hebben geprobeerd het te kraken en daarin zijn mislukt.

Encryptie Algorithms

De onderstaande algoritmen duiken regelmatig op in beveiligingsonderzoek. Let op welke nog steeds goedgekeurd zijn en welke alleen nog in verouderde systemen voorkomen.

  • MD5 MD5 staat voor Message-Digest 5 en produceert 128-bits hashwaarden. MD5 is een hashfunctie en geen... encryptieHet is dus per definitie niet omkeerbaar. Het is niet bestand tegen botsingen โ€” twee verschillende invoerwaarden kunnen dezelfde hash opleveren โ€” en is ongeschikt voor wachtwoorden of handtekeningen.
  • SHA โ€” deze algoritmefamilie, een afkorting voor Secure Hash Algorithm, genereert gecondenseerde representaties van een bericht, een zogenaamde berichtsamenvatting:
    • SHA-0: produceert 160-bits hashwaarden. Het werd vanwege een significante fout teruggetrokken en vervangen door SHA-1.
    • SHA-1Deze functie produceert hashwaarden van 160 bits. In 2017 werd een praktische botsing aangetoond, waarna NIST het gebruik ervan voor digitale handtekeningen verbood. Vermijd deze functie dus.
    • SHA-2Een familie van zes functies, waaronder SHA-256 en SHA-512, die respectievelijk werken met 32-bits en 64-bits woorden. Beide zijn nog steeds goedgekeurd.
    • SHA-3Deze methode, gestandaardiseerd in 2015 en voorheen bekend als Keccak, maakt gebruik van een ander intern ontwerp als back-up voor SHA-2.
  • AES โ€” De Advanced Encryption Standard (AES) is de symmetrische blokversleuteling die tegenwoordig de meeste data in rust en tijdens transport beschermt, met sleutels van 128, 192 en 256 bits. Het verving DES en is de standaard voor nieuwe systemen.
  • RC4 โ€” een stroomcijfer dat ooit veel voorkwam in Secure Sockets Layer (SSL) en Wired Equivalent Privacy (WEP). Beide protocollen zijn verouderd en RFC 7465 verbood RC4 in alle versies van TLS in 2015. Het wordt hier bewaard als een voorbeeld ter illustratie.
  • Blowfish โ€” een sleutelgebaseerde symmetrische blokversleuteling die van oudsher werd gebruikt voor wachtwoorden en bestanden. De blokgrootte van 64 bits maakt AES de betere moderne keuze.

Vooruitkijkend publiceerde NIST in augustus 2024 zijn eerste post-kwantumstandaarden: ML-KEM voor sleuteluitwisseling, ML-DSA en SLH-DSA voor digitale handtekeningen. Deze zullen de huidige publieke-sleutelalgoritmen geleidelijk vervangen.

Hackactiviteit: Hoe maak je een versleuteling met CrypTool?

In deze praktische CrypTool-oefening maak je een eenvoudige versleuteling met RC4 en kraak je deze vervolgens met een brute-force-analyse, ervan uitgaande dat de sleutel 24 bits lang is. Het doel is om aan te tonen waarom een โ€‹โ€‹korte sleutel en een gebroken versleuteling geen echte bescherming bieden.

Het RC4-streamcijfer maken

Stap 1) Download en installeer CrypTool

CrypTool 1 is een open-source educatief hulpmiddel voor cryptologie. De actieve ontwikkeling is inmiddels overgegaan naar CrypTool 2, maar versie 1.4.42 draait nog steeds op CrypTool 1. Windows en komt overeen met de onderstaande schermen. Download het van cryptool.org.

Stap 2) Open CrypTool en vervang de tekst.

De te versleutelen zin is Onderschat nooit de vastberadenheid van een kind dat tijdrijk is en weinig geld heeftDe sleutel is 00 00 00.

  • Open CrypTool 1.

Het hoofdvenster van CrypTool 1 voordat de voorbeeldtekst wordt vervangen.

  • Vervang de tekst door de bovenstaande zin.

CrypTool-document met de vervangende zin

Stap 3) Versleutel de tekst

  • Klik op het menu Versleutelen/Ontsleutelen.

CrypTool Versleutelen/Ontsleutelen-menu met Symmetrisch modern geselecteerd

  • Wijs naar Symmetrisch (modern) en selecteer vervolgens RC4.

CrypTool RC4 sleutelinvoerdialoog

Stap 4) Selecteer de versleutelingssleutel

  • Selecteer 24 bits als sleutellengte.
  • Stel de waarde in op 00 00 00.
  • Klik op Versleutelen om de onderstaande stroomcodering te genereren.

Het resulterende RC4-stroomcijfer wordt weergegeven in CrypTool.

Het stroomcijfer aanvallen

Stap 5) Start de analyse

  • Klik op het menu Analyse.

CrypTool-analysemenu met de moderne optie voor symmetrische encryptie gemarkeerd.

  • Wijs naar Symmetrische versleuteling (modern) en selecteer vervolgens RC4.

CrypTool brute-force analysedialoog voor RC4

  • Er wordt uitgegaan van een geheime sleutel van 24 bits, dus kies 24 bits als sleutellengte.
  • Klik op Start.

CrypTool brute-force analyse voortgangsvenster

  • Let op: De benodigde tijd hangt af van de verwerkingscapaciteit van de gebruikte machine en de lengte van de sleutel. Een langere sleutel duurt langer, daarom zijn moderne sleutels 128 bits of langer.

Stap 6) Analyseer de resultaten

  • Na afloop van de analyse worden de kandidaatsleutels in de volgende volgorde weergegeven.

CrypTool brute-force resultaten gerangschikt op entropie

  • Let op: Een lagere entropiewaarde duidt meestal op het juiste resultaat, hoewel een hogere waarde ook juist kan zijn.
  • Selecteer de regel die als zinnige tekst wordt gelezen en klik vervolgens op 'Selectie accepteren'.

Veelgestelde vragen

Symmetrische encryptie maakt gebruik van รฉรฉn gedeelde sleutel en is snel, waardoor het grote hoeveelheden data beschermt. Asymmetrische encryptie gebruikt een paar publieke en private sleutels, wat het probleem van sleuteldistributie oplost en digitale handtekeningen mogelijk maakt.

Nee. Versleuteling is omkeerbaar met een sleutel; hashing is een eenrichtingstransformatie naar een hash met een vaste lengte. Wachtwoordsystemen slaan hashes met een zoutwaarde op, juist omdat de oorspronkelijke waarde niet kan worden hersteld.

Een salt is een unieke, willekeurige waarde die naast elke wachtwoordhash wordt opgeslagen. Hierdoor worden identieke wachtwoorden verschillend gehasht, wat het gebruik van vooraf berekende rainbow tables omzeilt en een aanvaller dwingt om elk account afzonderlijk te kraken.

Een digitaal certificaat koppelt een publieke sleutel aan een geverifieerde identiteit en is ondertekend door een certificeringsinstantie. Browsers controleren die handtekening voordat ze de versleutelde verbinding met een website vertrouwen.

Een grote kwantumcomputer zou RSA- en elliptische-kromme-sleutels kraken, terwijl symmetrische versleuteling alleen grotere sleutels nodig heeft. NIST heeft hierop gereageerd door in 2024 post-kwantumstandaarden te publiceren, zodat de migratie vroegtijdig kan beginnen.

Machine learning kraakt geen sterke, moderne versleutelingen. Het wordt in plaats daarvan gebruikt voor side-channel-analyse, het opsporen van zwakke of hergebruikte sleutels op grote schaal, en het signaleren van afwijkend versleuteld verkeer tijdens dreigingsdetectie.

Copilot versnelt het schrijven van standaardcode, maar stelt vaak verouderde algoritmes of hardgecodeerde sleutels voor. Beschouw elke suggestie als een concept, geef de voorkeur aan een beproefde bibliotheek boven zelfgeschreven code en laat een reviewer de sleutelafhandeling controleren.

Beveiligingsengineers, penetratietesters en forensische analisten passen het dagelijks toe, en het vormt een volledig domein van het vakgebied. CISSP-certificeringDe meeste functies richten zich op het configureren van gecontroleerde bibliotheken in plaats van het ontwerpen van algoritmen.

Vat dit bericht samen met: