Difference between revisions of "Keysigning party"

From Wiki | LUG@UCLA
Jump to: navigation, search
(Updated event rules to close registration 1 hour before event (instead of 24h))
 
(17 intermediate revisions by 8 users not shown)
Line 1: Line 1:
 
__NOTOC__
 
__NOTOC__
 
[[File:Gnupg_logo.svg|thumb]]
 
[[File:Gnupg_logo.svg|thumb]]
'''Next keysigning party:''' 2014-02-08, 12:00-16:00, Boelter Hall 4760
+
{| class="wikitable"
 +
! Date
 +
| [[Date::2015-05-16]]
 +
|-
 +
! Time
 +
| [[Time::12:00-14:00]]
 +
|-
 +
! Location
 +
| [[Location::BH 4760]]
 +
|}
  
A '''keysigning party''' is an event for helping people verify each others' PGP keys and strengthening the ''web of trust''.
+
A '''keysigning party''' is an event designed to help people verify each others' PGP keys, and strengthen the ''web of trust''.
  
* take control of your privacy
+
* take control of your personal information
 
* meet other interesting members of the privacy-aware community
 
* meet other interesting members of the privacy-aware community
 
* learn about cryptography technologies widely used in industry
 
* learn about cryptography technologies widely used in industry
* eat pizza
 
  
LUG@UCLA's keysigning party uses a slightly modified version of the [http://www.keysigning.org/methods/sassaman-efficient Sassaman-Efficient] method.
+
LUG@UCLA's keysigning party uses a relaxed version of the [http://www.cryptnet.net/mirrors/docs/zimmermann-sassaman.txt Sassaman-Efficient] method.
  
 
== Instructions ==
 
== Instructions ==
  
