In de Security Tip van de week geeft elke week een andere professional, expert, onderzoeker of lezer een security tip. Persoonlijke tips, variërend van het veilig configureren van Windows, een handige security tool of het juist instellen van een firewall, waarmee de tipgever zijn systeem, applicatie of netwerk veiliger maakt.
Heb jij ook een leuke, originele, maar bovenal goede security tip die niet mag ontbreken, stuur dan een mail naar redactie@security.nl.
Deze week het tweede deel van de tip van Erik van Straten
Veiliger downloaden onder Windows deel 2: Windows GUI's voor GnuPG/PGP
In deel 1 heb ik uitgelegd hoe PGP en GnuPG werken. In dit tweede en laatste deel van deze tip laat ik zien welke Windows software hiervoor beschikbaar is en geef een advies voor een keuze uit de vele mogelijkheden.
Windows GUI's voor GnuPG
Hier ben ik vooral in november en december 2012 naar op zoek geweest. Na het uitfilteren van verouderde (slecht onderhouden) en minder geschikte software, blijven m.i. een beperkt aantal gratis producten voor het controleren van digitale handtekeningen over waarvan ik meteen de voor en nadelen noem. Al deze programma's maken gebruik van GnuPG commandline tools, in de meeste gevallen worden deze automatisch geïnstalleerd (GnuPG binaries zitten "ingebakken" in de installer).
Belangrijk: begin dit jaar (2013) is een ernstige kwetsbaarheid in GnuPG gepubliceerd. Het betreft de versies 1.4.x tot en met 1.4.12 en 2.0.x tot en met 2.0.19. In die oudere versies kan een gemanipuleerd public key bestand leiden tot een buffer overflow met code executie als gevolg. Onderstaande tests heb ik nog met software van eind 2012 uitgevoerd, de door mij geteste versies zijn dus kwetsbaar en moet je niet installeren! Met een kwetsbare versie ben je bij uitstek een potentieel slachtoffer van targeted attacks, met name als je jouw public key gepubliceerd hebt en overal gesigneerde e-mails en dergelijke "achterlaat".
PGP voor Windows (ook beschikbaar voor MacOSX en Linux)
In deel 1 van deze tip wees Fwiffo erop (waarvoor nogmaals dank!) dat je de commerciële PGP software (tegenwoordig van Symantec) ook gratis kunt gebruiken, mits uitsluitend voor niet-commercieel gebruik. Ik had een oudere versie van die software op mijn PC, maar daar was de licentie net van verlopen. Om te testen heb ik op 27 januari de trialware versie gedownload via. Downloaden kan overigens pas nadat je een account aanmaakt bij Symantec waarin je persoonlijke gegevens moet prijsgeven (althans ik heb geen mogelijkheid gevonden om zonder account te kunnen downloaden).
Het gedownloade bestand "SymantecEncryptionDesktop10.3.0_Windows.zip" bevat:
2012-12-10 13:51 85,805,105 SymantecEncryptionDesktop10.3.0_Windows_Inner.zip
2012-12-10 13:51 280 SymantecEncryptionDesktop10.3.0_Windows_Inner.zip.sig
2012-12-10 13:51 54,451,744 SymantecEncryptionDesktopWin32-10.3.0.exe
2012-12-10 13:51 63,188,512 SymantecEncryptionDesktopWin64-10.3.0.exe
In dit artikel leg ik uit hoe je (ook op een nieuwe Windows installatie) veilig een tooltje kunt downloaden voor het bepalen van SHA1 hashes van bestanden. De SHA1 hash van SymantecEncryptionDesktop10.3.0_Windows.zip is 5e7babdd75615810ec9e3719a75fdfa1d5c5496a. Omdat de feitelijke download van die zipfile via http plaatsvond vanaf esdownload.symantec.com, heb ik geen volledige zekerheid dat ik het juiste bestand te pakken heb (bijv. een DNS aanval kan me naar een andere site hebben geleid zonder dat ik dat gemerkt heb).
Met WinPT verderop heb ik de .sig file in het File Manager venster gesleept, rechts op de regel geklikt en voor Verify gekozen. Daarop vroeg WinPT of deze de sleutel 0xFA85D00F mocht downloaden, hetgeen ik goedgevonden heb. Die sleutel is, naar verluidt, van "PGP Corporation Release Key
Daarop meldde WinPT in het "File Verify" venster dat de handtekening klopt, maar waarschuwt daarbij wel voor het volgende:
Warning! This key is not certified with a trusted signature! There is no indication that the signature belongs to the owner.
Ik heb geGoogled naar "PGP Corporation Release Key" en vond alleen een blauwe haai die bevestigt dat 0xFA85D00F van PGP is, en een gebruiker die denkt dat die key invalid is (zie onderaan). Volgens de WinPT key manager bestaat die key echter al sinds 2003.
Vreemd dat er dan zo weinig over te vinden is! En ook bizar dat deze gedownloade key slechts voorzien is van countersignatures van PGP Corp. zelf. Hoe moet ik nu bepalen of deze key daadwerkelijk van PGP/Symantec is? Ook na heel veel Googlen heb ik onvoldoende bewijs gevonden dat de eerdergenoemde public key daadwerkelijk van Symantec/PGP corp. is. Echt een slechte zaak dit.
Om bovenstaande redenen heb ik besloten PGP nog niet te installeren. Zodra ik meer zekerheid heb over de authenticiteit van deze software zal ik deze installeren en daarna jullie via een bijdrage op deze site op de hoogte brengen van mijn ervaringen daarmee. Voor degenen die er zelf al mee aan de slag willen: in http://www.symantec.com/docs/TECH201458 vind je release notes en handleidingen van de actuele versies, en als je die URL laat eindigen op TECH166098 vind je de laatste "Resolved Issues".
Tip: zoek je screenshots van onderstaande programma's, Google dan naar de naam en ga naar afbeeldingen (Images).
1) GPG4Usb
GPG4Usb valt meteen af omdat er geen handtekeningen onder binaire bestanden mee kunnen worden gecontroleerd, maar ik noem deze toch omdat je hiermee eenvoudig en snel digitale handtekening onder tekst (bijv. e-mails) kunt checken en deze software (zonder installatie) werkt vanaf bijv. een USB stick:
+ Compact handig tooltje voor "erbij"
+ GPL open source
+ Maakt gebruik van de "keyring" die je met andere tools onderhoudt
+ Werkt ook onder Win7/64
o Ondersteunt GnuPG v2 nog niet, maar voor onze toepassing is dat geen enkel probleem
- Webite heet "Cyberpunk", geen achternamen van auteurs (vertouwensaspect)
- Gesigneerd door "gpg4usb-project
- Pad naar de map met keyring lijkt fixed
Als je een andere GnuPG tool op je eigen PC gebruikt, betekent het laatste punt dat je handmatig jouw keyring tussen je USB stick en jw PC zult moeten synchroniseren. Dat kan natuurlijk eenvoudig tot fouten leiden.
LET OP: op het moment van schrijven (2013-01-27) zie ik op de site nog geen update voor kwetsbaarheid CVE-2012-6085. Als je veilig wilt werken zul je zelf de onderliggende GnuPG binaries met de hand moeten bijwerken naar de laatste versies!
2) GPGShell
+ Ziet er netjes uit en werkt prima (maar alleen onder XP)
o Ondersteunt GnuPG v2 nog niet, maar voor onze toepassing is dat geen enkel probleem
- Werkt niet onder Windows 7
- Wel gratis, maar niet open source
- Waarschuwing: als je niet uitkijkt worden oude binaries in System32 geïnstalleerd
LET OP: op het moment van schrijven (2013-01-27) zie ik op de site nog geen update voor de GnuPG kwetsbaarheid CVE-2012-6085.
3) WinPT (Windows Privacy Tray)
+ GPL open source
+ Werkt ook onder Win7/64
+ Lekker compact, slechts 4 bestanden
o Ondersteunt GnuPG v2 nog niet, maar voor onze toepassing is dat geen enkel probleem
o Ontbrekende public keys worden met een paar kliks gedownload
o Een nog niet door jou ondertekende public key van een signer kan al voor verificatie worden gebruikt
o GnuPG is niet bijgesloten, moet je apart downloaden en installeren (in dit geval geen nadeel gezien de recente GnuPG kwetsbaarheid)
- Geen (un-) installer, maakt registersleutels aan die blijven "hangen" na verwijderen binaries
- Snelkoppeling naar het programma zul je zelf moeten maken
- Buggy: crasht soms
- Buggy: belangrijke aandachtspunten bij de eerste keer opstarten (zie verderop)
- Vensters zijn te klein en kun je niet altijd groter maken (veel scrollen)
- Signature niet van de maker zelf, maar van beheerders van intevation.de
(overigens is intevation.de een site met veel open source software).
4) GnuPT (http://www.gnupt.de/) bevat de combinatie van GnuPG en WinPT.
+ Eén download voor zowel WinPT als GnuPG (GnuPT v4.5.0 bevat GnuPG v1.4.13, de gerepareerde versie dus)
+ Installatieprogramma (je kunt uninstallen)
+ GPL open source
- Website alleen Duits en Russisch
Zie verder de voor en nadelen van WinPT.
5) Gpg4Win (waaronder Kleopatra) via
+ Qua security goed doordacht, streng
+ GPL open source
+ Installer bevat GnuPG GPG2.exe (versie 2.x) maar installeert ook een 1.x variant
+ Werkt ook onder Win7/64 (helaas ontbreken entries hiervoor in het verkenner context menu)
o Installer ondertekend met X.509 certificaat, echter met MD5 hash en zonder time stamp
o Installer met veel functionaliteit (deels onnodig/redundant)
o Lastig om op basis van een .asc of .sig bestand de public key erbij te zoeken
o Een nog niet door jou ondertekende public key van een signer kan NIET voor verificatie worden gebruikt
- Verwarrend: "certificate" en "public key" worden door elkaar gebruikt zowel voor X.509 certificaten als PGP keys
- Niet signed door ontwikkelaars maar met "Intevation File Distribution Key".
- Slordig: als je Kleopatra start opent het venster (meestal?) achter alle andere vensters.
- Zware applicatie (gebaseerd op KDE en QT): complex, veel bestanden, diverse services
- Rommelig: het proces van "cross signatures" ophalen is ondoorzichtig
- Insecure: zoekt libkdecore.dll en libkleo.dll in "Current Working Directory"
- Hangt soms zonder reden (Engelstalige Windows meldt "stopped responding").
LET OP: op het moment van schrijven (2013-01-27) zie ik op de site nog geen updates met de laatste GnuPG!
Van de bovenstaande programma's vind ik zelf de losse WinPT + GnuPG (niet de combinatie van beiden in GnuPT) het handigst. Ik ga ook even verder in op Gpg4Win.
Nb. in de praktijk blijk je dit soort programma's probleemloos naast elkaar te kunnen installeren en gebruiken terwijl ze van dezelfde "keyring" (mak met bestanden) gebruik maken. Je kunt dan elk van die programma's gebruiken voor dat ene aspect waar ze in uitblinken. Nadeel is wel dat je dan van meer software in de gaten moet houden of er updates van verschijnen (en bijwerken natuurlijk).
GPG4Win installatie tips
- Ik heb GPG4Win v2.1.0 getest, die bevat buggy GnuPG versies. Ook Gpg4win 2.1.1 Beta is nog niet bijgewerkt!
- Installeer alleen GnuPG (verplicht), Kleopatra en Gpg4Win Compendium
- Wijzig map van C:\Program Files\GNU\GnuPG\ in C:\Program Files\GNU\GnuPGv2\
- Kies Defaults
-
Zoals eerder beschreven is GPG4Win insecure: bij het starten van Kleopatra worden in elk geval libkdecore.dll en libkleo.dll in de "Current Working Directory" gezocht, en dat betekent in de praktijk dat onbedoeld DLL's uit een andere map kunnen worden geladen. Vooral in het geval van USB disks en netwerkshares is dit een beveiligingsrisico.
Om dit (niet zo heel grote, maar toch) risico uit te sluiten kun je een DWORD registerwaarde "CWDIllegalInDLLSearch" aanmaken en deze de waarde 0xFFFFFFFF geven (zie https://support.microsoft.com/kb/2264107, de bijdrage van Bitwiper in https://secure.security.nl/artikel/34260/1/Problemen_na_DLL-lek-patch_KB2264107_en_CWDIllegalInDllSearch%3DFFFFFFFF.html of Google naar: CWDIllegalInDLLSearch).
Op mijn PC's heb ik CWDIllegalInDLLSearch op 0xFFFFFFFF gezet waardoor Kleopatra niet werkte na installatie. Dit kun je verhelpen met de volgende registry settings, voor een 32bit systeem:Windows Registry Editor Version 5.00
@="C:\\Program Files\\GNU\\GnuPGv2\\bin\\Kleopatra.exe"
"Path"="C:\\Program Files\\GNU\\GnuPGv2"
en op een 64bit systeem:Windows Registry Editor Version 5.00
@="C:\\Program Files (x86)\\GNU\\GnuPGv2\\bin\\Kleopatra.exe"
"Path"="C:\\Program Files (x86)\\GNU\\GnuPGv2"
Gegeven het feit dat er nog geen GPG4Win beschikbaar is met bijgewerkte GnuPG, ga ik hier nu verder niet op in.
WinPT installatie
Voor ervaren gebruikers die het gemis van een nette (un-)installer en het hacken van het register geen pobleem vinden en van minimalistische software houden, is dit een goede keuze (minder ervaren gebruikers zou GPG4Win aanraden, ware het niet dat deze nog niet is bijgewerkt met een gepatchte GnuPG versie).
Download de laatste WinPT versie. Voor dit artikel heb ik gnupg-w32cli-1.4.12.exe getest. Zoals ik eerder schreef is daar een update van. Van genoemde versie heb ik de digitale handtekening, gezet door Werner Koch, al grondig gecontroleerd. De SHA1SUM hash van dit bestand is e7d8e48900d35fe407a8d8308b3a02b8de46b2f2 (voor andere hash-formaten van dit bestand open je VirusTotal, vult bovenstaande hash in en klik op de knop "Search it!"). De release notes (inclusief SHA1sum en public key ID van de auteur, Werner Koch) van 1.4.13 vind je hier: http://lists.gnupg.org/pipermail/gnupg-announce/2012q4/000319.html.
Installeer de laatste 1.x versie van GnuPG (momenteel gnupg-w32cli-1.4.13.exe):
- NLS hoef je niet te installeren als je alleen Engels wilt
- Tools (waaronder gpgv en gpgsplit) zijn niet nodig
- Documentation zou ik wel doen
Download de laatste versie van WinPT vanuit http://winpt.wald.intevation.org/download.html. Op het moment van schrijven is dat deze versie met als SHA1SUM: bccda3914f63ab70bb39d7118887ed824872c908.
Pak die zipfile uit in een map naar keuze (bijv. C:\Program Files\WinPT\). Maak meteen een snelkoppeling aan naar WinPT.exe in die map, en kopieer die snelkoppeling naar je bureaublad of naar de gewenste start menu map.
LET OP: WinPT v1.5.3 eerste keer opstarten: vermijd bestandsassociaties!
Als je WinPT.exe voor de eerste keer opstart (dit geldt voor elke gebruiker, gebaseerd op het bestaan van de registersleutel HKCU\Software\WinPT\), vraagt het programma: "WinPT can register some GPG file types for you so that they can be processed with a double click in the explorer. Do you want to continue?" Kies dan "No"!
Als je "Yes" klik werkt dat namelijk niet goed: bijv. de bestandsextensie ".asc" wordt dan geassocieerd met "GPG Armored Data" (dit zie je door in een command promt uit te voeren: assoc .asc) terwijl onder"GPG Armored Data" het volgende te vinden is: c:\Program Files\GNU\GnuPG\WinPT.exe - echter de %1 parameter ontbreekt! Gevolg: als je later op een .asc bestand dubbelklikt lijkt er niets te gebeuren, maar als je naar het taakbalk systeemvak kijkt zul je zien dat daar een sleutel icoontje is verschenen.
Voor de registerhackers onder ons: het wijzigen van
c:\Program Files\GNU\GnuPG\WinPT.exe
in
"c:\Program Files\GNU\GnuPG\WinPT.exe" %1
lijkt in eerste instantie het gewenste resultaat op te leveren, maar geeft al snel meerdere draaiende instanties van WinPT.exe en allerlei foutmeldingen. Niet doen dus!
Vervolgens zal WinPT controleren of je de map voor jouw keyring al bestaat, zo niet dan zal gevraagd worden of deze moet worden aangemaakt: kies dan Yes.
Daarna moet je helaas meteen een eigen keypair genereren (of importeren). Dat is jammer want je bent op dat moment nog niet in staat geweest om instellingen van WinPT (zoals de geldigheidsduur van dat sleutelpaar) te wijzigen.
Maak daarom eerst een wegwerpaccount aan. Kies "Generate a GnuPG key pair" en klik OK. Vul daarna als naam in: test en als e-mail adres: test@test. Als passphrase vul je daarna test, negeer de waarschuwing voor de te korte passphrase, en vul nogmaals test in.
WinPT zal een nieuw keypair voor jou aanmaken (dit duurt even) en je vervolgens vragen of je jouw keyring meteen wilt backuppen: in dit geval hoeft dat nog niet.
WinPT Gebruik
Met een klik (linker of rechter muistoets maakt niet uit) op het sleutelicoon in het systeemvak van de taakbalk open je snel de "Key manager" of de "File Manager".
In het venster van de WinPT File Manager kun je gewoon .sig en .asc files droppen, met de rechtermuistoets op de regel klikken en voor Verify kiezen. Dit werkt allemaal heel handig voor het valideren van downloads.
Ik wens jullie veel succes en veilige systemen toe!
Erik van Straten is werkzaam bij TriOpSys b.v. als Systems Consultant. Sinds 1 januari j.l. is Erik (deeltijd) security officer van TriOpSys.
Dit artikel is geschreven op persoonlijke titel van de auteur en reflecteert niet noodzakelijk de zienswijze van Security.NL.
Deze posting is gelocked. Reageren is niet meer mogelijk.