Episode: 1461 Title: HPR1461: FOSDEM Keysigning Event Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr1461/hpr1461.mp3 Transcribed: 2025-10-18 03:31:19 --- Music Hello everyone, this is Dave Morris. Today I wanted to talk to you about an experience I had at the FOSDEM conference in Brussels, Belgium. That took place on the 1st and 2nd of February 2014 and during the conference I took part in a key signing event. I wanted to do this partly to see what it was, what it looked like, how it worked, partly because I knew that the end product would be an improved level of trust on my GPG key. FOSDEM key signing is a really big event, one of the biggest in Europe, so I thought it was going to be pretty interesting to attend. I've created a lot of show notes to go along with this talk in the hopes that it helps to understand what I find, at least to be a pretty complicated process. I'm maybe not going to cover everything that's in the notes because I was going to end up reading them to you, which is probably not a good idea. Anyway, let me just explain a little bit about what a key signing party is. It's an event where a number of people present the details of their public keys, PGPGPG or whatever, along with the proof of identity, and they do this to other participants so that they can be checked. Now, actually, signing takes place at this event, since if people were there signing keys, there would be a terrible temptation for nasty people to come along and try and hack their machines or very least shoulder serve there. They're pass phrases, but the participants take away a list of participants and the fact that they check them and see their IDs and so forth so that they can go home and sign the keys. The overall purpose is so that the decentralized web of trust, that is one of the consequences of using these types of keys, is enhanced. I'm not going to go into details of the web trust. I put a few pointers to further reading on this, and I imagine that a hooker will be maybe looking at this in the future. So before I set off to FOSDEM, before I got ready for the key signing, I obviously need to have a GPG key, which I had because I've been using it to sign an encrypt mail for a while, a few years actually. They're only really messing around with it until fairly recently. So having got this key, I thought rather than create a new one, I'd just use this one for the purpose. If you want to know more about how to create your own key, then have a listen to a hooker's shows which I've indexed from from my notes. I'm sure you'll be able to find them otherwise. So given that I had a key, the first thing I needed to do was to submit it to the FOSDEM key server, where all of the participants' keys were being collected, and I've given the command to do that in my notes. The key submission was available from the point of announcement in 2013 all the way up until Monday the 27th of January 2014. Since I was learning more about GPG and keys and stuff, I did end up fiddling around with my key after I'd submitted it. In particular, I was using KGPG and found that it was easy to add a photo ID to my key, which I thought was obviously a good thing to do. I thought I did that, and this has a certain relevance to what happened later on in the story. So close to the time where the event was to take place, the participants were contacted, and we were asked to do various things. First of all, there was a list of all the participants available on the FOSDEM website. There were 280 keys in this in total. That was a larger number than the number of people, because some people submitted multiple keys. We had to check that our entry in this list, the key fingerprint that was presented there was correct, and we also had to download and print this list so that we could bring it along with us to the event. We had to do this in a particular way, which I must admit was a bit new to me, using a tool called PAPS, perhaps I assume it is, because it contains UTF8 data. Very little else will do this, apparently. It was possible to go via latech and print out any photo IDs, but I didn't do this because I wasn't clear that it would actually work for me. I've not managed to get it to work since actually. We were asked also to generate check sums for the participant file and write these down on the front of the sheet, and this was so we could check that there'd been no tampering with the file between us picking your dashboard, being sent from the site or whatever, and getting to the event, and obviously we had to bring an ID with us and a pen. I decided to bring my passport with me as my ID. So the key signing event took place on Sunday, the 2nd of February, 2 in the afternoon, and it was a large number of people gathered there, but it transpired later on that there were a fair number of no-shows, a number of people who submitted but never arrived. It started by the organizer calling out the check sums for the list file, the participant list, which we then needed to check. Then we were asked to order ourselves by submission number. There was a number against our entry in the participant list. We were asked to arrange ourselves in order of that number, and then the line wrapped around such that number one, face number 140, and so on, down the line. Then we began the process of checking our opposite numbers, documents, and filling in the sheet. So in order to carry out a check, we first of all had to find out what the number of person we were talking to, so we looked them up on the sheet. We had to ask them to confirm that they were happy that the document check sum matched with what the organizer had read out. We had to check that they were happy with the key fingerprint in the document, and then we had to look at their passport or driving license to check against the details on the paper, the name, and so forth, check that the pictures match, check that they were valid documents as well, I guess. If everything checked out okay, we ticked the two boxes on the form against that person. In fact, some cases there were multiple entries, which we also had to check. Then we moved one step to the right and carried on. So this line was wrapping around at the far end as well. What we were actually doing here then was collecting details of our verifications so that we could do the real key signing when we got home, put a couple of pictures of my friend took at the event so you can get some idea of what it looked like. So it took in the region by coincidence, it took me two hours to check 100 keys, and everybody else, I guess, the same sort of rate. This didn't fit in with what was estimated to start with. It should have been one hour per 100 checks, but the actual process of checking seemed to be a lot slower than perhaps it should have been. Different people seem to be much quicker or much slower than others. They tended to be big gaps between participants, so we'd be standing there waiting for somebody to make the way down the line. In some cases people tried to skip past the slow people who were making these gaps, but then that got really chaotic because all of a sudden from thinking that you could work your way through the list sequentially, suddenly had to fumble about and find number 200 and something after you'd just been dealing with number 50 something, and that got really chaotic. So I think that was one of the, there was some of the reasons why things went slowly. Some people were very meticulous about doing the checks one guy, brought a UV torch and spent some time looking through my passport, and I was surprised the number of people who pointed out that my passport would need renewal in a few months, so they were obviously reading everything on it. Now I wasn't able to stay to the end of this because I had a plane to catch, so after two hours I had to leave. I suspect that there were a lot of other people leaving earlier than was ideal. I don't think everybody signed everybody's key. So the next thing to do was to do the key signing homework as they called it. I found that I started receiving emails from people before the conference had even ended on at 6 p.m. on the Sunday, so at the time I got home the next day I started processing these and getting ready to do this homework. Again, I don't know why in particular I chose this point to do it, but I thought having seen how other people had organized their GPG keys that I should reorganize mine a bit, I'd actually created two keys. There was one I was using for email and another one that was anticipating another email address I was setting up for myself. I noticed that a lot of people had just the one key with multiple UIDs and emails on them and I thought well the best thing to do would be to merge the two together. So I revoked my alternate key and added the email addresses as a secondary UID to the main key. I won't go into detail about how I did this, though I can't do if anybody's interested. This was maybe a bad decision at this particular point, there you go. So the first thing I did was to import the signatures that I started to receive through the means of email. The messages I got were encrypted messages with a message body describing that this was a key signing message with some instructions in it and one or more attachments on email. I used Thunderbird with an e-mail to do my GPG stuff and I found that once I'd opened the email with my past phrase I could right click an attachment and import the signed key into my key ring and this went pretty well. There's a picture of what the email looks like, suitably anonymized. Not sure quite why it needs to be anonymized but I thought it might be more polite to do that. I found that when there was a single attachment this was a signature against my main email address, not too surprisingly. Sometimes I received two attachments and the other one was a signature against my photo ID. So people had actually gone to the trouble of checking that the photo in my key actually matched me and was signing it. In some cases I received two email messages and this was because the second signature, the second email address I'd added to the key was also getting a signature which strictly they shouldn't have done I guess but I think the tool they were using offers you the choice whether to do it or not and people have maybe thought oh well why not and they haven't checked against the list to see that that key hadn't that email address that your ID hadn't been presented at the time. So once I got my head round importing the keys the signatures that I would that have been the signed keys what I'm trying to say. Then next thing to do was to try and do my signing for the people I'd checked. So looking at the various information that the FOSDAM website offered I reckoned that the tool called CAF, C-A-F-F was probably the way to go. This is part of the signing party package which is available on Ubuntu and other APT based systems. So I installed this on my Ubuntu system. CAF is a script that can sign a bunch of keys at a time. It has a configuration file and requires access to your GPG configuration. It also sends out emails directly through a local MTA so you need to be running your own mail server. I was but I hadn't configured it to do anything very much so I had to spend some time configuring post-fix to relay through Gmail. In the show notes I've shown details of how you set up the .caf, C file which is a necessary prerequisite. I won't explain that in too much detail now. There's loads of information on the man page and the links that I've pointed to in the notes. The script also needs a directory to store the keys that it's working on. You can also, and it's recommended that you do this, set up a copy of the gpg.conf file and use that as part of the process. One suggestion was that you link it to the actual gpg.conf which is what I did. It's in the show notes how I did this. There are a bunch of additions that should be made to the config file to streamline this whole process. There I was with a hundred keys to sign. I didn't want to be typing these in one at a time so I wanted to automate this process as much as I could. I created a file with the numbers of the participants whose keys I checked, whose details I checked, IDs and so on, into this file, one number per line. I then wrote a little script which, called collect keys, which would look up participant numbers in the list and return their keys. There's a copy of it in the notes. It's quite trivial. So I was then able to run this script with the numbers file and generate a list of keys. Then I ran these keys in batches through the CAF program. Now the reason I did it in batches was because I wanted to check each key against the list. The easiest thing to do is to take a page's worth however many there were on a page and simply push this through CAF. So there's some details in the notes about how I did this. When I'd processed a batch of keys, the example shows seven being processed. Then I had another little pipeline which added a hash to the front of each key so that I wouldn't process them again. Remember I'm going to detail them so you'll be able to work out what I was doing there. It's no, not really a big deal. So the only slight disadvantage to doing them in batches was that each batch needed me to enter my passphrase unless I was doing them rapidly one after the other and I didn't do that. It took me two or three days to get through them all. So as a follow-up, I, first of all, followed the recommendation which was to ensure that my now modified key from the signatures that have been coming in was going up to a public key server so that people could check against it and see their signatures on it. I think also the frauds and people want to do statistics on the uptake of these signatures. I did that and it shows how to do it in my show notes. So it was, I also found it interesting to monitor the keys that I was signing after a day or two. There's an example of a command which will refresh these keys make sure there are copies in my, they're already work copies in my queuing. So it's just refreshing them and that let me see when the people who received the emails had applied them. I would start it doing that because I wanted to be 100% certain. What I was doing was actually working and as soon as I saw somebody was, the first person was actually attaching the signatures then and knew that at least I'd got something that was working. Occasionally I refreshed my own key by pulling a copy down off the server and that was because some people were not using care for an equivalent tool to do it. They were just signing it directly. They'd taken a copy of it, they'd signed it locally, they'd uploaded it and so if I hadn't done that I would have not noticed the changes being made. So as of the time I'm recording this, which is now two weeks after the signing event, 43 of the people, of the 100 people whose keys I signed have signed my key and so it's pretty good. We've got until I think sometime in June to do them all. So things are going quite well I think. I'll finish off by just giving a few thoughts and impressions about what happened. I certainly found this to be a fascinating process. It gave me a much closer understanding of what was going on here, though I'd certainly go a long way to go to fully understand this. My key is a high level of trust associated with it and it's also part of the way of trust as I mentioned before. I thought the logistics of the whole process were generally quite well handled but with a large number of participants, 200 plus, it's not surprising that things got a little bit confusing. I wrote to the organiser with a few comments and I'd heard other people making similar comments and he's obviously taking these on board because he's updated the website with many of the suggestions he's had in. So a few of the things that were commented about were if you got everybody to wear a badge of some sort with their number on it, it would save some time. You could look them up much more rapidly without having to ask them for their number and also if they put on their responses to the questions about the checks on the document and whether they check their fingerprint that would speed things up. It would be good if we were told about how the process would actually happen, how the key signing party would take place as we were completely ignorant of the process before it started. So that's already happened. He's put more details of that up on the site and for my own point of view I'd quite have appreciated if we'd been somewhere where there was some better lighting. It was fairly gloomy in that corridor that we were in and I certainly found it quite hard to read my printout and some people's ideas various times. Be tempted to take your head to watch something next time if that doesn't happen. So just one other thought is that a lot of comments about GPG and similar things recommend that you don't use the shortened version of the key but the full version is preferable because there could be collisions with the short form. You could type in a short form key and hit because it's just the last half of the full thing. You could have a collision with the wrong key. I certainly tried to use the full key whenever I could but the list that we were given had the short form so it might be a good idea if the list next year has the long form. So that's it. Thanks. Bye. You have been listening to Hacker Public Radio at Hacker Public Radio. We are a community podcast network that releases shows every weekday on day through Friday. Today's show, like all our shows, was contributed by an HPR listener like yourself. If you ever consider recording a podcast then visit our website to find out how easy it really is. Hacker Public Radio was founded by the Digital Dark Pound and the International Computer Club. HPR is funded by the Binary Revolution at binref.com. All binref projects are crowd-sponsored by linear pages. From shared hosting to custom private clouds, go to lunarpages.com for all your hosting needs. Unless otherwise stasis, today's show is released under a creative comments, attribution, share a life, and it does our license.