=== I. RSVP ===
+
=== I. [https://linux.ucla.edu/keysigning/ RSVP] ===
 
<ol>
 
<ol>
 
<li> If you haven't already, generate your PGP keypair: <code>$ gpg --gen-key</code><br><span style="color:red">'''WARNING:'''</span> make sure you understand the implications of holding a private key:
 
<li> If you haven't already, generate your PGP keypair: <code>$ gpg --gen-key</code><br><span style="color:red">'''WARNING:'''</span> make sure you understand the implications of holding a private key:
* DO NOT generate it on a computer you don't own and have ''full control'' over.
+
* DO NOT generate it on a computer you don't own and have ''full control'' over. See FAQ below for sterner warnings.
 
* DO NOT store your private key on Dropbox, Sky Drive, or any other cloud storage service.
 
* DO NOT store your private key on Dropbox, Sky Drive, or any other cloud storage service.
 
* DO use a very strong passphrase (multiple words, aka "phrase")
 
* DO use a very strong passphrase (multiple words, aka "phrase")
 
<li> If you haven't already, sync your ''public'' key with the pgp keyservers: <code>$ gpg --send-keys '''<your key ID>'''</code><br><span style="color:red">'''WARNING:'''</span> this is irreversible. Make sure you are prepared to protect your private key and you are using a very strong passphrase.
 
<li> If you haven't already, sync your ''public'' key with the pgp keyservers: <code>$ gpg --send-keys '''<your key ID>'''</code><br><span style="color:red">'''WARNING:'''</span> this is irreversible. Make sure you are prepared to protect your private key and you are using a very strong passphrase.
 
<li> Go to RSVP page: https://linux.ucla.edu/keysigning/
 
<li> Go to RSVP page: https://linux.ucla.edu/keysigning/
* If you don't remember your fingerprint, use this command: <code>$ gpg --fingerprint '''<your name or key ID>'''</code>
+
* To check your fingerprint, use this command: <code>$ gpg --fingerprint '''<your name>'''</code>
 
</ol>
 
</ol>
  
 
=== II. Preparation ===
 
=== II. Preparation ===
 
<ol>
 
<ol>
<li> 24 hours before the party, we will make available the final keylist and keylist checksum which you should download:
+
<li> As a relaxation to the Sassaman-Efficient method, we won't require you to print the keylist yourself (we will provide it during the party). Regardless, 1 hour before the event we will close registration and finalize the keylist and checksum. If you want to verify and print your own copy, follow these steps:
 
<pre>$ wget https://linux.ucla.edu/keysigning/lists/keylist.txt
 
<pre>$ wget https://linux.ucla.edu/keysigning/lists/keylist.txt
 
$ wget https://linux.ucla.edu/keysigning/lists/keylist.txt.sha1</pre>
 
$ wget https://linux.ucla.edu/keysigning/lists/keylist.txt.sha1</pre>
Line 34: Line 42:
 
<li> Append the checksum to the bottom of keylist.txt: <code>$ cat keylist.txt.sha1 >>keylist.txt</code>
 
<li> Append the checksum to the bottom of keylist.txt: <code>$ cat keylist.txt.sha1 >>keylist.txt</code>
 
<li> Print keylist.txt and keep safe.
 
<li> Print keylist.txt and keep safe.
* For your convenience, here is a [https://linux.ucla.edu/keysigning/lists/keylist.pdf printable version]. ''Be sure to verify the contents before printing''.
 
 
</ol>
 
</ol>
  
 
=== III. The Party ===
 
=== III. The Party ===
 
# Bring the following:
 
# Bring the following:
#* printed copy of keylist.txt
+
#* Some way of recalling your key fingerprint (e.g. on a piece of paper)
#* One or more forms of ID (e.g. drivers license + Bruin card)
+
#* One or more forms of ID (e.g. drivers license, Bruin card)
# make sure the keylist.txt checksum at the bottom of your printout matches the checksum projected onto the wall.
+
# Receive the keylist from the host (or take out your own)
 
# Together, we will iterate over the keylist and each participant will make a statement that their fingerprint is correct. Put a check mark next to each person that has stated that their fingerprint is correct.
 
# Together, we will iterate over the keylist and each participant will make a statement that their fingerprint is correct. Put a check mark next to each person that has stated that their fingerprint is correct.
# When we finish going through the list, break formation and individually go to each person on your keylist to verify their identity. Add a '''second''' check mark next to each person that you verify. This indicates that you really believe they own that key.
+
# When we have finished going through the list, break formation and individually go to each person on your keylist to verify their identity.
 +
#* Typically, simply doing an ID check and comparing the names is sufficient, but how you want to verify identity is up to you.
 +
#* Add a '''second''' check mark next to each person that you verify. This indicates that you really believe they own that key.
 
# Keep your keylist printout safe.
 
# Keep your keylist printout safe.
 
# Don't forget to eat pizza!
 
# Don't forget to eat pizza!
Line 50: Line 59:
  
 
<ol>
 
<ol>
 +
<li> You're almost at home stretch, but don't forget the most important part!
 
<li> Retrieve your annotated keylist printout.</li>
 
<li> Retrieve your annotated keylist printout.</li>
 
<li> Import the key of every person on the list with two check marks: <code>$ gpg --recv-keys '''<key ID 1>''' '''<key ID 2>''' ... '''<key ID N>'''</code>
 
<li> Import the key of every person on the list with two check marks: <code>$ gpg --recv-keys '''<key ID 1>''' '''<key ID 2>''' ... '''<key ID N>'''</code>
<li> For every key with two check marks, indicate your level of trust and sign the key:
+
<li> For every key with two check marks, sign the key: <code>$ gpg --sign-key '''<their key ID>'''</code>
<pre<noinclude></noinclude>>
+
$ gpg --edit-key '''<their key ID>'''
+
gpg> trust
+
[...]
+
1 = Don't know
+
2 = I do NOT trust
+
3 = I trust marginally
+
4 = I trust fully
+
 
+
Your decision? 3
+
gpg> sign
+
</pre>
+
 
<li> Send all your new key signatures to the keyservers: <code>$ gpg --send-keys '''<key ID 1>''' '''<key ID 2>''' ... '''<key ID N>'''</code><br>
 
<li> Send all your new key signatures to the keyservers: <code>$ gpg --send-keys '''<key ID 1>''' '''<key ID 2>''' ... '''<key ID N>'''</code><br>
 
This strengthens the ''web of trust''!
 
This strengthens the ''web of trust''!
Line 73: Line 71:
  
 
<span style="color:red">'''Q:'''</span> How do I install GnuPG (gpg)?<br>
 
<span style="color:red">'''Q:'''</span> How do I install GnuPG (gpg)?<br>
<span style="color:green">'''A:'''</span> Most open source operating systems will include GnuPG by default. If GnuPG is not installed, and isn't provided by your operating system vendor, you should seriously consider switching to a better operating system. Come to LUG during [[Tutoring]] hours or attend our next [[Installfest]] and we will help you install GNU/Linux on your computer.
+
<span style="color:green">'''A:'''</span> Most open source operating systems will include GnuPG by default. If GnuPG is not installed, and isn't provided by your operating system vendor, you should seriously consider switching to a better operating system ;). Come to the LUG [[Lounge]] or attend our next [[Installfest]] and we will help you install GNU/Linux on your computer.
  
 
<span style="color:red">'''Q:'''</span> Can't I just generate my PGP keypair on SEASNet lnxsrv?<br>
 
<span style="color:red">'''Q:'''</span> Can't I just generate my PGP keypair on SEASNet lnxsrv?<br>
<span style="color:green">'''A:'''</span> NO! You must protect your private key. Generate it on your personal computer running an open source operating system. Virtual machines don't count.
+
<span style="color:green">'''A:'''</span> NO! You must protect your private key. Generate it on your personal computer, ideally running a free operating system such as Debian GNU/Linux. You may use a virtual machine, but be ''very'' sure that your host OS hasn't been breached.
  
 
== Resources ==
 
== Resources ==
  
 +
* http://www.cryptnet.net/mirrors/docs/zimmermann-sassaman.txt
 
* http://www.keysigning.org/methods/sassaman-efficient
 
* http://www.keysigning.org/methods/sassaman-efficient
 
* https://en.wikipedia.org/wiki/Zimmermann%E2%80%93Sassaman_key-signing_protocol
 
* https://en.wikipedia.org/wiki/Zimmermann%E2%80%93Sassaman_key-signing_protocol
 
* http://cryptnet.net/fdp/crypto/keysigning_party/en/keysigning_party.html
 
* http://cryptnet.net/fdp/crypto/keysigning_party/en/keysigning_party.html
 
* http://www.gnupg.org/gph/en/manual.html
 
* http://www.gnupg.org/gph/en/manual.html
 +
* http://pgp-tools.alioth.debian.org/
  
== Planning ==
+
[[Category:Events]]
 
+
* write a simple RSVP web application (in progress: https://linux.ucla.edu/git/?p=keysigning-party.git)
+

Latest revision as of 11:49, 15 May 2015

Gnupg logo.svg
Date 2015-05-16
Time 12:00-14:00
Location BH 4760

A keysigning party is an event designed to help people verify each others' PGP keys, and strengthen the web of trust.

  • take control of your personal information
  • meet other interesting members of the privacy-aware community
  • learn about cryptography technologies widely used in industry

LUG@UCLA's keysigning party uses a relaxed version of the Sassaman-Efficient method.

Instructions[edit]

I. RSVP[edit]

  1. If you haven't already, generate your PGP keypair: $ gpg --gen-key
    WARNING: make sure you understand the implications of holding a private key:
    • DO NOT generate it on a computer you don't own and have full control over. See FAQ below for sterner warnings.
    • DO NOT store your private key on Dropbox, Sky Drive, or any other cloud storage service.
    • DO use a very strong passphrase (multiple words, aka "phrase")
  2. If you haven't already, sync your public key with the pgp keyservers: $ gpg --send-keys <your key ID>
    WARNING: this is irreversible. Make sure you are prepared to protect your private key and you are using a very strong passphrase.
  3. Go to RSVP page: https://linux.ucla.edu/keysigning/
    • To check your fingerprint, use this command: $ gpg --fingerprint <your name>

II. Preparation[edit]

  1. As a relaxation to the Sassaman-Efficient method, we won't require you to print the keylist yourself (we will provide it during the party). Regardless, 1 hour before the event we will close registration and finalize the keylist and checksum. If you want to verify and print your own copy, follow these steps:
    $ wget https://linux.ucla.edu/keysigning/lists/keylist.txt
    $ wget https://linux.ucla.edu/keysigning/lists/keylist.txt.sha1
  2. Make sure your key fingerprint is on the list next to your name.
  3. Locally verify the checksum: $ sha1sum --check keylist.txt.sha1
  4. Append the checksum to the bottom of keylist.txt: $ cat keylist.txt.sha1 >>keylist.txt
  5. Print keylist.txt and keep safe.

III. The Party[edit]

  1. Bring the following:
    • Some way of recalling your key fingerprint (e.g. on a piece of paper)
    • One or more forms of ID (e.g. drivers license, Bruin card)
  2. Receive the keylist from the host (or take out your own)
  3. Together, we will iterate over the keylist and each participant will make a statement that their fingerprint is correct. Put a check mark next to each person that has stated that their fingerprint is correct.
  4. When we have finished going through the list, break formation and individually go to each person on your keylist to verify their identity.
    • Typically, simply doing an ID check and comparing the names is sufficient, but how you want to verify identity is up to you.
    • Add a second check mark next to each person that you verify. This indicates that you really believe they own that key.
  5. Keep your keylist printout safe.
  6. Don't forget to eat pizza!

IV. After the Party[edit]

  1. You're almost at home stretch, but don't forget the most important part!
  2. Retrieve your annotated keylist printout.
  3. Import the key of every person on the list with two check marks: $ gpg --recv-keys <key ID 1> <key ID 2> ... <key ID N>
  4. For every key with two check marks, sign the key: $ gpg --sign-key <their key ID>
  5. Send all your new key signatures to the keyservers: $ gpg --send-keys <key ID 1> <key ID 2> ... <key ID N>
    This strengthens the web of trust!

Q/A[edit]

Q: How do I install GnuPG (gpg)?
A: Most open source operating systems will include GnuPG by default. If GnuPG is not installed, and isn't provided by your operating system vendor, you should seriously consider switching to a better operating system ;). Come to the LUG Lounge or attend our next Installfest and we will help you install GNU/Linux on your computer.

Q: Can't I just generate my PGP keypair on SEASNet lnxsrv?
A: NO! You must protect your private key. Generate it on your personal computer, ideally running a free operating system such as Debian GNU/Linux. You may use a virtual machine, but be very sure that your host OS hasn't been breached.

Resources[edit]