Waarom en hoe een PGP digitale handtekening te gebruiken

Een tijdje geleden hebben we cryptografische hashes besproken (zoals MD5- en SH1-controlesommen) en hoe deze ervoor zorgen dat een bestand dat u downloadt, hetzelfde bestand is dat de maker u wilde laten downloaden door een unieke 'vingerafdruk' van het bestand te maken dat kan worden gecontroleerd tegen het origineel.

De mogelijkheid om de integriteit van vrijwel elk bestand te verifiëren is belangrijk, maar wanneer we privacy- en beveiligingssoftware van internet downloaden, is dit absoluut cruciaal. Wat heeft het immers voor zin om uw privacy en veiligheid te vertrouwen op een programma dat een virus kan bevatten, vooral als u bedenkt dat dergelijke software en haar gebruikers zonder twijfel hoge prioriteitsdoelen zijn voor de NSA en haar soortgenoten?

Zelfs als u software rechtstreeks van de website van een leverancier of ontwikkelaar downloadt, kunt u het slachtoffer worden van een Man-in-the-Middle-aanval (MitM) of kan de website zelf op verschillende manieren worden aangetast.

Het gebruik van cryptografische hashes is een poging om dit probleem op te lossen, maar helaas heeft de techniek een grote zwakte - de website van een ontwikkelaar kan bijvoorbeeld worden gehackt om de hash van een gecompromitteerd bestand weer te geven in plaats van het origineel, of wiskundige kwetsbaarheden kunnen ze onzeker maken. Hashes zijn daarom nuttig om te controleren of een bestand niet is beschadigd, maar zijn slechts van beperkt nut om ervoor te zorgen dat het bestand dat u downloadt hetzelfde bestand is dat de ontwikkelaars van plan zijn te downloaden.

Om meer zekerheid te bieden, kunnen ontwikkelaars hun bestanden ondertekenen met digitale handtekeningen, die een vorm van asymmetrische cryptografie (openbare sleutels en privésleutels) gebruiken om te verifiëren dat een bestand precies is wat het beweert te zijn.

Een diagram dat laat zien hoe een digitale handtekening wordt toegepast en vervolgens geverifieerd.

PGP digitale handtekeningen

Verschillende cryptografische systemen gebruiken verschillende mechanismen om digitale handtekeningen te maken en te valideren. Windows gebruikt bijvoorbeeld de Microsoft Public Key Infrastructure-technologie (PKI) om handtekeningen automatisch te valideren wanneer de software voor het eerst wordt geïnstalleerd.

Open-source software kan de gepaste Microsoft PKI niet gebruiken en gebruikt in plaats daarvan dus PGP digitale handtekeningen. Die vervolgens handmatig moet worden geverifieerd. Deze werken erg op de sleutelparen die worden gebruikt om PGP-e-mails te verifiëren, en zoals we zullen zien, vereist het verifiëren van PGP digitale handtekeningen het gebruik van een PGP-compatibel e-mailprogramma.

Helaas betekent dit ook dat het gebruik van PGP digitale handtekeningen, zoals het gebruik van PGP om e-mails te beveiligen, te complex is.

Hoe een digitale handtekening te verifiëren met behulp van Kleopatra GUI

Om de PGP digitale handtekening van een bestand te verifiëren, moet u een PGP-client gebruiken (of beter gezegd GnuPG - de open-source kloon). Versies van GnuPG zijn beschikbaar voor Windows (Gpg4win), Mac OSX en Linux (meestal vooraf geïnstalleerd).

In deze tutorial zullen we de digitale handtekening van Pidgin + OTR verifiëren met behulp van Gpg4win, maar het proces is zeer vergelijkbaar voor andere versies van GnuPG.

We hebben een tweedelig artikel over het gebruik van Gpg4win en we raden ten zeerste aan om minstens deel 1 ervan te lezen om vertrouwd te raken met de belangrijkste concepten die hieronder worden gebruikt.

De Gpg4win-download is zelf digitaal ondertekend met een sleutel die is geverifieerd door een erkende certificaatautoriteit (CA) en die onafhankelijk kan worden gecontroleerd op verificatie met behulp van een vertrouwde oudere kopie van GnuPG (een SHA1-hash is ook beschikbaar). Vertrouw nooit een exemplaar van Gpg4win dat u niet hebt geverifieerd.

Nadat GnuPG is geïnstalleerd, hebben we drie dingen nodig om een ​​digitale handtekening te verifiëren:

  • Het bestand dat we willen verifiëren (duh!), B.v. het installatieprogramma van pidgin-otr-4.0.1.exe
  • Het PGP / GPG-handtekeningbestand (.asc) b.v. pidgin-otr-4.0.1.exe.asc
  • Het openbare sleutel / PGP-certificaat dat is gebruikt om deze handtekening te maken, b.v. gpgkey.asc

Deze bestanden moeten allemaal (hopelijk) worden geleverd door de ontwikkelaar wiens digitaal ondertekende bestanden u wilt verifiëren. Publieke sleutel / PGP-certificaten worden vaak opgeslagen op een sleutelserver, maar de ontwikkelaars moeten instructies geven om toegang te krijgen.

kleopatra

Kleopatra is een sleutelbeheerprogramma gebundeld met Gpg4win.

1. U hebt een persoonlijke privésleutel nodig om het PGP-certificaat te certificeren. Als u er eerder een hebt gemaakt (bijvoorbeeld met GPA), kunt u deze importeren (Bestand -> Certificaten importeren ...) of u kunt een nieuw sleutelpaar maken (Bestand -> Nieuw certificaat ...).

