Keysigning

Uit Stack Wiki
Ga naar: navigatie, zoeken

PGP- en CAcert-waarmerking bij Stack

Zo af en toe wordt de SHoBo bij Stack gecombineerd met een zogeheten 'PGP key singing party'. Bij een keysigning komen mensen bij elkaar die geïnteresseerd zijn in beveiliging om vast te stellen dat een bepaalde (PGP) sleutel daadwerkelijk bij een bepaald persoon hoort. Die sleutel kan gebruikt worden voor het zetten van (rechtsgeldige) digitale handtekeningen, bijvoorbeeld in e-mails of onder andere electronische documenten (PDF). Als je deel wilt nemen aan een keysigning, is het nuttig om vooraf je publieke PGP fingerprint op te sturen naar pgp@stack.nl. De organisatoren zorgen er dan voor dat er voor alle deelnemers kopieën hiervan beschikbaar zijn.

Naast de PGP-gebruikers, zijn er standaard ook CAcert-gebruikers aanwezig. De 'assurers' kunnen je identiteit verifiëren en je punten geven voor het CAcert web-of-trust. Via deze instanties kun je gratis SSL certificaten verkrijgen (mits je identiteit gecontroleerd is). Deze certificaten kunnen ook gebruikt worden voor digitale handtekeningen bij e-mail en andere documenten (als alternatief voor PGP), maar ook zijn SSL-server-certificaten te krijgen, voor het opzetten van bijvoorbeeld een HTTPS-webserver. Ben je geïnteresseerd in deze certificaten, zorg er dan voor dat je jezelf vooraf aanmeldt op de website van CAcert. De waarmerkers kunnen je identiteit dan direct na de controle bij Stack bevestigen via die website.

Voor een dergelijke web-of-trust-waarmerking is het gewenst om een geldig legitimatiebewijs te tonen om je identiteit te bevestigen. Meerdere identificatie-documenten zijn een pré, en voor StartSSL is het zelfs een vereiste om twee nationale identiteitsbewijzen te tonen.

Wat is PGP?

PGP, Pretty Good Privacy, is een standaard voor de versleuteling van electronisiche berichten, zo dat niemand behalve de aangegeven ontvanger het bericht kan lezen. Het is ook mogelijk om PGP te gebruiken om je (e-mail) berichten te ondertekenen met een digitale handtekening, zodat de ontvanger kan verifiëren dat het gehele bericht inderdaad door de afzender geschreven is - en het niet door iemand anders later aangepast is.

GPG, GNU Privacy Guard, is een opensource programma om PGP sleutels te beheren en om berichten te versleutelen en ondertekenen. Voor wie nog niet bekend is met GPG is de website GnuPG in 5 minuten een echte aanrader. Deze pagina geeft een goede introductie in het gebruik van GPG met een overzicht van alle belangrijke commando's.

PGP sleutels zijn 'betrouwbaarder' wanneer de correctheid door meerdere mensen bevestigd is. Als mensen tijdens een PGP keysigning hebben gecontroleerd dat een sleutel daadwerkelijk bij een bepaald persoon (identiteit) hoort, kunnen zij dat aangeven door de publieke sleutel te 'ondertekenen' met hun digitale handtekening. Deze getekende PGP-sleutels kunnen gepubliceerd worden via een publieke PGP keyserver, dat is een soort telefoonboek voor PGP-sleutels. Sleutels die bevestigd (ondertekend) zijn door mensen die je al kent, horen waarschijnlijk echt bij de genoemde persoon. Maar over de echtheid van een sleutel die je 'zomaar' ergens op internet tegenkomt, kun je nog twijfelen...

Wil je meedoen met een PGP-keysigning tijdens een SHoBo, stuur dan vooraf je publieke 'fingerprint' op naar de organisatoren, op pgp@stack.nl. Je kunt deze fingerprint genereren met het commando gpg --fingerprint 'mijnemail'. Merk op dat de volledige uitvoer van dit commando nuttig is voor anderen, dus stuur het in zijn geheel op (en niet alleen de regel met 'fingerprint' ervoor). Voor meer informatie over het gebruik van PGP in het algemeen en de Stack keysignings in het bijzonder kun je altijd contact opnemen met de experts, via het genoemde adres.

