Wat is PGP? Uitgebreide gids over Pretty Good Privacy-versleuteling

Wat is PGP-versleuteling?

PGP (Pretty Good Privacy) is een versleutelingsprogramma dat cryptografische vertrouwelijkheid en authenticatie biedt voor datacommunicatie. PGP-versleuteling gebruikt een combinatie van symmetrische-sleutelcryptografie en publieke-sleutelcryptografie om gebruikers in staat te stellen berichten, bestanden en andere gegevens te versleutelen zodat alleen de beoogde ontvanger ze kan lezen. Oorspronkelijk gemaakt door Phil Zimmermann in 1991, is PGP uitgegroeid tot de meest gebruikte standaard voor e-mailversleuteling ter wereld en vormt het de basis van de OpenPGP-specificatie gedefinieerd in RFC 4880. Of u nu een vertrouwelijke e-mail moet versturen, de identiteit van een softwareontwikkelaar moet verifiëren of gevoelige bestanden moet beschermen, PGP biedt een beproefd cryptografisch raamwerk dat wordt vertrouwd door journalisten, beveiligingsonderzoekers, overheden en dagelijkse gebruikers.

Als u PGP-versleuteling meteen wilt uitproberen zonder software te installeren, biedt KeychainPGP een online PGP-tool die volledig in uw browser draait.

Geschiedenis van PGP

Phil Zimmermann publiceerde PGP 1.0 in juni 1991 als gratis software, gedreven door de overtuiging dat sterke cryptografie toegankelijk moest zijn voor alle burgers — niet alleen voor overheden en het leger. In die tijd werd sterke versleuteling geclassificeerd als munitie onder de Amerikaanse exportregelgeving, en Zimmermann werd drie jaar lang strafrechtelijk onderzocht door de Amerikaanse douanedienst voor het internationaal verspreiden van PGP. Het onderzoek werd uiteindelijk in 1996 zonder aanklacht gestaakt, en de zaak werd een keerpunt in de geschiedenis van digitale vrijheden.

PGP evolueerde door verschillende commerciële incarnaties. Zimmermann richtte PGP Inc. op in 1996, dat werd overgenomen door Network Associates (later McAfee) in 1997, en uiteindelijk door Symantec in 2010. Gedurende al deze overgangen werd het onderliggende cryptografische protocol gestandaardiseerd als OpenPGP door de Internet Engineering Task Force (IETF), wat garandeerde dat het protocol open en interoperabel bleef ongeacht het commerciële eigenaarschap.

De publicatie van de OpenPGP-standaard betekende dat iedereen compatibele implementaties kon maken. Dit leidde tot de creatie van GNU Privacy Guard (GnuPG of GPG), een vrije en open source implementatie die vandaag een van de meest gebruikte PGP-tools blijft. Om de verschillen tussen deze implementaties te begrijpen, raadpleeg onze gids over PGP vs GPG.

Hoe PGP-versleuteling werkt

PGP-versleuteling berust op een geavanceerde combinatie van cryptografische technieken. In plaats van één enkele methode te gebruiken, past PGP een hybride versleutelingsmodel toe dat de snelheid van symmetrische versleuteling combineert met de voordelen van sleuteldistributie van asymmetrische (publieke-sleutel) versleuteling.

Publieke-sleutelcryptografie

In de kern van PGP staat publieke-sleutelcryptografie, ook wel asymmetrische cryptografie genoemd. Elke PGP-gebruiker genereert een sleutelpaar bestaande uit twee wiskundig verbonden sleutels:

  • Publieke sleutel — openlijk gedeeld met iedereen. Anderen gebruiken deze sleutel om berichten voor u te versleutelen en om uw digitale handtekeningen te verifiëren.
  • Privesleutel (ook wel geheime sleutel genoemd) — strikt vertrouwelijk gehouden. U gebruikt deze sleutel om berichten die naar u zijn verzonden te ontsleutelen en om digitale handtekeningen te maken.

De fundamentele eigenschap van dit systeem is dat gegevens versleuteld met een publieke sleutel alleen kunnen worden ontsleuteld met de bijbehorende privesleutel, en vice versa. Dit elimineert de noodzaak om een gedeeld geheim over te dragen tussen partijen voordat zij privé kunnen communiceren.

Het hybride versleutelingsmodel

