# $Id: gpg-policy.wml 3111 2006-05-05 21:18:09Z swright $
#use wml::tmpl::SVWpage select="security_sigpolicy" mydate="$Date: 2006-05-05 16:18:09 -0500 (Fri, 05 May 2006) $"
#use wml::tmpl::SVWurl
<page_title name="OpenPGP Signing Policy of Stewart V. Wright">

<define-tag fortytwo>http://fortytwo.ch/legal/gpg</define-tag>

<p>My OpenPGP Signing Policy consists of the following sections.</p>

<ul>
  <li><a
  href="security/gpg-policy.html#PreliminaryInformation">Preliminary
  Information</a> - When this policy became valid, for which keys it
  applies, and revision information.</li>
  <li><a href="security/gpg-policy.html#KeySigning">OpenPGP Key
  Signing Policy</a> - What it means if you find a key signed by me,
  or what it would involve for you to get me to sign your key.</li>
  <li><a
  href="security/gpg-policy.html#EmailFileSigning">Email / File
  Signing Policy</a> - What a digital signature in an email, or for a
  file means.</li>
  <li><a
  href="security/gpg-policy.html#AdditionalReferences">Additional
  References</a></li> 
</ul>

<p>The <a href="security/gpg-policy.wml">source of this web page</a>
has been signed with my <a
href="security/gpg-key.html#0x682B44D6">Master Signing Key</a>.  You
can verify the authenticity of what you are reading by saving <a
href="security/gpg-policy.wml">the source</a> and the <a
href="security/gpg-policy.wml.sig">signature</a>, and executing the
command <tt>gpg&nbsp;--verify&nbsp;gpg-policy.wml.sig</tt>.  A more
detailed explanation of signed web pages is <a
href="security/index.html#SignedHTML">available</a>.</p>

<p>Mirrors of this page are available at</p>
<ul>
  <li><mirrors style="full" link_text="</li><li>"
       url="security/gpg-policy.html"></li> 
</ul>


<linkgroup name="Preliminary Information" tag="PreliminaryInformation">

<p>This policy is valid from 27 April 2004 for signatures made by the
 following OpenPGP keys:</p>

<div align="center">
  <table class="OpenPGP">
    <tr>
      <th class="OpenPGP">Key ID</th>
      <th class="OpenPGP">Creation Date</th>
      <th colspan="2" class="OpenPGP">Fingerprint</th>
    </tr>

    <tr>
      <td>0x682B44D6</td>
      <td align="center">2003-05-12</td>
      <td colspan="2">DA74 F7E1 C70A EA73 3634  2D67 29F2 2EB4 682B 44D6</td>
    </tr>

    <tr><td>&nbsp;</td></tr>

    <tr>
      <td>0xB3334559</td>
      <td align="center">2003-05-14</td>
      <td colspan="2">B55F EB8E 4F8C E98E 6467  EBFB B180 6E74 B333 4559</td>
    </tr>

    <tr><td></td></tr>

    <tr>
      <td>0xA11D9315</td>
      <td align="center">2003-05-14</td>
      <td>&nbsp;&nbsp;&nbsp;&nbsp;Encryption Subkey</td>
      <td>[expires: 2005-05-13]</td>
    </tr>

    <tr><td></td></tr>

    <tr>
      <td>0x246383E6</td>
      <td align="center">2003-05-14</td>
      <td>&nbsp;&nbsp;&nbsp;&nbsp;Signature Subkey (Webpages)</td>
      <td>[expires: 2005-05-13]</td>
    </tr>

    <tr><td></td></tr>

    <tr>
      <td>0x35DB7472</td>
      <td align="center">2003-05-14</td>
      <td>&nbsp;&nbsp;&nbsp;&nbsp;Signature Subkey (Email)</td>
      <td>[expires: 2005-05-13]</td>
    </tr>

  </table>
</div>

<p>It may be replaced at any time with a new version. If a new version
incorporates changes that might affect the strength or perceived
strength of the resulting signature, the old version will be linked
from the new one.</p>

<p>Should you have any concern as to the integrity of my public keys,
please send a message, including any indications you
might have to &lt;<a
href="mailto:<myemail>"><myemail></a>&gt;, and
<b>ALL</b> the addresses listed in my public keys shown above.</p>

<define-tag CURRENT><b><sc>*Current Version*</sc></b></define-tag>

<p>This is version 1.2:</p>
<ul>
 <li><a name="v1.2"></a>v1.2 - 17 May 2005 <CURRENT>
     <br />- Minor typographical corrections.
     <br />- Changes in <a href="security/gpg-policy.html#KeySigningAct">The act of
       signing</a> : Added the additional option of having a signed
       key encrypted and mailed to the key owner.
     <br />- <a
     href="security/gpg-policy-v1.2-v1.1-diff.html">Differences</a>
     from v1.1.</li>
 <li><a name="v1.1"></a>v1.1 - 27 Apr 2004
     <br />As I didn't sign any keys with the previous policy I am not
     providing a link to it.</li>
 <li><a name="v1.0.1"></a>v1.0.1 - minor changes not affecting the
     policy.</li>
</ul>

</linkgroup>


<linkgroup name="OpenPGP Key Signing Policy" tag="KeySigning">

<h4>Content</h4>

<ol>
  <li><a
  href="security/gpg-policy.html#KeySigningPrereq">Prerequisites for
  signing</a></li>
  <li><a href="security/gpg-policy.html#KeySigningClass">Signature
  Classes</a></li>
  <li><a href="security/gpg-policy.html#KeySigningAct">The act of
  signing</a></li>
</ol>

<h4><a name="KeySigningPrereq">Prerequisites for signing</a></h4>

<p>The signee (i.e. the key holder who wishes to obtain a signature
from me, the signer) must make her OpenPGP public key available on a
publicly accessible keyserver, such as the <tt>.pgp.net</tt>
servers.</p>

<p>The signee must prove her identity to me by way of a passport,
national ID card or a driver's licence or a credit card. The token
must feature a photographic picture of the signee.</p>

<p>Exceptions will be made when the signee can come up with other
means of proof of identity. However at least one of the above tokens
will stay the minimum requirement.</p>

<p>The signee should have prepared a strip of paper with a printout of
the output</p>

<div align="center">
  <span class="shella"><tt>&nbsp;&nbsp;gpg&nbsp;--list-keys&nbsp;--with-fingerprint&nbsp;0xDEADBEEF&nbsp;&nbsp;</tt></span>
</div>

<p>(or an equivalent command if you're not using GnuPG), where
<tt>0xDEADBEEF</tt> is the key ID of the key that is to be signed.</p>

<p>A hand-written sheet featuring all user IDs the signee wants me to
sign and the fingerprint will be accepted, too.</p>

<p>The signee should be willing to cross-sign with me.</p>

<h4><a name="KeySigningClass">Signature Classes</a></h4>

<p>I will sign keys using one of the three signature classes:</p>

<dl>
  <dt>Signature Class I</dt>
   <dd>Used for sign-only keys where the below challenge/response
       dialogue was not possible or when signees do not wish to have
       their email addresses verified in this way. The latter should
       never happen, though.</dd>
  <dt>Signature Class II</dt>
   <dd>Used for all other signatures, where I don't have a strong
       personal relationship with the signee.</dd>
  <dt>Signature Class III</dt>
   <dd>Used for all other signatures, where I have a strong personal
       relationship with the signee.<br /><br />
       I define a <em>strong personal relationship</em> as knowing the
       signee outside a key signing situation.</dd> 
</dl>

<p>A signature of Classes II and III <em>always</em> means the email
addresses were verified to belong to the signee.</p>

<p>A signature of Class I <em>always</em> means the email addresses
were <em>not</em> verified to belong to the signee.</p>



<h4><a name="KeySigningAct">The act of signing</a></h4>

<p>The signee should sign above strip in my presence. For efficiency,
exceptions will be accepted on larger key signing parties.</p>

<p>After having received (or exchanged) the proof detailed in the
above, I will sign the sheet of paper myself to avoid fraud.</p>

<p>At home, I will prepare emails and send one to each of the mail
addresses featured in the user IDs that I was asked to sign.</p>

<p><b><u>Either</u></b></p>

<p>The emails will contain random strings and will be encrypted to the
public key whose fingerprint is printed on the paper.  In the event
that the signee requires a signature only key to be signed I will
require an encryption-enabled key that lists the same addresses as the
signature only key.  Failing that, the signature (if any) will only be
of Class I.  I will also require replies to be signed by the key to be
certified, even if the challenge was encrypted to a different key.</p>

<p>Upon reception of encrypted replies, I will check the returned
random string for equality with what I sent.</p>

<p>User IDs that pass the above test are signed. If one of the user
IDs fails the test, a warning is sent to the rest of the user ID
addresses and the procedure retried with a new challenge at most three
times until a successful response has been received or the procedure
has been canceled by the signee.</p>

<p>The signed keyblock is sent to a randomly chosen, signed, user ID
address and one or more keyservers.</p>

<p>When not cross-signing, the signed keyblock is uploaded immediately
to a randomly chosen set of keyservers.</p>

<p>The signee may hint on which keyservers to use.</p>

<p><b><u>Or</u></b></p>

<p>I will sign each User ID on the key separately and email the signed
key, encrypted to the email address associated with the User ID.  The
signee (who thus controls both the email address and private key)  is
then able to upload the signed key to a public keyserver of their
choice (or not).</p>

<p><b>NOTE:</b> The choice of signing method will be determined by the
signee.  An exceptions will be made for larger key signing parties
where the I will determine the optimal method.</p>

</linkgroup>


<linkgroup name="Email / File Signing Policy" tag="EmailFileSigning">

<h4>Email Signing</h4>

<p>As of 2003-05-15, I am trying to sign all outgoing email with my
OpenGPG subkey (<a
href="security/gpg-key.html#0xB3334559"><tt>0x35DB7472</tt></a>).
These signatures shall only mean that I am <em>most likely</em> the
author of the signed text unless otherwise stated, and nothing
more.</p>

<p>(You may retrieve my public key from
<url><basehref>security/gpg-key.html</url>)</p>

<p>There may be situations where I'm unable, or unwilling to
electronically sign an email.  Should there be any doubt about the
authenticity of an email, you should ask for a confirmation of the
content.  You may do this by sending an <b>encrypted</b> request for a
signed message, plus the message you are concerned about to &lt;<a
href="mailto:<myemail>"><myemail></a>&gt;, or any
combination of email addresses listed on my public keys listed at the
<a href="security/gpg-policy.html#PreliminaryInformation">top</a> of
this document.</p>


<h4>File Signing</h4>

<p>Files will be signed with my OpenGPG subkey (<a
href="security/gpg-key.html#0xB3334559"><tt>0x35DB7472</tt></a>), and
web pages (apart from this one) with my OpenPGP subkey (<a
href="security/gpg-key.html#0xB3334559"><tt>0x246383E6</tt></a>).  Any
concerns should be dealt with in a similar manner to the Email Signing
discussed above.</p>


<h4>Reality Check</h4>

<p>The subkeys on my key <tt>0xB3334559</tt> have expiry dates of
2005-05-13.  This is a result of employment reality and security
concerns.  These subkeys are used on a networked machine for
practicality purposes (the primary key is NOT), and my contract is
until October 2004.  Thus the chance that these keys may be
compromised is greater than <tt>0x682B44D6</tt> or the primary
<tt>0xB3334559</tt>.  Thus after a period for me to get settled in my
next position and generate additional subkeys, the current subkeys
will expire.</p>

<p>Unsigned messages are easily forged and that means you have next to
no guarantee that the message comes from me.  A signature on a file,
or an email, indicates a high probability that I did indeed sign the
file, however there is a small, but real, chance that my keys will be
compromised (real world signatures get forged every day).  Thus a
signature is not a guarantee, and is left to you to make your own
judgment as to the value you put on such a signature.</p> 

</linkgroup>


<linkgroup name="Additional References" tag="AdditionalReferences">

<p>Some references that came in useful (i.e. I swiped large amounts of
them!) when preparing this document are the following:</p>

<ul>
  <li>The <a
  href="http://www.mathematik.uni-bielefeld.de/~mmutz/sign-policy.html">OpenPGP
  Key Signing Policy</a> of Marc Mutz.</li>
  <li>Adrian von Bidder's <a
  href="<fortytwo>/email.20020822">email</a> and <a
  href="<fortytwo>/policy.20030129">OpenPGP key</a>
  signing policies.</li>
  <li>Matt Wronkiewicz <a
  href="http://www.foozone.org/crypto_policy.asc">Email and Key
  Signing Policy</a>.</li>
</ul>

<p>Information:</p>

<ul>
  <li>Signed web pages and their verification:
    <ul>
      <li><a href="security/index.html#SignedHTML">Local
          information.</a></li>
      <li><pgphtml>
          from SANFACE Software</li>
      <li>Edward Bell's <pgp-www>.</li>
    </ul></li>
  <li>My public keys [ <a href="security/gpg-key.html">HTML</a> | <a
    href="security/keys.asc">TEXT</a> ]</li>
</ul>

<p>The address of this page is
<url><basehref>security/gpg-policy.html</url>.</p>

</linkgroup>
