Signing Party
From NeoWiki
There is going to be a List Based PGP key Signing Party at NeoCon2008 (and beyond.) Why? So we can expand our non-existent web of trust, of course! But why? We shall sign keys today so we can sign documents digitally in the future. The possibility to encrypt documents is just a bonus included in the deal kinda like the pickle that comes with your hot dog.
Please read this page fully including the FUDaPDC section before starting anything. Input questions inline (right inside this document via the edit button atop) so someone can answer them as fast as humanly (robotically) possible. Don't forget to sign because it makes questions easier to spot.
Also, since this is contained inside a wiki, feel free to modify/edit to suit your flavor of propaganda dissemination. Don't forget to remove lies. This page is over simplified on purpose or because I'm not smart... you decide.
We should have our own keyserver just so everyone's keys are in one location rather than being spread out.
[edit] Gooooooooooooooooooooooooooooooal
My goal is to create a non-technical (less wordy,) Neoturbine specific version of The Keysigning Party HOWTO that has lots of screenshots which should allow a maximum number of people to participate. This article should get more detailed/clear as the days go on.
[edit] still left todo
- add information on getting, signing, reuploading keys of others.
- 'finalize' and fix this page/list
- neocon!
[edit] Software Used (and abused)
The software used in this guide:
- Gpg4Win - collection of various GUIs (Windows binaries) and GnuPG (Please read the PUDaPDC section)
- GnuPG - cross platform CLI implementation of OpenPGP
- This software's use remains the same (approximately) on all operating systems.
Other softwares that implement the OpenPGP standard (or provide GUIs for GnuPG) exist but were not included for sake of sanity. (I'm still waiting for a ncurses based GnuPG client. :P)
[edit] Obtaining and Installing software
[edit] Windows
We will be using either GnuPG (CLI) or Gpg4Win (GUI). Note: the latter includes the former. The most basic installation of Gpg4Win is as follows:
Download software and double click to install
Keep clicking "Next" until you reach this screen.
- If you want a separate MUA (Mail User Agent) for encrypted communications you must select Claws-Mail at Installation
- The manuals are not needed since they are available online. The German manual (if you require it) can easily be translated by the numerous free online translation services.
Finish the installation by clicking "Next" a few more times then "Finish".
[edit] Linux
We will be using GnuPG. Installation varies slightly from distribution to distribution due to package managers and package names. It also depends on whether you will be installing from source (I won't get into this) or from packages.
Run apt-get install yourfavgpgpackage as root in Debian if GnuPG isn't installed already.
[edit] Other operating systems
These are not discussed here for the simple reason that I do not have access to them. GnuPG has probably been ported to your system. If/when you have installed PGP-related software please update this page with information.
[edit] Generating a key
[edit] Using Gpg4Win
This software comes with guides on this subject but those (at least the ones in English) do not detail how to create large (1024+) signing keys.
I do not think it is possible for GPA to generate signing keys larger than 1024B using the key generating wizard. To generate keys in GPA using a similar interface as WinPT -- Edit >> Preferences >> "Use Advanced Mode:" >> "Yes"
The following details key generation using WinPT.
Open WinPT. It will automatically load to the Windows systemtray. Double click on its at-sign-magnifying-glass icon to open it.
From the "Key" menu select "New" then "Expert"
- Leave the "Key type" at its default setting
- The "Subkey ..." text box determines the size of your encryption (ELG -- Elgamal) key only
- Setting an "Expire date" is useful because memories fade (you might forget your passphrase) and the longer you use the same key the more likely your passphrase will be compromised. I'd choose a date in the not to distant future.
- If you wish to remain pseudoanonymous so use your nickname instead of a "Real name".
- Once you have completed entering in data click "Start"
Enter in a passphrase This must be large. It's the weakest part of your key. A brute force attack is possible with current clustered computers on small (less than 25 chars) passphrases (its even easier/faster if someone gets a hold of your private key.) This program will warn you if you enter one less than 8 characters long.
It will now start generating your key. The time it takes to complete this will depend on how much random data is available and how large you choose your key to be.
Once it is complete WinPT will ask if you would like to backup your keyrings. This is a good idea as long as you know that those backups wont be compromised.
[edit] Using GnuPG
Run the following command which will allow you to interactively generate a keypair. IMHO, the CLI is pretty straight forward. The hardest part of using the CLI for a new user would be to cd over to the correct directory if using Windows.
gpg --gen-key
The output will look something like this:
Please select what kind of key you want:
(1) DSA and Elgamal (default)
(2) DSA (sign only)
(5) RSA (sign only)
Your selection?
DSA keypair will have 1024 bits.
ELG-E keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048)
Requested keysize is 2048 bits
Please specify how long the key should be valid.
0 = key does not expire
<n> = key expires in n days
<n>w = key expires in n weeks
<n>m = key expires in n months
<n>y = key expires in n years
Key is valid for? (0)
Key does not expire at all
Is this correct? (y/N) y
You need a user ID to identify your key; the software cons
tructs the user ID
from the Real Name, Comment and Email Address in this form
:
"Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.d
e>"
Real name: Mary Ann Sylvan
Email address: mas@example.org
Comment:
You selected this USER-ID:
"Mary Ann Sylvan <mas@example.org>"
Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
You need a Passphrase to protect your secret key.
The sections that you need to fill out have been bolded in this example.
[edit] Where do I find the KeyID?
KeyIDs are very important since they are used to get, sign, and upload keys.
[edit] A note about key fingerprints
It is highly unlikely that two people at NeoCon (or anywhere) will have the same KeyID [2] but just so there is no mix up (or to make the possibilities of a mix up even smaller) you might also want to jot down your key fingerprint.
The Keysigning Party HOWTO suggests that you have everyone's key fingerprint at the party but this is stupid and redundant since (afaik) you are only able to get keys from any given keyserver with KeyIDs via GnuPG. Basically, you can get the fingerprint using the key but you cannot get the key using only a fingerprint.
[edit] Using Gpg4Win
In WinPT the KeyID and fingerprint can be found by right clicking on the key in question then clicking Properties.
The KeyID is highlighted. The "0x" before the hexadecimal number explicitly specifies that it is a hexadecimal number and is not a part of the KeyID. The key's fingerprint is clearly visible in its own textbox.
[edit] Using GnuPG
gpg --list-keys
The output of this command will look something like:
pub 1024D/18F9BD44 2008-05-14 uid Mary Ann Sylvan <mas@example.org> sub 2048g/A43F0FAA 2008-05-14
The KeyID (in bold) of "Mary Ann Sylvan <mas@example.org>" is the hexadecimal number next to the key's info (1024D -- a 1024 bit DSA key). Although, the sub key (the 2048 bit Elgamal key used for signing) has its own KeyID, a pgp key is referred to by its primary KeyID (which is listed first).
The following command will print the given KeyID's (here in bold) fingerprint
gpg --fingerprint 18F9BD44
This will produce an output similar to:
pub 1024D/18F9BD44 2008-05-14
Key fingerprint = 09EE 4976 337F 74F9 D60A BF5E EC45 C6B3 18F9 BD44
uid Mary Ann Sylvan <mas@example.org>
sub 2048g/A43F0FAA 2008-05-14
The Key fingerprint is clearly outputted.
[edit] Uploading a key
[edit] Using Gpg4Win
In WinPT right click on the key and select "Send to Keyserver" then maneuver to one specified in the list. Note: You can send the key using various protocols including HTTP, HKP, LDAP.
[edit] Using GnuPG
gpg --keyserver keyserver.example.org --send-keys 18F9BD44
This will send the key with KeyID "18F9BD44" to keyserver "keyserver.example.org"
[edit] Creating/obtaining a list of participants
Here is a list of participants. Don't forget to add your own name. At the very least include your name and KeyID. You might also want to include your key fingerprint. When NeoCon nears the list will become finalized (probably as a csv or pdf) and it should be available at NeoCon but don't trust us.
[edit] An informal list of participants
Sahal
[edit] The actual party
At the party armed with a list and a pen you should be able to fill out the necessary lines.
Go up to Someone.
Say "Hello you fool! What's going on man?"
Indicate that you are looking to verify her identity.
Pull out papers or share secrets.
Once you are sure you are talking to the key holder indicate it on your list.
Repeat until you have verified everyones identity.
Enjoy Neocon!
[edit] Obtaining and signing keys
When you finally get back home make sure that your computer has not been compromised, get everyone's key, sign everyone's key, and upload each signed key to the keyserver.
[edit] Using Gpg4Win
[edit] Obtaining Keys
The most basic way to get a person's key is through a HTTP interface. You can save it to your harddisk then import it into your keyring.
[edit] Signing Keys
information will go here
[edit] Uploading Signed Keys
information will go here
[edit] Using GnuPG
[edit] Obtaining Keys
GnuPG can either import keys from files or directly from keyservers.
[edit] Signing Keys
information will go here
[edit] Uploading Signed Keys
information will go here
[edit] Fear, Uncertainty, Doubt, agitprop, Paranoia, Defamation, Complexities
This section is full of (my and others) speculation and opinion. Why is it here? I think it is important to know the flaws of using any particular technology. A false sense of security is useless. Feel free to include your own and debunk myths (as you) please.
[edit] Basics
The user must be sure that her operating system has not been compromised. If the OS has been compromised, encryption/signatures/authentication will be useless. Verifying this may be as simple as running a virus scan or as complicated (time consuming) as Linux From Scratch or Gentoo Linux :) depending on your level of free time/paranoia (stop smoking reefers.) This test must be conducted at multiple random intervals (whenever the user is feeling paranoid.)
Watch out for hardware keyloggers. These are cheap and relatively hard to spot, especially on boxes where the keyboard gets plugged into the back. Ideally the keyboard jack should be in plain sight but this is always (afaik) not the case (haha). Lets start a movement to face all boxes backwards! Periodically (after a long absence) make sure that the keyboard wire is directly connected to the back of the box. This is assuming that a hardware keylogger isn't inside the keyboard itself and that the jack on the back of your box is directly connected to the motherboard.
Always encrypt text BEFORE saving files or else a plain text copy will lurk on harddrives (NTFS, FAT, ext3 do not actually delete files.) If you must (i.e. you follow this pattern: save plain text, encrypt, delete original) make sure you have a high turnaround rate so the file gets overwritten quickly. A smaller harddrive is good (find them while dumpster diving or buy a 1GB SDcard ~5.99$ USD at MicroCenter) but so is running some kind of p2p server (maybe a ftp topsite :P or freenet node) on a larger harddrive. Also do not save encrypted documents with highly detailed names (ones that have anything to do with the file's contents) because file systems might keep a list of file names even after files are deleted. All this can be prevented by using a LiveCD but I don't think a simple one (easy to verify/trust) solely for encrypting exists.
Is someone spying on you from above... not god(s) but cameras!? The cost and availability (mainstreaming of the spy trade has begun) of small spying cameras (many models cost less than USD 500$) is very little compared to the information/trust that might be lost/gained.
Electromagnetic Radiation put out by your CRT or LCD might be used to spy on you. The only way to protect from this is adequate shielding. See Gene Hackman's character in Enemy of the State.
US Government TEMPEST documents are also full of related paranoia.
[edit] Binaries, Trust, and Governments
Gpg4win provides a unified installer for Windows specific GPG related software. It is a project that was started by the Federal Office for Information Security of the German government. The user must have faith that this group did not infect the binaries. This might be difficult for some especially since the German Government forced Java Annon Proxy to include backdoors (if you believe certain sources.) The user can always get binaries from more trustable sources or compile them herself from source.
Windows itself cannot be trusted because only binaries are provided. Do you trust that Microsoft (the largest distributor of software) and the US government have not entered into secret agreements? This is the same government that has forced various internet and telecommunication providers to collect, submit, and process massive amounts of information.
The US government has recently used malicious software to gain passphrases. These softwares cannot be detected by anti-virus softwares simply because the companies refuse to rebel, mass distribution of these softwares cannot be verified, and the software used is not known. See Magic Lantern (software)
[edit] Hardware
Does the user trust her chip or harddrive manufacturer? The man page for wipe 0.20 provides paranoia:
Be aware that harddisks are quite intelligent beasts those days. They transparently remap defective blocks. This means that the disk can keep an albeit corrupted (maybe slightly) but inaccessible and unerasable copy of some of your data. Modern disks are said to have about 100% transparent remapping capacity. You can have a look at recent discussions on Slashdot. I hereby speculate that harddisks can use the spare remapping area to secretly make copies of your data. Rising totalitarianism makes this almost a certitude. It is quite straightforward to implement some sim- ple filtering schemes that would copy potentially interesting data. Better, a harddisk can probably detect that a given file is being wiped, and silently make a copy of it, while wiping the original as instructed. Recovering such data is probably easily done with secret IDE/SCSI com- mands. My guess is that there are agreements between harddisk manufac- turers and government agencies. Well-funded mafia hackers should then be able to find those secret commands too. Don't trust your harddisk. Encrypt all your data. Of course this shifts the trust to the computing system, the CPU, and so on. I guess there are also "traps" in the CPU and, in fact, in every sufficiently advanced mass-marketed chip. Wealthy nations can find those. Therefore these are mainly used for criminal investigation and "control of public dissent". People should better think of their computing devices as facilities lended by the DHS.
[edit] Mathamatics
If the user believes an easy way to factor extremely large integers exists she should not use key types that rely on them. If the user doesn't trust / cannot verify that she is getting random (can randomness be verified?) data from her OS or otherwise she cannot trust that any generated keys are sufficiently secure. Do computers (computer clusters) exist that are powerful enough to brute force quickly? Chapter 3 of Handbook on Applied Cryptography explains many of the mathematical problems related to public key encryption. Also see AES seems weak by Warren D. Smith and the first four comments at this thread on sci.crypt (then someone starts spamming 1984...)
[edit] Keep Reading
- The Keysigning Party HOWTO
- Weaknesses in Public-key cryptography on Wikipedia
- The GNU Privacy Handbook
- Handbook of Applied Cryptography
- Cryptology by Albrect Beutelspacher. This is an updated (in 1994) English translation of the original German.
- Last time I checked there was a lot of paranoia on the Tor network. Check the The Onion Router Wiki.
- The TexInfo and reference manual pages of GnuPG can also be accessed via
info gpgorman gpg - Get some randomness
- Gather randomness from non-broadcasting radio frequencies inputted into your sound card
- A list of public Key Servers

