Mailing List Archive

Preserving non-central and privacy with a "permission recording keyserver" (was: Launching a new keyserver on keys.openpgp.org!)
Hello friends of GnuPG!

Am Mittwoch 12 Juni 2019 18:53:50 schrieb Vincent Breitmoser:
> the Hagrid team is pleased to announce the launch of our new keyserver,
> running at keys.openpgp.org!

It is good to see new code for distributing pubkeys for OpenPGP in general.

Hagrid's design decisions seems to aim towards preserving privacy
by requiring a confirmation before personal data is published.
This is much like the General Data Protection Regulation (GDPR).

> * Identities are only published with consent, while
> non-identity information is freely distributed.
> * Deletable. Users can delete personal information with a simple e-mail
> confirmation.

And a simple implementation of this would make the service central, inheriting
the drawbacks of a validating, central keyserver. "Central" in the meaning
that one place decides if a user id of a pubkey (and the pubkey itself) is
made available or not.

Another drawback as far as I can see is limiting the IDs that can be published
towards email addresses, which makes it harder for non-email use cases of
OpenPGP.

Can we write a keyserver-software that avoid these two drawbacks?

What about the following idea:

== A permission recording keyserver

=== Ask for permission to publish once
A keyserver records where it got the user id from.
If it is uploaded, and the id contains personal data, it knows which person's
data it is, thus this person can be asked for permission.
Example, there is an email address in the id. Thus an email can be send to
confirm the intend of the person to publish the pubkey. This permission is
recorded.

In the other case a keyserver gets a key and uid from a different server
and records from which one. It is avoided that each independent keyserver has
to ask again.

Now if someone complains, a server operator can either point to the other
keyserver or the permission they have recorded themselfs.

=== Record deletions
If someone requests a deletion (which means this person can prove that it is
there personal data), this is also recorded, only by key number, so this can
also be synced with other keyservers.

This way we can have independent keyservers, and it is clear that the network
in non-validating as a rouge keyserver may claim to have recorded permissions
or deletions. However if a keyserver does real malice, it will get pointed to
and is liable. It may also be blocked.

=== Non-email ids
If the iid does not contain an email address, it may or may not be data that
is personal. Example: "bernhard at intevation dot de" has personal data.
Example: "Zilkin 2019-ahex" does not.
The server can publish it preliminary, until someone complains and then
we either adapt the detection algorithm, record a deletion for the pubkey or
manually trigger the permission request.

Someone who claims that this is their personal data, will have to do this with
contact information and an understandable explanation why this is personal
data. In the beginning there maybe some interesting encodings and manual
cases to consider, but after a short while the detection algorithms will
catching most encodings.

=== How about the GDPR?

This idea accepts the assumption that we really need approval for publishing
an id that contains personal data (aka opt-in). Especially that the EU GDPR
actually is applicable in this case. I'm not sure if this is the case.
What I am quite sure about is that searching for an email address is okay,
if the search engine as recorded the information from a place where the
permission can be safely assumed, for example from a personal homepage in the
web. So once there is a chain of responsibility that can be followed in
exceptional cases, this is fine as the rights of users are honored.


== Conclusion
While this is just an idea, yet, it seems possible to keep a searchable public
and independently federated directory of pubkeys by design. Maybe hagrid can
be used as basis for such an implementation.

Whether such a directly is useful as an addition to WKD in the long run is not
discussed. And tthe recent attack on the SKS keyserver network should not put
pressure on this important discussion, in my opinion.

Best Regards,
Bernhard
ps.: Dominik and Andre are getting a copy, because I have voiced that idea to
them on the phone in the last days. You do not need to include them in
follow-ups.
pps.: I was unable to read all the writings about the hagrid approach so far.
These days I need good, balances summaries to get on speed on some debates.
However got the impression that the idea is interesting enough to be written
down rather sooner than later.

--
www.intevation.de/~bernhard ? +49 541 33 508 3-3
Intevation GmbH, Osnabr?ck, DE; Amtsgericht Osnabr?ck, HRB 18998
Gesch?ftsf?hrer Frank Koormann, Bernhard Reiter, Dr. Jan-Oliver Wagner
Re: Preserving non-central and privacy with a "permission recording keyserver" (was: Launching a new keyserver on keys.openpgp.org!) [ In reply to ]
Hello.

Am Dienstag, den 09.07.2019, 11:50 +0200 schrieb Bernhard Reiter:
> Hello friends of GnuPG!

> Am Mittwoch 12 Juni 2019 18:53:50 schrieb Vincent Breitmoser:
> > the Hagrid team is pleased to announce the launch of our new
> > keyserver, running at keys.openpgp.org!

> > * Identities are only published with consent, while
> > non-identity information is freely distributed.
> > * Deletable. Users can delete personal information with a simple e-
> > mail confirmation.

> And a simple implementation of this would make the service central,
> inheriting the drawbacks of a validating, central keyserver.
> "Central" in the meaning that one place decides if a user id of a
> pubkey (and the pubkey itself) is made available or not.

And central in the meaning of standing alone. :/

> Another drawback as far as I can see is limiting the IDs that can be
> published towards email addresses, which makes it harder for non-
> email use cases of OpenPGP.

Right.

> Can we write a keyserver-software that avoid these two drawbacks?

With Obama's words: Yes, we can!

I am thinking abour writing a new distributed key server now for a few
days. In my case, just for a company in house solution, but it would be
interwsting to make it a public solution. Respecting the GDPR was out
of scope in my case, but let's simply discuss, if you wish.


> What about the following idea:

> == A permission recording keyserver

> === Ask for permission to publish once
> A keyserver records where it got the user id from.
> If it is uploaded, and the id contains personal data, it knows which
> person's data it is, thus this person can be asked for permission.
> Example, there is an email address in the id. Thus an email can be
> send to confirm the intend of the person to publish the pubkey. This
> permission is recorded.

> In the other case a keyserver gets a key and uid from a different
> server and records from which one. It is avoided that each
> independent keyserver has to ask again.

On sync, the key has just to be flagged if it is privacy protected, or
if it's IDs can be delivered. Yeah, that's a ghood point.


> Now if someone complains, a server operator can either point to the
> other keyserver or the permission they have recorded themselfs.

This could also be done while syncing. Just changing the Flag for KEy
0xABCDEF


> === Record deletions
> If someone requests a deletion (which means this person can prove
> that it is there personal data), this is also recorded, only by key
> number, so this can also be synced with other keyservers.

Sure, technically not a big thing.


> This way we can have independent keyservers, and it is clear that the
> network in non-validating as a rouge keyserver may claim to have
> recorded permissions or deletions. However if a keyserver does real
> malice, it will get pointed to and is liable. It may also be blocked.

Exactly my thoughts. I have some thoughts about how to realize such a
server, a little mir in Detail. I would like to discuss them, are you
interested? Would thos be okay here on the list?

> === Non-email ids
> If the iid does not contain an email address, it may or may not be
> data that is personal. Example: "bernhard at intevation dot de" has
> personal data. Example: "Zilkin 2019-ahex" does not.
> The server can publish it preliminary, until someone complains and
> then we either adapt the detection algorithm, record a deletion for
> the pubkey or manually trigger the permission request.

> Someone who claims that this is their personal data, will have to do
> this with contact information and an understandable explanation why
> this is personal data. In the beginning there maybe some interesting
> encodings and manual cases to consider, but after a short while the
> detection algorithms will catching most encodings.


> === How about the GDPR?

> This idea accepts the assumption that we really need approval for
> publishing an id that contains personal data (aka opt-in). Especially
> that the EU GDPR actually is applicable in this case. I'm not sure
> if this is the case.
> What I am quite sure about is that searching for an email address is
> okay, if the search engine as recorded the information from a place
> where the permission can be safely assumed, for example from a
> personal homepage in the web. So once there is a chain of
> responsibility that can be followed in exceptional cases, this is
> fine as the rights of users are honored.

That'S what I think to. We could even take the upload as implicated
consent on the legal state. But, the possibility to share keys without
UIDs is in some ways a good one. So you can habe ID-less keys for
automated operations where you don't need the UIDs. By the way, is
there a way to generate keys with GPG without UIDs? I tried, but I
failed. Did I oversee an CLI option to do this?


> == Conclusion
> While this is just an idea, yet, it seems possible to keep a
> searchable public and independently federated directory of pubkeys by
> design. Maybe hagrid can be used as basis for such an implementation.

My approach would be different. Not using Hagrid. But that's another
story.


> Whether such a directly is useful as an addition to WKD in the long
> run is not discussed. And tthe recent attack on the SKS keyserver
> network should not put pressure on this important discussion, in my
> opinion.

WKD is in some Cases kind of problematic. Think about users of gmail,
like me, they don't offer WKD at all. So, a second system is nice to
have.

Just a few lines Background: I work in some company projects, where
other companies are involved now. Until then, we propagated the keys we
use over DNS as CERT RRs.in our internal DNS-Server. Now this is no
longer an options. Relying hardly on PGP for many purposes and
usecases, we need a new way to propagate keys and sync them with the
other companies. LDAP would be an option, but making them public
available is not a good idea in aur eyes. A VPN is also out of question
for some reasons, even it would avoid the DNS-Problem.

If somebody wishes to get further details on my theoretical plans or to
discuss the whole thing from another side, I'm open to discussion.

Kind regards,
Dirk

--
Dirk Gottschalk

GPG: 4278 1FCA 035A 9A63 4166 CE11 7544 0AD9 4996 F380
Keybase: https://keybase.io/dgottschalk
GitHub: https://github.com/Dirk1980ac
Re: Preserving non-central and privacy with a "permission recording keyserver" (was: Launching a new keyserver on keys.openpgp.org!) [ In reply to ]
On Tue, 2019-07-09 at 11:50 +0200, Bernhard Reiter wrote:
> == A permission recording keyserver
>
> === Ask for permission to publish once
> A keyserver records where it got the user id from.
> If it is uploaded, and the id contains personal data, it knows which person's
> data it is, thus this person can be asked for permission.
> Example, there is an email address in the id. Thus an email can be send to
> confirm the intend of the person to publish the pubkey. This permission is
> recorded.

In my opinion, the whole e-mail hassle is unnecessary, and could be
resolved with appropriate privacy policy. If someone decides to upload
the key with his own personal data on it, then that someone obviously
agrees with the personal data being shared. As long as he can get that
data removed afterwards, there shouldn't be a problem with that.

That said, of course somebody could upload a key with your data without
your permission. However, somebody can also upload an UID with your PII
on it (name, even address, etc.) and some other e-mail address. E-mail
verification does not really solve the problem, and I think it's
reasonable to assume goodwill and handle abuse directly.

>
> === Record deletions
> If someone requests a deletion (which means this person can prove that it is
> there personal data), this is also recorded, only by key number, so this can
> also be synced with other keyservers.

That generally makes sense. Of course, the major problem is how to
prove. You want to avoid abuse, e.g. when someone with coincidentally
the same name (or fake documents) tries to delete somebody else's key.

You probably should also have a way to revert the deletion requests.

> === Non-email ids
> If the iid does not contain an email address, it may or may not be data that
> is personal. Example: "bernhard at intevation dot de" has personal data.
> Example: "Zilkin 2019-ahex" does not.
> The server can publish it preliminary, until someone complains and then
> we either adapt the detection algorithm, record a deletion for the pubkey or
> manually trigger the permission request.

See above. I agree with the idea of publishing by default. If we
really can't live with that, I think it would be reasonable to require
only one verified e-mail (as statement of consent), and allow other UIDs
on the same key by default.

Detection algorithms make little sense. Do you really want to have
different rules for people with common names, and with uncommon names?
How are you going to detect people on photo IDs?


--
Best regards,
Micha? Górny
Re: Preserving non-central and privacy with a "permission recording keyserver" (was: Launching a new keyserver on keys.openpgp.org!) [ In reply to ]
Am Dienstag 09 Juli 2019 14:37:05 schrieb Micha? Górny via Gnupg-devel:
> On Tue, 2019-07-09 at 11:50 +0200, Bernhard Reiter wrote:

> somebody could upload a key with your data without
> your permission. However, somebody can also upload an UID with your PII
> on it (name, even address, etc.) and some other e-mail address. E-mail
> verification does not really solve the problem, and I think it's
> reasonable to assume goodwill and handle abuse directly.

If the person with the address can reasonably prove that this is his address,
you have a point of contact and can blacklist the pubkey.
Same as someone can prove that the contents is otherwise illegal, e.g. by
presenting a valid court order that it is.


> > === Non-email ids

> > The server can publish it preliminary, until someone complains and then
> > we either adapt the detection algorithm, record a deletion for the pubkey
> > or manually trigger the permission request.

> Detection algorithms make little sense. Do you really want to have
> different rules for people with common names, and with uncommon names?

This is a strategy of keeping the administrative work of a keyserver at a
reasonable amount. The first cases will be manual (like above), but other
cases will be automated. The only way to defend against a work overflow is to
automate the automatic publishing rules and for those that match go back to
manual verification. This does not prevent legitimate, anynomous use of some
string in the uids, but it prevents automated abuse like base64 encoding the
personal data.

> How are you going to detect people on photo IDs?

We also should limit the data on the userid to some byte length, but yes, if
it gets an automated attack that personal data, like an email address gets
encoded as png image, we might have to add a png decoder and an OCR at some
point. The point of this strategy is that we only do it, once this attack
really comes to place. And additionally, we try to get hold of the attacker
and sue her for interfering with a common infrastructure.

All together we are making it less attractive to attack the common
infrastructure, because it would mean to get inventive and to beat the cheap
algorithm with manual work each time.

Bernhard

--
www.intevation.de/~bernhard   +49 541 33 508 3-3
Intevation GmbH, Osnabrück, DE; Amtsgericht Osnabrück, HRB 18998
Geschäftsführer Frank Koormann, Bernhard Reiter, Dr. Jan-Oliver Wagner
Re: Preserving non-central and privacy with a "permission recording keyserver" (was: Launching a new keyserver on keys.openpgp.org!) [ In reply to ]
On 09/07/2019 13:37, Micha? Górny via Gnupg-devel wrote:
> Detection algorithms make little sense. Do you really want to have
> different rules for people with common names, and with uncommon names?

Real names are not unique. For any given real name it is almost
guaranteed that someone else in the world has the same name. Real-name
impersonation is not a problem that the keyservers can or should solve -
we are just trying to prevent spam here, not act as an authority.

> How are you going to detect people on photo IDs?

Don't, just delete them all.

--
Andrew Gallagher
Re: Preserving non-central and privacy with a "permission recording keyserver" (was: Launching a new keyserver on keys.openpgp.org!) [ In reply to ]
Dnia July 10, 2019 7:32:29 AM UTC, Bernhard Reiter <bernhard@intevation.de> napisa?(a):
>Am Dienstag 09 Juli 2019 14:37:05 schrieb Micha? Górny via Gnupg-devel:
>> On Tue, 2019-07-09 at 11:50 +0200, Bernhard Reiter wrote:
>
>> > === Non-email ids
>
>
>> How are you going to detect people on photo IDs?
>
>We also should limit the data on the userid to some byte length, but
>yes, if
>it gets an automated attack that personal data, like an email address
>gets
>encoded as png image, we might have to add a png decoder and an OCR at
>some
>point. The point of this strategy is that we only do it, once this
>attack
>really comes to place. And additionally, we try to get hold of the
>attacker
>and sue her for interfering with a common infrastructure.

I don't think we're taking about the same thing. I was considering the case where somebody uploads his photo as UID. How are you going to protect against somebody using my face, for example?


--
Best regards,
Micha? Górny

_______________________________________________
Gnupg-devel mailing list
Gnupg-devel@gnupg.org
http://lists.gnupg.org/mailman/listinfo/gnupg-devel
Re: Preserving non-central and privacy with a "permission recording keyserver" (was: Launching a new keyserver on keys.openpgp.org!) [ In reply to ]
Am Mittwoch 10 Juli 2019 11:05:57 schrieb Micha? Górny via Gnupg-devel:
> I was considering the case where somebody uploads his photo as UID. How are
> you going to protect against somebody using my face, for example?

a) We don't allow that much data.
b) You can apply for deletion of the pubkey afterwards.
c) If the same algorithm is used to transfer more image data,
deploy a filter that does not allow it.

--
www.intevation.de/~bernhard   +49 541 33 508 3-3
Intevation GmbH, Osnabrück, DE; Amtsgericht Osnabrück, HRB 18998
Geschäftsführer Frank Koormann, Bernhard Reiter, Dr. Jan-Oliver Wagner
Re: Preserving non-central and privacy with a "permission recording keyserver" (was: Launching a new keyserver on keys.openpgp.org!) [ In reply to ]
> Real names are not unique. For any given real name it is almost
> guaranteed that someone else in the world has the same name.

For a dark and terrifying example, consider the other Robert Hansen who
grew up in northwest Iowa.

https://en.wikipedia.org/wiki/Robert_Hansen

Or consider the other Robert Hansen who spoke at Black Hat:

https://graylinegroup.com/robert-hansen/

Back in the late '90s there were a few Robert Hansens in comp.os.linux.*
and we often got confused for each other, including this guy:

https://en.wikipedia.org/wiki/Robert_Hanssen

In a final example of namespace collision: the serial killer Robert
Hansen from northwest Iowa was eventually apprehended thanks to
contributions from an FBI agent named John Douglas.

A different John Douglas is an old friend of mine from high school.

The upshot of all this is: saying "real names are not unique" is an
overstatement. Name collisions occur _all the time_. If your system
incorporates real names, this is something you need to think about now,
not later.

_______________________________________________
Gnupg-devel mailing list
Gnupg-devel@gnupg.org
http://lists.gnupg.org/mailman/listinfo/gnupg-devel