16

I just read this post and it proposes a method of storing SSL fingerprints online so that you can double check that your certificates have not been tampered with.

But is it really relevant or useful? To me it does not seem to add any security: it lets you know that you are being snooped on, but doesn't protect you from that. In addition, it seems a bit cumbersome to use the service1. Also, the note about EV certificates seems invalid because malware can just replace browser binaries. I was just able to compile2 my own hacked firefox that allowed GRC.com to show up as EV with my certificate. Many companies already force modified browsers3 on their employees.

So, does this fingerprinting service add much security to the existing system?

1. Security at the expense of usability, comes at the expense of security.

2. This usually takes time, fortunately I do have a compiled FF with me and I can run an incremental build.

3. To be frank I've only heard of one case where the browser had an addon baked in to the install (like Tor Browser) that locked down some parts, but I'm sure there are more

Manishearth
  • 8,257
  • 5
  • 35
  • 56
  • 12
    When it comes to GRC I usually start with "no it doesn't add any protections" and then evaluate what he has to say. – Steve Jan 26 '14 at 20:45
  • Sounds a bit similar to Certificate Transparency, which does indeed add security by increasing the risk of a dishonest CA getting caught. – CodesInChaos Jan 26 '14 at 21:35

1 Answers1

30

I would say that the mixture of multiple font sizes, colours, frames, underline, bold text, underlined bold text (for God's sake !) is enough clue about the kind of site you've stumbled upon.

However, let's put aside these aesthetic considerations; Gibson might be colour-blind and that would not be his fault. So, let's see what the proposed system is about, technically. Gibson runs a service on his server. Let's call G Gibson's server. A user U wants to connect to some SSL server S, but fears that he might be under the scope of an interceptor proxy which runs a Man-in-the-Middle attack by issuing on-the-fly a fake certificate for S (this may work if a CA under control of the interceptor proxy has been pushed in the "trusted CA" store of U's browser). Then user U connects to G, enters the name for the target site S; G connects to S, fetches the certificate used by S, and returns it to U. That way, U can check whether the certificate he sees (from server S) is identical to the one seen from G.

As a security system, it has (at least) the following issues:

  • Since user U connects to G with a SSL connection, that one could be intercepted just as easily by the interceptor, and the page contents replaced. If, gods forbid, Gibson's service gained any kind of non-negligible popularity, then proxies would do just that automatically, which would reduce the service's added value to exactly zero. The foundation of Gibson's service is the idea that his SSL Web page can be obtained as is, free of malicious alterations, and yet the situations that the service tries to help with are indeed the cases where SSL Web pages cannot be assumed to be obtained without malicious alterations. This looks self-contradictory... because it is.

  • The extra security hinges on the idea that while user U could be under the influence of an evil proxy, Gibson's server G is, of course, completely free of such attacks and sees the World as it is. He claims as such: "We use the “Tier 1” provider “Level 3” to connect directly to the Internet Backbone with no third-party between us and any remote website." This is, at best, delusional wishful thinking. The sentence is, in itself, a contradiction: "We use a third-party provider to send our packets so that our packets reach any remote Web site without going through any third-party provider." And regardless of how much money Gibson pays on his side of the connection, he has no control over how other Web sites are connected to the World.

  • Gibson seems to assume that though the World is full of nasty evil entities, he, of course, is obviously completely trustworthy and what he utters can only be the Truth. It goes without saying; indeed, he does not say it. But, pausing for a few seconds, if we choose to assume that we are being "lied upon" (Gibson's terminology) by people who already have quite a lot of technical power on our browsers (inserting extra trusted CA), then why would we trust a random stranger on the Internet ?

  • ... which brings me to the next point, which is that the method used by Gibson's service seems to carefully avoid taking the one step which would make it more useful, namely signatures. Gibson's service is over HTTPS, so that is authentication: user U might be persuaded, on the moment, that he is indeed viewing a genuine page from G (subject to the caveats above). However, he gets no proof that he can show. G does not sign the assertion about the fingerprint of the certificate that he saw. If G was fooled, or dishonest, or both, then he could claim never to have sent bogus information. Why would you trust a service who does not have the decency to at least engage its own responsibility ?

  • Even if the system works, it may fail on normal load-balancing systems: a given Web site may be hosted on several front-ends, which do not necessarily have the same certificate. In fact, it is recommended that each front-end gets its own certificate, because the alternative is to give the same private key to each front-end, implying the private key traveled at some point -- and that's never a good thing. With such a multi-front-end system, Gibson's service would claim proof of interception at least half of the time, which would be downright embarrassing (but his avoidance of responsibility, as explained above, would come in handy at that point).

  • The usability issue is of course a serious problem, which alone makes the service mostly useless, even if we assumed that it would be fine otherwise.

However, could the core concept be salvaged, and all these issues dealt with ? Indeed it is possible; it is called Convergence. That system fixes most of the issues with a Gibson-like service:

  • Assertions about server's certificates, as exposed to the World, are signed by the "notaries", so they take responsibility and cannot as easily cheat on users -- at least, they have a high risk of getting caught.

  • There is not one notary, but many (at least so it is hoped), so each user can elect to choose whatever notaries he wishes too, not a single Gibson. By construction, each user of Convergence uses several notaries.

  • Notaries have memory, so they track certificate changes over time, too. This is much better than the basic check done by Gibson's service, which is just for the present. Convergence not only checks that the certificate used by a server is indeed the same from all the notaries' point of views, but also whether that certificate seems to change a lot over time, as that is heuristically a good indication of ongoing foul play.

  • Convergence relies on a browser extension which does the check automatically, avoiding the usability issue.

  • Sites with several certificates are taken into account in the protocol, which has special features to avoid spurious alerts in that case.

It is unclear whether Convergence is really good and useful, and, in any case, it seems not to be as widespread as could be wished for. But it, at least, avoids the glaring shortcomings of a Gibson-like service.


Gibson's point about EV certificates is, of course, bogus. He appears to have faith in the magic of EV certificates. He claims that "they cannot be spoofed" and his reasoning hinges on the idea that EV certificates are validated against an internal list of "trusted EV roots" that malware or evil sysadmin cannot alter. But they can ! Gibson seems to have observed one or two situations where the sysadmin (or some malware) inserted a proxy-controlled CA in the trusted root store, but did not bother to alter the "trusted EV" store -- from which he concluded that the sysadmin could not alter the "trusted EV store". The conclusion is wrong.

Possibly, Gibson has paid some extra to obtain a pretty "EV" certificate (indeed, they are almost twice as expensive at DigiCert), from which the usual infatuation developed. It is a common psychological effect: people who have paid a lot for some service or object will thereafter feel invested with the sacred mission to assert, whenever possible, that the service or object they paid for is way better than any other cheaper replacement. This is understandable, the alternative being to admit they they were swindled. Self-delusion is a the safety mechanism by which self-esteem protects itself. Arguably, Apple understood this concept decades ago, and it made them filthy rich.


The core issue with the envisaged scenario, though, is that it does not ultimately make sense. We are talking about a user whose browser and/or OS was modified without his consent. It is true that, right now, a common "modification" used in some organizations is the insertion of an extra trusted root CA, in order to allow seamless MitM attacks on SSL and thus the usual assortment of content inspection and filtering. Blue Coat's ProxySG product is often cited as an embodiment of this method; in the open source world we would talk about SSL Bump as part of the well-known Squid proxy. These products use an extra, controlled root CA because it is convenient: it allows the interception service to work with minimal hassle. However, it does in no way mean that interception MUST use fake certificates issued on-the-fly relatively to a controlled CA.

Indeed, in order to push an extra trusted CA, the "attacker" (often not really an evil, legally reprehensible attacker, more a sysadmin in some corporation who tries to enforce some company policies) must have sufficient privileges on the user's machine. With the same privileges, the same "attacker" could simply install some code which intercepts all the data before it gets encrypted; this is called hooking. It yields complete access over the SSL data without having to do anything about certificates; it even works against an unmodified browser. No amount of EV-greenness does anything against it.


Summary: Nope. No additional security worth speaking of. There is an underlying concept which may provide additional security, but only if done properly, i.e. not the way Gibson does it. And, even then, it would not really save victims against attackers who are powerful enough to make SSL interception work in the first place.

Tom Leek
  • 170,038
  • 29
  • 342
  • 480