I was looking at Google's Internet Authority G2. Its a subordinate CA (critical, CA:TRUE, pathlen:0) certified by GeoTrust. The dump is below.

Presumably, GeoTrust certified that CA for Google so Google can manage its web properties (corrections, please). However, the subordinate lacks a name constraint so that Google can mint certificates for any web property, and not just the ones it owns.

Both the IETF and CA/B Forums have name constraints that could be used to enforce the policy (rather than allowing an organization to mint certificates for any web property). The relevant documents are RFC 5280, Name Constraints and Baseline Requirements, 9.7 Technical Constraints in Subordinate CA Certificates via Name Constraints.

Often, lack of a name constraint in a subordinate CA is of minimum concern because there's an independent third party reseller acting as an auditor that's assessing the validity of the signing request. But in this case, there is no independent reseller acting as auditor and there is no separation of concerns.

GeoTrust is owned by Symantec, and Symantec is a member of the CA/Browser Forums.

Why does the subordinate CA lack the name constraints? Should name constraints be present on the subordinate CA in this case?

$ openssl x509 -in google-g2.pem -inform PEM -text -noout
        Version: 3 (0x2)
        Serial Number: 146038 (0x23a76)
    Signature Algorithm: sha1WithRSAEncryption
        Issuer: C=US, O=GeoTrust Inc., CN=GeoTrust Global CA
            Not Before: Apr  5 15:15:55 2013 GMT
            Not After : Dec 31 23:59:59 2016 GMT
        Subject: C=US, O=Google Inc, CN=Google Internet Authority G2
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Authority Key Identifier: 

            X509v3 Subject Key Identifier: 
            X509v3 Basic Constraints: critical
                CA:TRUE, pathlen:0
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 CRL Distribution Points: 

                Full Name:

            Authority Information Access: 
                OCSP - URI:http://g.symcd.com

            X509v3 Certificate Policies: 

    Signature Algorithm: sha1WithRSAEncryption
  • 1
    Since Google does not only own google.com, but also other domains (like gmail.com and google.whatever_TLD), I think having name constraints might be difficult. In addition, they might not want to have to buy a new sub CA each time they acquire a new domain. – user2313067 Apr 5 '15 at 6:40
  • 2
    "... they might not want to have to buy a new sub CA each time they acquire a new domain" - Cry me a river :) I don't want to trust any old organization who pays GeoTrust money for the service :) – user29925 Apr 6 '15 at 0:49

The structure is all wrong.

If Google uses this intermediate cert only for signing Google-owned domains (which I think is the case) they can't do it with a restricted path certificate, because they need to sign google.com and google.co.uk and gmail.com and even com.google now that they own that TLD.

In my opinion, the PKI was poorly designed to begin with, and there's no fixing it without starting over from scratch with something a bit more restricted and hierarchical like dnssec.

| improve this answer | |
  • 4
    I'm not sure DNSSEC is the answer. DNSSEC would require us to trust the registrars (e.g. firms like GoDaddy), the TLD's (e.g. VeriSign), and the root (e.g. ICANN), forever. I'm not sure I trust these entities any more than I trust the CA's. See Moxie Marlinspike's blog post for a great write-up on this subject: thoughtcrime.org/blog/ssl-and-the-future-of-authenticity – mti2935 Apr 5 '15 at 23:48
  • 1
    If only DNSSec didn't require very weak RSA keys... and if only it supported faster/better crypto like EC.... – goodguys_activate Apr 6 '15 at 0:30
  • 1
    @makerofthings7-C.Lamont yes, DNSSec in it's current form probably won't cut it. And progress is moving along at glacial (almost congressional) speed. But using EC signatures would make for much smaller keys, which would help quite a lot. – tylerl Apr 6 '15 at 0:37
  • 2
    Do you know of anything "better" than the current DNSSec? Either a modified RFC, or something redone from the ground up? – goodguys_activate Apr 6 '15 at 0:38
  • 1
    @makerofthings7-C.Lamont: The Perspectives project at Carnegie Mellon University looks promising. See perspectives-project.org. Or, Moxie Marlinspikes's Convergence project, which is basically Perspectives with some additions, also seems like a step in the right direction. See youtube.com/watch?v=Z7Wl2FW2TcA. – mti2935 Apr 6 '15 at 10:14