Wat is CAcert?

CAcert is een vrijwilligersorganisatie die gratis X.509 certificaten uitgeeft. Een client-certificaat kan gebruikt worden voor digitale handtekeningen of versleuteling van de tekst bij e-mail. Daarnaast geeft CAcert ook server-certificaten uit die gebruikt kunnen worden om versleutelde verbindingen op te zetten met internetservers, bijvoorbeeld een webserver die https gebruikt.

Er zijn veel organisaties die dergelijke SSL-certificaten uitgeven (zoals KPN en Verisign), maar de meesten vragen veel geld voor deze dienst. CAcert biedt een goed alternatief, waarbij de gebruikers zelf de indentiteit an andere gebruikers controleren. Vertrouwen wordt opgebouwd via een zogenaamd 'web-of-trust', wat vergelijkbaar is met de manier waarop PGP-sleutels vertrouwd worden. Dit wil zeggen dat het 'vertrouwen' in een bepaalde identiteit groter wordt als meer mensen bevestigingen dat die electronische identiteit daadwerkelijk bij een bepaald persoon hoort.

Voor waarmerking tijdens een SHoBo dienen CAcert gebruikers een waarmerkingsformulier in te vullen. Blanco formulieren zijn standaard beschikbaar bij een SHoBo. Hierop moet je invullen je naam, geboortedatum en e-mailadres. Dit e-mailadres moet corresponderen met het adres dat je bij CAcert als accountnaam hebt opgegeven (je digitale identiteit). Ook dien je een geldig identificatiebewijs mee te nemen (liefst twee zelfs), zodat de waarmerkers je naam en geboortedatum ook kunnen controleren.

Wat is StartSSL?

StartSSL is een commercieel bedrijf dat gratis X.509 certificaten uitgeeft. Dit zijn dezelfde typen certificaten als CAcert uitgeeft. Bij StartSSL betalen de klanten niet voor de certificaten zelf, maar alleen voor de identiteitscontrole van de persoon of instelling aan wie het certificaat verstrekt wordt. Dit in tegenstelling tot de meeste bedrijven, die ook flink geld vragen voor de certificaten zelf.

Sinds kort kent StartSSL ook een web-of-trust systeem, net zoals Thawte (een andere commerciële certificatenuitgever) in het verleden deed, en het niet-commerciële CACert nu ook nog hanteert. De identiteitscontrole via andere gebruikers die deelnemen aan het 'web-of-trust' is gratis. Wanneer men gevalideerd is door tenminste 2 personen, dan kan men o.a. certificaten aanvragen met de eigen naam er op (voor e-mail, S/MIME). Wanneer men gevalideerd is door 3 personen kan men de 'notary test' doen en zelf notary worden om anderen te valideren.

In tegenstelling tot CACert, worden de root-certificaten van StartSSL wel standaard meegeleverd in alle gangbare browsers. Dat wil zeggen dat gebruikers deze niet meer handmatig hoeven te installeren en dat bezoeker geen melding krijgen over een onbekende certificaatuitgever. Bij installatie van webservercertificaten op je eigen systeem is het wel nuttig om ook de bijbehorende certificate chain te installeren (root + intermediate cert), omdat het Class-1 intermediate certificate nog niet in alle oude browsers meegeleverd wordt.

Voor sommige features is een Class-2 validatie nodig, waarvoor bij StartSSL wel betaald moet worden. Bijvoorbeeld voor wildcard (webserver) certificaten of certificaten met meerdere domeinnamen (CtrlAltName/SNI). Een standaard (gratis) webserver certificaat is geldig voor $domein en www.$domein. Voor het toevoegen van bedrijfsgegevens aan een certificaat is een Class-2 bedrijfsvalidatie nodig.

Voor StartSSL-validatie dient men soortgelijke formulieren in te vullen als voor CACert-validatie. Een belangrijk verschil is dat bij de validatie altijd 2 (geldige) nationale identiteitsbewijzen getoond moeten worden. Er zijn minder StartSSL-waarmerkers dan CACert-waarmerkers en ze zijn zelden aanwezig op SHoBo's.

Het einde van 1024-bits RSA-keys