Wizards zullen u door de rest van dit proces leiden

2. Importeer de openbare sleutel / PGP-certificaat in Kleopatra - gebruik ‘Certificaten importeren’ of klik met de rechtermuisknop op het bestand en selecteer ‘Sleutels importeren’.

3. Certificeer het PGP-certificaat met uw persoonlijke sleutel - dit vertelt GnuPG dat u de persoon vertrouwt die het certificaat heeft ondertekend.

a) Klik in Kleopatra met de rechtermuisknop op de sleutel en selecteer 'Certificaat certificeren'.

b) Selecteer het certificaat en bevestig dat u de vingerafdruk hebt geverifieerd (hopelijk wordt dit gepubliceerd op de website van de ontwikkelaar).

c) Tenzij u zeer zeker bent van de authenticiteit van het certificaat, dient u alleen voor uzelf te certificeren (certificaten werken volgens het principe van een web van vertrouwen - hoe meer mensen ze vertrouwen, hoe zekerder u kunt zijn dat ze echt zijn).

d) Voer uw wachtwoordzin in om het certificaat te verifiëren.

4. Nu u het certificaat hebt gebruikt dat is gebruikt om de handtekening te maken voor het gedownloade bestand (whew!), Kunt u het gebruiken om de handtekening te verifiëren.

a) Ga in Kleopatra naar Bestand -> Decodeer / verifieer bestanden en blader naar het handtekeningbestand, of klik er met de rechtermuisknop op en ga naar MoreGpgEX-opties -> Verifiëren.

b) Zorg ervoor dat ‘Input File’ het handtekeningbestand is en dat het veld ‘Signed data’ het programma of bestand bevat dat u wilt verifiëren en druk vervolgens op ‘Decrypt / Verify’.

c) Als alles goed gaat, verklaart Kleopatra de handtekening geldig.

Hoe kan ik een certificaat vertrouwen?

De eenvoudigste manier om te controleren of een PGP-certificaat geldig is, is om de website van de persoon die het certificaat moet hebben ondertekend te controleren ... met een beetje geluk zal het de vingerafdruk van het certificaat publiceren.

Hoewel dit eenvoudig is, garandeert dit echter niet de authenticiteit van de handtekening, omdat de website mogelijk is gehackt of door een overheid is gedwongen om een ​​nep-vingerafdruk weer te geven (hetzelfde probleem dat cryptografische hashes plaagt).

Dit is waar het web van vertrouwen komt, waar gebruikers instaan ​​voor een certificaat. In de praktijk is dit een geheimzinnig proces dat zowel te complex als te duister is voor de meeste gebruikers, dus het beste waar de meesten van ons op kunnen hopen is dat het certificaat is bevestigd door een erkende certificaatautoriteit of is ondertekend door bekende ontwikkelaars die hun ondertekeningssleutels publiceren (zoals de Tor-ontwikkelaars bijvoorbeeld).

Pidgin + OTR is in sommige opzichten een slecht voorbeeld van hoe digitaal ondertekenen zou moeten werken, omdat de OTR-webpagina bijna geen instructies bevat over het gebruik van de gepubliceerde sleutels en het PGP-certificaat niet alleen erg moeilijk te vinden was, maar ook beschikbaar was van https://otr.cypherpunks.ca/gpgkey.asc is er geen gemakkelijke manier om de authenticiteit te verifiëren (het feit dat een 1024-bit RSA-sleutel gebruikt, is ook een slechte show in dit tijdperk wanneer de NSA waarschijnlijk zo'n zwakke codering kan kraken ).

Het is echter een goed voorbeeld van waarom het hele idee van digitale handtekeningen zo'n puinhoop is! Een interessante discussie over hoe u kunt proberen het OTR-certificaat te verifiëren, is hier beschikbaar.)

Conclusie

Zoals u kunt zien, is het verifiëren van een digitale handtekening echt lastig, dus het is geen wonder dat zelfs degenen die het jargon-zware geheimzinnige proces begrijpen, zelden de moeite nemen. Het probleem wordt nog verergerd door veel ontwikkelaars die niet uitleggen hoe ze hun bestanden kunnen verifiëren en / of slordige PGP-certificaten afgeven die heel moeilijk te verifiëren echt zijn (OTR-team, we kijken naar u!)

Het feit dat digitale handtekeningen de enige zinvolle manier blijven om te garanderen dat de bestanden die u downloadt, degene zijn die u wilde downloaden (of dat de ontwikkelaars u wilden downloaden), voorspelt niet veel goeds voor internetbeveiliging.

Totdat iemand een beter, gebruiksvriendelijker systeem uitvindt, is onze beste hoop echter om ontwikkelaars aan te moedigen om duidelijke instructies te geven voor het gebruik van hun digitale handtekeningen en om zinvolle garanties te publiceren met betrekking tot de authenticiteit van hun PGP-certificaten ... (zucht)

"Digitaal handtekeningdiagram" door Acdx - Eigen werk. Licentie onder CC BY-SA 3.0 via Wikimedia Commons - https://commons.wikimedia.org/wiki/File:Digital_Signature_diagram.svg#mediaviewer/File:Digital_Signature_diagram.svg

Brayan Jackson
Brayan Jackson Administrator
Sorry! The Author has not filled his profile.
follow me