GPG -- what I do
We've had a lot of discussion about #GPG over the last few days and the first thing I want to say is "Don't sign anything until you've read this". The second thing to say is that these are my thoughts on how GPG works for me, this is not the official 'line'.
It's all about trust and build a web of that trust. But I think we have to be really careful about what we mean about the word trust here. Is it "I trust $person with my kids, to water my plants, look after my vinyl collection &/or my personal data", or it "I trust $person is who they say they are". Sorry for the leading question, but I think it needs stating.
So I have no GPG data on Thomas who runs #KakSte for example, but I trust him with my data. There are others who I have had extensive, wide-ranging and meaningful conversations with and won't sign their GPG keys. Why?
Whenever I get new GPG information from someone I try and verify that information. There are keyservers that you can reference. GPG keys are tied to email addresses, I often send a signed email and ask for a signed reply. I can check their #friendica profile. When this all checks out to my satisfaction, I raise my trust level of that key to marginal and say I trust their signature on other keys. I then publish that to my keyserver.
Now to get a key signed by me, I preferably meet you in person and I see some ID and some proof that the key is yours. The only non face-to-face key signings I've done have been with new keys for old contacts. A telephone call where we share only stuff we would know has worked for me.
I may be more hardcore than many on this, but me signing your key means that I trust 100% that you are who you say you are and you have control of that key. It does not mean that I trust you with my record collection.
It's all about trust and build a web of that trust. But I think we have to be really careful about what we mean about the word trust here. Is it "I trust $person with my kids, to water my plants, look after my vinyl collection &/or my personal data", or it "I trust $person is who they say they are". Sorry for the leading question, but I think it needs stating.
So I have no GPG data on Thomas who runs #KakSte for example, but I trust him with my data. There are others who I have had extensive, wide-ranging and meaningful conversations with and won't sign their GPG keys. Why?
Whenever I get new GPG information from someone I try and verify that information. There are keyservers that you can reference. GPG keys are tied to email addresses, I often send a signed email and ask for a signed reply. I can check their #friendica profile. When this all checks out to my satisfaction, I raise my trust level of that key to marginal and say I trust their signature on other keys. I then publish that to my keyserver.
Now to get a key signed by me, I preferably meet you in person and I see some ID and some proof that the key is yours. The only non face-to-face key signings I've done have been with new keys for old contacts. A telephone call where we share only stuff we would know has worked for me.
I may be more hardcore than many on this, but me signing your key means that I trust 100% that you are who you say you are and you have control of that key. It does not mean that I trust you with my record collection.
29 comments show more
And I don't know what the world is coming to if a #lancastrian can't trust a #yorkshireman in this day and age...

