PKI, PGP, GPG etc

Ok. Iemand heeft je ooit iets verteld over veiligheid op het internet.
Een wazig verhaal over sleutels en encryptie enzo.
Lees hier meer over Bob en Alice.

In het kort komt het hier op neer:
Er bestaan veel systemen om gegevens op een veilige(re) manier van A naar B (Alice/Bob) te versturen.
Eén van die manieren is middels public key infrastructure, kortweg: PKI.

Hoe werkt dat:
Alice downloadt speciale software.
Dat kan betaalde software zijn, bijvoorbeeld Pretty Good Privacy, kortweg: PGP of de gratis variant GNU Privacy Guard, kortweg: GPG.
Met behulp van deze software maak je een zogenaamd sleutelpaar; één publieke sleutel en één geheime sleutel.
Nu komt het: Alles wat wordt versleuteld door de publieke sleutel kan alleen worden ontcijferd door de geheime sleutel en vice versa.
Lees dit goed en herhaal het een paar keer hardop. Zorg ervoor dat je het begrijpt en laat het tot je doordringen.
Alles wat wordt versleuteld door de publieke sleutel kan alleen worden ontcijferd door de geheime sleutel
Alles wat wordt versleuteld door de geheime sleutel kan alleen worden ontcijferd door de publieke sleutel

Die geheime sleutel die zet je op floppy of die hang je om je nek; zorg er hoe dan ook voor dat niemand er (fysiek) bij kan.
De publieke sleutel moet je uploaden naar een zogenaamde key server; een server die alle publieke sleutels beheert.
Probeer de link eens en zoek mijn publieke sleutel eens op. Dat gaat op e-mailadres.

Stel:
Je hebt dit allemaal gedaan en iemand anders (die ook in het bezit is van de software) wil *op een veilige manier* post naar jou versturen.
Daartoe vraagt-ie aan de key server jouw publieke sleutel op.
Hij versleutelt het bericht met zijn eigen publieke sleutel (deze staat standaard aan; anders kan-ie het bericht zelf niet meer lezen) en met jouw publieke sleutel.
Daarna kan het bericht alleen nog maar gelezen worden met ofwel zijn geheime sleutel, ofwel de jouwe.
Het bericht gaat, gecodeerd en wel (doch als platte tekst) over het internet en onderweg kan niemand het bericht lezen, want ze beschikken niet over de juiste sleutel.
Je kunt dit systeem overigens niet alleen gebruiken om tekst te versleutelen. Je kunt een digitale handtekening zetten onder digitale tekst, die het resultaat is van de inhoud van de tekst en je geheime sleutel. Een wildvreemde kan aan de hand van je publieke sleutel en het bericht controleren of de handtekening klopt, of het bericht onveranderd is en of het door jou (de eigenaar van de publieke sleutel) is gemaakt/getekend.

Dus:
Met dit systeem is het mogelijk voor mensen die elkaar nog nooit hebben ontmoet, tóch op een veilige manier met elkaar te communiceren, zonder pottenkijkers..
Als iedereen maar gewoon zijn publieke sleutel verstuurt naar de key server, dan staat het een ieder vrij om deze te gebruiken.

Echter:
Er bestaat nog de zogenaamde Man in the Middle Attack
Je moet er zeker van zijn, dat de publieke sleutel die je hebt opgevraagd, daadwerkelijk de juiste publieke sleutel is van degene met wie je wilt communiceren.
Is dit namelijk niet het geval, dan kan het gebeuren dat je vanaf dag 1 te maken hebt met iemand die tussen jou en degene staat met wie je wilt communiceren.
Deze Man in the Middle leest dan de berichten die eigenlijk voor iemand anders bestemd zijn en stuurt ze daarna weer door. Hij doet dus naar twee kanten net alsof hij de persoon aan de andere kant is.
Je kunt dit eenvoudig voorkomen door over en weer elkaars finger print te bevestigen, de digitale vingerafdruk van je sleutel.
Dit doe je natuurlijk bij voorkeur vóórdat je veilig gaat e-mailen, dus per telefoon, fax of In Real Life, kortweg: IRL.

Echter 2:
Er bestaat nog meer gevaar. Om te voorkomen dat kwaadwillende werknemers bedrijfsgeheimen versleutelen en bewust of onbewust onzorgvuldig met hun spullen omgaan, bestaat er de Additional Decryption Key, ofwel de ADK.
Deze ADK is een aanvullende sleutel (noem het een bedrijfssleutel, of een loper), die op dezelfde manier werkt als een gewoon sleutelpaar, alleen komt deze sleutel in alle verkeer voor. Op die manier is het bedrijf altijd in staat om met de geheime ADK-sleutel het bericht te ontcijferen.
Het spreekt voor zich, dat je met de geheime ADK heel voorzichtig moet zijn. Omdat je deze alleen in noodgevallen nodig zult hebben, verdient het de voorkeur om de geheime sleutel van de ADK in een fysieke kluis te bewaren en om deze alleen tevoorschijn te halen als het strikt noodzakelijk is.
Voorts is het verstandig om de sleutel te splitsen, zodat er bijvoorbeeld twee personen voor nodig zijn om de ADK te gebruiken (vergelijkbaar met een dubbele sleutel bij een bankkluisje).

Tot slot:
Je kunt met brute rekenkracht een hoop cijferwerk doen in relatief weinig tijd.
De lengte van je sleutel bepaalt hoelang het theoretisch duurt voordat deze gekraakt kan zijn. Het is daarom raadzaam om je sleutelpaar een uiterste houdbaarheidsdatum mee te geven, de expiry date.
Op deze manier voorkom je dat kwaadwillenden onbeperkt de tijd hebben om je sleutel te kraken. Mochten ze het toch doen, dan kunnen ze slechts beperkte tijd hiervan gebruikmaken.
Het is bijvoorbeeld goed om een sleutelpaar voor een jaar te maken en om daarna je sleutel als ongeldig te bestempelen en iedereen te instrueren om je nieuwe publieke sleutel te gebruiken.
Let er wel op, dat, als je je oude geheime sleutel in de versnipperaar gooit, je nooit meer in staat zult zijn om berichten die evengoed met je *ongeldig geworden* oude publieke sleutel zijn versleuteld, te lezen.
Je doet er dus goed aan je oude geheime sleutels te bewaren, maar ze duidelijk te markeren als verlopen en ze hooguit nog een keertje te gebruiken om iets ouds mee te ontcijferen.

Tot slot 2:
Als ze je écht willen vermoorden, ben je niet paranoïde. Het kan dus nooit kwaad om voorzichtig te zijn.