Post by Daniel Kahn Gillmor
I've changed the subject line to indicate that this thread is about
establishing a pseudonym, *not* about anonymous users. This is a subtle
but important difference.
People assume pseudonyms for various reasons, anonymity being but one
of them. It is clear the person behind "adrelanos" wants to remain
anonymous, while giving a name to his action. This is a narrower
application of pseudonyms, thus IMHO the subject should have stayed.
The problem we're trying to solve here is how to ascertain originality
of a software development line, IOW how to authenticate it.
I believe this has much in common with ordinary software authentication.
For instance, from _my_ perspective, "Werner Koch" is kind of an
anonymous person. He's not actually a person, he is just the key that
signs versions of GnuPG software. (No offense, Werner, I've seen you on
Google, so you must be true, surely. :-^ ) I don't think shaking hands
with Werner would change much in this regard. Same goes for almost all
other signed software on my system. What I mean to express is an idea
that in ordinary situation, the entity that authenticates (certifies)
software is the key itself, not its owner(s), whom I don't know, and who
I don't know if they exist. (But I know the key. Just try to imagine
the cryptographic key acquired intelligence and became a person, and
eventually - a friend; hey, I wouldn't trust a strange key, would I?)
The person(s) behind "adrelanos", in order to communicate securely and
anonymously, invents a "new person", a sock-puppet, called "adrelanos",
through which he will communicate with the rest of the world:
I am adrelanos, the strictly pseudonymous (anonymous) maintainer
For simplicity, I mentally associate this "invented person" with his
(their?) cryptographic key itself. (Thus the name "adrelanos" is
redundant, what counts is the key's fingerprint, but it's good for
human speak.) So when I say "adrelanos", I think of the key exclusively.
As a side note (this is not the main topic of my posting), I have two
suggestions to adrelanos. First, I'm not sure the Web of Trust solves
anything for you. You need to associate yourself strongly with the
project, so I would advise to put your public key into the very first
issue of the software, and sign the whole. An attacker may do the same
with their key and claim they are the only true developers. To thwart
this, you need to gather signed timestamps from many independent services.
(The reasoning is that someone can make a copy and claim as his for
nefarious purposes only, thus if you can prove you were the first to
own it, you can defend your authorship this way.) Announcing on this
list (or in any public place) can also be considered as a kind of a
time-stamp (until a Ministry of Truth starts to manage our history),
but have I seen your public key here? A third suggestion is to create
some backup keys, and somehow mention them in further software issues,
just in case you find yourself in disaster management situation and need
to identify yourself by another means.
Post by Daniel Kahn Gillmor
For a pseudonymous author who wants to establish a credible claim to a
given identity, one way would be to encourage the people who have been
following the work of that author to certify the key. In that case, how
would they know it's the right one? This is a shade different from
other scenarios, but if, for example, if i had been using tool X for 5
years, and had been corresponding with the author (e.g. bug reports,
thank you notes, feedback, etc) over that time and all the
communications and versions of the tool that i received consistently
demonstrated that the person on the other end had control of the key in
question, i would have no problem certifying that identity.
What would such a certification accomplish?
In my lay person's understanding, the purpose of certification (key
signing) is to state that the UID correctly describes the person who
claims the key.
If you sign an anonymous key, that may be either misleading, or carry
zero information. If you mean to certify for the real person - you
haven't met them, and there is noone who will claim the key (as long
as they want to stay anonymous). If you sign for the "invented person"
(as I defined above), then you essentially certify that the key holding
a name "adrelanos" is correctly described by the name "adrelanos".
I understand the aim of your certification: you want to introduce
"adrelanos", and to state your association with him (although you
don't know the real person). But can you explain this purpose in
your signature? Is a key signing the best means for it? Wouldn't a
better option be publishing a signed statement "I have cooperated with
an anonymous person adrelanos since ..., I believe he is the original
author of ..."?
Further thoughts for discussion:
If I told you my pseudonym was "Werner Koch" (for "John Smith" was already
too occupied), would you sign my key? Why? Why would it take 5 years to
convince yourself to sign adrelanos' key; why not 5 months, or 5 weeks?
If someone revealed to you "adrelanos" was a secret FBI operation,
would you still sign it? (FBI behind "adrelanos" might be the true
original author of the software, accept bug reports, feedbacks, etc., and
I've heard they have really nice blokes there. So essentially nothing
changes, except the state of your knowledge.) Before signing his key,
would you check that the ID "adrelanos <adrelanos at riseup.net>" was not in
use (not necessarily in a PGP key) by another person, say, a year ago from