Hoewel publieke-sleutelcryptografie het probleem van sleuteldistributie oplost, zijn asymmetrische algoritmen zoals RSA rekenkundig duur voor het versleutelen van grote hoeveelheden gegevens. PGP lost dit op met een hybride aanpak:

  1. Sessiesleutelgeneratie — PGP genereert voor elk bericht een willekeurige, unieke symmetrische sessiesleutel (doorgaans 128 of 256 bits).
  2. Gegevensversleuteling — De berichtinhoud wordt versleuteld met een snelle symmetrische versleuteling (zoals AES-256) met de sessiesleutel.
  3. Sessiesleutelversleuteling — De sessiesleutel zelf wordt vervolgens versleuteld met de publieke sleutel van de ontvanger (asymmetrische bewerking).
  4. Verpakking — Het versleutelde bericht en de versleutelde sessiesleutel worden gebundeld en naar de ontvanger verzonden.

Wanneer de ontvanger het bericht ontvangt, wordt het proces omgekeerd: hij gebruikt zijn privesleutel om de sessiesleutel te ontsleutelen, en vervolgens wordt de ontsleutelde sessiesleutel gebruikt om de berichtinhoud te ontsleutelen.

Digitale handtekeningen met PGP

Naast versleuteling biedt PGP digitale handtekeningen die twee essentiële functies vervullen: authenticatie (bewijzen wie een bericht heeft verzonden) en integriteit (bewijzen dat het bericht niet is gewijzigd tijdens verzending).

Het ondertekeningsproces werkt als volgt:

  1. PGP berekent een cryptografische hash (een samenvatting van vaste lengte) van de berichtinhoud met behulp van een algoritme zoals SHA-256 of SHA-512.
  2. De hash wordt vervolgens versleuteld met de privesleutel van de afzender, wat de digitale handtekening oplevert.
  3. De handtekening wordt aan het bericht toegevoegd.

Elke ontvanger kan de handtekening verifiëren door de handtekening te ontsleutelen met de publieke sleutel van de afzender om de oorspronkelijke hash te verkrijgen, onafhankelijk de hash van het ontvangen bericht te berekenen, en de twee hashes te vergelijken. Als ze overeenkomen, is het bericht authentiek en niet gewijzigd.

De OpenPGP-standaard

OpenPGP is de open standaard die de berichtformaten, algoritmen en procedures definieert die worden gebruikt door PGP-compatibele software. Het is geen softwareproduct op zich, maar eerder een specificatie die elke ontwikkelaar kan implementeren.

De referentiedocumenten zijn:

  • RFC 4880 (november 2007) — De huidige hoofdspecificatie van het OpenPGP-berichtformaat.
  • RFC 6637 (juni 2012) — Breidt OpenPGP uit met ondersteuning voor elliptische-curvecryptografie (ECC).
  • RFC 9580 (2024) — De laatste revisie die de standaard moderniseert met verplichte ondersteuning voor Ed25519/X25519, AEAD-versleutelingsmodi en verbeterde sleutelvingerafdrukken.

OpenPGP garandeert interoperabiliteit: een bericht versleuteld met KeychainPGP kan worden ontsleuteld door GnuPG, Mailvelope of elke andere conforme implementatie.

Web of Trust

Een van de onderscheidende kenmerken van PGP is het gedecentraliseerde Web of Trust-model voor het vaststellen van de authenticiteit van publieke sleutels. In tegenstelling tot het gecentraliseerde Certificate Authority (CA)-model dat wordt gebruikt door TLS/SSL, stelt PGP de gebruikers zelf in staat om voor elkaar in te staan.

Het Web of Trust werkt via sleutelondertekening: wanneer u de identiteit van iemand verifieert en bevestigt dat hij een bepaalde publieke sleutel beheert, ondertekent u zijn sleutel met de uwe. Deze handtekening is een publieke verklaring dat u gelooft dat de sleutel toebehoort aan de persoon die hij beweert te vertegenwoordigen.

Tools zoals KeychainPGP vereenvoudigen dit proces door gebruikers in staat te stellen direct met sleutels te werken via een intuïtieve interface, met klembordversleuteling om eenvoudig versleutelde berichten en publieke sleutels te delen.

PGP-algoritmen en sleuteltypen

PGP ondersteunt een reeks cryptografische algoritmen die zijn geëvolueerd naarmate het vakgebied vorderde.

