#807620 dirmngr: split SKS keyserver network CA into separate ca-certificates compatible package

Package:
dirmngr
Source:
gnupg2
Description:
GNU privacy guard - network certificate management service
Submitter:
Christoph Anton Mitterer
Date:
2015-12-11 00:51:04 UTC
Severity:
wishlist
#807620#5
Date:
2015-12-10 23:31:12 UTC
From:
To:
Hi Daniel.

May I suggest, that the SKS keyserver network CA cert is
split into it's own package that would integrate into the
ca-certificates framework.
An example would be the ca-cacert package.

Given that the SKS keyserver network CA will be typically used for
the webinterface of the keyservers as well, some people may
want to have it generally available.


Cheers,
Chris.

#807620#10
Date:
2015-12-10 23:51:57 UTC
From:
To:
Hi Christoph--

thanks for the suggestion!
ca-certificates framework, because it isn't properly name constrained.

adding it to ca-certificates would allow Kristian the ability to MITM
most TLS connections.

While i suspect Kristian would be more responsible than the
least-responsible of the parties authorized by the CA cartel, i don't
think we want to increase that particular attack surface.

However, i agree with you that we should ship the sks keyserver CA in a
known place so that tools that are deliberately trying to talk to
hkps://hkps.pool.sks-keyservers.net will have an easy time verifying it.

This part is already done: dirmngr ships the CA at:

 /usr/share/dirmngr/sks-keyservers.netCA.pem

You can think of this as a crufty "DLV" (domain lookaside validation)
for this one particular point in the DNS, i guess.

I'm working on a patch for GnuPG that should make it automatically use
this file as a cert if the user is visiting the hkps pool.

i don't know anyone who uses it for the web interface, and i suspect
that using it there would be problematic for the non-name-constrained
reason described above.

#807620#15
Date:
2015-12-11 00:08:03 UTC
From:
To:
It would be still upon the user to select the certificate...
to be honest, I think Kristian is probably a thousand times more
trustworthy, than CNNIC, TURKTURST*, WooSign, and likely a quarter of
the other Mozilla-Bundle CAs...
Not sure about that, but can packages that provide certs in the ca-
certificates framework select, that their certs aren't automatically
chosen?
That way, we could have it in the framework, let dirmngr pull the
package in, and still no one would be affected by it unless he chooses
to
.
uhm... I have it in place for the webinterface... and out of 6 servers
from the sks status page that have hkps, 5 used the SKS keyserver net
CA for https, and the 6th redirected and https to http (o.O)... so I'd
rather guess that anyone uses it like that (which seems to be natural).


Anyway, I think the ca-certificate framework makes only sense,
respectively has the rationale that in principle any CA cert that is
shipped in Debian can be managed as part of it.
I agree, that there are cases where such cert shouldn't get
automatically enabled, just by installing it (e.g. in our case here),
but if this cannot be done already, then it's rather simply a feature-
bug in the framework that needs to be solved.

Also, we already have non-general-use CA packages in the framework (see
igtf*).


Cheers,
Chris.

#807620#20
Date:
2015-12-11 00:23:06 UTC
From:
To:
hm, certs shipped in ca-certs are added by the system administrator, not
by the user.

i made that joke already :)

Please report the 6th as a bug to Kristian!  The fact that you're
willing to open your TLS authentication for any arbitrary network
service to Kristian's authority doesn't suggest that we should make that
easier in general for all debian users, though.  We ship the cert
already in dirmngr.  If people want to point their browsers (or other
tools) to it, they can do so.  But i don't think we should ship it with
other general purpose CAs.

But this makes sense for specific CAs that we know to work for every
zone.  Kristian's CA *isn't* supposed to work for every zone, but it
doesn't contain any guidance to interpreters of that storage that it
shouldn't be used anywhere else.

The feature-bug(?) in ca-certificates that would need to be fixed to for
me to start to consider this as a possibility would be to offer a way
for CAs to be effectively name-constrained.

yow, those are not packages i'd be very comfortable maintaining without
a heavy audit.  I'm a little surprised that the Homepage: of that
package itself doesn't even seem to be listed with https!

Regards,

#807620#25
Date:
2015-12-11 00:46:56 UTC
From:
To:
Sure, I meant user in contrast to Debian/package mainatiner.
Yeah, saw it afterwards... but one can never make that "joke" (which
unfortunately is the sad reality) too often ;)
Uhm... IMHO, Debian shouldn't make any assertion about the [not-
]trustworthiness of CAs it ships in the ca-* packages - how could it.
Take ca-certificates itself, which is, CA-wise, merely the Mozilla
bundle. Mozilla in turn can definitely be considered evil in that whole
game, they distribute CAs to their users which have already proven to
forge certs, and those which everyone knows that the people in control
of them use them for spying and attacks.

Adding another one, e.g. Kristian, doesn't really reduce security
anymore, *even* if it would be generally enabled.
But as I've said, my suggestion would be that a ca-sks-keyserver-
netwotk package simply shouldn't enable the cert per default.

Your comment about "we shouldn't make it easier for Debian users"...
well this is Debian, not Apple, Windows or Ubuntu, assuming the end-
user/admin to be dumb and trying (and usually failing) to protect him
from stupid things.
Uhm... what should that be good for? They secure the cert bundles via
gpg, which is probably the better way.

Apart from that, I guess we drift off into some political debate...
Take the IGTF certs... I know the guys behind IGTF (not behind each of
the bundled CAs), and I'd trust them much more than the Mozilla bundle
or cancerous things like letsencrypt.

Any of the "audits" done by the CA forum isn't worth the paper used to
print the certificate on, again as shown by many examples in the past.
And IIRC, even letsencrypt is already under criticism for de facto
breaking all the audit rules, and they just use some de-jure backdoor
to justify themselves...
And even if the audit would be done properly, what is it worth in the
end, if any NSA agent can file a national security letter + gag order
and the US based CAs need to comply.
And I guess for CNNIC and friends, their respective government agents
wouldn't even need to write a letter ;)


Long story short...
- ca-certificates is/should be the infrastructure for CAs in Debian
- The SKS CA, may be generally used (i.e. not just by gpg, but also
  browsers, lynx, wget, curl, or scripts, when interacting with
  keyservers).
  Therefore it should be shipped as part of that framework.
- The namespace problem exists for any other CAs as well.
- The other CAs are probably not much more trustworthy than Kristian
  (and likely less competent than a CA run on a normal Debian box)
- I agree, that the SKS CA shouldn't be enabled per default for users 
  (actually I think none of the ca-* packages should enable anything 
  per default).
- Requiring people to manually enable the certificate, is enough 
  protection against people shooting accidentally themselves.
  If someone does enable it and doesn't understand the consequences,
  well, that's beyond what we could or should protect such guys from.
- Shipping the cert as part of dirmngr, makes it not really usable by
  other packages or people, because this would mean they'd have to 
  install the former.
  Even if you spilt it out in a single package (outside of the
  framework), it would be a bit of a pity, as it then cannot be used
  automatically with curl/wget/etc..

Of course, you're the maintainer, and it was just a suggestion for
improvement.


Cheers,
Chris.