Viewable With ANY Browser

Note: My Web pages are best viewed with style sheets enabled.

Unrated

PGP: Public Key Servers

Copyright © 2002-2012 by David E. Ross

This page assumes the reader understands how to generate a PGP key pair and what it means to sign someone else's key or to revoke your own key. The User's Guide that came with your version of PGP is generally a good source of information on these topics.

Introduction

Searching for Keys

Uploading a Key

Public Key Servers (includes a list of servers)

Remove a Key From a Key Server?


A public key server is a computer program that maintains a collection of public PGP keys. Someone with a new public key can add that key to a server's collection. Anyone seeking someone else's public key can search the collection. Keys already in a server's collection can also be updated. Such updates can reflect the addition of key signatures by other PGP users or the addition of a new user ID (i.e., a new E-mail address for the key's owner). Also an update can reflect the owner having revoked the key. However, once a key has been added to a key server, consider it not removable.

There are several different Internet protocols (communication interfaces) used by key servers. Servers that use the HTTP, LDAP, and E-mail protocols permit searches for individual keys; thus, I call these single-key protocols (although they may be used to find a set of keys that share a common characteristic). The FTP protocol described at The FTP Based Key Server System provides access to very lengthy keyrings (over 20 MB) and is not suitable for processing individual keys.

Searching for Keys

You want the key of someone, and you know her E-mail address. Or you want to check the status of your own key. Or you already have someone else's key, but you want to see if anyone else new has signed that key. Or …

You can use any single-key protocol to search a key server for the key. I have had no experience with using the E-mail protocol, and so I refer you to the comp.security.pgp FAQ. You search a selected HTTP or LDAP key server for a key you identify by specifying either a part of the user ID (e.g., rossde for my keys) or the complete key ID (e.g., 0xE3EFE1A7, where the 0x (zero-eks, not oh-eks) — mandatory for key ID specifications — at the beginning indicates the ID is a string of hexadecimal bytes). The server returns all keys that satisfy that request. The LDAP protocol actually allows you to specify more than one characteristic; for example, you could request all keys that contain rossde in the user ID and that are not revoked. (I have not tried the LDAPS protocol because every server that supports it also supports the LDAP protocol, which I do use.)

The easiest way to use these protocols is to setup server information in PGP's Options. In the table in the middle of this page, I indicate which protocols each server uses. Then, you use PGP's Servers menu to perform the search. Note that a domain server contains keys only for one E-mail domain (e.g., only for earthlink.net). (A domain key server is usually only semi-public. It is used by a company just for the keys of its own employees. The public might be allowed to download a key from a domain server, but often only a system administrator can upload keys to it.) A search through PGP's Search menu returns a list of keys in a display very similar to the standard PGPkeys window. You can examine signatures and properties in that list. Then, just mark one or more keys and then use a pull-down menu to import them into your keyring. Yes, searching for a PGP key actually means downloading that key.

Often, key servers that support the HTTP protocol also provide Web pages for use in searching for a key. Using the HTTP protocol, these allow you to input a single identification (part of the user ID or the entire key ID). Usually, they also allow you to specify short or verbose. The former returns a listing of the keys that satisfy the request, one line per key. The latter shows all the signatures on each key. Sometimes, a Web page uses the terms index and verbose. One server even has the descriptive terms Simple index and Key & who has signed it. Some Web sites do not give any option.

Note that, with a Web page, downloading requires one extra step after a successful search. Keys are listed with a link (often at the key ID). Select the link to download and see the key. Then copy the resulting Web page and paste it into the PGPkeys window to add it to your keyring. Extraneous information on the Web page may be included in the copy; PGP will automatically paste only the key itself.

Warning: Just because you obtained a public key from a server does not mean that the key is authentic, that the actual owner is really who he or she claims to be. If you have a message that is so sensitive that it must be encrypted, then you must also verify the authenticity of the key and its owner. Once you have done that, you then sign the key to mark it as verified. (You may then wish to distribute the signed key to let others know of your verification. This is the following subject.)

Uploading a Key

You have just generated a key pair and want to distribute your new public key. More important, you just revoked your key and want as many people as possible to know. Public key servers are generally used for very broad public distribution of new and modified keys.

If you add another user ID (e.g., a new E-mail address) to your key, which you previously uploaded to a key server, you must now upload the key again. If you sign a key because you indeed know the owner of that key, then that key might also be uploaded to a key server; however, in this case, courtesy requires that you ask the key owner first (especially if the key has never been uploaded before).

If you have setup the Servers portion of PGP's Options, you can upload directly from PGP. After connecting to the Internet, select one or more keys to upload. Then select Send To in the Servers menu. Remember, Domain refers to a server that only has keys for the E-mail domain that matches the server's domain; to upload to such a server, it must first be setup in your list of servers.

If you are using a Web page, select one or more keys and then copy them (from the Edit menu or from a pull-down menu). Paste the result in the input area on the Web page. Finally, select the appropriate button or link on the Web page to upload the pasted keys.

Public Key Servers

The following table contains these columns:

The initial information in this table was obtained from Brian M. Carlson's PGP and GnuPG Web site, which no longer exists. I solicit additional inputs and corrections via E-mail.

Note: Some (or all) of the servers listed below might not handle keys with subkeys or photos. Not using either, I have not tested for their use.

Those servers whose domain names are in bold are in the list of servers I entered into my PGP options. I tested the synchronization of these using new, updated, and revoked keys late in August 2010; they synchronized with other servers in less than 90 minutes. All the other servers in this list are also known to synchronize with others.

After a key server has been tested above and entered into the list below, subsequent testing only involves checking to make sure the server responds.

Server Web Lang Ports Alias Tested
HTTPLDAP1
esperanza.ubuntu.com X Engl11371 keyserver.ubuntu.com 29Aug10
gozer.rediris.es X Engl Span11371 pgp.rediris.es 2Nov12
kerckhoffs.surfnet.nl X Engl11371 minsky.surfnet.nl, pgp.surfnet.nl 5Jan11
keys.kfwebs.net X Engl 11371 29Aug10
keys.niif.hu X Hung 11371 hufu.ki.iif.hu 29Aug10
keyserver.oeg.com.au ? 11371 4Jan11
keyserver.stack.nl X Engl 11371 8Sep10
lorien.prato.linux.it X Engl 11371 keyserver.linux.it, www.prato.linux.it 29Aug10
pgp.zdv.uni-mainz.de X Engl11371 pgp.uni-mainz.de 29Aug10
stinkfoot.org X Engl11371 2Nov12
Note:

1. Currently, I cannot identify a functioning LDAP key server that synchronizes with other servers.

Servers to Avoid

*** Begin Right Sidebar ***

Dead Servers

The following servers cannot be queried via PGP. Either their domains are no longer recognized, PGP cannot connect to them, they timeout on any query, or they are otherwise unreachable. I also list servers that do not respond to pings. Some were previously on my list above; others were recommended by other PGP users.

calvin.lk.etc.tu-bs.de

dannyj.dynip.com

dbma.keyserver.ca

gpg-keyserver.de

horowitz.surfnet.nl (europe.keys.pgp.com)

keys.kadath.com.ar

keys.nayr.net

keyserver.fabbione.net

keyserver.hadiko.de

keyserver.kjsl.com (skyhawk.kjsl.com)

keyserver.maluska.de

keyserver.mine.nu (mail.ganneff.de)

keyserv.nic.se (party.nic.se)

keyserver.noreply.org

keyserver.pramberger.at

keyserver.rootbash.com

keyserver.unixbyte.com

netcat.upb.de

palunko.srce.hr

pgp.ael.be

pgp.demonserver.de (pgp.demonlord.de)

pgp.escomposlinux.org

pgp.eteo.mondragon.edu

pgp.isternet.sk

pgp.sjbcom.com

pgp.srv.ualberta.ca

pgp.uk.demon.net

pgp.upb.de

pgpkeys.logintas.ch

pgpkeys.pca.dfn.de

pks.aaiedu.hr

r24-live.duf.hu (keyserver.duf.hu)

rex.citrin.ch (wwwkeys.ch.pgp.net, pgp.keyserver.ch)

sks.keyserver.penguin.de

wwwkeys.fi.pgp.net

wwwkeys.hu.pgp.net

wwwkeys.kjsl.us.pgp.net

wwwkeys.tw.pgp.net

There are many other dead key servers. I only list those that I have verified myself.

*** End Right Sidebar ***

Because they fail to synchronize with other servers (at least within 48 hours), I strongly recommend against using the following key servers (listed with their aliases and the date tested). Nevertheless, if you revoke a key, check these to see if they contain your key. If any of these servers do contain the key you are revoking, safety requires that you specifically upload the revocation to that server.

Also, there is a bug in older versions of the SKS key server code that impairs synchronization from other, non-SKS servers but not synchronization to others. Among the servers affected are cryptonomicon.mit.edu (pgp.mit.edu, pgpkeys.mit.edu, www.us.pgp.net), pks.gpg.cz (sks.ms.mff.cuni.cz), and the.earth.li (wwwkeys.uk.pgp.net), all of which have been removed from the above list of servers. It has not yet been determined if the problem relates to which version of the SKS server software is used or is a result of whether the server is or is not a member of the SKS pool.

When you urgently need to revoke your public key because either your private key or passphrase has been compromised, a server that is slow to synchronize can be as catastrophic as a server that does not synchronize at all.

Note: If any of the servers listed here as non-synchronizing or dead are now functioning and synchronizing, please let me know.

Server Networks and Round-Robins

At one time, key servers were closely grouped into networks. Synchronization among servers within a network occurred more frequently than with servers in other networks. Today, however, well-functioning servers synchronize with all other known servers quite often and quite quickly; and the concept of networks is no longer significant.

Round-robins are pseudo-servers, one of which is wwwkeys.pgp.net (alias www.uk.pgp.net). A round-robin reroutes requests to other servers, randomly or cyclically choosing one from a list. However, some of the servers on the list may be inactive. Thus, a round-robin might often be unresponsive and should be avoided. The list of servers above excludes round-robins but does include known individual, active servers that participate in round-robins.

Remove a Key From a Key Server?

Several times a month, I see messages on the PGP newsgroups asking "How can I remove my key from a key server?" In general, you should assume that you cannot. While some public key servers do allow keys to be deleted, this is very problematical.

But what can you do if you lose your private key or forget your passphrase? This is not clean, but can provide a warning to those who synchronize with key servers.

For more discussion about deleting keys from key servers, see Tom McCune's page for Pretty Good Privacy.


Last updated 3 May 2012

Valid HTML 4.01