Next Previous Contents

3. Sleutels gebruiken

3.1 Een Sleutel aanmaken

Met

gpg --gen-key
Wordt een nieuw sleutelpaar gemaakt (sleutelpaar: geheime en publieke sleutel). De eerste vraag is welk alogritme gebruikt wordt. Je kunt meer lezen over de algoritmes in PGP DH vs. RSA FAQ of in Applied Cryptography. Je kunt gemakkelijk (en eigenlijk zou je dat ook moeten doen) DSA/ ElGamal gebruiken. Deze is niet gepatenteerd.

De volgende vraag is de lengte van de sleutel. Dit is afhankelijk van je eigen wensen. Je moet een keuze maken tussen veiligheid en rekentijd. Wanneer de sleutel langer is, is het risico dat de boodschap gekraakt wordt minder groot. Echter, een langere sleutel vergt ook meer rekentijd. Als rekentijd een punt is moet je nog steeds in gedachten houden dat je de sleutel een langere tijd gaat gebruiken. We weten allemaal dat de snelheid van computers toeneemt omdat processors steeds sneller en sneller worden. Houdt dit dus in gedachten. De minimale sleutellengte die GnuPG gebruikt is 768 bits. Hoewel, veel mensen vinden dat je eigenlijk een sleutel lengte van 2048 bits zou moeten gebruiken, het maximum wat GnuPG momenteeel aan kan. Voor DSA is 1024 bits de standaard lengte. Wanneer de veiligheid de hoogste prioriteit heeft en rekentijd minder zwaar weegt moet je natuurlijk de grootst mogelijke sleutellengte kiezen.

Het systeem vraagt nu om je naam, een omschrijving en je e-mail adres in te voeren. De code wordt op basis van deze gegevens berekend. Naderhand kun je deze items nog wijzigen. Zie Sleutels Administreren.

Tenslotte moet je een wachtwoord invoeren (eigenlijk is het meer een 'wachtzin', aangezien er ook spaties in voor mogen komen). Dit wachtwoord wordt gebruikt om de funkties die bij je geheime sleutel horen te kunnen gebruiken. Een goed wachtwoord voldoet aan het volgende:

Door soms HoOfdlETters te gebruiken en sOMs NieT kun je nog meer veiligheid inbouwen. Wanneer je je wachtwoord bedenkt, zorg er voor dat je het NOOIT MEER VERGEET, aangezien je boodschappen dan onleesbaar zijn en je geheime sleutel dus onbruikbaar is. Het kan verstandig zijn om een soort certificaat met deze informatie te maken (uiteraard wel voorzichtig zijn dat niemand je wachtwoord in handen krijgt). Zie Intrekken.

Als alles ingevoerd is begint het systeem de sleutels te genereren. Dit kan een tijdje duren. Gedurende die tijd wordt er veel toevallige (random) informatie verzameld. Door in de tussentijd op een ander scherm en met andere programma's door te werken help je het systeem goede random informatie te verzamelen. Je zult begrijpen dat er nooit de zelfde sleutel twee keer gegenereerd wordt. Iedere keer is de sleutel weer anders. Wanneer je nu een sleutel aanmaakt, en over 5 minuten weer met exact dezelfde invoer, krijg je twee verschillende sleutels. Nu begrijp je dus ook waarom je je wachtwoord niet moet vergeten.

3.2 Sleutels Exporteren

Het commando om de sleutel van een gebruiker te exporteren is:

gpg --export [UID]
Als er geen UID aangegeven is worden alle aanwezige sleutels geexporteerd. Normaliter gaat de uitvoer naar stdout. Met de -o optie is dit naar een file te sturen. Het kan aan te raden zijn de -a optie te gebruiken om de sleutel in 7-bits ASCII te schrijven inplaats van in een binaire file.

Door publieke sleutels te exporteren verbreedt je je horizon. Anderen kunnen je dan op een beveiligde manier benaderen. Je kunt dit doen door je publieke sleutel op je homepage te publiceren, met finger, met een sleutel server zoals http://www.pca.dfn.de/dfnpca/pgpkserv/ of iedere andere methode die je kunt bedenken.

3.3 Sleutels Importeren

Wanneer je iemands publieke sleutel (of diverse publieke sleutels) hebt ontvangen, moet je ze aan je sleutel database toevoegen om ze te kunnen gebruiken. Het commando om een sleutel aan je database toe te voegen ziet er zo uit:

