-----BEGIN PGP SIGNED MESSAGE----- Comment: This is the Dutch PGP FAQ. PGP (PRETTY GOOD PRIVACY) VEEL VOORKOMENDE VRAGEN PGPFAQNL/PGPVVV 1.1 -- 29 april 1997 (c) copyright 1996,1997, all rights reserved Wouter van den Berg Nieuwste versie : Vrij verspreidbaar mits onveranderd, in zijn geheel, en gratis. Commentaar en aanvullingen naar [1] inleiding (waar vind ik de nieuwste versie van deze VVV?) [1.1] URLs : wat zijn al die rare tekentjes? [1.2] wat een domme FAQ! ik wil klagen! [2] wat is PGP? [2.1] waarom heb ik PGP nodig? [2.2] hoe werkt PGP? [2.3] (il)legaliteit [2.4] waar kan ik PGP krijgen? [2.5] versies [2.6] hoe veilig is PGP? [3] hoe installeer ik PGP? [3.1] het maken van een sleutelpaar [3.2] Nederlandse taalmodule [3.3] Back-ups [3.4] een goede wachtzin (passphrase) verzinnen [4] hoe gebruik ik PGP? [4.1] coderen [4.2] decoderen [4.3] ondertekenen [4.4] shells [4.5] anonymous remailers en PGP [4.6] PGP thuis en op werk gebruiken [5] hoe ga ik met sleutels om? [5.1] ondertekenen [5.2] meerdere sleutels/meerdere userids, user-id veranderen [5.3] keyservers [5.4] wat als mijn prive sleutel gestolen is? [6] problemen [6.1] oude PGP decodeert bericht nieuwe PGP niet [6.2] clearsigning doet raar met streepjes [6.3] meerder bestanden tegelijk coderen [6.4] pgppass [6.5] virus in randseed.bin [6.6] PAS OP : swapfiles.. [6.7] Engelse woorden [6.8] Passhrase vergeten [6.9] tenslotte [7] bronnen [7.1] shells en utilities [7.2] bbs-en 1 inleiding (waar vind ik de nieuwste versie van deze VVV?) Deze lijst van Veel Voorkomende Vragen (VVV), of in het Engels FAQ, is bedoeld als een inleiding bij het programma PGP, en ook als een praktische gids voor het gebruik ervan. Hoewel er veel documentatie beschikbaar is voor PGP, is deze meestal Engelstalig. In dit document worden voor sommige technische termen zoals 'clear-sign' toch de Engelse termen gehandhaafd, bij gebrek aan degelijke Nederlandse vertalingen, en om verwarring te voorkomen. Zie [6.7] Deze VVV is gemaakt door mij aan de hand van zeer vele bronnen, waaronder de uitstekende (Engelse) documentatie van PGP zelf. Zie [7] voor een overzicht van plaatsen waar meer informatie te vinden is. Deze VVV is beschermd door auteursrecht, maar mag vrijelijk verspreid worden zolang hij 1) niet veranderd, 2) in zijn geheel en 3) zonder geld ervoor te vragen, verspreid wordt. Commentaar en aanvullingen op deze VVV kun je me sturen op De nieuwste versie van deze faq kun je vinden via het WWW op , of Er is nu ook een Nederlandse nieuwsgroep over cryptografie en cryptanalyse Let goed op : de bestandsnamen van deze VVV zijn pgpvvvXX.txt, pgpvvvXX.zip en pgpvvvXX.htm, waar XX vervangen moet worden met het huidige versienummer (bijvoorbeeld 10 voor versie 1.0). Let ook op de datum die in de VVV vermeld staat. Als de VVV die je hebt erg oud is, kun je beter even kijken of er al een nieuwere versie is. De PGPfaqNL/PGPVVV is met behulp van PGP ondertekend (vanaf versie 1.0), in zowel de tekstversie als de World Wide Web versie in HTML. Om deze ondertekening te controleren, kun je mijn publieke sleutel afhalen van een van de PGPfaqNL/PGPVVV homepages, of van een keyserver. (Meer informatie over keyservers : Zie [5.3]) Het User-Id is Wouter van den Berg , het nummer is 18815205 (oftewel 0x18815205). De publieke sleutel wordt ook meegeleverd in het ZIP archief in het bestand sleutel.asc Het bestand dat overblijft na het contoleren van de ondertekening van de HTML-versie van de FAQ is geen goede HTML, en kan er raar uitzien.. Het originele bestand moet je gebruiken om te bekijken met een browser. Deze faq zou niet in deze vorm mogelijk zijn geweest zonder de kritiek en het commentaar van de betatesters -- bedankt! 1.1 URLs : wat zijn al die rare tekentjes? URLs (Uniform Resource Locators) zijn eigenlijk een manier om internet-adressen op te schrijven. Een voorbeeld van een URL is http://huizen.dds.nl/~wfberg/pgp/ het adres van de homepage van deze FAQ op het World Wide Web. Er zijn naast het WWW echter ook andere soorten van informatie op het net te vinden. Adressen van bestanden beginnen meestal met ftp, en nieuwsgroepen zien er uit als news:nl.comp.crypt Om duidelijker te maken, voornamelijk voor computerprogramma's dan, kan je er ook nog een haakje < , URL: voorzetten en een haakje > erachter.. Dus: .. E-mail adressen, zoals faq-nl-admin@mail.pgp.net worden dus gespeld als Als je deze FAQ in de HTML-versie leest, dan zijn er ook nog links aangegeven, die geen URL bevatten, maar een nummer. Dit nummer verwijst dan naar een nummer van een paragraaf in de FAQ. Door op [1.1] te klikken, spring je dus hier naar toe. 1.2 wat een domme FAQ! ik wil klagen! Commentaar, kritiek, en aanvullingen op deze faq zijn welkom op , en kan eventueel gecodeerd worden met mijn PGP sleutel (Zie [1.0]). Kom je er helemaal niet uit? Heb je vragen die niet in deze FAQ staan? Vertel het me dan ook, anderen zitten misschien ook met die vraag.. (Vragen over specifiek PGP shells (Zie [7.1]) horen niet echt in deze FAQ thuis, die programma's hebben overigens vaak zelf uitstekende documentatie.) Wil je alleen maar even PGP uittesten, dan kan je beter even iemand die je kent vragen of jullie het samen kunnen testen.. Voor vragen ove het gebruik en om mensen te zoeken die samen met je PGP uit willen proberen, kun je ook eens kijken in de nieuwsgroep 2 wat is PGP? PGP staat voor 'Pretty Good Privacy'. Het is een computerprogramma, verkrijgbaar voor vele platforms, om berichten of bestanden mee te coderen met behulp van publieke sleutel encryptie. Dit betekent dat, in tegenstelling tot klassieke encryptie-methoden, een persoon 2 sleutels heeft : het sleutelpaar. Een sleutel, de 'publieke sleutel', wordt gebruikt om een bericht te coderen, terwijl dat gecodeerde bericht alleen met de 'prive sleutel' kan worden gedecodeerd. De publieke sleutel kan dus aan iedereen gegeven worden, ook tegenstanders, zonder dat die de berichten kunnen decoderen. Alleen de houder van de prive sleutel kan dat. Met een prive sleutel is dus alleen een bericht te decoderen dat met de bijbehorende publieke sleutel is gecodeerd. Omgekeerd geldt dit ook : als je iets codeert met de prive sleutel dan kan iemand anders het met je publieke sleutel decoderen ; hij of zij weet dan wel zeker dat het van jou afkomt. PGP biedt dus ook de mogelijkheid om 'digitale handtekening' te maken, d.w.z. het onder- tekenen van documenten of data, waardoor kan worden vastgesteld of bepaalde data wel van een bepaald person afkomt. Dit wordt voornamelijk gebruikt met e-mail, maar ook om aan te tonen dat anti- virus software van de makers afkomt, en niet een trojaans paard is. PGP is de laatste jaren uitgegroeid tot een zogenaamde ad-hoc standaard, dat wil zeggen dat, hoewel het niet officieel is vastgelegd PGP door zoveel mensen wordt gebruikt, dat het op eigen kracht een soort van standaard is geworden. PGP is gratis voor prive gebruik! De broncode is vrij verkrijgbaar en voor vele platforms te compileren. Veranderingen mogen echter niet worden gemaakt. Buiten de VS moeten commerciele gebruikers een licentie voor IDEA kopen van Ascom-Systec. Voor meer details zie 2.1 waarom heb ik PGP nodig? PGP heb je nodig als je wilt dat bepaalde dingen niet op straat liggen. In tegenstelling tot bijvoorbeeld telefoongesprekken, waar altijd nog moeite moet worden gedaan om een lijn af te tappen, is het op het internet mogelijk om e-mail op vele verschillende plaatsen zonder moeite te onderscheppen, en te lezen. E-mail kan ook helemaal geautomatiseerd afgezocht worden naar 'verdachte' woorden, zoals 'bom' 'uranium', of zinnen; 'ik stem dit jaar op de oppositie' PGP wordt bijvoorbeeld door mensenrechtenorganisaties in landen met akelige regimes gebruikt. Ook in democratieen is het verstandig om bepaalde berichten te coderen, zoals brievenwisselingen met geheime minnaars, advocaten, of belastingadviseurs. In feite valt coderen te vergelijken met het gebruiken van een envelop voor je brieven, in plaats van ze op een postkaart te schrijven. Je kunt het argument ook omkeren: "waarom zou je NIET je prive berichten encrypten? Gaat het iemand anders aan wat jij schrijft, hoe triviaal ook? Je zou toch behoorlijk boos worden als de postbode al je post zat te lezen."-Arnoud "Galactus" Engelfriet En tenslotte kunnen bedrijven encryptie ook gebruiken, om privacy- gevoelige informatie te beschermen, of bedrijfsgeheimen, onderhandelingen over fusies en contracten, en telewerken. 2.2 hoe werkt PGP? PGP gebruikt het RSA publieke sleutel encryptie algoritme. Dit algoritme, uitgevonden door Rivest, Shamir en Adleman, maakt gebruik van het feit dat een vermenigvuldiging van twee grote priemgetallen ontzettend moeilijk is om te ontbinden in factoren, d.w.z. weer te splijten in die twee getallen. Ook maakt PGP gebruik van het IDEA, International Data Encryption Algorithm, om berichten te coderen. Dit is een conventioneel encryptie algoritme, d.w.z. het gebruikt maar 1 sleutel. Die is 128 bits groot, oftewel er zijn daarvoor 2 tot de macht 128 verschillende mogelijkheden. Om IDEA te kraken zou je al die mogelijkheden moeten testen. (of eigenlijk gemiddeld de helft) Omdat het coderen van berichten met RSA ontzettend lang zou duren, maakt PGP gebruik van een hybride (samengesteld) systeem. PGP kiest een willekeurige 128 bits sleutel, codeert daar het bericht mee, en codeert vervolgens die sleutel met RSA. RSA heeft sleutelgroottes van duizenden bits, alleen vanwege het principe waarop dit gebaseerd is, het vermenigvuldigen van erg grote priemgetallen is dit ook nodig. IDEA gebruikt maar een sleutel van 128 bits, maar is gebaseerd op heel andere theorie, en is dus juist sterker dan RSA! RSA wordt gebruikt zodat je niet met elkaar een geheime sleutel voor IDEA hoeft af te spreken.. Technische details over PGP PGP gebruikt een publieke sleutel encryptie-algoritme.. Daarin zijn er 2 sleutels, P() en G(). P() is je publieke sleutel, G() je geheime-, of privesleutel. Het RSA-algoritme werk zo : een text X, met RSA behandeld met P() kan alleen met G() gelezen worden. G(P(X))=X Een text X, met RSA behandeld met G() kan alleen met P() gelezen worden - hierop is ondertekenen gebaseerd : P(G(X))=X PGP codeert echter niet de hele text met RSA, dit zou veel te lang duren. In plaats daarvan maakt PGP een willekeurige 128 bits sleutel k, en gebruikt die om de text met IDEA te coderen. IDEA(X,k) en P(k) zijn het gecodeerde bericht. Door G(P(k))=k kan vervolgens IDEA(X,k) gedecodeerd worden. (Omdat IDEA een heel ander algoritme is dan RSA zijn de 128 bits voldoende : symmetrische encryptie is vanaf 112 bits veilig te noemen, omdat bijvoorbeeld RSA van geheel andere mathematische principes uitgaat als IDEA, heeft deze ook andere, grote sleutels, minimaal 1024 om veilig te zijn, nodig.) Onderteken gaat bijna net zo, alleen nu wordt er een zogenaamde MD5 hash van het bericht genomen, dit is een 128 bits getal dat voor elk bericht uniek zou moeten zijn.. In werkelijkheid zijn er natuurlijk "maar" 2 tot de 128de macht mogelijkheden van dat getal, en hebben 2 berichten een kans van 2 tot de 64de om dezelfde MD5 hash te hebben.. MD5 is in principe net zo veilig als IDEA. Een ondertekening van een bericht is G(MD5(X)), als je de publieke sleutel van de ondertekenaar hebt krijg je dus P(G(MD5(X)))=MD5(X), en MD5(X) kan je gemakkelijk zelf uitrekenen. Sleutels worden net zo ondertekend, alleen wordt de ondertekening in het sleutelbos (keyring) formaat opgeslagen. Als je codeert en ondertekent stuur je IDEA(X+G(MD5(X)),k) en P(k) De MD5 hash wordt dus ook met IDEA gecodeerd. Decoderen, en de handtekening controleren gaat dan met G(P(k))=k P(G(MD5(X)))=X en X decodeer (IDEA) je met k. Als je het bericht aan meerdere mensen verstuurt dan wordt het gecodeerde bericht IDEA(X,k) en P(k), P2(k), P3(k) etc.. Oftewel : voor elke publieke key wordt de willekeurige IDEA sessie key k nog eens met RSA gecodeerd. 2.3 (il)legaliteit Het coderen van berichten is in de meeste landen niet verboden, behalve in landen met een niet zo sterke democratische traditie, en in Frankrijk. In Nederland is het coderen van berichten en bestanden toegestaan, hoewel er soms stemmen opgaan om het te verbieden. Wachtwoorden hoef je alleen aan de politie te geven tijdens een huiszoeking als je zelf geen verdachte bent. In Belgie moeten crypto-systemen voor gebruik in telecommunicatie in principe goedgekeurd worden door het BIPT,door sommigen wordt dat ook gezien als een verplichting om sleutels af te geven.. Deze wet is nog erg vaag, interpretaties over de wet lopen uiteen. Voorlopig wordt hij niet toegepast. De Raad van Europa kent echter wel een richtlijn die zegt dat het legitieme gebruik van encryptie niet 'onevenredig' in het gedrang moet komen door maatregelen die rechtsonderzoek moeten vergemakkelijken. De Europese Commissie bereidt een raadsbesluit voor om een systeem in te voeren in de Europese Unie, waarbij waarschijnlijk prive sleutels in depot zouden liggen bij derde partijen; justitie zou dan de mogelijkheid hebben toegang te krijgen tot die prive sleutels. Import en export van PGP is ook toegestaan, in tegenstelling tot in Amerika, waar de export van PGP, of wat voor een sterke coderings- software dan ook verboden is. Alleen speciale afgezwakte versies mogen geexporteerd worden. Zorg er dus voor dat je PGP niet vanuit Amerika haalt, niet omdat de Amerikanen opeens de oceaan overstormen om je te arresteren (zoals ze deden bij Noriega) maar omdat je de eigenaar van de computer waarvan je het vandaan haalt in grote problemen zou kunnen brengen. Als ze erachter komen, kunnen ze het je ook moeilijk maken, wanneer je bijvoorbeeld op vakantie nog eens in de VS komt. PGP mag wel naar Canada ge-exporteerd worden, omdat Canada het aan dezelfde exportrestricties onderwerpt. Exporteren van PGP staat gelijk aan het exporteren van munitie. Overigens zijn de ITAR reguleringen op cryptografie onlangs door een Federale Staatsrechtbank ongrondwettig verklaard in de zaak Bernstein, het is onduidelijk in hoeverre deze uitspraak precedent schept. Op IDEA geldt internationaal een patent. Als je PGP bedrijfsmatig wilt gebruiken, dan moet je bij Ascom-Systec AG in Zwitserland een licentie kopen. Omdat dat nogal duur is zullen toekomstige versies misschien overstappen op Blowfish, een niet-gepatenteerd algoritme, dat ook al gebruikt wordt in PGPfone, of op 3DES (triple DES). In de VS zijn er patent-problemen met RSA : het patent van RSA, dat overigens alleen in de VS geldt wordt daar door een bedrijf geexploi- teerd, daarom is er van PGP een versie die door MIT uitgebracht wordt MIT heeft namelijk nog van oorsprong rechten op het patent. Omdat de versie van PGP waarin het niet-gelicenseerde algoritme gebruikt wordt sneller is, is er ook een internationale versie. Zie [2.5] 2.4 waar kan ik PGP krijgen? Hierover is er de Engelstalige 'Where to get PGP FAQ', waarvan de laatste versie op te vinden is, en ook in de nieuwsgroepen , , en en op Die FAQ bespreekt ook andere programma's die handig zijn voor het gebruik van PGP, zoals shells, interfaces, en dergelijke. In Nederland is de laatste versie van PGP te vinden op op pgp.net - of op het web (uit Noorwegen) Je kunt PGP op vele plaatsen vinden, maar zorg dat je het niet uit Amerika haalt : dat is strafbaar. Ook op Nederlandse BBSen kun je PGP vinden, bijvoorbeeld op de NOTB host Gelderland Viber BBS 026-3890037. Via E-mail kun je PGP van een FTP-site afhalen, stuur een berichtje naar ftpmail@ftpmail.ramona.vix.com reply connect ftp.pgp.net binary uuencode get /pub/pgp/pc/msdos/pgp263i.zip quit Je krijgt de ZIP file dan in gedeelten, UUencoded in je postbus. Als je een leeg berichtje naar dit adres stuurt krijg je uitleg. 2.5 versies De nieuwste versies van PGP zijn PGP 2.6.2 en PGP 2.6.3.i PGP 2.6.3.xi is een versie die is geoptimaliseerd voor 386 en hoger. Er zijn ook nog versies met nog een extra letter, deze bevatten zgn. bugfixes ; bepaalde foutjes zijn hersteld, dit zijn dus geen enorm veranderde nieuwe versies, en bevatten zelfs geen nieuwe opties. PGP 2.6.3ui is de onofficiele (U voor Unofficial) internationale versie, deze versie bevat enkele bugfixes (herstelde fouten) en wat extra functies. PGP 2.6.2 is de Amerikaanse (MIT) versie: deze is iets langzamer maar wel legaal voor gebruik binnen de VS. MIT Versie 2.6 en hoger van PGP maken gecodeerde berichten die eerdere versies niet kunnen decoderen, om mensen over te halen om toch vooral de nieuwe versie te gaan gebruiken waarmee geen patentproblemen zijn. PGP is verkrijgbaar voor veel verschillende computers en besturings- systemen. De broncode is vrij verkrijgbaar, en kun je zelf voor je eigen computer compileren. Op dit is er al een Pre-Alpha-versie van PGP 3.0, die in boekvorm te verkrijgen is om de ITAR te omzeilen. De ISBN nummers zijn 0-9649654-1-0 en 9649654-2-9 (update). PGP 3.0 zal behalve RSA,IDEA, en MD5(voor ondertekenen) ook ElGamal (publieke sleutel encryptie), 3DES (conventioneel) en SHA1 en DSS (ondertekenen) ondersteunen, als de geruchten waar zijn tenminste. 2.6 hoe veilig is PGP? Er zijn verschillende methoden om PGP te kraken ; deze worden aangeduid als 'attacks', aanvallen. Ten eerste zou kunnen worden geprobeerd te geheime prive sleutel te achterhalen door middel van de bekende publieke sleutel. Dit is voor een sleutel van een bepaalde lengte net zo moeilijk als het ontbinden in factoren van zo een groot getal. Kleine sleutels, zoals sleutels van 384 en 426 bits zijn allang eens gekraakt, zij het met enige moeite, door de ongebruikte tijd op computers op het internet aan elkaar gekoppeld te benutten. Geheime diensten hebben voor dit werk natuurlijk hun eigen computers. RSA sleutels tot 512 bits mogen uit de VS, met een vergunning, worden ge-exporteerd. Dit betekend dat de Amerikanen deze sleutels waarschijnlijk met vrij weinig moeite kunnen kraken. Grotere sleutels liggen waarschijnlijk nog buiten hun bereik, met ieder bit meer, wordt de benodigde rekentijd immers verdubbeld. 2048 bits sleutels zijn nog wel een tijdje veilig. Tenzij de geheime diensten (met name de Amerikaanse dienst die internationale communicatie onderschept en decodeerd, de NSA) een sneller methode om getallen in (2) factoren te ontbinden hebben gevonden, maar dit is onwaarschijnlijk, omdat dit een probleem is dat ook in de wetenschap grote aandacht heeft. Het is makkelijker om je geheime sleutel gewoon van je computer te halen. De wachtzin dat een geheime sleutel beschermt is meestal makkelijk te raden (Zie [3.4]). Een 'tempest attack' gebruikt de straling die van een computer afkomt om gegevens over je wachtzin te achterhalen. Zou zouden signalen van je toestenbord, die voor elke toets die je indrukt een uniek stralingspatroon uitstraalt, straten verder opgevangen kunnen worden. Dit is voor het grootste deel nog theorie, tenminste, niemand weet echt of het kan, of geeft het niet toe. Je prive sleutel is makkelijker te stelen door een inbraak. Er zouden zwakheden in de gebruikte algoritmes kunnen zitten. RSA en IDEA zijn echter al zolang bekend bij wetenschappers, en worden zo vaak onder de loep gehouden, dat niet te verwchten valt dat er erg grote zwakheden in zitten. Maar als die er wel zijn, zou de NSA het ons dan vertellen? Rest ons nog de onelegante 'brute-force attack'. Deze methode probeert gewoon alle mogelijkheden voor de sleutel die voor het IDEA gedeelte wordt gebruikt. Aangezien deze sleutel 128 bits is, zijn daarvoor 2 tot de macht 128 mogelijkheden. Dit is zo'n groot getal dat berekend is dat met alle computers op deze aarde de zon allang al uitgedoofd is tegen de tijd dat de uitkomst gevonden is. Dit lijkt allemaal alsof er erstige problemen met de veiligheid van PGP zijn. Dit is niet zo. Vele pogingen van wetenschappers om het te kraken falen jammerlijk, zeker bij grote sleutelgroottes. En op dit moment is PGP het meest geavanceerde cryptographische systeem dat voor het publiek beschikbaar is, alhoewel voor militaire toepassingen ongetwijfeld nog betere methoden beschikbaar zijn. PGP is in ieder geval stukken beter dan bijvoorbeeld DES, dat in een weekje met een beetje moderne thuiscomputer gekraakt is, en heeft als voordeel dat je geen wachtwoord af hoeft te spreken. PGP is ook beter dan een programmaatje waar nog nooit iemand van heeft gehoord. Methoden die door mensen die denken dat ze onkraakbaar zijn worden gemaakt zijn vrijwel altijd nog onveiliger dan bijvoorbeeld DES.. 'Geheime' methoden zijn al helemaal niet te vertrouwen, omdat niemand zo'n methode tegen het licht kan houden. De sterke van een algoritme moet dan ook in de sleutel en het algoritme liggen, niet in de geheimhouding van het algoritme. Beveiligingen in commerciele toepassingen zoals PKZIP en tekstverwekrers zijn vaak zo verschrikkelijk slecht dat ze met pen en papier te kraken zijn, hoewel daar tegenwoordig wat aan verbeterd, bijvoorbeeld in browsers, die nu ook RSA en RC4 gebruiken, alleen moeten commerciele software producenten, die voornamelijk in de VS gevestigd zijn, zich houden aan de exportrestricties, en zwakkere systemen afleveren aan het buitenland. Het feit dat de geheime diensten van de VS heel erg boos waren, en waarschijnlijk nog steeds zijn, alhoewel de strafzaken wegens gebrek aan bewijs zijn gestaakt, op de maker van PGP, Philip Zimmermann, mag ook als een aanwijzing gezien worden ten aanzien van de sterkte van PGP. Ook de export-regels wijzen hierop, en het feit dat het Amerikaanse ministerie voor buitenlandse zaken Amerikanen die naar het buitenland reizen aanraden om wel 2048 bits RSA te gebruiken, wat gezien moet worden als een inschatting van wat niet-Amerikaanse geheime diensten niet kunnen kraken, en waarschijnlijk gebaseerd op de eigen ervaring, pleit hiervoor. 3 hoe installeer ik PGP? PGP installeren is op zich simpel. Je hoeft alleen het ZIP bestand uit te pakken, en een paar omgevings-variabelen aan te passen. De volgende beschrijving is voor DOS (en dus ook voor Windows) : Maak een directory c:\pgp aan. Gebruik pkunzip -d pgp263i.zip Zet in de Autoexec.bat : SET PGPPATH=C:\PGP SET TZ=met-1dst Nu moeten alleen nog een publieke en een prive sleutel gemaakt worden. Als je PGP in een andere directory installeert moet je ook PGPPATH aanpassen. Voor Linux/Unix geldt het volgende : Maak in je home directory een directory .pgp aan mkdir ~/.pgp Zet vervolgens in ~/.pgp de pgp bestanden (unzippen/untarren) Zorg dat niemand verder de directory kan lezen chmod 700 ~/.pgp De beheerder (root) kan altijd al je bestanden lezen(!) 3.1 het maken van een sleutelpaar Type PGP -kg. (zonder iets erachter, en enter drukken) Kies een sleutelgrootte, aanbevolen is het maximum 2048 bits. Dit is bij het aanmaken van het sleutelpaar veel langzamer dan een kleinere sleutel, in het gebruik echter maar een beetje langzamer. Amerikaanse versies van PGP kunnen maar sleutels aanmaken tot 2047 bits groot zijn, maar ze kunnen wel 2048 bits sleutels gebruiken bij alle andere bewerkingen ; dit is een foutje in de programmatuur. Een andere veelgebruikte grootte is 1024 bits. Kleiner moet je beslist niet nemen, zo is RSA met 576 bits bijvoorbeeld door de VS goedgekeurd voor export (oftewel; dat kunnen ze snel kraken) Nu moet je een 'user-ID' kiezen. De vorm daarvan is "Wouter van den Berg " oftewel ; eerst je naam, en dan je e-mail adres tussen haakjes. Nu vraagt PGP om een hoop letters in te tikken, de tijd tussen toetsaanslagen gebruikt PGP om willekeurige getallen te maken. PGP vraagt ook om een passphrase, een wachtwoord, of letterlijk wachtzin, om je prive sleutel mee te versleutelen. Kies een makkelijk te onthouden, maar moeilijk te raden (dus geen namen!) wachtzin. Lees hiervoor ook de Passphrase FAQ. De Passphrase FAQ is te vinden op en de paragraaf over wachtzinnen. (Zie [3.4]) Schrijf je passphrase overigens nooit ergens op! (herhaal NOOIT) Als je geen wachtzin ingeeft, maar op enter drukt, dan wordt je prive sleutel niet met een wachtzin beschermd. Dit is dus behoorlijk gevaarlijk, en moet je nooit doen.. Nu verschijnen een hoop plusjes en minnetjes op het scherm, en daarna is het klaar. (een . betekent dat het getal dat getest wordt op dat moment deelbaar is door de priemgetallen tot 8191, als een getal wordt gevonden dat niet deelbaar is, volgen 4 Fermat testen, die bepalen of het getal zeer waarschijnlijk ook echt een priemgetal is, een test wordt aangegeven door + of *, na 2X **** of ++++ op het scherm heb je de twee benodigde priemgetallen) Met PGP -kxa kun je je publieke sleutel naar een bestand kopieren om aan mensen te geven waarmee je PGP wilt gebruiken. (type de haakjes niet mee, die staan hier om aan te geven dat je het niet letterlijk in moet typen, maar je eigen waarden in moet vullen) Als je met PGP iets wilt doen met een bestaande user-id, kun je ook maar een stukje van de user-id intypen, dan zoekt PGP de juiste sleutel op, zolang er geen onduidelijkheid bestaat. Dus bijvoorbeeld om mijn sleutel naar een bestand te schrijven kan ik pgp -kxa Wouter wouter.asc gebruiken. Behalve wanneer ik nog een publieke sleutel met een user-id waar 'Wouter' in staat heb, dan kan ik dus beter pgp -kxa wfberg wouter.asc gebruiken.. Onderteken nu je eigen sleutel met pgp -ks 3.2 Nederlandse taalmodule Er is ook een Nederlandse taalmodule voor PGP. Je hoeft alleen maar language.txt en pgp.hlp te kopieren naar de PGP directory, en in de config.txt "Language = en" te veranderen in "Language = nl" Je kunt deze module van de internationale PGP homepage, of de een van de vele FTP-sites afhalen. (Zie [2.4]) 3.3 Back-ups Het is verstandig om een back-up te maken van je sleutels, cq de bestanden pubring.pgp en secring.pgp. Het is verstandig om deze bestanden conventioneel gecodeerd te back-uppen (pgp -c) Zie [4.1] Je kunt ook je prive sleutel in meerdere delen splitsen, zodat een bepaald aantal delen nodig is om je prive sleutel weer te krijgen (bijvoorbeeld 5 delen, waarvan je er 3 nodig hebt), met behulp van een zogenaamd m,n-threshold scheme. Secure split (secsplit.zip) doet dit. Secsplit vind je meestal ook waar je PGP vindt. 3.4 een goede wachtzin (passphrase) verzinnen Een wachtzin moet makkelijk te onthouden, maar moeilijk te raden zijn. Gedegen advies is natuurlijk om niet je naam, gebruikersnaam, telefoonnummer of andere informatie die anderen zo kunnen raden te gebruiken, maar ook moet je rekening houden met de mogelijkheid van een poging om je wachtzin te achterhalen door middel van een computer. Zogenaamde 'dictionary attacks' maken gebruik van het feit dat wachtzinnen over het algemeen gewone woorden of zinnen zijn. Duizenden Nederlandse en buitenlandse woorden, beroemde citaten, en veelvoorkomende zinnen kunnen in korte tijd op je prive sleutel (als die in handen van je tegenstanders is gevallen) of conventioneel gecodeerde berichten worden uitgeprobeerd. Hiervoor hoeft je tegenstander nog niet eens te beschikken over de geavanceerde computerapparatuur die een geheime dienst zou hebben. Waar programma's minder rekening mee kunnen houden zijn woorden die opzettelijk erg raar zijn gespeld, willekeurige letters en vreemde combinaties van kleine en grote letters. (In iedere goed wachtzin zitten tenminste kleine en grote letters, cijfers, en leestekens!) De lengte van de wachtzin is natuurlijk ook van belang. Kies dus nooit een wachtwoord, maar altijd een -zin. Een 'brute-force attack' doorzoekt alle mogelijkheden voor een wachtzin, dus bijvoorbeeld alle lettecombinaties tot een bepaalde lengte, met of zonder hoofdletters, cijfers en leestekens. Deze aanval duurt heel erg lang, en een goede wachtzin zorgt ervoor dat deze methode moet worden gebruikt. De vraag hoe ingewikkeld je wachtzin moet zijn hangt natuurlijk ook af van voor wie je je gegevens geheim wilt houden. Als je je geheimen hebt voor een spreekwoordelijk jonger zusje hoef je geen ellenlange ingewikkelde wachtzin te gebruiken, en hoef je je prive-sleutel ook niet zo erg goed te bewaken. Tegen tegenstanders met aardig wat expertise, en eventueel geld, zoals concurrenten die aan bedrijfsspionage doen, of hackers, kun je maar beter strenge beveiliging aanbrengen. Tegen geheime diensten of de maffia helpt dit alles niet zo. Deze zullen 'rubber hose cryptanalysis' toepassen ; de methode om een wachtzin te achterhalen door middel van een tuinslang die herhaaldelijk op degene die de wachtzin weet geslagen wordt, totdat de wachtzin gevonden is. Dit wordt ook wel gezien als een alternatieve 'brute force atack'. 4 hoe gebruik ik PGP? PGP -h geeft een helptekst. Het is overigens wel aan te raden om de complete (maar Engelse) handleiding te lezen, door ondeskundig gebruik heb je er anders niks aan. Dit neemt toch behoorlijk wat tijd in beslag, je moet er rekening mee houden dat PGP een moeilijk programma is. Verwacht niet na 5 minuten perfecte resultaten.. 4.1 coderen is het user-id, of een gedeelte ervan van de publieke sleutel van degene(n) aan wie je het bestand wilt sturen. PGP -e geeft .pgp binair PGP -ea geeft .asc ascii PGP -e -u gebruik je als je zelf meerdere sleutels hebt. PGP -e (etc.) kan ook, om aan meerdere mensen een gecodeerd bericht te sturen. Dan kan wel iedereen zien aan welke andere mensen je het bericht ook hebt gestuurd. Als ze niet alle publieke sleutels hebben, zien ze trouwens alleen maar de key-ids (getallen) en niet de namen (user-ids) Conventioneel coderen gebruikt geen publieke sleutels, maar een afgesproken geheime sleutel. Je moet dus ervoor zorgen dat jij en je gesprekspartner een veilige, lange, sleutel (=passphrase) hebben afgesproken, zonder dat iemand anders er achter kan zijn gekomen. (dus bijvoorbeeld niet via (e-)mail of telefoon) gebruik PGP -c Conventioneel coderen is veel sneller, maar je kunt niet ondertekenen. Conventioneel coderen is vooral handig voor back-ups. 4.2 decoderen PGP geeft . PGP -p levert de originele bestands- naam op met PGP -o kan je zelf de naam van het gedecodeerde bericht bepalen. Door in config.txt EncryptToSelf = yes te zetten, worden alle berichten ook met je eigen publieke sleutel gecodeerd, zodat je ze zelf ook nog kunt lezen. Om EncryptToSelf correct te laten werken moet in config.txt MyName met de complete user-id gevuld worden, dus zoiets als MyName = "Wouter van den Berg " 4.3 ondertekenen Met PGP -s onderteken je een bericht. (ondertekenen is het zelfde als coderen met je eigen prive sleutel van een zogenaamde MD5 hash (een message digest) van het document, die hash is uniek voor dat bericht, iedereen die je publieke sleutel heeft kan controleren of jij het hebt ondertekend, omdat alleen jij jouw prive sleutel hebt.) Met PGP -sta maak je een zogenaamde clear-signature, de tekst van het bericht is dan nog leesbaar, en er wordt een blokje toegevoegd met de gecodeerde(= getekende) hash. Ook komt er een lijntje boven de tekst te staan, als je die weghaalt, of het bericht verandert, klopt de ondertekening (natuurlijk) niet meer. Als PGP -sta niet werkt, probeer dan pgp -sta +clearsig=on, bevalt dat, voeg dan Cleasig=on toe aan de config.txt PGP weigert soms tekstbestanden als zodanig te herkennen, als de regels in het bestand erg lang zijn, het bestand wordt dan in een ASCII-armor (zie [6.7]) opgeslagen. Dit is geen foutje, maar dit hoort zo, omdat sommige programma's die e-mail verwerken te lange regels automatisch afkappen. Met PGP -sb maak je een ondertekening die in een apart los bestand wordt opgeslagen. (een zgn. detached certificate) Met PGP -es codeer je het bestand, en onderteken je het. Bij het decoderen wordt een ondertekening automatisch gecontroleerd, als je niet hoeft te decoderen dan kan je een clearsig controleren met PGP , en een detached certificate met PGP Soms geeft het controleren van een ondertekening aan dat de onder- tekening niet klopt, dit kan komen door de verschillen tussen de regelafbreking tussen verschillende besturingssystemen. Als je onder DOS een tekst intypt, breekt hij de regels af met de ascii codes 13 en 10, als je een ondertekende tekst nu aan iemand met unix of een mac stuurt, kan het zijn dat zijn of haar systeem een van beide steeds weglaat. De tekst is dan veranderd door het systeem, en PGP ziet dat meteen, zelfs al is de inhoud niet veranderd. Zet in de config.txt de optie textmode=on of gebruik de -t switch om dit te voorkomen. Ook het zogenaamde 'wordwrap', of terugloop kan voor problemen zorgen bij clear-signen: als je de tekst schrijft in brede regels, met PGP ondertekend, en je e-mail programma breekt de ondertekende tekst steeds af op een bepaald punt, dan is de tekst veranderd, en klopt de ondertekening niet meer. Overigens is bij clearsignen alleen het gedeelte tekst tussen de 'begin PGP signed message' en 'begin PGP signature' ondertekend, alles wat boven of onder die strepen staat kan dus vervalst worden, inclusief de commentaar-regels in het ondertekenings-blok (alles voor een lege regel in dat blok wordt beschouwd als commentaar) Het is, middels een omweg ook mogelijk om HTML-documenten en broncode van computerprogramma's leesbaar te ondertekenen. Zet aan het begin van het bestand een commentaar-sluiten (bijvoorbeeld *\ in c, } in pascal of --> in HTML) en aan het einde van het bestand commentaar-openen (/*,{,