* [gentoo-project] [RFC] OpenPGP Authority Keys to provide validity of developer/service keys
@ 2019-02-16 8:40 Michał Górny
2019-02-16 8:54 ` Toralf Förster
` (5 more replies)
0 siblings, 6 replies; 23+ messages in thread
From: Michał Górny @ 2019-02-16 8:40 UTC (permalink / raw
To: gentoo-project
[-- Attachment #1: Type: text/plain, Size: 2324 bytes --]
Hi,
Following the replies to my earlier GLEP, I'd like to separately discuss
introducing Authority Keys to provide validity proof for @gentoo.org
UIDs.
TL;DR: we'd create OpenPGP key that will be used to (semi-?)
automatically sign @gentoo.org UIDs on developer keys (as listed
in LDAP), so users could trust this key and have all developers verified
instantly.
Problem being solved: making it possible for users to easily verify
developer keys and distinguish them from potential fraud. Since
by definition Gentoo developers are people having access to Gentoo
servers, it is reasonable to use the key fingerprints stored there
as point of truth.
This is somewhat already achieved by gentoo-keys seeds file. However,
that file is entirely custom and it doesn't work out of the box outside
gkeys environment. On the other hand, WoT-based validity checks are
built-in in GnuPG and can be semi-reasonably used for this purpose.
The generic idea is that we'd publish an 'Authority Key' with its
fingerprint presented on the website along with service keys. We'd sign
all @gentoo.org UIDs matching LDAP entries with this key and publish
the signatures on keyservers. Then the user would fetch this authority
key, verify its fingerprint, set it to full trust and WoT calculation
would automatically result in all developer keys being trusted.
Developer key revocation: having a single signing point also makes it
easy to handle revocations (e.g. due to developers retiring). We would
just have to revoke the relevant signatures, and publish updates.
Authority Key protection: since keysigning is done using the primary
key, it would have to be exposed to attacks. Unlike with subkeys, we
would have to revoke the whole key in case of compromise.
Therefore, I would like to propose creating two layers of Authority
Keys: L1 and L2. The L1 key would be protected strongly and used only
to sign L2 key. The L2 key would be used to sign actual keys.
Users would only validate L1 key, and L2 would become valid implicitly.
If L2 ever becomes compromised, we'd revoke it and use L1 to sign a new
key. This way, GnuPG would appropriately stop trusting old L2
and verify new L2 as valid.
Your comments? Anything I've missed?
--
Best regards,
Michał Górny
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 963 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [gentoo-project] [RFC] OpenPGP Authority Keys to provide validity of developer/service keys
2019-02-16 8:40 [gentoo-project] [RFC] OpenPGP Authority Keys to provide validity of developer/service keys Michał Górny
@ 2019-02-16 8:54 ` Toralf Förster
2019-02-17 3:08 ` Andreas K. Huettel
` (4 subsequent siblings)
5 siblings, 0 replies; 23+ messages in thread
From: Toralf Förster @ 2019-02-16 8:54 UTC (permalink / raw
To: gentoo-project
[-- Attachment #1.1: Type: text/plain, Size: 864 bytes --]
On 2/16/19 9:40 AM, Michał Górny wrote:
> Therefore, I would like to propose creating two layers of Authority
> Keys: L1 and L2. The L1 key would be protected strongly and used only
> to sign L2 key. The L2 key would be used to sign actual keys.
>
> Users would only validate L1 key, and L2 would become valid implicitly.
> If L2 ever becomes compromised, we'd revoke it and use L1 to sign a new
> key. This way, GnuPG would appropriately stop trusting old L2
> and verify new L2 as valid.
>
>
> Your comments? Anything I've missed?
This is a good idea IMO
(FWIW I think the Tor people hanlde in a similar manner the relay keys. The "L1" should be kept off-line dieally - or at least have a strong password - whilst L2 is signed by L1 valid for few weeks/months, depending on the choice of the user)
--
Toralf
PGP 23217DA7 9B888F45
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [gentoo-project] [RFC] OpenPGP Authority Keys to provide validity of developer/service keys
2019-02-16 8:40 [gentoo-project] [RFC] OpenPGP Authority Keys to provide validity of developer/service keys Michał Górny
2019-02-16 8:54 ` Toralf Förster
@ 2019-02-17 3:08 ` Andreas K. Huettel
2019-02-17 3:45 ` Aaron Bauman
` (3 subsequent siblings)
5 siblings, 0 replies; 23+ messages in thread
From: Andreas K. Huettel @ 2019-02-17 3:08 UTC (permalink / raw
To: gentoo-project; +Cc: Michał Górny
[-- Attachment #1: Type: text/plain, Size: 271 bytes --]
Am Samstag, 16. Februar 2019, 09:40:21 CET schrieb Michał Górny:
>
> Your comments? Anything I've missed?
Excellent plan, let's do it!
--
Andreas K. Hüttel
dilfridge@gentoo.org
Gentoo Linux developer
(council, toolchain, base-system, perl, libreoffice)
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [gentoo-project] [RFC] OpenPGP Authority Keys to provide validity of developer/service keys
2019-02-16 8:40 [gentoo-project] [RFC] OpenPGP Authority Keys to provide validity of developer/service keys Michał Górny
2019-02-16 8:54 ` Toralf Förster
2019-02-17 3:08 ` Andreas K. Huettel
@ 2019-02-17 3:45 ` Aaron Bauman
2019-02-17 6:56 ` Robin H. Johnson
` (2 subsequent siblings)
5 siblings, 0 replies; 23+ messages in thread
From: Aaron Bauman @ 2019-02-17 3:45 UTC (permalink / raw
To: gentoo-project
[-- Attachment #1: Type: text/plain, Size: 1451 bytes --]
On Sat, Feb 16, 2019 at 09:40:21AM +0100, Michał Górny wrote:
> Hi,
>
> Following the replies to my earlier GLEP, I'd like to separately discuss
> introducing Authority Keys to provide validity proof for @gentoo.org
> UIDs.
>
I believe you will find resistance from the usual crowd who are
advocating for key signing with validation of some form of
identification. However, I would offer that this identification
requirement does not help determine or predict intent.
Aside from that, I like the proposal and find it "meets in the middle"
of any other approaches out there. As it stands, users trust Gentoo as
a distribution and will most likely extend that trust with this process
in place.
Regarding the overall intent of keys and key signing, the goal would be
to inherently trust someone of which no ID is going to assist anyone in.
It is a perpetual process like any normal relationship and can be
altered at anytime.
This falls back on Gentoo to ensure we can trust those developers in
some form. I would offer that a potential "probationary" period be
established before that individuals key is signed by the distribution
and distributed. Possibly, it is a part of the recruitment process or
may need to be extended further. Ultimately, the recruiters and mentors
hold the line for the protection of the distribution when on-boarding new
developers.
I like it... let's do it!
--
Cheers,
Aaron
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [gentoo-project] [RFC] OpenPGP Authority Keys to provide validity of developer/service keys
2019-02-16 8:40 [gentoo-project] [RFC] OpenPGP Authority Keys to provide validity of developer/service keys Michał Górny
` (2 preceding siblings ...)
2019-02-17 3:45 ` Aaron Bauman
@ 2019-02-17 6:56 ` Robin H. Johnson
2019-02-17 8:55 ` Michał Górny
2019-02-17 19:04 ` Kristian Fiskerstrand
2019-02-18 5:23 ` Eray Aslan
5 siblings, 1 reply; 23+ messages in thread
From: Robin H. Johnson @ 2019-02-17 6:56 UTC (permalink / raw
To: gentoo-project
[-- Attachment #1: Type: text/plain, Size: 2584 bytes --]
On Sat, Feb 16, 2019 at 09:40:21AM +0100, Michał Górny wrote:
> Your comments? Anything I've missed?
Overall, strong +1 to the idea.
Some questions/remarks:
0. I will oppose any intentions to tie this proposal to the GLEP76 or other
requirements of disclosing "legal" names. I realize other developers may object
to this, but I don't believe that "legal" names in this context actually gain
us anything of value.
1. Where are non-dev users trying to verify developer keys directly at the
moment? I thought all prior work discouraged that, in favour of verifying
service keys instead. I do see this proposal being of a LOT more use in the
infra-run systems that verify incoming commits/pushes.
2. The uid signatures should NOT be naively exported to keyservers. They
should use the CAFF method of generating a uid signature, writing it to a file,
and sending it as an encrypted message to the uid address. The uid owner is
responsible for decrypt + sending to servers. This ensures that the email
address and key are still tied together.
3. As raised elsewhere on the thread, what delays should be implicit on a new
dev joining vs having their key auto-signed?
4. uid signatures cannot generally exceed the lifetime of a primary key; the L2
signing service will need to resign regularly. How will this interact with the
CAFF design above?
5. You state that the users should trust the L1 key directly. Can you clarify
your intent here to cover the trust?
The most obvious interpretation to me is trust signature of of the L2 key, with
depth=2 domain=gentoo.org [1].
[1] trust signatures domain restrictions are actually regular
expressions; but GnuPG limits the input thereof. Just answering the
query:
> Please enter a domain to restrict this signature, or enter for none.
> Your selection? gentoo.org
Actually generates:
> :signature packet: algo 22, keyid THROWAWAY
> version 4, created 1550385418, md5len 0, sigclass 0x10
> digest algo 8, begin of digest f0 e4
> hashed subpkt 33 len 21 (issuer fpr v4 THROWAWAY)
> hashed subpkt 2 len 4 (sig created 2019-02-17)
> hashed subpkt 5 len 2 (trust signature of depth 2, value 120)
> critical hashed subpkt 6 len 24 (regular expression: "<[^>]+[@.]gentoo\x5c.org>$\0")
> subpkt 16 len 8 (issuer key ID THROWAWAY)
> data: [255 bits]
> data: [256 bits]
--
Robin Hugh Johnson
Gentoo Linux: Dev, Infra Lead, Foundation Treasurer
E-Mail : robbat2@gentoo.org
GnuPG FP : 11ACBA4F 4778E3F6 E4EDF38E B27B944E 34884E85
GnuPG FP : 7D0B3CEB E9B85B1F 825BCECF EE05E6F6 A48F6136
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 1113 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [gentoo-project] [RFC] OpenPGP Authority Keys to provide validity of developer/service keys
2019-02-17 6:56 ` Robin H. Johnson
@ 2019-02-17 8:55 ` Michał Górny
2019-02-17 18:54 ` Matthew Thode
0 siblings, 1 reply; 23+ messages in thread
From: Michał Górny @ 2019-02-17 8:55 UTC (permalink / raw
To: gentoo-project
[-- Attachment #1: Type: text/plain, Size: 3173 bytes --]
On Sun, 2019-02-17 at 06:56 +0000, Robin H. Johnson wrote:
> On Sat, Feb 16, 2019 at 09:40:21AM +0100, Michał Górny wrote:
> > Your comments? Anything I've missed?
>
> Overall, strong +1 to the idea.
>
> Some questions/remarks:
> 0. I will oppose any intentions to tie this proposal to the GLEP76 or other
> requirements of disclosing "legal" names. I realize other developers may object
> to this, but I don't believe that "legal" names in this context actually gain
> us anything of value.
That's outside the scope. The key will be explicitly described
as verifying the @gentoo.org account ownership only.
> 1. Where are non-dev users trying to verify developer keys directly at the
> moment? I thought all prior work discouraged that, in favour of verifying
> service keys instead. I do see this proposal being of a LOT more use in the
> infra-run systems that verify incoming commits/pushes.
My main purpose is mail.
> 2. The uid signatures should NOT be naively exported to keyservers. They
> should use the CAFF method of generating a uid signature, writing it to a file,
> and sending it as an encrypted message to the uid address. The uid owner is
> responsible for decrypt + sending to servers. This ensures that the email
> address and key are still tied together.
That sounds like awful requirement of statefulness with requirement of
manual manipulation to me, i.e. a can of worms. Do we really need to
assume that Gentoo developers will be adding keys they can't use to
LDAP?
> 3. As raised elsewhere on the thread, what delays should be implicit on a new
> dev joining vs having their key auto-signed?
I don't see any need for delay. As soon as the user can access LDAP
and add his key, he's proven that he owns the @gentoo.org address
at the moment.
> 4. uid signatures cannot generally exceed the lifetime of a primary key; the L2
> signing service will need to resign regularly. How will this interact with the
> CAFF design above?
Adds to the 'can of worms'.
> 5. You state that the users should trust the L1 key directly. Can you clarify
> your intent here to cover the trust?
>
> The most obvious interpretation to me is trust signature of of the L2 key, with
> depth=2 domain=gentoo.org [1].
Yes, something along the lines of that.
>
> [1] trust signatures domain restrictions are actually regular
> expressions; but GnuPG limits the input thereof. Just answering the
> query:
> > Please enter a domain to restrict this signature, or enter for none.
> > Your selection? gentoo.org
>
> Actually generates:
> > :signature packet: algo 22, keyid THROWAWAY
> > version 4, created 1550385418, md5len 0, sigclass 0x10
> > digest algo 8, begin of digest f0 e4
> > hashed subpkt 33 len 21 (issuer fpr v4 THROWAWAY)
> > hashed subpkt 2 len 4 (sig created 2019-02-17)
> > hashed subpkt 5 len 2 (trust signature of depth 2, value 120)
> > critical hashed subpkt 6 len 24 (regular expression: "<[^>]+[@.]gentoo\x5c.org>$\0")
> > subpkt 16 len 8 (issuer key ID THROWAWAY)
> > data: [255 bits]
> > data: [256 bits]
>
>
--
Best regards,
Michał Górny
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 963 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [gentoo-project] [RFC] OpenPGP Authority Keys to provide validity of developer/service keys
2019-02-17 8:55 ` Michał Górny
@ 2019-02-17 18:54 ` Matthew Thode
2019-02-17 19:03 ` Kristian Fiskerstrand
2019-02-18 13:22 ` Michał Górny
0 siblings, 2 replies; 23+ messages in thread
From: Matthew Thode @ 2019-02-17 18:54 UTC (permalink / raw
To: gentoo-project
[-- Attachment #1: Type: text/plain, Size: 1073 bytes --]
On 19-02-17 09:55:54, Michał Górny wrote:
> On Sun, 2019-02-17 at 06:56 +0000, Robin H. Johnson wrote:
> > On Sat, Feb 16, 2019 at 09:40:21AM +0100, Michał Górny wrote:
>
> > 2. The uid signatures should NOT be naively exported to keyservers. They
> > should use the CAFF method of generating a uid signature, writing it to a file,
> > and sending it as an encrypted message to the uid address. The uid owner is
> > responsible for decrypt + sending to servers. This ensures that the email
> > address and key are still tied together.
>
> That sounds like awful requirement of statefulness with requirement of
> manual manipulation to me, i.e. a can of worms. Do we really need to
> assume that Gentoo developers will be adding keys they can't use to
> LDAP?
>
It could also be a bad actor, though that comes with other concerns.
The CAFF method is the standard way of handling signatures, switching to
ldap also switches our trust store to be based on ldap, not developer
keys (anything can be in ldap).
--
Matthew Thode (prometheanfire)
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [gentoo-project] [RFC] OpenPGP Authority Keys to provide validity of developer/service keys
2019-02-17 18:54 ` Matthew Thode
@ 2019-02-17 19:03 ` Kristian Fiskerstrand
2019-02-18 13:22 ` Michał Górny
1 sibling, 0 replies; 23+ messages in thread
From: Kristian Fiskerstrand @ 2019-02-17 19:03 UTC (permalink / raw
To: gentoo-project, Matthew Thode
[-- Attachment #1.1: Type: text/plain, Size: 1453 bytes --]
On 2/17/19 7:54 PM, Matthew Thode wrote:
> On 19-02-17 09:55:54, Michał Górny wrote:
>> On Sun, 2019-02-17 at 06:56 +0000, Robin H. Johnson wrote:
>>> On Sat, Feb 16, 2019 at 09:40:21AM +0100, Michał Górny wrote:
>>> 2. The uid signatures should NOT be naively exported to keyservers. They
>>> should use the CAFF method of generating a uid signature, writing it to a file,
>>> and sending it as an encrypted message to the uid address. The uid owner is
>>> responsible for decrypt + sending to servers. This ensures that the email
>>> address and key are still tied together.
>> That sounds like awful requirement of statefulness with requirement of
>> manual manipulation to me, i.e. a can of worms. Do we really need to
>> assume that Gentoo developers will be adding keys they can't use to
>> LDAP?
>>
> It could also be a bad actor, though that comes with other concerns.
> The CAFF method is the standard way of handling signatures, switching to
> ldap also switches our trust store to be based on ldap, not developer
> keys (anything can be in ldap).
Different threat models, if you assume the malicious actor can edit the
fingerprint in LDAP to begin with they have access to the email itself,
and we control the email address since only the @gentoo.org UID is signed.
--
Kristian Fiskerstrand
OpenPGP keyblock reachable at hkp://pool.sks-keyservers.net
fpr:94CB AFDD 3034 5109 5618 35AA 0B7F 8B60 E3ED FAE3
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [gentoo-project] [RFC] OpenPGP Authority Keys to provide validity of developer/service keys
2019-02-16 8:40 [gentoo-project] [RFC] OpenPGP Authority Keys to provide validity of developer/service keys Michał Górny
` (3 preceding siblings ...)
2019-02-17 6:56 ` Robin H. Johnson
@ 2019-02-17 19:04 ` Kristian Fiskerstrand
2019-02-18 5:23 ` Eray Aslan
5 siblings, 0 replies; 23+ messages in thread
From: Kristian Fiskerstrand @ 2019-02-17 19:04 UTC (permalink / raw
To: gentoo-project, Michał Górny
[-- Attachment #1.1: Type: text/plain, Size: 290 bytes --]
On 2/16/19 9:40 AM, Michał Górny wrote:
> Your comments? Anything I've missed?
As discussed previously I believe this is a good idea.
--
Kristian Fiskerstrand
OpenPGP keyblock reachable at hkp://pool.sks-keyservers.net
fpr:94CB AFDD 3034 5109 5618 35AA 0B7F 8B60 E3ED FAE3
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [gentoo-project] [RFC] OpenPGP Authority Keys to provide validity of developer/service keys
2019-02-16 8:40 [gentoo-project] [RFC] OpenPGP Authority Keys to provide validity of developer/service keys Michał Górny
` (4 preceding siblings ...)
2019-02-17 19:04 ` Kristian Fiskerstrand
@ 2019-02-18 5:23 ` Eray Aslan
5 siblings, 0 replies; 23+ messages in thread
From: Eray Aslan @ 2019-02-18 5:23 UTC (permalink / raw
To: gentoo-project
On Sat, Feb 16, 2019 at 09:40:21AM +0100, Michał Górny wrote:
> Therefore, I would like to propose creating two layers of Authority
> Keys: L1 and L2. The L1 key would be protected strongly and used only
> to sign L2 key. The L2 key would be used to sign actual keys.
Good idea. DNSSEC uses a similar method with KSK (key signing keys) and
ZSK (zone signing keys).
> Your comments? Anything I've missed?
Problems usually arise when doing key rollovers. Good automation and
lots of testing would be prudent before going live.
--
Eray
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [gentoo-project] [RFC] OpenPGP Authority Keys to provide validity of developer/service keys
2019-02-17 18:54 ` Matthew Thode
2019-02-17 19:03 ` Kristian Fiskerstrand
@ 2019-02-18 13:22 ` Michał Górny
2019-02-19 19:47 ` Robin H. Johnson
1 sibling, 1 reply; 23+ messages in thread
From: Michał Górny @ 2019-02-18 13:22 UTC (permalink / raw
To: gentoo-project
[-- Attachment #1: Type: text/plain, Size: 3503 bytes --]
On Sun, 2019-02-17 at 12:54 -0600, Matthew Thode wrote:
> On 19-02-17 09:55:54, Michał Górny wrote:
> > On Sun, 2019-02-17 at 06:56 +0000, Robin H. Johnson wrote:
> > > On Sat, Feb 16, 2019 at 09:40:21AM +0100, Michał Górny wrote:
> > > 2. The uid signatures should NOT be naively exported to keyservers. They
> > > should use the CAFF method of generating a uid signature, writing it to a file,
> > > and sending it as an encrypted message to the uid address. The uid owner is
> > > responsible for decrypt + sending to servers. This ensures that the email
> > > address and key are still tied together.
> >
> > That sounds like awful requirement of statefulness with requirement of
> > manual manipulation to me, i.e. a can of worms. Do we really need to
> > assume that Gentoo developers will be adding keys they can't use to
> > LDAP?
> >
>
> It could also be a bad actor, though that comes with other concerns.
> The CAFF method is the standard way of handling signatures, switching to
> ldap also switches our trust store to be based on ldap, not developer
> keys (anything can be in ldap).
>
As Kristian named it, could you please explain to me what specific
threat model does this address?
AFAIU the main purpose of the caff model is to verify that the person
whose key you are signing can access the particular e-mail address.
Which certainly makes sense when you are signing an arbitrary key.
However, I don't really see how that's relevant here, and I'd rather
not add needless complexity based on cargo cult imitation of caff.
In our case, the key fingerprint comes from LDAP, and is directly bound
to the particular username, therefore mailbox. I don't really see it
a likely case that someone would be able to edit developer's LDAP
attributes but at the same time be unable to access his mailbox.
In other words, as I see it, the caff model can help if:
1) someone manages to compromise LDAP without compromising e-mail
service,
2) a developer accidentally puts the wrong fingerprint in LDAP,
3) a developer has broken e-mail setup,
4) a developer is inactive.
I think cases 1)-3) are rather unlikely, and 2)-3) belong to
the 'wrong place to solve the problem' category. 4) practically relies
on making an assumption that we don't want users to trust developers who
aren't active enough to add this signature.
The other side of this is added complexity on the scripting side, for
a start. We need to store to whom we sent signatures to avoid resending
them over and over again. Then, we need to able to force resending if
the developer lost the mail for some reason.
Finally, there will be at least a few developers who won't be covered by
this because they won't care enough to add the signature to their key.
My original goal was to cover all active developers because users might
have their reasons to contact any of the developers, and I don't see any
reason to exclude anyone from this. It's not equivalent to giving
people access to any system, privileges to perform any specific action.
It's mostly about confirming which OpenPGP key should be used to send
mail to a particular e-mail address. The same as if you went to
the developer listing and checked key IDs there, except more automated
and using a single authority key rather than PKI for verification
(though at least initially the authority key would itself be verified
against PKI).
--
Best regards,
Michał Górny
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 963 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [gentoo-project] [RFC] OpenPGP Authority Keys to provide validity of developer/service keys
2019-02-18 13:22 ` Michał Górny
@ 2019-02-19 19:47 ` Robin H. Johnson
2019-02-19 20:01 ` Michał Górny
0 siblings, 1 reply; 23+ messages in thread
From: Robin H. Johnson @ 2019-02-19 19:47 UTC (permalink / raw
To: gentoo-project
[-- Attachment #1: Type: text/plain, Size: 4418 bytes --]
On Mon, Feb 18, 2019 at 02:22:56PM +0100, Michał Górny wrote:
> > It could also be a bad actor, though that comes with other concerns.
> > The CAFF method is the standard way of handling signatures, switching to
> > ldap also switches our trust store to be based on ldap, not developer
> > keys (anything can be in ldap).
> >
>
> As Kristian named it, could you please explain to me what specific
> threat model does this address?
>
> AFAIU the main purpose of the caff model is to verify that the person
> whose key you are signing can access the particular e-mail address.
> Which certainly makes sense when you are signing an arbitrary key.
> However, I don't really see how that's relevant here, and I'd rather
> not add needless complexity based on cargo cult imitation of caff.
>
> In our case, the key fingerprint comes from LDAP, and is directly bound
> to the particular username, therefore mailbox. I don't really see it
> a likely case that someone would be able to edit developer's LDAP
> attributes but at the same time be unable to access his mailbox.
>
> In other words, as I see it, the caff model can help if:
Thanks for expounding on the list of issues. I think this covers
all/most of the cases I had in my head.
> 1) someone manages to compromise LDAP without compromising e-mail
> service,
- Compromising email has a couple of routes:
1. Getting into dev.gentoo.org (SSH creds).
Either lets you see mail directly there, or edit the forward.
OR
2. If a dev has their mail forwarded, you can also compromise
somewhere else in the forwarding chain.
- Compromising LDAP requires:
1. A shell in a larger set of machines (need SSH creds to any user on hosts that are LDAP clients)
AND
2. A LDAP password with suitable power (note that the SSH creds and
LDAP password could be from different compromised users), which means
either the target, or the LDAP password of somebody in
comrel/recruiters/infra.
> 2) a developer accidentally puts the wrong fingerprint in LDAP,
This has happened before; esp w/ devs putting subkeys into LDAP. If not
in-band with this proposal (e.g. CAFF), can we see some other validation
for the keys?
> 3) a developer has broken e-mail setup,
>
> 4) a developer is inactive.
>
> I think cases 1)-3) are rather unlikely, and 2)-3) belong to
> the 'wrong place to solve the problem' category. 4) practically relies
> on making an assumption that we don't want users to trust developers who
> aren't active enough to add this signature.
3) would be good to detect on the less-active devs, and gives good
life-signs to undertakers.
> The other side of this is added complexity on the scripting side, for
> a start. We need to store to whom we sent signatures to avoid resending
> them over and over again. Then, we need to able to force resending if
> the developer lost the mail for some reason.
Save the signature to a file, email the file, retain the file for
record-keeping, resend the file until they do something about it. I
think the CAFF codebase does already support this variant to not
regenerate pending signatures.
> Finally, there will be at least a few developers who won't be covered by
> this because they won't care enough to add the signature to their key.
>
> My original goal was to cover all active developers because users might
> have their reasons to contact any of the developers, and I don't see any
> reason to exclude anyone from this. It's not equivalent to giving
> people access to any system, privileges to perform any specific action.
Users sending mail to an unverified key seems like a concern to me.
> It's mostly about confirming which OpenPGP key should be used to send
> mail to a particular e-mail address. The same as if you went to
> the developer listing and checked key IDs there, except more automated
> and using a single authority key rather than PKI for verification
> (though at least initially the authority key would itself be verified
> against PKI).
Related codepath not discussed yet:
- detect keys REMOVED from ldap and generate revoke of signature on those.
--
Robin Hugh Johnson
Gentoo Linux: Dev, Infra Lead, Foundation Treasurer
E-Mail : robbat2@gentoo.org
GnuPG FP : 11ACBA4F 4778E3F6 E4EDF38E B27B944E 34884E85
GnuPG FP : 7D0B3CEB E9B85B1F 825BCECF EE05E6F6 A48F6136
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 1113 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [gentoo-project] [RFC] OpenPGP Authority Keys to provide validity of developer/service keys
2019-02-19 19:47 ` Robin H. Johnson
@ 2019-02-19 20:01 ` Michał Górny
2019-02-19 20:16 ` Rich Freeman
0 siblings, 1 reply; 23+ messages in thread
From: Michał Górny @ 2019-02-19 20:01 UTC (permalink / raw
To: gentoo-project
[-- Attachment #1: Type: text/plain, Size: 5970 bytes --]
On Tue, 2019-02-19 at 19:47 +0000, Robin H. Johnson wrote:
> On Mon, Feb 18, 2019 at 02:22:56PM +0100, Michał Górny wrote:
> > > It could also be a bad actor, though that comes with other concerns.
> > > The CAFF method is the standard way of handling signatures, switching to
> > > ldap also switches our trust store to be based on ldap, not developer
> > > keys (anything can be in ldap).
> > >
> >
> > As Kristian named it, could you please explain to me what specific
> > threat model does this address?
> >
> > AFAIU the main purpose of the caff model is to verify that the person
> > whose key you are signing can access the particular e-mail address.
> > Which certainly makes sense when you are signing an arbitrary key.
> > However, I don't really see how that's relevant here, and I'd rather
> > not add needless complexity based on cargo cult imitation of caff.
> >
> > In our case, the key fingerprint comes from LDAP, and is directly bound
> > to the particular username, therefore mailbox. I don't really see it
> > a likely case that someone would be able to edit developer's LDAP
> > attributes but at the same time be unable to access his mailbox.
> >
> > In other words, as I see it, the caff model can help if:
>
> Thanks for expounding on the list of issues. I think this covers
> all/most of the cases I had in my head.
>
> > 1) someone manages to compromise LDAP without compromising e-mail
> > service,
>
> - Compromising email has a couple of routes:
> 1. Getting into dev.gentoo.org (SSH creds).
> Either lets you see mail directly there, or edit the forward.
Also note that this would also happen if one of infra members'
credentials + sudo password leaked.
> OR
> 2. If a dev has their mail forwarded, you can also compromise
> somewhere else in the forwarding chain.
> - Compromising LDAP requires:
> 1. A shell in a larger set of machines (need SSH creds to any user on hosts that are LDAP clients)
> AND
> 2. A LDAP password with suitable power (note that the SSH creds and
> LDAP password could be from different compromised users), which means
> either the target, or the LDAP password of somebody in
> comrel/recruiters/infra.
>
> > 2) a developer accidentally puts the wrong fingerprint in LDAP,
>
> This has happened before; esp w/ devs putting subkeys into LDAP. If not
> in-band with this proposal (e.g. CAFF), can we see some other validation
> for the keys?
I think the simplest verification would be to verify that
the corresponding key has appropriate @gentoo.org UID. If it doesn't,
there will be no UID to sign anyway, so it wouldn't harm the process.
> > 3) a developer has broken e-mail setup,
> >
> > 4) a developer is inactive.
> >
> > I think cases 1)-3) are rather unlikely, and 2)-3) belong to
> > the 'wrong place to solve the problem' category. 4) practically relies
> > on making an assumption that we don't want users to trust developers who
> > aren't active enough to add this signature.
>
> 3) would be good to detect on the less-active devs, and gives good
> life-signs to undertakers.
Maybe. However, we're practically talking about one-time check here.
Once the key is initially signed (and if the developer ignores GLEP 63
expiration suggestions), there will be no reason to mail him again.
> > The other side of this is added complexity on the scripting side, for
> > a start. We need to store to whom we sent signatures to avoid resending
> > them over and over again. Then, we need to able to force resending if
> > the developer lost the mail for some reason.
>
> Save the signature to a file, email the file, retain the file for
> record-keeping, resend the file until they do something about it. I
> think the CAFF codebase does already support this variant to not
> regenerate pending signatures.
>
> > Finally, there will be at least a few developers who won't be covered by
> > this because they won't care enough to add the signature to their key.
> >
> > My original goal was to cover all active developers because users might
> > have their reasons to contact any of the developers, and I don't see any
> > reason to exclude anyone from this. It's not equivalent to giving
> > people access to any system, privileges to perform any specific action.
>
> Users sending mail to an unverified key seems like a concern to me.
Gentoo developer would argue that a key is unverified if they make
commits with it. Maybe we could use that as some kind of implicit
metric.
>
> > It's mostly about confirming which OpenPGP key should be used to send
> > mail to a particular e-mail address. The same as if you went to
> > the developer listing and checked key IDs there, except more automated
> > and using a single authority key rather than PKI for verification
> > (though at least initially the authority key would itself be verified
> > against PKI).
>
> Related codepath not discussed yet:
> - detect keys REMOVED from ldap and generate revoke of signature on those.
>
Actually, I had thought of that and the demo implementation [1] supports
that already. Basically, it compares list of fpr+uid from LDAP with
UIDs trusted on locally known keys (provided that new keys and updates
are fetched but old keys aren't removed). If new fpr+uid is added to
LDAP, the diff causes it to be signed. If fpr+uid disappears from LDAP,
the diff causes signature to be revoked.
This has a corner case/bug that if we revoke a signature, gpg normally
doesn't let us sign the same uid again. However, this is rather rare
(would happen either for returning devs or because of script bugs)
and we can circumvent it manually by removing the old signature (then
gpg lets us sign again, and the new signature works fine afterwards).
[1]:https://github.com/mgorny/gentoo-authority-key
--
Best regards,
Michał Górny
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 963 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [gentoo-project] [RFC] OpenPGP Authority Keys to provide validity of developer/service keys
2019-02-19 20:01 ` Michał Górny
@ 2019-02-19 20:16 ` Rich Freeman
2019-02-19 21:54 ` Alec Warner
2019-02-23 7:46 ` Michał Górny
0 siblings, 2 replies; 23+ messages in thread
From: Rich Freeman @ 2019-02-19 20:16 UTC (permalink / raw
To: gentoo-project
On Tue, Feb 19, 2019 at 3:01 PM Michał Górny <mgorny@gentoo.org> wrote:
>
> On Tue, 2019-02-19 at 19:47 +0000, Robin H. Johnson wrote:
> >
> > 3) would be good to detect on the less-active devs, and gives good
> > life-signs to undertakers.
>
> Maybe. However, we're practically talking about one-time check here.
> Once the key is initially signed (and if the developer ignores GLEP 63
> expiration suggestions), there will be no reason to mail him again.
Until now this has seemed like something that didn't require any
manual developer participation.
Now it is sounding like a proposal that both requires manual
participation, and may also require manual updating, to avoid
undertaking.
It seems like it would make far more sense to look at other direct
measures of activity than how up-to-date their gpg key is in the
keyservers.
Also, as far as I'm aware GLEP 63 does not require an encryption key
at all, just a signing key. I'm not sure if such signing-keys will be
signed by Gentoo under this proposal. If not then there is nothing to
upload to the keyserver, and in any case it seems like the main use
case of this (sending encrypted email) would not apply. Of course it
could still be used for verifying email signatures if we sign
signing-only keys.
--
Rich
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [gentoo-project] [RFC] OpenPGP Authority Keys to provide validity of developer/service keys
2019-02-19 20:16 ` Rich Freeman
@ 2019-02-19 21:54 ` Alec Warner
2019-02-19 23:21 ` Rich Freeman
2019-02-23 7:57 ` Michał Górny
2019-02-23 7:46 ` Michał Górny
1 sibling, 2 replies; 23+ messages in thread
From: Alec Warner @ 2019-02-19 21:54 UTC (permalink / raw
To: gentoo-project
[-- Attachment #1: Type: text/plain, Size: 3230 bytes --]
On Tue, Feb 19, 2019 at 3:16 PM Rich Freeman <rich0@gentoo.org> wrote:
> On Tue, Feb 19, 2019 at 3:01 PM Michał Górny <mgorny@gentoo.org> wrote:
> >
> > On Tue, 2019-02-19 at 19:47 +0000, Robin H. Johnson wrote:
> > >
> > > 3) would be good to detect on the less-active devs, and gives good
> > > life-signs to undertakers.
> >
> > Maybe. However, we're practically talking about one-time check here.
> > Once the key is initially signed (and if the developer ignores GLEP 63
> > expiration suggestions), there will be no reason to mail him again.
>
> Until now this has seemed like something that didn't require any
> manual developer participation.
>
> Now it is sounding like a proposal that both requires manual
> participation, and may also require manual updating, to avoid
> undertaking.
The authority scheme is *already* in use today. We currently allow any FP
in LDAP with an @gentoo.org address to commit. This proposal just
standardizes it using existing tooling so that users can consume the trust
graph easily. The base proposal doesn't change any of the rules, just the
implementation; to make it *easier* for end users to use the authority
scheme. This is a net good for Gentoo, IMHO, as we should use and adopt
standards of the time. Our current authority scheme doesn't use CAFF and
does not verify gpg fingerprints in LDAP.
CAFF addresses a deficiency in the current system. Currently we don't
validate control over fingerprints in LDAP. This means once an attacker
gains LDAP access, they only need to add a key fingerprint to an LDAP
record in order to get their commits through the GPG verification process.
With CAFF, the attacker has more work to do because CAFF will make the
attacker show ownership of the private portion of the keypair before we
grant it authority. This has some benefit as it makes it more likely for
the attacker to make a mistake and get caught, or leave a trail for us to
find. If they fail CAFF (e.g. use the wrong key) or commit without a CAFF
key, we can use those as signals to detect tampering and intrusion.
I consider CAFF to be important (as something we should do) but not a
requirement (something we must do in order) in this implementation of the
authority scheme.
>
> It seems like it would make far more sense to look at other direct
> measures of activity than how up-to-date their gpg key is in the
> keyservers.
>
I'm bad at GPG. However, I believe updating my keys to adapt to the policy
took me about 30 minutes. Its required once every 12 months.
Where should we set the bar here, if not "please contribute at least 30
minutes every year to retain your developership."
> Also, as far as I'm aware GLEP 63 does not require an encryption key
> at all, just a signing key. I'm not sure if such signing-keys will be
> signed by Gentoo under this proposal. If not then there is nothing to
> upload to the keyserver, and in any case it seems like the main use
> case of this (sending encrypted email) would not apply. Of course it
> could still be used for verifying email signatures if we sign
> signing-only keys.
>
This does seem like a gap.
-A
>
> --
> Rich
>
>
[-- Attachment #2: Type: text/html, Size: 4509 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [gentoo-project] [RFC] OpenPGP Authority Keys to provide validity of developer/service keys
2019-02-19 21:54 ` Alec Warner
@ 2019-02-19 23:21 ` Rich Freeman
2019-02-23 7:57 ` Michał Górny
1 sibling, 0 replies; 23+ messages in thread
From: Rich Freeman @ 2019-02-19 23:21 UTC (permalink / raw
To: gentoo-project
On Tue, Feb 19, 2019 at 4:54 PM Alec Warner <antarus@gentoo.org> wrote:
> On Tue, Feb 19, 2019 at 3:16 PM Rich Freeman <rich0@gentoo.org> wrote:
>>
>> Now it is sounding like a proposal that both requires manual
>> participation, and may also require manual updating, to avoid
>> undertaking.
>
>
> The authority scheme is *already* in use today.
I'm referring to the need to do CAFF, not the need to have a gpg key in LDAP.
> With CAFF, the attacker has more work to do because CAFF will make
> the attacker show ownership of the private portion of the keypair
> before we grant it authority. This has some benefit as it makes it
> more likely for the attacker to make a mistake and get caught, or
> leave a trail for us to find. If they fail CAFF (e.g. use the wrong
> key) or commit without a CAFF key, we can use those as signals to
> detect tampering and intrusion.
Why would an attacker replace a key in LDAP with one they don't control?
If they control LDAP, then they control the @gentoo.org email address
already, should they exercise this control. That means they can
redirect the email, change the key, obtain their signature, and upload
their signature. That is more steps, but not more security.
>> It seems like it would make far more sense to look at other direct
>> measures of activity than how up-to-date their gpg key is in the
>> keyservers.
>
> I'm bad at GPG. However, I believe updating my keys to adapt to the policy took me about 30 minutes. Its required once every 12 months.
Updating your keys is a one-liner with a shell script. It doesn't not
require messing with emails. Sure, shell-scripting email isn't
impossible, but I don't see what value it adds.
You can already test whether devs are updating their gpg keys or not
without messing with CAFF.
>
> Where should we set the bar here, if not "please contribute at least 30 minutes every year to retain your developership."
How about doing ACTUAL activity? Not make-work?
If somebody is actually doing commits in the tree, you know they're
active and don't need them to jump through some additional hoops.
And of course there are other types of activity where git signing keys
aren't needed, and thus those hoops don't even add value in the first
place, and where that other activity could be measured (number of
forum logins/posts/whatevers, and so on).
>
>>
>> Also, as far as I'm aware GLEP 63 does not require an encryption key
>> at all, just a signing key. I'm not sure if such signing-keys will be
>> signed by Gentoo under this proposal. If not then there is nothing to
>> upload to the keyserver, and in any case it seems like the main use
>> case of this (sending encrypted email) would not apply. Of course it
>> could still be used for verifying email signatures if we sign
>> signing-only keys.
>
> This does seem like a gap.
>
Only if you make it into one. If some dev has zero interest in
receiving gpg-encrypted mail, encouraging people to gpg-encrypt mail
to them just means that their mail goes to /dev/null, especially if
they have their mail clients configured to auto-encrypt stuff.
I mean, if I'm in infra and somebody needs to mail me the root keys to
some box I can see the point in it, but 99% of what would get
encrypted is stuff that could probably get by just being clear signed.
--
Rich
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [gentoo-project] [RFC] OpenPGP Authority Keys to provide validity of developer/service keys
2019-02-19 20:16 ` Rich Freeman
2019-02-19 21:54 ` Alec Warner
@ 2019-02-23 7:46 ` Michał Górny
2019-02-23 13:38 ` Rich Freeman
2019-02-23 16:30 ` Alec Warner
1 sibling, 2 replies; 23+ messages in thread
From: Michał Górny @ 2019-02-23 7:46 UTC (permalink / raw
To: gentoo-project
[-- Attachment #1: Type: text/plain, Size: 851 bytes --]
On Tue, 2019-02-19 at 15:16 -0500, Rich Freeman wrote:
> Also, as far as I'm aware GLEP 63 does not require an encryption key
> at all, just a signing key. I'm not sure if such signing-keys will be
> signed by Gentoo under this proposal. If not then there is nothing to
> upload to the keyserver, and in any case it seems like the main use
> case of this (sending encrypted email) would not apply. Of course it
> could still be used for verifying email signatures if we sign
> signing-only keys.
If someone really believes it's fine to have no encryption subkey just
because the GLEP doesn't require one explicitly... It either means that
person is seriously lacking the technical competence, or is a horrible
troll. In either case, I don't believe such a person should be a Gentoo
developer.
--
Best regards,
Michał Górny
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 963 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [gentoo-project] [RFC] OpenPGP Authority Keys to provide validity of developer/service keys
2019-02-19 21:54 ` Alec Warner
2019-02-19 23:21 ` Rich Freeman
@ 2019-02-23 7:57 ` Michał Górny
1 sibling, 0 replies; 23+ messages in thread
From: Michał Górny @ 2019-02-23 7:57 UTC (permalink / raw
To: gentoo-project
[-- Attachment #1: Type: text/plain, Size: 1698 bytes --]
On Tue, 2019-02-19 at 16:54 -0500, Alec Warner wrote:
> > It seems like it would make far more sense to look at other direct
> > measures of activity than how up-to-date their gpg key is in the
> > keyservers.
> >
>
> I'm bad at GPG. However, I believe updating my keys to adapt to the policy
> took me about 30 minutes. Its required once every 12 months.
>
> Where should we set the bar here, if not "please contribute at least 30
> minutes every year to retain your developership."
>
There are a few problems here.
Firstly, we have a fair share of developers who don't follow any news,
and just do little Gentoo in their little corner. You need to find
a way to communicate this new requirement to them. They will be
probably outraged they have to do yet another thing to stay developers.
Secondly, retiring developers is a nasty business. Imagine people who
haven't done anything in N years, ignore retirement mail and then insult
us that we didn't go out of our way to discover they've lost access to
their Gentoo account years ago and never bothered to ask for reinstating
it. Now imagine what we're going to get for dare trying to retire
someone who ignored a few CAFF mails. Or retiring the same person after
it ignored all the retirement mail.
Thirdly, as I said, it introduces operation gaps. My original goal is
to make it possible for users to mail devs anytime. It's not going to
be nice to have gaps of one week between old signature expiring
and developer getting around to publish a new one. Not to mention
the obvious failure of importing the signature and forgetting to send it
to keyservers.
--
Best regards,
Michał Górny
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 963 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [gentoo-project] [RFC] OpenPGP Authority Keys to provide validity of developer/service keys
2019-02-23 7:46 ` Michał Górny
@ 2019-02-23 13:38 ` Rich Freeman
2019-02-23 16:30 ` Alec Warner
1 sibling, 0 replies; 23+ messages in thread
From: Rich Freeman @ 2019-02-23 13:38 UTC (permalink / raw
To: gentoo-project
On Sat, Feb 23, 2019 at 2:46 AM Michał Górny <mgorny@gentoo.org> wrote:
>
> On Tue, 2019-02-19 at 15:16 -0500, Rich Freeman wrote:
> > Also, as far as I'm aware GLEP 63 does not require an encryption key
> > at all, just a signing key. I'm not sure if such signing-keys will be
> > signed by Gentoo under this proposal. If not then there is nothing to
> > upload to the keyserver, and in any case it seems like the main use
> > case of this (sending encrypted email) would not apply. Of course it
> > could still be used for verifying email signatures if we sign
> > signing-only keys.
>
> If someone really believes it's fine to have no encryption subkey just
> because the GLEP doesn't require one explicitly... It either means that
> person is seriously lacking the technical competence, or is a horrible
> troll. In either case, I don't believe such a person should be a Gentoo
> developer.
The reason we write policies down is so that we can follow them.
I have a signing-only key, which I think was created following some
published procedure at the time. I see a newer wiki article on the
subject that talks about creating a Gentoo key and it mentions that
creating an encryption subkey is recommended, though it does not say
it is required (which is correct).
In any case, if we want everybody to have an encryption subkey, then
just make it part of the GLEP. No trolling is intended, at least for
my part.
My Gentoo commit signing key is not used for anything else. I
generate it to follow the requirements of the GLEP, and it is designed
to be throw-away so that if the GLEP changes I can just roll up a new
key anytime. I have no need to receive encrypted email using this
key, so it isn't set up. Decrypting mail sent to me would be a pain
since I don't use a gpg-aware MUA, so I really don't want to do
anything to encourage people to send me encrypted mail. However, I
think I have my Gentoo email address on my regular gpg key that is
part of the strong set and it allows encryption. It isn't in LDAP so
it wouldn't be signed using the proposed scheme.
BTW, I'll also note that the guidelines for creating keys requires
modification to gpg config vs just using command line options. That
seems like a rather painful way of making Gentoo-specific keys. I
think I ended up just setting up a container for Gentoo key generation
so that I could just meet whatever specific requirements are set out
and not interfere with the real world. Maybe one of these days I'll
get around to shell-scripting the entire process so that instead of
extending key expiry I can just revoke my old key, generate a new key,
put it in LDAP, add it to my regular keyring, and update make.conf.
On a side note I will note that gpg is a bit annoying in its
interactivity when it comes to key manipulation.
--
Rich
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [gentoo-project] [RFC] OpenPGP Authority Keys to provide validity of developer/service keys
2019-02-23 7:46 ` Michał Górny
2019-02-23 13:38 ` Rich Freeman
@ 2019-02-23 16:30 ` Alec Warner
2019-02-23 16:52 ` Rich Freeman
2019-02-23 17:08 ` Michał Górny
1 sibling, 2 replies; 23+ messages in thread
From: Alec Warner @ 2019-02-23 16:30 UTC (permalink / raw
To: gentoo-project
[-- Attachment #1: Type: text/plain, Size: 1650 bytes --]
On Sat, Feb 23, 2019 at 2:46 AM Michał Górny <mgorny@gentoo.org> wrote:
> On Tue, 2019-02-19 at 15:16 -0500, Rich Freeman wrote:
> > Also, as far as I'm aware GLEP 63 does not require an encryption key
> > at all, just a signing key. I'm not sure if such signing-keys will be
> > signed by Gentoo under this proposal. If not then there is nothing to
> > upload to the keyserver, and in any case it seems like the main use
> > case of this (sending encrypted email) would not apply. Of course it
> > could still be used for verifying email signatures if we sign
> > signing-only keys.
>
> If someone really believes it's fine to have no encryption subkey just
> because the GLEP doesn't require one explicitly... It either means that
> person is seriously lacking the technical competence, or is a horrible
> troll. In either case, I don't believe such a person should be a Gentoo
> developer.
>
- Why does setting up GPG to receive encrypted messages imply technical
competence?
- As rich noted, most people have no idea how GPG works and they just do
whatever they are instructed to do. I don't think a lack of knowledge of
GPG indicates "being a troll" nor "lack of technical competence." Its a
terribly designed piece of software from a usability perspective. I
understand its a complex space (as many security domains are) but I'm not
sure the right way to proceed is to force everyone to learn the inner
workings of the space. The goal should be to create a system where users
don't have to know all the details but still get a good security value.
-A
>
> --
> Best regards,
> Michał Górny
>
[-- Attachment #2: Type: text/html, Size: 2268 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [gentoo-project] [RFC] OpenPGP Authority Keys to provide validity of developer/service keys
2019-02-23 16:30 ` Alec Warner
@ 2019-02-23 16:52 ` Rich Freeman
2019-02-23 17:08 ` Michał Górny
1 sibling, 0 replies; 23+ messages in thread
From: Rich Freeman @ 2019-02-23 16:52 UTC (permalink / raw
To: gentoo-project
On Sat, Feb 23, 2019 at 11:30 AM Alec Warner <antarus@gentoo.org> wrote:
>
> - As rich noted, most people have no idea how GPG works and they
> just do whatever they are instructed to do. I don't think a lack of
> knowledge of GPG indicates "being a troll" nor "lack of technical
> competence."
I wasn't even arguing ignorance. I've been using PGP since the days
when I had to jump through hoops to get around the ITAR restrictions.
I don't follow the Gentoo instructions because I don't know how to use
gpg. I follow them because the GLEP has a stack of requirements for
how a Gentoo gpg key ought to be set up, and since I have no intention
of ever using the key for anything else, there is no reason to waste
time tailoring it to my own needs. It is no different from my company
laptop - I configure it however they want me to and don't use it for
anything personal. That isn't because I don't know how to use gmail
or Facebook or whatever on it, but simply because it makes no sense
for me to get frustrated with whatever the IT policy is of the day
when a laptop starts at $120 these days and I can just use my own, and
I have independent internet anywhere I go.
Likewise the reason I don't sign my email isn't because I don't know
how thunderbird/kmail/whatever works. It is because there isn't much
intersection between MUAs that fit how I actually access email these
days and MUAs that can securely access my key. If my Gentoo email
workflow required a more gpg-centric workflow then I'd set up a
separate email account just for Gentoo, use Thunderbird or whatever
with it on a single desktop, and not look at it much except when I had
to. Or maybe if it were supported I'd use a different key for email
so that I wouldn't need to go sticking my commit-signing key on every
phone/laptop/whatever I use where it could get compromised and end up
with some poor soul getting rooted, and I could be more liberal with
the email key. Really though I suspect that some of the newer
x509-based protocols are better-supported by email clients.
I've been involved with Gentoo in one way or another for approaching
15 years and in all that time I think I've had to use gpg for
something other than commit-signing maybe once or twice. Nothing
wrong with using it, and I accept that some roles might require it
more often, but it seems a bit overkill to invest a ton of time in
secure email for an organization that almost never needs secure email.
No trolling intended. I just don't see the point. If it were
required then I would comply. I completely get the spirit vs the
letter of the rules, but IMO this doesn't fall under either. As far
as I can tell there was never any intent to require an email signing
subkey, and this was not a mere accidental omission, at least not on
the part of the majority of council members who voted for the policy.
--
Rich
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [gentoo-project] [RFC] OpenPGP Authority Keys to provide validity of developer/service keys
2019-02-23 16:30 ` Alec Warner
2019-02-23 16:52 ` Rich Freeman
@ 2019-02-23 17:08 ` Michał Górny
2019-02-23 17:45 ` Rich Freeman
1 sibling, 1 reply; 23+ messages in thread
From: Michał Górny @ 2019-02-23 17:08 UTC (permalink / raw
To: gentoo-project
[-- Attachment #1: Type: text/plain, Size: 2275 bytes --]
On Sat, 2019-02-23 at 11:30 -0500, Alec Warner wrote:
> On Sat, Feb 23, 2019 at 2:46 AM Michał Górny <mgorny@gentoo.org> wrote:
>
> > On Tue, 2019-02-19 at 15:16 -0500, Rich Freeman wrote:
> > > Also, as far as I'm aware GLEP 63 does not require an encryption key
> > > at all, just a signing key. I'm not sure if such signing-keys will be
> > > signed by Gentoo under this proposal. If not then there is nothing to
> > > upload to the keyserver, and in any case it seems like the main use
> > > case of this (sending encrypted email) would not apply. Of course it
> > > could still be used for verifying email signatures if we sign
> > > signing-only keys.
> >
> > If someone really believes it's fine to have no encryption subkey just
> > because the GLEP doesn't require one explicitly... It either means that
> > person is seriously lacking the technical competence, or is a horrible
> > troll. In either case, I don't believe such a person should be a Gentoo
> > developer.
> >
>
> - Why does setting up GPG to receive encrypted messages imply technical
> competence?
The default GnuPG setup involves supporting encryption. In order not to
support encryption, you have to actually go out of your way to create
signing-only setup which makes no sense.
> - As rich noted, most people have no idea how GPG works and they just do
> whatever they are instructed to do. I don't think a lack of knowledge of
> GPG indicates "being a troll" nor "lack of technical competence." Its a
> terribly designed piece of software from a usability perspective. I
> understand its a complex space (as many security domains are) but I'm not
> sure the right way to proceed is to force everyone to learn the inner
> workings of the space. The goal should be to create a system where users
> don't have to know all the details but still get a good security value.
>
The question is: how can you actually guarantee that users that don't
understand OpenPGP/GnuPG basics can actually comprehend the basic
necessities of keeping their key secure? Next thing I learn is that
people are not protecting their keys with password because
the instructions didn't say they had to. And GnuPG *only warned*.
--
Best regards,
Michał Górny
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 963 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [gentoo-project] [RFC] OpenPGP Authority Keys to provide validity of developer/service keys
2019-02-23 17:08 ` Michał Górny
@ 2019-02-23 17:45 ` Rich Freeman
0 siblings, 0 replies; 23+ messages in thread
From: Rich Freeman @ 2019-02-23 17:45 UTC (permalink / raw
To: gentoo-project
On Sat, Feb 23, 2019 at 12:08 PM Michał Górny <mgorny@gentoo.org> wrote:
>
> The question is: how can you actually guarantee that users that don't
> understand OpenPGP/GnuPG basics can actually comprehend the basic
> necessities of keeping their key secure?
I think you need to distinguish between people who don't understand
gpg and people who simply don't agree with you. As you pointed out,
in its default config gpg generates an encryption subkey. Though, I
don't think the default config is actually Gentoo-compatible.
> Next thing I learn is that
> people are not protecting their keys with password because
> the instructions didn't say they had to. And GnuPG *only warned*.
While it is always a good idea to protect a key with a password, this
really only protects the key while it is at rest. Chances are if an
attacker can read the keyring from disk, they can probably also
intercept the passphrase, either from the keyboard or from the gpg or
agent process.
If we really want to protect keys then it probably makes sense to
generate them on hardware keys, and use a hardware key which makes it
possible to distinguish keys that were generated on-hardware and are
non-exportable from keys that were generated in software (probably by
use of a remote attestation signing key in the hardware). I'm not
sure if such hardware keys exist. I guess another option is to have a
trusted person generate the keys on-hardware, load the key ID into
LDAP, and not let devs change their LDAP settings. Of course that
would give the person generating keys the ability to secretly generate
some, keep a copy of the private key, and then load it on the
hardware. Then again, with any hardware device you're also trusting
the manufacturer to not have a backdoor either.
Bottom line is that PKI is hard. You can encourage devs to follow
better practices, just as you can encourage them to run repoman, but
in the end they're going to have to be convinced that they really are
the weakest link, otherwise they'll probably quietly ignore you.
--
Rich
^ permalink raw reply [flat|nested] 23+ messages in thread
end of thread, other threads:[~2019-02-23 17:45 UTC | newest]
Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-02-16 8:40 [gentoo-project] [RFC] OpenPGP Authority Keys to provide validity of developer/service keys Michał Górny
2019-02-16 8:54 ` Toralf Förster
2019-02-17 3:08 ` Andreas K. Huettel
2019-02-17 3:45 ` Aaron Bauman
2019-02-17 6:56 ` Robin H. Johnson
2019-02-17 8:55 ` Michał Górny
2019-02-17 18:54 ` Matthew Thode
2019-02-17 19:03 ` Kristian Fiskerstrand
2019-02-18 13:22 ` Michał Górny
2019-02-19 19:47 ` Robin H. Johnson
2019-02-19 20:01 ` Michał Górny
2019-02-19 20:16 ` Rich Freeman
2019-02-19 21:54 ` Alec Warner
2019-02-19 23:21 ` Rich Freeman
2019-02-23 7:57 ` Michał Górny
2019-02-23 7:46 ` Michał Górny
2019-02-23 13:38 ` Rich Freeman
2019-02-23 16:30 ` Alec Warner
2019-02-23 16:52 ` Rich Freeman
2019-02-23 17:08 ` Michał Górny
2019-02-23 17:45 ` Rich Freeman
2019-02-17 19:04 ` Kristian Fiskerstrand
2019-02-18 5:23 ` Eray Aslan
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox