---
title: FAQ
---

**For instructions, see our [usage guide](@/usage.md).**

### Is this server part of the "SKS" pool? {#sks-pool}

No. The federation model of the SKS pool has various problems in terms of reliability, abuse-resistance, privacy, and usability. We might do something similar to it, but {{ brand() }} will never be part of the SKS pool itself.

### Is keys.openpgp.org federated? Can I help by running an instance? {#federation}

For the moment, no. We do plan to decentralize {{ brand() }} at some point. With multiple servers run by independent operators, we can hopefully improve the reliability of this service even further.

Several folks offered to help out by "running a Hagrid server instance". We very much appreciate the offer, but we will probably never have an "open" federation model like SKS, where everyone can run an instance and become part of a "pool". This is for two reasons:

1.  Federation with open participation requires all data to be public. This significantly impacts the privacy of our users, because it allows anyone to scrape a list of all email addresses.
2.  Servers run as a hobby by casual administrators do not meet our standards for reliability and performance.

### Why is there no support for identities that aren't email addresses? {#non-email-uids}

We require explicit consent to distribute identity information. Identities that aren't email addresses, such as pictures or website URLs, offer no simple way for us to acquire this consent.

Note: Some OpenPGP software creates keys with incorrectly formatted email addresses. These addresses might not be recognized correctly on {{ brand() }}.

### Can I verify more than one key for some email address? {#verify-multiple}

An email address can only be associated with a single key. When an address is verified for a new key, it will no longer appear in any key for which it was previously verified. [Non-identity information](@/_index.md) will still be distributed for all keys.

This means a search by email address will only return a single key, not multiple candidates. This eliminates an impossible choice for the user ("Which key is the right one?"), and makes key discovery by email much more convenient.

### What do you do to protect outgoing verification emails? {#email-protection}

We use a modern standard called [MTA-STS](https://www.hardenize.com/blog/mta-sts), combined with [STARTTLS Everywhere](https://starttls-everywhere.org/) by the EFF, to make sure verification emails are sent out securely. This protects against eavesdropping and interception during delivery.

The MTA-STS mechanism only works if supported by the recipient's email provider. Otherwise, emails will be delivered as usual. You can [run this test](https://www.hardenize.com/) to see if your email provider supports it. If the "MTA-STS" entry on the left isn't a green checkmark, please ask your provider to update their configuration.

### Do you distribute "third party signatures"? {#third-party-signatures}

Short answer: No.

A "third party signature" is a signature on a key that was made by some other key. Most commonly, those are the signatures produced when "signing someone's key", which are the basis for the "[Web of Trust](https://en.wikipedia.org/wiki/Web_of_trust)". For a number of reasons, those signatures are not currently distributed via {{ brand() }}.

The killer reason is **spam**. Third party signatures allow attaching arbitrary data to anyone's key, and nothing stops a malicious user from attaching so many megabytes of bloat to a key that it becomes practically unusable. Even worse, they could attach offensive or illegal content.

There are ideas to resolve this issue. For example, signatures could be distributed with the signer, rather than the signee. Alternatively, we could require cross-signing by the signee before distribution to support a [caff-style](https://wiki.debian.org/caff) workflow. If there is enough interest, we are open to working with other OpenPGP projects on a solution.

### Why not sign keys after verification? {#no-sign-verified}

The {{ brand() }} service is meant for key distribution and discovery, not as a de facto certification authority. Client implementations that want to offer verified communication should rely on their own trust model.

### Why are revoked identities not distributed as such? {#revoked-uids}

When an OpenPGP key marks one of its identities as revoked, this identity should no longer be considered valid for the key, and this information should ideally be distributed to all OpenPGP clients that already know about the newly revoked identity.

Unfortunately, there is currently no good way to distribute revocations, that doesn't also reveal the revoked identity itself. We don't want to distribute revoked identities, so we can't distribute the identity at all.

There are proposed solutions to this issue, that allow the distribution of revocations without also revealing the identity itself. But so far there is no final specification, or support in any OpenPGP software. We hope that a solution will be established in the near future, and will add support on {{ brand() }} as soon as we can.

### Why isn't it possible to search by part of an email address, like just the domain? {#search-substring}

Some keyservers support search for keys by part of an email address. This allows discovery not only of keys, but also of addresses, with a query like "keys for addresses at gmail dot com". This effectively puts the addresses of all keys on those keyservers into a public listing.

A search by email address on {{ brand() }} returns a key only if it exactly matches the email address. That way, a normal user can discover the key associated with any address they already know, but they cannot discover any new email addresses. This prevents a malicious user or spammer from easily obtaining a list of all email addresses on the server.

We made this restriction a part of our [privacy policy](@/privacy.md), which means we can't change it without asking for user consent.

### Do you support Tor? {#tor}

Of course! If you have Tor installed, you can reach {{ brand() }} anonymously as an [onion service](https://support.torproject.org/onionservices/#onionservices-2):
[zkaan2xfbuxia2wpf7ofnkbz6r5zdbbvxbunvp5g2iebopbfc4iqmbad.onion](http://zkaan2xfbuxia2wpf7ofnkbz6r5zdbbvxbunvp5g2iebopbfc4iqmbad.onion)

### Why not encrypt verification emails? {#encrypt-verification-emails}

Various reasons:

1.  It is more complicated, both for our users and for us.
2.  It doesn't prevent attacks - an attacker gains nothing from uploading a key they don't have access to.
3.  Deletion would still have to be possible even when a key is lost.
4.  It would require a different (and more complicated) mechanism to upload keys that can only sign.

### I have trouble updating some keys with GnuPG. Is there a bug? {#older-gnupg}

GnuPG considers keys that contain no identity information to be invalid, and refuses to import them. However, a key that has no [verified email addresses](@/_index.md) may still contain useful information. In particular, it's still possible to check whether the key is revoked or not.

In June 2019, the {{ brand() }} team created a patch that allows GnuPG to process updates from keys without identity information. This patch was quickly included in several downstream distributions of GnuPG, including Debian, Fedora, NixOS, and GPG Suite for macOS.

In March 2020 the GnuPG team rejected the patch, and updated the issue status to "Wontfix". This means that **unpatched versions of GnuPG cannot receive updates from {{ brand() }} for keys that don't have any verified email address**. You can read about this decision in issue [T4393](https://dev.gnupg.org/T4393#133689) on the GnuPG bug tracker.

You can check if your version of GnuPG is affected with the following instructions.

> Import test key:
>
> $ curl https://keys.openpgp.org/assets/uid-test.pub.asc | gpg --import
> gpg: key F231550C4F47E38E: "Alice Lovelace <alice@openpgp.example>" imported
> gpg: Total number processed: 1
> gpg: imported: 1

> With patch, key will be updated if locally known:
>
> $ gpg --recv-keys EB85BB5FA33A75E15E944E63F231550C4F47E38E
> gpg: key F231550C4F47E38E: "Alice Lovelace <alice@openpgp.example>" not changed
> gpg: Total number processed: 1
> gpg: unchanged: 1

> Without patch, a key without identity is always rejected:
>
> $ gpg --recv-keys EB85BB5FA33A75E15E944E63F231550C4F47E38E
> gpg: key EB85BB5FA33A75E15E944E63F231550C4F47E38E: no user ID