It's possible that this CA certificate is linked to GeoTrust's root certificate by way of Geotrust's 'GeoRoot' service, which "Allows Organizations with Their Own Certificate Authority (CA) to Chain to GeoTrust's Ubiquitous Public Root ". See http://www.prnewswire.com/news-releases/geotrust-launches-georoot-allows-organizations-with-their-own-certificate-authority-ca-to-chain-to-geotrusts-ubiquitous-public-root-54048807.html.

| improve this answer | |
  • Oh, thanks for that. I was not aware that happened. Bug filed against Mozilla: GeoTrust and Ubiquitous CA Public Root program. – user29925 Apr 5 '15 at 21:54
  • Very well spelled out. These are my thoughts exactly. I'll be curious to see the response to this. I think Mozilla (and other browsers) are in a damned if you do, damned if you don't situation here. If they drop Geotrust's root certificate from their set of trusted certificates, it will break the trust for millions of sites on the internet. If they continue to trust Geotrust's root certificate, it opens the way for a bad actor to start 'minting' (as you put it) bogus certificates for any site by abusing the 'GeoRoot' program. Just another example of how broken SSL has become. – mti2935 Apr 5 '15 at 22:08
  • I just took a gander at Google's Certification Practices Statement (at bit.ly/1yaBOMD). If they are actually playing by these rules, then it seems that they are exercising at least as much diligence as a reseller of GeoTrust's CA services would. Hopefully GeoTrust requires all participants in its GeoRoot program to adhere to these policies. But notwithstanding, it just takes one proverbial bad apple. The underlying problem here is that we can't (viably) revoke our trust in GeoTrust without breaking millions of sites on the internet. – mti2935 Apr 5 '15 at 23:58
  • Yeah, but the problem here is the disinterested third party auditor that performs the verifications is no longer present in the process. It sounds like the inmates are now running the asylum :) Google is less of a worry for me; any old organization (like the Islamic Republic of Iran) seems to be a bigger problem. – user29925 Apr 6 '15 at 0:07
  • 1
    I hope that GeoTrust will not allow the Islamic Republic of Iran to participate in its GeoRoot program. But, I think we're basically saying the same thing here. – mti2935 Apr 6 '15 at 0:35

Why does the subordinate CA lack the name constraints?

Because browsers would ignore these settings anyway. Currently there is no technical way to restrict which certificates sub-CAs can issue.

| improve this answer | |
  • Two things come to mind: user agents like browsers are just one class of software that consumes PKIX certificates. And I'm not sure Browsers ignore it since its codified at the CA/B Forums. (If it was only written in the IETF, then I would agree with you). – user29925 Apr 5 '15 at 22:56
  • 1
    According to code.google.com/p/chromium/issues/detail?id=407093 Apples Secure Transport does not support name constraints and thus Safari and Chrome on OS X don't. Firefox might support NC in current versions, at least bugs in this area where fixed a year ago: bugzilla.mozilla.org/show_bug.cgi?id=962760. But it is probably not a feature one can use as a critical constraint currently. And when used as non-critical it simply could be ignored. – Steffen Ullrich Apr 7 '15 at 14:33
  • Some browsers (Safari) ignore name constraints. Other browsers will validate them if they are listed. If the name constraint is not marked as a "critical" section, the certificate continues to work in clients that ignore name constraints. – Gabe Apr 19 '15 at 17:46

I think you are assuming Google is not trusted or that this is an oversight in the Certificate Authority trust model.

I don't think there is a problem with Google running a certificate authority. Perhaps they can choose to constrain it to their own domains, but nothing stops them from entering into an agreement with an established Root CA (or buying on!) and being a public signing CA.

If they demonstrate appropriate security and process, they should be free to issue any certificate to a validated identity.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy