In de vorige blogs heb ik het gehad over de belangrijkste kenmerken van PGP en over de sleutels die worden gebruikt. In deze blog leg ik uit wat het verschil is tussen de PGP specificatie versus de implementaties (zoals GPG) en waarom het belangrijk is om hier rekening mee te houden.
Pakketten
PGP is op zich heel open. Hoewel veel implementaties een standaardvolgorde hebben voor ondertekenen, comprimeren en coderen, maakt PGP het niet echt uit. En dit kan behoorlijk belastend zijn.
PGP maakt gebruik van pakketten. De belangrijkste pakketten voor nu zijn:
- Gegevenspakket (met het bericht in platte tekst, gecodeerd of niet).
- Handtekening pakket.
- Gecomprimeerd pakket.
- Versleuteld gegevenspakket.
Zie hier voor meer gedetailleerde informatie over deze en andere pakketten.
Opmerking: de uitvoer kan ASCII-gepantserd zijn om deze leesbaar te maken. Als je het niet bepantsert, worden de gegevens een stroom van bytes.
De specificatie van PGP specificeert geen bepaalde volgorde van pakketten. Het specificeert niet eens dat je één van hen moet verstrekken. Je kunt ervoor kiezen om enkele platte tekstgegevens toe te voegen aan een letterlijk gegevenspakket en wat PGP betreft is het volledig geldig. Het is aan de implementatie hoe dit te doen.
Verwacht daarom altijd het onverwachte, tenzij je zowel de verzendende als de ontvangende kant van het proces kunt maken. GPG kan bijvoorbeeld in principe elk bericht verwerken dat je met PGP kunt maken.
Uitzondering
Een uitzondering op deze regel is de handtekening. Hier is de volgorde belangrijk:
- Een pakket met informatie over de sleutel.
- Een pakket met de gegevens die zijn ondertekend.
- Een pakket met de daadwerkelijke handtekening.
Let op: je zou verwachten dat deze pakketten als losse pakketten volgen. Het is echter mogelijk om het laatste pakket in het tweede pakket op te leveren. Wat PGP betreft is dit geldig, maar dit kan je fouten geven als je niet voorzichtig bent.
Het wordt aanbevolen om het bericht eerst te ondertekenen en zowel het bericht als de handtekening te versleutelen. Wat compressie betreft, kan dit vóór of na het ondertekening gedeelte worden gedaan, hoewel het gebruikelijk is om het bericht eerst te ondertekenen en vervolgens te comprimeren.
Onderteken geen versleuteld bericht. Dit vertelt iedereen die uw openbare sleutel heeft, dat je degene bent die het bericht heeft verzonden. Hoewel dit misschien geen probleem voor je is, wordt het een probleem wanneer je identiteit geheim moet blijven. Versleutel zowel het bericht als de handtekening. Op deze manier kan alleen de ontvanger zien wie het bericht daadwerkelijk heeft verzonden.
Dit is alle informatie waarvan ik wilde dat ik wist voordat ik met PGP begon. Het zou me hebben geholpen om te weten waar ik moest beginnen en hoe ik verder moest gaan en zoeken naar meer gedetailleerde informatie.