gpg --import [Filename]
Als je de Filename er niet bij zet wordt de informatie van stdin gelezen.

3.4 Sleutels Intrekken

Er zijn verscheidene redenen denkbaar waarom je een bestaande sleutel zou willen intrekken. De gehieme sleutel kan bij voorbeeld gestolen zijn of in verkeerde handen gevallen, the UID is veranderd of de sleutel is niet lang genoeg meer, etc. In al deze gevallen is het commando om de sleutel in te trekken:

gpg --gen-revoke
Dit creeert een intrek-certificaat. Om dit te doen heb je een gehieme sleutel nodig, anders zou iedereen je certificaat kunnen intrekken. Dit heeft een nadeel. Als ik het wachtwoord niet ken is de sleutel onbruikbaar. Maar ik kan de sleutel niet intrekken ! Om dit probleem te voorkomen is het wijs een intrek-certificaat te maken wanneer je een sleutelpaar maakt. Als je dat doet, bewaar het op een veilige plaats ! Zorg er wel voor dat dit certificaat niet in verkeerde handen valt !! Je wilt natuurlijk voorkomen dat iemand anders het intrek-certificaat op jouw sleutel toepast en de sleutel onbruikbaar maakt.

3.5 Sleutels Administreren

Bij het GnuPG systeem hoort een file die dienst doet als een soort database. In deze file wordt allerlei informatie over de sleutels opgeslagen. Onder andere de Ownertrust waarden. Voor meer informatie hierover, lees Sleutels signeren). Met

gpg --list-keys
worden alle aanwezige sleutels getoond. Om ook de signaturen te zien, type:
 gpg --list-sigs 
(zie Sleutels signeren voor nadere informatie). Om de vingerafdrukken te zien, type:
gpg --fingerprint 
Met vingerafdrukken ("Fingerprints") kun je je er van verzekeren dat iemand werkelijk de persoon is die hij of zij beweert te zijn (bij voorbeeld met een telefoongesprek). Dit commando geeft een lijst van kleine getallen.

Om de geheime sleutels te laten zien type je:

gpg --list-secret-keys
Merk op dat het tonen van vingerafdrukken en signaturen van prive sleutels geen enkel nut heeft.

Om een publieke sleutel te verwijderen type je:

gpg --delete-key UID 
Om een geheieme sleutel te verwijderen type je:
 gpg --delete-secret-key 

Er is nog een belangrijk commando om met sleutels om te gaan.

gpg --edit-key UID
Hiermee kun je onder andere de afloopdatum aanpassen, een vingerafdruk toevoegen en een sleutel signeren.

3.6 Sleutels signeren

Zoals reeds vermeld in de inleiding, er is een significante Achilleshiel in het systeem. Dat is de authenticiteit van publieke sleutels. Als je een verkeerde publieke sleutel hebt, kun je wel dag zeggen tegen de waarde van de versleuteling. Om dit risico het hoofd te bieden is er de mogelijkheid om sleutels te signeren. Je plaatst dan je handtekening over de sleutel, zodat je absoluut zeker weet dat het de juiste sleutel is. Dit geeft de situatie waarin de handtekening bevestigt dan de user ID die in de sleutel genoemd is daadwerkelijk de eigenaar van de sleutel is. Met deze zekerheid kun je beginnen met encrypten.

Gebruik makend van het gpg --edit-key UID commando voor de sleutel die gesigneerd moet worden, kun je de sleutel signeren met het sign commando.

Je moet alleen een sleutel signeren als zijnde authentiek wanneer je ABSOLUUT ZEKER bent van de authenticiteit van de sleutel !!!!!. Dus als je zeker weet dat je de sleutel persoonlijk overhandigd hebt gekregen (zoals op een key signing party) of je hebt de sleutel op een andere manier verkregen en de sleutel hebt gecontroleerd (bij voorbeeld telefonisch) met behulp van de vingerafdruk. Je moet nooit een sleutel signeren gebaseerd op welke aanname dan ook.

Gebaseerd om de beschikbare signaturen en "ownertrusts" bepaalt GnuPG de validiteit van sleutels. Ownertrust is een waarde waarmee je aangeeft tot op welk niveau je een bepaalde sleutel vertrouwt. De mogelijke waarden zijn

Als je de signatuur niet vertrouwt kun je dat aangeven en daarmee de signatuur negeren. Vertrouwensinformatie wordt niet in dezelfde file opgeslagen als de sleutels, maar in een aparte file.


Next Previous Contents