0

OpenPGP can be used to sign messages / authenticate. Why is this not required by keyservers to ensure that only the owner of the private key can upload / modify / remove the public key on the server?

I understand that keys are synced between servers, but it seems that having even one server that required this auth (and did not accept keys from other servers) would be a much more reliable source and cut down on impersonations / dead, unused keys, etc. Seems this could allow for per-key privacy settings and all kinds of improvements, but maybe I am missing something?

  • 1
    Based on what information the key server should authenticate the user on initial upload? Everybody could create a key (including private key) in somebody's name and upload it. – Steffen Ullrich Feb 23 '17 at 20:18
  • I was suggesting the key itself should be used to authenticate, regardless of what name and email is used, at least we would know the owner of the private key uploaded the public key. Basically, "why should alice be able to publish bob's a public key"? – Jonathan Cross Feb 27 '17 at 15:53
  • So how to you prevent that Alice creates a key with Bob's name in it and publishes it? You cannot check it using the key Alice just created because there is no base to trust it yet. And Alice can create a key with any name in it. – Steffen Ullrich Feb 27 '17 at 16:10
  • Sure, alice can create a key with bob's name / email, but that is not the problem I'm trying to solve. Instead, I want to be sure that the owner of a given private key has control over the corresponding public key on a keyserver. I don't see any reason to give strangers write access. It is still up to users to meet and verify authenticity of keys, verify email addresses, etc. – Jonathan Cross Mar 13 at 21:12
3

There are a few things to take into account here.

Why is this not required by keyservers to ensure that only the owner of the private key can upload … ?

The main problem with a malicious key is someone posing as an identity he is not allowed to use. The uploader of the key would hold the private key, so we didn't gain anything here.

On the other hand, it is sometimes useful that a third party can upload a key.

… only the owner of the private key can modify the public key on the server?

This already happens. You can't eg. add an identity or a subkey to a key unless you have the private part of the main key. Not only the keyservers, openpgp clients would detect that such key is wrong, too.

However, it is possible for anyone to add a signature to your key. This translates to a vouch that the key belongs to whom it claims (eg. they checked your passport and it states the same name as your OpenPGP key). This is a crucial part of the PGP web of trust model (even though, if not indicated otherwise, it is educated to send the signed key to the user instead, rather than publishing the signed key directly).

…remove the public key?

To a point, it already does so. Note that the keyservers form a distributed system, with the many servers syncing their different keys. Thus, if a keyserver completely forgot about a deleted key, it would be readded a few hours later when syncing with another server. Thus, what we need is a deleted flag that only the key owner can set.

This already exists, with the name of revocation certificate.

-

Note also that the goal of the keyservers is to hold many keys (so you can find the one you need), not having trusted keys or providing any kind of insurance over its contents. You are expected to use the Web of Trust for that.

A closed keyserver that functions more similarly to what you propose is the debian one: https://keyring.debian.org/ It does so by adding a human into the process (the Debian Account Managers) in order to perform some steps (most importantly, the upload of new keys).

  • One good reason to require authentication is that the current system allows anyone to anonymously write nonsense into your key by way of a signature. They can create a key with an obscene, offensive, threatening UID, sign your key and make that permanently public. Luckily this doesn't seem to be common, but that is just luck. Can be done with thousands (millions?) of signatures making your key unusable, etc. – Jonathan Cross Mar 13 at 21:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.