{"id":651,"date":"2017-02-10T15:35:29","date_gmt":"2017-02-10T14:35:29","guid":{"rendered":"https:\/\/www.dereckson.be\/blog\/?p=651"},"modified":"2017-02-10T17:10:50","modified_gmt":"2017-02-10T16:10:50","slug":"fosdem-pgp-key-signing-party-faq","status":"publish","type":"post","link":"https:\/\/www.dereckson.be\/blog\/2017\/02\/10\/fosdem-pgp-key-signing-party-faq\/","title":{"rendered":"FOSDEM PGP Key signing party FAQ"},"content":{"rendered":"<p>FOSDEM organizes each year one of the largest \u00a0keysigning event for PGP keys. When we come back from a key signing party, what to do?<\/p>\n<p>Here a FAQ with some useful notes about how I sign the keys.<\/p>\n<h2>Sign other keys<\/h2>\n<h3>Bad practice: don&#8217;t upload keys you&#8217;ve just signed to the PGP server<\/h3>\n<p>At the event, you checked the key fingerprints and you checked an ID document. But you also want to verify the email\u00a0address to be sure the mail belongs to the user and not to a namesake.<\/p>\n<p>So don&#8217;t upload keys to a PGP server, send the signature for ONE mail to THAT mail\u00a0address. Luckily, some softwares automate the process and does that.<\/p>\n<h3>Caff<\/h3>\n<p>Caff will automate signing and sending process.<\/p>\n<p>You can follow <a href=\"https:\/\/wiki.debian.org\/caff\">instructions published on the Debian wiki<\/a>.<\/p>\n<p>Basically,\u00a0it works in three steps:<\/p>\n<ol>\n<li>create a ~\/.caffrc file with at least &lt;code&gt;$CONFIG{&#8216;owner&#8217;}&lt;\/code&gt; and &lt;code&gt;$CONFIG{&#8217;email&#8217;}&lt;\/code&gt;<\/li>\n<li>caff &lt;fingerprints of each keys you verified&gt;<\/li>\n<li>check your mail for issues like rejected as spam, not existing mailbox, etc.<\/li>\n<li>take a highlighter and let a mark when a key has been sent<\/li>\n<\/ol>\n<h3>What if some keys aren&#8217;t fetchable on\u00a0the public servers?<\/h3>\n<p>You can ask caff to fetch the keys from the local GnuPG keyring. For that, download the FOSDEM event keyring, then import the keys you want:<\/p>\n<pre class=\"\">wget https:\/\/ksp.fosdem.org\/files\/non-authoritative\/keyring.gpg\r\ngpg --import keyring.gpg 6CA63522\r\n<\/pre>\n<p>You can then ask <code>caff<\/code> to fetch them locally. For me, it was the following keys:<\/p>\n<pre>\r\ncaff --keys-from-gnupg 6CA63522 202CE599 5BCF7D95 A85DB372 E1F3FC1C\r\n<\/pre>\n<h3>Other software<\/h3>\n<p>Some key signing participants use another piece of software: <a href=\"https:\/\/www.phildev.net\/pius\/\">PIUS<\/a>.<\/p>\n<p>The software claims to be able to detect signed keys in a mailbox, useful for the next step.<\/p>\n<h3>Don&#8217;t expect your nice message will be read<\/h3>\n<p>As you encrypt the message with the recipient PGP key, it will have to make an effort to decrypt it. \u00a0Contributors using PGP to sign releases or VCS\u00a0tags or commits don&#8217;t use always PGP to read and write mail. So, guess what they\u00a0could with your message if their mail client doesn&#8217;t have access to the key? <code>gpg -d | gpg --import<\/code>. Your message will so never be read in clear text.<\/p>\n<h2>Publish your signed keys<\/h2>\n<p>Now you&#8217;ve signed the keys from other participants, you want to publish the signed keys you&#8217;ve received.<\/p>\n<h3>When your client mail supports\u00a0GPG<\/h3>\n<p>If your mail client handles this, or if you use PIUS, they will allow you to import in GPG the keys.<\/p>\n<pre class=\"lang:default decode:true\">gpg --keyserver pgp.mit.edu --send-key\u00a0&lt;your key fingerprint&gt;\r\n<\/pre>\n<h3>Manually import the signed keys<\/h3>\n<pre class=\"toolbar:1 lang:sh decode:true\" title=\"publish-signed-keys\">#!\/bin\/sh\r\n\r\nwhile true; do\r\n        echo \"Next key?\"\r\n        cat &gt; \/tmp\/key-to-import\r\n        gpg -d \/tmp\/key-to-import | gpg --import\r\n        gpg --keyserver keyserver.siccegge.de --send-key &lt;your key fingerprint&gt;\r\ndone\r\n<\/pre>\n<p>This script will ask you Next key?<\/p>\n<p>You copy\/paste the PGP block (between <code>-----BEGIN PGP MESSAGE-----<\/code>\u00a0and <code>-----END PGP MESSAGE-----)<\/code>. Then you save with CTRL + D.<\/p>\n<p>It doesn&#8217;t matter if you&#8217;ve added a line after the END line, gpg stops to parse there.<\/p>\n<p>GPG will import the key and publish it. Publish on a responsive server, not pgp.mit.edu, that will ease checks.<\/p>\n<p>You have two ways to know each signature have been successfully sent.<\/p>\n<p>First, check the output of <code>gpg --import<\/code> :<\/p>\n<pre class=\"\">gpg: Total number processed: 1\r\ngpg: new signatures: 1\r\ngpg: marginals needed: 3 completes needed: 1 trust model: pgp\r\n<\/pre>\n<p>If instead you read this, you&#8217;ve already published this key:<\/p>\n<pre class=\"\">gpg: Total number processed: 1\r\ngpg:              unchanged: 1\r\n<\/pre>\n<p>The second way to check is on the web view of the server.<\/p>\n<p>For example if you use the server noted above, search <a href=\"http:\/\/keyserver.siccegge.de\/\">your fingerprint here<\/a>.<\/p>\n<p>Stay on the page with your signatures,\u00a0and when you&#8217;ve a doubt, you can refresh.<\/p>\n<h3>Tag the mails as done<\/h3>\n<p>There are a lot of mails as there are a lot of participants. So, to\u00a0tag mails as processed\u00a0is useful to know what is processed and what&#8217;s not.<\/p>\n<p>An IMAP dedicated folder is nice, or any label\/color your client allows.<\/p>\n<p>Alternatively, take an highlighter, your paper list and annotate.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>FOSDEM organizes each year one of the largest \u00a0keysigning event for PGP keys. When we come back from a key signing party, what to do? Here a FAQ with some useful notes about how I sign the keys. Sign other keys Bad practice: don&#8217;t upload keys you&#8217;ve just signed to the PGP server At the [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[49,50],"tags":[316,314,318,312],"class_list":["post-651","post","type-post","status-publish","format-standard","hentry","category-dev","category-sysadmin","tag-caff","tag-fosdem","tag-key-signing","tag-pgp"],"_links":{"self":[{"href":"https:\/\/www.dereckson.be\/blog\/wp-json\/wp\/v2\/posts\/651","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dereckson.be\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dereckson.be\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dereckson.be\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dereckson.be\/blog\/wp-json\/wp\/v2\/comments?post=651"}],"version-history":[{"count":5,"href":"https:\/\/www.dereckson.be\/blog\/wp-json\/wp\/v2\/posts\/651\/revisions"}],"predecessor-version":[{"id":656,"href":"https:\/\/www.dereckson.be\/blog\/wp-json\/wp\/v2\/posts\/651\/revisions\/656"}],"wp:attachment":[{"href":"https:\/\/www.dereckson.be\/blog\/wp-json\/wp\/v2\/media?parent=651"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dereckson.be\/blog\/wp-json\/wp\/v2\/categories?post=651"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dereckson.be\/blog\/wp-json\/wp\/v2\/tags?post=651"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}