Achtergrond

1024-bit RSA keys waren vroeger de standaard, vaak gecombineerd met MD5 of SHA1 hashes. Tegenwoordig is dat echter wat weinig. Het Amerikaanse NIST is toonaangevend op het gebied van standaardisering van cryptografie en onder andere verantwoordelijk voor de DES, DSA, SHA en AES standaarden. NIST heeft (al in 2005) bepaald dat de Amerikaanse overheidsinstellingen vanaf 1 januari 2011 geen 1024-bit RSA of DSA keys en geen SHA-1 hash-based signatures meer mogen gebruiken voor nieuwe beveiligingstoepassingen. Het gebruik van MD5 was al eerder verbannen.

Mozilla Firefox en Thunderbird accepteren vanaf 1 juli 2011 geen certificaten (sleutels) meer met MD5-signatures en vanaf 31 december 2011 geen 1024-bits RSA/DSA-certificaten meer. CAcert is op 10 juni gestopt met het gebruik van 1024-bits sleutels en MD5; en is nu druk bezig met gebruikers te vertellen om geen kleinere keys te gebruiken. Debian is op dit moment alle vrijwilligers met een @debian.org adres aan het overtuigen om over te stappen op een PGP key van tenminste 2048-bits.

Nieuwe standaard: 2048 of meer

De nieuwe standaard is het gebruik van keys met een minimum 'key strength' van 112 bits (volgens NIST goed genoeg tot 2030). Dat correspondeert met een RSA of DSA key van ten minste 2048 bits, een cryptografische hash van tenminste SHA-224 (d.w.z. SHA-2) en symmetrische sleutel tenminste 3TDEA of AES-128.

Een DSA-sleutel van 2048 bits of meer is cryptografisch gelijkwaardig met een RSA-sleutel. Maar gebruik van dergelijke DSA sleutels vereist wel ondersteuning voor SHA-2 hashing, omdat de standaard kortere hashes niet toestaat. In sommige antieke software (als het goed is, al jaren geleden vervangen) werken SHA-2 hashes niet.

Als alternatief voor RSA/DSA encryptie, kun je ook kiezen voor elliptic curve cryptografie, wat veel kleinere sleutels gebruikt voor een vergelijkbare cryptografische sterkte. De nu geadviseerde minimum keysize is 224 (voor NIST-approved ECC algoritmes). ECC voor PGP is echter pas beschikbaar in GnuPG 2.1 (nu slechts beschikbaar als beta).

Nog grotere keys

Voor gebruik nà 2030 adviseert NIST (d.w.z. verplicht voor Amerikaanse publieke en militaire instellingen) een minimum 'key strength' van 128 bits, ofwel RSA/DSA >= 3072 bits; SHA >= 256; AES >= 128; ECC >= 256.

Ter informatie, een 4096-bit RSA key correspondeert met een 'key strength' van 192 bit, ofwel SHA >= 384; AES >= 192; ECC >= 384. Uiteraard staat het je vrij om andere ('veiliger') algoritmes te gebruiken, zoals AES-256 voor data-encryptie. Maar pas wel op met het gebruik van kleinere keys: de zwakste schakel in je systeem bepaalt immers de sterkte van het geheel.

Nieuwe hashing standaard

Hoewel we met SHA-2 (d.w.z. SHA-224, 256, 384 en 512) nog geruime tijd vooruit kunnen, wordt er ook hard gewerkt aan een cryptografisch betere en snellere vervanger. Hiervoor loopt momenteel een wedstrijd waar diverse hashing algoritmes bekeken worden, volgend jaar (eind 2012) zal NIST één van deze algoritmes uitroepen tot de nieuwe standaard. Deze standaad zal SHA-3 gaan heten, maar gebruikt dus een heel ander algoritme dan SHA-2 (wat op zijn beurt ook al een heel ander algoritme was dan de bekende SHA-1).

GnuPG instellingen

GPG versies 2.0 en ouder gebruiken standaard nog SHA-1 signatures. Dit kan aangepast worden door de volgende instellingen in je ~/.gnupg/gpg.conf op te nemen:

personal-digest-preferences SHA256
cert-digest-algo SHA256
default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed

Links