DotnetMinorNotes

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

Grootte

Tegenwoordig 128 tot 256 bits

Voordelen

Nadelen

Asymmetrical

Verzender en ontvanger hebben verschillende sleutels

Hoe werkt dat?

Wiskundige operaties, maar dan zo dat je de private key niet kan achterhalen door de public key

// image

Kan ook gebruikt worden voor signen

// image

Nadelen

SSL/TLS

Bij verbinding met website via HTTPS:

  1. Eerst afspreken welke encryptie methode er gebruikt wordt
  2. ING stuurt public key over de lijn
  3. Mijn browser maakt een Master Secret
  4. Mijn browser encrypt het Master Secret met de public key van de ING
    • Duurt niet zo heel lang, want is 256 bits groot
  5. Mijn browser stuurt het ge-encrypte Master Secret naar de ING
  6. ING decrypt het Master Secret met haar private key

Via het Master Secret wordt er een symmetrische sleutel gemaakt

Man in the middle attack

Er zit een 3e partij tussen mijn browser en de ING

  1. ING stuurt public key naar de boef
  2. Boef stuurt eigen public key naar mijn browser
  3. Mijn browser maakt een Master Secret
  4. Mijn browser encrypt de Master Secret met de public key van de boef
  5. De boef decrypt de Master Secret met zijn private key
  6. De boef encrypt de Master Secret met de public key van de ING
  7. De boef stuurt de Mster Secret naar de ING
  8. Alle 3 de partijen genereren een symmetrische key via de Master Secret
  9. Profit! De boef kan alle berichten lezen omdat die de symmetrische key heeft

Certificate Authority (CA)

Notaris van het internet

Root certificate / Self signed certificate

Certificaat dat ge-encrypt is met zijn eigen private key

Revocation list

Lijst met certificaten die niet meer te vertrouwen zijn

Trusted sub-system

[Browser] -> [FE] -> [API]

Document signen

Heel document signen met public en private key zou super traag worden

  1. Document wordt gehasht
  2. Hash wordt ge-encrypt met de private key van de ING
    • Levert een encrypted hash op
  3. Encrypted hash wordt bij het document opgeslagen
    • Samen met het certificaat die de public key bevat

Hashing

Not so salty

Als de DB met hashes gehackt is, kan er een rainbow table gemaakt worden

Wachtwoord eerst bewerken met een of andere salt, levert een hele andere hash op

Algorithms

Symmetric

Asymmetric

Hashing

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