Je kunt deze presentatie online vinden op:
Eigenlijk zijn het “Public Key Certificaten”.
Je kunt wel zeggen dat jij “Daniël Mostertman” bent, maar hoe weet ik dat zeker?
Hiervoor wordt een vertrouwensketen (ofwel “trust chain”) gebruikt.
Immers:
Als iemand anders die je al vertrouwd een goed woordje voor iemand anders doet, ben je eerder geneigd ook met die nieuwe persoon in zee te gaan.
Je browser of besturingssysteem heeft een zogenaamde “trust store”.
Hierin komt een lijst van instanties voor die jouw browser impliciet vertrouwd.
Deze uitgevende instanties worden Certification Authorities (ofwel “CA”s) genoemd.
In je browser uit dit zich vaak als een lijst van bedrijven met meerdere uitgevende certificaten.
Één zo’n certificaat van zo’n bedrijf wordt eigenlijk al los een CA genoemd.
Het is zéér lastig om als instantie in een “trust store” van een browser te komen, maar ook om daar weer uit te komen.
Het is daarom van groot belang dat wanneer je een CA opereert, deze veilig te stellen.
Oplossing? Je kunt weer een andere CA machtigen om deze om namens jou te laten handelen.
Nu een andere partij de daadwerkelijke uitgifte kan doen, kun je je “Root CA” in de kluis gooien.
Trouwen in het buitenland.
Stel je voor dat een geboorteakte een certificaat is. Als je die in het buitenland wil gaan gebruiken, dien je:
Alléén een beperkt aantal ambtenaren zijn bevoegd de benodigde apostille-stempels te zetten. Meestal naast de burgermeester slechts één of twee. Bij de rechtbank is dit niet anders: Uitsluitend de president van de rechtbank mag dit doen.
Keys (sleutels) worden o.a. gebruikt voor versleuteling (encryption) en ondertekening (signatures) van data. Ze worden vaak in paren gemaakt. Vaak wordt er gebruik gemaakt van “asymmetric keys”.
Asymmetrisch houdt in dat:
De tegenpool, symmetrisch:
Symmetrisch heeft een bepaald nut, maar asymmetrisch biedt veel meer belangrijke voordelen.
Asymmetrisch wordt gebruikt voor o.a. SSL-certificaten, PGP en DNSSEC.
Je kunt op verschillende manieren een key maken. De meest bekende standaarden die op dit moment actief gebruikt worden zijn RSA en Elliptic Curve.
Bij ondertekening (signatures) wordt in de simpelste vorm een tekstuele waarde bepaald van de te versturen informatie. Deze waarde is vrijwel onmogelijk om na te bootsen. Als er ook maar één karakter in de originele informatie veranderd wordt, veranderd deze waarde al.
Deze waardes noemen we hashes. Deze worden berekend middels algoritmen zoals:
Zo’n zogenaamde “checksum” encrypt je vervolgens met je private key. Deze stuur je vervolgens met de informatie mee naar de ontvanger.
De ontvanger:
Komen deze overeen, dan bewijs je daarmee dat:
Bij Let’s Encrypt en andere partijen krijg je vaak meerdere bestanden aangeleverd:
cert.pem
(het server-certificaat)chain.pem
(de intermediary certificaten)fullchain.pem
(een samengevoegde variant van de twee bovenstaanden, deze heb je nodig!)privkey.pem
(de private key die gebruikt is voor het server-certificaat)Je gebruikt over het algemeen
fullchain.pem
enprivkey.pem
.
De intermediaries kunnen ook als bestanden aangeleverd worden wiens naam lijkt op dat van de CA, kijk in dat geval op de website van de uitgever.
fullchain.pem
hebt …“Concat” dan het server-certificaat en alle intermediaries:
cat cert.pem chain.pem > fullchain.pem