Root Causes 202 : What Is Certificate Transparency?
Certificate Transparency (CT) is essential to monitoring the public SSL certificates that are issued. In this episode we explain what CT logs are, how they work, and the uses we can put them to.
- Original Broadcast Date: January 27, 2022
Episode Transcript
Lightly edited for flow and brevity.
-
Tim Callan
Today, we want to talk about - it’s one of our what-is episodes, and we’re going to define something, and today we’re going to define Certificate Transparency, also known as CT and often referred to in the context of CT logs. Jason, you're probably familiar at a high level with Certificate Transparency.
-
Jason Soroko
I quite often will look at those logs, the whole idea of it is a good one. It certainly protects people who are purchasing TLS/SSL certificates, publicly trusted certificates, in the way that you know what’s being issued, and that’s an important thing to do for the CAs.
-
Tim Callan
So, what it is at a high level is a number of parties maintain these things called Certificate Transparency logs. We are one. Sectigo maintains a CT log. There are others: public CAs, browsers, Cloudflare has one - people like that. What the CT logs do is they make it possible when CAs are issuing certificates, public root TLS certificates, CAs can log these things “in the CT logs”. When they do so, all the details or a certain set of details of the certificate get logged, along with some unique identifiers, a fingerprint if you will, so that every certificate is there in one of these logs and can be found and there winds up being visibility or transparency, if you will, on all of the public TLS/SSL certificates that are being issued.
-
Jason Soroko
In fact, it’s best not to think of this like a database. In other words, whenever a certificate is issued, the record is created, and these records are never deleted or altered. They’re essentially a one-way hashed Merkle tree, which makes it really good in the sense that you really have to take a look at the entirety of the log in order to see what the activity has been through time.
-
Tim Callan
A record certainly can be updated. For instance if a certificate is revoked then that will be added and that will part of the CT log. At the same time, the certificates are not, you couldn’t like take one out. As you said, it’s a one-way hash, it’s a Merkle tree, it’s done. If you put a certificate in a CT log that’s it. It’s there permanently and it’s always in the public record. That’s the point. Because part of the point of this is once a certificate is logged, it’s logged. There is no going back and taking it out. It’s there, where everyone can see it forever.
-
Jason Soroko
What I think also is interesting, Tim, is as you say, there are multiple maintained lists. Some of them, there’s the idea of overlaps – it’s a good thing the most important concept though being that they are publicly available and there are some utilities out there to be able to search and one of them created by our own Rob Stradling, with crt.sh., gives you a lot of information if you want to look that up.
-
Tim Callan
crt.sh is actually really the most used, most referenced, most known tool for reading Certificate Transparency logs. Again, in principle, the logs are there, you could mine them for information in all kinds of ways. There’s another tool called Censys. Those are the two best known ones by far. There’s multiple of these logs floating around. Every CA when they issue a public certificate is required to log it to at least two of these logs. So, there’s some redundancy there in case a log had a catastrophic failure. Let’s say there would still be information and the basic idea is to ensure that every public certificate, every public TLS certificate is logged and is visible for people to look at and see.
-
Jason Soroko
Why would you do it? In the most simplistic sense, Timcallan.com, if you wanted to know what certificates were issued against it, obviously there might be the ones you’ve issued, you’ve requested issuance for, and you could go to take a look at crt.sh and see, alright, well, here are the certificates that match up with the ones that I asked to be issued. Obviously then if anything ever appeared that wasn’t something you had asked for you have a problem. And that’s probably the most positive aspect to this.
-
Tim Callan
I think there are a number of benefits. I think that the one you said is the most obvious one, which is, gosh, because think about before CT logs. Before CT logs, if someone went out and somehow tricked a CA into giving them a log with my brand name, how would I know? What would I do about it? There’s some website somewhere in the world with a certificate on it from a CA I don’t do business with claiming to be me; how would I know? That’s the most basic thing that CT logs do. They make it possible for people in principle to monitor their own domains, their own brands to ensure that that kind of nothing nefarious or just very poorly done is going on there. But it has other benefits, too. It allows people to keep an eye on CAs and the quality of their work. That has turned out to be a big part of CT logs; is people monitoring what are CAs issuing, are they doing it currently? They also help people look at the state of the whole industry. So, we’ve seen researchers use CT logs and information from CT logs to build models and try to understand how certificates are used and use certificates as a proxy for behavior on the internet as a whole and try to understand how that is happening. So, those are benefits that are very real that have come from CT logs as well.
-
Jason Soroko
I’ve only heard one point of controversy about CT logs. Are you aware? Well, the only thing I remember hearing about were certificates that were issued by a CA, publicly trusted certificates, that were meant for internal consumption and because of the way that the domains are named or the information that would be recorded in the CT log, there might be information that would normally before CT logs not have been known. They basically would have been known only to the issuer and the customer.
-
I have set of certs. I’m using public root, ah, ah, certs and because of that, they are in the CT log and maybe it reveals information about like the structure of my network. Something that might help an attacker who was planning some kind of attack. They understand what to look for. If they managed to penetrate me and they’re moving around laterally, what sorts of things are they trying to discover? There’s no getting around that. I mean, it’s part of transparency. One solution, of course, is don’t use public certs. If you make that private CA, private certs have no place in CT logs. They certainly aren’t logged by public CAs, and other people shouldn’t log them, and if you don’t log them, then that’s fine, it’s not a problem, and then that visibility doesn’t exist. And that seems to me the most straightforward answer that covers most of these cases where this objection occurs.
-
Jason Soroko
That makes sense. And certainly, the days are gone where setting up a private PKI was so difficult that you would just stick with a publicly trusted certificate for an internal cert.
-
Tim Callan
The objection to that of course or the counter to that is you turn around and say, well, because of the specifics of what I’m doing I need to be connected with various things and I might not control all these root stores, and I really have to use public certs. So, this isn’t practical. Then you go, well, ok, I’m sorry. There’s kind of a greater good need here that has been determined by the community to be more important and that is that this visibility on what’s being issued is there for everybody and if it does reveal some information about your network, sorry, but we don’t really have a way around it. And that basically becomes the response.
-
Jason Soroko
I think certainly the transparency, having hard transparency like that, without really any exceptions certainly should give people a lot of confidence in the fact that that CT log is comprehensive, and there’s not some subset that the bad guy could take advantage of in order to be able to issue certs against the domain without people knowing. So, sometimes there’s hard decisions to be made, and I can tell you the problem really trying to be solved quite often is, there’s internal people who will be using this for say an intranet and because it’s a human being, it’s sitting in front of a browser, you’re basically saving the step of having to put the root of that self-signed certificate into the root store of the browser of the people who would be doing this in your intranet. But, that step isn’t the most difficult thing in the world to do. It’s difficult only because you have to do it securely and carefully. But once that’s done, a self-signed certificate that’s only used internally shouldn’t be that difficult to work with.
-
Tim Callan
Absolutely. The other interesting thing about CT logs of course, is I think I mentioned that CAs must log their certificates as part of the rules, but there’s nothing, there’s no enforcement, there’s no rules about anybody having to run a CT log in the first place. So, for instance, Sectigo has a CT log just in the spirit of being contributors to the community. We’re a major CA, and everybody is expected to kind of do their part. So, that’s why we’re doing that. But, if we weren’t running a log, there wouldn’t be any penalty in the CA/Browser Forum rules or the root requirement, the root program rules or anything like that. So, we have enough CT logs that it’s ok and there’s plenty of redundancy, and everyone’s alright, but, you could imagine if a few entities decided to stop running, a couple or three CAs said what, I can’t run my CT log for some reason and Cloudflare left theirs off for instance, suddenly, like, there might be an issue. And there wouldn’t really be a path forward. So, we have enough CT logs because we have enough CT logs. But that’s part of it; is just really by community members choosing to do the right thing even though there’s no direct reward for doing so, and, that’s funny. Like the public TLS, the public SSL business is full of all kinds of things like that. CA/Browser Forum is another example, where the community does these things, and they work just because the community does them, but there’s no real outside enforcement or funding or anything else behind it. There’s no government behind it. We just all do it. And so, that’s something that not a lot of people are aware of, but it’s good to understand. That’s the underpinning of CT logs and how they work.
-
Jason Soroko
Right on, Tim. I think that’s evidence that the system works and that the contributors to the eco system, they really do feel the need to have this kind of participation and to make things work properly. The idea of CT logs is a good one, and I think most or all of us agree. Certainly, I do.
-
Tim Callan
And then the other thing to think about with CT logs is if every cert gets logged and they stay there forever, and they can never be removed, what does it mean? Are these logs just getting bigger and bigger and bigger and bigger? Are these logs going to be huge? Are they going to be unwieldy? What’s the story with that? The story with that is that most people, or probably everybody I would think, will actually divide their logs into shards, they call them, and they’re really by time period. And so, once all of the certificates in a given time period have expired out, then that shard essentially becomes unused. What it does is it allows CAs to control, or loggers I should say, to control the size of the actual files that need to be dealt with, while at the same time, maintaining a permanent record. Those old shards are always there. You can go back to them. But it means that at any given time, any file that you’re working with isn’t just going to keep growing forever, and so, there’s a lot of things that go on like that. They’re parts of managing the world of CT logs correctly so that they’re manageable and usable, and if you want to run a CT log, you’ve got to think about all these things. You’ve got to think about high up time, fast access speeds, you’ve got to be able to handle a lot of logged events, you’ve got to be able to handle a global footprint of logging. All that’s got to be part of what you do to run your CT logs effectively.
-
Jason Soroko
I think that that’s just part of good management. Since there really isn’t any kind of hard rules about what kind of public nodes there are anyway, decision making around those shards can be made in good ways, so it seems to just work. So thankfully right know it is.
-
Tim Callan
There’s nothing to indicate that it’s not working. I think that this isn’t viewed as any kind of problem area at the moment. I think it’s something that they’ve been logging certs, they’ve been logging it correctly, there’s no known instances that indicate that our CT logs aren’t getting our certs or aren’t preserving their records. In that regard, I think it’s a good system, and it does what it’s supposed to do.
-
Jason Soroko
Well, thanks a lot for that, Tim. It’s an important subject. It’s one of the infrastructures that’s underlying the trust as part of publicly trusted certificates, and I’m glad it’s out there.