Klassieke algoritmen

  • RSA (Rivest-Shamir-Adleman) — Het meest ingezette asymmetrische algoritme in de geschiedenis van PGP. RSA-sleutels van 2048 bits worden beschouwd als het minimale beveiligingsniveau vandaag, met 4096-bits sleutels aanbevolen voor bescherming op lange termijn.
  • DSA (Digital Signature Algorithm) — Gebruikt voor handtekeningen in combinatie met ElGamal voor versleuteling. Tegenwoordig minder favoriet.
  • AES (Advanced Encryption Standard) — De dominante symmetrische versleuteling die wordt gebruikt voor het versleutelen van berichtinhoud. AES-128 en AES-256 worden ondersteund.
  • SHA-2 (SHA-256, SHA-384, SHA-512) — Cryptografische hashfuncties die worden gebruikt voor de berekening van samenvattingen in digitale handtekeningen.

Moderne algoritmen

De nieuwste generatie OpenPGP-implementaties ondersteunt elliptische-curvecryptografie (ECC), die een vergelijkbare beveiliging biedt als RSA met aanzienlijk kleinere sleutelgroottes:

  • Ed25519 — Een digitaal handtekeningalgoritme gebaseerd op Curve25519. Produceert snelle en compacte handtekeningen. Aanbevolen in RFC 9580.
  • X25519 (Curve25519 ECDH) — Gebruikt voor sleuteluitwisseling (versleuteling). Biedt uitstekende prestaties met sterke beveiligingseigenschappen.
  • NIST P-256 / P-384 / P-521 — Elliptische curven gestandaardiseerd door het NIST. Ondersteund door OpenPGP maar over het algemeen minder favoriet dan op Curve25519 gebaseerde algoritmen.

Moderne tools zoals KeychainPGP ondersteunen deze hedendaagse algoritmen, waardoor het genereren van sleutels met Ed25519 en X25519 eenvoudig en direct is.

Veelvoorkomende toepassingen van PGP

  • Veilige e-mail — De oorspronkelijke en meest bekende toepassing. PGP maakt het mogelijk om e-mailinhoud te versleutelen en berichten te ondertekenen om hun authenticiteit te bewijzen.
  • Bestandsversleuteling — PGP kan individuele bestanden of hele archieven versleutelen voor veilige opslag of overdracht.
  • Softwareverificatie — Open source projecten ondertekenen regelmatig hun releases met PGP-sleutels. Gebruikers kunnen deze handtekeningen verifiëren om de authenticiteit van een download te bevestigen.
  • Veilige berichten — PGP kan worden gebruikt om elk tekstbericht te versleutelen, bijzonder nuttig op platformen die geen end-to-end-versleuteling bieden.
  • Identiteitsverificatie — PGP-sleutelvingerafdrukken dienen als verifieerbare digitale identiteiten. Ontwikkelaars op GitHub kunnen hun commits ondertekenen met PGP.
  • Documentondertekening — Juridische workflows gebruiken soms PGP-handtekeningen om onweerlegbaarheid vast te stellen.

PGP vandaag

Meer dan drie decennia na zijn creatie blijft PGP een van de belangrijkste beschikbare cryptografische tools. De OpenPGP-standaard blijft evolueren, met RFC 9580 die significante moderniseringen introduceert, waaronder verplichte ondersteuning voor moderne elliptische-curvealgoritmen en AEAD-versleutelingsmodi.

Het ecosysteem van PGP-tools is aanzienlijk gegroeid. GnuPG blijft de referentie-implementatie voor gebruik via de commandoregel. Moderne tools zoals KeychainPGP bieden native desktopapplicaties (Windows, macOS, Linux), een Android-app, een CLI voor scripting en een webapplicatie in de browser — allemaal gebouwd op dezelfde Sequoia-PGP-engine in Rust.

Aan de slag met PGP

Klaar om te beginnen met PGP-versleuteling? Hier zijn de beste volgende stappen:

  1. Probeer het in uw browser — Gebruik de online PGP-tool van KeychainPGP om een sleutelpaar te genereren, een bericht te versleutelen of een handtekening te verifiëren zonder iets te installeren.
  2. Lees de beginnersgids — Als u nieuw bent in cryptografie, begeleidt onze gids PGP voor beginners u stap voor stap.
  3. Leer de praktische workflow — Onze gids Hoe PGP te gebruiken behandelt het genereren van sleutels, versleutelen en ontsleutelen, het beheren van uw sleutelbos en best practices.
  4. Begrijp klembordversleuteling — Ontdek PGP-klembordversleuteling om tekst direct vanuit uw klembord te versleutelen en ontsleutelen.
  5. Ken de tools — Begrijp de verschillen tussen PGP en GPG om de juiste tool voor uw workflow te kiezen.

PGP-versleuteling beschermt gevoelige communicatie al meer dan dertig jaar. Met moderne tools en standaarden is het toegankelijker dan ooit.