I did a
gpg --search-keys "Thomas Willingham" less than 30 minutes ago and found nothing.
I signed keys for
@David Benfell
@elmussols
@Martin Farrent
@Charles Occupy Roth
@Tobias Diekershoff
and
@Jim Morgan
I could not find a key for @Thomas Willingham or @Mike
who else am I missing?
I'm on a rampage:
SIGN ALL THE KEYS!
Mine has 3F330C6E (full pubkey and footprint on my profile), and for "Anthony Baldwin" (not tony)
gpg --search-keys "Thomas Willingham" less than 30 minutes ago and found nothing.
I signed keys for
@David Benfell
@elmussols
@Martin Farrent
@Charles Occupy Roth
@Tobias Diekershoff
and
@Jim Morgan
I could not find a key for @Thomas Willingham or @Mike
who else am I missing?
I'm on a rampage:
SIGN ALL THE KEYS!
Mine has 3F330C6E (full pubkey and footprint on my profile), and for "Anthony Baldwin" (not tony)
I still haven't the slightest idea how to copy mine anywhere and take it with me, so, at this juncture, I can only sign mails from home (with mutt). Luckily, I can ssh to this machine from anywhere and use mutt.
How do I do that?
I thought maybe my signature magically appeared through the key-server on your signature everywhere or something...
the gpg faeries don't deliver my signature?
I have no idea how to even send a key, since I don't know where they are...
I have a keyring thingy that seems to have ALL of them, including my own, or something, but how to send any individual key is still beyond me (including how to copy and take my own key with me for use elsewhere).
I thought maybe my signature magically appeared through the key-server on your signature everywhere or something...
the gpg faeries don't deliver my signature?
I have no idea how to even send a key, since I don't know where they are...
I have a keyring thingy that seems to have ALL of them, including my own, or something, but how to send any individual key is still beyond me (including how to copy and take my own key with me for use elsewhere).
I feel Paul was making an important argument in his post.
To cut a long story short: He's also pointing at the difference between personal trust (in the identity you see) and the objective trustworthiness of that identity (to be legit). Reason: When you sign a key, you are doing so for the entire community that uses the system. That means total strangers anywhere in the world who might be trying to establish the credibility of that key for themselves... we need a level of reliability that goes beyond our personal feelings.
I'll illustrate that in a more personal way. I have decided to trust Paul's key more or less totally - for myself, in communications with Paul. But that attitude should not be reflected on any key server. It should remain in my own mind.
Objectively and on a software/server level I might set my trust level in Paul's key to "marginal" (the label is stupid, because it's actually not a bad mark). I can't prove that Paul Taylor is a person that actually exists under that name and that this person is using the key. But I can ascertain that the identity using the key is consistent across multiple platforms where he advertises that key. I can discover that by importing Paul's key from a server and sending an email to the address I am aware of, I reach a person who is most probably the same as the Paul Taylor I see here, or on XMPP, or status.net, or on his website.
But to actually sign Paul's key in such a way that would be objectively helpful to other people using the system I would need to have met Paul, seen some ID, experienced some tangible proof of his association with that key.
And then there's the trust level. Theoretically, I could sign someone's key after having met them, yet still express a very low level of system-specific trust - perhaps because that person is signing other keys willy-nilly. So while I have no reason not to sign the key, I have every reason to differentiate between that person's authenticity and what I think of the way he/she is using the signing system.
Note: That's system-specific trust. What I would then be expressing is this: I disagree with the flippancy of X's signing policy. But X might still be my best friend, whom I would trust to take my kids climbing or to repay a large cash loan reliably.
It takes some getting used to, but it's actually quite a sound scheme.
To cut a long story short: He's also pointing at the difference between personal trust (in the identity you see) and the objective trustworthiness of that identity (to be legit). Reason: When you sign a key, you are doing so for the entire community that uses the system. That means total strangers anywhere in the world who might be trying to establish the credibility of that key for themselves... we need a level of reliability that goes beyond our personal feelings.
I'll illustrate that in a more personal way. I have decided to trust Paul's key more or less totally - for myself, in communications with Paul. But that attitude should not be reflected on any key server. It should remain in my own mind.
Objectively and on a software/server level I might set my trust level in Paul's key to "marginal" (the label is stupid, because it's actually not a bad mark). I can't prove that Paul Taylor is a person that actually exists under that name and that this person is using the key. But I can ascertain that the identity using the key is consistent across multiple platforms where he advertises that key. I can discover that by importing Paul's key from a server and sending an email to the address I am aware of, I reach a person who is most probably the same as the Paul Taylor I see here, or on XMPP, or status.net, or on his website.
But to actually sign Paul's key in such a way that would be objectively helpful to other people using the system I would need to have met Paul, seen some ID, experienced some tangible proof of his association with that key.
And then there's the trust level. Theoretically, I could sign someone's key after having met them, yet still express a very low level of system-specific trust - perhaps because that person is signing other keys willy-nilly. So while I have no reason not to sign the key, I have every reason to differentiate between that person's authenticity and what I think of the way he/she is using the signing system.
Note: That's system-specific trust. What I would then be expressing is this: I disagree with the flippancy of X's signing policy. But X might still be my best friend, whom I would trust to take my kids climbing or to repay a large cash loan reliably.
It takes some getting used to, but it's actually quite a sound scheme.
... to elaborate with another example: While it might be very chummy to sign every key from a Friendica buddy, someone else out there might be doing the same for every key from members of an Opus Dei web forum - and how would you feel about that?
So what you might do is to trust (in your head) keys from Friendica friends, but not to express that in the system in any exaggerated way.
So what you might do is to trust (in your head) keys from Friendica friends, but not to express that in the system in any exaggerated way.
@Martin Farrent I think there is a local trust value that you can assign keys for your own usage that wont find their way into the global web of trust.
From what I've been able to ascertain, the trust value usually gets sent to the key servers, albeit anonymously. It's not just for you.
What you mean may be local signing of a certificate (of your copy on that particular computer, not informing the rest of the world). I'm not really sure what that's good for. I'm guessing it's for practical/small business purposes. If you have a lot of public keys - from customers, for instance - you can sign the ones you trust into a visibly different category, yet not get too involved by signing them publicly.
What you mean may be local signing of a certificate (of your copy on that particular computer, not informing the rest of the world). I'm not really sure what that's good for. I'm guessing it's for practical/small business purposes. If you have a lot of public keys - from customers, for instance - you can sign the ones you trust into a visibly different category, yet not get too involved by signing them publicly.
@Tobias Diekershoff I can't see a mechanism for having two different trust levels for the same key. How would you not transmit your trust level to the web of trust when publishing? As Martin says local signing is possible. #puzzled
If you do something like 
$]> gpg --edit-key xxxxxxxx on the terminal, which I do because with the GUIs I have the feeling of doing something wrong, you get something like gpg (GnuPG) 2.0.17; Copyright (C) 2011 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
pub xxxxD/xxxxxxxx erzeugt: 2007-08-07 verfällt: niemals Aufruf: SC
Vertrauen: vollständig Gültigkeit: unbekannt
sub xxxxg/xxxxxxxx erzeugt: 2007-08-07 verfällt: niemals Aufruf: E
[ unbek.] (1). bla <bla@t-online.de> ask it for "help" and in the end he says * Dem `sign'-Befehl darf ein `l' für nicht exportfähige Signaturen vorangestellt werden ("lsign"),
ein `t' für 'Trust'-Signatur ("tsign"), ein `nr' für unwiderrufbare Signaturen
("nrsign"), oder jede Kombination davon ("ltsign", "tnrsign", etc.). luckily in German. So you can prefix the "sign" command with an l to make it local, not exportable. At least that is how I understand this help text, I have not tried it honestly 
en anglais:
sign sign selected user IDs [* see below for related commands]
lsign sign selected user IDs locally
tsign sign selected user IDs with a trust signature
nrsign sign selected user IDs with a non-revocable signature
@Tobias Diekershoff Yes, I get local signing, it's this statement I don't grok:
As @David Benfell pointed out, trust level and signing are two different things and I don't think you can have two different trust levels on the same key.
I think there is a local trust value that you can assign keys for your own usage that wont find their way into the global web of trust.
As @David Benfell pointed out, trust level and signing are two different things and I don't think you can have two different trust levels on the same key.
There's another thing I do (see original post):
If you sign my key and I know you haven't done the proper checks I will set your trust level to Never as you are an number-hungry amateur. This is not an idle statement -- I have done it in the past and will do it again.
If you sign my key and I know you haven't done the proper checks I will set your trust level to Never as you are an number-hungry amateur. This is not an idle statement -- I have done it in the past and will do it again.
@David Benfell No softening I'm afraid. If someone has signed my key and I don't even have their key details, they are amateur, do not understand what they are doing and should not be trusted.
@David Benfell Paul is talking about public keys on key servers.
You can't stop a person signing your key - even if you disagree with it, because they haven't done any verification work. Even a stranger might sign your key - just import it and sign.
It's a weak point in the key server system.
You can't stop a person signing your key - even if you disagree with it, because they haven't done any verification work. Even a stranger might sign your key - just import it and sign.
It's a weak point in the key server system.
It's also a GUI weak point. In the German version of the (more or less official) Cleopatra for Windows GUI, signing a key places that key in your personal 'trusted' list. You can sign it locally to do that, or you can publish your signature. A superficial user may not quite realise what's happening. He'll sign the key merely to move it from one section of the GUI to another - and perhaps sign it publicly in the process.
Kinda brings me back to what @Haakon Meland Eriksen was saying recently. A piece of software that requires users to read documentation excessively before use is operating on unrealistic premises. Most people prefer the trial-and-error approach.
So while I agree with Paul and consider this a topic one should research thoroughly before pressing any buttons whatsoever, I'm sure the implementation side could have been handled a little more wisely, too.
Kinda brings me back to what @Haakon Meland Eriksen was saying recently. A piece of software that requires users to read documentation excessively before use is operating on unrealistic premises. Most people prefer the trial-and-error approach.
So while I agree with Paul and consider this a topic one should research thoroughly before pressing any buttons whatsoever, I'm sure the implementation side could have been handled a little more wisely, too.
As I've said previously, I am more hard-core than most on this. A collective I was involved with was badly burned by this kind of infantile behaviour -- my tolerance for puerile behaviour with a serious security technology is very low. If you want to play at being important, befriend my partner on Facebork and join her mafia.
For the key with my real name, proof of the name attached to your key. That could be a (ironically) a state-issued document like ID Card or Passport. Reason: quite difficult to fake. I could tie myself in ethical knots about the state issuing phoney IDs.
Not everyone I know has this kind of documentation however, and that's where the other kind of trust comes in. In reality, I have not had to cross this bridge in a key-signing situation.
You have given me something to ponder @David Benfell.
Not everyone I know has this kind of documentation however, and that's where the other kind of trust comes in. In reality, I have not had to cross this bridge in a key-signing situation.
You have given me something to ponder @David Benfell.
@David Benfell
Wouldn't work, I'm afraid. For one thing, it would need to be a universally understood convention to do as you propose. But more problematically, if A signs frivolously (so I don't re-sign yet) and B later signs legitimately (so now I re-sign), A's signature is still there - hence ostensibly accepted by me, if such a convention is agreed on.
Wouldn't work, I'm afraid. For one thing, it would need to be a universally understood convention to do as you propose. But more problematically, if A signs frivolously (so I don't re-sign yet) and B later signs legitimately (so now I re-sign), A's signature is still there - hence ostensibly accepted by me, if such a convention is agreed on.
Still doesn't work. That's the trouble. Once a signature is on the server, you can't make it disappear. Publishing doesn't overwrite. It's a flaw in the system. You can do a few other stupid things to people keys, too. These don't effect functionality, but can confuse other users.
I've got two passports (dual nationality) and three ID cards (from each stage of nationalisation).
Even authoritarian identification is flawed. True, both passports are valid, but you can't see the times I've overstayed visas with one of them on the other. Two of the ID cards are in date, but no longer valid. I've used them (albeit mostly accidentally) without anybody noticing too.
The point is no form of identification is fool proof, even those heavy handed and authoritarian. GPG is just a tool. Yes, ideally we should be quite strict with it (though honestly, I only use it at all when geeks ask me to - it just scares normals), but it's just one piece of evidence to verify an identity.
As has been pointed out, you still need to do your own research before you sign one yourself, and you should do the same research before trusting anyone else's signings.
IMO, the first definition of trust is more important to me than a GPG key ever will be, and you earn that slowly but surely one word at a time, over several years. By the time I'm telling you anything important, I know you well enough to know if the email (or whatever) comes from you or not by just reading it.
Even authoritarian identification is flawed. True, both passports are valid, but you can't see the times I've overstayed visas with one of them on the other. Two of the ID cards are in date, but no longer valid. I've used them (albeit mostly accidentally) without anybody noticing too.
The point is no form of identification is fool proof, even those heavy handed and authoritarian. GPG is just a tool. Yes, ideally we should be quite strict with it (though honestly, I only use it at all when geeks ask me to - it just scares normals), but it's just one piece of evidence to verify an identity.
As has been pointed out, you still need to do your own research before you sign one yourself, and you should do the same research before trusting anyone else's signings.
IMO, the first definition of trust is more important to me than a GPG key ever will be, and you earn that slowly but surely one word at a time, over several years. By the time I'm telling you anything important, I know you well enough to know if the email (or whatever) comes from you or not by just reading it.
Only that in you which is me can hear what I'm saying.
-- Baba Ram Dass
-- Baba Ram Dass






