Cryptography
Als een bericht over een lijntje gaat kan niemand dat lezen, behalve de ontvanger
Caesar cipher
Bij elke letter 1 optellen
Symmetrical
Zowel verzender als ontvanger hebben dezelfde sleutel
- Gebeurt via dedicated hardware
- Veel gebruikt bij internet
Grootte
Tegenwoordig 128 tot 256 bits
Voordelen
Nadelen
- Sleutel moet afgesproken worden
- Als de sleutel is gevonden, kan er niet ‘in de klas’ een nieuwe sleutel afgesproken worden
Asymmetrical
Verzender en ontvanger hebben verschillende sleutels
- RSA
- public en private key
- Public voor het versleutelen
- Private key voor het ontsleutelen
- Keys van 1024 bits tot 2048 bits
Hoe werkt dat?
Wiskundige operaties, maar dan zo dat je de private key niet kan achterhalen door de public key
- Veel gedaan met:
- Machtsverheffen
- Modulo rekenen
- Grote priemgetallen
// image
Kan ook gebruikt worden voor signen
- Encrypten met private key, decrypten met public key
- Als het bericht ge-decrypt kan worden met marco’s public key, moet het wel van hem afkomstig zijn
// image
Nadelen
- Super traag
- Computer is goed in bit operaties, niet in rekenen
SSL/TLS
Bij verbinding met website via HTTPS:
- Eerst afspreken welke encryptie methode er gebruikt wordt
- ING stuurt public key over de lijn
- Mijn browser maakt een Master Secret
- Mijn browser encrypt het Master Secret met de public key van de ING
- Duurt niet zo heel lang, want is 256 bits groot
- Mijn browser stuurt het ge-encrypte Master Secret naar de ING
- ING decrypt het Master Secret met haar private key
Via het Master Secret wordt er een symmetrische sleutel gemaakt
- Wordt gebruikt voor het encrypten en decrypten van berichten naar de ING
- Na langere tijd wordt er via het Master Secret een nieuwe sleutel gemaakt
- Wordt bewaard in de HTTP session (in-memory)
Man in the middle attack
Er zit een 3e partij tussen mijn browser en de ING
- ING stuurt public key naar de boef
- Boef stuurt eigen public key naar mijn browser
- Mijn browser maakt een Master Secret
- Mijn browser encrypt de Master Secret met de public key van de boef
- De boef decrypt de Master Secret met zijn private key
- De boef encrypt de Master Secret met de public key van de ING
- De boef stuurt de Mster Secret naar de ING
- Alle 3 de partijen genereren een symmetrische key via de Master Secret
- Profit! De boef kan alle berichten lezen omdat die de symmetrische key heeft
Certificate Authority (CA)
Notaris van het internet
- Zegt: Dit is echt de public key van de ING
- ING stuurt gegevens door naar CA (wordt certificaat)
- ING N.V.
- KVK
- Adress
- Public key
- Grote zak geld
- Verisign signeert het cerfiticaat met een digitale handtekening
- Met private key van Verisign
- Mijn browser verifieert het certificaat met de public key van Verisign
- Hoe komen we aan het certificaat van Verisign?
- Weer ge-encrypt met een certificaat van een andere authority
Root certificate / Self signed certificate
Certificaat dat ge-encrypt is met zijn eigen private key
- Bij installatie van windows wordt er een certificate store mee-geinstalleerd
- Bevat al het root certificate van Verisign en andere certificate authorities
- Worden ververst via een windows update
Revocation list
Lijst met certificaten die niet meer te vertrouwen zijn
- Staat in certificate store
Trusted sub-system
[Browser] -> [FE] -> [API]
- De FE machine heeft 2 netwerkkaarten. 1 voor het internet en 1 die aangsloten is op het prive netwerk
- Browser -> FE via HTTPS
- FE -> API via HTTP
Document signen
Heel document signen met public en private key zou super traag worden
- Document wordt gehasht
- Hash wordt ge-encrypt met de private key van de ING
- Levert een encrypted hash op
- Encrypted hash wordt bij het document opgeslagen
- Samen met het certificaat die de public key bevat
Hashing
- Wordt one-way encryption genoemd
- Hash algorithme moet:
- Een totaal andere hash genereren als er ook maar iets verandert in het document
- Over 2 keer hetzelde document dezelfde hash genereren
- Onmogelijk om via een hash een ander document te vinden die dezelfde hash oplevert
Not so salty
Als de DB met hashes gehackt is, kan er een rainbow table gemaakt worden
- Alle mogelijkheden hashen
Wachtwoord eerst bewerken met een of andere salt, levert een hele andere hash op
Algorithms
Symmetric
ROT13
Enigma
- Gekraakt door mister Turing
- Blowfish
- RC2
DES
- Digital Encription Standard
- Te kleine sleutel
- 56 bits
Triple DES
- DES 3 keer met 3 verschillende sleutels
- 168 bits
- Gemaakt door de Amerikaanse geheime dienst
- Bevat S-box dingen
- Niemand weet wat die doen
- Men denkt dat de Amerikaanse geheime dienst een loper heeft voor deze S-boxen
- AES = Rijndael
- Ontstaan door prijsvraag
- Defacto standard
Asymmetric
- RSA
- Staat voor
- Rivest
- Maker van MD4 en MD5
- Maker van RC2
- Shearer
- Adelman
1024 - 2048 bits
- Defacto standard
- Elliptic Curve
- Iets sneller dan RSA
- Grotere sleutels
- Geen priemgetallen
- DSA
- Diffie-Hellman key exchange
- Key Serialization
- Asymmetric Utilities
- X25519 key exchange
Hashing
SHA1
SHA4
- SHA256
- SHA512
MD4
MD5
Initial Vector
Als je een bitje flipt, hebben de volgende 2 blocks hier last van
Invalid padding
Aan het eind van de block range heb je misschien een klein beetje over waar niets ingevuld is
- Aangeven hoeveel van deze bytes echt zijn en hoeveel er padding zijn
- Wordt mee geencrypt en mee gedecrypt